From 06627163843385746762e242a2caa79ac8f3e9e1 Mon Sep 17 00:00:00 2001 From: mobilewix Date: Wed, 9 Oct 2024 15:48:05 +0000 Subject: [PATCH] Deploy website - based on 1074d584e88fa3d4fd8ed6f59da1d34767a2d60c --- 404.html | 8 ++--- ...-demo-5c8641f24001c1d6e3effd175dc8ec2b.gif | Bin 0 -> 1395433 bytes assets/js/00424e3f.f648c4cc.js | 1 - assets/js/00424e3f.fbaf5bc5.js | 1 + assets/js/040764b7.0dcb9382.js | 1 + assets/js/040764b7.64d8db47.js | 1 - ...56991.a1e9bc3d.js => 06556991.f8c7ee47.js} | 2 +- assets/js/0d1d5dba.2ea3af64.js | 1 + assets/js/0d1d5dba.de224e29.js | 1 - assets/js/29dcf05c.c4cc896c.js | 1 - assets/js/2ad854c4.7949d56d.js | 1 + assets/js/2e9ac6cb.3ea92ee9.js | 1 + assets/js/2e9ac6cb.7c4ca8aa.js | 1 - assets/js/5329dae7.c80ca4a7.js | 1 + assets/js/5fc994c2.19caecdb.js | 1 + assets/js/5fc994c2.e3cf7671.js | 1 - assets/js/73f08e0f.ebb577a4.js | 1 + assets/js/814f3328.1e97cc47.js | 1 - assets/js/814f3328.92f73eb0.js | 1 + assets/js/8f43d633.4e452f8b.js | 1 - assets/js/8f43d633.99f04e1b.js | 1 + assets/js/9292650b.2e9752e5.js | 1 - assets/js/9292650b.b0d5ad62.js | 1 + ...bed1e.909642c9.js => 933bed1e.62163c02.js} | 2 +- assets/js/935f2afb.030b4912.js | 1 - assets/js/935f2afb.10fefa8c.js | 1 + assets/js/95ce696f.592acc49.js | 1 + assets/js/a074e23a.5255be3b.js | 1 + ...52e90.98ab7f12.js => af952e90.0cb4ee98.js} | 2 +- assets/js/b80a1ac9.175f49b8.js | 1 + assets/js/b80a1ac9.f71f5896.js | 1 - assets/js/baa98f43.734013e7.js | 1 + assets/js/c7f75652.bd985fd6.js | 1 + assets/js/d96edd44.b6ebe047.js | 1 + assets/js/e2c7edfe.58edca54.js | 1 + assets/js/ede8d976.70718177.js | 1 + assets/js/f6c890be.20f52cf6.js | 1 + assets/js/f98b7248.b9946c6e.js | 1 - assets/js/f98b7248.dff8ac9c.js | 1 + assets/js/main.2857f36d.js | 2 ++ ...CENSE.txt => main.2857f36d.js.LICENSE.txt} | 0 assets/js/main.72bec0d5.js | 2 -- assets/js/runtime~main.483535ac.js | 1 - assets/js/runtime~main.f55a4365.js | 1 + blog/2022/11/10/detox-20-is-out/index.html | 12 +++---- .../09/30/detox-copilot-is-out/index.html | 24 ++++++++++++++ blog/archive/index.html | 10 +++--- blog/atom.xml | 18 ++++++++++- blog/index.html | 11 ++++--- blog/rss.xml | 14 +++++++- blog/tags/ai-integration/index.html | 24 ++++++++++++++ blog/tags/detox-copilot/index.html | 24 ++++++++++++++ blog/tags/genymotion/index.html | 10 +++--- blog/tags/index.html | 10 +++--- blog/tags/major-release/index.html | 10 +++--- blog/tags/minor-release/index.html | 24 ++++++++++++++ docs/19.x/api/actions-on-element/index.html | 8 ++--- docs/19.x/api/artifacts/index.html | 8 ++--- docs/19.x/api/detox-cli/index.html | 8 ++--- docs/19.x/api/detox-object-api/index.html | 8 ++--- docs/19.x/api/device-object-api/index.html | 8 ++--- docs/19.x/api/expect/index.html | 8 ++--- docs/19.x/api/launch-args/index.html | 8 ++--- docs/19.x/api/matchers/index.html | 8 ++--- .../19.x/api/mocking-open-with-url/index.html | 8 ++--- .../19.x/api/mocking-user-activity/index.html | 8 ++--- .../api/mocking-user-notifications/index.html | 8 ++--- docs/19.x/api/screenshots/index.html | 8 ++--- docs/19.x/api/test-lifecycle/index.html | 8 ++--- docs/19.x/config/overview/index.html | 8 ++--- docs/19.x/contributing/index.html | 8 ++--- .../debugging-in-android-studio/index.html | 8 ++--- docs/19.x/guide/debugging-in-xcode/index.html | 8 ++--- .../developing-while-writing-tests/index.html | 8 ++--- docs/19.x/guide/expo/index.html | 8 ++--- docs/19.x/guide/jest/index.html | 8 ++--- docs/19.x/guide/migration/index.html | 8 ++--- docs/19.x/guide/mocha/index.html | 8 ++--- docs/19.x/guide/mocking/index.html | 8 ++--- .../guide/parallel-test-execution/index.html | 8 ++--- docs/19.x/guide/running-locally/index.html | 8 ++--- docs/19.x/guide/running-on-ci/index.html | 8 ++--- .../19.x/guide/third-party-drivers/index.html | 8 ++--- docs/19.x/guide/uninstalling/index.html | 8 ++--- docs/19.x/index.html | 8 ++--- .../introduction/android-dev-env/index.html | 8 ++--- docs/19.x/introduction/android/index.html | 8 ++--- .../introduction/design-principles/index.html | 8 ++--- .../introduction/getting-started/index.html | 8 ++--- .../introduction/how-detox-works/index.html | 8 ++--- docs/19.x/introduction/ios-dev-env/index.html | 8 ++--- docs/19.x/introduction/ios/index.html | 8 ++--- docs/19.x/introduction/workflows/index.html | 8 ++--- .../writing-first-test/index.html | 8 ++--- .../building-the-app/index.html | 8 ++--- .../19.x/troubleshooting/flakiness/index.html | 8 ++--- .../troubleshooting/running-tests/index.html | 8 ++--- .../synchronization/index.html | 8 ++--- .../troubleshooting/index.html | 8 ++--- docs/api/actions/index.html | 8 ++--- docs/api/device/index.html | 8 ++--- docs/api/expect/index.html | 8 ++--- docs/api/internals/index.html | 8 ++--- docs/api/logger/index.html | 8 ++--- docs/api/matchers/index.html | 8 ++--- docs/api/system/index.html | 8 ++--- docs/api/webviews/index.html | 8 ++--- docs/articles/design-principles/index.html | 8 ++--- docs/articles/how-detox-works/index.html | 8 ++--- docs/articles/third-party-drivers/index.html | 8 ++--- docs/cli/build-framework-cache/index.html | 8 ++--- docs/cli/build/index.html | 8 ++--- docs/cli/clean-framework-cache/index.html | 8 ++--- docs/cli/init/index.html | 8 ++--- docs/cli/overview/index.html | 8 ++--- docs/cli/rebuild-framework-cache/index.html | 8 ++--- docs/cli/recorder/index.html | 8 ++--- docs/cli/reset-lock-file/index.html | 8 ++--- docs/cli/run-server/index.html | 8 ++--- docs/cli/start/index.html | 8 ++--- docs/cli/test/index.html | 8 ++--- docs/config/apps/index.html | 8 ++--- docs/config/artifacts/index.html | 8 ++--- docs/config/behavior/index.html | 8 ++--- docs/config/devices/index.html | 8 ++--- docs/config/logger/index.html | 8 ++--- docs/config/overview/index.html | 8 ++--- docs/config/session/index.html | 8 ++--- docs/config/testRunner/index.html | 8 ++--- docs/contributing/code-of-conduct/index.html | 8 ++--- .../code/building-and-testing/index.html | 8 ++--- .../code/example-projects/index.html | 8 ++--- docs/contributing/code/overview/index.html | 8 ++--- .../code/reviewing-pull-requests/index.html | 8 ++--- .../setting-up-the-dev-environment/index.html | 8 ++--- .../code/submitting-pull-requests/index.html | 8 ++--- docs/contributing/documentation/index.html | 8 ++--- docs/contributing/feature-requests/index.html | 8 ++--- docs/contributing/index.html | 8 ++--- .../questions/answering-questions/index.html | 8 ++--- .../questions/asking-questions/index.html | 8 ++--- docs/contributing/reporting-bugs/index.html | 8 ++--- docs/demo/index.html | 8 ++--- docs/guide/android-dev-env/index.html | 8 ++--- docs/guide/cucumber-js-integration/index.html | 8 ++--- .../developing-while-writing-tests/index.html | 8 ++--- docs/guide/genymotion-saas/index.html | 8 ++--- .../investigating-test-failure/index.html | 8 ++--- docs/guide/launch-args/index.html | 8 ++--- docs/guide/migration/index.html | 8 ++--- docs/guide/mocking-open-with-url/index.html | 8 ++--- docs/guide/mocking-user-activity/index.html | 8 ++--- .../mocking-user-notifications/index.html | 8 ++--- docs/guide/mocking/index.html | 8 ++--- docs/guide/parallel-test-execution/index.html | 8 ++--- docs/guide/proguard-configuration/index.html | 8 ++--- docs/guide/taking-screenshots/index.html | 8 ++--- docs/guide/test-id/index.html | 8 ++--- docs/guide/testing-webviews/index.html | 8 ++--- docs/guide/typescript/index.html | 8 ++--- docs/guide/uninstalling/index.html | 8 ++--- docs/introduction/debugging/index.html | 8 ++--- .../introduction/environment-setup/index.html | 8 ++--- docs/introduction/getting-started/index.html | 8 ++--- docs/introduction/preparing-for-ci/index.html | 8 ++--- docs/introduction/project-setup/index.html | 8 ++--- docs/introduction/your-first-test/index.html | 8 ++--- docs/next/api/actions/index.html | 8 ++--- docs/next/api/copilot/index.html | 10 +++--- docs/next/api/device/index.html | 8 ++--- docs/next/api/expect/index.html | 8 ++--- docs/next/api/internals/index.html | 8 ++--- docs/next/api/logger/index.html | 8 ++--- docs/next/api/matchers/index.html | 8 ++--- docs/next/api/system/index.html | 8 ++--- docs/next/api/webviews/index.html | 8 ++--- .../articles/design-principles/index.html | 8 ++--- docs/next/articles/how-detox-works/index.html | 8 ++--- .../articles/third-party-drivers/index.html | 8 ++--- .../next/cli/build-framework-cache/index.html | 8 ++--- docs/next/cli/build/index.html | 8 ++--- .../next/cli/clean-framework-cache/index.html | 8 ++--- docs/next/cli/init/index.html | 8 ++--- docs/next/cli/overview/index.html | 8 ++--- .../cli/rebuild-framework-cache/index.html | 8 ++--- docs/next/cli/recorder/index.html | 8 ++--- docs/next/cli/reset-lock-file/index.html | 8 ++--- docs/next/cli/run-server/index.html | 8 ++--- docs/next/cli/start/index.html | 8 ++--- docs/next/cli/test/index.html | 8 ++--- docs/next/config/apps/index.html | 8 ++--- docs/next/config/artifacts/index.html | 8 ++--- docs/next/config/behavior/index.html | 8 ++--- docs/next/config/devices/index.html | 8 ++--- docs/next/config/logger/index.html | 8 ++--- docs/next/config/overview/index.html | 8 ++--- docs/next/config/session/index.html | 8 ++--- docs/next/config/testRunner/index.html | 8 ++--- .../contributing/code-of-conduct/index.html | 8 ++--- .../code/building-and-testing/index.html | 8 ++--- .../code/example-projects/index.html | 8 ++--- .../contributing/code/overview/index.html | 10 +++--- .../code/reviewing-pull-requests/index.html | 8 ++--- .../setting-up-the-dev-environment/index.html | 8 ++--- .../code/submitting-pull-requests/index.html | 8 ++--- .../contributing/documentation/index.html | 8 ++--- .../contributing/feature-requests/index.html | 8 ++--- docs/next/contributing/index.html | 8 ++--- .../questions/answering-questions/index.html | 8 ++--- .../questions/asking-questions/index.html | 8 ++--- .../contributing/reporting-bugs/index.html | 8 ++--- docs/next/copilot/best-practices/index.html | 23 ++++++++++++++ .../copilot/technical-overview/index.html | 26 +++++++++++++++ .../copilot/testing-with-copilot/index.html | 28 ++++++++++++++++ docs/next/demo/index.html | 8 ++--- docs/next/guide/android-dev-env/index.html | 10 +++--- .../guide/cucumber-js-integration/index.html | 10 +++--- .../developing-while-writing-tests/index.html | 10 +++--- docs/next/guide/genymotion-saas/index.html | 10 +++--- .../investigating-test-failure/index.html | 10 +++--- docs/next/guide/launch-args/index.html | 10 +++--- docs/next/guide/migration/index.html | 10 +++--- .../guide/mocking-open-with-url/index.html | 10 +++--- .../guide/mocking-user-activity/index.html | 10 +++--- .../mocking-user-notifications/index.html | 10 +++--- docs/next/guide/mocking/index.html | 10 +++--- .../guide/parallel-test-execution/index.html | 10 +++--- .../guide/proguard-configuration/index.html | 10 +++--- docs/next/guide/taking-screenshots/index.html | 10 +++--- docs/next/guide/test-id/index.html | 10 +++--- docs/next/guide/testing-webviews/index.html | 12 +++---- .../guide/testing-with-copilot/index.html | 30 ------------------ docs/next/guide/typescript/index.html | 12 +++---- docs/next/guide/uninstalling/index.html | 12 +++---- docs/next/introduction/debugging/index.html | 10 +++--- .../introduction/environment-setup/index.html | 10 +++--- .../introduction/getting-started/index.html | 10 +++--- .../introduction/preparing-for-ci/index.html | 10 +++--- .../introduction/project-setup/index.html | 10 +++--- .../introduction/your-first-test/index.html | 10 +++--- .../next/troubleshooting/artifacts/index.html | 8 ++--- .../building-the-app/index.html | 10 +++--- .../next/troubleshooting/flakiness/index.html | 10 +++--- .../troubleshooting/running-tests/index.html | 10 +++--- .../synchronization/index.html | 10 +++--- docs/troubleshooting/artifacts/index.html | 8 ++--- .../building-the-app/index.html | 8 ++--- docs/troubleshooting/flakiness/index.html | 8 ++--- docs/troubleshooting/running-tests/index.html | 8 ++--- .../synchronization/index.html | 8 ++--- img/blog/copilot-demo.gif | Bin 0 -> 1395433 bytes index.html | 8 ++--- search/index.html | 8 ++--- showcase/index.html | 8 ++--- sitemap.xml | 2 +- 255 files changed, 1073 insertions(+), 891 deletions(-) create mode 100644 assets/images/copilot-demo-5c8641f24001c1d6e3effd175dc8ec2b.gif delete mode 100644 assets/js/00424e3f.f648c4cc.js create mode 100644 assets/js/00424e3f.fbaf5bc5.js create mode 100644 assets/js/040764b7.0dcb9382.js delete mode 100644 assets/js/040764b7.64d8db47.js rename assets/js/{06556991.a1e9bc3d.js => 06556991.f8c7ee47.js} (54%) create mode 100644 assets/js/0d1d5dba.2ea3af64.js delete mode 100644 assets/js/0d1d5dba.de224e29.js delete mode 100644 assets/js/29dcf05c.c4cc896c.js create mode 100644 assets/js/2ad854c4.7949d56d.js create mode 100644 assets/js/2e9ac6cb.3ea92ee9.js delete mode 100644 assets/js/2e9ac6cb.7c4ca8aa.js create mode 100644 assets/js/5329dae7.c80ca4a7.js create mode 100644 assets/js/5fc994c2.19caecdb.js delete mode 100644 assets/js/5fc994c2.e3cf7671.js create mode 100644 assets/js/73f08e0f.ebb577a4.js delete mode 100644 assets/js/814f3328.1e97cc47.js create mode 100644 assets/js/814f3328.92f73eb0.js delete mode 100644 assets/js/8f43d633.4e452f8b.js create mode 100644 assets/js/8f43d633.99f04e1b.js delete mode 100644 assets/js/9292650b.2e9752e5.js create mode 100644 assets/js/9292650b.b0d5ad62.js rename assets/js/{933bed1e.909642c9.js => 933bed1e.62163c02.js} (82%) delete mode 100644 assets/js/935f2afb.030b4912.js create mode 100644 assets/js/935f2afb.10fefa8c.js create mode 100644 assets/js/95ce696f.592acc49.js create mode 100644 assets/js/a074e23a.5255be3b.js rename assets/js/{af952e90.98ab7f12.js => af952e90.0cb4ee98.js} (70%) create mode 100644 assets/js/b80a1ac9.175f49b8.js delete mode 100644 assets/js/b80a1ac9.f71f5896.js create mode 100644 assets/js/baa98f43.734013e7.js create mode 100644 assets/js/c7f75652.bd985fd6.js create mode 100644 assets/js/d96edd44.b6ebe047.js create mode 100644 assets/js/e2c7edfe.58edca54.js create mode 100644 assets/js/ede8d976.70718177.js create mode 100644 assets/js/f6c890be.20f52cf6.js delete mode 100644 assets/js/f98b7248.b9946c6e.js create mode 100644 assets/js/f98b7248.dff8ac9c.js create mode 100644 assets/js/main.2857f36d.js rename assets/js/{main.72bec0d5.js.LICENSE.txt => main.2857f36d.js.LICENSE.txt} (100%) delete mode 100644 assets/js/main.72bec0d5.js delete mode 100644 assets/js/runtime~main.483535ac.js create mode 100644 assets/js/runtime~main.f55a4365.js create mode 100644 blog/2024/09/30/detox-copilot-is-out/index.html create mode 100644 blog/tags/ai-integration/index.html create mode 100644 blog/tags/detox-copilot/index.html create mode 100644 blog/tags/minor-release/index.html create mode 100644 docs/next/copilot/best-practices/index.html create mode 100644 docs/next/copilot/technical-overview/index.html create mode 100644 docs/next/copilot/testing-with-copilot/index.html delete mode 100644 docs/next/guide/testing-with-copilot/index.html create mode 100644 img/blog/copilot-demo.gif diff --git a/404.html b/404.html index 596c8387f5..9a73860e88 100644 --- a/404.html +++ b/404.html @@ -11,13 +11,13 @@ - - + +
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

- - + + \ No newline at end of file diff --git a/assets/images/copilot-demo-5c8641f24001c1d6e3effd175dc8ec2b.gif b/assets/images/copilot-demo-5c8641f24001c1d6e3effd175dc8ec2b.gif new file mode 100644 index 0000000000000000000000000000000000000000..6c74535b289b93c89072a13250200315ff325f8f GIT binary patch literal 1395433 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Νpe0x51Tb*4Umz>C9fAa%7JXWCB+VOV{UHtqDab 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�K{%2AG^ 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—J~ShWkwE7q`!WC7KHSLE2F`^-M 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
    ^vsf$+WUQnYAa)MB!s=3p|F<*Ae^TJgN67;5es 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�&d(hj(iNPchV1PN}D-A%;|ORG-%&c@~`VkqbXV9 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 >VuUF*Z;I?qk%2bRnTkM8h)U=M!|L>p*zHjWK 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

    We're excited to announce Detox Copilot, a groundbreaking feature that brings natural language testing to Detox. With Detox Copilot, you can now write end-to-end tests using plain textual commands, making test creation more intuitive and accessible than ever.

    Detox Copilot in action GIF

    Detox Copilot leverages advanced Large Language Models (LLMs) to interpret natural language instructions and translate them into Detox actions and assertions. This means you can describe your test scenarios in everyday language, aligning perfectly with Behavior-Driven Development (BDD) principles.

    Why Natural Language Testing?

    • Improved Collaboration: Teams can collaborate more effectively, as tests are written in plain language understandable by developers, QA engineers, and non-technical stakeholders alike.
    • Faster Test Creation: Reduce the time spent writing and maintaining complex test scripts.
    • Enhanced Test Coverage: Lower the barrier to writing tests, encouraging more comprehensive testing.
    • Reduced Maintenance Costs: Thanks to the decoupling from specific matchers (e.g., avoiding brittle XPath selectors or relying on testID attributes commonly used in React Native apps), tests are less prone to breaking when the UI changes, leading to lower maintenance overhead.

    Key Features of Detox Copilot

    Write Tests in Plain Text

    Detox Copilot allows you to write tests using natural language commands. Each step corresponds to a specific action or assertion within your app.

    it('should navigate and add a product to the cart', async () => {
    await copilot.perform(
    'Navigate to the "Products" page',
    'Tap on the "Add to Cart" button for the first product',
    'Verify that the "Added to Cart" pop-up is displayed'
    );
    });

    Seamless Integration with Detox

    Detox Copilot is built into Detox and requires no additional installation. Simply initialize it in your test setup, and you're ready to start writing natural language tests.

    LLM-Agnostic Design

    Detox Copilot uses LLMs to interpret instructions but is designed to be LLM-agnostic. This means you can connect it to your preferred language model service, offering flexibility and future-proofing your testing strategy.

    How Detox Copilot Works

    Once you've written your tests using natural language instructions, Detox Copilot takes care of the rest. +Here is a high-level overview of the execution flow:

    1. Gather Context: Collect relevant app state, view hierarchy, and previous step results.
    2. Interpret Intent: Use the LLM to interpret the natural language instruction.
    3. Generate Code: Create the appropriate Detox commands.
    4. Execute Action: Run the generated Detox code.
    5. Cache Results: Store execution results to optimize future runs.
    6. Provide Feedback: Return values or confirm actions for subsequent steps.

    By combining these steps, Detox Copilot effectively bridges the gap between natural language instructions and concrete test actions.

    info

    Check Detox Copilot Technical Overview for a detailed explanation of the building blocks and the execution flow.

    Getting Started with Detox Copilot

    Getting started with Detox Copilot is easy. Simply initialize Copilot in your test setup and start writing tests using natural language instructions.

    Check our Testing with Copilot guide for detailed instructions on setting up and writing tests with Detox Copilot.

    Extending Beyond Detox

    Detox Copilot is built on a standalone core library called detox-copilot designed to interpret natural language testing instructions and generate test code. Though initially developed for Detox, it can be extended to work with other testing frameworks.

    Learn More

    For detailed guidance, check out our Testing with Copilot guide and the Detox Copilot API Documentation.

    Join the Future of Testing

    Detox Copilot represents a major step forward in making end-to-end testing more accessible and efficient. By embracing natural language testing, you can enhance collaboration, speed up test creation, and improve overall test coverage.

    We're excited to see how you'll leverage Detox Copilot in your tests! Share your experiences, feedback, and suggestions with us as we continue to refine and expand this groundbreaking feature.

    ]]> + + Asaf Korem + https://github.com/asafkorem + + + + + <![CDATA[Detox 20 is out]]> https://wix.github.io/Detox/blog/2022/11/10/detox-20-is-out diff --git a/blog/index.html b/blog/index.html index 6a7646a0c8..b387ba4a0e 100644 --- a/blog/index.html +++ b/blog/index.html @@ -11,15 +11,16 @@ - - + +
    -

    · 10 min read
    Yaroslav Serhieiev

    Today we're proud to announce the new major release, Detox 20 (codename "Ashán"), which brings:

    • official support for Genymotion SaaS
    • improved integration with test runners
    • configurable logging subsystem
    • headless mode for iOS via configs and CLI
    • reversing TCP ports via Android app configs
    • and more optimizations to land in the next minor versions.

    Genymotion SaaS

    Highlights: Using Genymotion SaaS.

    Two years ago we added elementary support for cloud-based Android emulators provided by Genymotion SaaS and started a beta testing phase across mobile projects at Wix.

    Previously our mobile infrastructure engineers had been maintaining Android virtual devices on CI build agents on their own, so switching to cloud devices cleared up their time for more productive tasks. Another improvement was particularly noticeable for teams with a vast number of tests. We could reduce the duration of their CI pipelines almost by half after they scaled up from 2 parallel devices to 61.

    This positive impact encouraged us to adopt Genymotion SaaS for CI as quickly as possible, ignoring some unresolved issues in the initial pull request. For the most part, those were minor problems in global lifecycle management. Yet that made us feel uncertain about releasing it as-is, so we decided to take time and gain more production experience before taking any direction.

    The further experience was surprisingly smooth and rarely presented issues, spare for a few minor glitches in advanced scenarios. Admittedly, revamping the Detox lifecycle took us longer than expected, which is all the more reason for us to celebrate today.

    We're looking forward to providing our users with more opportunities for testing in the cloud, and this step is only the first of many to come. We hope you'll utilize this new feature to your delight.

    Integration with test runners

    Highlights: Config file > Test runner, Internals API, Dropping Mocha support.

    It took about a few months of work to formalize the contract between Detox and a test runner. While there's still a lot of place for improvement, the new Detox release refines their interaction and lays the groundwork for third-party integrations.

    Mocha was our first supported test runner, but unfortunately, it could not keep up with our scaling requirements as the number of end-to-end tests grew. By the time it acquired the ability to run tests in parallel, we already had to place bets on another horse, and that was Jest.

    We attempted to keep compatibility with both Jest and Mocha, but the farther we went, the more obvious it was that we couldn't have it both ways. As it turned out, Jest wasn't easy to get along with – our first integration with it was too simplistic. Over a couple of years of use in production, we kept discovering various issues that forced us to rewrite our "glue" code from scratch twice, and this isn't over yet. All combined didn't leave much time and energy for tinkering with Mocha anymore.

    In this release, we discontinued Mocha support to focus on the attunement of Jest with the new runner-independent test runner config and Internals API. If there's enough demand, now it is up to the open-source community to build a new integration between Detox and Mocha.

    Configurable logger

    Highlights: Config file > Logger, Logger API.

    The rigidity of the logging subsystem has always been showing itself since its very creation in the summer of 2019. +

    · 4 min read
    Asaf Korem

    Detox Copilot: Write Tests in Natural Language

    We're excited to announce Detox Copilot, a groundbreaking feature that brings natural language testing to Detox. With Detox Copilot, you can now write end-to-end tests using plain textual commands, making test creation more intuitive and accessible than ever.

    Detox Copilot in action GIF

    Detox Copilot leverages advanced Large Language Models (LLMs) to interpret natural language instructions and translate them into Detox actions and assertions. This means you can describe your test scenarios in everyday language, aligning perfectly with Behavior-Driven Development (BDD) principles.

    Why Natural Language Testing?

    • Improved Collaboration: Teams can collaborate more effectively, as tests are written in plain language understandable by developers, QA engineers, and non-technical stakeholders alike.
    • Faster Test Creation: Reduce the time spent writing and maintaining complex test scripts.
    • Enhanced Test Coverage: Lower the barrier to writing tests, encouraging more comprehensive testing.
    • Reduced Maintenance Costs: Thanks to the decoupling from specific matchers (e.g., avoiding brittle XPath selectors or relying on testID attributes commonly used in React Native apps), tests are less prone to breaking when the UI changes, leading to lower maintenance overhead.

    Key Features of Detox Copilot

    Write Tests in Plain Text

    Detox Copilot allows you to write tests using natural language commands. Each step corresponds to a specific action or assertion within your app.

    it('should navigate and add a product to the cart', async () => {
    await copilot.perform(
    'Navigate to the "Products" page',
    'Tap on the "Add to Cart" button for the first product',
    'Verify that the "Added to Cart" pop-up is displayed'
    );
    });

    Seamless Integration with Detox

    Detox Copilot is built into Detox and requires no additional installation. Simply initialize it in your test setup, and you're ready to start writing natural language tests.

    LLM-Agnostic Design

    Detox Copilot uses LLMs to interpret instructions but is designed to be LLM-agnostic. This means you can connect it to your preferred language model service, offering flexibility and future-proofing your testing strategy.

    How Detox Copilot Works

    Once you've written your tests using natural language instructions, Detox Copilot takes care of the rest. +Here is a high-level overview of the execution flow:

    1. Gather Context: Collect relevant app state, view hierarchy, and previous step results.
    2. Interpret Intent: Use the LLM to interpret the natural language instruction.
    3. Generate Code: Create the appropriate Detox commands.
    4. Execute Action: Run the generated Detox code.
    5. Cache Results: Store execution results to optimize future runs.
    6. Provide Feedback: Return values or confirm actions for subsequent steps.

    By combining these steps, Detox Copilot effectively bridges the gap between natural language instructions and concrete test actions.

    info

    Check Detox Copilot Technical Overview for a detailed explanation of the building blocks and the execution flow.

    Getting Started with Detox Copilot

    Getting started with Detox Copilot is easy. Simply initialize Copilot in your test setup and start writing tests using natural language instructions.

    Check our Testing with Copilot guide for detailed instructions on setting up and writing tests with Detox Copilot.

    Extending Beyond Detox

    Detox Copilot is built on a standalone core library called detox-copilot designed to interpret natural language testing instructions and generate test code. Though initially developed for Detox, it can be extended to work with other testing frameworks.

    Learn More

    For detailed guidance, check out our Testing with Copilot guide and the Detox Copilot API Documentation.

    Join the Future of Testing

    Detox Copilot represents a major step forward in making end-to-end testing more accessible and efficient. By embracing natural language testing, you can enhance collaboration, speed up test creation, and improve overall test coverage.

    We're excited to see how you'll leverage Detox Copilot in your tests! Share your experiences, feedback, and suggestions with us as we continue to refine and expand this groundbreaking feature.

    · 10 min read
    Yaroslav Serhieiev

    Today we're proud to announce the new major release, Detox 20 (codename "Ashán"), which brings:

    • official support for Genymotion SaaS
    • improved integration with test runners
    • configurable logging subsystem
    • headless mode for iOS via configs and CLI
    • reversing TCP ports via Android app configs
    • and more optimizations to land in the next minor versions.

    Genymotion SaaS

    Highlights: Using Genymotion SaaS.

    Two years ago we added elementary support for cloud-based Android emulators provided by Genymotion SaaS and started a beta testing phase across mobile projects at Wix.

    Previously our mobile infrastructure engineers had been maintaining Android virtual devices on CI build agents on their own, so switching to cloud devices cleared up their time for more productive tasks. Another improvement was particularly noticeable for teams with a vast number of tests. We could reduce the duration of their CI pipelines almost by half after they scaled up from 2 parallel devices to 61.

    This positive impact encouraged us to adopt Genymotion SaaS for CI as quickly as possible, ignoring some unresolved issues in the initial pull request. For the most part, those were minor problems in global lifecycle management. Yet that made us feel uncertain about releasing it as-is, so we decided to take time and gain more production experience before taking any direction.

    The further experience was surprisingly smooth and rarely presented issues, spare for a few minor glitches in advanced scenarios. Admittedly, revamping the Detox lifecycle took us longer than expected, which is all the more reason for us to celebrate today.

    We're looking forward to providing our users with more opportunities for testing in the cloud, and this step is only the first of many to come. We hope you'll utilize this new feature to your delight.

    Integration with test runners

    Highlights: Config file > Test runner, Internals API, Dropping Mocha support.

    It took about a few months of work to formalize the contract between Detox and a test runner. While there's still a lot of place for improvement, the new Detox release refines their interaction and lays the groundwork for third-party integrations.

    Mocha was our first supported test runner, but unfortunately, it could not keep up with our scaling requirements as the number of end-to-end tests grew. By the time it acquired the ability to run tests in parallel, we already had to place bets on another horse, and that was Jest.

    We attempted to keep compatibility with both Jest and Mocha, but the farther we went, the more obvious it was that we couldn't have it both ways. As it turned out, Jest wasn't easy to get along with – our first integration with it was too simplistic. Over a couple of years of use in production, we kept discovering various issues that forced us to rewrite our "glue" code from scratch twice, and this isn't over yet. All combined didn't leave much time and energy for tinkering with Mocha anymore.

    In this release, we discontinued Mocha support to focus on the attunement of Jest with the new runner-independent test runner config and Internals API. If there's enough demand, now it is up to the open-source community to build a new integration between Detox and Mocha.

    Configurable logger

    Highlights: Config file > Logger, Logger API.

    The rigidity of the logging subsystem has always been showing itself since its very creation in the summer of 2019. Due to time constraints and existing tech debts, it was impossible to do it right the first time, so we lived about three years with a proof-of-concept rather than a full-fledged feature.

    The inconveniences weren't fatal but quite noticeable, nevertheless. Here are a few syndromes you could have spotted if you have ever used Detox timeline and log artifacts, especially when running tests in parallel:

    • an uncanny file array: detox_pid_7505.log, detox_pid_7505.log.json, detox_pid_7506.log;
    • a relatively shallow detox.trace.json: test suites, test functions, and some user-defined segments.

    The good news is that the new Detox release condenses all those numerous logs into two files:

    • the plain, human-readable detox.log;
    • the raw, machine-readable detox.trace.json for chrome://trace, Perfetto and other utilities.

    A screenshot of timeline view generated by Perfetto

    With the help of the new Logger API, you can add custom duration events to the timeline, too, e.g.:

    await detox.log.trace.complete('Login', async () => {
    await element(by.id('email')).typeText('john@example.com');
    await element(by.id('password')).typeText('123456');

    detox.log.info('Trying to log in...');
    await element(by.id('submit')).tap();
    });

    Besides, it is possible now to customize the console output of Detox via the new logger config, e.g.:

    detox.config.js
    /** @type {Detox.DetoxConfig} */
    module.exports = {
    // ...
    logger: {
    options: {
    showDate: false,
    showLoggerName: false,
    showPid: false,
    prefixers: {
    ph: null,
    },
    },
    },
    };

    In the example above, we minimize all the metadata around the log messages – see the screenshot below:

    Terser logs after applying the override

    Minor features

    Headless iOS

    One of Detox known issues was always booting iOS simulators in a hidden mode. You could see tests running on your local simulator only if you had manually opened the Simulator app beforehand. So, we unified the headless property for both iOS and Android, and now both the platforms visibly boot a device unless you configure it otherwise, e.g.:

    /* @type {Detox.DetoxConfig} */
    module.exports = {
    devices: {
    iphone: {
    type: 'ios.simulator',
    headless: process.env.CI ? true : undefined,
    device: {
    type: 'iPhone 14'
    },
    /* ... */
    }
    },
    };

    or, via CLI:

    detox test -c ios.sim.release --headless

    Reverse ports

    Your apps might try to access some localhost:* addresses (e.g., mock servers), but this is a bit more problematic in the case of Android. The Android emulators are separate virtual devices with their own loopback network interface. In such cases, you must set up reverse port forwarding via adb reverse.

    Local servers are quite a common prerequisite for apps in debug mode – one could recall React Native bundler on port 8081, Storybook server on 9009, etc. That's why we decided to add an optional config property for Android apps, reversePorts:

    /** @type {Detox.DetoxConfig} */
    module.exports = {
    // ...
    apps: {
    'android.debug': {
    type: 'android.apk',
    binaryPath: '...',
    reversePorts: [8081, 3000],
    },
    },
    };

    In other words, this is a convenience API that tells Detox to run device.reverseTcpPort(portNumber) after installing the app. It should be helpful for anyone who prefers to keep such things as configs rather than as code.

    Read-only emulators by default

    The -read-only flag appeared in Android emulator 28.0.16. Detox promptly adopted it since the read-only mode allowed it to run multiple instances of a single Android virtual device (AVD) concurrently. This feature helped us to implement parallel test execution support for Android back then.

    Being overcautious, we implemented that partially, only for cases when the user starts multiple concurrent workers. This decision created a moderately annoying UX issue. Imagine you run tests sequentially first, using one worker only. That provides you with a regular AVD instance, i.e., not a read-only one. After that, you switch to multiple workers only to get an error from the Android emulator, complaining about mixing regular and read-only instances.

    While the fix itself has always been straightforward – close the running AVD and try again – this entire overcaution brought more issues than solving them. That's why, from now on, Android emulators will always be starting in -read-only mode unless you configure readonly: false in your device config.

    Reset lock file

    This release adds a small CLI tool, detox reset-lock-file, to help users with one specific use scenario.

    Imagine you want to run tests for multiple Detox configurations at once, e.g.:

    detox test -c iphoneSE2020.release e2e/ui.test.js
    detox test -c iphone14ProMax.release e2e/ui.test.js

    The problem is that Detox uses a file-locking mechanism to avoid situations when parallel test workers would take control of the same device. The detox test command, upon start, erases that file contents, creating a race condition risk.

    To eliminate that risk, use a combination of detox reset-lock-file and --keepLockFile like this:

    detox reset-lock-file & \
    detox test --keepLockFile -c iphoneSE2020.release e2e/ui.test.js & \
    detox test --keepLockFile -c iphone14ProMax.release e2e/ui.test.js & \
    wait

    In the future, we plan to minimize using lock files so that you don't have to think about this low-level implementation detail. So, this tool adds some convenience until we provide a next-gen solution.

    Deprecations

    Detox 20 executes many pending deprecations, so make sure to check out our Migration Guide before upgrading:

    • JS: minimum supported Node.js version is 14.x;
    • JS: minimum supported Jest version is 27.2.5;
    • JS: Mocha test runner is no longer supported;
    • JS: discontinued old adapters for Jest (jest-jasmine, first generation of jest-circus adapter);
    • JS: discontinued { permanent: true } option in device.appLaunchArgs.* methods (#3360);
    • CLI: dropped -w, --workers and -o, --runner-config args – see a dedicated section in the migration guide;
    • CLI: dropped deprecated --device-launch-args (#3665);
    • Config: discontinued kebab-case properties: test-runner, runner-config (#3371)
    • Config: discontinued skipLegacyWorkersInjections property ((#3286))
    • Config: deprecated specs and runnerConfig properties
    • Config: changed semantics of testRunner property
    • Config: dropped support for all-in-one configurations (#3386);
    • Android: remove deprecated native IdlePolicyConfig (#3332)
    • iOS: discontinued ios.none device type – see the new way to debug native code (#3361)

    Afterword

    Over the last year and a half, we have established a centralized configuration system for more than 50 projects using Detox at Wix. While it never seemed to be a cakewalk, the entire experience of troubleshooting over a hundred issues across the organization did not leave us unchanged.

    We see numerous things to improve in Detox, but most of them boil down to the same thing – scaling. Surprisingly, "scaling" makes an excellent umbrella term for nearly every challenge we've been encountering lately:

    • scaling up the number of users requires us to improve the onboarding and troubleshooting experience;
    • scaling up the number of projects forces us to centralize scattered configs into flexible organization presets;
    • scaling up the number of tests prompts us to optimize the codebase and incline it towards cloud and remote execution.

    Our core team has been facing challenges of limited human resource constraints and growing scaling needs for a long time. In many ways, that has shaped a specific mindset within the team. We evaluate every discussed feature by asking a simple question: will it save other people and us time to focus on more important things? Teaching a man to fish is better than giving fish, so our success at preventing support issues matters more than our success at solving them ourselves.

    That's why we'll be making subsequent efforts in these three areas, hoping to get back to you soon with even more exciting updates.

    Enjoy your drive with Detox 20!

    Cheers! 👋


    1. The mentioned threshold is not a hard limit, but rather a point where the return value of scaling up the number of devices starts dramatically diminishing in our case – not only the tests themselves, but installing NPM dependencies and building the projects also takes time.
    - - + + \ No newline at end of file diff --git a/blog/rss.xml b/blog/rss.xml index cfa6b4b861..17dd081849 100644 --- a/blog/rss.xml +++ b/blog/rss.xml @@ -4,10 +4,22 @@ Detox Blog https://wix.github.io/Detox/blog Detox Blog - Thu, 10 Nov 2022 00:00:00 GMT + Mon, 30 Sep 2024 00:00:00 GMT https://validator.w3.org/feed/docs/rss2.html https://github.com/jpmonette/feed en + + <![CDATA[Introducing Detox Copilot]]> + https://wix.github.io/Detox/blog/2024/09/30/detox-copilot-is-out + https://wix.github.io/Detox/blog/2024/09/30/detox-copilot-is-out + Mon, 30 Sep 2024 00:00:00 GMT + + Detox Copilot: Write Tests in Natural Language

    We're excited to announce Detox Copilot, a groundbreaking feature that brings natural language testing to Detox. With Detox Copilot, you can now write end-to-end tests using plain textual commands, making test creation more intuitive and accessible than ever.

    Detox Copilot in action GIF

    Detox Copilot leverages advanced Large Language Models (LLMs) to interpret natural language instructions and translate them into Detox actions and assertions. This means you can describe your test scenarios in everyday language, aligning perfectly with Behavior-Driven Development (BDD) principles.

    Why Natural Language Testing?

    • Improved Collaboration: Teams can collaborate more effectively, as tests are written in plain language understandable by developers, QA engineers, and non-technical stakeholders alike.
    • Faster Test Creation: Reduce the time spent writing and maintaining complex test scripts.
    • Enhanced Test Coverage: Lower the barrier to writing tests, encouraging more comprehensive testing.
    • Reduced Maintenance Costs: Thanks to the decoupling from specific matchers (e.g., avoiding brittle XPath selectors or relying on testID attributes commonly used in React Native apps), tests are less prone to breaking when the UI changes, leading to lower maintenance overhead.

    Key Features of Detox Copilot

    Write Tests in Plain Text

    Detox Copilot allows you to write tests using natural language commands. Each step corresponds to a specific action or assertion within your app.

    it('should navigate and add a product to the cart', async () => {
    await copilot.perform(
    'Navigate to the "Products" page',
    'Tap on the "Add to Cart" button for the first product',
    'Verify that the "Added to Cart" pop-up is displayed'
    );
    });

    Seamless Integration with Detox

    Detox Copilot is built into Detox and requires no additional installation. Simply initialize it in your test setup, and you're ready to start writing natural language tests.

    LLM-Agnostic Design

    Detox Copilot uses LLMs to interpret instructions but is designed to be LLM-agnostic. This means you can connect it to your preferred language model service, offering flexibility and future-proofing your testing strategy.

    How Detox Copilot Works

    Once you've written your tests using natural language instructions, Detox Copilot takes care of the rest. +Here is a high-level overview of the execution flow:

    1. Gather Context: Collect relevant app state, view hierarchy, and previous step results.
    2. Interpret Intent: Use the LLM to interpret the natural language instruction.
    3. Generate Code: Create the appropriate Detox commands.
    4. Execute Action: Run the generated Detox code.
    5. Cache Results: Store execution results to optimize future runs.
    6. Provide Feedback: Return values or confirm actions for subsequent steps.

    By combining these steps, Detox Copilot effectively bridges the gap between natural language instructions and concrete test actions.

    info

    Check Detox Copilot Technical Overview for a detailed explanation of the building blocks and the execution flow.

    Getting Started with Detox Copilot

    Getting started with Detox Copilot is easy. Simply initialize Copilot in your test setup and start writing tests using natural language instructions.

    Check our Testing with Copilot guide for detailed instructions on setting up and writing tests with Detox Copilot.

    Extending Beyond Detox

    Detox Copilot is built on a standalone core library called detox-copilot designed to interpret natural language testing instructions and generate test code. Though initially developed for Detox, it can be extended to work with other testing frameworks.

    Learn More

    For detailed guidance, check out our Testing with Copilot guide and the Detox Copilot API Documentation.

    Join the Future of Testing

    Detox Copilot represents a major step forward in making end-to-end testing more accessible and efficient. By embracing natural language testing, you can enhance collaboration, speed up test creation, and improve overall test coverage.

    We're excited to see how you'll leverage Detox Copilot in your tests! Share your experiences, feedback, and suggestions with us as we continue to refine and expand this groundbreaking feature.

    ]]>
    + minor-release + detox-copilot + ai-integration +
    <![CDATA[Detox 20 is out]]> https://wix.github.io/Detox/blog/2022/11/10/detox-20-is-out diff --git a/blog/tags/ai-integration/index.html b/blog/tags/ai-integration/index.html new file mode 100644 index 0000000000..cc9b9f2784 --- /dev/null +++ b/blog/tags/ai-integration/index.html @@ -0,0 +1,24 @@ + + + + + +One post tagged with "ai-integration" | Detox + + + + + + + + + + + +
    +

    One post tagged with "ai-integration"

    View All Tags

    · 4 min read
    Asaf Korem

    Detox Copilot: Write Tests in Natural Language

    We're excited to announce Detox Copilot, a groundbreaking feature that brings natural language testing to Detox. With Detox Copilot, you can now write end-to-end tests using plain textual commands, making test creation more intuitive and accessible than ever.

    Detox Copilot in action GIF

    Detox Copilot leverages advanced Large Language Models (LLMs) to interpret natural language instructions and translate them into Detox actions and assertions. This means you can describe your test scenarios in everyday language, aligning perfectly with Behavior-Driven Development (BDD) principles.

    Why Natural Language Testing?

    • Improved Collaboration: Teams can collaborate more effectively, as tests are written in plain language understandable by developers, QA engineers, and non-technical stakeholders alike.
    • Faster Test Creation: Reduce the time spent writing and maintaining complex test scripts.
    • Enhanced Test Coverage: Lower the barrier to writing tests, encouraging more comprehensive testing.
    • Reduced Maintenance Costs: Thanks to the decoupling from specific matchers (e.g., avoiding brittle XPath selectors or relying on testID attributes commonly used in React Native apps), tests are less prone to breaking when the UI changes, leading to lower maintenance overhead.

    Key Features of Detox Copilot

    Write Tests in Plain Text

    Detox Copilot allows you to write tests using natural language commands. Each step corresponds to a specific action or assertion within your app.

    it('should navigate and add a product to the cart', async () => {
    await copilot.perform(
    'Navigate to the "Products" page',
    'Tap on the "Add to Cart" button for the first product',
    'Verify that the "Added to Cart" pop-up is displayed'
    );
    });

    Seamless Integration with Detox

    Detox Copilot is built into Detox and requires no additional installation. Simply initialize it in your test setup, and you're ready to start writing natural language tests.

    LLM-Agnostic Design

    Detox Copilot uses LLMs to interpret instructions but is designed to be LLM-agnostic. This means you can connect it to your preferred language model service, offering flexibility and future-proofing your testing strategy.

    How Detox Copilot Works

    Once you've written your tests using natural language instructions, Detox Copilot takes care of the rest. +Here is a high-level overview of the execution flow:

    1. Gather Context: Collect relevant app state, view hierarchy, and previous step results.
    2. Interpret Intent: Use the LLM to interpret the natural language instruction.
    3. Generate Code: Create the appropriate Detox commands.
    4. Execute Action: Run the generated Detox code.
    5. Cache Results: Store execution results to optimize future runs.
    6. Provide Feedback: Return values or confirm actions for subsequent steps.

    By combining these steps, Detox Copilot effectively bridges the gap between natural language instructions and concrete test actions.

    info

    Check Detox Copilot Technical Overview for a detailed explanation of the building blocks and the execution flow.

    Getting Started with Detox Copilot

    Getting started with Detox Copilot is easy. Simply initialize Copilot in your test setup and start writing tests using natural language instructions.

    Check our Testing with Copilot guide for detailed instructions on setting up and writing tests with Detox Copilot.

    Extending Beyond Detox

    Detox Copilot is built on a standalone core library called detox-copilot designed to interpret natural language testing instructions and generate test code. Though initially developed for Detox, it can be extended to work with other testing frameworks.

    Learn More

    For detailed guidance, check out our Testing with Copilot guide and the Detox Copilot API Documentation.

    Join the Future of Testing

    Detox Copilot represents a major step forward in making end-to-end testing more accessible and efficient. By embracing natural language testing, you can enhance collaboration, speed up test creation, and improve overall test coverage.

    We're excited to see how you'll leverage Detox Copilot in your tests! Share your experiences, feedback, and suggestions with us as we continue to refine and expand this groundbreaking feature.

    + + + + \ No newline at end of file diff --git a/blog/tags/detox-copilot/index.html b/blog/tags/detox-copilot/index.html new file mode 100644 index 0000000000..adda651eff --- /dev/null +++ b/blog/tags/detox-copilot/index.html @@ -0,0 +1,24 @@ + + + + + +One post tagged with "detox-copilot" | Detox + + + + + + + + + + + +
    +

    One post tagged with "detox-copilot"

    View All Tags

    · 4 min read
    Asaf Korem

    Detox Copilot: Write Tests in Natural Language

    We're excited to announce Detox Copilot, a groundbreaking feature that brings natural language testing to Detox. With Detox Copilot, you can now write end-to-end tests using plain textual commands, making test creation more intuitive and accessible than ever.

    Detox Copilot in action GIF

    Detox Copilot leverages advanced Large Language Models (LLMs) to interpret natural language instructions and translate them into Detox actions and assertions. This means you can describe your test scenarios in everyday language, aligning perfectly with Behavior-Driven Development (BDD) principles.

    Why Natural Language Testing?

    • Improved Collaboration: Teams can collaborate more effectively, as tests are written in plain language understandable by developers, QA engineers, and non-technical stakeholders alike.
    • Faster Test Creation: Reduce the time spent writing and maintaining complex test scripts.
    • Enhanced Test Coverage: Lower the barrier to writing tests, encouraging more comprehensive testing.
    • Reduced Maintenance Costs: Thanks to the decoupling from specific matchers (e.g., avoiding brittle XPath selectors or relying on testID attributes commonly used in React Native apps), tests are less prone to breaking when the UI changes, leading to lower maintenance overhead.

    Key Features of Detox Copilot

    Write Tests in Plain Text

    Detox Copilot allows you to write tests using natural language commands. Each step corresponds to a specific action or assertion within your app.

    it('should navigate and add a product to the cart', async () => {
    await copilot.perform(
    'Navigate to the "Products" page',
    'Tap on the "Add to Cart" button for the first product',
    'Verify that the "Added to Cart" pop-up is displayed'
    );
    });

    Seamless Integration with Detox

    Detox Copilot is built into Detox and requires no additional installation. Simply initialize it in your test setup, and you're ready to start writing natural language tests.

    LLM-Agnostic Design

    Detox Copilot uses LLMs to interpret instructions but is designed to be LLM-agnostic. This means you can connect it to your preferred language model service, offering flexibility and future-proofing your testing strategy.

    How Detox Copilot Works

    Once you've written your tests using natural language instructions, Detox Copilot takes care of the rest. +Here is a high-level overview of the execution flow:

    1. Gather Context: Collect relevant app state, view hierarchy, and previous step results.
    2. Interpret Intent: Use the LLM to interpret the natural language instruction.
    3. Generate Code: Create the appropriate Detox commands.
    4. Execute Action: Run the generated Detox code.
    5. Cache Results: Store execution results to optimize future runs.
    6. Provide Feedback: Return values or confirm actions for subsequent steps.

    By combining these steps, Detox Copilot effectively bridges the gap between natural language instructions and concrete test actions.

    info

    Check Detox Copilot Technical Overview for a detailed explanation of the building blocks and the execution flow.

    Getting Started with Detox Copilot

    Getting started with Detox Copilot is easy. Simply initialize Copilot in your test setup and start writing tests using natural language instructions.

    Check our Testing with Copilot guide for detailed instructions on setting up and writing tests with Detox Copilot.

    Extending Beyond Detox

    Detox Copilot is built on a standalone core library called detox-copilot designed to interpret natural language testing instructions and generate test code. Though initially developed for Detox, it can be extended to work with other testing frameworks.

    Learn More

    For detailed guidance, check out our Testing with Copilot guide and the Detox Copilot API Documentation.

    Join the Future of Testing

    Detox Copilot represents a major step forward in making end-to-end testing more accessible and efficient. By embracing natural language testing, you can enhance collaboration, speed up test creation, and improve overall test coverage.

    We're excited to see how you'll leverage Detox Copilot in your tests! Share your experiences, feedback, and suggestions with us as we continue to refine and expand this groundbreaking feature.

    + + + + \ No newline at end of file diff --git a/blog/tags/genymotion/index.html b/blog/tags/genymotion/index.html index b2a491d70d..25aa796360 100644 --- a/blog/tags/genymotion/index.html +++ b/blog/tags/genymotion/index.html @@ -11,15 +11,15 @@ - - + +
    -

    One post tagged with "genymotion"

    View All Tags

    · 10 min read
    Yaroslav Serhieiev

    Today we're proud to announce the new major release, Detox 20 (codename "Ashán"), which brings:

    • official support for Genymotion SaaS
    • improved integration with test runners
    • configurable logging subsystem
    • headless mode for iOS via configs and CLI
    • reversing TCP ports via Android app configs
    • and more optimizations to land in the next minor versions.

    Genymotion SaaS

    Highlights: Using Genymotion SaaS.

    Two years ago we added elementary support for cloud-based Android emulators provided by Genymotion SaaS and started a beta testing phase across mobile projects at Wix.

    Previously our mobile infrastructure engineers had been maintaining Android virtual devices on CI build agents on their own, so switching to cloud devices cleared up their time for more productive tasks. Another improvement was particularly noticeable for teams with a vast number of tests. We could reduce the duration of their CI pipelines almost by half after they scaled up from 2 parallel devices to 61.

    This positive impact encouraged us to adopt Genymotion SaaS for CI as quickly as possible, ignoring some unresolved issues in the initial pull request. For the most part, those were minor problems in global lifecycle management. Yet that made us feel uncertain about releasing it as-is, so we decided to take time and gain more production experience before taking any direction.

    The further experience was surprisingly smooth and rarely presented issues, spare for a few minor glitches in advanced scenarios. Admittedly, revamping the Detox lifecycle took us longer than expected, which is all the more reason for us to celebrate today.

    We're looking forward to providing our users with more opportunities for testing in the cloud, and this step is only the first of many to come. We hope you'll utilize this new feature to your delight.

    Integration with test runners

    Highlights: Config file > Test runner, Internals API, Dropping Mocha support.

    It took about a few months of work to formalize the contract between Detox and a test runner. While there's still a lot of place for improvement, the new Detox release refines their interaction and lays the groundwork for third-party integrations.

    Mocha was our first supported test runner, but unfortunately, it could not keep up with our scaling requirements as the number of end-to-end tests grew. By the time it acquired the ability to run tests in parallel, we already had to place bets on another horse, and that was Jest.

    We attempted to keep compatibility with both Jest and Mocha, but the farther we went, the more obvious it was that we couldn't have it both ways. As it turned out, Jest wasn't easy to get along with – our first integration with it was too simplistic. Over a couple of years of use in production, we kept discovering various issues that forced us to rewrite our "glue" code from scratch twice, and this isn't over yet. All combined didn't leave much time and energy for tinkering with Mocha anymore.

    In this release, we discontinued Mocha support to focus on the attunement of Jest with the new runner-independent test runner config and Internals API. If there's enough demand, now it is up to the open-source community to build a new integration between Detox and Mocha.

    Configurable logger

    Highlights: Config file > Logger, Logger API.

    The rigidity of the logging subsystem has always been showing itself since its very creation in the summer of 2019. +

    One post tagged with "genymotion"

    View All Tags

    · 10 min read
    Yaroslav Serhieiev

    Today we're proud to announce the new major release, Detox 20 (codename "Ashán"), which brings:

    • official support for Genymotion SaaS
    • improved integration with test runners
    • configurable logging subsystem
    • headless mode for iOS via configs and CLI
    • reversing TCP ports via Android app configs
    • and more optimizations to land in the next minor versions.

    Genymotion SaaS

    Highlights: Using Genymotion SaaS.

    Two years ago we added elementary support for cloud-based Android emulators provided by Genymotion SaaS and started a beta testing phase across mobile projects at Wix.

    Previously our mobile infrastructure engineers had been maintaining Android virtual devices on CI build agents on their own, so switching to cloud devices cleared up their time for more productive tasks. Another improvement was particularly noticeable for teams with a vast number of tests. We could reduce the duration of their CI pipelines almost by half after they scaled up from 2 parallel devices to 61.

    This positive impact encouraged us to adopt Genymotion SaaS for CI as quickly as possible, ignoring some unresolved issues in the initial pull request. For the most part, those were minor problems in global lifecycle management. Yet that made us feel uncertain about releasing it as-is, so we decided to take time and gain more production experience before taking any direction.

    The further experience was surprisingly smooth and rarely presented issues, spare for a few minor glitches in advanced scenarios. Admittedly, revamping the Detox lifecycle took us longer than expected, which is all the more reason for us to celebrate today.

    We're looking forward to providing our users with more opportunities for testing in the cloud, and this step is only the first of many to come. We hope you'll utilize this new feature to your delight.

    Integration with test runners

    Highlights: Config file > Test runner, Internals API, Dropping Mocha support.

    It took about a few months of work to formalize the contract between Detox and a test runner. While there's still a lot of place for improvement, the new Detox release refines their interaction and lays the groundwork for third-party integrations.

    Mocha was our first supported test runner, but unfortunately, it could not keep up with our scaling requirements as the number of end-to-end tests grew. By the time it acquired the ability to run tests in parallel, we already had to place bets on another horse, and that was Jest.

    We attempted to keep compatibility with both Jest and Mocha, but the farther we went, the more obvious it was that we couldn't have it both ways. As it turned out, Jest wasn't easy to get along with – our first integration with it was too simplistic. Over a couple of years of use in production, we kept discovering various issues that forced us to rewrite our "glue" code from scratch twice, and this isn't over yet. All combined didn't leave much time and energy for tinkering with Mocha anymore.

    In this release, we discontinued Mocha support to focus on the attunement of Jest with the new runner-independent test runner config and Internals API. If there's enough demand, now it is up to the open-source community to build a new integration between Detox and Mocha.

    Configurable logger

    Highlights: Config file > Logger, Logger API.

    The rigidity of the logging subsystem has always been showing itself since its very creation in the summer of 2019. Due to time constraints and existing tech debts, it was impossible to do it right the first time, so we lived about three years with a proof-of-concept rather than a full-fledged feature.

    The inconveniences weren't fatal but quite noticeable, nevertheless. Here are a few syndromes you could have spotted if you have ever used Detox timeline and log artifacts, especially when running tests in parallel:

    • an uncanny file array: detox_pid_7505.log, detox_pid_7505.log.json, detox_pid_7506.log;
    • a relatively shallow detox.trace.json: test suites, test functions, and some user-defined segments.

    The good news is that the new Detox release condenses all those numerous logs into two files:

    • the plain, human-readable detox.log;
    • the raw, machine-readable detox.trace.json for chrome://trace, Perfetto and other utilities.

    A screenshot of timeline view generated by Perfetto

    With the help of the new Logger API, you can add custom duration events to the timeline, too, e.g.:

    await detox.log.trace.complete('Login', async () => {
    await element(by.id('email')).typeText('john@example.com');
    await element(by.id('password')).typeText('123456');

    detox.log.info('Trying to log in...');
    await element(by.id('submit')).tap();
    });

    Besides, it is possible now to customize the console output of Detox via the new logger config, e.g.:

    detox.config.js
    /** @type {Detox.DetoxConfig} */
    module.exports = {
    // ...
    logger: {
    options: {
    showDate: false,
    showLoggerName: false,
    showPid: false,
    prefixers: {
    ph: null,
    },
    },
    },
    };

    In the example above, we minimize all the metadata around the log messages – see the screenshot below:

    Terser logs after applying the override

    Minor features

    Headless iOS

    One of Detox known issues was always booting iOS simulators in a hidden mode. You could see tests running on your local simulator only if you had manually opened the Simulator app beforehand. So, we unified the headless property for both iOS and Android, and now both the platforms visibly boot a device unless you configure it otherwise, e.g.:

    /* @type {Detox.DetoxConfig} */
    module.exports = {
    devices: {
    iphone: {
    type: 'ios.simulator',
    headless: process.env.CI ? true : undefined,
    device: {
    type: 'iPhone 14'
    },
    /* ... */
    }
    },
    };

    or, via CLI:

    detox test -c ios.sim.release --headless

    Reverse ports

    Your apps might try to access some localhost:* addresses (e.g., mock servers), but this is a bit more problematic in the case of Android. The Android emulators are separate virtual devices with their own loopback network interface. In such cases, you must set up reverse port forwarding via adb reverse.

    Local servers are quite a common prerequisite for apps in debug mode – one could recall React Native bundler on port 8081, Storybook server on 9009, etc. That's why we decided to add an optional config property for Android apps, reversePorts:

    /** @type {Detox.DetoxConfig} */
    module.exports = {
    // ...
    apps: {
    'android.debug': {
    type: 'android.apk',
    binaryPath: '...',
    reversePorts: [8081, 3000],
    },
    },
    };

    In other words, this is a convenience API that tells Detox to run device.reverseTcpPort(portNumber) after installing the app. It should be helpful for anyone who prefers to keep such things as configs rather than as code.

    Read-only emulators by default

    The -read-only flag appeared in Android emulator 28.0.16. Detox promptly adopted it since the read-only mode allowed it to run multiple instances of a single Android virtual device (AVD) concurrently. This feature helped us to implement parallel test execution support for Android back then.

    Being overcautious, we implemented that partially, only for cases when the user starts multiple concurrent workers. This decision created a moderately annoying UX issue. Imagine you run tests sequentially first, using one worker only. That provides you with a regular AVD instance, i.e., not a read-only one. After that, you switch to multiple workers only to get an error from the Android emulator, complaining about mixing regular and read-only instances.

    While the fix itself has always been straightforward – close the running AVD and try again – this entire overcaution brought more issues than solving them. That's why, from now on, Android emulators will always be starting in -read-only mode unless you configure readonly: false in your device config.

    Reset lock file

    This release adds a small CLI tool, detox reset-lock-file, to help users with one specific use scenario.

    Imagine you want to run tests for multiple Detox configurations at once, e.g.:

    detox test -c iphoneSE2020.release e2e/ui.test.js
    detox test -c iphone14ProMax.release e2e/ui.test.js

    The problem is that Detox uses a file-locking mechanism to avoid situations when parallel test workers would take control of the same device. The detox test command, upon start, erases that file contents, creating a race condition risk.

    To eliminate that risk, use a combination of detox reset-lock-file and --keepLockFile like this:

    detox reset-lock-file & \
    detox test --keepLockFile -c iphoneSE2020.release e2e/ui.test.js & \
    detox test --keepLockFile -c iphone14ProMax.release e2e/ui.test.js & \
    wait

    In the future, we plan to minimize using lock files so that you don't have to think about this low-level implementation detail. So, this tool adds some convenience until we provide a next-gen solution.

    Deprecations

    Detox 20 executes many pending deprecations, so make sure to check out our Migration Guide before upgrading:

    • JS: minimum supported Node.js version is 14.x;
    • JS: minimum supported Jest version is 27.2.5;
    • JS: Mocha test runner is no longer supported;
    • JS: discontinued old adapters for Jest (jest-jasmine, first generation of jest-circus adapter);
    • JS: discontinued { permanent: true } option in device.appLaunchArgs.* methods (#3360);
    • CLI: dropped -w, --workers and -o, --runner-config args – see a dedicated section in the migration guide;
    • CLI: dropped deprecated --device-launch-args (#3665);
    • Config: discontinued kebab-case properties: test-runner, runner-config (#3371)
    • Config: discontinued skipLegacyWorkersInjections property ((#3286))
    • Config: deprecated specs and runnerConfig properties
    • Config: changed semantics of testRunner property
    • Config: dropped support for all-in-one configurations (#3386);
    • Android: remove deprecated native IdlePolicyConfig (#3332)
    • iOS: discontinued ios.none device type – see the new way to debug native code (#3361)

    Afterword

    Over the last year and a half, we have established a centralized configuration system for more than 50 projects using Detox at Wix. While it never seemed to be a cakewalk, the entire experience of troubleshooting over a hundred issues across the organization did not leave us unchanged.

    We see numerous things to improve in Detox, but most of them boil down to the same thing – scaling. Surprisingly, "scaling" makes an excellent umbrella term for nearly every challenge we've been encountering lately:

    • scaling up the number of users requires us to improve the onboarding and troubleshooting experience;
    • scaling up the number of projects forces us to centralize scattered configs into flexible organization presets;
    • scaling up the number of tests prompts us to optimize the codebase and incline it towards cloud and remote execution.

    Our core team has been facing challenges of limited human resource constraints and growing scaling needs for a long time. In many ways, that has shaped a specific mindset within the team. We evaluate every discussed feature by asking a simple question: will it save other people and us time to focus on more important things? Teaching a man to fish is better than giving fish, so our success at preventing support issues matters more than our success at solving them ourselves.

    That's why we'll be making subsequent efforts in these three areas, hoping to get back to you soon with even more exciting updates.

    Enjoy your drive with Detox 20!

    Cheers! 👋


    1. The mentioned threshold is not a hard limit, but rather a point where the return value of scaling up the number of devices starts dramatically diminishing in our case – not only the tests themselves, but installing NPM dependencies and building the projects also takes time.
    - - + + \ No newline at end of file diff --git a/blog/tags/index.html b/blog/tags/index.html index 6b54cc4132..a643972e5d 100644 --- a/blog/tags/index.html +++ b/blog/tags/index.html @@ -11,13 +11,13 @@ - - + + - - +
    + + \ No newline at end of file diff --git a/blog/tags/major-release/index.html b/blog/tags/major-release/index.html index 8664d3cd3b..897d1082d8 100644 --- a/blog/tags/major-release/index.html +++ b/blog/tags/major-release/index.html @@ -11,15 +11,15 @@ - - + +
    -

    One post tagged with "major-release"

    View All Tags

    · 10 min read
    Yaroslav Serhieiev

    Today we're proud to announce the new major release, Detox 20 (codename "Ashán"), which brings:

    • official support for Genymotion SaaS
    • improved integration with test runners
    • configurable logging subsystem
    • headless mode for iOS via configs and CLI
    • reversing TCP ports via Android app configs
    • and more optimizations to land in the next minor versions.

    Genymotion SaaS

    Highlights: Using Genymotion SaaS.

    Two years ago we added elementary support for cloud-based Android emulators provided by Genymotion SaaS and started a beta testing phase across mobile projects at Wix.

    Previously our mobile infrastructure engineers had been maintaining Android virtual devices on CI build agents on their own, so switching to cloud devices cleared up their time for more productive tasks. Another improvement was particularly noticeable for teams with a vast number of tests. We could reduce the duration of their CI pipelines almost by half after they scaled up from 2 parallel devices to 61.

    This positive impact encouraged us to adopt Genymotion SaaS for CI as quickly as possible, ignoring some unresolved issues in the initial pull request. For the most part, those were minor problems in global lifecycle management. Yet that made us feel uncertain about releasing it as-is, so we decided to take time and gain more production experience before taking any direction.

    The further experience was surprisingly smooth and rarely presented issues, spare for a few minor glitches in advanced scenarios. Admittedly, revamping the Detox lifecycle took us longer than expected, which is all the more reason for us to celebrate today.

    We're looking forward to providing our users with more opportunities for testing in the cloud, and this step is only the first of many to come. We hope you'll utilize this new feature to your delight.

    Integration with test runners

    Highlights: Config file > Test runner, Internals API, Dropping Mocha support.

    It took about a few months of work to formalize the contract between Detox and a test runner. While there's still a lot of place for improvement, the new Detox release refines their interaction and lays the groundwork for third-party integrations.

    Mocha was our first supported test runner, but unfortunately, it could not keep up with our scaling requirements as the number of end-to-end tests grew. By the time it acquired the ability to run tests in parallel, we already had to place bets on another horse, and that was Jest.

    We attempted to keep compatibility with both Jest and Mocha, but the farther we went, the more obvious it was that we couldn't have it both ways. As it turned out, Jest wasn't easy to get along with – our first integration with it was too simplistic. Over a couple of years of use in production, we kept discovering various issues that forced us to rewrite our "glue" code from scratch twice, and this isn't over yet. All combined didn't leave much time and energy for tinkering with Mocha anymore.

    In this release, we discontinued Mocha support to focus on the attunement of Jest with the new runner-independent test runner config and Internals API. If there's enough demand, now it is up to the open-source community to build a new integration between Detox and Mocha.

    Configurable logger

    Highlights: Config file > Logger, Logger API.

    The rigidity of the logging subsystem has always been showing itself since its very creation in the summer of 2019. +

    One post tagged with "major-release"

    View All Tags

    · 10 min read
    Yaroslav Serhieiev

    Today we're proud to announce the new major release, Detox 20 (codename "Ashán"), which brings:

    • official support for Genymotion SaaS
    • improved integration with test runners
    • configurable logging subsystem
    • headless mode for iOS via configs and CLI
    • reversing TCP ports via Android app configs
    • and more optimizations to land in the next minor versions.

    Genymotion SaaS

    Highlights: Using Genymotion SaaS.

    Two years ago we added elementary support for cloud-based Android emulators provided by Genymotion SaaS and started a beta testing phase across mobile projects at Wix.

    Previously our mobile infrastructure engineers had been maintaining Android virtual devices on CI build agents on their own, so switching to cloud devices cleared up their time for more productive tasks. Another improvement was particularly noticeable for teams with a vast number of tests. We could reduce the duration of their CI pipelines almost by half after they scaled up from 2 parallel devices to 61.

    This positive impact encouraged us to adopt Genymotion SaaS for CI as quickly as possible, ignoring some unresolved issues in the initial pull request. For the most part, those were minor problems in global lifecycle management. Yet that made us feel uncertain about releasing it as-is, so we decided to take time and gain more production experience before taking any direction.

    The further experience was surprisingly smooth and rarely presented issues, spare for a few minor glitches in advanced scenarios. Admittedly, revamping the Detox lifecycle took us longer than expected, which is all the more reason for us to celebrate today.

    We're looking forward to providing our users with more opportunities for testing in the cloud, and this step is only the first of many to come. We hope you'll utilize this new feature to your delight.

    Integration with test runners

    Highlights: Config file > Test runner, Internals API, Dropping Mocha support.

    It took about a few months of work to formalize the contract between Detox and a test runner. While there's still a lot of place for improvement, the new Detox release refines their interaction and lays the groundwork for third-party integrations.

    Mocha was our first supported test runner, but unfortunately, it could not keep up with our scaling requirements as the number of end-to-end tests grew. By the time it acquired the ability to run tests in parallel, we already had to place bets on another horse, and that was Jest.

    We attempted to keep compatibility with both Jest and Mocha, but the farther we went, the more obvious it was that we couldn't have it both ways. As it turned out, Jest wasn't easy to get along with – our first integration with it was too simplistic. Over a couple of years of use in production, we kept discovering various issues that forced us to rewrite our "glue" code from scratch twice, and this isn't over yet. All combined didn't leave much time and energy for tinkering with Mocha anymore.

    In this release, we discontinued Mocha support to focus on the attunement of Jest with the new runner-independent test runner config and Internals API. If there's enough demand, now it is up to the open-source community to build a new integration between Detox and Mocha.

    Configurable logger

    Highlights: Config file > Logger, Logger API.

    The rigidity of the logging subsystem has always been showing itself since its very creation in the summer of 2019. Due to time constraints and existing tech debts, it was impossible to do it right the first time, so we lived about three years with a proof-of-concept rather than a full-fledged feature.

    The inconveniences weren't fatal but quite noticeable, nevertheless. Here are a few syndromes you could have spotted if you have ever used Detox timeline and log artifacts, especially when running tests in parallel:

    • an uncanny file array: detox_pid_7505.log, detox_pid_7505.log.json, detox_pid_7506.log;
    • a relatively shallow detox.trace.json: test suites, test functions, and some user-defined segments.

    The good news is that the new Detox release condenses all those numerous logs into two files:

    • the plain, human-readable detox.log;
    • the raw, machine-readable detox.trace.json for chrome://trace, Perfetto and other utilities.

    A screenshot of timeline view generated by Perfetto

    With the help of the new Logger API, you can add custom duration events to the timeline, too, e.g.:

    await detox.log.trace.complete('Login', async () => {
    await element(by.id('email')).typeText('john@example.com');
    await element(by.id('password')).typeText('123456');

    detox.log.info('Trying to log in...');
    await element(by.id('submit')).tap();
    });

    Besides, it is possible now to customize the console output of Detox via the new logger config, e.g.:

    detox.config.js
    /** @type {Detox.DetoxConfig} */
    module.exports = {
    // ...
    logger: {
    options: {
    showDate: false,
    showLoggerName: false,
    showPid: false,
    prefixers: {
    ph: null,
    },
    },
    },
    };

    In the example above, we minimize all the metadata around the log messages – see the screenshot below:

    Terser logs after applying the override

    Minor features

    Headless iOS

    One of Detox known issues was always booting iOS simulators in a hidden mode. You could see tests running on your local simulator only if you had manually opened the Simulator app beforehand. So, we unified the headless property for both iOS and Android, and now both the platforms visibly boot a device unless you configure it otherwise, e.g.:

    /* @type {Detox.DetoxConfig} */
    module.exports = {
    devices: {
    iphone: {
    type: 'ios.simulator',
    headless: process.env.CI ? true : undefined,
    device: {
    type: 'iPhone 14'
    },
    /* ... */
    }
    },
    };

    or, via CLI:

    detox test -c ios.sim.release --headless

    Reverse ports

    Your apps might try to access some localhost:* addresses (e.g., mock servers), but this is a bit more problematic in the case of Android. The Android emulators are separate virtual devices with their own loopback network interface. In such cases, you must set up reverse port forwarding via adb reverse.

    Local servers are quite a common prerequisite for apps in debug mode – one could recall React Native bundler on port 8081, Storybook server on 9009, etc. That's why we decided to add an optional config property for Android apps, reversePorts:

    /** @type {Detox.DetoxConfig} */
    module.exports = {
    // ...
    apps: {
    'android.debug': {
    type: 'android.apk',
    binaryPath: '...',
    reversePorts: [8081, 3000],
    },
    },
    };

    In other words, this is a convenience API that tells Detox to run device.reverseTcpPort(portNumber) after installing the app. It should be helpful for anyone who prefers to keep such things as configs rather than as code.

    Read-only emulators by default

    The -read-only flag appeared in Android emulator 28.0.16. Detox promptly adopted it since the read-only mode allowed it to run multiple instances of a single Android virtual device (AVD) concurrently. This feature helped us to implement parallel test execution support for Android back then.

    Being overcautious, we implemented that partially, only for cases when the user starts multiple concurrent workers. This decision created a moderately annoying UX issue. Imagine you run tests sequentially first, using one worker only. That provides you with a regular AVD instance, i.e., not a read-only one. After that, you switch to multiple workers only to get an error from the Android emulator, complaining about mixing regular and read-only instances.

    While the fix itself has always been straightforward – close the running AVD and try again – this entire overcaution brought more issues than solving them. That's why, from now on, Android emulators will always be starting in -read-only mode unless you configure readonly: false in your device config.

    Reset lock file

    This release adds a small CLI tool, detox reset-lock-file, to help users with one specific use scenario.

    Imagine you want to run tests for multiple Detox configurations at once, e.g.:

    detox test -c iphoneSE2020.release e2e/ui.test.js
    detox test -c iphone14ProMax.release e2e/ui.test.js

    The problem is that Detox uses a file-locking mechanism to avoid situations when parallel test workers would take control of the same device. The detox test command, upon start, erases that file contents, creating a race condition risk.

    To eliminate that risk, use a combination of detox reset-lock-file and --keepLockFile like this:

    detox reset-lock-file & \
    detox test --keepLockFile -c iphoneSE2020.release e2e/ui.test.js & \
    detox test --keepLockFile -c iphone14ProMax.release e2e/ui.test.js & \
    wait

    In the future, we plan to minimize using lock files so that you don't have to think about this low-level implementation detail. So, this tool adds some convenience until we provide a next-gen solution.

    Deprecations

    Detox 20 executes many pending deprecations, so make sure to check out our Migration Guide before upgrading:

    • JS: minimum supported Node.js version is 14.x;
    • JS: minimum supported Jest version is 27.2.5;
    • JS: Mocha test runner is no longer supported;
    • JS: discontinued old adapters for Jest (jest-jasmine, first generation of jest-circus adapter);
    • JS: discontinued { permanent: true } option in device.appLaunchArgs.* methods (#3360);
    • CLI: dropped -w, --workers and -o, --runner-config args – see a dedicated section in the migration guide;
    • CLI: dropped deprecated --device-launch-args (#3665);
    • Config: discontinued kebab-case properties: test-runner, runner-config (#3371)
    • Config: discontinued skipLegacyWorkersInjections property ((#3286))
    • Config: deprecated specs and runnerConfig properties
    • Config: changed semantics of testRunner property
    • Config: dropped support for all-in-one configurations (#3386);
    • Android: remove deprecated native IdlePolicyConfig (#3332)
    • iOS: discontinued ios.none device type – see the new way to debug native code (#3361)

    Afterword

    Over the last year and a half, we have established a centralized configuration system for more than 50 projects using Detox at Wix. While it never seemed to be a cakewalk, the entire experience of troubleshooting over a hundred issues across the organization did not leave us unchanged.

    We see numerous things to improve in Detox, but most of them boil down to the same thing – scaling. Surprisingly, "scaling" makes an excellent umbrella term for nearly every challenge we've been encountering lately:

    • scaling up the number of users requires us to improve the onboarding and troubleshooting experience;
    • scaling up the number of projects forces us to centralize scattered configs into flexible organization presets;
    • scaling up the number of tests prompts us to optimize the codebase and incline it towards cloud and remote execution.

    Our core team has been facing challenges of limited human resource constraints and growing scaling needs for a long time. In many ways, that has shaped a specific mindset within the team. We evaluate every discussed feature by asking a simple question: will it save other people and us time to focus on more important things? Teaching a man to fish is better than giving fish, so our success at preventing support issues matters more than our success at solving them ourselves.

    That's why we'll be making subsequent efforts in these three areas, hoping to get back to you soon with even more exciting updates.

    Enjoy your drive with Detox 20!

    Cheers! 👋


    1. The mentioned threshold is not a hard limit, but rather a point where the return value of scaling up the number of devices starts dramatically diminishing in our case – not only the tests themselves, but installing NPM dependencies and building the projects also takes time.
    - - + + \ No newline at end of file diff --git a/blog/tags/minor-release/index.html b/blog/tags/minor-release/index.html new file mode 100644 index 0000000000..f42bd19a2c --- /dev/null +++ b/blog/tags/minor-release/index.html @@ -0,0 +1,24 @@ + + + + + +One post tagged with "minor-release" | Detox + + + + + + + + + + + +
    +

    One post tagged with "minor-release"

    View All Tags

    · 4 min read
    Asaf Korem

    Detox Copilot: Write Tests in Natural Language

    We're excited to announce Detox Copilot, a groundbreaking feature that brings natural language testing to Detox. With Detox Copilot, you can now write end-to-end tests using plain textual commands, making test creation more intuitive and accessible than ever.

    Detox Copilot in action GIF

    Detox Copilot leverages advanced Large Language Models (LLMs) to interpret natural language instructions and translate them into Detox actions and assertions. This means you can describe your test scenarios in everyday language, aligning perfectly with Behavior-Driven Development (BDD) principles.

    Why Natural Language Testing?

    • Improved Collaboration: Teams can collaborate more effectively, as tests are written in plain language understandable by developers, QA engineers, and non-technical stakeholders alike.
    • Faster Test Creation: Reduce the time spent writing and maintaining complex test scripts.
    • Enhanced Test Coverage: Lower the barrier to writing tests, encouraging more comprehensive testing.
    • Reduced Maintenance Costs: Thanks to the decoupling from specific matchers (e.g., avoiding brittle XPath selectors or relying on testID attributes commonly used in React Native apps), tests are less prone to breaking when the UI changes, leading to lower maintenance overhead.

    Key Features of Detox Copilot

    Write Tests in Plain Text

    Detox Copilot allows you to write tests using natural language commands. Each step corresponds to a specific action or assertion within your app.

    it('should navigate and add a product to the cart', async () => {
    await copilot.perform(
    'Navigate to the "Products" page',
    'Tap on the "Add to Cart" button for the first product',
    'Verify that the "Added to Cart" pop-up is displayed'
    );
    });

    Seamless Integration with Detox

    Detox Copilot is built into Detox and requires no additional installation. Simply initialize it in your test setup, and you're ready to start writing natural language tests.

    LLM-Agnostic Design

    Detox Copilot uses LLMs to interpret instructions but is designed to be LLM-agnostic. This means you can connect it to your preferred language model service, offering flexibility and future-proofing your testing strategy.

    How Detox Copilot Works

    Once you've written your tests using natural language instructions, Detox Copilot takes care of the rest. +Here is a high-level overview of the execution flow:

    1. Gather Context: Collect relevant app state, view hierarchy, and previous step results.
    2. Interpret Intent: Use the LLM to interpret the natural language instruction.
    3. Generate Code: Create the appropriate Detox commands.
    4. Execute Action: Run the generated Detox code.
    5. Cache Results: Store execution results to optimize future runs.
    6. Provide Feedback: Return values or confirm actions for subsequent steps.

    By combining these steps, Detox Copilot effectively bridges the gap between natural language instructions and concrete test actions.

    info

    Check Detox Copilot Technical Overview for a detailed explanation of the building blocks and the execution flow.

    Getting Started with Detox Copilot

    Getting started with Detox Copilot is easy. Simply initialize Copilot in your test setup and start writing tests using natural language instructions.

    Check our Testing with Copilot guide for detailed instructions on setting up and writing tests with Detox Copilot.

    Extending Beyond Detox

    Detox Copilot is built on a standalone core library called detox-copilot designed to interpret natural language testing instructions and generate test code. Though initially developed for Detox, it can be extended to work with other testing frameworks.

    Learn More

    For detailed guidance, check out our Testing with Copilot guide and the Detox Copilot API Documentation.

    Join the Future of Testing

    Detox Copilot represents a major step forward in making end-to-end testing more accessible and efficient. By embracing natural language testing, you can enhance collaboration, speed up test creation, and improve overall test coverage.

    We're excited to see how you'll leverage Detox Copilot in your tests! Share your experiences, feedback, and suggestions with us as we continue to refine and expand this groundbreaking feature.

    + + + + \ No newline at end of file diff --git a/docs/19.x/api/actions-on-element/index.html b/docs/19.x/api/actions-on-element/index.html index f063268034..32bbbdedfd 100644 --- a/docs/19.x/api/actions-on-element/index.html +++ b/docs/19.x/api/actions-on-element/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -37,7 +37,7 @@ dateFormat—the date format of dateString (valid input: "ISO8601" or a valid, parsable date format supported by NSDateFormatter)

    await element(by.id('datePicker')).setDatePickerDate('2019-02-06T05:10:00-08:00', "ISO8601");
    await element(by.id('datePicker')).setDatePickerDate('2019/02/06', "yyyy/MM/dd");

    adjustSliderToPosition(normalizedPosition)

    Manipulates the UI to change the displayed value of the slider element to a new value, based on a normalized position.

    normalizedPosition—The normalized position to adjust the slider element. (valid input: [0, 1], 0 corresponds to the minimum value of the slider, and 1 corresponds to the maximum value)

    await element(by.id('slider')).adjustSliderToPosition(0.75);

    getAttributes()

    Returns an object, representing various attributes of the element.

    Retrieved attributes are:

    • text: The text value of any textual element.
    • label: The label of the element. Matches accessibilityLabel for iOS, and contentDescription for android.
    • placeholder: The placeholder text value of the element. Matches hint on android.
    • enabled: Whether the element is enabled for user interaction.
    • identifier: The identifier of the element. Matches accessibilityIdentifier on iOS, and the main view tag, on Android - both commonly holding the component’s test ID in React Native apps.
    • visible: Whether the element is visible. On iOS, visibility is calculated for the activation point. On Android, the attribute directly holds the value returned by View.getLocalVisibleRect()).
    • value: The value of the element, where applicable. For example: the position of a slider, or whether a checkbox has been marked. Matches accessibilityValue, on iOS.
    iOS-Only
    • activationPoint: The activation point of the element, in element coordinate space.
    • normalizedActivationPoint: The activation point of the element, in normalized percentage ([0.0, 1.0]).
    • hittable: Whether the element is hittable at the activation point.
    • frame: The frame of the element, in screen coordinate space.
    • elementFrame: The frame of the element, in container coordinate space.
    • elementBounds: The bounds of the element, in element coordinate space.
    • safeAreaInsets: The safe area insets of the element, in element coordinate space.
    • elementSafeBounds: The safe area bounds of the element, in element coordinate space.
    • date: The date of the element (in case the element is a date picker).
    • normalizedSliderPosition: The normalized slider position (in case the element is a slider).
    • contentOffset: The content offset (in case the element is a scroll view).
    • contentInset: The content inset (in case the element is a scroll view).
    • adjustedContentInset: The adjusted content inset (in case the element is a scroll view).
    Android-Only
    • visibility: The OS visibility type associated with the element: visible, invisible or gone.
    • width: Width of the element, in pixels.
    • height: Height of the element, in pixels.
    • elevation: Elevation of the element.
    • alpha: Alpha value for the element.
    • focused: Whether the element is the one currently in focus.
    • textSize: The text size for the text element.
    • length: The length of the text element (character count).

    If the value for a given attribute is null or cannot be otherwise computed, the key will not be present, but empty strings may be found in the object.

    If the query matches multiple elements, the attributes of all matched elements is returned as an array of objects under the elements key.

    const attributes = await element(by.text('Tap Me')).getAttributes();
    jestExpect(attributes.text).toBe('Tap Me');

    const multipleMatchedElements = await element(by.text('Multiple')).getAttributes();
    jestExpect(multipleMatchedElements.elements.length).toBe(5);
    jestExpect(multipleMatchedElements.elements[0].identifier).toBe('FirstElement');

    takeScreenshot(name)

    Takes a screenshot of the matched element. For full details on taking screenshots with Detox, refer to the screenshots guide.

    name—the name of the screenshot

    Deprecated Methods

    tapAtPoint(point)

    Deprecated: Use .tap() instead.

    Simulates a tap at on the element at the specified point.

    point—a point in the element’s coordinate space

    await element(by.id('tappable')).tapAtPoint({x:5, y:10});

    pinchWithAngle(direction, speed, angle) iOS only

    Deprecated: Use .pinch() instead.

    Simulates a pinch on the element with the provided options.

    direction—the direction of the pinch gesture (valid input: "inward"/"outward")
    speed—the speed of the pinch (optional, valid input: "fast"/"slow" , default is "slow")
    angle—the angle of the pinch, in radians (optional, default is 0.0)

    await element(by.id('PinchableScrollView')).pinchWithAngle('outward', 'slow', 0);
    - - + + \ No newline at end of file diff --git a/docs/19.x/api/artifacts/index.html b/docs/19.x/api/artifacts/index.html index f01b8b792d..ae96788420 100644 --- a/docs/19.x/api/artifacts/index.html +++ b/docs/19.x/api/artifacts/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -26,7 +26,7 @@ It cannot be solved on behalf of Detox itself, because the problem has to do with how Jest runner terminates its puppet processes. The issue is on our radar, but the ETA for the fix stays unknown. If you feel able to contribute the fix to Jest, you are very welcome.

    - - + + \ No newline at end of file diff --git a/docs/19.x/api/detox-cli/index.html b/docs/19.x/api/detox-cli/index.html index a9f37d8296..ffb12d929d 100644 --- a/docs/19.x/api/detox-cli/index.html +++ b/docs/19.x/api/detox-cli/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -35,7 +35,7 @@ In other words, the path with a slash at the end assumes you do not want a subdirectory inside. For more details, please check the Enabling artifacts. The default value is artifacts (plus a subdirectory).

    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%0AeAVL!1$yURg+kwa`E$B!GEA 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 z z<_K>HVH{7+q2QAd_|6Kn>m4q7$t#DxZ?s$KsR7{Z8?YO8=vs~h63Qy6%$CVP`tdI< z$z0m(%-^3&b>JhJgGdhu_h}KEylY0aycyLHxrmnE@o)J=XgPu zno7jmAX8WK;(fVkZX@7P))i+8I-P~cNkZhreNAN>}vbqb_oh zP(JcJ{RFmN_0NR2C)eW<(zje~Zxy^W3i7~fBl3T3duYWK01#ZfmNCw$JmCfP`Ob+%F~RKsiEmo z6?GNizFv7Dv0Cb2jVQa4kwH0KCF@|JPu(F2g8|Av5l9>$0CWLB1n>pVzyOQ@5MbpQ zyo&Bb3`tv9yS%kUV5RB#jQ5yzBf>1Q+0dD)u}lr3wkf>4b{(QTYNLCR`ks0CDJVynM4uf z5_2)v#bhufM?j7s<|53^xw$l}mBm57nIEpRZ_^3D)MquKqI>5nh=#)ump3*<@(BIy-D5u_86B?zN{BQyD4c z9U`706A7JrV-uZ!Pf@8JS2KU$QfS~jN7G5rcO)aG^Osmg!q=<40WrExN0R?eb~f@% zarcW3wl$XAyvZ*)8QlE)YY8P?+Q#D&3 zKHjQkaMx1`_)PZ}7aps#UA-yhdG3|Jt?KuvxVU7Cn=w@Z$JXLsur9gP;d6(0HKqEj z(^@x5VlB#LVp1(48!nV>C@MwePtGaEEDJo*m(HyPIw|~~Y)x0>MR^@lis85RD`xEJ zaZ(ETSUHz<4)NUSR(e#A)BE!iIgam>9xGeCEhQe_bFuKlXs4p!Ok2j%1;Oo9#nPga zKmN-uC8VCYc>lT6T+_gPXO)K?m($xzzr6mQ{BCMTZ_8`%&(7LQnG(G^Jcpn@?Zr%$ z5e-jfPoGYy!={T;X-F$}A%`z648(1Tr~i(j8f7T9c?YL__hSh+cSp^htE=EQUOxWw z$mpT2cePyVOMBxCv?|As$10WebNW(fr1>X0aM%|%_|C43vw%0*vdIYBCibI+I zfRTnNj}<7k&i2d2!nyxrUDuuB+G^cIK`g68S;Q0N2~^=d5|b_^u|YyS~I?zo_peV}fe?+etJ;qh7U!jU9rwNl`;(&k8`hs__~c}GM+HeXbsnY) zax$KD&z~z^JFIzN!`WjySgM%*pT^%DGxz9ushs7nhpM8A2{r0jEmx1BPv=U{$ZK9T&p47DL@FIX=z4jkKK~OdC75>5nk?@0 z7Ri=KXRy9ojbGV`Pj=M-S&L<@yyDQ-c@;*v1ivk*k#?Mu_C|ldfkDO_~Y{VSlPHyvE@GiOA{+OQJA4Kpiq z*Jv@nWkCMU?9QiAIugM(JzMTy6x4uL@M2osnMXf*9ioh{UL@*xF3jBGI|?hF0gi}O zXbP1(7xT#o{(CxxQEt&ucSSv9rj6%Y>6ejXKbTK?btA<%DZ{EJ=!)E5cB8#~PhMMR z?b;KW`-~c+i|r!n>h)UpeFguFl|1;ds4Wrb#?0nOwEXEeI^;ZjJTkZ7e;1IyzOCat zwC|RrlQbPpXbnF(J1_O0D^lHO!)+$QRHEeO4U52)K`#pK(nyDF*k%Gtns%(<(7I;=JM-;GqFVn%=R-T_*wIpoZXXT4aMI_xwv2Uro!Y_D^h83^q5%I z5v4gY^|E8(0QYYRR_#ur(zY1Z5;GHO@PVOi6)0MaxpQ=qlFB^F5nFz1U%y~Vl$z=$ zJ$QCQpA=|DDLmD2K1N;GJ?x+O2rIu>Z?ELTe!6h6zvT*iLGd4d_s17wNxUENCf$C| z<1{$a>43g^Q2(Qe+Ru~sY7kZ*fG&UNl#qg1eYf82!`8(;V&(kcfW$-S7bv+S|7~Q* zHML@c5erh?bIW??Ht4?8VA3pb)OdCM1g&Sj^tyb%eO_y-Vw_xA9|O53Z|1YLh%)Xj z2KB(t{J)U!&E1{?#?P#GO##6j9*$ja7N4GV{UT=29W^k+o-u6x!d=>aZ-zYgZ>s)Q z8R_+VhD`oU%&#k4<3Gy|GWq`+>2YwcR)^VRkNX7%h*HDA1J^HuBrd;C&FJl#=SZS# z(Yl_4`<33^TgnI8&b`}BQ(lU=wD8Q4TSCtPz^$>{{l5$L8;K|z(s6UkVfEi$xe1pR z|F}n5jIbrrC`(3hQ?E~!Z?Pq9>%`si+q0?U% zA}_G1NAMH>lM;N@%fDd#xzXl_{?$wQq1y=tN`5_FQhpCkC)8&gnvQ1$t33I8?UpI+ z(|@)u8^+e(Hx&MyhEQhqR8t#NI3((A`*jo&oZdNj+x&Yhn_R^1kwD&54!PoE2gMmg z1RKc(Q*8>=4QUPn;gy&I7sdkiEP&u!IRzR*NBGKZ(2xl#Re)}21snQVrFAi-Ik`uk z;Dc6qbqZXGndqbn3e$UL)0~6jaqJ$1ZT$`g9n8NA_g$28qk>92d4&-<<4$f%R-e z!4!{RQqr_{JFB5Q;iws+LORhpCf|G%ZafnHIh<(C-3KbeeSV7VZ$HJc%lC~aFuzmq z5mV@6Ug+oN_@yZOzzlp2QxKX?Jm$xZ9L#s0DX^r&hc*g0^ZAxcc-TI;F?7{@N%+X; zV2jTFyqeN=HLbWPbFk>9vK&{oIM=+GYYrnp#KPj@lCI*ih+@G=afNJ2m3hfEKTrxN z0cm-y2l7m`oGX$QAD-53uq$r&E4B0_brhH0>neRPQ~KyW`1qL@7mPaYjoSP*{*AQmCxsFY2~RA;{?H`M**ejv*pXh<*Qxg zYcu8DgV)w&uNTLb1p?*OcG^pC6@RUiZ_ix+`|~=mqry!5I^y0nDGJhI1mU)haGQ&G zJ*IcEy38tF5j8fp#=d*mrlCtv&p!mgQ3FW^vXQ!Ek2>E-%g}ng0WTKBcpl@z|8Hr=tUX{+qsl`0Q;Ida zNrv5}0GE_7RL+U4uQ}K#;MUid_?f#PCP&a&G|_IFXtA(n9zmQ)s&!|fPtnlb6{533 zp%0VL$1Op&0^REkaF~3x1rbj<*+u~fg;|hRjX6XSE^QJ1Ex}G2A%Oh^)CSCt zTW8-2Y}81h*$7t(AOi%S#{pOx%)XWAXh2*Gjz`%_!gK7Oo@@Mi@Yd-26E^%?pU>Xv zKHXS6f)*Sk2@CkgvqVNrF~QSoRHhMr5-*gl;9z)_O)(*>5n0(f71^k9jMR|P=rM~J z8bO$kAWUUN%(>NfwGj@2b?keJXcQ6kfrwokL4V@nj5itp9?&MVw2Z(?nNm`PC0HI- z2>`q)fD|i!fmmNUBC2VNd=~@5(_kM)v_LK)hfAI_!bVBFpyNE11LGvqt(uksk1w zd$vwM6d9@z1zW?xid4q>U6~Q|@t2~-bU>efUupz)erUIV4$m3s5U>bKzr>_?STDgz z&zX$YsZw|jy>(&ap-U+MGDUeAb((VjGcIXMYxHxk5b>Z?ne$McT(~z2;geD8LBWo# z<3S=;=+RlKK!0M2uH%KLM0iaj;8_HbTG$63VTcZB7ZONJ<`NM}ViN4%GG~d%CN5#y zq+^MPjyoncNe5;tJRAIgB?w6W-5$lO!_#nQaKOecp)bOay$f6 z3Sf4CQ|K>D!U_OrhY>JygmVEc4m$X=Wyl6@|C3UJh#Q&7I{CI>g3Q$TDTi~^4yb?vklt@0U+mX=cS3%g!!QOm; zJNAKjeP%$Q{lCq<|NH9StrxX{ zToL@*2b(ho2{P+q5r1$?bke%c@P$LfC$2Zp=WcjC!w=C!$046PJNSMjC;pJ?zwnOy zdyw?;vgZdrVzmM(QaX<3BR3sm_;p7-0LvNaz3$xtQo#3e=RMoT7L6p|EBqH9@Z`+7H{yCo0qdRu|1Mte z(Hfjf77_;RxjV9dKNRi&X3HUwG^>&3pkU8TE_6jO<-aQ!e+K`NJlu{ zhqBfMs)2coGALE+TO5oU;t}qSbQscE7w;2hEs520N3Is%i9e2-$s2jSjuTj{4Kmke zS@B_Xf}Pxl2Wkt`yNSCFFN6(MN0n5=ZXyq6)INCl0v`D3y!FJuxlbSjOn$j}dbMs% zf2OnR1#wE$sgk%w;GL&E6*(!{`{A=7ng`o^9|1ey5Z^fa=o1=t+^)OsbHpdpw{>T= z@w7Kn`)di054f{6<}%(x!^drb&sG(_D4JXM}r9g26iS z{_OWtv<PS#$rzMX$(YPM;{VsSV-W|D@G&}c#0ws1-S?YQE7JBe#M z&X>}Wm=6O8*w@|?OM{kMf;l@I+vk+)KtE{S{QzhX`8oahdhUOfI)V=$y=D=HF|hmt z!eI7}l^8nj)7y_XKjOK#^8v7#-(q(me4PuB&b=$7>gK)qx31(4U;yhTo>JHF_C4As z0-Va9D4<@=a7GF{EK)=O;QtR~=x>jAiu0*PBnjZhhKCRXr$yTKrO<&=2MURz1yEd` zWh%o0h{`M&`;q~6yJ#dfZwTp#+-{=S)7hS68Ig29N_X}RfkWJxUmm*N8oG{L;$F&L z4G>?HBz2!Po^%E4qK%nOhodel?v*WKV zZtgv*YioLZMZ>ga5U3B-)P3Q2 zTK{&~vA@bg+apY(CPPJ4`QDlai>q z!zy?`6Td(hAQ*gG;09bq{I8}jC@9}re;_E&^;cUA2^1MVt_!jT)d~pmnS&y7)fJ6b zbTycL|8(@7fK^mGycvW@VHvbYp-Kl!uM}uXcO6m-M{n!UF z7%%;zGsM|(@5S#+caK~W{E=~Gqcwiq9{0-Q;8a{G9Na`n%zWyu7v6aph=~S!C|crK zI4^RyyXNKiHkLi$d#{+4wx@q3IRE5CaS$hVmxXNNNeSnpoz#B@0u?l-erjHGV=yY@ zeUnt~)MZrxH*b5kG59S66|BABih_z(mzWt61E-Ok3{Jwt-|VHY#OVOXB>fOHRbgsZ z!`AP90)HvhGl8ov0&`Lh1Yy5Ms-NYWw*E%@9rljM+wD5*kfHmFYk$SsX@w;z`wz6Y z1?RN!`_rZ9sF%s!8bUsxn@Y}tbv-QXVf>3Dsn$<9N9$hiHOOJ8ppTsOOH5KC7XC;k zr6@hxaVq{3v`Ae`>@-EaVpBJ@mEd; znk8oAo+t>RKhV{URq?Zp_^L7!!p57-Ja%&OY}r@J+Vd2pBrI|ixyn)sKkZ?dMTv3veVx=KzOVjxruW+-u| zPX)pTMQg+yq+j;UeT<~i#E%yrSj+DeX0SZd?<59EiaH_H!uLo|h9{YL8Q|3NSI|l^ zw&X+WVlo3yXpOU#vY{%4#y1Rfk;1NH^r+n9&ep6{tdqQ45_uP=#`gUBOW$AQVoSvv z+~j8- z?#+{`mTE&frs5t?Mn2;U*KgBGqk@`pFYm^+vCEUKh%GGLcwY$q8VGTES6tA3Lr$PIz*ZUeriiN@&7WZoP~s|c)#@G%7mdUv zOjI8XI?6yN@TRD1!WkKd~5H@e_?C7@^e7_^4kWT%Dc(o-js*2#DdUeF6Y9 z%}&FFnk0cCLYAx=K=Mq6hx|y2$t!OVLky$!8>SdQb4s|8C*&xAlSywk4I4#%#lLnj@;T~=O;77fn}gExY@x?iW`KaC5XUdj;ZVG zl5X{U2RgE1q~w`cxfm%#u5kfC2QtTI`KT7a)=NjQAy%SctQKU;$56GB7C{Ir@uNQi zd$Z3uZW6H6X!Z>i0nwdRy||cUSVs{Vf^2r~(?l zOy@1&vb(nb!FDPtPMA-lKv?Zj2RRWYB=vI6T8_6IXZ&#GiSLW?8gn-Z-^V3swax{a ztXOpd6YKMmRoCm*<`fn4-ueItBmwO0p@fjpU(jSQeVv7%0ch9T62ZLjL{mc)3y^DY z)`N(`H6dc>{4`MXA>t5Bgf(FtiNJgy@49f5DAFa7i~&w4>q6q0$`2)=m=maLq}DOd zfvGpQ?;v#nWIpGPD`9iT_qB3?N!*lFFkP31+n8zF`2DJYOjq_*0PNb&wFjrog~RkA z7h#sb7?~3OvJ84BT?OpvGirk4LG_xVDR}*pZb2pD4dJ{9@%{Isbz>>_Rue>Ya-3ln ze}hWue!T0C{=|}?LniwUP7W=_O_=_PXiQA0seT^q@?dXY*youp7v^zg6aai5s(B`W zV!TLEeck;1Kna;g9%|`pL(aW}V<3(2%$V#`U*DThl3Zsia>aL*w)}G-Qk2A79FwkS za@}(#!>vW=R5tIb`V)0;5C<4YzUr=1kGr?`*lG0v^Bw_x{c`_YK>PL5>14{#s2FeD z8g0@ZbjR{w@%B+znxJ4{SNw;|cKD)l|UuO*d7TPi;w1 zwo-&_{AaIvz+lR#JdRz=kNSsF=Yaf?Fu4m4?uNZG*b}Q2|7-8V)$iZ239SUH3oU~` z2x(?;;C@{U1PmBvvHs^mYzzA!O6BTiKQ;EO=z24T2sEljh66AnkN*3nlo2$2%;5Pr zVz4A>V79e2*7)9L2a*8{;5yE|d^kRDz$&uNghMXjaN>D`7qQ7O3eJhtHs5$h3T}j? zLwJ_nh7lbw18VHdN_KSY+S_WqpbgOI8i{%f)j9{lyZpY~Y8Yw)2C!Hv&@ORPQ5O*4 zXhbte0C0iq-?!(g8wwXN?W+cFJ{Ww#>Fy`#4QTHw?o8zTMjJ7B03DvmXajuj*i<(u zk`jNwEoy$H!XQp$F)maJT4t74R*}frw5+dO+3>)?giMzw7u&w(~JX%^zLh`+C`U5)tC8p zJUw9D5>7SET5g_?yj>#!sPpmr0(&M&eJ1OD@8#NUbP$1UI>I36i70ggGm}sD7D0`U zZ%TH*IcK18Sx;bRc0Q4le!0`y2#8F&HF@89!LlpZ5>h+WqDC@(`9)ia*S>ULOK|pr zjq&ErLA%?hqgu9hI6biFAlr9>zP+axTAdN7&ySxJZd2W!*tk28J%%kjtzZG?YBj%9 zH(*-J*KdtQn&ED%8|&yPX+Z(McC);&IV_F9lKRk)$Mr+b%lFiWHtYQ78`3${(Ae7a z*|ctAedz39nPHRVL5=Te>gP|@`fE2GEV*Hkq2^+j*|4r2qfK=lW7~dc823_5T77t0 z#G>S&F_Dik&eOf>FdWAj{GI2l#o+w+Q=x!EP8aWO&ZIWzwjVSE_-fRyVb_#%BK3(H zUAvw>-*O#>p1SRzem`^L@qqKeRgva^D&s1*{%QQlp!->NH=is%J9Til5pOKeqHuJ% zTqin5->&x4W{bhiF%1{1o^S5@ z_lv{78g0)#EJd{{*q(f(5jhpdN8&bBmR{Z4n)vt6;=g~(a=&i1e;bDR($H3;DXal- zeH*qdsVayYK_`!3LaBgML!tqA8cJ4UrbbfGp=PjDtm4(&5pnfViR13L=9X{Uu%(&A zv((i1krXk&lT=i6i3TIlM&&0*6`nariZ&$La^$(lJI?4+khEr6k<2tqd<2qWk`$B2 zs0ChMw>%RpL{(!ztuyR=p<;s!7Q}*5DjaEMqUsNrRLR(`{o?{-WP|phx~9G4x2~Mj z^dbosOrMOv`%0TEjqm=tZ!&J5d+y*Qcens2#G3b@-_O$nx>ck z(^zH`(g6MSMDjWy&gycJhpAIsJBf6IaC_eGn|i+gyR^2fPQ<-oyBSC<>zo9e^&t=GR<#p z_Z41A0SrSwlM8is!WDj`0<5IqWZ<8R8K^V;U{TU*2N7KT6k)xTuaW^jV^DksGL^*N zm3Vd{^xzfT0gqXIHAkRxHsEX2s9hzYW3HoTXXM;w0XQy; zo)l>W$Uun~wlTL|cc0$fk`6cvVL)#^8iJ6k=&%I*(cwm?{cY^*;k;m{3+_r;AI4|ZKP0D!wUP)WHn~k|MyYrsk zs6FI%ZkDQ|^&&j$wPTSYl`Uxc$gwQ~T3%~`on4#{d)0-YQwprTt;a?V8e7%YkeqI_ zqwjrc?YL-ga=ddi^7hPqEr9x1Zycu1fB;M~KciFe)T5P;_YHL)ws=`)oC02`Kpa(< zuDv>s;*HVpzHVIO=a)0)AG9kn^d1*Ac4Ks5OvDenH(+=oKs!7hdi%*x{cJBQ{@&}^ z9A~xVL~1x$Esc{O%b`%&7)+Aw$gJ!SZA+L5OBKK|V8F5g0t2;mwN4J*U##j(u!cDB zy#N!!Wbc3lbk3jaM?}A>S#1Tmx{gAU9Jiwl%ivEYi35CbIE3Jpf_TZLp_Ve$yrU zzunGL3fo&uO?=-7l;Q#i5PsKBeO8>;gOLUlDs;#Tjmy?Rshzd~ zL;u^tBXmgfn4C`O&`y@WQ}mMQGj+Yp@WclkurXJce+qiN%krMxA@!nm6Dm9av|L=Z zI_=stwqt&)A2q=w4duhol*S&0m3A+mGAYhilvK7X1kk z;1XM)jK*=vr}uYNztGhjlW+R>Rek48w_~eMqYX2i4<1a;#Ri_Q$$$R->eTy-8f5pa z_YoBwC1Epsnr+bS-LwR{A6^dF9@=xKmRF=XG_x{m9E>+V^X6 z8TXDp8;A^vSE$N%-#Z)0C|Kc$lQbzD~W^OSffACu}Av^JYgqFHGT9 z;l1X*V@1#3x0bIMijN)OCu>miy=kzC`dK&WH*&noa1hc_QGP-b-&F!UF{nANmwhK4 zaU3EUjgVjrWUyHYVVM9MN%WsXKIqQ=`8!pNSAeZem+=zOAcL@ah%o@`3@;G0Ff*qe zR85NT19VRQ$Y4Jm^o5Y`YCiN2Acg}o@gu0vh?fowaK-AALSxFyzsGZ+XI&zw7YT0J z&l~%SG?(mD!RhGR?98X`c>9J-p*y4#xLSunf#RPB7*GX06L%*0OCgi5s5N1B%r87C znvE=v=EORNONGJ2FsO4Cg^`#PrHZsN1jHccBSuOu@nvi{CD-fo5WFY4i zrQw-08gLm|0UCYB!+yYi&ebBPKYm}n{G0)pKx?`Ky}HZ_tLt1WP_y%WbUsVi8A&vh zfX?!yrqomgj4uZSsih{x7hv(`7`z$-CoP%KTU1!LoEYhweu{Uwt_;mM| zP}y81D*Eub90ZMR7JK#4CpVZ((M$2?N%lG4ZvQe zrLJNKq4czPUpaz8DpIKMT25IhDzf?-s~&mevm7aY~2~36)u}jfusgGIYLF3Z1R^+iA)LLBO|$E zCW}!7=tp8Hu*^!2XC=6S?7;8b6KDrjG4j zPP|iGOr>2JFiDNa$Xf^eZIrKX-_U1sp<4o#p55y_{wo-k{*=1DBQBVZ)U49xi{0}o8O)4JtQmX~Ef$_W1>tybS zOCu=%;?x5`TI3{xNCD_GI^g8ruEbh*=w=AmRzqTbl!h)0A>yc-0MrqeGw?9B?&#}e zJnxk_w>J9~2YY@h3*=PBxIG26 zO;dWg_YbUKh@WQ3z)jEBj|iVN=B~H-+caqfzqwat8}I9sHFo1DI^>PXxRyUXRPkm! z{%@9%D!=XM<*28}jqf(hcY;gz{w(9Rj$V&1#ZdRjG?&UQbbj+N?Cb1+AkvzN%c&-Z z(PtOGV`&bi2n^5J7$M1jX#*}-KG*J#KT}}YmU-$jeYB=6+p&C`?hXpP(NA?$oX)6b zo3D1NUa|i5BRD%5Yp#~#xZ|u^u5-eEn3S8@Pqln^Gw~#hNX%$2MQoTtHxFwj^(qQp zW5T#54ajbe9-oR?tL#@)ST>N7i`vdd`r8y4yC4bRJ0FihMS;ZLfWpA=(a znZk&>+UCDCf{@nz8lI50aCvWyHNtI)*yjN@lodX=dF^2PFVgbQxUKY;HP2_ahSpV{ z29iG+hyh_ms(b?V8Oiy8j7Y0{%%aGKz1pfnAS%`FM&c8Ta&MBO@h!F7=Vy4{Mr`xG z8t}4ii#u)B=2p#^o62lj`WmRRrTN(6tR8X7%2SuvXZ1TiFC7R?v1D2ZNUn2(R(KH% z{~~c4_)J|9VJFFcaOJ@r@KP0X2yBgNqG1~~5h2$XDxQ*6nv3#JHoSZWM*2YgB6b3F zXd{r!2R4WF+A2Ev7WUL199Ta4OcbrFUP z5%E_Q{^mB!iDv{0@m>du*$J|%c~t?^y}YT2_Dg=1;`To9+kWg&GyS(Z6-eL8acLD))8|UKN}}6hV54&GRDAW0 z-+8Ze?p0=C`9YYTj2!bhCU7ba9;a~Tnqi-Eb4!#R+t1A1)N4a*cyigy?i>=S)SewK z43vZU$#!Exp)2tO>D@|-AwbLo)l|eisc3VJn#pQp{*ig0C9q%*5VQg_lmHV)`c?63(lssXCiJ@@&g3e3kxR2`h%N*uSWxr@D*nkl&kcvFTz_MN=6RS3BLEDejqMJ{*{0RQ4o4Kt@l^ zy&^#D8hs_@_syjpB$wy;TQxI&(YD!ch<&l0LGMp8zLM}?_t6&AhUw?ED!miF?3OOk zl)3sd&keEQBynf7`OHcQmVUIXn3&kUmWEKyHm)wOMFE%ql71RG9%OQSw}yxAA-6qv3?h3#`(s;?KHY>ugQ z4akw5R*DEOwD{wUUM(C_#Lj_ctBHng+B1XY-nE4fbu|R<5Lz)lIPc|~dFSRh%&_#f z%xf>T+?r-5+dA&F6oh!pm`}eL>*(k>q!)IoY0T9GhGn11mBbu1d(z5>`_=b(^R6aN z>r+UF;%BmPEV)s&svS{-9Fr8o4FBO(aEOMNi)Q0x2dbb$4+~9Hy-Tb!>l$o++FsP= zVn{^=$L8|&u1L>4+y;@4QooABxZG+`xLz5Cxt=Y}ee=?=vzzb_E$K+pORRsc^P`Jn z{{b>dqldNjD$>yEQ{DOJCTf}m7U>Qah`htTH9bioqKzw(TZu@XvVzxiH}V-j3Afze zwLng`FgYzW%+4v%dY+E(>-T-1hpu>Ap%N+~>wjsUYi9s;rn+L&p z=75`cV_MK=-c-zSwC$fk&`dJyx)0E}aQ0SHQPiZH8q3NK_P*?r*U=jopzM1Vt%}sV z?6{|>C;N?D9<(=^iqP*gb}XAmEM`{^1Tp`V0p?@2gyDQuvX%QDS^$Hfl~8Tr*NJ^r zqKaq4!=*jxd<%{;2zwBu03TJAOW@?S?0R8!$eHez7L?*DlzyBiBXzle)*cvu-K|Vl zGZe>yQS(w4!v$~M9RMqtE#=sk&%ZIXSyF$_EraIdUTrQtIVFcq&7QT@hWd3@9lmO+ zjC5d9_-jf5RFYd|x%{WZsDF-xTQQ~`G*Z^Z=96tT%6o#fKMgNuoqDjKn7UYP-%`V{ zRL1TaU`v***F4K8Y(Kc_WE!pl9L^^LDCdJiF{E?ixreW@l${opJ>Fbafoms#P3M_g ziVmV=)a-EQn7@3EUr{?^2@SYjo-D=5MG){nV&| zZ8iC#fPu#bBc*QnXSWkI*XTkVyyBBy>Hwb_K*z4h!fNb-R;~ac91)T317F|tt)0bgLQl^E$D>AV(q_M}AeQC?T!3tE z9_2~!CTthmr^G!*Fho{-8DM9&X3g+wRGwl}Z z`5XLtOJ!$RuDJYFL#C~ECRl6SJ;&z@CEm$%F0V2t5L~Eyg>j_!8S(N}Zl8+`Dx7sy9t3fK~o6aEoW7>IB3Y2f55HeowaG_Ct2 zM3-xS26N@WYJ7x@_ADkOF-@QN0c~yrAXzAkOrrfs4Eqb0oX|Ly-3==nJDEwB6M@JO zf7d^?@rU25CaZri@FS_gq%wOn%(|%|VE#75bOP|x2-Nmt7_r9#0cp_cR)n(w5xQJv zw@u6ubYJc+RDg+M)pIHs>VF1FpA?iV23Wg3q!X04%v4%i!U1+k9&NL7Y@-tVHU=v{%O(6G7 z`l;D6#F|6#pG3q1!AzC}bWz&wqVzH#DU5U59kx@AlRoGlbA*~{tG*rvIzWJ{og9X) zWyXhP@*xJaDZie!e6$FCj8Z^_?DK?QvTmILV`~x z$VXQFO(IFMiT9R7T(u5o!)Tdoa6-L-DpU_}QaF$bF-b+TNBG9sc!RXLWgE#Jm}Gd0 zP=pY-0(jdUkA`%-?bIn$So@7;ibU)kR$?qIK%R^g|HfP@trr1sE_wTg^@N)xu^wmtjolm{*3W8e-vxjuOs zYQzEItB9+G+5nY(EF02^Y2ar>vSS-0GP~=uZGl&jfEiuKaSg`Qs>^P)c8oggbxd87 zE(gFHI&9^HL(*{0l^qi{;b7X|rrPHb%4CG3Bq*#byZ$x_4>eV?CysMteCW7IUt^<> zc6*i1iQL8%97Lve+qAQfB{V!y1g>fWHuqAd6VgQMKiG&IbL#3F`z8oiSL2VhX=Buy zyKXcc(|>o;q2*Y(@I#xat*9#p5RPskel6}M|E~^4XzPK1f5P;IUly$kPcWI?KxdEe zJZn`v%6c0EGHka{Ky8QZ2p9!RN2>Ru6?P$BEVC@!id-u5h@mXy;(5c-ZtsbtJ%Kz&CyG`}W;wSFl zYu$_ljheSPeAK$`^j~|Jz+Q;7#MU)WeEM`zzeQqEu-aS_p-!cKQlV>2Xo!*DeRgk+ zM}4l|klsisWJ+JH@j5C;KlbQd=%d+>m=G#V_hbDmKickQp9Lhb>w|dpu~ZiwfDAQ{ zMZf}XJ&ORZ;pnm<^$$7kmWLu>-g>{>BY=vJ_huXAUN$azH9d?K9(oKw0+h{~C7^H( z8BTM;zOqQWd+!?STUH+)ZtRoj%~u5egw=zYS}a4oQ_{5r>YB}yMz}Ad+@~2_)YOEx zHkTi}X8}Eo)fSVZoiEYVHGQwH%9k}Ir#|lJHn9fAdu|&$hXk~FnT=BO zH%|m~xXDp%Ew5`FDDc_^qaVwNG-!3R{LMS$sP(Mf$RSkHaCCgIL*m{$_4`xmUn0Y8 zY2JIpyk9)2wOm~|pFy&JHf|rPIzIcJJfQ*0v^|t?+a11Wy3f~)bmCbb{Uo-~N*oa# zS!>p^m8JI1Lj)3KY^YU!u`%CwasHi;(}WEf$nN>#-aX09CuNJI1t_NOKPCDq>UN^k z?D1K~qfhPr--A6orajQl=VFSet$c$~X`8;=&JpTrKkt}+nb=c4;q~ZFpp9?92cH_) z)u$#V_G1$<*smhAJUv*lkUeAB+_)GmFmf*cY7^dl%UvaM{<-(@{V+yI*&A529eZ&V zI`)HqDQ91j6d)OMr$Re4Z)5$@r`jB1yhpFkeq-4mm88JcBmxEEZacs_zganJhE*Gj zofsBAcTDC|6%FA!;<>n|AD^_ zLzW_f0~Hl;;iyo{oP}nFriG@ZO&poIQd6@mJ%9s8g{!xw6>7t5p=FsZw54W+rG}P; zO?_8p+j^J$_4LbuU#qe0m|GEMFS^*lLh5{*g>CUKA5?x>|7w{d@H*8%1TL?cBp<;B-)`AJPgZF%LB>@c05_QCO<-hJZ14!h6ie(0=<;_uux zb7F-R$l9M=RP!LuKF-uDY-*H~q_xy&>*>V94!Ljbf1iCn^{67_!Kx#@Q&e^ePxEL` z(A-B)5>v4V)_&mkOA`}={ZmN=AEf7P8D8JJiSIT(`58O5F!#o3y&9kH?>>}oK2*AZ z@@L7%OhK$@n<c54wr1Tn)C_!F^2s@FuSG(Wd~ob{_450fPS2Cck;;6Q)1I*%;c_M!84&ZnvFi(S_o z5RZkPi1W5Wg1oELC(@z_@u4m8nV^^;-*nxTkr6Ifk#l*|za~3A_}n}Jl?k#O5NBy# zzMjDHL;5qJjqc;g#f~3SA8qzJKed?UYq5RTiJZ>OlOtEqOQ`k!3+8w0Hm|>DhBy!e zV@Tc5#H|g1zfy8h%Kgx`D#77|?nfJ^Fqqj1-=w5{Er)aM!F>3#^SkDfuGuNS9D6kf zLS6sRDSUlEK$d*8V#QB2%i1@wb#=E0iRDw>9y1>87f!XBd_CiB2HOmJ&gAadkbVS| z$?HsPpK5^<6@53Ne`+2O){})*_>ZQ@xAit(R#4@lJ9d^mQ%BYB^>nKc%W~@W&r!Rv z5HB|WAU|%`1q^uGU{gb4Q1?XOnW`1Pp^nyibC^^$yT}NBo`>3~CA;;>hQl(Z-zg+R zWwUl2U$?<5>lhkoW?}iu#gN)x%%F1+mXM|w$|QB5QRJkBAbF^yd-wXraA4Naqdb9Y z@~uAvww-+OKYD1fv0hlez!!nHIsH1+rw(Z`uLNp1zh&vEHLY<&oz?2ZHRm>U75>G* zNs;Hb3>*)?av*u#rL7LUto1;!55y#m$~0MZn@wHsu-J4tO!bAdI_9(a z6)XIa`L;Xg{_?b2KzrQ^7|ErG=+;RjksC=}&Hf3Vh9H~+QGhZMMv#$O>sa1Tyc zvSujqBBK*AE09*Y^w*7w9}ZZQ7@wwXx#kw3_%e#tjLMfDUpoLf7`XHaUNH0jJ>s@M zDD<@F=l)d>y)W;&_i!kHI71X1gr{}-ZbbKuO z*t|e7L`5sVczhdW1DAe@Neo2tSIei|B5Ui!Zjr%4SI`#t2V;XyVsUV>Mo6hMA@T=^nk6_dMH|Y3_!vizOZx-~Rs^0vQT zr=Hs-aF#0ed^*taaijW^*^3A2tt+)-t$*9@cwy&Jy1i}Rl=+{-^eoR^M4v{5JwDER zYHMA3Tcwxv$Epo!LvQ}n%|2@QcSGLM=c2>ku|Vgn@4Ba?8V)*cX^Kt;U20E9UkR4s zykS8TU9%t#L+!NaHG|qt7(5abxLfsxgwN=MzbEfIYL}HqtmWSLZB5!4*r$i(tXT|< zLFP?|($#;$yU}Z{=L|j$L|7rn&#jZhJD4jW^LJfZ-_8|>Ux*$xuUR^$y8zFXs>TAP z3+33i*+r)sus58ST>QRbZ+16r<}Bi_gFPt=^WpH!uAXX_2O-IsNtPDvj~3e_DkKHB z`V93hFYVkjfLk%4?!vRFcDk`;j+abJ$^LZDEyV)FBbOtzb6*w`!@IPQiZ0`aeNmXiORBIK+NxYZVxT(J7G7|G!PWR<`j%@Pg7ud3k{ zrlZ!f-hyEYyuvpMtV!eenW#jibPjIS);9xuE!kp|ibEeW-g&;LO_;wJ-Y6}$gt%}reR|CKsy8tL2=Yg6~W$7H_F4^i*xbE^%TjyVU z1JvnDE1rJSb*0nuM{Gh@p|kzm&Tdb$Q?y=pDt{G!Xf*h-(un@?1#O&Y=ujSq?BJ_-EzBXaalb6HtoGtys zdiRrCDwJoK2p^U4wK21^`r60LZCMJ~ z>Rp&=8vZW(TlnXs$t5j5{RQ#e2 zBc>Z8f?nDg|JQRFA0@3x^2gy>OS|2e6}a&#N1b5OE*b?+R=?S2v*@gDLVDGig$s&v zSNf9oFK@2M<47AGOim>G44(7ly{$vDH7UNs6DPDa6Zu$nTua#Dc`-e%s1S0-Ef>&w zws!1e*3Z#rv~BJ3TH*d!Ipf3CO_h>^U@Alo<~wQ9DgE5F+XRvrU;9<krq1|Igp*`H&Z7yftU&7rLGic8l^AK4zYkzQL@JFT`%WYSKTpYR2>D{U|NJwsTf z*OVUH25GGwk6sko-Hjus{&SW1wtr$^aL!;3lE1OwPQ?|f_vv-%!av5gq?V>}D|_Ge z9;Jg-;Nnm#z<8}%DplUt%h$GARM5DzzVpJj-AD1kf$v8I7Jn9;Iy93O;Je3c=aVH9 zJ1WXg@SOHu?ieX2&Y?`Q!d{AeHD#>AbIau8y>t8Zey3C~I6Z6I9tv826j{x=_$oa2 zMYYc?G0QnW8aEFCO%RT#|K`p6Jhbom2Y-C7bl$%o9!#H>h?5SrZ2R-<>uX ztF)i}^9kXUdIqpRVsGP)a_}a0s3mMHeKJHV3L>+S>hM%_qzt`b+QF6gTzU5TjBgof z8lA?*WTs*s&eeLAtTowJ9tX~O!I-_%*m5>brx!C81U}jvNs^RRrQ%P@@MlPcHN5LE z`@yULdv2Q0#nwK_CbaW}Qzy@M$8U?Eqi@S}#-??gB-*d;;Ru^UOm3q>NW|}{y1!&& zui0lO6uf$P-c)kgv}1syqS$p=<%M?{50dj(5<#JEX)60qeY5V3C zyhwg|c4d|dQP%9>LD%~&J$`kI>Ei)tLo+j47yRHfd<)s_!PhtWv_dPLnexzHDMju& zq5Dnc@Iz&KjtS{w@-H&+WCq#li@soB744A zXs+xp&zknbR!Yu1i*h}?ZW_NSx5dXv?PJ(2x7jq$;A#VHwA?aBVX0?F(m93+l80!w z((Hjn=s2^_M~j5n(aA7-1c536%|8kn)YO?Y#}(FBd~~a#bPT05;Ah<8qdWJdhdK%x zj-t5wY8YZul$6%e;PB*pgM16*%)lF-0K(6fZ5$Ictm7J`pUX%1`)C0aE=v#m=Ij69 z01Zs8f8u>owIlBH`h7Np+I*SARRKC5= zgg|{){|3Z^Xhc7lv#^1dPqw=oWeaqjq==)fwk9I%M3z)G;}bX0;HzdQC=s$85+tplDTPrIWt$z{Z2Pv`WS0u`Id1* z6esXx22_=?yxPb8Cm&lA2HI2sXkggSFr%wd`=Mo?9K$TRHZ{Zi>~`$42F+OjS{P;6P!Z(fA55n`9(g#+>w9awkeQl=4DJKkH8QDrrf2hnhMrrU$ zlNJb3L)RRb`bQx?K!J;;G}lJc;c>%G$S`Apnc9O+t_cVJUFJPLpj%FT7Nz?;oyNW6 z*hu$rh(^pc;0T?xm2^F&%EHSB{HD)`_vw$_}i^4pLg5C;r`~|qT z41;G4h`t6|Ay_pez&UH35PwJ9VUP#M5s#pz*r?@bx|yqwVM{CRU}#QHBjVY(fuYKx zjlNDjZoqeqchMB~i*(*HC|H%@oi4LZ2EGv_mEi=;;cwgluXv%o?R8OoraF@cV(`<^8hjA6iJi{4IWD z>3c}G1nbyUI+^|8oB3A(epkYMzWb?h3md+9$9ZHQl+og2JljR%N73+d+S}D&SfDfP z1Nx&33~#Op{)g7x?%1eexU&q%)d1^C_`%UNYN}~o2#Nr=7-{9{*nX+$mxTs#UzTld&l`)v z*hkY)98*^x(;DE7lhUZ^#gswH?|*2nkoc6(?xmS&V=Zaz+=UKYE9;XccYKPMD|hzz z>OShCbuxn5qgI`#n_XxCRZ$@XDNQIhxwPHUp1P+FXqI6BXfMI5r{qy12QAv4dDEs zQ|2xpNZV#zFogIfUvX+2Q8sKA%h}Qy6{2PsRJl+aUCs7| zZmEnazALD=({!0XF5N~co19Gh)GORwxeW!!i6)EgwB{6oGlp=5`bWHB3`CbpoaRHX zwK;`yW*|MTSBR6uLNy#_XlO*9*wL{b!FK-w)hBv8WLx6eL19UgRMrYlO+A zFPKLULCf8YA0Az4a_o(b(2taq=82yUu=L^3 z^dD{icBZ}j`}Au>XGBd$BTzg!)&3GgZL2x_pCsCf{?qpACEv6z-?X32^_!sLO)F>5 zuDkfS?BXhuU$m2i;8a9Os-W3)r6R}l;au`wyX&{_Uj6&&#v4z}&ka5$pg{Q1(U+B&TEwR>2$pI zQ)s)idu-IacU_0=BW*5cKPwuOTfY*^p*79Msk6 zGQkB?F9wEG6dd)XVb*7{QH9LG7+eP;u0zPm>h1lR|y?cAtJ)oSa; z%z-xUeLh6yn~{yc?xDgZqdscL>Y&|Lgfq0OXsbu>OH5!DNJ!I{J5x~e^N&5TaOv`2 z)u4QO@b-5(&H8}f;tL4!Ldg7)wmoMQsgL7!B3FF78z5b5@o4G7u2c8h=Xk<4#_2V< zP>1T>OtRE(L8MPq%nO$;+IKponZMSSo_25Kg#Vsb=b8uK1RlG=!cMV8adNX+f$Nx$ zX$3i}d6j8OyY90tD}tPx2YBUQECQwG7kt2KDUIuII^1A#0b09_VK(jzf4v;)ucSqdTz9;}-rts4tYQ_n2g7M)cik)Y;#m zi4`dQj(ThTr=GBmy2RTc3%LG}ZYYOqPK1apA*4N%d{o7pHo(1Jm}beq@C7;>*N<-= zM=-}1xG<(l7GPNO(;U1Fycmu+IT~C4D!{_gYc?4%fL!(0pt^zfHVQi!CB00^pT9=; z!cMb(*l{ytcp*IE%;$_%muMb+YtVdJRp^e=fvhwmq3E;4g|19n`8$^cENM^n>2?QE z$fp13P$NCfF3YKzZ}gP{PG3T7+&RZZlavI^T^b(WmnzSNpn4vyKeGUzy@Rsx{IBZI z3kKEzzzjVQtPTyHDVpANoPk{yEYaKgaKCPC%~AVu5vLnni;DgIc^gHT*JK!`)VHpH z^C#? zmn?WcWWl7SPC8F?X@ezIxaq31^~MmGg_P$XtY3&2YcZzqZ4O;T5A|2q@lv?$Vdy@H zG;KN7u@2E+eoCvMZX+1&EO*fBU*Abgy2s#_$Zj^91)|x;23rNS!Nh=+gLL|Gd#rd> z`SS~QWEkDF(ZQhg zK0F+VAjv|Dakpl4>rof&04ix#)D%RKb=_e(mD_UA3z;%9B5#Fci!aK)6D}r@N=S_v zOw^YA0~<@W9zU33GG1^v7jGXPMsJN;?cJd=h|tYuR~Bodca7 zCog!8|2rJwJ?B6EWovT5*~?!ZEZ=tR@!HaD*Mq|8OHUqe{2d-)H5%)HrBkJF@%0C& z+n}4Mx*51O>GMN~r|L{S>o6yL)g7I?os?BNo&lB6qSs+2zTNhLhjlGwr3zrlC2hOv zzE>&&_^MViDiFp0dd1B+2`00jmS#K(^gOlg@$WD1KZUROqhfUEJxf)VSmSvd(2*hhh~M54!m?s#&e-_TtTM{FjFGdN&W>f-=pH zMNHV2mEe+X!b_#kk?dvG@THJm$ae1D-Cz0^Ph@-@@-Y`H_1OgQ(g%m6ru6_Wac_pa77>=mntltY$Bo;`;k4NOYDHnVgqrmm? zAvR+(ID$a%Juq(ajA$OL#4~`AVK=1o9HYv%AVp{uk(j!ak(3ID*6#;VrbuXt-VwiEbe}g5$Xv#)QUAfI!11T8~fF&uq+ew~cZP|Pa#4Xg~*MHg_Lw~wB z?j7L6(jqyp8zSFre`s9>Iw&05YBsQTWbcTMzxm#f3a>ykk)kyXEYlc-FHv5A#>(+N zJgjD**?z-K&B^?ca-AHt*owJ*p%4tFHE3^UnOp2S6SDME*xDqz{N6yZ>Ma2J zh`bF|d;IDuC%cC|h7Chb} zs-}Gw1>72g!ne%F)W5VyZngurS>S&o?Tc8beJ0;^N!oKyqvKyuOD+y0R9xWsdi1ji zex%1$;)miqG7T$9 z81+o@lZY*ij~Q>WTscSa_umB?UVOaUwPVg?EO+g*GqNP{X$y}liSUn#(!^s_$k$Kc zf$s2a_(8DnxV+{1j!s`_-PgF=VaCgP1GBpoEvE|(g&J77`QT|&)8=*4B7?9&q=(4r zGASKMCsmCIHc$}d*KU&JU=u>q?X(8o(P>><`jq;F+TVT?NJWWc4oHb`gJ`fQx$A}G zMehNi`g9kPefGSUK}DuYfLU0eDkx)#t2;f_*}nv#O@Dn;`?%3ev z&~?-)grdXG?)fM*ePYY2@Suj$y~V|@vU^zv=ER-#Xp1(0Ew|-PT8J}_sngT~5U91c zyMAhZ{#@;ZW1M*j-Yke7BS)O>JsNZd&q2nv_5D5D8I<9XzA|D@WiS$-X19FJ-Gk(| zi}0N_+^%O3`S|-aC+%#v%?*L5R}+PkN9Z_e^9}ERb<&pKg4Tr} zpQuXO-fA*GE3Ed4-kQq0u7ov{4|+elj(ptxzK->R_y&DnjO^DDdTt$|W1p)|?SA8^`{S-% zT|@c3^{>}=W#8Mj?`!>*KX0lJ%@oeYx6>wePx#IADA-B-DnVX-`zEe>;E0;|y?LI_ zB`J~<>A={e`g)Ieu&R+K5YAd^Fa7OVHeLAU zQU@pg-dpA3LQ+}Z&A+P`IvrS9D8)3~e_<0wy^SUbQ8|2yNh>l=Y9&0Ow#$F#Wn37E zyo(r8=uE*TZBn9Zv>TI8)wBqs(kK)u@stE@#wXVO)P2R*u4O~Jq6~+mI+N47)gd~O ze61!45z}a^T~6W-*zO|bP9Jw>$`HH?T&5x?K+OXD-A> z5l_LQcVBeNIeREz7 zY|TX$@4bn_)SKyKWsFUC$Q$qtn z_SW(cK#HlG&dVX;%=BpPBN?vq3A9IsOQLJgKvUalT+a!8 zGgypCBfOy#G^$`+D;Q-=pUNUkP2(v* z@K&Ck%B6QHbY5{lIgj|BW7$278Rh8^B-pWO2*|Z8PhtQdj7iC-vk31wd-lk!s(8>F zg^rN~|4KtvO4YWLeB!xs;sGB`_=QnrA;~~4R1fHA%I_O{cP1%xwsv4L1$&a11Y`wr zOo4G=5XJxjq0o8H#$(y2sgAsVdc10t^P^4}9J>RG6lg;^BF2YU2Y{!nvaYFWj809G z5m#OYZ{*d*<=_now}hiR3N+9Gk-#yIa;I8uB_aXgEOp;sK6S|?@xI={4F~k&WdH2) zC565u?c!^dOR$6nJIWof#I>87QYPI5oWOV*Z{c^Z+U?IK_*3W^}l^VaYm}5F5 zBMy-$+%D9=sRU<@gULp{C84GOVTz8-cESHkKa|;uA7z)y0HCmSH7OWNWJGI)PFgc_ zQjRKeBIX#Q-vdI|JK~(;#QDwSAvUq2^*|HPxT>T4Y$zC0=x91!r`T0F)6_|RX>udx zs|@3YAgtGHo2P#w-d0Vs{e(6T8Wll-8WewU3O7@70i%V+fm2I^@uEmTR zhdgj4+z=g9AP8+c5XnFIFTmu~;!nXwlK>3y8^3cJ%@hZ#LUhz@;iQ7Pq>Y%Qu-Y_Y zIK(~)3oNC2=wC&1PpS^0*>tV~vrA%epjRslR_os-n-2cmZzjW7ZKrlRq4uZ_dulL# zer<{q3KfYctHFlw;SHK#3kiB~*{)UwhKxG`G?ULa_1%O7VxM6XTo$6xNo*tHBXz#g z37;z5#yG6HRHHFfZLtiOnohNbOUGbT98U))+lf#$nlzkvuPQ5Y!oQapj`DT^9?^*` zySp>XQ=y}&oT3=uUl{oCiPvQKb5d<9O}6nDJTeqI8KI*=M%zfZBes-C2{En}*9VhM z(u)mL#LIfQI8Qs>E97!Xp`+e$wG1;v-;sKdp8k7&;Ev4K!{~7);hf5_OJU@)HmO`n zj0ym+rP>{^(R0W2lNz$G#0i>&XxTp&KPi}aUT<=0frKt!tHbMIwUll1c{bsC{ z6L|>*=T$l5i|OWrfu{1|17mV(xs3R82KipTvyF7Xf~TVa0g=(}eHuemfr)DCIMeV@ zV5EUx>4f@ANJMsHjcka@W5Ixa}&)Lf0R}&uv^8lN$l3LV#jhpLE}IB zj{8VFnBc28H;#8x2ASUad~S8Omd6*Hs5Xr!%erX`jQE!Bny*1eCbfbf`NC|yJp|Bw z1`$C>r6;zb{zUbnr*B$6Lf#kLb@N4k_M}9q3V-S4{%Wv_gHbWg>Ry)+5R^)4E~D<^ zi-tzz#NGO&q&a^oP{1hF2vaMPftQVrb;J2iK46ywhxp^>7WUNhB zv!j_LoQ=jY<)D|4Y+PEwF{61!0p_)`omZfp=%GVu9&Gaz^VJRNKL~1N-J|{F3@?g- z3~8cQU7vVlblg*@`;=}-FN{G^a&$QT8&q59IFDEHzT#Blk6aomY5flqh;c-T( z)BU)C*=6F})$EG2X(J9`YPz|*PbU&vB8Z51qE9FJm85V;hCC_XRmcEcB<=7v+^GC2 zNk&}Pq;txxU9Yz6>TucB<5jV3h@T7)LYHW$Nw@WqxmQi9>ab0U?7%d7F$bJpM!Q3% zsd>=%auCJYFaENR$tz7_L$-Rk2J-%~28(jOasyLh#)dBIS>Ep2870HbciyR4AK(XA z?+=-bl;c8R&3NO1S_w;}FOFD70d}mx?`A6|a$Dd|AIe3;f&Q7l2$@oM5Eha)+r<(%h(wMX9n z&BJxQS@Uw|kP@Y);+TMtH2u#Ph!Fl9Wi`Mev^rQxa0k{y*B~;QXN8=4*A=Qd+zl`O z%P{alJ|%$Sh6PED|9FFowSlC$)6-`pyFxjU!dihekpXHC5>eCD4&x_n z1BsaKgqcg~l)+u0I7v&f6m#(2&h7^0*uZJL1~pARb^0xB&opvQ1+Ms>R$@6GF%1c@ zrI`-piBPLru64f)_24iW{rPy4>VA_1D5*Gi*>i5HUil@x!5s&!21qf!w`RJ?bH|_L zO-%{rPWUZPTR}oScIh8}MXY92wG`iS&})Cq12)w1JyPNT8wyO&JnaxORqX{(gDet6 zjp&f1?ShC{+ z;k04yZXA8d9XkoEt}zH^r2Vsu^20xM=xWz2ayOJ9=rE@q(1s%7ItQBn%3I9{K2XK$Tti+1QasoBQyg2m6mko-eL4 zpZou}LIt*jxnWXEkYBCl?!(e~nsT&N;slA!!So_5O|UF_Yy*(-aV(wGE)WU=3tGaL zhk^i(GirB8yT zr~*W#wVT!zxMf_38y#(57bb-;eBCnDpL3dLyJlTO>9npd63NH70zGhAq=hi}mZH+Y z^Y4rdY}P9|%U<+#FHL#(eC)p+)5uNxY&WT&d)>o_NtCe`M^UB!*X0^QZUcxNS}7-E zZx+_v1XzWYHI33!6oBP5l5ZvfEf|3}UV`hBvQ$T)Den6@H)*U}2FISe(N9B>(T!w% zT~g|jV<>79iGPb1T^7ihIp>cVZI0C@W9S+U|CaPKXqUHjRfD;^9l@Fs3brOM-q8v+ zx(j^Vz^JT?jmD3J^xnNgZ2}L15T`IEw^PAVr{<$hy{m2kh%tgSZXn|hb${BouzEUu z1rF!NUv?dD7wdRpHbkyPws=e_nbpotgHdG3T(2OPp^V2<559g|#fu8v?_HNmiaK%F zW}3gk8d1|K$=et97^v510r^AURFM#n{IR95^C(q($4M)7v!-8-Gz|FZ%Q@OWt#{MF znn;!EXlkzjZ~mmr05H-Q@X1a-5#?4+$yn8}6Oc8KqLS(P5*3PN<(iWW=&&!yzp0iRT%MC0 z|7zpffbDv6B)*|^mF%WrPEx+_g8x2ziB9OoU3{ALwAegQOuzmsB^CWI%l1M;g{xtB zpi~`bSihZzZfm++q0|rA`8m%q^Zh0kI-)YDwpuc%aH^*JeG%w))NRv`K}jFw-A#oN zfWz_wXwqW7Vn>YSEiDA#AJqZG_=rs;dv_@yRi)A|)Ttq@0N-133CY9&E7!um2(Nvc zgHa9`7^~;=W9*SHK3mK)`g7t&V7?8ye8w;(VTjw@Fsnj(I zeqcN{n$*L+J*5=?vaXJ=W?99XakL!RRx^#Ou}ErRaAJ$! z`CIUn{Et0Q=7*KK&^I^V^^?{2-;dqbqW6y$p!3Rp8(z6{^lI%$fxjT8nf*1EwjU>6 zQW8IrKOHs)HV4!a?PJFr-ENyDYcCa_BF|=Jz~6tZ2>QD-D1vV%;VD)@?8;~RI`bQk zF&{*fLN-qhP}y;X;ivm|$3;FoV7~PMD#c?wfbclI4fi2&0~U0N>Fw5-_0(=L)iwVGfw3}YRCpMPi?d3j*(BA)<)&ptaCDRE|+CzdpoB$7TF z7S16af3xPO$odNP*4*~X4_^?;FRvVZlh%`w>f<`UR;#Xq3q{LH7^3Jag9VpZn$;h< zz1*MiwTrk&Zrh3+KJK9mh%Qdu#EgblA|m=$4G+R+>Rs)h`Qg{S{c_-mA&M%ShLjoD z3iot7`%+mKE2}kt*l0E^Q;*zA(Q3%*KdonYBJyF*Y)|#y59AA3k&2}4y1QSW=X-sP z95__+xzX%zJU8d{!^+jTwU0;hEqXZpvHLPkc>mqXE83M*Wz!xI-R;_beXnAuN|%sA zPl&j?cKH191xo_=yhkiQkFi%~oZ0g?k&p4be`#*!*%0c&C3jT^yW_IXANu>jo>KQH zVO9IngObXPOV&Mo`Znv58S~@TE$(Lq>z_76s**EKtkax)KaW1H%wH~YfBOFTj%y#s zCbQHdj~?AB)~+xUY=5y%g|wZ?`}%Q9Ol1ouD&>965fPBdAJfSakZZ+evWeiOS_&dA zu;tPoDirbz8z6Ny7CE92>i85cK&f`9$(;G1*t(TKwm-=u%Q1?c78)q&+9loAI91z#li(yi>bb)vG~ zJWdOQ{uI0|b@an_;b0~=Nh$mgxNr$WEV=XL?288%?UQ?UKGga2;mA7o@eh+-i*M}~ z1zlfS6Rj}P&zG2;8j%HKt7+pO!wiaqW{t(sY z2D#+~&Hc>eX0G~-Syv+LI;t;2T)8uJ^ z8<*xfnPFf51Bb%*8|Y5udQO4{{iAgEhU$sk*F|P*!8vaStBU~vZyZhKA?{$ zhTo`X2Y;M2y~%2O!8jwxK7^<_Js4W`Qt8-9hxNodd-cUn#!EljAFZq>o+{gGbA^PT zhHk>JT*$6Yx_z7@9fi3a-{u$ZKK?C2*D-d%Wq9nSI($=;RS2i+M!R zz2anWUPe9df<~3T&t@AoSr<&pj;HtcT|NIZQQxCAXxZid4(iDr$CKs{V@q%mV6vl=N@zusAU)n*0edC7zLmD!X^^cTSc=(V;mzMg=nj|~!-Ga- zI+M%094d57#jO)?E0<>&pxGIvXhOD?%$M3xC($tXSE@*{e=s6TDk3s1L6w z_7dit)h>AO->v@k?E}{|kXI`75Ou1wXP~O|N?)w!xK-#!l0cW=S8?;cUdz4Z_qt2J z!Rf4`lo~ipQJ6tL<6j4-bDX@{$kBQ@Q&JEd0n!zP!5Xl8qHs+FoH3!5JX5rWg-IvD z3Dlx=v5Y_BV`7Ff|I&ok?4R(@@q~T! z6+&)7wdYVd=i%lzWkJ|NllOy})Ph+P{I5UZaRo#B6-e(IaVCs@lGG}g5d>4kVI6Qj z3wFO&kiG}&ct6yhvmi7LVaJihUa`r9MK|ei24CoATA*o7hm@#f@Ngb_rK<+A10b>n z=8_)FN5kuQS~4Xn8V&146j{)V(|hvMBj9u@y2i1{IiM7+6ut6V8MmMeFV25QL%4_^ zUs6uIPbW#HiVRp<1U5cfjc8 z!i@&HLyAHMcc{}_seuI{YC+yiB*ZEr(u>2mMeEOKhToK(X!y$grxg((f>)>k?tIP^ zqGW>!9R;ExE$pGP1TMy#1LtWhUe(IT2`zWNFi$pS@;G9^486Iz@Ev#tZ4F80ugYIg z7TjD|v|02R4ToS0TWjD1`j{hJkir+;zWo&18j&=XzfMtDA6~*x!%vA~RJz-=3K`0w6#jZ4cVqfr!OgwG z1fJIC`GpC}(FB$%k6VyJdJyI|Hsv+e$J26GUO`LH$?`!i>v`2L%@dE0J50#XFbQ{XSJpk7&5~8>2f>kU_;Dl!AWNr)&)A;H|~q7*tD!o_5&1n=lY zRpEH=36Zb{tOQNB&4k5c`9bjy?rna2{LQ$onu^9!3y9dYE*vK4$v0b(PvaK&k%swv z5tj}xiYQ=2z?t9kiF{EQEK-}HS1R-UHU>meg&`a`Y(fwu<#}_T8vKWGjVQ_=6YW&y zXLNua*#$f4Af1KTj72UA#-yJq^{c@gn-J|3qqf7Mj2>YIU&I-Do~DEVwlHNHrP3)4 z#=gx^3Nky;J0{?pymxurBECW^qN5<81Ku_B%rTCIqrvoM$kZ}a%?0&<^i431CQC)`DPi{llgG($JJ z@a$S_!f_O&eCM$5U2*ls%;|hGee!N_!A7iB^@<7el;akzrtO!P&Rtix!Rx|r5}d(~ z^wH6RP992ukriY4nPOB@0eVfGCBF0tj9*^JV%teFN!GpSm+T^Y$NjXYZ_bewqM-3;qlh#CBJJ+*Q=Od^
    \n

    Your Docusaurus site did not load properly.

    \n

    A very common reason is a wrong site baseUrl configuration.

    \n

    Current configured baseUrl = ${e} ${"/"===e?" (default value)":""}

    \n

    We suggest trying baseUrl =

    \n
    \n`}(e)).replace(/{window[B]=!1}),[]),r.createElement(r.Fragment,null,!c.A.canUseDOM&&r.createElement(h.A,null,r.createElement("script",null,F(e))),r.createElement("div",{id:L}))}function U(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,m.A)(),{pathname:n}=(0,u.zy)();return t&&n===e?r.createElement(z,null):null}function $(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:o,localeConfigs:i}}=(0,m.A)(),a=(0,g.A)(e),{htmlLang:c,direction:s}=i[o];return r.createElement(h.A,null,r.createElement("html",{lang:c,dir:s}),r.createElement("title",null,t),r.createElement("meta",{property:"og:title",content:t}),r.createElement("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&r.createElement("meta",{name:"robots",content:"noindex, nofollow"}),e&&r.createElement("link",{rel:"icon",href:a}))}var q=n(67489),H=n(92303);function V(){const e=(0,H.A)();return r.createElement(h.A,null,r.createElement("html",{"data-has-hydrated":e}))}function W(){const e=(0,d.v)(l.A),t=(0,u.zy)();return r.createElement(q.A,null,r.createElement(T.l,null,r.createElement(C.x,null,r.createElement(f,null,r.createElement($,null),r.createElement(D,null),r.createElement(U,null),r.createElement(j,{location:O(t)},e)),r.createElement(V,null))))}var G=n(84054);const K=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const o=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;o?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var Y=n(86921);const Q=new Set,Z=new Set,X=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,J={prefetch(e){if(!(e=>!X()&&!Z.has(e)&&!Q.has(e))(e))return!1;Q.add(e);const t=(0,d.u)(l.A,e).flatMap((e=>{return t=e.route.path,Object.entries(G).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,Y.A)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?K(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!X()&&!Z.has(e))(e)&&(Z.add(e),R(e))},ee=Object.freeze(J);if(c.A.canUseDOM){window.docusaurus=ee;const e=o.hydrate;R(window.location.pathname).then((()=>{e(r.createElement(a.vd,null,r.createElement(i.Kd,null,r.createElement(W,null))),document.getElementById("__docusaurus"))}))}},26988:(e,t,n)=>{"use strict";n.d(t,{o:()=>u,l:()=>d});var r=n(96540),o=n(4784);const i=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/Detox/docs","versions":[{"name":"current","label":"Next","isLast":false,"path":"/Detox/docs/next","mainDocId":"introduction/getting-started","docs":[{"id":"api/actions","path":"/Detox/docs/next/api/actions","sidebar":"apiSidebar"},{"id":"api/copilot","path":"/Detox/docs/next/api/copilot","sidebar":"apiSidebar"},{"id":"api/device","path":"/Detox/docs/next/api/device","sidebar":"apiSidebar"},{"id":"api/expect","path":"/Detox/docs/next/api/expect","sidebar":"apiSidebar"},{"id":"api/internals","path":"/Detox/docs/next/api/internals","sidebar":"apiSidebar"},{"id":"api/logger","path":"/Detox/docs/next/api/logger","sidebar":"apiSidebar"},{"id":"api/matchers","path":"/Detox/docs/next/api/matchers","sidebar":"apiSidebar"},{"id":"api/system","path":"/Detox/docs/next/api/system","sidebar":"apiSidebar"},{"id":"api/webviews","path":"/Detox/docs/next/api/webviews","sidebar":"apiSidebar"},{"id":"articles/design-principles","path":"/Detox/docs/next/articles/design-principles","sidebar":"apiSidebar"},{"id":"articles/how-detox-works","path":"/Detox/docs/next/articles/how-detox-works","sidebar":"apiSidebar"},{"id":"articles/third-party-drivers","path":"/Detox/docs/next/articles/third-party-drivers","sidebar":"apiSidebar"},{"id":"cli/build","path":"/Detox/docs/next/cli/build","sidebar":"apiSidebar"},{"id":"cli/build-framework-cache","path":"/Detox/docs/next/cli/build-framework-cache","sidebar":"apiSidebar"},{"id":"cli/clean-framework-cache","path":"/Detox/docs/next/cli/clean-framework-cache","sidebar":"apiSidebar"},{"id":"cli/init","path":"/Detox/docs/next/cli/init","sidebar":"apiSidebar"},{"id":"cli/overview","path":"/Detox/docs/next/cli/overview","sidebar":"apiSidebar"},{"id":"cli/rebuild-framework-cache","path":"/Detox/docs/next/cli/rebuild-framework-cache","sidebar":"apiSidebar"},{"id":"cli/recorder","path":"/Detox/docs/next/cli/recorder","sidebar":"apiSidebar"},{"id":"cli/reset-lock-file","path":"/Detox/docs/next/cli/reset-lock-file","sidebar":"apiSidebar"},{"id":"cli/run-server","path":"/Detox/docs/next/cli/run-server","sidebar":"apiSidebar"},{"id":"cli/start","path":"/Detox/docs/next/cli/start","sidebar":"apiSidebar"},{"id":"cli/test","path":"/Detox/docs/next/cli/test","sidebar":"apiSidebar"},{"id":"config/apps","path":"/Detox/docs/next/config/apps","sidebar":"apiSidebar"},{"id":"config/artifacts","path":"/Detox/docs/next/config/artifacts","sidebar":"apiSidebar"},{"id":"config/behavior","path":"/Detox/docs/next/config/behavior","sidebar":"apiSidebar"},{"id":"config/devices","path":"/Detox/docs/next/config/devices","sidebar":"apiSidebar"},{"id":"config/logger","path":"/Detox/docs/next/config/logger","sidebar":"apiSidebar"},{"id":"config/overview","path":"/Detox/docs/next/config/overview","sidebar":"apiSidebar"},{"id":"config/session","path":"/Detox/docs/next/config/session","sidebar":"apiSidebar"},{"id":"config/testRunner","path":"/Detox/docs/next/config/testRunner","sidebar":"apiSidebar"},{"id":"contributing","path":"/Detox/docs/next/contributing","sidebar":"contributeSidebar"},{"id":"contributing/code-of-conduct","path":"/Detox/docs/next/contributing/code-of-conduct","sidebar":"contributeSidebar"},{"id":"contributing/code/building-and-testing","path":"/Detox/docs/next/contributing/code/building-and-testing","sidebar":"contributeSidebar"},{"id":"contributing/code/example-projects","path":"/Detox/docs/next/contributing/code/example-projects","sidebar":"contributeSidebar"},{"id":"contributing/code/overview","path":"/Detox/docs/next/contributing/code/overview","sidebar":"contributeSidebar"},{"id":"contributing/code/reviewing-pull-requests","path":"/Detox/docs/next/contributing/code/reviewing-pull-requests","sidebar":"contributeSidebar"},{"id":"contributing/code/setting-up-the-dev-environment","path":"/Detox/docs/next/contributing/code/setting-up-the-dev-environment","sidebar":"contributeSidebar"},{"id":"contributing/code/submitting-pull-requests","path":"/Detox/docs/next/contributing/code/submitting-pull-requests","sidebar":"contributeSidebar"},{"id":"contributing/documentation","path":"/Detox/docs/next/contributing/documentation","sidebar":"contributeSidebar"},{"id":"contributing/feature-requests","path":"/Detox/docs/next/contributing/feature-requests","sidebar":"contributeSidebar"},{"id":"contributing/questions/answering-questions","path":"/Detox/docs/next/contributing/questions/answering-questions","sidebar":"contributeSidebar"},{"id":"contributing/questions/asking-questions","path":"/Detox/docs/next/contributing/questions/asking-questions","sidebar":"contributeSidebar"},{"id":"contributing/reporting-bugs","path":"/Detox/docs/next/contributing/reporting-bugs","sidebar":"contributeSidebar"},{"id":"copilot/best-practices","path":"/Detox/docs/next/copilot/best-practices","sidebar":"tutorialSidebar"},{"id":"copilot/technical-overview","path":"/Detox/docs/next/copilot/technical-overview","sidebar":"tutorialSidebar"},{"id":"copilot/testing-with-copilot","path":"/Detox/docs/next/copilot/testing-with-copilot","sidebar":"tutorialSidebar"},{"id":"demo","path":"/Detox/docs/next/demo"},{"id":"guide/android-dev-env","path":"/Detox/docs/next/guide/android-dev-env","sidebar":"tutorialSidebar"},{"id":"guide/cucumber-js-integration","path":"/Detox/docs/next/guide/cucumber-js-integration","sidebar":"tutorialSidebar"},{"id":"guide/developing-while-writing-tests","path":"/Detox/docs/next/guide/developing-while-writing-tests","sidebar":"tutorialSidebar"},{"id":"guide/genymotion-saas","path":"/Detox/docs/next/guide/genymotion-saas","sidebar":"tutorialSidebar"},{"id":"guide/investigating-test-failure","path":"/Detox/docs/next/guide/investigating-test-failure","sidebar":"tutorialSidebar"},{"id":"guide/launch-args","path":"/Detox/docs/next/guide/launch-args","sidebar":"tutorialSidebar"},{"id":"guide/migration","path":"/Detox/docs/next/guide/migration","sidebar":"tutorialSidebar"},{"id":"guide/mocking","path":"/Detox/docs/next/guide/mocking","sidebar":"tutorialSidebar"},{"id":"guide/mocking-open-with-url","path":"/Detox/docs/next/guide/mocking-open-with-url","sidebar":"tutorialSidebar"},{"id":"guide/mocking-user-activity","path":"/Detox/docs/next/guide/mocking-user-activity","sidebar":"tutorialSidebar"},{"id":"guide/mocking-user-notifications","path":"/Detox/docs/next/guide/mocking-user-notifications","sidebar":"tutorialSidebar"},{"id":"guide/parallel-test-execution","path":"/Detox/docs/next/guide/parallel-test-execution","sidebar":"tutorialSidebar"},{"id":"guide/proguard-configuration","path":"/Detox/docs/next/guide/proguard-configuration","sidebar":"tutorialSidebar"},{"id":"guide/taking-screenshots","path":"/Detox/docs/next/guide/taking-screenshots","sidebar":"tutorialSidebar"},{"id":"guide/test-id","path":"/Detox/docs/next/guide/test-id","sidebar":"tutorialSidebar"},{"id":"guide/testing-webviews","path":"/Detox/docs/next/guide/testing-webviews","sidebar":"tutorialSidebar"},{"id":"guide/typescript","path":"/Detox/docs/next/guide/typescript","sidebar":"tutorialSidebar"},{"id":"guide/uninstalling","path":"/Detox/docs/next/guide/uninstalling","sidebar":"tutorialSidebar"},{"id":"introduction/debugging","path":"/Detox/docs/next/introduction/debugging","sidebar":"tutorialSidebar"},{"id":"introduction/environment-setup","path":"/Detox/docs/next/introduction/environment-setup","sidebar":"tutorialSidebar"},{"id":"introduction/getting-started","path":"/Detox/docs/next/introduction/getting-started","sidebar":"tutorialSidebar"},{"id":"introduction/preparing-for-ci","path":"/Detox/docs/next/introduction/preparing-for-ci","sidebar":"tutorialSidebar"},{"id":"introduction/project-setup","path":"/Detox/docs/next/introduction/project-setup","sidebar":"tutorialSidebar"},{"id":"introduction/your-first-test","path":"/Detox/docs/next/introduction/your-first-test","sidebar":"tutorialSidebar"},{"id":"troubleshooting/artifacts","path":"/Detox/docs/next/troubleshooting/artifacts"},{"id":"troubleshooting/building-the-app","path":"/Detox/docs/next/troubleshooting/building-the-app","sidebar":"tutorialSidebar"},{"id":"troubleshooting/flakiness","path":"/Detox/docs/next/troubleshooting/flakiness","sidebar":"tutorialSidebar"},{"id":"troubleshooting/running-tests","path":"/Detox/docs/next/troubleshooting/running-tests","sidebar":"tutorialSidebar"},{"id":"troubleshooting/synchronization","path":"/Detox/docs/next/troubleshooting/synchronization","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/Detox/docs/next/introduction/getting-started","label":"introduction/getting-started"}},"apiSidebar":{"link":{"path":"/Detox/docs/next/config/overview","label":"config/overview"}},"contributeSidebar":{"link":{"path":"/Detox/docs/next/contributing","label":"contributing"}}}},{"name":"20.x","label":"20.x","isLast":true,"path":"/Detox/docs","mainDocId":"introduction/getting-started","docs":[{"id":"api/actions","path":"/Detox/docs/api/actions","sidebar":"apiSidebar"},{"id":"api/device","path":"/Detox/docs/api/device","sidebar":"apiSidebar"},{"id":"api/expect","path":"/Detox/docs/api/expect","sidebar":"apiSidebar"},{"id":"api/internals","path":"/Detox/docs/api/internals","sidebar":"apiSidebar"},{"id":"api/logger","path":"/Detox/docs/api/logger","sidebar":"apiSidebar"},{"id":"api/matchers","path":"/Detox/docs/api/matchers","sidebar":"apiSidebar"},{"id":"api/system","path":"/Detox/docs/api/system","sidebar":"apiSidebar"},{"id":"api/webviews","path":"/Detox/docs/api/webviews","sidebar":"apiSidebar"},{"id":"articles/design-principles","path":"/Detox/docs/articles/design-principles","sidebar":"apiSidebar"},{"id":"articles/how-detox-works","path":"/Detox/docs/articles/how-detox-works","sidebar":"apiSidebar"},{"id":"articles/third-party-drivers","path":"/Detox/docs/articles/third-party-drivers","sidebar":"apiSidebar"},{"id":"cli/build","path":"/Detox/docs/cli/build","sidebar":"apiSidebar"},{"id":"cli/build-framework-cache","path":"/Detox/docs/cli/build-framework-cache","sidebar":"apiSidebar"},{"id":"cli/clean-framework-cache","path":"/Detox/docs/cli/clean-framework-cache","sidebar":"apiSidebar"},{"id":"cli/init","path":"/Detox/docs/cli/init","sidebar":"apiSidebar"},{"id":"cli/overview","path":"/Detox/docs/cli/overview","sidebar":"apiSidebar"},{"id":"cli/rebuild-framework-cache","path":"/Detox/docs/cli/rebuild-framework-cache","sidebar":"apiSidebar"},{"id":"cli/recorder","path":"/Detox/docs/cli/recorder","sidebar":"apiSidebar"},{"id":"cli/reset-lock-file","path":"/Detox/docs/cli/reset-lock-file","sidebar":"apiSidebar"},{"id":"cli/run-server","path":"/Detox/docs/cli/run-server","sidebar":"apiSidebar"},{"id":"cli/start","path":"/Detox/docs/cli/start","sidebar":"apiSidebar"},{"id":"cli/test","path":"/Detox/docs/cli/test","sidebar":"apiSidebar"},{"id":"config/apps","path":"/Detox/docs/config/apps","sidebar":"apiSidebar"},{"id":"config/artifacts","path":"/Detox/docs/config/artifacts","sidebar":"apiSidebar"},{"id":"config/behavior","path":"/Detox/docs/config/behavior","sidebar":"apiSidebar"},{"id":"config/devices","path":"/Detox/docs/config/devices","sidebar":"apiSidebar"},{"id":"config/logger","path":"/Detox/docs/config/logger","sidebar":"apiSidebar"},{"id":"config/overview","path":"/Detox/docs/config/overview","sidebar":"apiSidebar"},{"id":"config/session","path":"/Detox/docs/config/session","sidebar":"apiSidebar"},{"id":"config/testRunner","path":"/Detox/docs/config/testRunner","sidebar":"apiSidebar"},{"id":"contributing","path":"/Detox/docs/contributing","sidebar":"contributeSidebar"},{"id":"contributing/code-of-conduct","path":"/Detox/docs/contributing/code-of-conduct","sidebar":"contributeSidebar"},{"id":"contributing/code/building-and-testing","path":"/Detox/docs/contributing/code/building-and-testing","sidebar":"contributeSidebar"},{"id":"contributing/code/example-projects","path":"/Detox/docs/contributing/code/example-projects","sidebar":"contributeSidebar"},{"id":"contributing/code/overview","path":"/Detox/docs/contributing/code/overview","sidebar":"contributeSidebar"},{"id":"contributing/code/reviewing-pull-requests","path":"/Detox/docs/contributing/code/reviewing-pull-requests","sidebar":"contributeSidebar"},{"id":"contributing/code/setting-up-the-dev-environment","path":"/Detox/docs/contributing/code/setting-up-the-dev-environment","sidebar":"contributeSidebar"},{"id":"contributing/code/submitting-pull-requests","path":"/Detox/docs/contributing/code/submitting-pull-requests","sidebar":"contributeSidebar"},{"id":"contributing/documentation","path":"/Detox/docs/contributing/documentation","sidebar":"contributeSidebar"},{"id":"contributing/feature-requests","path":"/Detox/docs/contributing/feature-requests","sidebar":"contributeSidebar"},{"id":"contributing/questions/answering-questions","path":"/Detox/docs/contributing/questions/answering-questions","sidebar":"contributeSidebar"},{"id":"contributing/questions/asking-questions","path":"/Detox/docs/contributing/questions/asking-questions","sidebar":"contributeSidebar"},{"id":"contributing/reporting-bugs","path":"/Detox/docs/contributing/reporting-bugs","sidebar":"contributeSidebar"},{"id":"demo","path":"/Detox/docs/demo"},{"id":"guide/android-dev-env","path":"/Detox/docs/guide/android-dev-env","sidebar":"tutorialSidebar"},{"id":"guide/cucumber-js-integration","path":"/Detox/docs/guide/cucumber-js-integration","sidebar":"tutorialSidebar"},{"id":"guide/developing-while-writing-tests","path":"/Detox/docs/guide/developing-while-writing-tests","sidebar":"tutorialSidebar"},{"id":"guide/genymotion-saas","path":"/Detox/docs/guide/genymotion-saas","sidebar":"tutorialSidebar"},{"id":"guide/investigating-test-failure","path":"/Detox/docs/guide/investigating-test-failure","sidebar":"tutorialSidebar"},{"id":"guide/launch-args","path":"/Detox/docs/guide/launch-args","sidebar":"tutorialSidebar"},{"id":"guide/migration","path":"/Detox/docs/guide/migration","sidebar":"tutorialSidebar"},{"id":"guide/mocking","path":"/Detox/docs/guide/mocking","sidebar":"tutorialSidebar"},{"id":"guide/mocking-open-with-url","path":"/Detox/docs/guide/mocking-open-with-url","sidebar":"tutorialSidebar"},{"id":"guide/mocking-user-activity","path":"/Detox/docs/guide/mocking-user-activity","sidebar":"tutorialSidebar"},{"id":"guide/mocking-user-notifications","path":"/Detox/docs/guide/mocking-user-notifications","sidebar":"tutorialSidebar"},{"id":"guide/parallel-test-execution","path":"/Detox/docs/guide/parallel-test-execution","sidebar":"tutorialSidebar"},{"id":"guide/proguard-configuration","path":"/Detox/docs/guide/proguard-configuration","sidebar":"tutorialSidebar"},{"id":"guide/taking-screenshots","path":"/Detox/docs/guide/taking-screenshots","sidebar":"tutorialSidebar"},{"id":"guide/test-id","path":"/Detox/docs/guide/test-id","sidebar":"tutorialSidebar"},{"id":"guide/testing-webviews","path":"/Detox/docs/guide/testing-webviews","sidebar":"tutorialSidebar"},{"id":"guide/typescript","path":"/Detox/docs/guide/typescript","sidebar":"tutorialSidebar"},{"id":"guide/uninstalling","path":"/Detox/docs/guide/uninstalling","sidebar":"tutorialSidebar"},{"id":"introduction/debugging","path":"/Detox/docs/introduction/debugging","sidebar":"tutorialSidebar"},{"id":"introduction/environment-setup","path":"/Detox/docs/introduction/environment-setup","sidebar":"tutorialSidebar"},{"id":"introduction/getting-started","path":"/Detox/docs/introduction/getting-started","sidebar":"tutorialSidebar"},{"id":"introduction/preparing-for-ci","path":"/Detox/docs/introduction/preparing-for-ci","sidebar":"tutorialSidebar"},{"id":"introduction/project-setup","path":"/Detox/docs/introduction/project-setup","sidebar":"tutorialSidebar"},{"id":"introduction/your-first-test","path":"/Detox/docs/introduction/your-first-test","sidebar":"tutorialSidebar"},{"id":"troubleshooting/artifacts","path":"/Detox/docs/troubleshooting/artifacts"},{"id":"troubleshooting/building-the-app","path":"/Detox/docs/troubleshooting/building-the-app","sidebar":"tutorialSidebar"},{"id":"troubleshooting/flakiness","path":"/Detox/docs/troubleshooting/flakiness","sidebar":"tutorialSidebar"},{"id":"troubleshooting/running-tests","path":"/Detox/docs/troubleshooting/running-tests","sidebar":"tutorialSidebar"},{"id":"troubleshooting/synchronization","path":"/Detox/docs/troubleshooting/synchronization","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/Detox/docs/introduction/getting-started","label":"introduction/getting-started"}},"apiSidebar":{"link":{"path":"/Detox/docs/config/overview","label":"config/overview"}},"contributeSidebar":{"link":{"path":"/Detox/docs/contributing","label":"contributing"}}}},{"name":"19.x","label":"19.x","isLast":false,"path":"/Detox/docs/19.x","mainDocId":"README","docs":[{"id":"actions-on-element","path":"/Detox/docs/19.x/api/actions-on-element","sidebar":"tutorialSidebar"},{"id":"android","path":"/Detox/docs/19.x/introduction/android","sidebar":"tutorialSidebar"},{"id":"android-dev-env","path":"/Detox/docs/19.x/introduction/android-dev-env","sidebar":"tutorialSidebar"},{"id":"artifacts","path":"/Detox/docs/19.x/api/artifacts","sidebar":"tutorialSidebar"},{"id":"building-the-app","path":"/Detox/docs/19.x/troubleshooting/building-the-app","sidebar":"tutorialSidebar"},{"id":"config/overview","path":"/Detox/docs/19.x/config/overview","sidebar":"tutorialSidebar"},{"id":"contributing","path":"/Detox/docs/19.x/contributing","sidebar":"tutorialSidebar"},{"id":"debugging-in-android-studio","path":"/Detox/docs/19.x/guide/debugging-in-android-studio","sidebar":"tutorialSidebar"},{"id":"debugging-in-xcode","path":"/Detox/docs/19.x/guide/debugging-in-xcode","sidebar":"tutorialSidebar"},{"id":"design-principles","path":"/Detox/docs/19.x/introduction/design-principles","sidebar":"tutorialSidebar"},{"id":"detox-cli","path":"/Detox/docs/19.x/api/detox-cli","sidebar":"tutorialSidebar"},{"id":"detox-object-api","path":"/Detox/docs/19.x/api/detox-object-api","sidebar":"tutorialSidebar"},{"id":"developing-while-writing-tests","path":"/Detox/docs/19.x/guide/developing-while-writing-tests","sidebar":"tutorialSidebar"},{"id":"device-object-api","path":"/Detox/docs/19.x/api/device-object-api","sidebar":"tutorialSidebar"},{"id":"expect","path":"/Detox/docs/19.x/api/expect","sidebar":"tutorialSidebar"},{"id":"expo","path":"/Detox/docs/19.x/guide/expo","sidebar":"tutorialSidebar"},{"id":"flakiness","path":"/Detox/docs/19.x/troubleshooting/flakiness","sidebar":"tutorialSidebar"},{"id":"how-detox-works","path":"/Detox/docs/19.x/introduction/how-detox-works","sidebar":"tutorialSidebar"},{"id":"introduction/getting-started","path":"/Detox/docs/19.x/introduction/getting-started","sidebar":"tutorialSidebar"},{"id":"ios","path":"/Detox/docs/19.x/introduction/ios","sidebar":"tutorialSidebar"},{"id":"ios-dev-env","path":"/Detox/docs/19.x/introduction/ios-dev-env","sidebar":"tutorialSidebar"},{"id":"jest","path":"/Detox/docs/19.x/guide/jest","sidebar":"tutorialSidebar"},{"id":"launch-args","path":"/Detox/docs/19.x/api/launch-args","sidebar":"tutorialSidebar"},{"id":"matchers","path":"/Detox/docs/19.x/api/matchers","sidebar":"tutorialSidebar"},{"id":"migration","path":"/Detox/docs/19.x/guide/migration","sidebar":"tutorialSidebar"},{"id":"mocha","path":"/Detox/docs/19.x/guide/mocha","sidebar":"tutorialSidebar"},{"id":"mocking","path":"/Detox/docs/19.x/guide/mocking","sidebar":"tutorialSidebar"},{"id":"mocking-open-with-url","path":"/Detox/docs/19.x/api/mocking-open-with-url","sidebar":"tutorialSidebar"},{"id":"mocking-user-activity","path":"/Detox/docs/19.x/api/mocking-user-activity","sidebar":"tutorialSidebar"},{"id":"mocking-user-notifications","path":"/Detox/docs/19.x/api/mocking-user-notifications","sidebar":"tutorialSidebar"},{"id":"parallel-test-execution","path":"/Detox/docs/19.x/guide/parallel-test-execution","sidebar":"tutorialSidebar"},{"id":"README","path":"/Detox/docs/19.x/"},{"id":"running-locally","path":"/Detox/docs/19.x/guide/running-locally","sidebar":"tutorialSidebar"},{"id":"running-on-ci","path":"/Detox/docs/19.x/guide/running-on-ci","sidebar":"tutorialSidebar"},{"id":"running-tests","path":"/Detox/docs/19.x/troubleshooting/running-tests","sidebar":"tutorialSidebar"},{"id":"screenshots","path":"/Detox/docs/19.x/api/screenshots","sidebar":"tutorialSidebar"},{"id":"synchronization","path":"/Detox/docs/19.x/troubleshooting/synchronization","sidebar":"tutorialSidebar"},{"id":"test-lifecycle","path":"/Detox/docs/19.x/api/test-lifecycle","sidebar":"tutorialSidebar"},{"id":"third-party-drivers","path":"/Detox/docs/19.x/guide/third-party-drivers","sidebar":"tutorialSidebar"},{"id":"troubleshooting","path":"/Detox/docs/19.x/troubleshooting/troubleshooting","sidebar":"tutorialSidebar"},{"id":"uninstalling","path":"/Detox/docs/19.x/guide/uninstalling","sidebar":"tutorialSidebar"},{"id":"workflows","path":"/Detox/docs/19.x/introduction/workflows","sidebar":"tutorialSidebar"},{"id":"writing-first-test","path":"/Detox/docs/19.x/introduction/writing-first-test","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/Detox/docs/19.x/introduction/getting-started","label":"introduction/getting-started"}}}}],"breadcrumbs":true}}}'),a=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var c=n(22654);const s=JSON.parse('{"docusaurusVersion":"2.4.3","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"2.4.3"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"2.4.3"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"2.4.3"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"2.4.3"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"2.4.3"},"docusaurus-theme-search-algolia":{"type":"package","name":"@docusaurus/theme-search-algolia","version":"2.4.3"},"docusaurus-plugin-sass":{"type":"package","name":"docusaurus-plugin-sass","version":"0.2.5"}}}'),l={siteConfig:o.default,siteMetadata:s,globalData:i,i18n:a,codeTranslations:c},u=r.createContext(l);function d(e){let{children:t}=e;return r.createElement(u.Provider,{value:l},t)}},67489:(e,t,n)=>{"use strict";n.d(t,{A:()=>f});var r=n(96540),o=n(38193),i=n(5260),a=n(70440),c=n(97173);function s(e){let{error:t,tryAgain:n}=e;return r.createElement("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"}},r.createElement("h1",{style:{fontSize:"3rem"}},"This page crashed"),r.createElement("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"}},"Try again"),r.createElement(l,{error:t}))}function l(e){let{error:t}=e;const n=(0,a.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{style:{whiteSpace:"pre-wrap"}},n)}function u(e){let{error:t,tryAgain:n}=e;return r.createElement(f,{fallback:()=>r.createElement(s,{error:t,tryAgain:n})},r.createElement(i.A,null,r.createElement("title",null,"Page Error")),r.createElement(c.A,null,r.createElement(s,{error:t,tryAgain:n})))}const d=e=>r.createElement(u,e);class f extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){o.A.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??d)(e)}return e??null}}},38193:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,o={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},5260:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(96540),o=n(80545);function i(e){return r.createElement(o.mg,e)}},75489:(e,t,n)=>{"use strict";n.d(t,{A:()=>p});var r=n(58168),o=n(96540),i=n(54625),a=n(70440),c=n(44586),s=n(16654),l=n(38193);const u=o.createContext({collectLink:()=>{}});var d=n(86025);function f(e,t){let{isNavLink:n,to:f,href:p,activeClassName:h,isActive:m,"data-noBrokenLinkCheck":g,autoAddBaseUrl:b=!0,...v}=e;const{siteConfig:{trailingSlash:y,baseUrl:x}}=(0,c.A)(),{withBaseUrl:w}=(0,d.h)(),S=(0,o.useContext)(u),_=(0,o.useRef)(null);(0,o.useImperativeHandle)(t,(()=>_.current));const E=f||p;const k=(0,s.A)(E),D=E?.replace("pathname://","");let A=void 0!==D?(O=D,b&&(e=>e.startsWith("/"))(O)?w(O):O):void 0;var O;A&&k&&(A=(0,a.applyTrailingSlash)(A,{trailingSlash:y,baseUrl:x}));const C=(0,o.useRef)(!1),T=n?i.k2:i.N_,P=l.A.canUseIntersectionObserver,I=(0,o.useRef)(),R=()=>{C.current||null==A||(window.docusaurus.preload(A),C.current=!0)};(0,o.useEffect)((()=>(!P&&k&&null!=A&&window.docusaurus.prefetch(A),()=>{P&&I.current&&I.current.disconnect()})),[I,A,P,k]);const N=A?.startsWith("#")??!1,j=!A||!k||N;return j||g||S.collectLink(A),j?o.createElement("a",(0,r.A)({ref:_,href:A},E&&!k&&{target:"_blank",rel:"noopener noreferrer"},v)):o.createElement(T,(0,r.A)({},v,{onMouseEnter:R,onTouchStart:R,innerRef:e=>{_.current=e,P&&e&&k&&(I.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(I.current.unobserve(e),I.current.disconnect(),null!=A&&window.docusaurus.prefetch(A))}))})),I.current.observe(e))},to:A},n&&{isActive:m,activeClassName:h}))}const p=o.forwardRef(f)},21312:(e,t,n)=>{"use strict";n.d(t,{A:()=>s,T:()=>c});var r=n(96540);function o(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var i=n(22654);function a(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return i[t??n]??n??t}function c(e,t){let{message:n,id:r}=e;return o(a({message:n,id:r}),t)}function s(e){let{children:t,id:n,values:i}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal children",t),new Error("The Docusaurus component only accept simple string values");const c=a({message:t,id:n});return r.createElement(r.Fragment,null,o(c,i))}},17065:(e,t,n)=>{"use strict";n.d(t,{W:()=>r});const r="default"},16654:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function o(e){return void 0!==e&&!r(e)}n.d(t,{A:()=>o,z:()=>r})},86025:(e,t,n)=>{"use strict";n.d(t,{A:()=>c,h:()=>a});var r=n(96540),o=n(44586),i=n(16654);function a(){const{siteConfig:{baseUrl:e,url:t}}=(0,o.A)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:o=!1,absolute:a=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,i.z)(n))return n;if(o)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const c=n.startsWith(t)?n:t+n.replace(/^\//,"");return a?e+c:c}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function c(e,t){void 0===t&&(t={});const{withBaseUrl:n}=a();return n(e,t)}},44586:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(96540),o=n(26988);function i(){return(0,r.useContext)(o.o)}},92303:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(96540),o=n(6125);function i(){return(0,r.useContext)(o.o)}},86921:(e,t,n)=>{"use strict";n.d(t,{A:()=>o});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function o(e){const t={};return function e(n,o){Object.entries(n).forEach((n=>{let[i,a]=n;const c=o?`${o}.${i}`:i;r(a)?e(a,c):t[c]=a}))}(e),t}},53102:(e,t,n)=>{"use strict";n.d(t,{W:()=>i,o:()=>o});var r=n(96540);const o=r.createContext(null);function i(e){let{children:t,value:n}=e;const i=r.useContext(o),a=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:i,value:n})),[i,n]);return r.createElement(o.Provider,{value:a},t)}},44070:(e,t,n)=>{"use strict";n.d(t,{zK:()=>b,vT:()=>p,gk:()=>h,Gy:()=>d,HW:()=>v,ht:()=>f,r7:()=>g,jh:()=>m});var r=n(56347),o=n(44586),i=n(17065);function a(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,o.A)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const c=e=>e.versions.find((e=>e.isLast));function s(e,t){const n=c(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.B6)(t,{path:e.path,exact:!1,strict:!1})))}function l(e,t){const n=s(e,t),o=n?.docs.find((e=>!!(0,r.B6)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:o,alternateDocVersions:o?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(o.id):{}}}const u={},d=()=>a("docusaurus-plugin-content-docs")??u,f=e=>function(e,t,n){void 0===t&&(t=i.W),void 0===n&&(n={});const r=a(e),o=r?.[t];if(!o&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return o}("docusaurus-plugin-content-docs",e,{failfast:!0});function p(e){void 0===e&&(e={});const t=d(),{pathname:n}=(0,r.zy)();return function(e,t,n){void 0===n&&(n={});const o=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.B6)(t,{path:n.path,exact:!1,strict:!1})})),i=o?{pluginId:o[0],pluginData:o[1]}:void 0;if(!i&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return i}(t,n,e)}function h(e){void 0===e&&(e={});const t=p(e),{pathname:n}=(0,r.zy)();if(!t)return;return{activePlugin:t,activeVersion:s(t.pluginData,n)}}function m(e){return f(e).versions}function g(e){const t=f(e);return c(t)}function b(e){const t=f(e),{pathname:n}=(0,r.zy)();return l(t,n)}function v(e){const t=f(e),{pathname:n}=(0,r.zy)();return function(e,t){const n=c(e);return{latestDocSuggestion:l(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},76294:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r=n(5947),o=n.n(r);o().configure({showSpinner:!1});const i={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{o().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){o().done()}}},26134:(e,t,n)=>{"use strict";var r=n(61258),o=n(4784);!function(e){const{themeConfig:{prism:t}}=o.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{n(20867)(`./prism-${e}`)})),delete globalThis.Prism}(r.A)},43186:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(96540);const o={iconExternalLink:"iconExternalLink_nPIU"};function i(e){let{width:t=13.5,height:n=13.5}=e;return r.createElement("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:o.iconExternalLink},r.createElement("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"}))}},97173:(e,t,n)=>{"use strict";n.d(t,{A:()=>wt});var r=n(96540),o=n(20053),i=n(67489),a=n(69024),c=n(58168),s=n(56347),l=n(21312),u=n(75062);const d="__docusaurus_skipToContent_fallback";function f(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function p(){const e=(0,r.useRef)(null),{action:t}=(0,s.W6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&f(t)}),[]);return(0,u.$)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&f(e.current)})),{containerRef:e,onClick:n}}const h=(0,l.T)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function m(e){const t=e.children??h,{containerRef:n,onClick:o}=p();return r.createElement("div",{ref:n,role:"region","aria-label":h},r.createElement("a",(0,c.A)({},e,{href:`#${d}`,onClick:o}),t))}var g=n(17559),b=n(14090);const v={skipToContent:"skipToContent_fXgn"};function y(){return r.createElement(m,{className:v.skipToContent})}var x=n(6342),w=n(65041);function S(e){let{width:t=21,height:n=21,color:o="currentColor",strokeWidth:i=1.2,className:a,...s}=e;return r.createElement("svg",(0,c.A)({viewBox:"0 0 15 15",width:t,height:n},s),r.createElement("g",{stroke:o,strokeWidth:i},r.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}const _={closeButton:"closeButton_CVFx"};function E(e){return r.createElement("button",(0,c.A)({type:"button","aria-label":(0,l.T)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},e,{className:(0,o.A)("clean-btn close",_.closeButton,e.className)}),r.createElement(S,{width:14,height:14,strokeWidth:3.1}))}const k={content:"content_knG7"};function D(e){const{announcementBar:t}=(0,x.p)(),{content:n}=t;return r.createElement("div",(0,c.A)({},e,{className:(0,o.A)(k.content,e.className),dangerouslySetInnerHTML:{__html:n}}))}const A={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function O(){const{announcementBar:e}=(0,x.p)(),{isActive:t,close:n}=(0,w.Mj)();if(!t)return null;const{backgroundColor:o,textColor:i,isCloseable:a}=e;return r.createElement("div",{className:A.announcementBar,style:{backgroundColor:o,color:i},role:"banner"},a&&r.createElement("div",{className:A.announcementBarPlaceholder}),r.createElement(D,{className:A.announcementBarContent}),a&&r.createElement(E,{onClick:n,className:A.announcementBarClose}))}var C=n(22069),T=n(23104);var P=n(89532),I=n(75600);const R=r.createContext(null);function N(e){let{children:t}=e;const n=function(){const e=(0,C.M)(),t=(0,I.YL)(),[n,o]=(0,r.useState)(!1),i=null!==t.component,a=(0,P.ZC)(i);return(0,r.useEffect)((()=>{i&&!a&&o(!0)}),[i,a]),(0,r.useEffect)((()=>{i?e.shown||o(!0):o(!1)}),[e.shown,i]),(0,r.useMemo)((()=>[n,o]),[n])}();return r.createElement(R.Provider,{value:n},t)}function j(e){if(e.component){const t=e.component;return r.createElement(t,e.props)}}function L(){const e=(0,r.useContext)(R);if(!e)throw new P.dV("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,o=(0,r.useCallback)((()=>n(!1)),[n]),i=(0,I.YL)();return(0,r.useMemo)((()=>({shown:t,hide:o,content:j(i)})),[o,i,t])}function M(e){let{header:t,primaryMenu:n,secondaryMenu:i}=e;const{shown:a}=L();return r.createElement("div",{className:"navbar-sidebar"},t,r.createElement("div",{className:(0,o.A)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":a})},r.createElement("div",{className:"navbar-sidebar__item menu"},n),r.createElement("div",{className:"navbar-sidebar__item menu"},i)))}var B=n(95293),F=n(92303);function z(e){return r.createElement("svg",(0,c.A)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"}))}function U(e){return r.createElement("svg",(0,c.A)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"}))}const $={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function q(e){let{className:t,buttonClassName:n,value:i,onChange:a}=e;const c=(0,F.A)(),s=(0,l.T)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===i?(0,l.T)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,l.T)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return r.createElement("div",{className:(0,o.A)($.toggle,t)},r.createElement("button",{className:(0,o.A)("clean-btn",$.toggleButton,!c&&$.toggleButtonDisabled,n),type:"button",onClick:()=>a("dark"===i?"light":"dark"),disabled:!c,title:s,"aria-label":s,"aria-live":"polite"},r.createElement(z,{className:(0,o.A)($.toggleIcon,$.lightToggleIcon)}),r.createElement(U,{className:(0,o.A)($.toggleIcon,$.darkToggleIcon)})))}const H=r.memo(q),V={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function W(e){let{className:t}=e;const n=(0,x.p)().navbar.style,o=(0,x.p)().colorMode.disableSwitch,{colorMode:i,setColorMode:a}=(0,B.G)();return o?null:r.createElement(H,{className:t,buttonClassName:"dark"===n?V.darkNavbarColorModeToggle:void 0,value:i,onChange:a})}var G=n(23465);function K(){return r.createElement(G.A,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function Y(){const e=(0,C.M)();return r.createElement("button",{type:"button","aria-label":(0,l.T)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle()},r.createElement(S,{color:"var(--ifm-color-emphasis-600)"}))}function Q(){return r.createElement("div",{className:"navbar-sidebar__brand"},r.createElement(K,null),r.createElement(W,{className:"margin-right--md"}),r.createElement(Y,null))}var Z=n(75489),X=n(86025),J=n(16654),ee=n(91252),te=n(43186);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:o,href:i,label:a,html:s,isDropdownLink:l,prependBaseUrlToHref:u,...d}=e;const f=(0,X.A)(o),p=(0,X.A)(t),h=(0,X.A)(i,{forcePrependBaseUrl:!0}),m=a&&i&&!(0,J.A)(i),g=s?{dangerouslySetInnerHTML:{__html:s}}:{children:r.createElement(r.Fragment,null,a,m&&r.createElement(te.A,l&&{width:12,height:12}))};return i?r.createElement(Z.A,(0,c.A)({href:u?h:i},d,g)):r.createElement(Z.A,(0,c.A)({to:f,isNavLink:!0},(t||n)&&{isActive:(e,t)=>n?(0,ee.G)(n,t.pathname):t.pathname.startsWith(p)},d,g))}function re(e){let{className:t,isDropdownItem:n=!1,...i}=e;const a=r.createElement(ne,(0,c.A)({className:(0,o.A)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n},i));return n?r.createElement("li",null,a):a}function oe(e){let{className:t,isDropdownItem:n,...i}=e;return r.createElement("li",{className:"menu__list-item"},r.createElement(ne,(0,c.A)({className:(0,o.A)("menu__link",t)},i)))}function ie(e){let{mobile:t=!1,position:n,...o}=e;const i=t?oe:re;return r.createElement(i,(0,c.A)({},o,{activeClassName:o.activeClassName??(t?"menu__link--active":"navbar__link--active")}))}var ae=n(41422),ce=n(99169),se=n(44586);function le(e,t){return e.some((e=>function(e,t){return!!(0,ce.ys)(e.to,t)||!!(0,ee.G)(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function ue(e){let{items:t,position:n,className:i,onClick:a,...s}=e;const l=(0,r.useRef)(null),[u,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{l.current&&!l.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[l]),r.createElement("div",{ref:l,className:(0,o.A)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":u})},r.createElement(ne,(0,c.A)({"aria-haspopup":"true","aria-expanded":u,role:"button",href:s.to?void 0:"#",className:(0,o.A)("navbar__link",i)},s,{onClick:s.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!u))}}),s.children??s.label),r.createElement("ul",{className:"dropdown__menu"},t.map(((e,t)=>r.createElement(Me,(0,c.A)({isDropdownItem:!0,activeClassName:"dropdown__link--active"},e,{key:t}))))))}function de(e){let{items:t,className:n,position:i,onClick:a,...l}=e;const u=function(){const{siteConfig:{baseUrl:e}}=(0,se.A)(),{pathname:t}=(0,s.zy)();return t.replace(e,"/")}(),d=le(t,u),{collapsed:f,toggleCollapsed:p,setCollapsed:h}=(0,ae.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&h(!d)}),[u,d,h]),r.createElement("li",{className:(0,o.A)("menu__list-item",{"menu__list-item--collapsed":f})},r.createElement(ne,(0,c.A)({role:"button",className:(0,o.A)("menu__link menu__link--sublist menu__link--sublist-caret",n)},l,{onClick:e=>{e.preventDefault(),p()}}),l.children??l.label),r.createElement(ae.N,{lazy:!0,as:"ul",className:"menu__list",collapsed:f},t.map(((e,t)=>r.createElement(Me,(0,c.A)({mobile:!0,isDropdownItem:!0,onClick:a,activeClassName:"menu__link--active"},e,{key:t}))))))}function fe(e){let{mobile:t=!1,...n}=e;const o=t?de:ue;return r.createElement(o,n)}var pe=n(32131);function he(e){let{width:t=20,height:n=20,...o}=e;return r.createElement("svg",(0,c.A)({viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0},o),r.createElement("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"}))}const me="iconLanguage_nlXk";var ge=n(55600),be=n(5260),ve=n(24255),ye=n(51062),xe=n(2967);var we=n(40961);const Se={button:{buttonText:(0,l.T)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"}),buttonAriaLabel:(0,l.T)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"})},modal:{searchBox:{resetButtonTitle:(0,l.T)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),resetButtonAriaLabel:(0,l.T)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),cancelButtonText:(0,l.T)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"}),cancelButtonAriaLabel:(0,l.T)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"})},startScreen:{recentSearchesTitle:(0,l.T)({id:"theme.SearchModal.startScreen.recentSearchesTitle",message:"Recent",description:"The title for recent searches"}),noRecentSearchesText:(0,l.T)({id:"theme.SearchModal.startScreen.noRecentSearchesText",message:"No recent searches",description:"The text when no recent searches"}),saveRecentSearchButtonTitle:(0,l.T)({id:"theme.SearchModal.startScreen.saveRecentSearchButtonTitle",message:"Save this search",description:"The label for save recent search button"}),removeRecentSearchButtonTitle:(0,l.T)({id:"theme.SearchModal.startScreen.removeRecentSearchButtonTitle",message:"Remove this search from history",description:"The label for remove recent search button"}),favoriteSearchesTitle:(0,l.T)({id:"theme.SearchModal.startScreen.favoriteSearchesTitle",message:"Favorite",description:"The title for favorite searches"}),removeFavoriteSearchButtonTitle:(0,l.T)({id:"theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle",message:"Remove this search from favorites",description:"The label for remove favorite search button"})},errorScreen:{titleText:(0,l.T)({id:"theme.SearchModal.errorScreen.titleText",message:"Unable to fetch results",description:"The title for error screen of search modal"}),helpText:(0,l.T)({id:"theme.SearchModal.errorScreen.helpText",message:"You might want to check your network connection.",description:"The help text for error screen of search modal"})},footer:{selectText:(0,l.T)({id:"theme.SearchModal.footer.selectText",message:"to select",description:"The explanatory text of the action for the enter key"}),selectKeyAriaLabel:(0,l.T)({id:"theme.SearchModal.footer.selectKeyAriaLabel",message:"Enter key",description:"The ARIA label for the Enter key button that makes the selection"}),navigateText:(0,l.T)({id:"theme.SearchModal.footer.navigateText",message:"to navigate",description:"The explanatory text of the action for the Arrow up and Arrow down key"}),navigateUpKeyAriaLabel:(0,l.T)({id:"theme.SearchModal.footer.navigateUpKeyAriaLabel",message:"Arrow up",description:"The ARIA label for the Arrow up key button that makes the navigation"}),navigateDownKeyAriaLabel:(0,l.T)({id:"theme.SearchModal.footer.navigateDownKeyAriaLabel",message:"Arrow down",description:"The ARIA label for the Arrow down key button that makes the navigation"}),closeText:(0,l.T)({id:"theme.SearchModal.footer.closeText",message:"to close",description:"The explanatory text of the action for Escape key"}),closeKeyAriaLabel:(0,l.T)({id:"theme.SearchModal.footer.closeKeyAriaLabel",message:"Escape key",description:"The ARIA label for the Escape key button that close the modal"}),searchByText:(0,l.T)({id:"theme.SearchModal.footer.searchByText",message:"Search by",description:"The text explain that the search is making by Algolia"})},noResultsScreen:{noResultsText:(0,l.T)({id:"theme.SearchModal.noResultsScreen.noResultsText",message:"No results for",description:"The text explains that there are no results for the following search"}),suggestedQueryText:(0,l.T)({id:"theme.SearchModal.noResultsScreen.suggestedQueryText",message:"Try searching for",description:"The text for the suggested query when no results are found for the following search"}),reportMissingResultsText:(0,l.T)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsText",message:"Believe this query should return results?",description:"The text for the question where the user thinks there are missing results"}),reportMissingResultsLinkText:(0,l.T)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsLinkText",message:"Let us know.",description:"The text for the link to report missing results"})}},placeholder:(0,l.T)({id:"theme.SearchModal.placeholder",message:"Search docs",description:"The placeholder of the input of the DocSearch pop-up modal"})};let _e=null;function Ee(e){let{hit:t,children:n}=e;return r.createElement(Z.A,{to:t.url},n)}function ke(e){let{state:t,onClose:n}=e;const o=(0,ve.w)();return r.createElement(Z.A,{to:o(t.query),onClick:n},r.createElement(l.A,{id:"theme.SearchBar.seeAll",values:{count:t.context.nbHits}},"See all {count} results"))}function De(e){let{contextualSearch:t,externalUrlRegex:o,...i}=e;const{siteMetadata:a}=(0,se.A)(),l=(0,ye.C)(),u=function(){const{locale:e,tags:t}=(0,xe.af)();return[`language:${e}`,t.map((e=>`docusaurus_tag:${e}`))]}(),d=i.searchParameters?.facetFilters??[],f=t?function(e,t){const n=e=>"string"==typeof e?[e]:e;return[...n(e),...n(t)]}(u,d):d,p={...i.searchParameters,facetFilters:f},h=(0,s.W6)(),m=(0,r.useRef)(null),g=(0,r.useRef)(null),[b,v]=(0,r.useState)(!1),[y,x]=(0,r.useState)(void 0),w=(0,r.useCallback)((()=>_e?Promise.resolve():Promise.all([n.e(8158).then(n.bind(n,48158)),Promise.all([n.e(1869),n.e(8913)]).then(n.bind(n,58913)),Promise.all([n.e(1869),n.e(416)]).then(n.bind(n,90416))]).then((e=>{let[{DocSearchModal:t}]=e;_e=t}))),[]),S=(0,r.useCallback)((()=>{w().then((()=>{m.current=document.createElement("div"),document.body.insertBefore(m.current,document.body.firstChild),v(!0)}))}),[w,v]),_=(0,r.useCallback)((()=>{v(!1),m.current?.remove()}),[v]),E=(0,r.useCallback)((e=>{w().then((()=>{v(!0),x(e.key)}))}),[w,v,x]),k=(0,r.useRef)({navigate(e){let{itemUrl:t}=e;(0,ee.G)(o,t)?window.location.href=t:h.push(t)}}).current,D=(0,r.useRef)((e=>i.transformItems?i.transformItems(e):e.map((e=>({...e,url:l(e.url)}))))).current,A=(0,r.useMemo)((()=>e=>r.createElement(ke,(0,c.A)({},e,{onClose:_}))),[_]),O=(0,r.useCallback)((e=>(e.addAlgoliaAgent("docusaurus",a.docusaurusVersion),e)),[a.docusaurusVersion]);return(0,ge.E8)({isOpen:b,onOpen:S,onClose:_,onInput:E,searchButtonRef:g}),r.createElement(r.Fragment,null,r.createElement(be.A,null,r.createElement("link",{rel:"preconnect",href:`https://${i.appId}-dsn.algolia.net`,crossOrigin:"anonymous"})),r.createElement(ge.Bc,{onTouchStart:w,onFocus:w,onMouseOver:w,onClick:S,ref:g,translations:Se.button}),b&&_e&&m.current&&(0,we.createPortal)(r.createElement(_e,(0,c.A)({onClose:_,initialScrollY:window.scrollY,initialQuery:y,navigator:k,transformItems:D,hitComponent:Ee,transformSearchClient:O},i.searchPagePath&&{resultsFooterComponent:A},i,{searchParameters:p,placeholder:Se.placeholder,translations:Se.modal})),m.current))}function Ae(){const{siteConfig:e}=(0,se.A)();return r.createElement(De,e.themeConfig.algolia)}const Oe={searchBox:"searchBox_ZlJk"};function Ce(e){let{children:t,className:n}=e;return r.createElement("div",{className:(0,o.A)(n,Oe.searchBox)},t)}const Te={searchWrapper:"searchWrapper_jYdA"};function Pe(e){return r.createElement(r.Fragment,null,r.createElement(Ce,(0,c.A)({className:Te.searchWrapper},e)))}var Ie=n(44070),Re=n(84142);var Ne=n(55597);const je=e=>e.docs.find((t=>t.id===e.mainDocId));const Le={default:ie,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:o,...i}=e;const{i18n:{currentLocale:a,locales:u,localeConfigs:d}}=(0,se.A)(),f=(0,pe.o)(),{search:p,hash:h}=(0,s.zy)(),m=[...n,...u.map((e=>{const n=`${`pathname://${f.createUrl({locale:e,fullyQualified:!1})}`}${p}${h}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===a?t?"menu__link--active":"dropdown__link--active":""}})),...o],g=t?(0,l.T)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[a].label;return r.createElement(fe,(0,c.A)({},i,{mobile:t,label:r.createElement(r.Fragment,null,r.createElement(he,{className:me}),g),items:m}))},search:function(e){let{mobile:t,className:n}=e;return t?null:r.createElement(Pe,{className:n},r.createElement(Ae,null))},dropdown:fe,html:function(e){let{value:t,className:n,mobile:i=!1,isDropdownItem:a=!1}=e;const c=a?"li":"div";return r.createElement(c,{className:(0,o.A)({navbar__item:!i&&!a,"menu__list-item":i},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:o,...i}=e;const{activeDoc:a}=(0,Ie.zK)(o),s=(0,Re.QB)(t,o);return null===s?null:r.createElement(ie,(0,c.A)({exact:!0},i,{isActive:()=>a?.path===s.path||!!a?.sidebar&&a.sidebar===s.sidebar,label:n??s.id,to:s.path}))},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:o,...i}=e;const{activeDoc:a}=(0,Ie.zK)(o),s=(0,Re.fW)(t,o).link;if(!s)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return r.createElement(ie,(0,c.A)({exact:!0},i,{isActive:()=>a?.sidebar===t,label:n??s.label,to:s.path}))},docsVersion:function(e){let{label:t,to:n,docsPluginId:o,...i}=e;const a=(0,Re.Vd)(o)[0],s=t??a.label,l=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(a).path;return r.createElement(ie,(0,c.A)({},i,{label:s,to:l}))},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:o,dropdownItemsBefore:i,dropdownItemsAfter:a,...u}=e;const{search:d,hash:f}=(0,s.zy)(),p=(0,Ie.zK)(n),h=(0,Ie.jh)(n),{savePreferredVersionName:m}=(0,Ne.g1)(n),g=[...i,...h.map((e=>{const t=p.alternateDocVersions[e.name]??je(e);return{label:e.label,to:`${t.path}${d}${f}`,isActive:()=>e===p.activeVersion,onClick:()=>m(e.name)}})),...a],b=(0,Re.Vd)(n)[0],v=t&&g.length>1?(0,l.T)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):b.label,y=t&&g.length>1?void 0:je(b).path;return g.length<=1?r.createElement(ie,(0,c.A)({},u,{mobile:t,label:v,to:y,isActive:o?()=>!1:void 0})):r.createElement(fe,(0,c.A)({},u,{mobile:t,label:v,to:y,items:g,isActive:o?()=>!1:void 0}))}};function Me(e){let{type:t,...n}=e;const o=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),i=Le[o];if(!i)throw new Error(`No NavbarItem component found for type "${t}".`);return r.createElement(i,n)}function Be(){const e=(0,C.M)(),t=(0,x.p)().navbar.items;return r.createElement("ul",{className:"menu__list"},t.map(((t,n)=>r.createElement(Me,(0,c.A)({mobile:!0},t,{onClick:()=>e.toggle(),key:n})))))}function Fe(e){return r.createElement("button",(0,c.A)({},e,{type:"button",className:"clean-btn navbar-sidebar__back"}),r.createElement(l.A,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"},"\u2190 Back to main menu"))}function ze(){const e=0===(0,x.p)().navbar.items.length,t=L();return r.createElement(r.Fragment,null,!e&&r.createElement(Fe,{onClick:()=>t.hide()}),t.content)}function Ue(){const e=(0,C.M)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?r.createElement(M,{header:r.createElement(Q,null),primaryMenu:r.createElement(Be,null),secondaryMenu:r.createElement(ze,null)}):null}const $e={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function qe(e){return r.createElement("div",(0,c.A)({role:"presentation"},e,{className:(0,o.A)("navbar-sidebar__backdrop",e.className)}))}function He(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:i}}=(0,x.p)(),a=(0,C.M)(),{navbarRef:c,isNavbarVisible:s}=function(e){const[t,n]=(0,r.useState)(e),o=(0,r.useRef)(!1),i=(0,r.useRef)(0),a=(0,r.useCallback)((e=>{null!==e&&(i.current=e.getBoundingClientRect().height)}),[]);return(0,T.Mq)(((t,r)=>{let{scrollY:a}=t;if(!e)return;if(a=c?n(!1):a+l{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return o.current=!0,void n(!1);n(!0)})),{navbarRef:a,isNavbarVisible:t}}(n);return r.createElement("nav",{ref:c,"aria-label":(0,l.T)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,o.A)("navbar","navbar--fixed-top",n&&[$e.navbarHideable,!s&&$e.navbarHidden],{"navbar--dark":"dark"===i,"navbar--primary":"primary"===i,"navbar-sidebar--show":a.shown})},t,r.createElement(qe,{onClick:a.toggle}),r.createElement(Ue,null))}var Ve=n(70440);const We={errorBoundaryError:"errorBoundaryError_a6uf"};function Ge(e){return r.createElement("button",(0,c.A)({type:"button"},e),r.createElement(l.A,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error"},"Try again"))}function Ke(e){let{error:t}=e;const n=(0,Ve.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{className:We.errorBoundaryError},n)}class Ye extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const Qe="right";function Ze(e){let{width:t=19,height:n=12,className:o,...i}=e;return r.createElement("svg",(0,c.A)({className:o,width:t,height:n,viewBox:"0 0 19 12",fill:"currentColor","aria-hidden":"true"},i),r.createElement("rect",{x:"0.5",y:"5.5",width:"18",height:"1",rx:"0.5",stroke:"currentColor",strokeLinecap:"round"}),r.createElement("rect",{x:"0.5",y:"10.5",width:"18",height:"1",rx:"0.5",stroke:"currentColor",strokeLinecap:"round"}),r.createElement("rect",{x:"0.5",y:"0.5",width:"18",height:"1",rx:"0.5",stroke:"currentColor",strokeLinecap:"round"}))}function Xe(){const{toggle:e,shown:t}=(0,C.M)();return r.createElement("button",{onClick:e,"aria-label":(0,l.T)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button"},r.createElement(Ze,null))}const Je={colorModeToggle:"colorModeToggle_DEke"};function et(e){let{items:t}=e;return r.createElement(r.Fragment,null,t.map(((e,t)=>r.createElement(Ye,{key:t,onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t})},r.createElement(Me,e)))))}function tt(e){let{left:t,right:n}=e;return r.createElement("div",{className:"navbar__inner"},r.createElement("div",{className:"navbar__items"},t),r.createElement("div",{className:"navbar__items navbar__items--right"},n))}function nt(){const e=(0,C.M)(),t=(0,x.p)().navbar.items,[n,o]=function(e){function t(e){return"left"===(e.position??Qe)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),i=t.find((e=>"search"===e.type));return r.createElement(tt,{left:r.createElement(r.Fragment,null,!e.disabled&&r.createElement(Xe,null),r.createElement(K,null),r.createElement(et,{items:n})),right:r.createElement(r.Fragment,null,r.createElement(et,{items:o}),r.createElement(W,{className:Je.colorModeToggle}),!i&&r.createElement(Pe,null,r.createElement(Ae,null)))})}function rt(){return r.createElement(He,null,r.createElement(nt,null))}var ot=n(2543);function it(e){let{item:t}=e;const{to:n,href:i,label:a,prependBaseUrlToHref:s,...l}=t,u=(0,X.A)(n),d=(0,X.A)(i,{forcePrependBaseUrl:!0});return r.createElement(Z.A,(0,c.A)({},i?{href:s?d:i}:{to:u},l,{className:(0,o.A)("footer__link-item",!!i&&`footer__link-item_${(0,ot.kebabCase)(t.label)}`)}),a,i&&!(0,J.A)(i))}function at(e){let{item:t}=e;return t.html?r.createElement("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement("li",{key:t.href??t.to,className:"footer__item"},r.createElement(it,{item:t}))}function ct(e){let{column:t}=e;return r.createElement("div",{className:(0,o.A)("col footer__col",`footer__col_${(0,ot.kebabCase)(t.title)}`)},r.createElement("div",{className:"footer__title"},t.title),r.createElement("ul",{className:"footer__items clean-list"},t.items.map(((e,t)=>r.createElement(at,{key:t,item:e})))))}function st(e){let{links:t}=e;return r.createElement("div",{className:"row footer__links"},t.map(((e,t)=>r.createElement(ct,{key:t,column:e}))))}var lt=n(41653);const ut="footerLogoLink_DDai";function dt(e){let{logo:t}=e;const{withBaseUrl:n}=(0,X.h)(),i={light:n(t.src),dark:n(t.srcDark??t.src)};return r.createElement(lt.A,{className:(0,o.A)("footer__logo",t.className),alt:t.alt,sources:i,width:t.width,height:t.height,style:t.style})}function ft(e){let{logo:t}=e;return t.href?r.createElement(Z.A,{href:t.href,className:ut,target:t.target},r.createElement(dt,{logo:t})):r.createElement(dt,{logo:t})}function pt(e){let{copyright:t}=e;return r.createElement("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function ht(e){let{style:t,links:n,logo:i,copyright:a}=e;return r.createElement("footer",{className:(0,o.A)("footer",{"footer--dark":"dark"===t})},r.createElement("div",{className:"container container-fluid"},n,(i||a)&&r.createElement("div",{className:"footer__bottom text--center"},i&&r.createElement("div",{className:"margin-bottom--sm"},i),a)))}function mt(){const{footer:e}=(0,x.p)();if(!e)return null;const{copyright:t,links:n,logo:o,style:i}=e;return r.createElement(ht,{style:i,links:n&&n.length>0&&r.createElement(st,{links:n}),logo:o&&r.createElement(ft,{logo:o}),copyright:t&&r.createElement(pt,{copyright:t})})}const gt=r.memo(mt),bt=(0,P.fM)([B.a,w.oq,T.Tv,Ne.VQ,a.Jx,function(e){let{children:t}=e;return r.createElement(I.y_,null,r.createElement(C.e,null,r.createElement(N,null,t)))}]);function vt(e){let{children:t}=e;return r.createElement(bt,null,t)}function yt(e){let{error:t,tryAgain:n}=e;return r.createElement("main",{className:"container margin-vert--xl"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col col--6 col--offset-3"},r.createElement("h1",{className:"hero__title"},r.createElement(l.A,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed"},"This page crashed.")),r.createElement("div",{className:"margin-vert--lg"},r.createElement(Ge,{onClick:n,className:"button button--primary shadow--lw"})),r.createElement("hr",null),r.createElement("div",{className:"margin-vert--md"},r.createElement(Ke,{error:t})))))}const xt={mainWrapper:"mainWrapper_z2l0"};function wt(e){const{children:t,noFooter:n,wrapperClassName:c,title:s,description:l}=e;return(0,b.J)(),r.createElement(vt,null,r.createElement(a.be,{title:s,description:l}),r.createElement(y,null),r.createElement(O,null),r.createElement(rt,null),r.createElement("div",{id:d,className:(0,o.A)(g.G.wrapper.main,xt.mainWrapper,c)},r.createElement(i.A,{fallback:e=>r.createElement(yt,e)},t)),!n&&r.createElement(gt,null))}},23465:(e,t,n)=>{"use strict";n.d(t,{A:()=>d});var r=n(58168),o=n(96540),i=n(75489),a=n(86025),c=n(44586),s=n(6342),l=n(41653);function u(e){let{logo:t,alt:n,imageClassName:r}=e;const i={light:(0,a.A)(t.src),dark:(0,a.A)(t.srcDark||t.src)},c=o.createElement(l.A,{className:t.className,sources:i,height:t.height,width:t.width,alt:n,style:t.style});return r?o.createElement("div",{className:r},c):c}function d(e){const{siteConfig:{title:t}}=(0,c.A)(),{navbar:{title:n,logo:l}}=(0,s.p)(),{imageClassName:d,titleClassName:f,...p}=e,h=(0,a.A)(l?.href||"/"),m=n?"":t,g=l?.alt??m;return o.createElement(i.A,(0,r.A)({to:h},p,l?.target&&{target:l.target}),l&&o.createElement(u,{logo:l,alt:g,imageClassName:d}),null!=n&&o.createElement("b",{className:f},n))}},41463:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});var r=n(96540),o=n(5260);function i(e){let{locale:t,version:n,tag:i}=e;const a=t;return r.createElement(o.A,null,t&&r.createElement("meta",{name:"docusaurus_locale",content:t}),n&&r.createElement("meta",{name:"docusaurus_version",content:n}),i&&r.createElement("meta",{name:"docusaurus_tag",content:i}),a&&r.createElement("meta",{name:"docsearch:language",content:a}),n&&r.createElement("meta",{name:"docsearch:version",content:n}),i&&r.createElement("meta",{name:"docsearch:docusaurus_tag",content:i}))}},41653:(e,t,n)=>{"use strict";n.d(t,{A:()=>l});var r=n(58168),o=n(96540),i=n(20053),a=n(92303),c=n(95293);const s={themedImage:"themedImage_ToTc","themedImage--light":"themedImage--light_HNdA","themedImage--dark":"themedImage--dark_i4oU"};function l(e){const t=(0,a.A)(),{colorMode:n}=(0,c.G)(),{sources:l,className:u,alt:d,...f}=e,p=t?"dark"===n?["dark"]:["light"]:["light","dark"];return o.createElement(o.Fragment,null,p.map((e=>o.createElement("img",(0,r.A)({key:e,src:l[e],alt:d,className:(0,i.A)(s.themedImage,s[`themedImage--${e}`],u)},f)))))}},41422:(e,t,n)=>{"use strict";n.d(t,{N:()=>g,u:()=>s});var r=n(58168),o=n(96540),i=n(38193),a=n(53109);const c="ease-in-out";function s(e){let{initialState:t}=e;const[n,r]=(0,o.useState)(t??!1),i=(0,o.useCallback)((()=>{r((e=>!e))}),[]);return{collapsed:n,setCollapsed:r,toggleCollapsed:i}}const l={display:"none",overflow:"hidden",height:"0px"},u={display:"block",overflow:"visible",height:"auto"};function d(e,t){const n=t?l:u;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function f(e){let{collapsibleRef:t,collapsed:n,animation:r}=e;const i=(0,o.useRef)(!1);(0,o.useEffect)((()=>{const e=t.current;function o(){const t=e.scrollHeight,n=r?.duration??function(e){if((0,a.O)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${r?.easing??c}`,height:`${t}px`}}function s(){const t=o();e.style.transition=t.transition,e.style.height=t.height}if(!i.current)return d(e,n),void(i.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(s(),requestAnimationFrame((()=>{e.style.height=l.height,e.style.overflow=l.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{s()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,r])}function p(e){if(!i.A.canUseDOM)return e?l:u}function h(e){let{as:t="div",collapsed:n,children:r,animation:i,onCollapseTransitionEnd:a,className:c,disableSSRStyle:s}=e;const l=(0,o.useRef)(null);return f({collapsibleRef:l,collapsed:n,animation:i}),o.createElement(t,{ref:l,style:s?void 0:p(n),onTransitionEnd:e=>{"height"===e.propertyName&&(d(l.current,n),a?.(n))},className:c},r)}function m(e){let{collapsed:t,...n}=e;const[i,a]=(0,o.useState)(!t),[c,s]=(0,o.useState)(t);return(0,o.useLayoutEffect)((()=>{t||a(!0)}),[t]),(0,o.useLayoutEffect)((()=>{i&&s(t)}),[i,t]),i?o.createElement(h,(0,r.A)({},n,{collapsed:c})):null}function g(e){let{lazy:t,...n}=e;const r=t?m:h;return o.createElement(r,n)}},65041:(e,t,n)=>{"use strict";n.d(t,{Mj:()=>h,oq:()=>p});var r=n(96540),o=n(92303),i=n(89466),a=n(89532),c=n(6342);const s=(0,i.Wf)("docusaurus.announcement.dismiss"),l=(0,i.Wf)("docusaurus.announcement.id"),u=()=>"true"===s.get(),d=e=>s.set(String(e)),f=r.createContext(null);function p(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,c.p)(),t=(0,o.A)(),[n,i]=(0,r.useState)((()=>!!t&&u()));(0,r.useEffect)((()=>{i(u())}),[]);const a=(0,r.useCallback)((()=>{d(!0),i(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=l.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;l.set(t),r&&d(!1),!r&&u()||i(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:a})),[e,n,a])}();return r.createElement(f.Provider,{value:n},t)}function h(){const e=(0,r.useContext)(f);if(!e)throw new a.dV("AnnouncementBarProvider");return e}},95293:(e,t,n)=>{"use strict";n.d(t,{G:()=>g,a:()=>m});var r=n(96540),o=n(38193),i=n(89532),a=n(89466),c=n(6342);const s=r.createContext(void 0),l="theme",u=(0,a.Wf)(l),d={light:"light",dark:"dark"},f=e=>e===d.dark?d.dark:d.light,p=e=>o.A.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e),h=e=>{u.set(f(e))};function m(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,c.p)(),[o,i]=(0,r.useState)(p(e));(0,r.useEffect)((()=>{t&&u.del()}),[t]);const a=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:o=!0}=r;t?(i(t),o&&h(t)):(i(n?window.matchMedia("(prefers-color-scheme: dark)").matches?d.dark:d.light:e),u.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",f(o))}),[o]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==l)return;const t=u.get();null!==t&&a(f(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,a]);const s=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||s.current?s.current=window.matchMedia("print").matches:a(null)};return e.addListener(r),()=>e.removeListener(r)}),[a,t,n]),(0,r.useMemo)((()=>({colorMode:o,setColorMode:a,get isDarkTheme(){return o===d.dark},setLightTheme(){a(d.light)},setDarkTheme(){a(d.dark)}})),[o,a])}();return r.createElement(s.Provider,{value:n},t)}function g(){const e=(0,r.useContext)(s);if(null==e)throw new i.dV("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},55597:(e,t,n)=>{"use strict";n.d(t,{VQ:()=>g,XK:()=>y,g1:()=>v});var r=n(96540),o=n(44070),i=n(17065),a=n(6342),c=n(84142),s=n(89532),l=n(89466);const u=e=>`docs-preferred-version-${e}`,d={save:(e,t,n)=>{(0,l.Wf)(u(e),{persistence:t}).set(n)},read:(e,t)=>(0,l.Wf)(u(e),{persistence:t}).get(),clear:(e,t)=>{(0,l.Wf)(u(e),{persistence:t}).del()}},f=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const p=r.createContext(null);function h(){const e=(0,o.Gy)(),t=(0,a.p)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[i,c]=(0,r.useState)((()=>f(n)));(0,r.useEffect)((()=>{c(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function o(e){const t=d.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(d.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,o(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[i,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){d.save(e,t,n),c((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function m(e){let{children:t}=e;const n=h();return r.createElement(p.Provider,{value:n},t)}function g(e){let{children:t}=e;return c.C5?r.createElement(m,null,t):r.createElement(r.Fragment,null,t)}function b(){const e=(0,r.useContext)(p);if(!e)throw new s.dV("DocsPreferredVersionContextProvider");return e}function v(e){void 0===e&&(e=i.W);const t=(0,o.ht)(e),[n,a]=b(),{preferredVersionName:c}=n[e];return{preferredVersion:t.versions.find((e=>e.name===c))??null,savePreferredVersionName:(0,r.useCallback)((t=>{a.savePreferredVersion(e,t)}),[a,e])}}function y(){const e=(0,o.Gy)(),[t]=b();function n(n){const r=e[n],{preferredVersionName:o}=t[n];return r.versions.find((e=>e.name===o))??null}const r=Object.keys(e);return Object.fromEntries(r.map((e=>[e,n(e)])))}},26588:(e,t,n)=>{"use strict";n.d(t,{V:()=>c,t:()=>s});var r=n(96540),o=n(89532);const i=Symbol("EmptyContext"),a=r.createContext(i);function c(e){let{children:t,name:n,items:o}=e;const i=(0,r.useMemo)((()=>n&&o?{name:n,items:o}:null),[n,o]);return r.createElement(a.Provider,{value:i},t)}function s(){const e=(0,r.useContext)(a);if(e===i)throw new o.dV("DocsSidebarProvider");return e}},22069:(e,t,n)=>{"use strict";n.d(t,{M:()=>f,e:()=>d});var r=n(96540),o=n(75600),i=n(24581),a=n(57485),c=n(6342),s=n(89532);const l=r.createContext(void 0);function u(){const e=function(){const e=(0,o.YL)(),{items:t}=(0,c.p)().navbar;return 0===t.length&&!e.component}(),t=(0,i.l)(),n=!e&&"mobile"===t,[s,l]=(0,r.useState)(!1);(0,a.$Z)((()=>{if(s)return l(!1),!1}));const u=(0,r.useCallback)((()=>{l((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&l(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:u,shown:s})),[e,n,u,s])}function d(e){let{children:t}=e;const n=u();return r.createElement(l.Provider,{value:n},t)}function f(){const e=r.useContext(l);if(void 0===e)throw new s.dV("NavbarMobileSidebarProvider");return e}},75600:(e,t,n)=>{"use strict";n.d(t,{GX:()=>s,YL:()=>c,y_:()=>a});var r=n(96540),o=n(89532);const i=r.createContext(null);function a(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return r.createElement(i.Provider,{value:n},t)}function c(){const e=(0,r.useContext)(i);if(!e)throw new o.dV("NavbarSecondaryMenuContentProvider");return e[0]}function s(e){let{component:t,props:n}=e;const a=(0,r.useContext)(i);if(!a)throw new o.dV("NavbarSecondaryMenuContentProvider");const[,c]=a,s=(0,o.Be)(n);return(0,r.useEffect)((()=>{c({component:t,props:s})}),[c,t,s]),(0,r.useEffect)((()=>()=>c({component:null,props:null})),[c]),null}},14090:(e,t,n)=>{"use strict";n.d(t,{w:()=>o,J:()=>i});var r=n(96540);const o="navigation-with-keyboard";function i(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(o),"mousedown"===e.type&&document.body.classList.remove(o)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(o),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},24255:(e,t,n)=>{"use strict";n.d(t,{b:()=>c,w:()=>s});var r=n(96540),o=n(44586),i=n(57485);const a="q";function c(){return(0,i.l)(a)}function s(){const{siteConfig:{baseUrl:e,themeConfig:t}}=(0,o.A)(),{algolia:{searchPagePath:n}}=t;return(0,r.useCallback)((t=>`${e}${n}?${a}=${encodeURIComponent(t)}`),[e,n])}},24581:(e,t,n)=>{"use strict";n.d(t,{l:()=>l});var r=n(96540),o=n(38193);const i={desktop:"desktop",mobile:"mobile",ssr:"ssr"},a=996;function c(){return o.A.canUseDOM?window.innerWidth>a?i.desktop:i.mobile:i.ssr}const s=!1;function l(){const[e,t]=(0,r.useState)((()=>s?"ssr":c()));return(0,r.useEffect)((()=>{function e(){t(c())}const n=s?window.setTimeout(e,1e3):void 0;return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e),clearTimeout(n)}}),[]),e}},17559:(e,t,n)=>{"use strict";n.d(t,{G:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{}}},53109:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{O:()=>r})},84142:(e,t,n)=>{"use strict";n.d(t,{C5:()=>d,OF:()=>b,QB:()=>x,Vd:()=>v,_o:()=>f,fW:()=>y,mz:()=>w,w8:()=>m});var r=n(96540),o=n(56347),i=n(22831),a=n(44070),c=n(55597),s=n(26588),l=n(31682),u=n(99169);const d=!!a.Gy;function f(e){if(e.href)return e.href;for(const t of e.items){if("link"===t.type)return t.href;if("category"===t.type){const e=f(t);if(e)return e}}}const p=(e,t)=>void 0!==e&&(0,u.ys)(e,t),h=(e,t)=>e.some((e=>m(e,t)));function m(e,t){return"link"===e.type?p(e.href,t):"category"===e.type&&(p(e.href,t)||h(e.items,t))}function g(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const o=[];return function e(t){for(const i of t)if("category"===i.type&&((0,u.ys)(i.href,n)||e(i.items))||"link"===i.type&&(0,u.ys)(i.href,n)){return r&&"category"!==i.type||o.unshift(i),!0}return!1}(t),o}function b(){const e=(0,s.t)(),{pathname:t}=(0,o.zy)(),n=(0,a.vT)()?.pluginData.breadcrumbs;return!1!==n&&e?g({sidebarItems:e.items,pathname:t}):null}function v(e){const{activeVersion:t}=(0,a.zK)(e),{preferredVersion:n}=(0,c.g1)(e),o=(0,a.r7)(e);return(0,r.useMemo)((()=>(0,l.s)([t,n,o].filter(Boolean))),[t,n,o])}function y(e,t){const n=v(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${t.map((e=>e[0])).join("\n- ")}`);return r[1]}),[e,n])}function x(e,t){const n=v(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${(0,l.s)(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function w(e){let{route:t,versionMetadata:n}=e;const r=(0,o.zy)(),a=t.routes,c=a.find((e=>(0,o.B6)(r.pathname,e)));if(!c)return null;const s=c.sidebar,l=s?n.docsSidebars[s]:void 0;return{docElement:(0,i.v)(a),sidebarName:s,sidebarItems:l}}},20481:(e,t,n)=>{"use strict";n.d(t,{s:()=>o});var r=n(44586);function o(e){const{siteConfig:t}=(0,r.A)(),{title:n,titleDelimiter:o}=t;return e?.trim().length?`${e.trim()} ${o} ${n}`:n}},57485:(e,t,n)=>{"use strict";n.d(t,{$Z:()=>c,aZ:()=>s,l:()=>l});var r=n(96540),o=n(56347),i=n(19888),a=n(89532);function c(e){!function(e){const t=(0,o.W6)(),n=(0,a._q)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}function s(e){return function(e){const t=(0,o.W6)();return(0,i.useSyncExternalStore)(t.listen,(()=>e(t)),(()=>e(t)))}((t=>null===e?null:new URLSearchParams(t.location.search).get(e)))}function l(e){const t=s(e)??"",n=function(){const e=(0,o.W6)();return(0,r.useCallback)(((t,n,r)=>{const o=new URLSearchParams(e.location.search);n?o.set(t,n):o.delete(t),(r?.push?e.push:e.replace)({search:o.toString()})}),[e])}();return[t,(0,r.useCallback)(((t,r)=>{n(e,t,r)}),[n,e])]}},31682:(e,t,n)=>{"use strict";function r(e,t){return void 0===t&&(t=(e,t)=>e===t),e.filter(((n,r)=>e.findIndex((e=>t(e,n)))!==r))}function o(e){return Array.from(new Set(e))}n.d(t,{X:()=>r,s:()=>o})},69024:(e,t,n)=>{"use strict";n.d(t,{e3:()=>f,be:()=>u,Jx:()=>p});var r=n(96540),o=n(20053),i=n(5260),a=n(53102);function c(){const e=r.useContext(a.o);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var s=n(86025),l=n(20481);function u(e){let{title:t,description:n,keywords:o,image:a,children:c}=e;const u=(0,l.s)(t),{withBaseUrl:d}=(0,s.h)(),f=a?d(a,{absolute:!0}):void 0;return r.createElement(i.A,null,t&&r.createElement("title",null,u),t&&r.createElement("meta",{property:"og:title",content:u}),n&&r.createElement("meta",{name:"description",content:n}),n&&r.createElement("meta",{property:"og:description",content:n}),o&&r.createElement("meta",{name:"keywords",content:Array.isArray(o)?o.join(","):o}),f&&r.createElement("meta",{property:"og:image",content:f}),f&&r.createElement("meta",{name:"twitter:image",content:f}),c)}const d=r.createContext(void 0);function f(e){let{className:t,children:n}=e;const a=r.useContext(d),c=(0,o.A)(a,t);return r.createElement(d.Provider,{value:c},r.createElement(i.A,null,r.createElement("html",{className:c})),n)}function p(e){let{children:t}=e;const n=c(),i=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const a=`plugin-id-${n.plugin.id}`;return r.createElement(f,{className:(0,o.A)(i,a)},t)}},89532:(e,t,n)=>{"use strict";n.d(t,{Be:()=>s,ZC:()=>a,_q:()=>i,dV:()=>c,fM:()=>l});var r=n(96540);const o=n(38193).A.canUseDOM?r.useLayoutEffect:r.useEffect;function i(e){const t=(0,r.useRef)(e);return o((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function a(e){const t=(0,r.useRef)();return o((()=>{t.current=e})),t.current}class c extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function s(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function l(e){return t=>{let{children:n}=t;return r.createElement(r.Fragment,null,e.reduceRight(((e,t)=>r.createElement(t,null,e)),n))}}},91252:(e,t,n)=>{"use strict";function r(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}n.d(t,{G:()=>r})},99169:(e,t,n)=>{"use strict";n.d(t,{Dt:()=>c,ys:()=>a});var r=n(96540),o=n(35947),i=n(44586);function a(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function c(){const{baseUrl:e}=(0,i.A)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function o(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(o).flatMap((e=>e.routes??[])))}(n)}({routes:o.A,baseUrl:e})),[e])}},23104:(e,t,n)=>{"use strict";n.d(t,{Mq:()=>d,Tv:()=>s,a_:()=>f,gk:()=>p});var r=n(96540),o=n(38193),i=n(92303),a=n(89532);const c=r.createContext(void 0);function s(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return r.createElement(c.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(c);if(null==e)throw new a.dV("ScrollControllerProvider");return e}const u=()=>o.A.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function d(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=l(),o=(0,r.useRef)(u()),i=(0,a._q)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=u();i(e,o.current),o.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[i,n,...t])}function f(){const e=l(),t=function(){const e=(0,r.useRef)({elem:null,top:0}),t=(0,r.useCallback)((t=>{e.current={elem:t,top:t.getBoundingClientRect().top}}),[]),n=(0,r.useCallback)((()=>{const{current:{elem:t,top:n}}=e;if(!t)return{restored:!1};const r=t.getBoundingClientRect().top-n;return r&&window.scrollBy({left:0,top:r}),e.current={elem:null,top:0},{restored:0!==r}}),[]);return(0,r.useMemo)((()=>({save:t,restore:n})),[n,t])}(),n=(0,r.useRef)(void 0),o=(0,r.useCallback)((r=>{t.save(r),e.disableScrollEvents(),n.current=()=>{const{restored:r}=t.restore();if(n.current=void 0,r){const t=()=>{e.enableScrollEvents(),window.removeEventListener("scroll",t)};window.addEventListener("scroll",t)}else e.enableScrollEvents()}}),[e,t]);return(0,r.useLayoutEffect)((()=>{queueMicrotask((()=>n.current?.()))})),{blockElementScrollPositionUntilNextRender:o}}function p(){const e=(0,r.useRef)(null),t=(0,i.A)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const o=document.documentElement.scrollTop;(n&&o>e||!n&&ot&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},2967:(e,t,n)=>{"use strict";n.d(t,{Cy:()=>a,af:()=>s,tU:()=>c});var r=n(44070),o=n(44586),i=n(55597);const a="default";function c(e,t){return`docs-${e}-${t}`}function s(){const{i18n:e}=(0,o.A)(),t=(0,r.Gy)(),n=(0,r.gk)(),s=(0,i.XK)();const l=[a,...Object.keys(t).map((function(e){const r=n?.activePlugin.pluginId===e?n.activeVersion:void 0,o=s[e],i=t[e].versions.find((e=>e.isLast));return c(e,(r??o??i).name)}))];return{locale:e.currentLocale,tags:l}}},89466:(e,t,n)=>{"use strict";n.d(t,{Dv:()=>d,Wf:()=>u});var r=n(96540),o=n(19888);const i="localStorage";function a(e){let{key:t,oldValue:n,newValue:r,storage:o}=e;if(n===r)return;const i=document.createEvent("StorageEvent");i.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,o),window.dispatchEvent(i)}function c(e){if(void 0===e&&(e=i),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,s||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),s=!0),null}var t}let s=!1;const l={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function u(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t,listen:t}}(e);const n=c(t?.persistence);return null===n?l:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{const r=n.getItem(e);n.setItem(e,t),a({key:e,oldValue:r,newValue:t,storage:n})}catch(r){console.error(`Docusaurus storage error, can't set ${e}=${t}`,r)}},del:()=>{try{const t=n.getItem(e);n.removeItem(e),a({key:e,oldValue:t,newValue:null,storage:n})}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}},listen:t=>{try{const r=r=>{r.storageArea===n&&r.key===e&&t(r)};return window.addEventListener("storage",r),()=>window.removeEventListener("storage",r)}catch(r){return console.error(`Docusaurus storage error, can't listen for changes of key=${e}`,r),()=>{}}}}}function d(e,t){const n=(0,r.useRef)((()=>null===e?l:u(e,t))).current(),i=(0,r.useCallback)((e=>"undefined"==typeof window?()=>{}:n.listen(e)),[n]);return[(0,o.useSyncExternalStore)(i,(()=>"undefined"==typeof window?null:n.get()),(()=>null)),n]}},32131:(e,t,n)=>{"use strict";n.d(t,{o:()=>a});var r=n(44586),o=n(56347),i=n(70440);function a(){const{siteConfig:{baseUrl:e,url:t,trailingSlash:n},i18n:{defaultLocale:a,currentLocale:c}}=(0,r.A)(),{pathname:s}=(0,o.zy)(),l=(0,i.applyTrailingSlash)(s,{trailingSlash:n,baseUrl:e}),u=c===a?e:e.replace(`/${c}/`,"/"),d=l.replace(e,"");return{createUrl:function(e){let{locale:n,fullyQualified:r}=e;return`${r?t:""}${function(e){return e===a?`${u}`:`${u}${e}/`}(n)}${d}`}}}},75062:(e,t,n)=>{"use strict";n.d(t,{$:()=>a});var r=n(96540),o=n(56347),i=n(89532);function a(e){const t=(0,o.zy)(),n=(0,i.ZC)(t),a=(0,i._q)(e);(0,r.useEffect)((()=>{n&&t!==n&&a({location:t,previousLocation:n})}),[a,t,n])}},6342:(e,t,n)=>{"use strict";n.d(t,{p:()=>o});var r=n(44586);function o(){return(0,r.A)().siteConfig.themeConfig}},38126:(e,t,n)=>{"use strict";n.d(t,{c:()=>o});var r=n(44586);function o(){const{siteConfig:{themeConfig:e}}=(0,r.A)();return e}},51062:(e,t,n)=>{"use strict";n.d(t,{C:()=>c});var r=n(96540),o=n(91252),i=n(86025),a=n(38126);function c(){const{withBaseUrl:e}=(0,i.h)(),{algolia:{externalUrlRegex:t,replaceSearchResultPathname:n}}=(0,a.c)();return(0,r.useCallback)((r=>{const i=new URL(r);if((0,o.G)(t,i.href))return r;const a=`${i.pathname+i.hash}`;return e(function(e,t){return t?e.replaceAll(new RegExp(t.from,"g"),t.to):e}(a,n))}),[e,t,n])}},12983:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[o]=e.split(/[#?]/),i="/"===o||o===r?o:(a=o,n?function(e){return e.endsWith("/")?e:`${e}/`}(a):function(e){return e.endsWith("/")?e.slice(0,-1):e}(a));var a;return e.replace(o,i)}},80253:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},70440:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="__blog-post-container";var o=n(12983);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(o).default}});var i=n(80253);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return i.getErrorCausalChain}})},20053:(e,t,n)=>{"use strict";function r(e){var t,n,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;to});const o=function(){for(var e,t,n=0,o="";n{"use strict";n.d(t,{zR:()=>x,TM:()=>D,yJ:()=>p,sC:()=>O,AO:()=>f});var r=n(58168);function o(e){return"/"===e.charAt(0)}function i(e,t){for(var n=t,r=n+1,o=e.length;r=0;f--){var p=a[f];"."===p?i(a,f):".."===p?(i(a,f),d++):d&&(i(a,f),d--)}if(!l)for(;d--;d)a.unshift("..");!l||""===a[0]||a[0]&&o(a[0])||a.unshift("");var h=a.join("/");return n&&"/"!==h.substr(-1)&&(h+="/"),h};var c=n(11561);function s(e){return"/"===e.charAt(0)?e:"/"+e}function l(e){return"/"===e.charAt(0)?e.substr(1):e}function u(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function f(e){var t=e.pathname,n=e.search,r=e.hash,o=t||"/";return n&&"?"!==n&&(o+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(o+="#"===r.charAt(0)?r:"#"+r),o}function p(e,t,n,o){var i;"string"==typeof e?(i=function(e){var t=e||"/",n="",r="",o=t.indexOf("#");-1!==o&&(r=t.substr(o),t=t.substr(0,o));var i=t.indexOf("?");return-1!==i&&(n=t.substr(i),t=t.substr(0,i)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),i.state=t):(void 0===(i=(0,r.A)({},e)).pathname&&(i.pathname=""),i.search?"?"!==i.search.charAt(0)&&(i.search="?"+i.search):i.search="",i.hash?"#"!==i.hash.charAt(0)&&(i.hash="#"+i.hash):i.hash="",void 0!==t&&void 0===i.state&&(i.state=t));try{i.pathname=decodeURI(i.pathname)}catch(c){throw c instanceof URIError?new URIError('Pathname "'+i.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):c}return n&&(i.key=n),o?i.pathname?"/"!==i.pathname.charAt(0)&&(i.pathname=a(i.pathname,o.pathname)):i.pathname=o.pathname:i.pathname||(i.pathname="/"),i}function h(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,o){if(null!=e){var i="function"==typeof e?e(t,n):e;"string"==typeof i?"function"==typeof r?r(i,o):o(!0):o(!1!==i)}else o(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;rt?n.splice(t,n.length-t,o):n.push(o),d({action:r,location:o,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",o=p(e,t,m(),x.location);u.confirmTransitionTo(o,r,n,(function(e){e&&(x.entries[x.index]=o,d({action:r,location:o}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=x.index+e;return t>=0&&t{"use strict";var r=n(44363),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},i={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},a={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},c={};function s(e){return r.isMemo(e)?a:c[e.$$typeof]||o}c[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},c[r.Memo]=a;var l=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,f=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,h=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(h){var o=p(n);o&&o!==h&&e(t,o,r)}var a=u(n);d&&(a=a.concat(d(n)));for(var c=s(t),m=s(n),g=0;g{"use strict";e.exports=function(e,t,n,r,o,i,a,c){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,r,o,i,a,c],u=0;(s=new Error(t.replace(/%s/g,(function(){return l[u++]})))).name="Invariant Violation"}throw s.framesToPop=1,s}}},2543:function(e,t,n){var r;e=n.nmd(e),function(){var o,i="Expected a function",a="__lodash_hash_undefined__",c="__lodash_placeholder__",s=16,l=32,u=64,d=128,f=256,p=1/0,h=9007199254740991,m=NaN,g=4294967295,b=[["ary",d],["bind",1],["bindKey",2],["curry",8],["curryRight",s],["flip",512],["partial",l],["partialRight",u],["rearg",f]],v="[object Arguments]",y="[object Array]",x="[object Boolean]",w="[object Date]",S="[object Error]",_="[object Function]",E="[object GeneratorFunction]",k="[object Map]",D="[object Number]",A="[object Object]",O="[object Promise]",C="[object RegExp]",T="[object Set]",P="[object String]",I="[object Symbol]",R="[object WeakMap]",N="[object ArrayBuffer]",j="[object DataView]",L="[object Float32Array]",M="[object Float64Array]",B="[object Int8Array]",F="[object Int16Array]",z="[object Int32Array]",U="[object Uint8Array]",$="[object Uint8ClampedArray]",q="[object Uint16Array]",H="[object Uint32Array]",V=/\b__p \+= '';/g,W=/\b(__p \+=) '' \+/g,G=/(__e\(.*?\)|\b__t\)) \+\n'';/g,K=/&(?:amp|lt|gt|quot|#39);/g,Y=/[&<>"']/g,Q=RegExp(K.source),Z=RegExp(Y.source),X=/<%-([\s\S]+?)%>/g,J=/<%([\s\S]+?)%>/g,ee=/<%=([\s\S]+?)%>/g,te=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,ne=/^\w*$/,re=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,oe=/[\\^$.*+?()[\]{}|]/g,ie=RegExp(oe.source),ae=/^\s+/,ce=/\s/,se=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,le=/\{\n\/\* \[wrapped with (.+)\] \*/,ue=/,? & /,de=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,fe=/[()=,{}\[\]\/\s]/,pe=/\\(\\)?/g,he=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,me=/\w*$/,ge=/^[-+]0x[0-9a-f]+$/i,be=/^0b[01]+$/i,ve=/^\[object .+?Constructor\]$/,ye=/^0o[0-7]+$/i,xe=/^(?:0|[1-9]\d*)$/,we=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Se=/($^)/,_e=/['\n\r\u2028\u2029\\]/g,Ee="\\ud800-\\udfff",ke="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",De="\\u2700-\\u27bf",Ae="a-z\\xdf-\\xf6\\xf8-\\xff",Oe="A-Z\\xc0-\\xd6\\xd8-\\xde",Ce="\\ufe0e\\ufe0f",Te="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\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",Pe="['\u2019]",Ie="["+Ee+"]",Re="["+Te+"]",Ne="["+ke+"]",je="\\d+",Le="["+De+"]",Me="["+Ae+"]",Be="[^"+Ee+Te+je+De+Ae+Oe+"]",Fe="\\ud83c[\\udffb-\\udfff]",ze="[^"+Ee+"]",Ue="(?:\\ud83c[\\udde6-\\uddff]){2}",$e="[\\ud800-\\udbff][\\udc00-\\udfff]",qe="["+Oe+"]",He="\\u200d",Ve="(?:"+Me+"|"+Be+")",We="(?:"+qe+"|"+Be+")",Ge="(?:['\u2019](?:d|ll|m|re|s|t|ve))?",Ke="(?:['\u2019](?:D|LL|M|RE|S|T|VE))?",Ye="(?:"+Ne+"|"+Fe+")"+"?",Qe="["+Ce+"]?",Ze=Qe+Ye+("(?:"+He+"(?:"+[ze,Ue,$e].join("|")+")"+Qe+Ye+")*"),Xe="(?:"+[Le,Ue,$e].join("|")+")"+Ze,Je="(?:"+[ze+Ne+"?",Ne,Ue,$e,Ie].join("|")+")",et=RegExp(Pe,"g"),tt=RegExp(Ne,"g"),nt=RegExp(Fe+"(?="+Fe+")|"+Je+Ze,"g"),rt=RegExp([qe+"?"+Me+"+"+Ge+"(?="+[Re,qe,"$"].join("|")+")",We+"+"+Ke+"(?="+[Re,qe+Ve,"$"].join("|")+")",qe+"?"+Ve+"+"+Ge,qe+"+"+Ke,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",je,Xe].join("|"),"g"),ot=RegExp("["+He+Ee+ke+Ce+"]"),it=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,at=["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"],ct=-1,st={};st[L]=st[M]=st[B]=st[F]=st[z]=st[U]=st[$]=st[q]=st[H]=!0,st[v]=st[y]=st[N]=st[x]=st[j]=st[w]=st[S]=st[_]=st[k]=st[D]=st[A]=st[C]=st[T]=st[P]=st[R]=!1;var lt={};lt[v]=lt[y]=lt[N]=lt[j]=lt[x]=lt[w]=lt[L]=lt[M]=lt[B]=lt[F]=lt[z]=lt[k]=lt[D]=lt[A]=lt[C]=lt[T]=lt[P]=lt[I]=lt[U]=lt[$]=lt[q]=lt[H]=!0,lt[S]=lt[_]=lt[R]=!1;var ut={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},dt=parseFloat,ft=parseInt,pt="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,ht="object"==typeof self&&self&&self.Object===Object&&self,mt=pt||ht||Function("return this")(),gt=t&&!t.nodeType&&t,bt=gt&&e&&!e.nodeType&&e,vt=bt&&bt.exports===gt,yt=vt&&pt.process,xt=function(){try{var e=bt&&bt.require&&bt.require("util").types;return e||yt&&yt.binding&&yt.binding("util")}catch(t){}}(),wt=xt&&xt.isArrayBuffer,St=xt&&xt.isDate,_t=xt&&xt.isMap,Et=xt&&xt.isRegExp,kt=xt&&xt.isSet,Dt=xt&&xt.isTypedArray;function At(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}function Ot(e,t,n,r){for(var o=-1,i=null==e?0:e.length;++o-1}function Nt(e,t,n){for(var r=-1,o=null==e?0:e.length;++r-1;);return n}function rn(e,t){for(var n=e.length;n--&&qt(t,e[n],0)>-1;);return n}var on=Kt({"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a","\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I","\xcd":"I","\xce":"I","\xcf":"I","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O","\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"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"}),an=Kt({"&":"&","<":"<",">":">",'"':""","'":"'"});function cn(e){return"\\"+ut[e]}function sn(e){return ot.test(e)}function ln(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}function un(e,t){return function(n){return e(t(n))}}function dn(e,t){for(var n=-1,r=e.length,o=0,i=[];++n",""":'"',"'":"'"});var vn=function e(t){var n,r=(t=null==t?mt:vn.defaults(mt.Object(),t,vn.pick(mt,at))).Array,ce=t.Date,Ee=t.Error,ke=t.Function,De=t.Math,Ae=t.Object,Oe=t.RegExp,Ce=t.String,Te=t.TypeError,Pe=r.prototype,Ie=ke.prototype,Re=Ae.prototype,Ne=t["__core-js_shared__"],je=Ie.toString,Le=Re.hasOwnProperty,Me=0,Be=(n=/[^.]+$/.exec(Ne&&Ne.keys&&Ne.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"",Fe=Re.toString,ze=je.call(Ae),Ue=mt._,$e=Oe("^"+je.call(Le).replace(oe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),qe=vt?t.Buffer:o,He=t.Symbol,Ve=t.Uint8Array,We=qe?qe.allocUnsafe:o,Ge=un(Ae.getPrototypeOf,Ae),Ke=Ae.create,Ye=Re.propertyIsEnumerable,Qe=Pe.splice,Ze=He?He.isConcatSpreadable:o,Xe=He?He.iterator:o,Je=He?He.toStringTag:o,nt=function(){try{var e=pi(Ae,"defineProperty");return e({},"",{}),e}catch(t){}}(),ot=t.clearTimeout!==mt.clearTimeout&&t.clearTimeout,ut=ce&&ce.now!==mt.Date.now&&ce.now,pt=t.setTimeout!==mt.setTimeout&&t.setTimeout,ht=De.ceil,gt=De.floor,bt=Ae.getOwnPropertySymbols,yt=qe?qe.isBuffer:o,xt=t.isFinite,zt=Pe.join,Kt=un(Ae.keys,Ae),yn=De.max,xn=De.min,wn=ce.now,Sn=t.parseInt,_n=De.random,En=Pe.reverse,kn=pi(t,"DataView"),Dn=pi(t,"Map"),An=pi(t,"Promise"),On=pi(t,"Set"),Cn=pi(t,"WeakMap"),Tn=pi(Ae,"create"),Pn=Cn&&new Cn,In={},Rn=Fi(kn),Nn=Fi(Dn),jn=Fi(An),Ln=Fi(On),Mn=Fi(Cn),Bn=He?He.prototype:o,Fn=Bn?Bn.valueOf:o,zn=Bn?Bn.toString:o;function Un(e){if(nc(e)&&!Va(e)&&!(e instanceof Vn)){if(e instanceof Hn)return e;if(Le.call(e,"__wrapped__"))return zi(e)}return new Hn(e)}var $n=function(){function e(){}return function(t){if(!tc(t))return{};if(Ke)return Ke(t);e.prototype=t;var n=new e;return e.prototype=o,n}}();function qn(){}function Hn(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=o}function Vn(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=g,this.__views__=[]}function Wn(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t=t?e:t)),e}function lr(e,t,n,r,i,a){var c,s=1&t,l=2&t,u=4&t;if(n&&(c=i?n(e,r,i,a):n(e)),c!==o)return c;if(!tc(e))return e;var d=Va(e);if(d){if(c=function(e){var t=e.length,n=new e.constructor(t);t&&"string"==typeof e[0]&&Le.call(e,"index")&&(n.index=e.index,n.input=e.input);return n}(e),!s)return Po(e,c)}else{var f=gi(e),p=f==_||f==E;if(Ya(e))return ko(e,s);if(f==A||f==v||p&&!i){if(c=l||p?{}:vi(e),!s)return l?function(e,t){return Io(e,mi(e),t)}(e,function(e,t){return e&&Io(t,Rc(t),e)}(c,e)):function(e,t){return Io(e,hi(e),t)}(e,ir(c,e))}else{if(!lt[f])return i?e:{};c=function(e,t,n){var r=e.constructor;switch(t){case N:return Do(e);case x:case w:return new r(+e);case j:return function(e,t){var n=t?Do(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,n);case L:case M:case B:case F:case z:case U:case $:case q:case H:return Ao(e,n);case k:return new r;case D:case P:return new r(e);case C:return function(e){var t=new e.constructor(e.source,me.exec(e));return t.lastIndex=e.lastIndex,t}(e);case T:return new r;case I:return o=e,Fn?Ae(Fn.call(o)):{}}var o}(e,f,s)}}a||(a=new Qn);var h=a.get(e);if(h)return h;a.set(e,c),cc(e)?e.forEach((function(r){c.add(lr(r,t,n,r,e,a))})):rc(e)&&e.forEach((function(r,o){c.set(o,lr(r,t,n,o,e,a))}));var m=d?o:(u?l?ai:ii:l?Rc:Ic)(e);return Ct(m||e,(function(r,o){m&&(r=e[o=r]),nr(c,o,lr(r,t,n,o,e,a))})),c}function ur(e,t,n){var r=n.length;if(null==e)return!r;for(e=Ae(e);r--;){var i=n[r],a=t[i],c=e[i];if(c===o&&!(i in e)||!a(c))return!1}return!0}function dr(e,t,n){if("function"!=typeof e)throw new Te(i);return Ii((function(){e.apply(o,n)}),t)}function fr(e,t,n,r){var o=-1,i=Rt,a=!0,c=e.length,s=[],l=t.length;if(!c)return s;n&&(t=jt(t,Jt(n))),r?(i=Nt,a=!1):t.length>=200&&(i=tn,a=!1,t=new Yn(t));e:for(;++o-1},Gn.prototype.set=function(e,t){var n=this.__data__,r=rr(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this},Kn.prototype.clear=function(){this.size=0,this.__data__={hash:new Wn,map:new(Dn||Gn),string:new Wn}},Kn.prototype.delete=function(e){var t=di(this,e).delete(e);return this.size-=t?1:0,t},Kn.prototype.get=function(e){return di(this,e).get(e)},Kn.prototype.has=function(e){return di(this,e).has(e)},Kn.prototype.set=function(e,t){var n=di(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this},Yn.prototype.add=Yn.prototype.push=function(e){return this.__data__.set(e,a),this},Yn.prototype.has=function(e){return this.__data__.has(e)},Qn.prototype.clear=function(){this.__data__=new Gn,this.size=0},Qn.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},Qn.prototype.get=function(e){return this.__data__.get(e)},Qn.prototype.has=function(e){return this.__data__.has(e)},Qn.prototype.set=function(e,t){var n=this.__data__;if(n instanceof Gn){var r=n.__data__;if(!Dn||r.length<199)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new Kn(r)}return n.set(e,t),this.size=n.size,this};var pr=jo(wr),hr=jo(Sr,!0);function mr(e,t){var n=!0;return pr(e,(function(e,r,o){return n=!!t(e,r,o)})),n}function gr(e,t,n){for(var r=-1,i=e.length;++r0&&n(c)?t>1?vr(c,t-1,n,r,o):Lt(o,c):r||(o[o.length]=c)}return o}var yr=Lo(),xr=Lo(!0);function wr(e,t){return e&&yr(e,t,Ic)}function Sr(e,t){return e&&xr(e,t,Ic)}function _r(e,t){return It(t,(function(t){return Xa(e[t])}))}function Er(e,t){for(var n=0,r=(t=wo(t,e)).length;null!=e&&nt}function Or(e,t){return null!=e&&Le.call(e,t)}function Cr(e,t){return null!=e&&t in Ae(e)}function Tr(e,t,n){for(var i=n?Nt:Rt,a=e[0].length,c=e.length,s=c,l=r(c),u=1/0,d=[];s--;){var f=e[s];s&&t&&(f=jt(f,Jt(t))),u=xn(f.length,u),l[s]=!n&&(t||a>=120&&f.length>=120)?new Yn(s&&f):o}f=e[0];var p=-1,h=l[0];e:for(;++p=c?s:s*("desc"==n[r]?-1:1)}return e.index-t.index}(e,t,n)}))}function Wr(e,t,n){for(var r=-1,o=t.length,i={};++r-1;)c!==e&&Qe.call(c,s,1),Qe.call(e,s,1);return e}function Kr(e,t){for(var n=e?t.length:0,r=n-1;n--;){var o=t[n];if(n==r||o!==i){var i=o;xi(o)?Qe.call(e,o,1):po(e,o)}}return e}function Yr(e,t){return e+gt(_n()*(t-e+1))}function Qr(e,t){var n="";if(!e||t<1||t>h)return n;do{t%2&&(n+=e),(t=gt(t/2))&&(e+=e)}while(t);return n}function Zr(e,t){return Ri(Oi(e,t,os),e+"")}function Xr(e){return Xn(Uc(e))}function Jr(e,t){var n=Uc(e);return Li(n,sr(t,0,n.length))}function eo(e,t,n,r){if(!tc(e))return e;for(var i=-1,a=(t=wo(t,e)).length,c=a-1,s=e;null!=s&&++ii?0:i+t),(n=n>i?i:n)<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var a=r(i);++o>>1,a=e[i];null!==a&&!lc(a)&&(n?a<=t:a=200){var l=t?null:Zo(e);if(l)return fn(l);a=!1,o=tn,s=new Yn}else s=t?[]:c;e:for(;++r=r?e:oo(e,t,n)}var Eo=ot||function(e){return mt.clearTimeout(e)};function ko(e,t){if(t)return e.slice();var n=e.length,r=We?We(n):new e.constructor(n);return e.copy(r),r}function Do(e){var t=new e.constructor(e.byteLength);return new Ve(t).set(new Ve(e)),t}function Ao(e,t){var n=t?Do(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}function Oo(e,t){if(e!==t){var n=e!==o,r=null===e,i=e==e,a=lc(e),c=t!==o,s=null===t,l=t==t,u=lc(t);if(!s&&!u&&!a&&e>t||a&&c&&l&&!s&&!u||r&&c&&l||!n&&l||!i)return 1;if(!r&&!a&&!u&&e1?n[i-1]:o,c=i>2?n[2]:o;for(a=e.length>3&&"function"==typeof a?(i--,a):o,c&&wi(n[0],n[1],c)&&(a=i<3?o:a,i=1),t=Ae(t);++r-1?i[a?t[c]:c]:o}}function Uo(e){return oi((function(t){var n=t.length,r=n,a=Hn.prototype.thru;for(e&&t.reverse();r--;){var c=t[r];if("function"!=typeof c)throw new Te(i);if(a&&!s&&"wrapper"==si(c))var s=new Hn([],!0)}for(r=s?r:n;++r1&&x.reverse(),p&&us))return!1;var u=a.get(e),d=a.get(t);if(u&&d)return u==t&&d==e;var f=-1,p=!0,h=2&n?new Yn:o;for(a.set(e,t),a.set(t,e);++f-1&&e%1==0&&e1?"& ":"")+t[r],t=t.join(n>2?", ":" "),e.replace(se,"{\n/* [wrapped with "+t+"] */\n")}(r,function(e,t){return Ct(b,(function(n){var r="_."+n[0];t&n[1]&&!Rt(e,r)&&e.push(r)})),e.sort()}(function(e){var t=e.match(le);return t?t[1].split(ue):[]}(r),n)))}function ji(e){var t=0,n=0;return function(){var r=wn(),i=16-(r-n);if(n=r,i>0){if(++t>=800)return arguments[0]}else t=0;return e.apply(o,arguments)}}function Li(e,t){var n=-1,r=e.length,i=r-1;for(t=t===o?r:t;++n1?e[t-1]:o;return n="function"==typeof n?(e.pop(),n):o,aa(e,n)}));function pa(e){var t=Un(e);return t.__chain__=!0,t}function ha(e,t){return t(e)}var ma=oi((function(e){var t=e.length,n=t?e[0]:0,r=this.__wrapped__,i=function(t){return cr(t,e)};return!(t>1||this.__actions__.length)&&r instanceof Vn&&xi(n)?((r=r.slice(n,+n+(t?1:0))).__actions__.push({func:ha,args:[i],thisArg:o}),new Hn(r,this.__chain__).thru((function(e){return t&&!e.length&&e.push(o),e}))):this.thru(i)}));var ga=Ro((function(e,t,n){Le.call(e,n)?++e[n]:ar(e,n,1)}));var ba=zo(Hi),va=zo(Vi);function ya(e,t){return(Va(e)?Ct:pr)(e,ui(t,3))}function xa(e,t){return(Va(e)?Tt:hr)(e,ui(t,3))}var wa=Ro((function(e,t,n){Le.call(e,n)?e[n].push(t):ar(e,n,[t])}));var Sa=Zr((function(e,t,n){var o=-1,i="function"==typeof t,a=Ga(e)?r(e.length):[];return pr(e,(function(e){a[++o]=i?At(t,e,n):Pr(e,t,n)})),a})),_a=Ro((function(e,t,n){ar(e,n,t)}));function Ea(e,t){return(Va(e)?jt:zr)(e,ui(t,3))}var ka=Ro((function(e,t,n){e[n?0:1].push(t)}),(function(){return[[],[]]}));var Da=Zr((function(e,t){if(null==e)return[];var n=t.length;return n>1&&wi(e,t[0],t[1])?t=[]:n>2&&wi(t[0],t[1],t[2])&&(t=[t[0]]),Vr(e,vr(t,1),[])})),Aa=ut||function(){return mt.Date.now()};function Oa(e,t,n){return t=n?o:t,t=e&&null==t?e.length:t,Jo(e,d,o,o,o,o,t)}function Ca(e,t){var n;if("function"!=typeof t)throw new Te(i);return e=mc(e),function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=o),n}}var Ta=Zr((function(e,t,n){var r=1;if(n.length){var o=dn(n,li(Ta));r|=l}return Jo(e,r,t,n,o)})),Pa=Zr((function(e,t,n){var r=3;if(n.length){var o=dn(n,li(Pa));r|=l}return Jo(t,r,e,n,o)}));function Ia(e,t,n){var r,a,c,s,l,u,d=0,f=!1,p=!1,h=!0;if("function"!=typeof e)throw new Te(i);function m(t){var n=r,i=a;return r=a=o,d=t,s=e.apply(i,n)}function g(e){var n=e-u;return u===o||n>=t||n<0||p&&e-d>=c}function b(){var e=Aa();if(g(e))return v(e);l=Ii(b,function(e){var n=t-(e-u);return p?xn(n,c-(e-d)):n}(e))}function v(e){return l=o,h&&r?m(e):(r=a=o,s)}function y(){var e=Aa(),n=g(e);if(r=arguments,a=this,u=e,n){if(l===o)return function(e){return d=e,l=Ii(b,t),f?m(e):s}(u);if(p)return Eo(l),l=Ii(b,t),m(u)}return l===o&&(l=Ii(b,t)),s}return t=bc(t)||0,tc(n)&&(f=!!n.leading,c=(p="maxWait"in n)?yn(bc(n.maxWait)||0,t):c,h="trailing"in n?!!n.trailing:h),y.cancel=function(){l!==o&&Eo(l),d=0,r=u=a=l=o},y.flush=function(){return l===o?s:v(Aa())},y}var Ra=Zr((function(e,t){return dr(e,1,t)})),Na=Zr((function(e,t,n){return dr(e,bc(t)||0,n)}));function ja(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new Te(i);var n=function(){var r=arguments,o=t?t.apply(this,r):r[0],i=n.cache;if(i.has(o))return i.get(o);var a=e.apply(this,r);return n.cache=i.set(o,a)||i,a};return n.cache=new(ja.Cache||Kn),n}function La(e){if("function"!=typeof e)throw new Te(i);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}ja.Cache=Kn;var Ma=So((function(e,t){var n=(t=1==t.length&&Va(t[0])?jt(t[0],Jt(ui())):jt(vr(t,1),Jt(ui()))).length;return Zr((function(r){for(var o=-1,i=xn(r.length,n);++o=t})),Ha=Ir(function(){return arguments}())?Ir:function(e){return nc(e)&&Le.call(e,"callee")&&!Ye.call(e,"callee")},Va=r.isArray,Wa=wt?Jt(wt):function(e){return nc(e)&&Dr(e)==N};function Ga(e){return null!=e&&ec(e.length)&&!Xa(e)}function Ka(e){return nc(e)&&Ga(e)}var Ya=yt||bs,Qa=St?Jt(St):function(e){return nc(e)&&Dr(e)==w};function Za(e){if(!nc(e))return!1;var t=Dr(e);return t==S||"[object DOMException]"==t||"string"==typeof e.message&&"string"==typeof e.name&&!ic(e)}function Xa(e){if(!tc(e))return!1;var t=Dr(e);return t==_||t==E||"[object AsyncFunction]"==t||"[object Proxy]"==t}function Ja(e){return"number"==typeof e&&e==mc(e)}function ec(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=h}function tc(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function nc(e){return null!=e&&"object"==typeof e}var rc=_t?Jt(_t):function(e){return nc(e)&&gi(e)==k};function oc(e){return"number"==typeof e||nc(e)&&Dr(e)==D}function ic(e){if(!nc(e)||Dr(e)!=A)return!1;var t=Ge(e);if(null===t)return!0;var n=Le.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&je.call(n)==ze}var ac=Et?Jt(Et):function(e){return nc(e)&&Dr(e)==C};var cc=kt?Jt(kt):function(e){return nc(e)&&gi(e)==T};function sc(e){return"string"==typeof e||!Va(e)&&nc(e)&&Dr(e)==P}function lc(e){return"symbol"==typeof e||nc(e)&&Dr(e)==I}var uc=Dt?Jt(Dt):function(e){return nc(e)&&ec(e.length)&&!!st[Dr(e)]};var dc=Ko(Fr),fc=Ko((function(e,t){return e<=t}));function pc(e){if(!e)return[];if(Ga(e))return sc(e)?mn(e):Po(e);if(Xe&&e[Xe])return function(e){for(var t,n=[];!(t=e.next()).done;)n.push(t.value);return n}(e[Xe]());var t=gi(e);return(t==k?ln:t==T?fn:Uc)(e)}function hc(e){return e?(e=bc(e))===p||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}function mc(e){var t=hc(e),n=t%1;return t==t?n?t-n:t:0}function gc(e){return e?sr(mc(e),0,g):0}function bc(e){if("number"==typeof e)return e;if(lc(e))return m;if(tc(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=tc(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=Xt(e);var n=be.test(e);return n||ye.test(e)?ft(e.slice(2),n?2:8):ge.test(e)?m:+e}function vc(e){return Io(e,Rc(e))}function yc(e){return null==e?"":uo(e)}var xc=No((function(e,t){if(ki(t)||Ga(t))Io(t,Ic(t),e);else for(var n in t)Le.call(t,n)&&nr(e,n,t[n])})),wc=No((function(e,t){Io(t,Rc(t),e)})),Sc=No((function(e,t,n,r){Io(t,Rc(t),e,r)})),_c=No((function(e,t,n,r){Io(t,Ic(t),e,r)})),Ec=oi(cr);var kc=Zr((function(e,t){e=Ae(e);var n=-1,r=t.length,i=r>2?t[2]:o;for(i&&wi(t[0],t[1],i)&&(r=1);++n1),t})),Io(e,ai(e),n),r&&(n=lr(n,7,ni));for(var o=t.length;o--;)po(n,t[o]);return n}));var Mc=oi((function(e,t){return null==e?{}:function(e,t){return Wr(e,t,(function(t,n){return Oc(e,n)}))}(e,t)}));function Bc(e,t){if(null==e)return{};var n=jt(ai(e),(function(e){return[e]}));return t=ui(t),Wr(e,n,(function(e,n){return t(e,n[0])}))}var Fc=Xo(Ic),zc=Xo(Rc);function Uc(e){return null==e?[]:en(e,Ic(e))}var $c=Bo((function(e,t,n){return t=t.toLowerCase(),e+(n?qc(t):t)}));function qc(e){return Zc(yc(e).toLowerCase())}function Hc(e){return(e=yc(e))&&e.replace(we,on).replace(tt,"")}var Vc=Bo((function(e,t,n){return e+(n?"-":"")+t.toLowerCase()})),Wc=Bo((function(e,t,n){return e+(n?" ":"")+t.toLowerCase()})),Gc=Mo("toLowerCase");var Kc=Bo((function(e,t,n){return e+(n?"_":"")+t.toLowerCase()}));var Yc=Bo((function(e,t,n){return e+(n?" ":"")+Zc(t)}));var Qc=Bo((function(e,t,n){return e+(n?" ":"")+t.toUpperCase()})),Zc=Mo("toUpperCase");function Xc(e,t,n){return e=yc(e),(t=n?o:t)===o?function(e){return it.test(e)}(e)?function(e){return e.match(rt)||[]}(e):function(e){return e.match(de)||[]}(e):e.match(t)||[]}var Jc=Zr((function(e,t){try{return At(e,o,t)}catch(n){return Za(n)?n:new Ee(n)}})),es=oi((function(e,t){return Ct(t,(function(t){t=Bi(t),ar(e,t,Ta(e[t],e))})),e}));function ts(e){return function(){return e}}var ns=Uo(),rs=Uo(!0);function os(e){return e}function is(e){return Lr("function"==typeof e?e:lr(e,1))}var as=Zr((function(e,t){return function(n){return Pr(n,e,t)}})),cs=Zr((function(e,t){return function(n){return Pr(e,n,t)}}));function ss(e,t,n){var r=Ic(t),o=_r(t,r);null!=n||tc(t)&&(o.length||!r.length)||(n=t,t=e,e=this,o=_r(t,Ic(t)));var i=!(tc(n)&&"chain"in n&&!n.chain),a=Xa(e);return Ct(o,(function(n){var r=t[n];e[n]=r,a&&(e.prototype[n]=function(){var t=this.__chain__;if(i||t){var n=e(this.__wrapped__);return(n.__actions__=Po(this.__actions__)).push({func:r,args:arguments,thisArg:e}),n.__chain__=t,n}return r.apply(e,Lt([this.value()],arguments))})})),e}function ls(){}var us=Vo(jt),ds=Vo(Pt),fs=Vo(Ft);function ps(e){return Si(e)?Gt(Bi(e)):function(e){return function(t){return Er(t,e)}}(e)}var hs=Go(),ms=Go(!0);function gs(){return[]}function bs(){return!1}var vs=Ho((function(e,t){return e+t}),0),ys=Qo("ceil"),xs=Ho((function(e,t){return e/t}),1),ws=Qo("floor");var Ss,_s=Ho((function(e,t){return e*t}),1),Es=Qo("round"),ks=Ho((function(e,t){return e-t}),0);return Un.after=function(e,t){if("function"!=typeof t)throw new Te(i);return e=mc(e),function(){if(--e<1)return t.apply(this,arguments)}},Un.ary=Oa,Un.assign=xc,Un.assignIn=wc,Un.assignInWith=Sc,Un.assignWith=_c,Un.at=Ec,Un.before=Ca,Un.bind=Ta,Un.bindAll=es,Un.bindKey=Pa,Un.castArray=function(){if(!arguments.length)return[];var e=arguments[0];return Va(e)?e:[e]},Un.chain=pa,Un.chunk=function(e,t,n){t=(n?wi(e,t,n):t===o)?1:yn(mc(t),0);var i=null==e?0:e.length;if(!i||t<1)return[];for(var a=0,c=0,s=r(ht(i/t));ai?0:i+n),(r=r===o||r>i?i:mc(r))<0&&(r+=i),r=n>r?0:gc(r);n>>0)?(e=yc(e))&&("string"==typeof t||null!=t&&!ac(t))&&!(t=uo(t))&&sn(e)?_o(mn(e),0,n):e.split(t,n):[]},Un.spread=function(e,t){if("function"!=typeof e)throw new Te(i);return t=null==t?0:yn(mc(t),0),Zr((function(n){var r=n[t],o=_o(n,0,t);return r&&Lt(o,r),At(e,this,o)}))},Un.tail=function(e){var t=null==e?0:e.length;return t?oo(e,1,t):[]},Un.take=function(e,t,n){return e&&e.length?oo(e,0,(t=n||t===o?1:mc(t))<0?0:t):[]},Un.takeRight=function(e,t,n){var r=null==e?0:e.length;return r?oo(e,(t=r-(t=n||t===o?1:mc(t)))<0?0:t,r):[]},Un.takeRightWhile=function(e,t){return e&&e.length?mo(e,ui(t,3),!1,!0):[]},Un.takeWhile=function(e,t){return e&&e.length?mo(e,ui(t,3)):[]},Un.tap=function(e,t){return t(e),e},Un.throttle=function(e,t,n){var r=!0,o=!0;if("function"!=typeof e)throw new Te(i);return tc(n)&&(r="leading"in n?!!n.leading:r,o="trailing"in n?!!n.trailing:o),Ia(e,t,{leading:r,maxWait:t,trailing:o})},Un.thru=ha,Un.toArray=pc,Un.toPairs=Fc,Un.toPairsIn=zc,Un.toPath=function(e){return Va(e)?jt(e,Bi):lc(e)?[e]:Po(Mi(yc(e)))},Un.toPlainObject=vc,Un.transform=function(e,t,n){var r=Va(e),o=r||Ya(e)||uc(e);if(t=ui(t,4),null==n){var i=e&&e.constructor;n=o?r?new i:[]:tc(e)&&Xa(i)?$n(Ge(e)):{}}return(o?Ct:wr)(e,(function(e,r,o){return t(n,e,r,o)})),n},Un.unary=function(e){return Oa(e,1)},Un.union=na,Un.unionBy=ra,Un.unionWith=oa,Un.uniq=function(e){return e&&e.length?fo(e):[]},Un.uniqBy=function(e,t){return e&&e.length?fo(e,ui(t,2)):[]},Un.uniqWith=function(e,t){return t="function"==typeof t?t:o,e&&e.length?fo(e,o,t):[]},Un.unset=function(e,t){return null==e||po(e,t)},Un.unzip=ia,Un.unzipWith=aa,Un.update=function(e,t,n){return null==e?e:ho(e,t,xo(n))},Un.updateWith=function(e,t,n,r){return r="function"==typeof r?r:o,null==e?e:ho(e,t,xo(n),r)},Un.values=Uc,Un.valuesIn=function(e){return null==e?[]:en(e,Rc(e))},Un.without=ca,Un.words=Xc,Un.wrap=function(e,t){return Ba(xo(t),e)},Un.xor=sa,Un.xorBy=la,Un.xorWith=ua,Un.zip=da,Un.zipObject=function(e,t){return vo(e||[],t||[],nr)},Un.zipObjectDeep=function(e,t){return vo(e||[],t||[],eo)},Un.zipWith=fa,Un.entries=Fc,Un.entriesIn=zc,Un.extend=wc,Un.extendWith=Sc,ss(Un,Un),Un.add=vs,Un.attempt=Jc,Un.camelCase=$c,Un.capitalize=qc,Un.ceil=ys,Un.clamp=function(e,t,n){return n===o&&(n=t,t=o),n!==o&&(n=(n=bc(n))==n?n:0),t!==o&&(t=(t=bc(t))==t?t:0),sr(bc(e),t,n)},Un.clone=function(e){return lr(e,4)},Un.cloneDeep=function(e){return lr(e,5)},Un.cloneDeepWith=function(e,t){return lr(e,5,t="function"==typeof t?t:o)},Un.cloneWith=function(e,t){return lr(e,4,t="function"==typeof t?t:o)},Un.conformsTo=function(e,t){return null==t||ur(e,t,Ic(t))},Un.deburr=Hc,Un.defaultTo=function(e,t){return null==e||e!=e?t:e},Un.divide=xs,Un.endsWith=function(e,t,n){e=yc(e),t=uo(t);var r=e.length,i=n=n===o?r:sr(mc(n),0,r);return(n-=t.length)>=0&&e.slice(n,i)==t},Un.eq=Ua,Un.escape=function(e){return(e=yc(e))&&Z.test(e)?e.replace(Y,an):e},Un.escapeRegExp=function(e){return(e=yc(e))&&ie.test(e)?e.replace(oe,"\\$&"):e},Un.every=function(e,t,n){var r=Va(e)?Pt:mr;return n&&wi(e,t,n)&&(t=o),r(e,ui(t,3))},Un.find=ba,Un.findIndex=Hi,Un.findKey=function(e,t){return Ut(e,ui(t,3),wr)},Un.findLast=va,Un.findLastIndex=Vi,Un.findLastKey=function(e,t){return Ut(e,ui(t,3),Sr)},Un.floor=ws,Un.forEach=ya,Un.forEachRight=xa,Un.forIn=function(e,t){return null==e?e:yr(e,ui(t,3),Rc)},Un.forInRight=function(e,t){return null==e?e:xr(e,ui(t,3),Rc)},Un.forOwn=function(e,t){return e&&wr(e,ui(t,3))},Un.forOwnRight=function(e,t){return e&&Sr(e,ui(t,3))},Un.get=Ac,Un.gt=$a,Un.gte=qa,Un.has=function(e,t){return null!=e&&bi(e,t,Or)},Un.hasIn=Oc,Un.head=Gi,Un.identity=os,Un.includes=function(e,t,n,r){e=Ga(e)?e:Uc(e),n=n&&!r?mc(n):0;var o=e.length;return n<0&&(n=yn(o+n,0)),sc(e)?n<=o&&e.indexOf(t,n)>-1:!!o&&qt(e,t,n)>-1},Un.indexOf=function(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var o=null==n?0:mc(n);return o<0&&(o=yn(r+o,0)),qt(e,t,o)},Un.inRange=function(e,t,n){return t=hc(t),n===o?(n=t,t=0):n=hc(n),function(e,t,n){return e>=xn(t,n)&&e=-9007199254740991&&e<=h},Un.isSet=cc,Un.isString=sc,Un.isSymbol=lc,Un.isTypedArray=uc,Un.isUndefined=function(e){return e===o},Un.isWeakMap=function(e){return nc(e)&&gi(e)==R},Un.isWeakSet=function(e){return nc(e)&&"[object WeakSet]"==Dr(e)},Un.join=function(e,t){return null==e?"":zt.call(e,t)},Un.kebabCase=Vc,Un.last=Zi,Un.lastIndexOf=function(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var i=r;return n!==o&&(i=(i=mc(n))<0?yn(r+i,0):xn(i,r-1)),t==t?function(e,t,n){for(var r=n+1;r--;)if(e[r]===t)return r;return r}(e,t,i):$t(e,Vt,i,!0)},Un.lowerCase=Wc,Un.lowerFirst=Gc,Un.lt=dc,Un.lte=fc,Un.max=function(e){return e&&e.length?gr(e,os,Ar):o},Un.maxBy=function(e,t){return e&&e.length?gr(e,ui(t,2),Ar):o},Un.mean=function(e){return Wt(e,os)},Un.meanBy=function(e,t){return Wt(e,ui(t,2))},Un.min=function(e){return e&&e.length?gr(e,os,Fr):o},Un.minBy=function(e,t){return e&&e.length?gr(e,ui(t,2),Fr):o},Un.stubArray=gs,Un.stubFalse=bs,Un.stubObject=function(){return{}},Un.stubString=function(){return""},Un.stubTrue=function(){return!0},Un.multiply=_s,Un.nth=function(e,t){return e&&e.length?Hr(e,mc(t)):o},Un.noConflict=function(){return mt._===this&&(mt._=Ue),this},Un.noop=ls,Un.now=Aa,Un.pad=function(e,t,n){e=yc(e);var r=(t=mc(t))?hn(e):0;if(!t||r>=t)return e;var o=(t-r)/2;return Wo(gt(o),n)+e+Wo(ht(o),n)},Un.padEnd=function(e,t,n){e=yc(e);var r=(t=mc(t))?hn(e):0;return t&&rt){var r=e;e=t,t=r}if(n||e%1||t%1){var i=_n();return xn(e+i*(t-e+dt("1e-"+((i+"").length-1))),t)}return Yr(e,t)},Un.reduce=function(e,t,n){var r=Va(e)?Mt:Yt,o=arguments.length<3;return r(e,ui(t,4),n,o,pr)},Un.reduceRight=function(e,t,n){var r=Va(e)?Bt:Yt,o=arguments.length<3;return r(e,ui(t,4),n,o,hr)},Un.repeat=function(e,t,n){return t=(n?wi(e,t,n):t===o)?1:mc(t),Qr(yc(e),t)},Un.replace=function(){var e=arguments,t=yc(e[0]);return e.length<3?t:t.replace(e[1],e[2])},Un.result=function(e,t,n){var r=-1,i=(t=wo(t,e)).length;for(i||(i=1,e=o);++rh)return[];var n=g,r=xn(e,g);t=ui(t),e-=g;for(var o=Zt(r,t);++n=a)return e;var s=n-hn(r);if(s<1)return r;var l=c?_o(c,0,s).join(""):e.slice(0,s);if(i===o)return l+r;if(c&&(s+=l.length-s),ac(i)){if(e.slice(s).search(i)){var u,d=l;for(i.global||(i=Oe(i.source,yc(me.exec(i))+"g")),i.lastIndex=0;u=i.exec(d);)var f=u.index;l=l.slice(0,f===o?s:f)}}else if(e.indexOf(uo(i),s)!=s){var p=l.lastIndexOf(i);p>-1&&(l=l.slice(0,p))}return l+r},Un.unescape=function(e){return(e=yc(e))&&Q.test(e)?e.replace(K,bn):e},Un.uniqueId=function(e){var t=++Me;return yc(e)+t},Un.upperCase=Qc,Un.upperFirst=Zc,Un.each=ya,Un.eachRight=xa,Un.first=Gi,ss(Un,(Ss={},wr(Un,(function(e,t){Le.call(Un.prototype,t)||(Ss[t]=e)})),Ss),{chain:!1}),Un.VERSION="4.17.21",Ct(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(e){Un[e].placeholder=Un})),Ct(["drop","take"],(function(e,t){Vn.prototype[e]=function(n){n=n===o?1:yn(mc(n),0);var r=this.__filtered__&&!t?new Vn(this):this.clone();return r.__filtered__?r.__takeCount__=xn(n,r.__takeCount__):r.__views__.push({size:xn(n,g),type:e+(r.__dir__<0?"Right":"")}),r},Vn.prototype[e+"Right"]=function(t){return this.reverse()[e](t).reverse()}})),Ct(["filter","map","takeWhile"],(function(e,t){var n=t+1,r=1==n||3==n;Vn.prototype[e]=function(e){var t=this.clone();return t.__iteratees__.push({iteratee:ui(e,3),type:n}),t.__filtered__=t.__filtered__||r,t}})),Ct(["head","last"],(function(e,t){var n="take"+(t?"Right":"");Vn.prototype[e]=function(){return this[n](1).value()[0]}})),Ct(["initial","tail"],(function(e,t){var n="drop"+(t?"":"Right");Vn.prototype[e]=function(){return this.__filtered__?new Vn(this):this[n](1)}})),Vn.prototype.compact=function(){return this.filter(os)},Vn.prototype.find=function(e){return this.filter(e).head()},Vn.prototype.findLast=function(e){return this.reverse().find(e)},Vn.prototype.invokeMap=Zr((function(e,t){return"function"==typeof e?new Vn(this):this.map((function(n){return Pr(n,e,t)}))})),Vn.prototype.reject=function(e){return this.filter(La(ui(e)))},Vn.prototype.slice=function(e,t){e=mc(e);var n=this;return n.__filtered__&&(e>0||t<0)?new Vn(n):(e<0?n=n.takeRight(-e):e&&(n=n.drop(e)),t!==o&&(n=(t=mc(t))<0?n.dropRight(-t):n.take(t-e)),n)},Vn.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},Vn.prototype.toArray=function(){return this.take(g)},wr(Vn.prototype,(function(e,t){var n=/^(?:filter|find|map|reject)|While$/.test(t),r=/^(?:head|last)$/.test(t),i=Un[r?"take"+("last"==t?"Right":""):t],a=r||/^find/.test(t);i&&(Un.prototype[t]=function(){var t=this.__wrapped__,c=r?[1]:arguments,s=t instanceof Vn,l=c[0],u=s||Va(t),d=function(e){var t=i.apply(Un,Lt([e],c));return r&&f?t[0]:t};u&&n&&"function"==typeof l&&1!=l.length&&(s=u=!1);var f=this.__chain__,p=!!this.__actions__.length,h=a&&!f,m=s&&!p;if(!a&&u){t=m?t:new Vn(this);var g=e.apply(t,c);return g.__actions__.push({func:ha,args:[d],thisArg:o}),new Hn(g,f)}return h&&m?e.apply(this,c):(g=this.thru(d),h?r?g.value()[0]:g.value():g)})})),Ct(["pop","push","shift","sort","splice","unshift"],(function(e){var t=Pe[e],n=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",r=/^(?:pop|shift)$/.test(e);Un.prototype[e]=function(){var e=arguments;if(r&&!this.__chain__){var o=this.value();return t.apply(Va(o)?o:[],e)}return this[n]((function(n){return t.apply(Va(n)?n:[],e)}))}})),wr(Vn.prototype,(function(e,t){var n=Un[t];if(n){var r=n.name+"";Le.call(In,r)||(In[r]=[]),In[r].push({name:t,func:n})}})),In[$o(o,2).name]=[{name:"wrapper",func:o}],Vn.prototype.clone=function(){var e=new Vn(this.__wrapped__);return e.__actions__=Po(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=Po(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=Po(this.__views__),e},Vn.prototype.reverse=function(){if(this.__filtered__){var e=new Vn(this);e.__dir__=-1,e.__filtered__=!0}else(e=this.clone()).__dir__*=-1;return e},Vn.prototype.value=function(){var e=this.__wrapped__.value(),t=this.__dir__,n=Va(e),r=t<0,o=n?e.length:0,i=function(e,t,n){var r=-1,o=n.length;for(;++r=this.__values__.length;return{done:e,value:e?o:this.__values__[this.__index__++]}},Un.prototype.plant=function(e){for(var t,n=this;n instanceof qn;){var r=zi(n);r.__index__=0,r.__values__=o,t?i.__wrapped__=r:t=r;var i=r;n=n.__wrapped__}return i.__wrapped__=e,t},Un.prototype.reverse=function(){var e=this.__wrapped__;if(e instanceof Vn){var t=e;return this.__actions__.length&&(t=new Vn(this)),(t=t.reverse()).__actions__.push({func:ha,args:[ta],thisArg:o}),new Hn(t,this.__chain__)}return this.thru(ta)},Un.prototype.toJSON=Un.prototype.valueOf=Un.prototype.value=function(){return go(this.__wrapped__,this.__actions__)},Un.prototype.first=Un.prototype.head,Xe&&(Un.prototype[Xe]=function(){return this}),Un}();mt._=vn,(r=function(){return vn}.call(t,n,t,e))===o||(e.exports=r)}.call(this)},50895:(e,t,n)=>{"use strict";n.r(t)},10119:(e,t,n)=>{"use strict";n.r(t)},5947:function(e,t,n){var r,o;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
    '};function o(e,t,n){return en?n:e}function i(e){return 100*(-1+e)}function a(e,t,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+i(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+i(e)+"%,0)"}:{"margin-left":i(e)+"%"}).transition="all "+t+"ms "+n,o}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=o(e,r.minimum,1),n.status=1===e?null:e;var i=n.render(!t),l=i.querySelector(r.barSelector),u=r.speed,d=r.easing;return i.offsetWidth,c((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(l,a(e,u,d)),1===e?(s(i,{transition:"none",opacity:1}),i.offsetWidth,setTimeout((function(){s(i,{transition:"all "+u+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),u)}),u)):setTimeout(t,u)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*o(Math.random()*t,.1,.95)),t=o(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var o,a=t.querySelector(r.barSelector),c=e?"-100":i(n.status||0),l=document.querySelector(r.parent);return s(a,{transition:"all 0 linear",transform:"translate3d("+c+"%,0,0)"}),r.showSpinner||(o=t.querySelector(r.spinnerSelector))&&p(o),l!=document.body&&u(l,"nprogress-custom-parent"),l.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&p(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var c=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),s=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,o=e.length,i=t.charAt(0).toUpperCase()+t.slice(1);o--;)if((r=e[o]+i)in n)return r;return t}function o(e){return e=n(e),t[e]||(t[e]=r(e))}function i(e,t,n){t=o(t),e.style[t]=n}return function(e,t){var n,r,o=arguments;if(2==o.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&i(e,n,r);else i(e,o[1],o[2])}}();function l(e,t){return("string"==typeof e?e:f(e)).indexOf(" "+t+" ")>=0}function u(e,t){var n=f(e),r=n+t;l(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=f(e);l(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function f(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function p(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(o="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=o)},45228:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(o){return!1}}()?Object.assign:function(e,o){for(var i,a,c=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),s=1;s{"use strict";n.d(t,{A:()=>i});var r=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof o?new o(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/=d.reach);_+=S.value.length,S=S.next){var E=S.value;if(t.length>e.length)return;if(!(E instanceof o)){var k,D=1;if(v){if(!(k=i(w,_,e,b))||k.index>=e.length)break;var A=k.index,O=k.index+k[0].length,C=_;for(C+=S.value.length;A>=C;)C+=(S=S.next).value.length;if(_=C-=S.value.length,S.value instanceof o)continue;for(var T=S;T!==t.tail&&(Cd.reach&&(d.reach=N);var j=S.prev;if(I&&(j=s(t,j,I),_+=I.length),l(t,j,D),S=s(t,j,new o(f,g?r.tokenize(P,g):P,y,P)),R&&s(t,S,R),D>1){var L={cause:f+","+h,reach:N};a(e,t,n,S.prev,_,L),d&&L.reach>d.reach&&(d.reach=L.reach)}}}}}}function c(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function s(e,t,n){var r=t.next,o={value:n,prev:t,next:r};return t.next=o,r.prev=o,e.length++,o}function l(e,t,n){for(var r=t.next,o=0;o"+i.content+""},r}(),o=r;r.default=r,o.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},o.languages.markup.tag.inside["attr-value"].inside.entity=o.languages.markup.entity,o.languages.markup.doctype.inside["internal-subset"].inside=o.languages.markup,o.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(o.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^$)/i,lookbehind:!0,inside:o.languages[t]},n.cdata=/^$/i;var r={"included-cdata":{pattern://i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:o.languages[t]};var i={};i[e]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},o.languages.insertBefore("markup","cdata",i)}}),Object.defineProperty(o.languages.markup.tag,"addAttribute",{value:function(e,t){o.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:o.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),o.languages.html=o.languages.markup,o.languages.mathml=o.languages.markup,o.languages.svg=o.languages.markup,o.languages.xml=o.languages.extend("markup",{}),o.languages.ssml=o.languages.xml,o.languages.atom=o.languages.xml,o.languages.rss=o.languages.xml,function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var o=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],i=r.variable[1].inside,a=0;a]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},o.languages.c=o.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),o.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),o.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},o.languages.c.string],char:o.languages.c.char,comment:o.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:o.languages.c}}}}),o.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete o.languages.c.boolean,function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!)\w+(?:\s*\.\s*\w+)*\b/.source.replace(//g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!)\w+/.source.replace(//g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/(?:\s*:\s*)?|:\s*/.source.replace(//g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(o),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(o),function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+n.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[n,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var r={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},o={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:r,number:o,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:o})}(o),o.languages.javascript=o.languages.extend("clike",{"class-name":[o.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),o.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,o.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:o.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:o.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:o.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:o.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:o.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),o.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:o.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),o.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),o.languages.markup&&(o.languages.markup.tag.addInlined("script","javascript"),o.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),o.languages.js=o.languages.javascript,function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(o),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",o=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-])(?:[ \t]*(?:(?![#:])|:))*/.source.replace(//g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),i=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function a(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<>[ \t]+)?)(?:<>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<>/g,(function(){return r})).replace(/<>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<>[ \t]+)?)<>(?=\s*:\s)/.source.replace(/<>/g,(function(){return r})).replace(/<>/g,(function(){return"(?:"+o+"|"+i+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:a(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:a(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:a(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:a(i),lookbehind:!0,greedy:!0},number:{pattern:a(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(o),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(//g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,o=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),i=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+o+i+"(?:"+o+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+o+i+")(?:"+o+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+o+")"+i+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+o+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)|_(?:(?!_))+_)+__\b|\*\*(?:(?!\*)|\*(?:(?!\*))+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)|__(?:(?!_))+__)+_\b|\*(?:(?!\*)|\*\*(?:(?!\*))+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~))+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\]))+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\]))+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n",quot:'"'},s=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(o),o.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:o.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},o.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n0)){var c=f(/^\{$/,/^\}$/);if(-1===c)continue;for(var s=n;s=0&&p(l,"variable-input")}}}}function u(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,o=r.inside["interpolation-punctuation"],i=r.pattern.source;function a(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function c(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function s(t,n,r){var o={code:t,grammar:n,language:r};return e.hooks.run("before-tokenize",o),o.tokens=e.tokenize(o.code,o.grammar),e.hooks.run("after-tokenize",o),o.tokens}function l(t){var n={};n["interpolation-punctuation"]=o;var i=e.tokenize(t,n);if(3===i.length){var a=[1,1];a.push.apply(a,s(i[1],e.languages.javascript,"javascript")),i.splice.apply(i,a)}return new e.Token("interpolation",i,r.alias,t)}function u(t,n,r){var o=e.tokenize(t,{interpolation:{pattern:RegExp(i),lookbehind:!0}}),a=0,u={},d=s(o.map((function(e){if("string"==typeof e)return e;for(var n,o=e.content;-1!==t.indexOf(n=c(a++,r)););return u[n]=o,n})).join(""),n,r),f=Object.keys(u);return a=0,function e(t){for(var n=0;n=f.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var o=f[a],i="string"==typeof r?r:r.content,c=i.indexOf(o);if(-1!==c){++a;var s=i.substring(0,c),d=l(u[o]),p=i.substring(c+o.length),h=[];if(s&&h.push(s),h.push(d),p){var m=[p];e(m),h.push.apply(h,m)}"string"==typeof r?(t.splice.apply(t,[n,1].concat(h)),n+=h.length-1):r.content=h}}else{var g=r.content;Array.isArray(g)?e(g):e([g])}}}(d),new e.Token(r,d,"language-"+r,t)}e.languages.javascript["template-string"]=[a("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),a("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),a("svg",/\bsvg/.source),a("markdown",/\b(?:markdown|md)/.source),a("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),a("sql",/\bsql/.source),t].filter(Boolean);var d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function f(e){return"string"==typeof e?e:Array.isArray(e)?e.map(f).join(""):f(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in d&&function t(n){for(var r=0,o=n.length;r]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(o),function(e){function t(e,t){return RegExp(e.replace(//g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:(?:\s*,\s*(?:\*\s*as\s+|\{[^{}]*\}))?|\*\s*as\s+|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r*\.{3}(?:[^{}]|)*\})/.source;function i(e,t){return e=e.replace(//g,(function(){return n})).replace(//g,(function(){return r})).replace(//g,(function(){return o})),RegExp(e,t)}o=i(o).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=i(/<\/?(?:[\w.:-]+(?:+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|))?|))**\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:i(//.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:i(/=/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var a=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(a).join(""):""},c=function(t){for(var n=[],r=0;r0&&n[n.length-1].tagName===a(o.content[0].content[1])&&n.pop():"/>"===o.content[o.content.length-1].content||n.push({tagName:a(o.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===o.type&&"{"===o.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===o.type&&"}"===o.content?n[n.length-1].openedBraces--:i=!0),(i||"string"==typeof o)&&n.length>0&&0===n[n.length-1].openedBraces){var s=a(o);r0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(s=a(t[r-1])+s,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",s,null,s)}o.content&&"string"!=typeof o.content&&c(o.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||c(e.tokens)}))}(o),function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],o=[];/^\w+$/.test(n)||o.push(/\w+/.exec(n)[0]),"diff"===n&&o.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:o,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(o),o.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},o.languages.go=o.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),o.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete o.languages.go["class-name"],function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,o,i){if(n.language===r){var a=n.tokenStack=[];n.code=n.code.replace(o,(function(e){if("function"==typeof i&&!i(e))return e;for(var o,c=a.length;-1!==n.code.indexOf(o=t(r,c));)++c;return a[c]=e,o})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var o=0,i=Object.keys(n.tokenStack);!function a(c){for(var s=0;s=i.length);s++){var l=c[s];if("string"==typeof l||l.content&&"string"==typeof l.content){var u=i[o],d=n.tokenStack[u],f="string"==typeof l?l:l.content,p=t(r,u),h=f.indexOf(p);if(h>-1){++o;var m=f.substring(0,h),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=f.substring(h+p.length),v=[];m&&v.push.apply(v,a([m])),v.push(g),b&&v.push.apply(v,a([b])),"string"==typeof l?c.splice.apply(c,[s,1].concat(v)):l.content=v}}else l.content&&a(l.content)}return c}(n.tokens)}}}})}(o),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars}(o),o.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},o.languages.webmanifest=o.languages.json,o.languages.less=o.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),o.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),o.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},o.languages.objectivec=o.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete o.languages.objectivec["class-name"],o.languages.objc=o.languages.objectivec,o.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/},o.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},o.languages.python["string-interpolation"].inside.interpolation.inside.rest=o.languages.python,o.languages.py=o.languages.python,o.languages.reason=o.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),o.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete o.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(o),o.languages.scss=o.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),o.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),o.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),o.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),o.languages.scss.atrule.inside.rest=o.languages.scss,function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},r={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};r.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:r}},r.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:r}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:r}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:r}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:r}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:r.interpolation}},rest:r}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:r.interpolation,comment:r.comment,punctuation:/[{},]/}},func:r.func,string:r.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:r.interpolation,punctuation:/[{}()\[\];:.]/}}(o),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(o),o.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/};const i=o},43523:()=>{!function(e){var t={pattern:/((?:^|[^\\$])(?:\\{2})*)\$(?:\w+|\{[^{}]*\})/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{?|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:null}}};e.languages.gradle=e.languages.extend("clike",{string:{pattern:/'''(?:[^\\]|\\[\s\S])*?'''|'(?:\\.|[^\\'\r\n])*'/,greedy:!0},keyword:/\b(?:apply|def|dependencies|else|if|implementation|import|plugin|plugins|project|repositories|repository|sourceSets|tasks|val)\b/,number:/\b(?:0b[01_]+|0x[\da-f_]+(?:\.[\da-f_p\-]+)?|[\d_]+(?:\.[\d_]+)?(?:e[+-]?\d+)?)[glidf]?\b/i,operator:{pattern:/(^|[^.])(?:~|==?~?|\?[.:]?|\*(?:[.=]|\*=?)?|\.[@&]|\.\.<|\.\.(?!\.)|-[-=>]?|\+[+=]?|!=?|<(?:<=?|=>?)?|>(?:>>?=?|=)?|&[&=]?|\|[|=]?|\/=?|\^=?|%=?)/,lookbehind:!0},punctuation:/\.+|[{}[\];(),:$]/}),e.languages.insertBefore("gradle","string",{shebang:{pattern:/#!.+/,alias:"comment",greedy:!0},"interpolation-string":{pattern:/"""(?:[^\\]|\\[\s\S])*?"""|(["/])(?:\\.|(?!\1)[^\\\r\n])*\1|\$\/(?:[^/$]|\$(?:[/$]|(?![/$]))|\/(?!\$))*\/\$/,greedy:!0,inside:{interpolation:t,string:/[\s\S]+/}}}),e.languages.insertBefore("gradle","punctuation",{"spock-block":/\b(?:and|cleanup|expect|given|setup|then|when|where):/}),e.languages.insertBefore("gradle","function",{annotation:{pattern:/(^|[^.])@\w+/,lookbehind:!0,alias:"punctuation"}}),t.inside.expression.inside=e.languages.gradle}(Prism)},70824:()=>{Prism.languages.ini={comment:{pattern:/(^[ \f\t\v]*)[#;][^\n\r]*/m,lookbehind:!0},section:{pattern:/(^[ \f\t\v]*)\[[^\n\r\]]*\]?/m,lookbehind:!0,inside:{"section-name":{pattern:/(^\[[ \f\t\v]*)[^ \f\t\v\]]+(?:[ \f\t\v]+[^ \f\t\v\]]+)*/,lookbehind:!0,alias:"selector"},punctuation:/\[|\]/}},key:{pattern:/(^[ \f\t\v]*)[^ \f\n\r\t\v=]+(?:[ \f\t\v]+[^ \f\n\r\t\v=]+)*(?=[ \f\t\v]*=)/m,lookbehind:!0,alias:"attr-name"},value:{pattern:/(=[ \f\t\v]*)[^ \f\n\r\t\v]+(?:[ \f\t\v]+[^ \f\n\r\t\v]+)*/,lookbehind:!0,alias:"attr-value",inside:{"inner-value":{pattern:/^("|').+(?=\1$)/,lookbehind:!0}}},punctuation:/=/}},96976:()=>{!function(e){var t=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\s*[(){}[\]<>=%~.:,;?+\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,n=/(?:[a-z]\w*\s*\.\s*)*(?:[A-Z]\w*\s*\.\s*)*/.source,r={pattern:RegExp(/(^|[^\w.])/.source+n+/[A-Z](?:[\d_A-Z]*[a-z]\w*)?\b/.source),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};e.languages.java=e.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[r,{pattern:RegExp(/(^|[^\w.])/.source+n+/[A-Z]\w*(?=\s+\w+\s*[;,=()]|\s*(?:\[[\s,]*\]\s*)?::\s*new\b)/.source),lookbehind:!0,inside:r.inside},{pattern:RegExp(/(\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\s+)/.source+n+/[A-Z]\w*\b/.source),lookbehind:!0,inside:r.inside}],keyword:t,function:[e.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0},constant:/\b[A-Z][A-Z_\d]+\b/}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}}),e.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":r,keyword:t,punctuation:/[<>(),.:]/,operator:/[?&|]/}},import:[{pattern:RegExp(/(\bimport\s+)/.source+n+/(?:[A-Z]\w*|\*)(?=\s*;)/.source),lookbehind:!0,inside:{namespace:r.inside.namespace,punctuation:/\./,operator:/\*/,"class-name":/\w+/}},{pattern:RegExp(/(\bimport\s+static\s+)/.source+n+/(?:\w+|\*)(?=\s*;)/.source),lookbehind:!0,alias:"static",inside:{namespace:r.inside.namespace,static:/\b\w+$/,punctuation:/\./,operator:/\*/,"class-name":/\w+/}}],namespace:{pattern:RegExp(/(\b(?:exports|import(?:\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\s+)(?!)[a-z]\w*(?:\.[a-z]\w*)*\.?/.source.replace(//g,(function(){return t.source}))),lookbehind:!0,inside:{punctuation:/\./}}})}(Prism)},20867:(e,t,n)=>{var r={"./prism-gradle":43523,"./prism-ini":70824,"./prism-java":96976};function o(e){var t=i(e);return n(t)}function i(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=i,e.exports=o,o.id=20867},2694:(e,t,n)=>{"use strict";var r=n(6925);function o(){}function i(){}i.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,i,a){if(a!==r){var c=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw c.name="Invariant Violation",c}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:o};return n.PropTypes=n,n}},5556:(e,t,n)=>{e.exports=n(2694)()},6925:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},22551:(e,t,n)=>{"use strict";var r=n(96540),o=n(45228),i=n(69982);function a(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n

    cT0MQ6nMlAfAOW%Y7z^ zNV+o|++Z5*u50vmMkt%itElE6_=EzPQ>J85#=Gh$D!O?T=O$rf|T{ z!e{*WF*vs%$s8RMfeE^n-e_HHF_Ai{6a`_27Gd8QOdu6m87@@xY?&}Ke6Ke3xtMUJjqI-{P>Hp&Z{yDo}YOQr!_pSR~O6j6Ht98Gv3o2noU5)>&7yIjWp-* z>`js9o`v=sPaYXZd3tB%rM&sC@an(?OyX?j^x=fk!|0%uuOHfjcIz!rpCLbA%CT$A zQBX%D<>e%|r0y2C<1NpHF719B`mFT`D;lC=gJXWYd9;}J{#B_YV(BT3 z8HqFyxjrW$9vk77O}dxR&9mb4evQoNQIIU9Vjk!Qs>p^wtr#HS2*d{a)_ zd`^NO-j^0E%|l1I1)7O|JFbueSu)4$S@g>& zuJRhJ4ktUacrlap%N8Bfockm3MmCCyNV$>i)({Ha$lfy^{^lOI^wm5BTMj41g&yKM zUe%$_B7;ORoh{p6s}yAEks+W5m3^3T(|hc-0ztUU57e2I_(w+SXir5%&4>6N8WhYy za#nV@$jdofCV@6E(C-iF!OJ~QIBfW6jp;^ct+f59d336Y#cY+6mna&HXw3Ih@5Ga zYghrP1o2OMLbgPQgRZs=llxXa(?}9kFiS_xJ+vT{<(C^EiJ@T!P+rui8(|1(IfFbf z;`-PDWlJTDmlza0%MUg)z9B(>tD~UmvculCwMXw5+j)Os{q-q_juHwGv07gW8&whA z_2J!Q_p{|C68jczWWx1+8jqaKmDdhsqzPWhSX=38jx=2yph z_WS{CyBa|@NshK!VDH)_Sd1@YZtON{MQ_@8DFA$OT%>Z3Dq_T5siKs&gu$3N3ovd4XE0p^=}8CZ?yeBUU$p^p;*t8 z*a$nzxN1~Rm)PA90EMj*-#J*B3nw(oH=4Cm%7cp%AL!Vh-l&~te+l*8VQad3bvey! z+P^sX4Q_`le)h)s(^fuwS1sn`FZ!vd=auCZ!QmDqRpF)i@6JYvaW_B2^?vey<~_ehTbkT$V63_U%uIGGgsaFX`=CL z&Y3M2PQR~J{&0OR$I#$Pu61nVfu*-ZgX($i#d9~8-&TAM15%yZ-W#JE8qZcI8Z1=& zPP=`j^Rn88gg$b0?D-3r+ycFUS0R=9-L!%&ZN>L%Pqhs_u$;6SS4zX`C0apx zlE>Ni@=os_gdB)9yb#&)S`eoXKYH=CW5<7urA#??k>)F%CtEvS?|XN;%48GFC8BYdv9XOu8S*s@fG!ncHAABNq(0PCd!bW(EGAFNpPXesaQN>bEZ#c zsQ$?prW{lHBe_lsu~GO`VQf%W$T>e6rP>(4Zs{z~nj{1sNeMl-qZ5YId#T?{t) zjGX-MzfASJEANhPzx$e7ch>$`mcpAh8OFK;xH6gjEh9Eg6>A^q*@yLw=uFomLCJ`V z>_5oH90(*{Q_&!@gu`?TgJ#%yMoq0eH!m_!2*OIq`xlFhMI4ojf8=tOsphR^Xfu7!UCn~5f7vHU-EYHiQ6u!m&(ahk= zx7>4Urb)-mB9&7C(QZ6SCT#GrG0*fUsy=+5PUWE5ZyNV=D?=)c^&wkF+y#z1w&jXx zk6t`l31Vsx(`KE}E(y?$J5gu#RO;xSv17+;*PV;=(DH-^?k-u-afXe-WgEzaYyj4` zt&Dk^j7eJ3*cqS4kwz#UVYIbN1#tsy0(i$_0UvdBE(iT2tPq^fGzamn|5AA*#UdX? zT}ABam>-!cOIN@tmHT=)(=4Wz2Bg3uEA!${=*fELCyIJw!Gfj_I)WtJZ6(aGTjHnkH2lbDVu&*sE97p~q!(N%3>OE*yQ0~Cs&DSsA~m__NSSX) zQL%;tWrFD{0~MTi*CL|s!iwf4=p!!s1;OMm4irc4@ToWf z^*-XcbpH1_x*Xv?*T~C^5X9ESb#i)&qo(+B+SC40-v&1taI1|50jP9iK7q$%N@1av z{fR7h&(?ZU%npsY&?PZ zDqR+qCaR~6%(?qjWnBO9vxWDP^xukQ+X=ybqz;-_2IBCQ5P${=->(Z9k zRxWbXe%)cN}Baptz`<@>(R954G(m0`EowB7FW!}Y&)F5ZbZiLiaUM}Fz~JNxBZ z4X-}$zTF%xQtZU)%pUx-Z|~|m&Hw!F?A4ztee>$X+Sea5g9O(~_x}C-F8$ZA!|FuJ zzol0Z4y$jEbuI;mq-l+&hghgO{CTx~`Ma*!(wEP_j~jga_vhXAxdqqy)dV%;pFcwX z;f3J$gSBT-?E z^#vDHraTVgP)1X?*x45kKd6#$?q12hVFV;f3(Cp3{y@U+M&&z)d~+7>kChE0nmM6Q z`zw+;m>Um8e-rpZSv;jo<;hLe@xPBbs2(d`=B6T#qMgXR$Sz8XXHBGg^~Rom$vsx} z2oTs~HRy;tS6o}>R)Ud!x zi))<>TQ@seMdho-^jP6IYI;s7$(fd+{p3I=Eg<;U!jKiq@2Aj4aCxL#WOQ?;h=2$7 zRhdTmxC&mT+qzyv3*^J0i|IjTOa_H22pi{6B>?Eu!i8p0+ZkN|;Pf)6C;L(*zL?C zg!4_bawOL#r7o-9vG&4o(VUixtkrR~0hOakqLgHJUTdEOo6@JYiJ9(2)o_o%2$!#iJ;Ss4U>( zhaaN6cKRk8K(c~$?rst11LQloMBuME$pJ7U=R~dFo6*oVO_jtQLxQ@Gf6qQ~cQ-tD z(l`p$|hFrMUs>CB)K*m|YxQ=yYty%VB7Gd^ykY+0sa zJLRg)MI-G1r)d!K?Qxdl1(2r!RAwA*a1nY8YsZhO?HND|SUrpZsAkDRC_o;8lZCaL z^?)pwBFhzt7ed79>lJ-Lp9w030&5p?K-ODoRx@JcLGjTHs@RYSHM(~qB1g^33J)le zjx2$*`XEWYyaZ6?U7pQE@n|J_ZtA8`M5Uj?=%`vU2mEr;7=$9FVR_*YqLb?a6*V#) zAy!`6RJqgvrr0mezX`sXHUza~@D3DB3s7KHMh zs0zPMEshGWqJjJ=cAL~9tKWg=n((PhhZVbNUAF`d;6isOo5qP1T8})pf0Bl+iRxYt zB|c3R+BP=&)C*vB2M+&xFS=NaX;(K!=oe)b+yswXoewKyNfjJD|^AmG@}PhuN%W0P7iKAlO$V$3gIQ#uejURLoP$u0EYm z!PDg9UW46~-Q2>8k2>qZonppaVveg#BJcpLX)z92nai6s{@Td}DwjML$45;Iz3OFl zNigPT?>oR8@uS6>&L%|`1L}2a{8>ye4R9jQ6Xsw1kQ1*_h!VxJs#O>aHtR>x~ZQXxA z^zZ-Sd{`X@^GnVefyk`lAycUGF$Nh_-ABBXO4Cm9d82_i9kYN^ce;Myum9DqJ7T%gP93JfYXC+hB-sj=O}*kp;IXP zOO=YVXiu*y#W{|9xHICAz+v4baY|MqGpr`47d0#s%IqSKXLIQ+1XcbO5MWy}2&TQH z!3=m`#Qc8eC*PCgIWkdOy`gwxu{NPdgG7h-|Ja@b^<84h%Vxb8EI-on!@Y&Um~AKu zgjJ^><$4)6KjTZB>I;tYbohWTx|CIycoiuT1r2{U@D+^4Hhk+#Xgl>^m+CHUNv|w! z4Sieockg1SKvtgQrF#N`Pqe#1V2>d!Y}2k>ad4B%u1SX#0ku5?8JguQrhO&g5meFL zwTcxPTLdv)S=}D>y!*9zj{^t$ZGL#(Y$<4#IKB19;N4%6TRy)cd-Y47P*x9q?)!Bc z>p|&Ikp|CM{YE2PqImFaYp$TqE@+7diBjTc815VsJ$@9q@-H~#ZpNvf^Qk}&J? zT(GisEBtfql>5WlH_b~sKU==Mwj_j8MSo;7%D+s$`;wZVyiEI<+A6zC^Yp2|s>?}E z%PU&T$NySh8&xk`?ZGpbQsj%lluZ2&7@_GO&hcjV9Dkyles6!&MUTXC;EPJ8j~ znOB6M6D?@ePr6uS4ngIlj=kB1N11M<1`x`Z}ocoSwd1YdxXmm2(`C ztcRltiexw%g&EZ8#A8@kF?n_)4HVeGoy}#(gn1}8c#o?@(b+!hHs!oRSaIaLR$e$X z$*|sYy=VniUJqM0tyGv>6y)wq@m&#ZAg!mPuHG%(3qEtCR*_|9b7341qTm?vYCl32 z;kRw?jbB-k?TkubWNs*M7#Be6tPw2E<>EOI$0_3GN$GW!{0DiZdY=;^(S?Hd9vq}z zm+G}jG#kv9o-WS8r3J0Lzx|4W_%q_JMXrW*_RRB)e?B*!7;m(YLj( ztnR4X-j^uz^V-G-5@Hj4I{cWFcIh4yV5C13+iXqY>Zt*GmYLWu)>!Ei7=5GyptM}O zdP|Q^hV}nt7Tk?d4%MwupMj`?>($ztrg6#7V+uCe6m&=S6=xV#T?_KprK@meYL9Nd z4&lc4r^v&=6d}spg_mW0fK2Cx2ylyMmXG}H)_v>S3=6W9im zA?63?$=^`BQ4059*IhzI=&c8P=7VKAsa7+kC(a>fr%w?*Od{qTV1~)W{s5b(necO) zmo$LP?MuGQCIwjEYxA3GvEYLIGtbHd`iop zpdWo)Kwq(=&)L4O-7pfcBgF=cUX3|Zm!>2$bA5}-FU)N{`MFeFSC7Xjp6;#Aq*;gY zNI?575}2pH+PnNp1}|q?I(PqF`9qG-_nZ`Sb?{#gZWS5$wiYUz0n^`2oopY7H<>1_ z+awE7%|>6}t?T{7!K-2xx7^nMkcKRjShM`qqrwbg-9vimJ|GB+_I3V6wjg4rT98>3 zq==v=E+5mor4cwQE51;@%h)oG*{&zZp(3F&4rf2i2S`g2p=CcM%A?#c_F4z3tnCAL(XW1Lg_PqT@UtoKUN2NcS-kTri+Ha)I-(w( z`Crt;$ot3jH(x)bcy-IUYU_PVab*_*M*}vS3df>GkW#6^Z-1sew+QN4^Wj$H7fVZz z_Lj$q@)w^*WlSD;bzbFi8Y-mh-jAO1Ja$<{0zwpFSqHL-FRpO<&6xvu)>xADk}`0W#SuGpRvu{>fg*I5OL3(yqVN0;BR42o+y zLyoe};iGSoox)8gc|9cCr|~C96ycsuiuVTTKH2+D$NJ>gUxW!uwS;c;6V^dC<_d2X zta^sg>Z~vm zk<)mcgU^ZC_=1Vbo0b;~ixJ0TyUCoRu?siZd9iI3@I&ufD|gZ%jhn)=-enhrXWg3a zXK_-V-h{0Rw%yb%2ne{4gMaa~CW{mN$#2njpWBkmV+U!ur>YKXv_vjWb|NoY)gG18 zvL8;RoLC$?vqsW8KtF9|p#SNH5zPYo$ni|D(a>!=mt->-c}x{Go+%lw$XuFbIr1g>= zaZEkZt+(*@dg()u-7uNW^&8GZb@f6c@6K#S(Ol0aPv#@e?wQS~JCnF@KU{U+o01I2 z-E)3Bj{AM`8&EZ0^@~1c`l+&^nu7biBO`fUQMX{v!Z$5KCq+N^V*ID6AHMbwI$7$B*QVIFa0PHSg) z&Mt_ZV9*SUM-B6jtg>-&ZUWRW8Lh>Hb}NjGp>njbD6%xbhq@X7c5y7KOZ6#|V_TMR zY)gF|!fs)}xLBbC{}f4Yz3sf7%qmK0yrA;h4X^y3eu}>EF;QO8*}}`Q@X)Y^@4*Q* z{;;k+d~G<&%y7U+p2tZvh0^l_r!{oV9bBuhE>(%#k=SIVx+pHbZdRc7Z|zalLo|w^ zmC9J}5>nZRvoXJdQ$5bM;72l~)PsPW#;7QR;6;<34gr&(1xYDHAP(ns>wUM(ATfEz z0c+!HdEQYq98EfqdtTP13uQT5BpJ+elnuPW?WVU%F`MNb-=3(rHM~^Yb zk@77t*LEyS%5JqzrA~0luC@yk@lLmClJBj*!uCgKYw1at;Z)CF=5eH$4A# z?5!zX755QkKQCK+U~t%1+tAheIo%BYi09>xJ=u^~0w|5|q6^DDdhN8~yS^ziHw`&f zn9eHq*%^hVOoquvvJ9lY$3W376Nole2k{0AXaE74kCxrDjhMITGf>_nUW!cX%iMGk zmiK7k5Xm%XcsOXH&Gb@$Xr5yf@wy8|A?K*WY=le@XPmOI262ep)b7E$lgha^EX`MX z?B)zDv5MIh40!}^*5OtO{~d$sfC` zYREg`(0q3+DO!bIK6CrM{z%HscS-}O^J{xDoOR^oNKCqi??Sd>EpXocyD8AGSHN^E ze6?NFz2+ulGL#r4i#i)V6JT{;>d1V+$vmTREy>G!(&gvmiMIEhr_fh;?Yp+&A7XlG z{SU%(GI_M*aFKj+1^TEhBiE;MrO&YVTVa$@ghB^Zf;dk4^Y2xJ`Y~4lgG9)9X^yHz zBP^tO51j-3PaT)#2YR0Po(pLyLML(bSED|TBS-DO#2jEsxUX@faPFGb9lPhS=|`2P zR^)nD{{U}lH-#FXZ?c~NA0E*?ZcM>s{f$6$2-kX;@QV`byUifW(F(=aF|G|KAC{a* zj-E7%)F|l3JK-EpW7p!eePMZj7^mD16(GH7c!W5xdYZ;@I(a~L8PRUk$d9$2ePR)v z7l4SqNrK{myg7B9_n@cjL)@(1F^?a0J+;*?zDg6L*Avg75AD1Vc?*|v*PK|&BL&yL z!&ZxoUGLP6rC~kg>IQ1z)>izz{4V(Omwlvl$ zIR&|D!CNGc;6bWJkYIosLSiXr-m9i!RZ8EJEN8hC67_Pt5%xMw$N=Q{s5YF$>` ztCvqid5#wUc4O`?w<}$|5vpb2$-(P6c@uFiQ*DCf961^>=Juedk@2N75$}?_Ic7$K8$DFd4uUKFZsX`6hb1mZjDniP@do559WAT(r`*3p_^K6Ty}olr7xY!^+3N?D)PFz+VxjiKOQSMXx53` zZbjUhYS6V&o{m?SM&;{7$J`IxGWG%&uo7=NdMv%uzvGBR4YJTtbZal9L5IS_(TM`B z^Gu!i3rKlEoIOp0rKgc2#QvK?K5_w@Xws1nwQ<6@{>Qd&-u_{-w1*y-q<+;;JN9V7 z1i_(+lPZjUgWYeqA-A%Fc*2ksr`T#SH5n1{vnWG7?MNF$THPv8;PaxkF=oi%^2-e zPO!WX+c>Sh2>u;C7q~5(WZeDsvhzT?z&jPlCxQbsLX{g^%7ib41MWWIkUbj_(zp3} zuD9?pYOT{h8^10VEB(>e39r4g3(WxGRypkA*&Hh~kEtrfT(trGMiauOk5yX4xVAMz?_ChST)YNdia0X3U$mBjIWJ|2tr~|hEDgf+6~lFn z;POXxW7mzTaMBwzViL1viJe%xQ>KCwW;&1qmzcfb;%-T4?sk$roFnV`c#&uHmBRnK z>H-q^n0vMQ(eqg-fw$5Jt?hO3iL_h_9}(y#MV`i5W?%x{@UOLqiSX-Tq3dMidks2e z8sNW=N+3R9r`gc&|BH_96sDAHz4l8Q){;R8#Oa;Ed>)2LlrWh*q5jn@0tLd4^eY}8 z(MaS-ZLLcj<_Ffpko1Rmge&1U4cf$xPn5*p(m3%iEJ=e=Vabp(>vH4qr5e#EVjpTy zatV##`!pZXHoVoNMRNyN(>BT8UevZDumx{sj1y}9oN$T5=*o<|=S+M8N5D>_&sa7c zJUhRKVvcRor_ASLE}T0NGSfw&NxSinv|T_pX;WkucGq%}{?#Bifs<~Wrl9+q(rcxJ z2E;SyFQlBU>9xCWd`4J?Dci*$+yoLfe4HU|OJXM8H4Lj+i!fmCkvJ|n@wRI5=*CU7 zO9r4~!O=vs+xo**(57A7CbT!N0spl~?I9&_aM}Jd|NVm~)-vnXtXpJW_1ADG*gSQz zTh!+QOk8h3G|Z{h)m_7KLkY!yp4h|YP-{Jd+9KR&JD-k7B*G~0FlqWbLfxx!oMtXV zOKh4!WF=owi^GnK1cL@*7z@7Wq0LxYIH3bP>I@RB=F}6%Vrv%>`@bMj{0x#V*%yHy z77Y4?Uu@(Do>~l{2)WnWb9<(OFhhP{-qkg!gV)jh{RsD z?uqaNn6L*K72P3KHgVsII(!s%2w;Y4^Y3xpI9`ac*x7+w~ ztkAz{$t+bq{phnV>6X!b*XG|^U@%<>jpq_W83mR#%BYs4C` zy5+?qETa5BMtc*Za){m*ds&$W%MWI#_&etLhvWMBlCnb34@)38qDUtwPGIp5iJE}% zBoTbuszb700QqPDJ`7w0`+aJm_V&#md|^wzp%R>g^+x+FSYQAm+z}>sgAE8mmDKb;&%^-rWy{bk<6E%7H8xe?5W{M*}Xskc&{41QW+FD2yY(2p|ukZVrq^ z@g>J=0ZnMwbPjUi@9YC8!2`hQf_mYkYkUaM0Im!4i*{wp39x_#N9)5;kgk_IQq;%qMiM!hsF!Mv4xAPC?XiLdy{ z`Y*J41rPyPlK5m?52lQrtSZ0+{;tce2Z3o47*651$z0sVv#WYmgLLoy#niM$i1}HUa3>%+;zdTzT1T;4M%ajpNfePF-AY?sR&jc@i%m- z`iF7C#3Z#q;{Oyjy=@Via}y|Q)G80wAp7amL&mE9#uAemsAdz@^m;G`$>(LO)LJpp zV7WU8y48(gl%PqDlb9WZH&YS+V2OWFk0>K|K&W0u%hSKzzu5rg+vO*NL)qbo*ViBExd;Cm?E zg|;Kg>Yy&9;a_>L-rMo(%jtwvj}WQafGMlyCyjVpVEnAT@vgXl`#k}&sV0z$PPicAqJ^M zPjCSyJcn?TU1z?qaR$PXQ=%Ix)OxX?+(yZ&a|mUfTWv`A4L(gkRaBHu2s8n=`5kEV zJp^iRNE(Ql%T>B;y(af9*ra+TAUF>X%aD}y5FBZMgf>h-=?X&keL0&qWT4oT_R2b9 zF!cMDF19!tX0*#|GZKwP;OTK|fgxHc5JyOR9zG`&UPok%5(A?&l=Pa(h% zd=ThN^}XPln$-4*4)v|Sz4KLtH07UZWKhxrcJF~Sl#lXU$+q*>S0sIu(_Bvt%qVI0 z3W3lcl_FBr_qx9Bh^)3*m-zdD<@-;w;fPyPa=))D%O8T8A04^HxUnY#XFZ_8JE1T% zwJnlSBRQn9v`a?p*Lyg;@p8tH_j^*hP@4k92Z+ST4x*mIiHuvx>IdnOt0hJ2j~%fo z&!ql9bE>5gg#9Z<;dgH#U>pvv?g_;wD+zyH1bgfs)tvn7zVBj92k<#)Vz4cV4rsl4 zIKTxsZg{_y_yT?w0MdjNjqN0XLx%TSsqofvIJpQFl@%*EpIQ=LrnjYmHDT+@VF+!a-GPzox!QAKsw1aw`ch0BO%8Lvg$}Q;9Qi*MzMfn7gf}tL9}8m z1PXS$vBx+W(x@z1o*~GhDr3`@WLXIupuO==aVul_D+du3M~j(l zx%8?Zi-<&hy8`#$;W`zldEaXP_@pu5;*G3&CmLI_s| zGdPm)7{6aGK*k`qCR@Q?L2bLtroq!}>KlcL!-)F!|8~v?pR9>7sf~#cHui{JQHj(vClf2iWD~+Lbs_aP0iOoeY)7vZ}7RfY)|axOKzLs?1npb z`t?9_@MLUloqOOcVu+OxA;0hF^&ZlCg8-6m`=(uAu8l`u{BnKra?a-tVgGaeE4S?w zn_`G@WQM>Wc_l; zH8ZhcZD*t|RvD$mBi(+TI`?gWmTS~@ed>hD{Eg|~pSUrfZbV4PAR3)W<>RU>{Mkfn z;nB|YjsET~4(jYoL*195ZgixqS$~(I)GTi+G>b}{LD6B03pkz++Lst_0Sz&~`&vJ|{^j@QmI0GLr{Z6n z(I0YauE|woE-Xcs)i`Sm*gqqKg7*+*`luw-zspJ6V>L8iTC6WN_duK}lj*Y&)sIP{{2GtD*&WWiJ21EM;fm;A+^hK`mjhw0Y$C0IJ%~uQ z#tFZ=1QaDCYZ5L#!K5qIamXcVG!12rXvgw7U9 zH4?O^(t+5cN;UD!OLPlVVXZz)$7eO3Hf`IvS5#Q9rF+xCI%Le^RxDTgd|1v-uS|u? z*}6R(r~Cd@-^&^$UTSZ?a1r{xR;H5nPAQM&3}bep!pSPOb+CDaD3t{n>yaWExBE&GzrCP&X@F7!K9C-aRZ9Rki6k)u zCsaq0ySax1?FRaVVTu}9l!(r?C(p^Z@e37)VGcfSt`g_n=vW}@Z5=&^_gi65C!PBe z69OzOF7~=DBymn}M4(19-@HR1xF4HTiYwzBMRG;#EG<*_3krWn0pf)wTIEqZ)%yP9@%r{sFW%N@MHB@arHcimAMjP?f{02vKZi)Bi^KvBL1)-rme#JJcNW|;L zeuw0hqx;ZxN-4&dQagyfPn6bPn4Zv)m;5E&O(~3Kdpt~uWEG)K?cR7lf3N&a&;Ncu zdURXl6s)@Zpn5mrt1BufIz~tIW6;sq-*o=(#ux&RQ}`0^vsBcQ^(S}xtB*rCpBRL+ zW#^PZTWU9r)S8zO7)Ja`=t<=DC~b;Ey&0#t^*3Vh%!uJpG8?ykBGa1t=Z*BAm4P-}*qno4U4qM*SHg}}wnu}c0$DFV7`*%aQWUCasBXQJNaWij@(fTXy$=TVLQ zXXLy;?>SfdPNMf+*fUzZmOayALALDt@n>do&sOTy%)hW%X^mk=13j-9BIkO0L?igaV|@PTYfG#8a>19D11!R4O-2Vz-{e3p5%J zkMtXd=q}#6Cn}ju=&^Xb{3uCJ`hzbL0c#A7X5h&-M2C%!jo;T`L4AbGyjTs@p*dOn zi$LVh!cA?kht}Mb&nFoHVi8Fbdhi6Ksdh(N?X-(72i)?+tU25*4p_8 z*X5mk!m4nhZJePs8y1|2L0 z#zQq>7_mz?AAN|tfBRsA{?I_uo$f=ebfv@5n2#+$MtJyg!eP`k(o74X?`lf0E)~rp ziJr9}&$p5`T*Eu@NEZYqGwf6m4>zqz9AbN4F(tk1$Jhdn$dok0N$CO>%t34Ng7j;a z6E08O#zDLvA-glCx zs7=76gQgK5$syuf`Mfq!On%z(&?F|PW0PLXOnnIR#p!6OV%(H+22WJ!%SRjuheipaOT zoTp#nf_?@UR8}OZ_p50m_Q%Mo8E3mRj>%|qwicUdCvsI)UY6LkIY&@-MVRrl@Mh=> zS~uzFbv$ctmZTid`sFlgbCwe4t%`-d8YNe^DIwcCT2p!-ZQF+w^{@ll!DSjrrS4<; zOqOJD3uXc!50fR<;#CZ7J`eY)Q^61!NRJ zw}6uGC)R&Qrf4HH7Bn?X33Vl)uEkB2%o1%ZJ&E8Eq>h*81n=6iQ|l%J4U;`~nG$xf zBojyCsX@@38B~N-#*aXo6XiCng;e9^v=%rr3r;fRz}hg~hyGQf5lE^6$k9L?jF{5^ zs^FyLTIgwa)%G#T7E362!Ks>ewBy2oz=Z&H2Ew|<`fg=r>w$`qoyPeWDhN+2o^Xih zAV0VDN{M`|1FgDlBp&^Gfu;}=;n@6#g!h8ol_Hg`}5;FQ_Il8(9Pcbhp zX#odY@D|C?;gP5?GCm(ZSq)Ugu;5{GNL&l{uj2On5lI9M`;osF6<-s&ObUI1G}Z#> z_?pk0h!VI)%&u+Z9~F(>tSvV?-BH4vDMh-mG3vSN({+`CP0xyLpwszsMAn(}$I)CY zAPV!(zuWV^0%r}M@r%Ov2~GUSA!#gNDBSboCE3v`O~gZY{X~*N5I^g%y)R_m3y>l< zX(JEaAs}8^uo#LbKI2K89GA50wZD*bzG~URWvKShgn`LX=52qI)>)LVb7Ea9Ff%0( zIpFUA{q$Pspa5e>%ksxw*qi{Z(c13^AW4@qUrSX_okZsiU=;Y)3N6?TU6{5Vn3j+E zaSJ9+3jqgPkUu`+@z2TkN6y#QVW(M=&t)Y(#uG09aft?P%R4G#YCa(l4@yYTJS0T9}g~s8z65-SiWo( zzri9-#$c`xPEN+^CdNnEvZ}=S6g?dv`b9DF8a}0O&(v{T&{e{>M#+mj{6QYBvIU7Y zB}x29uj6OV_sOh`XSoUUpV_pvCtbQqU+>?teYG!g&QJT(sJ6e3#`>3TA1(A{Oj(Jn zl5+_zJL+n+{#;$Rv#kx zsow+rmmbKM^?`T7+ME2qccvoZ-BopIuuVa!_}!Y|+t(6r8*lx5Z3b~%>3yJNzR6)^ zttcl!9>Y_8QCC7A#h``K_*6D>1fY66?HGUpE6Tv8+2x9tK1xeMki^mr5(7#cy_{g% zQLC(<@<-{?Q~Miyu?a2N#t-o*N4|R|;}L+R>#RQxFl7_ z1v#WC;>lGX?PTC#j=|Ba?ZS{HnX(?oDZVv0><9+_CRLJTRrlx4RsUNRfzF~4>@yD0 zU9Zv!Zan9QKhwn^u#tIdG3#qk9x&J~yq!f82Oi1o7U;gHL1v?Ci-~BD1*wR5J8@Y~ zSVqRMaQGU#?_F~8H7MY=_9-@6`4!#+HuxW8T*?`oV{;2`Wy+5}NK(374G+FHP26hng@*S9K2mfXS5 zk@uZa2{FBMGz_UyBCxC@pP^f$`2enwJ@rkR<_u6QOp*lpM@C=iWNnB__d4FKx)yAE zq@V5rf)1l9N6K~sUC|aj>$hsb&Zg&^_1T_;C$B}i$Eo!0A=R~ z{c3*fxcG2rz%a^aM2?K0wvbMUIcE5XFjnF<5AVRn*yj z&&6tayB}~1#Zf0c^7xTddsA&Jrx*R*$7(EV?MZ;LgzO}t?5E_mg*eMH;1CEs8H%-Q&Dy7T zQ-KDe*+;moZp0Q}RrtDBk%NynTIG6}n;>v-H%j4Wwl(i)*8*W@A6ZZ}Vzo&4@1^9@ zg2^WV@?o}Aim4Q7Ry+t?7Qc|D!qrBQ6^UL{4`B4GKoBvaN;HyRI4mbme-R!9RNB>P z_2gGhy;&Sn_arstrx^Inc_VB5 zAv-xye1O}kns<5Vo6@%OCD_5@5GYq5YQzV z(6<7aevKCx7)PSrQ}6OzdiC{a9FhRz(j|Q`tUmnYrzKCj_(NN=YNX||?!9md!cJ`f zY=9Jd^nTL%YXNk(C)*wzcqHcS)txl~l6)h(L{Jzdv$nezE9}J@DcN!2L<@w#{+TRS zslz<*YF{vZMXIAEA{s!R<5d?Li=M%U?!1<9+4FGh-&!AIwBI~RJb4v*7X9pv4ATT1 zwt(C87hFoik z;ATBaQ$VKi*F{bZB}rRjn~@(NaLpEkN=v`*#fj^+HkVM^qYT=1pT02U1dHR!ER_9esmW>&=_fd@Zyn;hn9fVaLWK!(Bt0J0|dwmUSRS#*B0! z-pSLD>L>LjaQjbH^GP={+J%qF5TN}Gi2XmMc9AhfG;AdsQ^|6OW(W7RdhN_t!MD&K zNV_bzsugIJ=<3q`$J4$4GyVVn1AjhuuoE+LXwI8cb4Vizg*i4tl$R)J&W8}9bo89# zoN7)v#+b7X6FH?CA*7O2(!q#w=%BMs_SyUU!}mXU?zvr_dp_=m+x0Ys{46$3opKuh z=@0;ju=u~l<3j6X0I#7!g=PgX=fWIwGFQ-_ikFFVS$kA%o2KsMrWJ0iHCh0_p}W_~ zSY%@hlayDWl|mJ*Y*>VzFTo)IrL{3v&7sV5X-~cDMXNNW|CT+Q|GVs$u-mA zvq)vH_fuEp8|^dW<_U1ah_$~jzBNB;OcK8Wi&F`o(iJ_tl?ollpX7K{`oBLZD4JkOk5iMWgVjn#Z>(JNXX~70%&DU- z%V{;XBEtcioz%8@{+%ZXgweoiBZHBZRGHY1+1Nku*0wq-9~sCqmpLw% z2PZo1X>AhUamp_Q5(|g`0|1Z&ykUvrL>Cbt!l*F#+`bgFte)>MzxqxFL0W^sX9hTA zDQtA~ZH(ph*>~icwle~OU{^S`)!#2SJG%UG!85 zspy=JLvy?C<0J-7ZR-|})PF7RS0fx6w=Pdybt`uJu2-b{JjJt3sXam=@<1Kzx|^z5 zf}vN-u^X=!PIexCa`_DA+|8w;%Lle3eAaX9H8XnCq>8w}HmGS>xL2~}kd942TJ}Q` zBg~W`PQ80*$T;eEzvudj>K=>EW3jBo@sybSx2A13I-`5K-n>;nXGDBXx_ew!y>Z8; zqwji?cJ7X#9gkhWwn`T}ul9UbSAVY_gk~J6o}zQYwAv=bQ8S@HBMmuZ#IghDs@+NmY&T{-=8u$Gv9$rY;mot`pCt6gfkE2UsJY^%6W z@$bir*xpw=)eU%&0TMOhpwPQIqWAtoYOp7)M#Yo8l6Q4Zxx;p8^mgYg>LkodX56Dm zpV_ElyrBoB!XtNL?j;1Zj;bY?HSE;LtMGj}A)3rtRO7o}6Qe95{7x%HXo%)2wi#;sVhS7Gp-+n#j!N@?c>dAM%N46<<&C#PQ= zv*t%?m@3DAk~txlU~ijwuUu=-ee1lx1*7BXA+4Ee!>!e*SCK*Y;}ksFD;egUi>+~6 z|J&E3e7Q|wxBd}h$=aGMYrXc>tNqw}?@{WKHYe0w#%cB`FUna6qMq?=Kf#Vn=_epH zz$em`Kl29H>`GeUM3-xi?yBkAx85O$Bt63Lc5K@)dpb?jPL1l&@m&7vYXcmDp(xCB#LMdgjdiDwCEmh6=igp_JY53M_Xs=B!G zW;&^4oTU@&5;%mbNfJ?GO?PVz%C zWS;K0ZBN=r(xn;|K26);oKMCq=5zU7{Rj9U{tnjQYQ~BAGv4P_OdSIPD|Q&6>4z5&Vy$bxRCy{9oYkfr*#i1YrZ!0 z_EhJOxm)OQ(1F%km3xAVdYl|y9W(9A zii(1R74Hce9dwgh&pCP?l$SY?ZF?)Zh{tXweONnR?*LOsa2edB!5Xj+iq0(6Z=uI` zWV)yvlRx2__V#@V!<*`H^eVq*W8#)=_e=X^M#n78)7XiYv{`P5(1*vb zNBum3)k|BxV+Ed;O9>ebhPBRE6ZCE*#Y0$j-VA|^En-CnNHuBdp4kw2+m+;r_h8#M zyL4c{mgXwe7&348-NWbFw)nIxmy?Qd8b9z$>EpjaTcgBQ_4U-iH&Ry>ON9Q;mtY>1 zs|Pif-7SjajAT%`y7%xA_b1N8o?}#}Diyz<*q2yysSvAFxX*N=>4WUyN_J{csiev7 z_n;_b_l;mBR)-fY;)GmG$pO{h^Z~0$ip+V>$g;ohL!}?e$in=5CVh8y=G`ids9Uj% z-M`@)@?@t{6MM+IFcueFTcdK7`BA?ays__FwNioBbFZT6a|Z--@;>A*kBwV1BkcQ0 zeQWyKAC*=txF<7r8MJJS_VBVZqF}oZ_)w0tV*C4Z{@dLac>hAPr*|vm#I`)JkAGP! z>U`S^;d%$X_hRpn^74vVo#Q=sE?&j6>C$%0N&LqxpHx$A$S!L;X(#M2^(Q9GEgE_kH89%>)1L+5R09xGB1%BeWU&P|oz2)Q^4cplZL`+Rl#KM*h+g zB2m}#xZ)dD5Fdqh;i5U;KG{-Eq31n+c0arMwQ}X}yB(Xijf=qeDt+BU486X=8d_@3 z&#AjAEd`UBVl!M0<#FMfoY4DweY8%R=Mkd3iq~NC?N_=hC(9yE(2ovPAs`7`~(s(((aAy@U7 zMp^rD9~szL$)n_3h$|36-QD90b}<=m5`Rda;n&09!Xom>GnlarnD<4!Z;H9b;t&~; zv;{}$luwe6-ZfHkOr?O5GxN)s?Sf&9v!n^`NaN#YYlezbxm2#oAk6bc@yc>zDKI2VXCUsQ~JZyF_xSaNnR&Rr4PP+=V!lzVx5Gw zt+nCU&acwqU_ivIZnr;cZy2lK3+rS-vU4J9_hO12J6YR1Js>RIZdgKmgvVS<-%?K? z$z?1SQR3J($X0k9l|b?&A4~Kb-Ah|cFdWrnzcnUUliA1=cJi9WQMNuL3d^`xlQEUf zMtp`_#u#R?Gmv5`z?)Fgm3d@}5Q}CX_s&R6%&PCo_?)siVGXV=40L$JR@BIr@PJEF z;Pdf>DO18$W;Q}5Q(BW?=?=G~5xTmv+q~VzQnKwkvjxN1_o;-NB{_@RvhNS)*zY9F zf6EaO5KqH$raN+__vXF{%iTT>*R#!m+raPbb%Q^G51K`f@XqBeW=r(t_IktD7_v9J z;Q!cXUv%XzZsRQ84TLLZp-VZ~Zcd32C<_trig`ryJlSqQT!WQc;)n;*tcEyhzcd{@ z2r#m&x=+5&iF|5lzFv1e63pJ+pHEXPFg7nR@hLDpQJ^83&F^3p?08;a^{arcSZKRM zuyB&IJ5k6eEp+ZKbO~2Q|wAK+*p0BH!mlewm8iigJg{F9i8q z2noO7kC6-Qz7YBRLbPIGxb6kSsx&2>U~H2wf{GC~`9`tDFpuK+U&Yo&1d4eHj#ZrK z1RO0b)-umO`Rf8lu{7VOAQn?%>0hG8Duq!19KS@luapv7Y8qZz;8RxLlwX7a7>}g# z0O0%`YXk+y)d8+ya1pBeEh-qfZ~ld_R?HGt%7q3tn}9H; z^VfRkOnUhO0f}2RySgep&B2$uSNvxLmWdRR;zQecCqkS%0E6V-`GA$WCAB^Tbs9F3 zo*xiSIJsJh@hAbvxK0Qs;UV`kldxqYfM7~$niGefpj32AKxg1`93dS8;KZ^l1RTWOuzUj1SKYf>-B4O1Sz0#AmD1t^JPDlm*e*+ufN=mH8u*c(Bog8c z$GKugO?JEn;G>#2_%n2Tp1ZW25#lW$>o6)Ihc#4jLgtYHd5*a4g@i%4Yl6Ht1dOte z)HMzOa3!B`;Id4KH+;-1I(%gn?n$m_g1A3?Ks#|jjt#6y$f?LgsB{B{z(qWx7(v4- zV*o>L-5t>q%(kyo#~oDp1s`{kvF7KMbFD;B18W-8f$C((LB#6my}#ksMxY%(4@YBZ z`bdRg0R$hjKda%SAkRm@tyaR!{gPF|;2zVf7X(zX6SBuy{K?Js?FUOC;%XsJmV?~0 zTub>3H_n6iI~4=tAdk}kAI!S}2SW5betS8;bs}idu)m&O{yiy$AP~1|0v_}$@0x19 zP46gbvRL6t!njiZ7c^6~7);1WTyLkq_z1FB-a<$vHDUR+;8(y%KcvGgV2e`Sj225njNz)J7k= zamYA$jgR?JjQOVp@HrSB2U&{5fwc~Ruw&5z)IM4#9$L3E0u?YoLm_@U#9!fTed~@7 zHFU223on7N8y5#r0a_<24)k}3IhT-;nMlV{?$ zITu@;#GN8sd=tZ4ZZ+xHbJyKF; z4IaEE#Getj)yT5ev-O(YfCm$wz-^cp0Tuszq}nk()8tzw&3L#n=IyFkhYub%?%aAq z-1)<<6J+)D0alpb1D<#V7<4UYYNC6p(oKKs19=cwbo3^Bx{okQjie)sj<&kpbIThS zGrFOjeR<-(CIY}wUx?d8H4R$07W%DuKL7ilIs|#()a0#>_*T1CaqZ7JAXxH06Fh=@ z4daeC?voJr{?so?EpX6ReDL^{3hQdr{2%FM;Vrbx#aDEB`Ee=ZR#dD(+rUCE^tZQ2 zw>GQ?`&InBFn~3Q1f^eBWB1(SKQYI?&Gh}M39OLeFfQsl2e}LZIX8e6cht9-h(~-o zhdeYQ1}ARFh?}zuF)kuHUBec1_G!Yf^M+ul~a)(Ql z@E(4KJb;>AW!S~Lx9wL9=?Rg$>v>O(!8wk2X& zS)4vOF68m2jj_Ftj>)<+JiGdH2bVrLxmEFyn)rO~Mgz_wfxK zqp<_qJ&3>o2l3@-=acoX1bfskUA;;lg9#u0o(9wGfKyDoU9K3b#77D%-U2A=&)7aD zmngM8V9DaUlczes%cR2``l!}VQ6DV!;As8j1c?Z9aQjy=%K-i>1TvV#bEW#}&c zUwLeG=Jk%)tAjbEIrmD0nU~9-=erqjJ2NkT`@qdP(WzZMyK)f^cr61jF1VVf1WV zHy@1`0%uD!U(YF@du{x&u*m6!`2o4!^5S?OUOR*%$2QdF5jpUbDU%Alhd_CuY z++gNS4Z}H!-*4=1mFzGiWa-N8uqxh!mq}18+wL)glX*m3FD_qRNLA$K{E|MSIJ5ds z*z5dO?R7rUg0TFn#7?;Ix#^9|>k`U?w`b3lY*AaZh`nkhBLn|EFDa@nJ>df=%j9pH zeur&Zlv&TqH(b2ncA+U;VqE@)coE@*QuzYc;YA^~#0j7t099Aby6;OI%9`(2#Ke*1 zJekT`O%>ML!Rc`+Y2AyTo26RIoju)OOmncGBk<*%H<3I@y=(psrc5%LnAd}=v0=29a_LwEb);7 z2~{C}W$wna@?wDe>FE=c*q^jrzUrwgmvUoS?03EeKuyKnjcT>Cua-w{te{@Kd?Jpj z5!9Euy&R;Gc$5cdNiqi~v$`K!VddSGanP7>8k`e72Xjs~D*uw6v?~tVC3oBn z$h}|c-2>?qsXAyLe`Pi}fQr<2+!4Vx#%^l*~W42GDZ+Y;!qnWy4-VBtc@b z^68VNw|4vzY^vbz*XQ_=kCD5JwpL=#-?;i@*QbiHuA2rxN;%)lh4+zh5w$hEZmD2ln&A1h%$Ys(m=Mr1K|MBcB z$3Cn?ew6Iz#dPunblX|~NIp>4wj8aD@DPoA|8m@rpHOEJ!sSMYjzKBGiU(crr#8Mx4|bL z3n`gAPNjqp^9TgY>~5J-0$xT%_a1$Vow0USkWQGp>8{rGMNJ^{3BwJ8c*1kZdNlI? zi`SPA-WC_He?(4S7e&nsT|DsfT^Ne>N^4LmFwD*v@jO_XCqFbKfx|0cR8eh(O$}g z1vj%C%84(1nC#VbrL+ybrI>VfL}AZ%OMq0@~5HS zBZ#w*!IiU}@th2sDE1BK?S=V&4Y`M z;@X3+p1yN$V^wn5uZ?9X*rv{!fV16HUce7bNUu)ziEE6prTUlE|CPtQJ9FLWo$lic zj#8q=vs-YZ%a_g==0=nqUSH~b+`C?S_%SdXaK7>MAM^KDJELC=i*?xr*C-V@=zLN65_wd`g+odK`T}jH@-aY(LX>xzNNS0dFC#n>e3^J_OzZFOu zQnghYds#sIMrX)qi2QQyrGyHCE(|48Q(=Yt+qjFnS+4piFo2e9YbI2Wg8Ho`#?y@; zp-A195BiY_5Dp`h3JkLY)@@i5NbF|(+6(}!raMp3F~*k^0TqFbkqTWhkZ%Kyx}%N$ z@+3t^f$`CCpf}PVfpZdwBEo#LLg46FbO-5noo zs?9=*37SH8u{y;9XexI=xz+PVW&jXm!jr~Ur(*DXfaC77*(!8<`5J!!B-z14{($Q+ zUn(j_6WG1QwjKkpP-soel8*JB3loL+d52=K1b{$dQqll$?4$-_+MG)iQ32pA7XZn0 z7~D)OveA;067Qj|7}zQ2OhC>M87PaP6LH^(R|x=uDDp*b;VofNoK-nz0)S#E0u&Ok zxu8VDHkEIU>FPfxA?DNk;sI4O7myO8Gms7xqT~P;xeEa1uQtpg89)JjB)wQDX-Xgu z2gF%X)c|3NOAG*je1rh4y!ILYvuz`q?v6QdEI!HYF@h#Z_eh(L%av&K*Jdm#Bi8_m z)HnzO0G8hPXLT@YKM=79z$CAwi|AY;J_ZsYnSg8VlKdu%(vYmYVi+mNun3S;1|HWS z%pm<_%x)J6u2dQo7)R65HA)VsJ_CV-*6L%WxrL;n6anCP!ui&ZqQWN02mgF!c2NKx zQ5d;j3ugp@VH%eY8w859_57zC6l%_=Bg3?PjnaWa8Sy*SKv2|p-%!2$W<8ZVwi-VF zDZg|B-^Pa-$h%`>k_GZb;vgJSwfoI=IUtI52^Q&d#|TKd26NYn#`wH6B9W;Xs=Cof zG4@aD6#)M+ZApyqay22~TELWE^v?#ik(}_tS;TbMU9uhU&7(0x%=1D1uS#CoT$3+) z|4(bXgpv1!Mx!mCtXDgq82#PLT|m;efI{~eg=gmiN~;li zrDV6Z?eAY(lu2Ha+{^qZ?R%4ih;})(zlVPPwFp$YEzK8z4aOfZyVA+_;MdE-Eq2K- zY-3iFR0g6@k3>D*+Ebs^%gn^TpB3oQG_f~)@Fo6}cP8vxYcl%zJL|oN?Rwk$a_~Sp ziIMf6pBlOHv#VHjFYy4m&n1FAfzV%03nG>fNbNENK=*Who=5s#1&FYI*Him1Z+Iag z4LD1(fKOc*y7@7>lZUYoRG?9cN&3$sfXuO0e* z^nE8%f@xM${^m*u*j`5MtYcC9IqN9l7$6J0!lLQTiqkPObHPBs2QCcTdeEErGs97) z1wZ(Ey3aXAn2Q527^D40lRI*V;!#&WOMk-Dmf8c?K^GapT`RR?)v{7_FT8t<_Q1EK zf8XZ<^sAr2PCLH4!e7+5^C8T0Lq8xvon&lM^77i&2EZK1umgXB_1-)M+~oD|({o%y zR_JJ((i6bbt|zJIChzZ^Y}DCd22+iHv6^x9Md$O5*&X`}*bjA}lPGsc%x*rDcZk^c zrzO>=#ptckKzD5{P7ZPY>0Q2-K=gF`9^{T2)UMn*e4+t(&*JP&o)rL0zK0rMqS!ep z)lCCZnGDlv=Pq_i)-Y zkiX%6@EZa904k?Fr9%ZCZmZJvkbCHU=VoJ)W)lL@KXGa5_HCGZTg;8yY3{InSXHUy zhLE!VH?$K5*S(Rl?MBMy$E@t+TC0LfPy4$!WNO`*yEbamE2GtC>9M2a`IW1Es#Sq1 zk93v3$Cj1%Wxw#@+YaBX8a9I_E?yo{O)f$_N4~0slBPw3Rrdpm-gSq;r z@QYQMm31SkJSre_si%@-%#BqZDJ|7B>3>>E(P)LjRB0%)iUldWjYW5W5LFgFEzs8{Oagrn5gb#MG^^I{f$zk zZGmwhYnK`wo+dt^#>JkxBwiXE&Pt*~dgP03<)z$~i%qT7m49qo6?ayRvno$H@*pUU z17J%yKlWB}+2&_bDGGZaQ-RZiN352)yG@ghp*hrvFLtXI7i;1G46KF;(;#Dqan6m9 zMVBotD~AB-5zLX^&4_C(Xa}UL;RFth%#iL?k7Z#XAk{sUIl*9Z$RG#M`NFzf4*a#b z!X@W*!GOd#08WKA_&}HFP!0g$(9WqOikLjUsdpYA^(0L}UIyGGTFVAj^5+}8mwzrj ze93=mA%$3Fwf~RJvQ2H@=$WmErEO{(?G){+9i2^e44o&F<&vERwKKx2b>O{}itB0b z8(}<6qbUloc!}A+)z-U?W(z&isD;|Ki6>L8IaOqPYLb;8)sxmQvDI7k>Sc*3mOWHB z3A9Dm-+oDk)2q3GEhC2;O}lCswp9Ec=)-}{r?Y!)8)@#g)!t2;vykyg(F%bjU65!S=H8CkLs^EVbT(4QpT1qmb+3Jke1I1Sk2?MyF2YPdq;ZmxP zeq1vErg)}=E5^xmZqyie-K!!&PQ%*L%iU`@-psTnT1wlt zgrG{TF~-$r7rL!aaBb%5M7R~5_Wg`?n8pX^8d)Sy=g%FRW#0F)E;xe%bPXpZ$|$3& z4Q1i`u2H^Xuni_zkeoHGe?-RH1IfR>V-u8F;Gs0=xj){~#+3qgF*f(B4C*%5yVU#` zZS!uX)z*|^x88&?liTO0CzP_RwI~!e9atUaa3(gWc<_Mw5T(m0*an#?n%@3K#6(NI zBvc(UTG>b&I<;vX;pueB9lXD{&bHa{0Q<=|JLQv)4;w>H?!1g3#LZ+FsEYOcbE*4M zs+4|BfiZR!3mL*0z@B7dG-gv6+_!~$MGKL)(jC|{>7qR)6Yofz|%sPS*5 z`U=dJKz}5%{5`6>T#YIm+s>{QJ{~5GZk4!}(jW(cd`(u0Sf1mrQt+Uc~*I zI)5-W4s2SSj@305>YCfd!RzTq@5K`Vb-}~1=0-SFt&G(uUeGN0z}r5mDQ`P`G^Oih zxgy-`fknh7)kWTiZ)AtP(+<2EUA?Jmmpzm>Rq$Sxe$=(AY#pfnoTai{d1-dqD&Kb3 z---^Os=Il1!zcQ6Gb_?Rcos=kTz|FE@V$}Cw~INwm7UKUhF(>$w!Rp-Y;;&s^?hEY zq6v0G{KaQ|FUvelukr`3pV69J?3>Z8udq2->T}?o%qtI1C zK)hFa$?+B0_7=>@lef$GjXse&6_o2#QMpjmI@^2j`PSEqQR1fv%!ih~6%bQJ5=P?Q zd!t0lFf2-lZu^y2HJr@wX0N)Y%?xK*qEluFECuJ6NsI7~@C zMG!z3gbWVDMp02IkCaT&MH6Ckj05}OpYm`Ox70M&8=Q;rCfTc0VWM-Nsit`_koG1O z&$i}b1zAhaQ={33DiqVE5?@*JGhZyin`yKAO$J6vpaTLSsd9E6sS40!QXBmjqH;Z$ zDQN_7X)S}oDRRik#R^|fuv0xCoTQw*+8% zvW=2u9m zoM3=0*4c6pP%xD!t3}B>*Qy8;`oYBKJTioA)B(ced=#&9%kdO( z?9L!JBhG9oo{I7=VKpv^yF$op?i){%|4|N7BYe3*jOlUD<6}^2L)jjJv>6|?ZleFr z$&~BV^DZSNr01y~iHj4nCEFgPVkw}{aO!6!+WktTm;_4VikGc3JZULdu`|e-^YA8J zCZ+wyP4?uAN9j^nf?%1~ED-`dJ2nivLzV`oSgMPF#Z#;|33-%((s7sAf=-E8%te;4 zV`5Qpj0^-*{%8phO^TA<4E431mS#g{J4ZADXrsa3ZA@bt|PYPUIV*P*AeHg zGqM;ZsH5IU|IwW6uvooYg$9cf;?`~SaH^SCx?&8f!4zKXE_N0nbw+5NpGv5T#nHs{ z12M~@I1X#bBkR3sVYIh6wQ*+SYcS0WZ^p=wJ%Vm=OXG=QDjN1E8U~K1FOPpcLzVj{ zJ}PrFT*cm-H!5&yrtDS`jFxfvskX0o24@P>wF&!7;o#5zvMk55C?s|xlok9Ofqu@} zv-{`_1Z1qDt)>sKi!=Y2lCYK$E8OtFHv=2qvR$|`SJ%K-R)@ewjy(gA8p(GbLCEv*9`%K; z!(d4_#Gpc+bm%{JGBGhb?ic1+{Y<(Vu4N4+j;|4Ip~258riqnI7#}w{1;5ipq}#9$ ze2Pgx!&WY)yE2Oceq#_+me?{>Cuc~#!y}kKE}5oFsiW)Ek;lo>Fn87)aa^T0@)QMi zLj;QNNDB>qoR$(D!^RNUBQ6>049)=n?cLN4LUk_m+6c_BgY(Zj2Mdz`9WVBrVZL#c zU5Nqp(WZ-#THi}>Ee{W*Cct{6QaMY^bMa5mgpx2>ItyRAXv63nm1ITtq2md{m_BQt zCqV78Bl%!ev}m-{rc0;;f=~9i8g!!Q_cQH}`>lokQ1ABhsqsufX7A&B6w*87SI_5K z`oPc?A69;D77CJ4vWAgsv^mj07IG%?{hATvx-?KkUEO@JCdr5HMt*krMe2dKei-kO zB3JX+rX5*Zbm%@7H(|hE*_gw=omAt|gg{NEXOHWJyM0DSchS3(t}>k>7Ym(w;x;Ii z-4L&Etv={Ge9l;c*2;pZ-vT~!)qn{C+z6_*JlD+&|Mt?izEY{(X+G^sz7x9q=;;)! zOLt4^_61Hc()_J~|B#tzA~&C*!DAOcAb1F1bQ+HO_`Zb;!^C6n^f$gBR19f7x0a3P zNrmG$@NB^BLHs>Lq?FP;4)}{f73@ohb92(UQ|tqi>?>Cbv_jvrcr`p?f9}{|H>q_{>6F2>5j97Rwr#3S!sFMU z2P;H9R&X!NCO+{}J|v4_mY#U+w(Et@xHIlDP%4RO4oibshz$aMR ztM>G~?eDDR?I%7}yaiQCT&F9G_#rbFbGl(f9C)CrXj~ zywCU_jv1PYc$#}qG}R&b`rfSJOP29a;nAqRcIQ)9PP{rN`Qi34o70=!^z3G@ z%1z^5Psa6A?*3_I-lP1JmR%UGH+XjN)W7T3?wf88y}Rkpf4~FBa+ei9;*;7^QMKN$A3b>k!-+4M{P+-h^)bK8}+ z2kM8iEqaZPvp?m;aimZ9reC=i@-R zX|w5PI@3_Z_iJ-IsFWRl<$QmVi0$ne<*5N#?m0y4p^M#4=w)!U*3$=I#Uj&j79>}Y!!#)F13=&4Rl(9$4c7{F%V z$5*AI#+b5$3f>usH|mVjWjnkSmX#cTm6L+7-Tw9GcVJ{g(=t62(L5l zD`w;b$Q}QESLfunM$4c8>C+>K6OF6qJ%^dd@?m??17f;oPIBU%E%#FFEmB?VMFFr= zQ#R_N)(oron6hIx_5Hq<^+xPJ3e&?n(k5hvaj}zJlncV!|N|K6u8xN_q0FxGleYmtlXGIJnWBZsKGWb%;_CEH76QRMP4;kL zy2TXY#_c>%c8s5~10U(UVR#_&EWOgzz1ktfdnLtvv|nxOH&pz=!$%ViD_C-_23tJV zPnNwTMD8uPy6w?CwFk^T@t&!wnX3&xl^MHKo7d|TbH(&q9C7yrI3Ti}Sg6qBpTqdp zD&J(=;>T)6BZg~W%LK^usZH4<=K)nDDa~NC+PYzQZ$CEn?vR4;Twm^7ht-yksEWaf z=Ry8V9?4b%&B1<)iq~Ln^3>A4hH=t~1o_lHvCJ#k6MaJNP0 z8f)J^iGrTV`t{{?o+ zV$#hAy5XSF@0M>i1!nYIHLjHDlm!{8|wJ$t35mCBfxWn zln&=jxE8Md$!}!9lK=e?GTG)(y8A@me@r=*AUmDcmkL}${9z&VB{lZ(<%Ilx4g|Mjk0}U;cLV5>3->I1l&d!i_j@)D*?dO!#GP63 zg{`{J*@l)$uH-)2dV=z$(J-K^3KK`y)GZ~v*+A?n%JmkkfRpUmx;S@ilnD?2lJdSkJa3ONrz za94S!Rs3O0#T#Z!$=#b>!NT!$@Z0(?J$pfgc*hI{2?5(vg?$8Iy^k#1-=>>FM2m}Z za%8}QAdrxtT^adP2L=yYewa!l=CHsL)!!#}{Wz%pvI!5E2vjGlG;#!;FIiHBL(0^? z2QHc4{=)-P5Yeo1oJ^N5l#myv&r#K9Odui}0_is4k`Re)12jr@yadryx-yCWQ(j&A z2luDSj2;UDT@Vy1)aEj97Jy!(MFQf-r!YF?8YX!BoEh$EqwPrsJfYVrbZs*z7y-x` zR}^Bta9teWhpthNoAIO4 zK>`F5!xcFKlIKD3HE7F;*K-Ar|J^Zkt|EEbe(f%J|BGx<&-+qQ2^Rxc07L-nv@em{ zb3`mlB|2qFK%xRhe$_BJTPrM}`Mw6;)lY-bbs1!!7o;mNDWqx%x#aCxtQ}s-Feni3 zmF&2#Nh5Goma84JSVXbtM6(5>XRRdz#axoMTt6Vro=k?Mh68{7m;6VHjl|puG#y~flVYl^h>%WCka9=$mnFaeuZfm~ zbjZOr5%T~6(i!6_0JSi5!2XX8%H%rJj$Dh7`jC_NKU0F0NumJ2cUFH-HW(kYVQ7v7 z2;>9EM$Xz&$-Ybz=WyVY=IL^hPWg%k8m;Br82TDS||5uG^l$|p;9?ss0a*QRsyW-Z zYyZ6X%JFK!{>y=$SV*ez9pXKd>!;uG8#i-Vct$~ZW|VnP4kEqRuvP-jN6eED(5X0W zkPsa4V~Io%boq(037i(So_XMXHER712y~K%ndMI&_n9HNdakP86u=u`;Iv zBc}r)qOG!vUXVmnqt^`g+C=0Ouk?#X6u0?cZGF22_2>P-uiEb*Vo;eE7bpZz>&Dl27mY>ePhqVVJ;NU$9*c zA%OV(qS{*qOW%HN?C7nTIhj4U19yky)gO-H~Q(z$0NC>SHBk$ zL`|>FHPY`*J^;RMhHd1-wjXIO9h7n#z(!pRBsrSwFKkSo^P74n8G#qc2(BmMu3A9r zzjpWA^S?e=w2oxqlmsFv0EvbW47$Gw-S-#)h2jTHrAg;N4zv6KNeJh*8_0HLN(%nP ziiDAoba>YonhpNE`N|$aS2U@TB1aG3YW)0q*X#6r>6n1-NI_&TAHK>zbZNd5-PfK- zp7m@6seS0pG50}A=CZo?kLtY1iRtx98Ve}_idUNNDU0j7?gE`F9^qY~zN3xLsSHiM zY9Drlu2C{E=86_fC=zH+TBweUrQg18qm3v3ysnA+;xF@K1O~gPRJ@a#e=qWMAoaS( ziJWoj3ErIWqn=*%8xTN#dlwl-)W=F87LOdF(_Ks6bdS}4xi2AGIXI_MeUK}?NS{`6 z7*qXY6cjV*swL2ybKlx?-#*np+@0z9d*k`_yN`WCL9Z&@kBxi!xf@#~0j{VI{dZ?n zYCrIUvJpe4QX!DmU-zTI-WLicL1dIbYu^96JXhA{sN#GuC|LZZMpD^AA{aNr0YQI2 zBvneN)oCO9a7N8S0JgK@#L{0(uuuNH)_^up!m{++rCg$pnBu|AwC^i4O2y1reyo<9 z2KHcq__u-ba7g3tCLFQfqyG&l(YPrK{3R85)pYr|L16gHjS_e!-mTT8Kga4vBqs`)7GU25=v8Vtmh9aS4sk$b}xM0#=~{W4I8hj0h$aZK!xq=xU%AR{q}Qv*i@iD zwu3y)gAXt#7PNUCl%D4TG{fj&y-u%5`-;SMt$q8VhbwKYoI&NRkT})1o?E4?oyJ%Ls7zK(6lsUW8Jmqn~ZsYh-G6fPm?T-%A zXPvpFg;p8i5~G9FoFWd@YAnt$^c%#0)N4lY_QT0|H>6s1y{&NqM^|2r@KaixT&+_U zHRzcBw0YYCZ~w9ThD$}yJlOb-VPSN;=AzYwOR=5b({D6n4vFI(6F6BxQ9}RWVFR-W zjaaK%0Ih)@Bg;*u?}pQ3rMnvO8^=csC#RX>M7eidJ@tz9C6Ibt`ESr)-8L_A#IJ&F zS9>Jn6xj%RIJyseE9eW74sX-~R7?ONcd#PIMpj>Qc*VV^ zA$7u0{^&=>kEPlNfkh{mBr>*~$O>}XCepctfK1E6LXXZ^dvUu*x5*W<+BNDfrYM{XeP^;SuA4Cv3A)%`P~K+k9QI$R?$CpJovzCVrB5b5?Y>9QzV=YKOQ7tY#8A=mG)^+J0T zjw}Dri}QkU3u^y{*ZkGB1$%1&x#JlhPr4{W@RtT1LSbjggNDr|iMv|9BLkG@#_Sh0 zua0u}ZfKP3X`|q`MM*Zdcl2HN?BkZHm%Y_*GCe-r5vy$24fOVbj9<6Q79|4`l89ff zn?Tw7>Q=m}NMncc--ft|=Oz@!A`v11JnM`v@4G7`$i4G^-?Kx0Sm@O|;Ut{}`_|xg z`_1WfJIT>g!8*F}YV`Uf9bl0zleOY^m8oc89&cLZ@YzB6fx)l;TBYLkG^Z9+8Tzr) zZ?ImwoHv-x1>h=weg~+BItmuu_B(#Q-3e+X4Uak2AODc_EdEE@FYfPuR>u-9JBHqv zIR49Yd2Ms;(-;39J3+g!5TS9SI2Fgp(FM>(;Mg{a5El+O7ygw60>)T?Xn;zgK^!SC zaEPi)r@NGc64PwZ1|pzA*m^Gbc{5!bg@Eo1U1iOZkhdrd^Wg2w)7gZD!vBw= z^NvfZZR7YkY)}ya2?vQY94XG!7LE)z&a?@x%+zqCwht;e(n3>HTR2m5kXcz-p_!>! zk(rr|2g}Nq*)r?#iI?|3{(%pl!+oxEbKTeP`wcl8SOXI;*qwz+{7qpD`cI_+bUca7 z|8E1(__!H4SgL=k3;;W}RE577O8*#I>5}qS&vu~Kx0y^Eyf<{o0z4i3U3VtF+wysH zGJ5^X-@#DCaQVZ5Q~Q^6-ao!1jW}U(u`_JopvSXV3px~fKL2%T`3%);{E$=P9PPh( zQ;aSDN(J)Z?*@ET&i91z_hg%ZW-vecrG>2R$#B@t3!;51I^8RsFdA}SHu!jws48uR z)P)bd0PFAzzw*X@AUaXKvVJ;N;DqiD@sWX8E4d7=wcn-%d8YcXWz&A54C*;pn|OA? z;erO^&)&`twcYwNA6YZm!R-vZw%^<`l3rP$+mf7MnFyZo+8mgHDT|ma8q6bwHN5$* zyuXfLUtpo1=1|y++Fc|zgB7X+0+X=T(P7K;U8zIMdHZeFA(oRySoijae&`(N^t;eM zzhAes=~~lCzmb|(e#}AZ_qoT`sNE^@xwjV72$fr2dH&6SK%Vh&y0bLqNK;9tE33e~ z4enNN=Xi3&rMZm50^t^<;Ikt=(*=Epav^tj2K5nl8B!M-0t}uPsRJ0*ui?I4nZiXl z&`bav$8C-cX(clK1a{O-0S>K|r9eyqkia% z-A|LAyvWqFDswB)r%LQ>)%j!y>2uiE0ygYUKZgaB2kUIWV20P)x^^z&uRcyAAF+(!bv%?jwR{B|bi(|>16kCXWgt2+9ny_WeevwdURVcdR^ za0%q=bCoXk0f8!DP_xJ-5DY8aGSYthHFsM+fT`wMuPbe^79<0gj7}uuHK=4)@z(kK@aO>qR zbK^zhEh_P|E9e|`9bmACQ0jLy=08YllD`UaDizuR6mAL;97_2lfmfIH8y7JFu<|Wr z8zCeZ{dtD8t#s3fV)BE&=KCm&kBxUXn)zf!jFbV;wWo9=>id6ww3e290Ih&pW=;Df zT}w#tG&DaCew>|WN;&;o>0R5-dfqvHks|`MY*`w+BA{EK3`o)I-DQ1?yjWBN2>CRw zzRchzD+VC-;Qd*_fWLlygdGUsaXff|lmJ+n$f$p(ZvS<8W9s<5kOnH8)f|J=;ndBf zZI@k-XyqQJS1Aj2bq%f?_k-=GbC!CM7jEUGA9ekY=Luk#H5x}s%NiU^D_k+ z9g+iNilsukUIVk>?}z8~TogB`yH}c|!{jA9J6RFa&L5MHv5ex58gW8^q+A;Sx{2IE9XZi zW-BgVKd>R-ccuNh$86WnS}$~LzUj1(C63;={n9SH(oT7STr*zcC;w5a_taUEO&dKD zzR|cOtrL|zbai7G+qC*4z3ghr`NHcnc72*VVjb>cpC;;lKUGM$WRqi0*}dw!@{v~X z9miII&%WEyoqxG#?wKkdpT8Rj1wR5W-?%s@wB2l~SaaLv@9-GUNtcZ8MR*W4YMs7s z_fG+$k!5rKi4G0kT0h|xYA|qrPx`m0YVmE0!+Rg{7Jt@KJ~#JefQYPVnoxWE+Jo#4rNaVewjPEC=^tWqx zMBd+h>HDd#>f4>(RXsQ`|NYFatJ_(c)pDUz*Hy%U_;ohb4~xTzr)abt-hmq*CSGda zmjzRdWj(RqqIG|#)Jn&zs%iOzc~LX+!r8bWSO1u$;&UtSB}5wQj{XiKso1hRwA>mPlQ>~i6z`yuxve{K~`3X-=FoAmKqfv zOVw|u`x?ar39x`3R>{n{f|TU>Rq`;8n?yR?#iI;H(lRyXE&PWvWThwg5AB2Z@%0z; zvM-~(f;gQ4Kcr|U?(nVd`<(?uZl$K5KEu7xlQI`f)6|S51xfCFcrG~4Z^E>?3l3};R=;>jET6e2g78p zst(uygc@rDVrobW$ZRx`Sq7A>TTz`{l#ply*3EdCnb8lQzQ9wWUUNiF7E*jfeH3gh zW<|o)Z}7$)jh_?6?vZ?}5`$0?yjjwz|2A&hU6a2CsoWgDI<@5wVzz`v&Ze*Eswv)o z{JEuj@W!eLX&SsYfO}`w~ssXlG8qCLmjg>Ga|c7MQLk4uA;uC_N~2IgN~JZ0FmtV z8z}q?oy9uXJS6nJr2)I8WOJbnED&F8%&B#W}J3q4k&Kj?-~AtYHrGz1=>Q}YSNr+qqtkl9dGnBnm$iiLvm z+)d{ofE_TT)j}GlgD6S_3*X6o-rq4gkcj5;Xu*a$pW5{@=wNjcX{bhZA@y%)E{4N3 ziw%Da8|n<#zy9DSj7~eON!yHWlc(mwH!D-2=VjI@(M*{dj$1>`c%QgG*fdkORoCqMI=I_m`f3hsn&OeNO> zzp9O9ar6n5F)Y{()yXAWa4|TpHlkf~E{RM8CBS>UwD2u%v};qaw;*AOjFv3efvSV!NsljPqd1 z0YkOtAmw@QR4aVRc(2JtaMGGi^WxdOo6>#`K5MPh8?Av`Nc6{47fb*UNq{S4y9~mP zO_}=0Xmp9bx-E@=)ON#^c9t7O1pOX1(i%4eM|q?HH(;2D@#@uYp@VytC0k^5E zZdR7`6$aLNpZ(tTL>X`6Ej8mh=$M7(URY{mNL}*{7Gpshsli;WSyG?oa1A7^n}y+s z^t)5qGoOvB-1UI-^kQ)3HZ96P9}U4JmG!Q$rLR!(@F6w2IAHDdKHC0WZ3>^ zn`O0Ja!;RnI6>_f3s?o#78aXt4Yn}k!ho-)7u#Vf5nDb}yOM=c0y1^PtSL1VAofmu zB3OcS-19b#nⓈ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®GuI@&Kklvkx{9Z+q!I8wTz~znUhM-%P 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.d(n,{xA:()=>p,yg:()=>m});var i=t(96540);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);n&&(i=i.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,i)}return t}function a(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var s=i.createContext({}),d=function(e){var n=i.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):a(a({},n),e)),t},p=function(e){var n=d(e.components);return i.createElement(s.Provider,{value:n},e.children)},c="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return i.createElement(i.Fragment,{},n)}},g=i.forwardRef((function(e,n){var t=e.components,o=e.mdxType,r=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),c=d(t),g=o,m=c["".concat(s,".").concat(g)]||c[g]||u[g]||r;return t?i.createElement(m,a(a({ref:n},p),{},{components:t})):i.createElement(m,a({ref:n},p))}));function m(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var r=t.length,a=new Array(r);a[0]=g;var l={};for(var s in n)hasOwnProperty.call(n,s)&&(l[s]=n[s]);l.originalType=e,l[c]="string"==typeof e?e:o,a[1]=l;for(var d=2;d{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>a,default:()=>u,frontMatter:()=>r,metadata:()=>l,toc:()=>d});var i=t(58168),o=(t(96540),t(15680));const r={},a="Dealing With Problems With Building the App & Detox",l={unversionedId:"troubleshooting/building-the-app",id:"troubleshooting/building-the-app",title:"Dealing With Problems With Building the App & Detox",description:"This page is about issues related to building the app, typically triggered when running detox build (and not detox test, for example).",source:"@site/../docs/troubleshooting/building-the-app.md",sourceDirName:"troubleshooting",slug:"/troubleshooting/building-the-app",permalink:"/Detox/docs/next/troubleshooting/building-the-app",draft:!1,editUrl:"https://github.com/wix/Detox/edit/master/docs/../docs/troubleshooting/building-the-app.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Uninstalling Detox",permalink:"/Detox/docs/next/guide/uninstalling"},next:{title:"Dealing With Problems With Running Tests",permalink:"/Detox/docs/next/troubleshooting/running-tests"}},s={},d=[{value:"Android",id:"android",level:2},{value:"Problem: AAPT - resource linking failure",id:"problem-aapt---resource-linking-failure",level:3},{value:"Problem: minSdkVersion mismatch",id:"problem-minsdkversion-mismatch",level:3},{value:"Problem: Kotlin stdlib version conflicts",id:"problem-kotlin-stdlib-version-conflicts",level:3},{value:"Resolving for a precompiled dependency (.aar)",id:"resolving-for-a-precompiled-dependency-aar",level:4},{value:"Resolving for a compiling subproject",id:"resolving-for-a-compiling-subproject",level:4},{value:"Problem: Duplicate files copied in ...",id:"problem-duplicate-files-copied-in-",level:3}],p={toc:d},c="wrapper";function u(e){let{components:n,...t}=e;return(0,o.yg)(c,(0,i.A)({},p,t,{components:n,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"dealing-with-problems-with-building-the-app--detox"},"Dealing With Problems With Building the App & Detox"),(0,o.yg)("p",null,"This page is about issues related to building the app, typically triggered when running ",(0,o.yg)("inlineCode",{parentName:"p"},"detox build")," (and not ",(0,o.yg)("inlineCode",{parentName:"p"},"detox test"),", for example)."),(0,o.yg)("h2",{id:"android"},"Android"),(0,o.yg)("h3",{id:"problem-aapt---resource-linking-failure"},"Problem: AAPT - resource linking failure"),(0,o.yg)("p",null,"For build errors involving AAPT resource linking failure, such as this one:"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-plain",metastring:"text",text:!0},"Execution failed for task ':app:processReleaseAndroidTestResources'.\n> A failure occurred while executing com.android.build.gradle.internal.res.LinkApplicationAndroidResourcesTask$TaskAction\n > Android resource linking failed\n ERROR:: AAPT: error: resource style/Widget.AppCompat.TextView ...\n")),(0,o.yg)("p",null,"Ensure that the following line appears in your app build script in the ",(0,o.yg)("inlineCode",{parentName:"p"},"dependencies")," section:"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-gradle",metastring:'title="android/app/build.gradle"',title:'"android/app/build.gradle"'},"dependencies {\n // ...\n implementation 'androidx.appcompat:appcompat:1.1.0' // (check what the latest version is!)\n}\n")),(0,o.yg)("h3",{id:"problem-minsdkversion-mismatch"},"Problem: minSdkVersion mismatch"),(0,o.yg)("p",null,"For Gradle errors involving ",(0,o.yg)("inlineCode",{parentName:"p"},"minSdkVersion")," mismatches resembling this one:"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-text"},'uses-sdk:minSdkVersion 18 cannot be smaller than version 21 declared in library [com.facebook.react:react-native:0.64.3] /Users/janedoe/.gradle/caches/transforms-3/6a9cd4eeeb285f80b9e6f413ecd78d0d/transformed/jetified-react-native-0.64.3/AndroidManifest.xml as the library might be using APIs not available in 18\n Suggestion: use a compatible library with a minSdk of at most 18,\n or increase this project\'s minSdk version to at least 21,\n or use tools:overrideLibrary="com.facebook.react" to force usage (may lead to runtime failures)\n')),(0,o.yg)("p",null,"Try applying the solution suggested in ",(0,o.yg)("a",{parentName:"p",href:"https://stackoverflow.com/questions/21032271/how-to-inject-android-configuration-to-each-subproject-with-gradle"},"this Stack-overflow")," post, namely adding this to your root-project's ",(0,o.yg)("inlineCode",{parentName:"p"},"build.gradle")," file (replace ",(0,o.yg)("inlineCode",{parentName:"p"},"21")," those matching your app's ",(0,o.yg)("inlineCode",{parentName:"p"},"build.gradle"),"):"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-gradle",metastring:'title="android/build.gradle"',title:'"android/build.gradle"'},"allprojects {\n afterEvaluate {\n if (it.hasProperty('android')){\n android {\n defaultConfig {\n minSdkVersion 21 // Replace '21' with whatever suites your case\n }\n }\n }\n }\n}\n")),(0,o.yg)("h3",{id:"problem-kotlin-stdlib-version-conflicts"},"Problem: Kotlin ",(0,o.yg)("inlineCode",{parentName:"h3"},"stdlib")," version conflicts"),(0,o.yg)("p",null,"The problems and resolutions here are different depending on whether you\u2019re using Detox as a precompiled dependency artifact (i.e. an ",(0,o.yg)("inlineCode",{parentName:"p"},".aar"),") - which is by far the common case, or compiling it yourself."),(0,o.yg)("h4",{id:"resolving-for-a-precompiled-dependency-aar"},"Resolving for a precompiled dependency (",(0,o.yg)("inlineCode",{parentName:"h4"},".aar"),")"),(0,o.yg)("p",null,"Of all ",(0,o.yg)("a",{parentName:"p",href:"https://kotlinlang.org/docs/reference/using-gradle.html#configuring-dependencies"},"Kotlin implementation flavors"),", Detox assumes the most recent one, namely ",(0,o.yg)("inlineCode",{parentName:"p"},"kotlin-stdlib-jdk8"),'. If your Android build fails due to conflicts with implementations coming from other dependencies or even your own app, consider adding an exclusion to either the "other" dependencies or detox itself, for example:'),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-diff"},"dependencies {\n- androidTestImplementation('com.wix:detox:+')\n+ androidTestImplementation('com.wix:detox:+') {\n+ exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib-jdk8'\n+ }\n}\n")),(0,o.yg)("p",null,"Detox should work with ",(0,o.yg)("inlineCode",{parentName:"p"},"kotlin-stdlib-jdk7"),", as well."),(0,o.yg)("p",null,"A typical error output formed by ",(0,o.yg)("inlineCode",{parentName:"p"},"Gradle")," in this case is as provided, for example, in ",(0,o.yg)("a",{parentName:"p",href:"https://github.com/wix/Detox/issues/1380"},"#1380"),":"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-plain",metastring:"text",text:!0},"Could not determine the dependencies of task ':detox:compileDebugAidl'.\n> Could not resolve all task dependencies for configuration ':detox:debugCompileClasspath'.\n > Could not resolve org.jetbrains.kotlin:kotlin-stdlib:1.3.0.\n Required by:\n project :detox\n > Cannot find a version of 'org.jetbrains.kotlin:kotlin-stdlib' that satisfies the version constraints:\n Dependency path 'OurApp:detox:unspecified' --\x3e 'com.squareup.okhttp3:okhttp:4.0.0-alpha01' --\x3e 'org.jetbrains.kotlin:kotlin-stdlib:1.3.30'\n Dependency path 'OurApp:detox:unspecified' --\x3e 'com.squareup.okio:okio:2.2.2' --\x3e 'org.jetbrains.kotlin:kotlin-stdlib:1.2.60'\n Dependency path 'OurApp:detox:unspecified' --\x3e 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.0' --\x3e 'org.jetbrains.kotlin:kotlin-stdlib:1.3.0'\n Dependency path 'OurApp:detox:unspecified' --\x3e 'com.facebook.react:react-native:0.59.5' --\x3e 'com.squareup.okhttp3:okhttp:4.0.0-alpha01' --\x3e 'org.jetbrains.kotlin:kotlin-stdlib:1.3.30'\n Dependency path 'OurApp:detox:unspecified' --\x3e 'com.facebook.react:react-native:0.59.5' --\x3e 'com.squareup.okio:okio:2.2.2' --\x3e 'org.jetbrains.kotlin:kotlin-stdlib:1.2.60'\n Dependency path 'OurApp:detox:unspecified' --\x3e 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.0' --\x3e 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.0' --\x3e 'org.jetbrains.kotlin:kotlin-stdlib:1.3.0'\n Constraint path 'OurApp:detox:unspecified' --\x3e 'org.jetbrains.kotlin:kotlin-stdlib' strictly '1.3.0' because of the following reason: debugRuntimeClasspath uses version 1.3.0\n Constraint path 'OurApp:detox:unspecified' --\x3e 'org.jetbrains.kotlin:kotlin-stdlib' strictly '1.3.0' because of the following reason: debugRuntimeClasspath uses version 1.3.0\n\n > Could not resolve org.jetbrains.kotlin:kotlin-stdlib-common:1.3.0.\n Required by:\n project :detox\n > Cannot find a version of 'org.jetbrains.kotlin:kotlin-stdlib-common' that satisfies the version constraints:\n Dependency path 'OurApp:detox:unspecified' --\x3e 'com.squareup.okhttp3:okhttp:4.0.0-alpha01' --\x3e 'org.jetbrains.kotlin:kotlin-stdlib:1.3.30' --\x3e 'org.jetbrains.kotlin:kotlin-stdlib-common:1.3.30'\n Constraint path 'OurApp:detox:unspecified' --\x3e 'org.jetbrains.kotlin:kotlin-stdlib-common' strictly '1.3.0' because of the following reason: debugRuntimeClasspath uses version 1.3.0\n")),(0,o.yg)("p",null,"(i.e. the project indirectly depends on different versions of ",(0,o.yg)("inlineCode",{parentName:"p"},"kotlin-stdlib"),", such as ",(0,o.yg)("inlineCode",{parentName:"p"},"1.3.0"),", ",(0,o.yg)("inlineCode",{parentName:"p"},"1.3.30"),", ",(0,o.yg)("inlineCode",{parentName:"p"},"1.2.60"),")"),(0,o.yg)("h4",{id:"resolving-for-a-compiling-subproject"},"Resolving for a compiling subproject"),(0,o.yg)("p",null,"Detox requires the Kotlin standard-library as its own dependency. Due to the ",(0,o.yg)("a",{parentName:"p",href:"https://kotlinlang.org/docs/reference/using-gradle.html#configuring-dependencies"},"many flavors")," by which Kotlin has been released, multiple dependencies often create a conflict."),(0,o.yg)("p",null,"For that, Detox allows for the exact specification of the standard library to use using two Gradle globals: ",(0,o.yg)("inlineCode",{parentName:"p"},"detoxKotlinVersion")," and ",(0,o.yg)("inlineCode",{parentName:"p"},"detoxKotlinStdlib"),". You can define both in your root build script file:"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-gradle",metastring:'title="android/build.gradle"',title:'"android/build.gradle"'},"buildscript {\n // ...\n ext.detoxKotlinVersion = '1.3.0' // Detox' default is 1.2.0\n ext.detoxKotlinStdlib = 'kotlin-stdlib-jdk7' // Detox' default is kotlin-stdlib-jdk8\n}\n")),(0,o.yg)("h3",{id:"problem-duplicate-files-copied-in-"},"Problem: ",(0,o.yg)("inlineCode",{parentName:"h3"},"Duplicate files copied in ...")),(0,o.yg)("p",null,"If you get an error like this:"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-plain",metastring:"text",text:!0},"Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'.\n> com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/LICENSE\n")),(0,o.yg)("p",null,"You need to add this to the ",(0,o.yg)("inlineCode",{parentName:"p"},"android")," section of your app build script:"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-gradle",metastring:'title="android/app/build.gradle"',title:'"android/app/build.gradle"'},"packagingOptions {\n exclude 'META-INF/LICENSE'\n}\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/00424e3f.fbaf5bc5.js b/assets/js/00424e3f.fbaf5bc5.js new file mode 100644 index 0000000000..176af869cd --- /dev/null +++ b/assets/js/00424e3f.fbaf5bc5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4879],{15680:(e,n,t)=>{t.d(n,{xA:()=>p,yg:()=>m});var i=t(96540);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);n&&(i=i.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,i)}return t}function a(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var s=i.createContext({}),d=function(e){var n=i.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):a(a({},n),e)),t},p=function(e){var n=d(e.components);return i.createElement(s.Provider,{value:n},e.children)},c="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return i.createElement(i.Fragment,{},n)}},g=i.forwardRef((function(e,n){var t=e.components,o=e.mdxType,r=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),c=d(t),g=o,m=c["".concat(s,".").concat(g)]||c[g]||u[g]||r;return t?i.createElement(m,a(a({ref:n},p),{},{components:t})):i.createElement(m,a({ref:n},p))}));function m(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var r=t.length,a=new Array(r);a[0]=g;var l={};for(var s in n)hasOwnProperty.call(n,s)&&(l[s]=n[s]);l.originalType=e,l[c]="string"==typeof e?e:o,a[1]=l;for(var d=2;d{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>a,default:()=>u,frontMatter:()=>r,metadata:()=>l,toc:()=>d});var i=t(58168),o=(t(96540),t(15680));const r={},a="Dealing With Problems With Building the App & Detox",l={unversionedId:"troubleshooting/building-the-app",id:"troubleshooting/building-the-app",title:"Dealing With Problems With Building the App & Detox",description:"This page is about issues related to building the app, typically triggered when running detox build (and not detox test, for example).",source:"@site/../docs/troubleshooting/building-the-app.md",sourceDirName:"troubleshooting",slug:"/troubleshooting/building-the-app",permalink:"/Detox/docs/next/troubleshooting/building-the-app",draft:!1,editUrl:"https://github.com/wix/Detox/edit/master/docs/../docs/troubleshooting/building-the-app.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Technical Overview",permalink:"/Detox/docs/next/copilot/technical-overview"},next:{title:"Dealing With Problems With Running Tests",permalink:"/Detox/docs/next/troubleshooting/running-tests"}},s={},d=[{value:"Android",id:"android",level:2},{value:"Problem: AAPT - resource linking failure",id:"problem-aapt---resource-linking-failure",level:3},{value:"Problem: minSdkVersion mismatch",id:"problem-minsdkversion-mismatch",level:3},{value:"Problem: Kotlin stdlib version conflicts",id:"problem-kotlin-stdlib-version-conflicts",level:3},{value:"Resolving for a precompiled dependency (.aar)",id:"resolving-for-a-precompiled-dependency-aar",level:4},{value:"Resolving for a compiling subproject",id:"resolving-for-a-compiling-subproject",level:4},{value:"Problem: Duplicate files copied in ...",id:"problem-duplicate-files-copied-in-",level:3}],p={toc:d},c="wrapper";function u(e){let{components:n,...t}=e;return(0,o.yg)(c,(0,i.A)({},p,t,{components:n,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"dealing-with-problems-with-building-the-app--detox"},"Dealing With Problems With Building the App & Detox"),(0,o.yg)("p",null,"This page is about issues related to building the app, typically triggered when running ",(0,o.yg)("inlineCode",{parentName:"p"},"detox build")," (and not ",(0,o.yg)("inlineCode",{parentName:"p"},"detox test"),", for example)."),(0,o.yg)("h2",{id:"android"},"Android"),(0,o.yg)("h3",{id:"problem-aapt---resource-linking-failure"},"Problem: AAPT - resource linking failure"),(0,o.yg)("p",null,"For build errors involving AAPT resource linking failure, such as this one:"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-plain",metastring:"text",text:!0},"Execution failed for task ':app:processReleaseAndroidTestResources'.\n> A failure occurred while executing com.android.build.gradle.internal.res.LinkApplicationAndroidResourcesTask$TaskAction\n > Android resource linking failed\n ERROR:: AAPT: error: resource style/Widget.AppCompat.TextView ...\n")),(0,o.yg)("p",null,"Ensure that the following line appears in your app build script in the ",(0,o.yg)("inlineCode",{parentName:"p"},"dependencies")," section:"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-gradle",metastring:'title="android/app/build.gradle"',title:'"android/app/build.gradle"'},"dependencies {\n // ...\n implementation 'androidx.appcompat:appcompat:1.1.0' // (check what the latest version is!)\n}\n")),(0,o.yg)("h3",{id:"problem-minsdkversion-mismatch"},"Problem: minSdkVersion mismatch"),(0,o.yg)("p",null,"For Gradle errors involving ",(0,o.yg)("inlineCode",{parentName:"p"},"minSdkVersion")," mismatches resembling this one:"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-text"},'uses-sdk:minSdkVersion 18 cannot be smaller than version 21 declared in library [com.facebook.react:react-native:0.64.3] /Users/janedoe/.gradle/caches/transforms-3/6a9cd4eeeb285f80b9e6f413ecd78d0d/transformed/jetified-react-native-0.64.3/AndroidManifest.xml as the library might be using APIs not available in 18\n Suggestion: use a compatible library with a minSdk of at most 18,\n or increase this project\'s minSdk version to at least 21,\n or use tools:overrideLibrary="com.facebook.react" to force usage (may lead to runtime failures)\n')),(0,o.yg)("p",null,"Try applying the solution suggested in ",(0,o.yg)("a",{parentName:"p",href:"https://stackoverflow.com/questions/21032271/how-to-inject-android-configuration-to-each-subproject-with-gradle"},"this Stack-overflow")," post, namely adding this to your root-project's ",(0,o.yg)("inlineCode",{parentName:"p"},"build.gradle")," file (replace ",(0,o.yg)("inlineCode",{parentName:"p"},"21")," those matching your app's ",(0,o.yg)("inlineCode",{parentName:"p"},"build.gradle"),"):"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-gradle",metastring:'title="android/build.gradle"',title:'"android/build.gradle"'},"allprojects {\n afterEvaluate {\n if (it.hasProperty('android')){\n android {\n defaultConfig {\n minSdkVersion 21 // Replace '21' with whatever suites your case\n }\n }\n }\n }\n}\n")),(0,o.yg)("h3",{id:"problem-kotlin-stdlib-version-conflicts"},"Problem: Kotlin ",(0,o.yg)("inlineCode",{parentName:"h3"},"stdlib")," version conflicts"),(0,o.yg)("p",null,"The problems and resolutions here are different depending on whether you\u2019re using Detox as a precompiled dependency artifact (i.e. an ",(0,o.yg)("inlineCode",{parentName:"p"},".aar"),") - which is by far the common case, or compiling it yourself."),(0,o.yg)("h4",{id:"resolving-for-a-precompiled-dependency-aar"},"Resolving for a precompiled dependency (",(0,o.yg)("inlineCode",{parentName:"h4"},".aar"),")"),(0,o.yg)("p",null,"Of all ",(0,o.yg)("a",{parentName:"p",href:"https://kotlinlang.org/docs/reference/using-gradle.html#configuring-dependencies"},"Kotlin implementation flavors"),", Detox assumes the most recent one, namely ",(0,o.yg)("inlineCode",{parentName:"p"},"kotlin-stdlib-jdk8"),'. If your Android build fails due to conflicts with implementations coming from other dependencies or even your own app, consider adding an exclusion to either the "other" dependencies or detox itself, for example:'),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-diff"},"dependencies {\n- androidTestImplementation('com.wix:detox:+')\n+ androidTestImplementation('com.wix:detox:+') {\n+ exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib-jdk8'\n+ }\n}\n")),(0,o.yg)("p",null,"Detox should work with ",(0,o.yg)("inlineCode",{parentName:"p"},"kotlin-stdlib-jdk7"),", as well."),(0,o.yg)("p",null,"A typical error output formed by ",(0,o.yg)("inlineCode",{parentName:"p"},"Gradle")," in this case is as provided, for example, in ",(0,o.yg)("a",{parentName:"p",href:"https://github.com/wix/Detox/issues/1380"},"#1380"),":"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-plain",metastring:"text",text:!0},"Could not determine the dependencies of task ':detox:compileDebugAidl'.\n> Could not resolve all task dependencies for configuration ':detox:debugCompileClasspath'.\n > Could not resolve org.jetbrains.kotlin:kotlin-stdlib:1.3.0.\n Required by:\n project :detox\n > Cannot find a version of 'org.jetbrains.kotlin:kotlin-stdlib' that satisfies the version constraints:\n Dependency path 'OurApp:detox:unspecified' --\x3e 'com.squareup.okhttp3:okhttp:4.0.0-alpha01' --\x3e 'org.jetbrains.kotlin:kotlin-stdlib:1.3.30'\n Dependency path 'OurApp:detox:unspecified' --\x3e 'com.squareup.okio:okio:2.2.2' --\x3e 'org.jetbrains.kotlin:kotlin-stdlib:1.2.60'\n Dependency path 'OurApp:detox:unspecified' --\x3e 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.0' --\x3e 'org.jetbrains.kotlin:kotlin-stdlib:1.3.0'\n Dependency path 'OurApp:detox:unspecified' --\x3e 'com.facebook.react:react-native:0.59.5' --\x3e 'com.squareup.okhttp3:okhttp:4.0.0-alpha01' --\x3e 'org.jetbrains.kotlin:kotlin-stdlib:1.3.30'\n Dependency path 'OurApp:detox:unspecified' --\x3e 'com.facebook.react:react-native:0.59.5' --\x3e 'com.squareup.okio:okio:2.2.2' --\x3e 'org.jetbrains.kotlin:kotlin-stdlib:1.2.60'\n Dependency path 'OurApp:detox:unspecified' --\x3e 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.0' --\x3e 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.0' --\x3e 'org.jetbrains.kotlin:kotlin-stdlib:1.3.0'\n Constraint path 'OurApp:detox:unspecified' --\x3e 'org.jetbrains.kotlin:kotlin-stdlib' strictly '1.3.0' because of the following reason: debugRuntimeClasspath uses version 1.3.0\n Constraint path 'OurApp:detox:unspecified' --\x3e 'org.jetbrains.kotlin:kotlin-stdlib' strictly '1.3.0' because of the following reason: debugRuntimeClasspath uses version 1.3.0\n\n > Could not resolve org.jetbrains.kotlin:kotlin-stdlib-common:1.3.0.\n Required by:\n project :detox\n > Cannot find a version of 'org.jetbrains.kotlin:kotlin-stdlib-common' that satisfies the version constraints:\n Dependency path 'OurApp:detox:unspecified' --\x3e 'com.squareup.okhttp3:okhttp:4.0.0-alpha01' --\x3e 'org.jetbrains.kotlin:kotlin-stdlib:1.3.30' --\x3e 'org.jetbrains.kotlin:kotlin-stdlib-common:1.3.30'\n Constraint path 'OurApp:detox:unspecified' --\x3e 'org.jetbrains.kotlin:kotlin-stdlib-common' strictly '1.3.0' because of the following reason: debugRuntimeClasspath uses version 1.3.0\n")),(0,o.yg)("p",null,"(i.e. the project indirectly depends on different versions of ",(0,o.yg)("inlineCode",{parentName:"p"},"kotlin-stdlib"),", such as ",(0,o.yg)("inlineCode",{parentName:"p"},"1.3.0"),", ",(0,o.yg)("inlineCode",{parentName:"p"},"1.3.30"),", ",(0,o.yg)("inlineCode",{parentName:"p"},"1.2.60"),")"),(0,o.yg)("h4",{id:"resolving-for-a-compiling-subproject"},"Resolving for a compiling subproject"),(0,o.yg)("p",null,"Detox requires the Kotlin standard-library as its own dependency. Due to the ",(0,o.yg)("a",{parentName:"p",href:"https://kotlinlang.org/docs/reference/using-gradle.html#configuring-dependencies"},"many flavors")," by which Kotlin has been released, multiple dependencies often create a conflict."),(0,o.yg)("p",null,"For that, Detox allows for the exact specification of the standard library to use using two Gradle globals: ",(0,o.yg)("inlineCode",{parentName:"p"},"detoxKotlinVersion")," and ",(0,o.yg)("inlineCode",{parentName:"p"},"detoxKotlinStdlib"),". You can define both in your root build script file:"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-gradle",metastring:'title="android/build.gradle"',title:'"android/build.gradle"'},"buildscript {\n // ...\n ext.detoxKotlinVersion = '1.3.0' // Detox' default is 1.2.0\n ext.detoxKotlinStdlib = 'kotlin-stdlib-jdk7' // Detox' default is kotlin-stdlib-jdk8\n}\n")),(0,o.yg)("h3",{id:"problem-duplicate-files-copied-in-"},"Problem: ",(0,o.yg)("inlineCode",{parentName:"h3"},"Duplicate files copied in ...")),(0,o.yg)("p",null,"If you get an error like this:"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-plain",metastring:"text",text:!0},"Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'.\n> com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/LICENSE\n")),(0,o.yg)("p",null,"You need to add this to the ",(0,o.yg)("inlineCode",{parentName:"p"},"android")," section of your app build script:"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-gradle",metastring:'title="android/app/build.gradle"',title:'"android/app/build.gradle"'},"packagingOptions {\n exclude 'META-INF/LICENSE'\n}\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/040764b7.0dcb9382.js b/assets/js/040764b7.0dcb9382.js new file mode 100644 index 0000000000..e553383d01 --- /dev/null +++ b/assets/js/040764b7.0dcb9382.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4651],{15680:(e,t,n)=>{n.d(t,{xA:()=>p,yg:()=>g});var i=n(96540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function s(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=i.createContext({}),c=function(e){var t=i.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},p=function(e){var t=c(e.components);return i.createElement(l.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},d=i.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,p=r(e,["components","mdxType","originalType","parentName"]),u=c(n),d=a,g=u["".concat(l,".").concat(d)]||u[d]||m[d]||o;return n?i.createElement(g,s(s({ref:t},p),{},{components:n})):i.createElement(g,s({ref:t},p))}));function g(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=d;var r={};for(var l in t)hasOwnProperty.call(t,l)&&(r[l]=t[l]);r.originalType=e,r[u]="string"==typeof e?e:a,s[1]=r;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>m,frontMatter:()=>o,metadata:()=>r,toc:()=>c});var i=n(58168),a=(n(96540),n(15680));const o={},s="Testing WebViews",r={unversionedId:"guide/testing-webviews",id:"guide/testing-webviews",title:"Testing WebViews",description:"In this tutorial, we'll go over how you can test a WebView in React Native applications using Detox. We will cover how to engage with web elements in both single and multi WebView scenarios, apply matchers, and execute actions.",source:"@site/../docs/guide/testing-webviews.md",sourceDirName:"guide",slug:"/guide/testing-webviews",permalink:"/Detox/docs/next/guide/testing-webviews",draft:!1,editUrl:"https://github.com/wix/Detox/edit/master/docs/../docs/guide/testing-webviews.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Using TypeScript",permalink:"/Detox/docs/next/guide/typescript"},next:{title:"Using Genymotion SaaS",permalink:"/Detox/docs/next/guide/genymotion-saas"}},l={},c=[{value:"Step 0: Setting Up Detox",id:"step-0-setting-up-detox",level:2},{value:"Step 1: Locating the WebView",id:"step-1-locating-the-webview",level:2},{value:"Single WebView Scenario",id:"single-webview-scenario",level:3},{value:"Multiple Web Views Scenario",id:"multiple-web-views-scenario",level:3},{value:"Using atIndex",id:"using-atindex",level:4},{value:"Step 2: Finding Inner Elements",id:"step-2-finding-inner-elements",level:2},{value:"Bypass CORS Restrictions (iOS Only)",id:"bypass-cors-restrictions-ios-only",level:3},{value:"Step 3: Perform Actions",id:"step-3-perform-actions",level:2},{value:"Perform Custom Actions (runScript)",id:"perform-custom-actions-runscript",level:3},{value:"Step 4: Assert on Expected Behaviour",id:"step-4-assert-on-expected-behaviour",level:2},{value:"Full Example",id:"full-example",level:2}],p={toc:c},u="wrapper";function m(e){let{components:t,...n}=e;return(0,a.yg)(u,(0,i.A)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"testing-webviews"},"Testing WebViews"),(0,a.yg)("p",null,"In this tutorial, we'll go over how you can test a WebView in React Native applications using Detox. We will cover how to engage with web elements in both single and multi WebView scenarios, apply matchers, and execute actions."),(0,a.yg)("p",null,"WebViews are crucial parts in a lot of mobile applications, rendering content like web pages or PDF documents within the native environment. However, because the content inside WebViews is web content and not native, it isn't straightforward to interact with using Detox. But fear not, Detox has got you covered with its suite of Web View methods."),(0,a.yg)("admonition",{type:"note"},(0,a.yg)("p",{parentName:"admonition"},"This guide provides an overview of testing web views within React Native apps with Detox. For complete API details, refer to our ",(0,a.yg)("a",{parentName:"p",href:"/Detox/docs/next/api/webviews"},"WebView API documentation"),".")),(0,a.yg)("h2",{id:"step-0-setting-up-detox"},"Step 0: Setting Up Detox"),(0,a.yg)("p",null,"The first thing you'll need is to have your Detox environment properly set up. If you need a hand with that, you can follow the set-up guide ",(0,a.yg)("a",{parentName:"p",href:"/Detox/docs/next/introduction/environment-setup"},"here"),"."),(0,a.yg)("h2",{id:"step-1-locating-the-webview"},"Step 1: Locating the WebView"),(0,a.yg)("p",null,"Detox provides two approaches for locating the host web view and its inner elements, depending on the number of WebViews on the screen."),(0,a.yg)("h3",{id:"single-webview-scenario"},"Single WebView Scenario"),(0,a.yg)("p",null,"The case of a single WebView on the screen is the most common scenario, and it's the simplest to handle."),(0,a.yg)("p",null,"Detox will automatically locate the web view for you, so you don't need to do anything special to find it.\nIn this case, you can use the ",(0,a.yg)("a",{parentName:"p",href:"/Detox/docs/next/api/webviews#webelementmatcher"},(0,a.yg)("inlineCode",{parentName:"a"},"web.element()"))," function with web element matchers to reference elements inside it, see ",(0,a.yg)("a",{parentName:"p",href:"#step-2-finding-inner-elements"},"next step")," in this guide for further details."),(0,a.yg)("h3",{id:"multiple-web-views-scenario"},"Multiple Web Views Scenario"),(0,a.yg)("p",null,"In scenarios where there are multiple WebViews displayed on the screen, you will have to identify a particular WebView first.\nUse a ",(0,a.yg)("a",{parentName:"p",href:"/Detox/docs/next/api/matchers"},"native matcher")," to do this, same as you would for native elements."),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-javascript"},"const myWebView = web(by.id('webview_identifier'));\n")),(0,a.yg)("p",null,"After locating the web view, you can then use the ",(0,a.yg)("inlineCode",{parentName:"p"},"myWebView.element()")," method with web view matchers to locate elements within it. See ",(0,a.yg)("a",{parentName:"p",href:"#step-2-finding-inner-elements"},"next step")," in this guide for further details."),(0,a.yg)("h4",{id:"using-atindex"},"Using ",(0,a.yg)("inlineCode",{parentName:"h4"},"atIndex")),(0,a.yg)("p",null,"It is also possible to locate the web view by applying at-index to the web view matcher in case there are multiple matching web views for the same matcher."),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-javascript"},"const myWebView = web(by.id('webview_identifier').atIndex(1));\n")),(0,a.yg)("admonition",{type:"note"},(0,a.yg)("p",{parentName:"admonition"},(0,a.yg)("inlineCode",{parentName:"p"},"atIndex()")," API for WebView matching is currently supported for iOS only. Check our ",(0,a.yg)("a",{parentName:"p",href:"/Detox/docs/next/api/webviews#webnativematcheratindexindexelementmatcher"},"API documentation")," for updates.")),(0,a.yg)("h2",{id:"step-2-finding-inner-elements"},"Step 2: Finding Inner Elements"),(0,a.yg)("p",null,"Element matchers are used to find elements within a web view. The ",(0,a.yg)("a",{parentName:"p",href:"/Detox/docs/next/api/webviews#matchers"},"Detox WebView APIs")," provide various matchers for locating elements within a web view (e.g. ",(0,a.yg)("inlineCode",{parentName:"p"},"by.web.id(id)"),", ",(0,a.yg)("inlineCode",{parentName:"p"},"by.web.className(className)"),", ",(0,a.yg)("inlineCode",{parentName:"p"},"by.web.tag(tag)"),", ",(0,a.yg)("inlineCode",{parentName:"p"},"atIndex(index)")," etc.)."),(0,a.yg)("p",null,"Here are examples of using some of the matchers:"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-javascript"},"// Match by ID attribute\nconst elementByID = web.element(by.web.id('identifier'));\n\n// Match by CSS class name attribute\nconst elementByClassName = web.element(by.web.className('className'));\n\n// Match by CSS selector\nconst elementByCSSSelector = web.element(by.web.cssSelector('#cssSelector'));\n\n// Match with index in case of multiple matching elements\nconst elementAtIndex = web.element(by.web.id('identifier').atIndex(1));\n")),(0,a.yg)("h3",{id:"bypass-cors-restrictions-ios-only"},"Bypass CORS Restrictions (iOS Only)"),(0,a.yg)("p",null,"When testing web views, you may encounter Cross-Origin Resource Sharing (CORS) restrictions that prevent you from interacting with elements inside the web view."),(0,a.yg)("p",null,"At the moment, Detox is able to bypass CORS restrictions and other browser security features only on iOS, allowing you to interact with inner elements in cases of CORS restrictions (in most cases)."),(0,a.yg)("p",null,"To bypass CORS restrictions on iOS, you can pass the ",(0,a.yg)("a",{parentName:"p",href:"/Detox/docs/next/api/device#12-detoxdisablewebkitsecuritydisable-webkit-security-ios-only"},(0,a.yg)("inlineCode",{parentName:"a"},"detoxDisableWebKitSecurity")),' launch argument. This argument will disable the WebKit security features, allowing Detox to interact with the WebView in a "Sandbox" environment.'),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-javascript"},"await device.launchApp({ launchArgs: { detoxDisableWebKitSecurity: true } });\n")),(0,a.yg)("h2",{id:"step-3-perform-actions"},"Step 3: Perform Actions"),(0,a.yg)("p",null,"Actions allow you to interact with elements within a web view. The ",(0,a.yg)("a",{parentName:"p",href:"/Detox/docs/next/api/webviews#actions"},"Detox WebView APIs")," provide various actions that can be invoked on inner elements."),(0,a.yg)("p",null,"For example, here's a simple example for filling a login form and press on login button:"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-javascript"},"\n// Fill username and password\nawait web.element(by.web.id('username')).typeText('John Doe');\nawait web.element(by.web.id('password')).typeText('123456789');\n\n// Press the login button\nawait web.element(by.web.id('login')).tap();\n\n")),(0,a.yg)("h3",{id:"perform-custom-actions-runscript"},"Perform Custom Actions (",(0,a.yg)("inlineCode",{parentName:"h3"},"runScript"),")"),(0,a.yg)("p",null,"You can also execute custom JavaScript code on the web view using the ",(0,a.yg)("inlineCode",{parentName:"p"},"runScript")," action (see ",(0,a.yg)("a",{parentName:"p",href:"/Detox/docs/next/api/webviews#runscriptscript-args"},"API docs"),").\nThis is useful for scenarios where you need to interact with the web view in a way that isn't covered by the built-in actions, for fetching data, or for triggering custom events."),(0,a.yg)("p",null,"For example, you can use ",(0,a.yg)("inlineCode",{parentName:"p"},"runScript")," to get the font size of a text element:"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-javascript"},"// Define the matcher for the inner text element\nconst textElement = web(by.id('webview_identifier')).element(by.web.id('text_element'));\n\n// Get the font size of a text element\nconst fontSize = await textElement.runScript(function get(element) {\n return element.style.fontSize;\n});\n\n// Use jestExpect to assert the font size\njestExpect(fontSize).toBe('16px');\n")),(0,a.yg)("admonition",{type:"note"},(0,a.yg)("p",{parentName:"admonition"},"Using jest-expectations in Detox tests is possible by importing ",(0,a.yg)("inlineCode",{parentName:"p"},"expect")," API from ",(0,a.yg)("inlineCode",{parentName:"p"},"jest")," package and using it with a separate ",(0,a.yg)("inlineCode",{parentName:"p"},"jestExpect")," variable (as shown in the example below).\nThis is due to the fact that Detox uses its own ",(0,a.yg)("inlineCode",{parentName:"p"},"expect")," API, which is not compatible with jest-expectations."),(0,a.yg)("pre",{parentName:"admonition"},(0,a.yg)("code",{parentName:"pre",className:"language-javascript"},"const jestExpect = require('expect').default;\n"))),(0,a.yg)("h2",{id:"step-4-assert-on-expected-behaviour"},"Step 4: Assert on Expected Behaviour"),(0,a.yg)("p",null,"Expectations are assertions on the state of elements within a WebView."),(0,a.yg)("p",null,"For instance, to verify an element has specific text:"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-javascript"},"await expect(web.element(by.web.id('identifier'))).toHaveText('Hello World!');\n")),(0,a.yg)("p",null,"Or to assert an element does not exist:"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-javascript"},"await expect(web.element(by.web.id('invalid_identifier'))).not.toExist();\n")),(0,a.yg)("h2",{id:"full-example"},"Full Example"),(0,a.yg)("p",null,"Here's a full example of a test that interacts with a WebView:"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-javascript"},"it('should login successfully', async () => {\n // Assert the welcome message is not visible before login\n await expect(web.element(by.web.id('welcome_message'))).not.toExist();\n\n // Fill username and password\n await web.element(by.web.id('username')).typeText('John Doe');\n await web.element(by.web.id('password')).typeText('123456789');\n\n // Press the login button\n await web.element(by.web.id('login')).tap();\n\n // Assert the login was successful\n await expect(web.element(by.web.id('welcome_message'))).toHaveText('Welcome, John Doe!');\n});\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/040764b7.64d8db47.js b/assets/js/040764b7.64d8db47.js deleted file mode 100644 index b67e220fd9..0000000000 --- a/assets/js/040764b7.64d8db47.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4651],{15680:(e,t,n)=>{n.d(t,{xA:()=>p,yg:()=>g});var i=n(96540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function s(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=i.createContext({}),c=function(e){var t=i.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},p=function(e){var t=c(e.components);return i.createElement(l.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},d=i.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,p=r(e,["components","mdxType","originalType","parentName"]),u=c(n),d=a,g=u["".concat(l,".").concat(d)]||u[d]||m[d]||o;return n?i.createElement(g,s(s({ref:t},p),{},{components:n})):i.createElement(g,s({ref:t},p))}));function g(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=d;var r={};for(var l in t)hasOwnProperty.call(t,l)&&(r[l]=t[l]);r.originalType=e,r[u]="string"==typeof e?e:a,s[1]=r;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>s,default:()=>m,frontMatter:()=>o,metadata:()=>r,toc:()=>c});var i=n(58168),a=(n(96540),n(15680));const o={},s="Testing WebViews",r={unversionedId:"guide/testing-webviews",id:"guide/testing-webviews",title:"Testing WebViews",description:"In this tutorial, we'll go over how you can test a WebView in React Native applications using Detox. We will cover how to engage with web elements in both single and multi WebView scenarios, apply matchers, and execute actions.",source:"@site/../docs/guide/testing-webviews.md",sourceDirName:"guide",slug:"/guide/testing-webviews",permalink:"/Detox/docs/next/guide/testing-webviews",draft:!1,editUrl:"https://github.com/wix/Detox/edit/master/docs/../docs/guide/testing-webviews.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Testing with Detox Copilot",permalink:"/Detox/docs/next/guide/testing-with-copilot"},next:{title:"Using Genymotion SaaS",permalink:"/Detox/docs/next/guide/genymotion-saas"}},l={},c=[{value:"Step 0: Setting Up Detox",id:"step-0-setting-up-detox",level:2},{value:"Step 1: Locating the WebView",id:"step-1-locating-the-webview",level:2},{value:"Single WebView Scenario",id:"single-webview-scenario",level:3},{value:"Multiple Web Views Scenario",id:"multiple-web-views-scenario",level:3},{value:"Using atIndex",id:"using-atindex",level:4},{value:"Step 2: Finding Inner Elements",id:"step-2-finding-inner-elements",level:2},{value:"Bypass CORS Restrictions (iOS Only)",id:"bypass-cors-restrictions-ios-only",level:3},{value:"Step 3: Perform Actions",id:"step-3-perform-actions",level:2},{value:"Perform Custom Actions (runScript)",id:"perform-custom-actions-runscript",level:3},{value:"Step 4: Assert on Expected Behaviour",id:"step-4-assert-on-expected-behaviour",level:2},{value:"Full Example",id:"full-example",level:2}],p={toc:c},u="wrapper";function m(e){let{components:t,...n}=e;return(0,a.yg)(u,(0,i.A)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"testing-webviews"},"Testing WebViews"),(0,a.yg)("p",null,"In this tutorial, we'll go over how you can test a WebView in React Native applications using Detox. We will cover how to engage with web elements in both single and multi WebView scenarios, apply matchers, and execute actions."),(0,a.yg)("p",null,"WebViews are crucial parts in a lot of mobile applications, rendering content like web pages or PDF documents within the native environment. However, because the content inside WebViews is web content and not native, it isn't straightforward to interact with using Detox. But fear not, Detox has got you covered with its suite of Web View methods."),(0,a.yg)("admonition",{type:"note"},(0,a.yg)("p",{parentName:"admonition"},"This guide provides an overview of testing web views within React Native apps with Detox. For complete API details, refer to our ",(0,a.yg)("a",{parentName:"p",href:"/Detox/docs/next/api/webviews"},"WebView API documentation"),".")),(0,a.yg)("h2",{id:"step-0-setting-up-detox"},"Step 0: Setting Up Detox"),(0,a.yg)("p",null,"The first thing you'll need is to have your Detox environment properly set up. If you need a hand with that, you can follow the set-up guide ",(0,a.yg)("a",{parentName:"p",href:"/Detox/docs/next/introduction/environment-setup"},"here"),"."),(0,a.yg)("h2",{id:"step-1-locating-the-webview"},"Step 1: Locating the WebView"),(0,a.yg)("p",null,"Detox provides two approaches for locating the host web view and its inner elements, depending on the number of WebViews on the screen."),(0,a.yg)("h3",{id:"single-webview-scenario"},"Single WebView Scenario"),(0,a.yg)("p",null,"The case of a single WebView on the screen is the most common scenario, and it's the simplest to handle."),(0,a.yg)("p",null,"Detox will automatically locate the web view for you, so you don't need to do anything special to find it.\nIn this case, you can use the ",(0,a.yg)("a",{parentName:"p",href:"/Detox/docs/next/api/webviews#webelementmatcher"},(0,a.yg)("inlineCode",{parentName:"a"},"web.element()"))," function with web element matchers to reference elements inside it, see ",(0,a.yg)("a",{parentName:"p",href:"#step-2-finding-inner-elements"},"next step")," in this guide for further details."),(0,a.yg)("h3",{id:"multiple-web-views-scenario"},"Multiple Web Views Scenario"),(0,a.yg)("p",null,"In scenarios where there are multiple WebViews displayed on the screen, you will have to identify a particular WebView first.\nUse a ",(0,a.yg)("a",{parentName:"p",href:"/Detox/docs/next/api/matchers"},"native matcher")," to do this, same as you would for native elements."),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-javascript"},"const myWebView = web(by.id('webview_identifier'));\n")),(0,a.yg)("p",null,"After locating the web view, you can then use the ",(0,a.yg)("inlineCode",{parentName:"p"},"myWebView.element()")," method with web view matchers to locate elements within it. See ",(0,a.yg)("a",{parentName:"p",href:"#step-2-finding-inner-elements"},"next step")," in this guide for further details."),(0,a.yg)("h4",{id:"using-atindex"},"Using ",(0,a.yg)("inlineCode",{parentName:"h4"},"atIndex")),(0,a.yg)("p",null,"It is also possible to locate the web view by applying at-index to the web view matcher in case there are multiple matching web views for the same matcher."),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-javascript"},"const myWebView = web(by.id('webview_identifier').atIndex(1));\n")),(0,a.yg)("admonition",{type:"note"},(0,a.yg)("p",{parentName:"admonition"},(0,a.yg)("inlineCode",{parentName:"p"},"atIndex()")," API for WebView matching is currently supported for iOS only. Check our ",(0,a.yg)("a",{parentName:"p",href:"/Detox/docs/next/api/webviews#webnativematcheratindexindexelementmatcher"},"API documentation")," for updates.")),(0,a.yg)("h2",{id:"step-2-finding-inner-elements"},"Step 2: Finding Inner Elements"),(0,a.yg)("p",null,"Element matchers are used to find elements within a web view. The ",(0,a.yg)("a",{parentName:"p",href:"/Detox/docs/next/api/webviews#matchers"},"Detox WebView APIs")," provide various matchers for locating elements within a web view (e.g. ",(0,a.yg)("inlineCode",{parentName:"p"},"by.web.id(id)"),", ",(0,a.yg)("inlineCode",{parentName:"p"},"by.web.className(className)"),", ",(0,a.yg)("inlineCode",{parentName:"p"},"by.web.tag(tag)"),", ",(0,a.yg)("inlineCode",{parentName:"p"},"atIndex(index)")," etc.)."),(0,a.yg)("p",null,"Here are examples of using some of the matchers:"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-javascript"},"// Match by ID attribute\nconst elementByID = web.element(by.web.id('identifier'));\n\n// Match by CSS class name attribute\nconst elementByClassName = web.element(by.web.className('className'));\n\n// Match by CSS selector\nconst elementByCSSSelector = web.element(by.web.cssSelector('#cssSelector'));\n\n// Match with index in case of multiple matching elements\nconst elementAtIndex = web.element(by.web.id('identifier').atIndex(1));\n")),(0,a.yg)("h3",{id:"bypass-cors-restrictions-ios-only"},"Bypass CORS Restrictions (iOS Only)"),(0,a.yg)("p",null,"When testing web views, you may encounter Cross-Origin Resource Sharing (CORS) restrictions that prevent you from interacting with elements inside the web view."),(0,a.yg)("p",null,"At the moment, Detox is able to bypass CORS restrictions and other browser security features only on iOS, allowing you to interact with inner elements in cases of CORS restrictions (in most cases)."),(0,a.yg)("p",null,"To bypass CORS restrictions on iOS, you can pass the ",(0,a.yg)("a",{parentName:"p",href:"/Detox/docs/next/api/device#12-detoxdisablewebkitsecuritydisable-webkit-security-ios-only"},(0,a.yg)("inlineCode",{parentName:"a"},"detoxDisableWebKitSecurity")),' launch argument. This argument will disable the WebKit security features, allowing Detox to interact with the WebView in a "Sandbox" environment.'),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-javascript"},"await device.launchApp({ launchArgs: { detoxDisableWebKitSecurity: true } });\n")),(0,a.yg)("h2",{id:"step-3-perform-actions"},"Step 3: Perform Actions"),(0,a.yg)("p",null,"Actions allow you to interact with elements within a web view. The ",(0,a.yg)("a",{parentName:"p",href:"/Detox/docs/next/api/webviews#actions"},"Detox WebView APIs")," provide various actions that can be invoked on inner elements."),(0,a.yg)("p",null,"For example, here's a simple example for filling a login form and press on login button:"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-javascript"},"\n// Fill username and password\nawait web.element(by.web.id('username')).typeText('John Doe');\nawait web.element(by.web.id('password')).typeText('123456789');\n\n// Press the login button\nawait web.element(by.web.id('login')).tap();\n\n")),(0,a.yg)("h3",{id:"perform-custom-actions-runscript"},"Perform Custom Actions (",(0,a.yg)("inlineCode",{parentName:"h3"},"runScript"),")"),(0,a.yg)("p",null,"You can also execute custom JavaScript code on the web view using the ",(0,a.yg)("inlineCode",{parentName:"p"},"runScript")," action (see ",(0,a.yg)("a",{parentName:"p",href:"/Detox/docs/next/api/webviews#runscriptscript-args"},"API docs"),").\nThis is useful for scenarios where you need to interact with the web view in a way that isn't covered by the built-in actions, for fetching data, or for triggering custom events."),(0,a.yg)("p",null,"For example, you can use ",(0,a.yg)("inlineCode",{parentName:"p"},"runScript")," to get the font size of a text element:"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-javascript"},"// Define the matcher for the inner text element\nconst textElement = web(by.id('webview_identifier')).element(by.web.id('text_element'));\n\n// Get the font size of a text element\nconst fontSize = await textElement.runScript(function get(element) {\n return element.style.fontSize;\n});\n\n// Use jestExpect to assert the font size\njestExpect(fontSize).toBe('16px');\n")),(0,a.yg)("admonition",{type:"note"},(0,a.yg)("p",{parentName:"admonition"},"Using jest-expectations in Detox tests is possible by importing ",(0,a.yg)("inlineCode",{parentName:"p"},"expect")," API from ",(0,a.yg)("inlineCode",{parentName:"p"},"jest")," package and using it with a separate ",(0,a.yg)("inlineCode",{parentName:"p"},"jestExpect")," variable (as shown in the example below).\nThis is due to the fact that Detox uses its own ",(0,a.yg)("inlineCode",{parentName:"p"},"expect")," API, which is not compatible with jest-expectations."),(0,a.yg)("pre",{parentName:"admonition"},(0,a.yg)("code",{parentName:"pre",className:"language-javascript"},"const jestExpect = require('expect').default;\n"))),(0,a.yg)("h2",{id:"step-4-assert-on-expected-behaviour"},"Step 4: Assert on Expected Behaviour"),(0,a.yg)("p",null,"Expectations are assertions on the state of elements within a WebView."),(0,a.yg)("p",null,"For instance, to verify an element has specific text:"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-javascript"},"await expect(web.element(by.web.id('identifier'))).toHaveText('Hello World!');\n")),(0,a.yg)("p",null,"Or to assert an element does not exist:"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-javascript"},"await expect(web.element(by.web.id('invalid_identifier'))).not.toExist();\n")),(0,a.yg)("h2",{id:"full-example"},"Full Example"),(0,a.yg)("p",null,"Here's a full example of a test that interacts with a WebView:"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-javascript"},"it('should login successfully', async () => {\n // Assert the welcome message is not visible before login\n await expect(web.element(by.web.id('welcome_message'))).not.toExist();\n\n // Fill username and password\n await web.element(by.web.id('username')).typeText('John Doe');\n await web.element(by.web.id('password')).typeText('123456789');\n\n // Press the login button\n await web.element(by.web.id('login')).tap();\n\n // Assert the login was successful\n await expect(web.element(by.web.id('welcome_message'))).toHaveText('Welcome, John Doe!');\n});\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/06556991.a1e9bc3d.js b/assets/js/06556991.f8c7ee47.js similarity index 54% rename from assets/js/06556991.a1e9bc3d.js rename to assets/js/06556991.f8c7ee47.js index fc0b1d14f9..832068c449 100644 --- a/assets/js/06556991.a1e9bc3d.js +++ b/assets/js/06556991.f8c7ee47.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3890],{15680:(e,t,a)=>{a.d(t,{xA:()=>c,yg:()=>g});var n=a(96540);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),u=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},c=function(e){var t=u(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,l=e.originalType,s=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=u(a),m=r,g=p["".concat(s,".").concat(m)]||p[m]||d[m]||l;return a?n.createElement(g,o(o({ref:t},c),{},{components:a})):n.createElement(g,o({ref:t},c))}));function g(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=a.length,o=new Array(l);o[0]=m;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:r,o[1]=i;for(var u=2;u{a.d(t,{A:()=>o});var n=a(96540),r=a(20053);const l={tabItem:"tabItem_Ymn6"};function o(e){let{children:t,hidden:a,className:o}=e;return n.createElement("div",{role:"tabpanel",className:(0,r.A)(l.tabItem,o),hidden:a},t)}},11470:(e,t,a)=>{a.d(t,{A:()=>N});var n=a(58168),r=a(96540),l=a(20053),o=a(23104),i=a(56347),s=a(57485),u=a(31682),c=a(89466);function p(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:a,attributes:n,default:r}}=e;return{value:t,label:a,attributes:n,default:r}}))}function d(e){const{values:t,children:a}=e;return(0,r.useMemo)((()=>{const e=t??p(a);return function(e){const t=(0,u.X)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,a])}function m(e){let{value:t,tabValues:a}=e;return a.some((e=>e.value===t))}function g(e){let{queryString:t=!1,groupId:a}=e;const n=(0,i.W6)(),l=function(e){let{queryString:t=!1,groupId:a}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!a)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return a??null}({queryString:t,groupId:a});return[(0,s.aZ)(l),(0,r.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(n.location.search);t.set(l,e),n.replace({...n.location,search:t.toString()})}),[l,n])]}function y(e){const{defaultValue:t,queryString:a=!1,groupId:n}=e,l=d(e),[o,i]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:a}=e;if(0===a.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!m({value:t,tabValues:a}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${a.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const n=a.find((e=>e.default))??a[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:t,tabValues:l}))),[s,u]=g({queryString:a,groupId:n}),[p,y]=function(e){let{groupId:t}=e;const a=function(e){return e?`docusaurus.tab.${e}`:null}(t),[n,l]=(0,c.Dv)(a);return[n,(0,r.useCallback)((e=>{a&&l.set(e)}),[a,l])]}({groupId:n}),f=(()=>{const e=s??p;return m({value:e,tabValues:l})?e:null})();(0,r.useLayoutEffect)((()=>{f&&i(f)}),[f]);return{selectedValue:o,selectValue:(0,r.useCallback)((e=>{if(!m({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);i(e),u(e),y(e)}),[u,y,l]),tabValues:l}}var f=a(92303);const h={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function b(e){let{className:t,block:a,selectedValue:i,selectValue:s,tabValues:u}=e;const c=[],{blockElementScrollPositionUntilNextRender:p}=(0,o.a_)(),d=e=>{const t=e.currentTarget,a=c.indexOf(t),n=u[a].value;n!==i&&(p(t),s(n))},m=e=>{let t=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const a=c.indexOf(e.currentTarget)+1;t=c[a]??c[0];break}case"ArrowLeft":{const a=c.indexOf(e.currentTarget)-1;t=c[a]??c[c.length-1];break}}t?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.A)("tabs",{"tabs--block":a},t)},u.map((e=>{let{value:t,label:a,attributes:o}=e;return r.createElement("li",(0,n.A)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>c.push(e),onKeyDown:m,onClick:d},o,{className:(0,l.A)("tabs__item",h.tabItem,o?.className,{"tabs__item--active":i===t})}),a??t)})))}function v(e){let{lazy:t,children:a,selectedValue:n}=e;const l=(Array.isArray(a)?a:[a]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===n));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==n}))))}function x(e){const t=y(e);return r.createElement("div",{className:(0,l.A)("tabs-container",h.tabList)},r.createElement(b,(0,n.A)({},e,t)),r.createElement(v,(0,n.A)({},e,t)))}function N(e){const t=(0,f.A)();return r.createElement(x,(0,n.A)({key:String(t)},e))}},75173:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>g,frontMatter:()=>i,metadata:()=>u,toc:()=>p});var n=a(58168),r=(a(96540),a(15680)),l=a(11470),o=a(19365);const i={},s="Uninstalling Detox",u={unversionedId:"guide/uninstalling",id:"guide/uninstalling",title:"Uninstalling Detox",description:"Installing and using Detox implies certain side effects: cloned devices, cache files, state files, temporary files, etc.",source:"@site/../docs/guide/uninstalling.md",sourceDirName:"guide",slug:"/guide/uninstalling",permalink:"/Detox/docs/next/guide/uninstalling",draft:!1,editUrl:"https://github.com/wix/Detox/edit/master/docs/../docs/guide/uninstalling.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Cucumber.js Integration",permalink:"/Detox/docs/next/guide/cucumber-js-integration"},next:{title:"Dealing With Problems With Building the App & Detox",permalink:"/Detox/docs/next/troubleshooting/building-the-app"}},c={},p=[{value:"Detox Framework Cache",id:"detox-framework-cache",level:2},{value:"Test Session State",id:"test-session-state",level:2},{value:"Cloned Simulators (macOS)",id:"cloned-simulators-macos",level:2},{value:"Remnants of Artifacts",id:"remnants-of-artifacts",level:2},{value:"iOS",id:"ios",level:3},{value:"Android",id:"android",level:3},{value:"Detox CLI",id:"detox-cli",level:2}],d={toc:p},m="wrapper";function g(e){let{components:t,...a}=e;return(0,r.yg)(m,(0,n.A)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,r.yg)("h1",{id:"uninstalling-detox"},"Uninstalling Detox"),(0,r.yg)("p",null,"Installing and using Detox implies certain side effects: cloned devices, cache files, state files, temporary files, etc."),(0,r.yg)("p",null,"This checklist might come in handy whenever you have to make a clean uninstallation after using Detox."),(0,r.yg)("h2",{id:"detox-framework-cache"},"Detox Framework Cache"),(0,r.yg)("p",null,"Every install of Detox also triggers a ",(0,r.yg)("inlineCode",{parentName:"p"},"postinstall")," script in its ",(0,r.yg)("inlineCode",{parentName:"p"},"package.json"),", which builds (or unpacks) ",(0,r.yg)("inlineCode",{parentName:"p"},"Detox.framework")," into ",(0,r.yg)("inlineCode",{parentName:"p"},"~/Library/Detox"),"."),(0,r.yg)("p",null,"You can either delete the folder manually:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"rm -rf ~/Library/Detox\n")),(0,r.yg)("p",null,"or run:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"detox clean-framework-cache\n")),(0,r.yg)("h2",{id:"test-session-state"},"Test Session State"),(0,r.yg)("p",null,"On every test run, Detox rewrites a few temporary files in ",(0,r.yg)("inlineCode",{parentName:"p"},"DETOX_LIBRARY_ROOT_PATH"),", i.e.:"),(0,r.yg)("ol",null,(0,r.yg)("li",{parentName:"ol"},(0,r.yg)("inlineCode",{parentName:"li"},"device.registry.json"),", to tell apart the busy and the available devices for use with multiple workers."),(0,r.yg)("li",{parentName:"ol"},(0,r.yg)("inlineCode",{parentName:"li"},"global-context.json.lock"),", to detect multiple concurrent instances of Detox.")),(0,r.yg)("p",null,"The location of ",(0,r.yg)("inlineCode",{parentName:"p"},"DETOX_LIBRARY_ROOT_PATH")," may vary depending on the operating system:"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"macOS:",(0,r.yg)("ul",{parentName:"li"},(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"~/Library/Detox"),"."))),(0,r.yg)("li",{parentName:"ul"},"Linux:",(0,r.yg)("ul",{parentName:"li"},(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"$XDG_DATA_HOME/Detox"),", if ",(0,r.yg)("inlineCode",{parentName:"li"},"$XDG_DATA_HOME")," is defined;"),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"~/.local/share/Detox"),", otherwise."))),(0,r.yg)("li",{parentName:"ul"},"Windows:",(0,r.yg)("ul",{parentName:"li"},(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"%LOCALAPPDATA%\\data\\Detox"),", if ",(0,r.yg)("inlineCode",{parentName:"li"},"%LOCALAPPDATA%")," is defined;"),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"%USERPROFILE%\\Application Data\\Detox"),", otherwise.")))),(0,r.yg)("h2",{id:"cloned-simulators-macos"},"Cloned Simulators (macOS)"),(0,r.yg)("p",null,'To support the "multiple workers" feature on iOS, Detox clones simulator instances when there aren\u2019t enough available ones.\nThe autogenerated simulators have names with ',(0,r.yg)("inlineCode",{parentName:"p"},"-Detox")," suffix appended, so you can easily spot them with:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-bash"},'xcrun simctl list | grep "-Detox"\n')),(0,r.yg)("p",null,"To delete a simulator, you can use:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"xcrun simctl delete \n")),(0,r.yg)("h2",{id:"remnants-of-artifacts"},"Remnants of Artifacts"),(0,r.yg)("p",null,"Forced exits may result in leaving some temporary files behind."),(0,r.yg)("h3",{id:"ios"},"iOS"),(0,r.yg)("p",null,"To ensure there are no temporary artifact files (logs, screenshots, etc.), you can run:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"rm -rf $TMPDIR/*.detox.*\n")),(0,r.yg)("p",null,"If you wish to clean up your iOS simulators from the installed apps and other customizations, just run the erase procedure for the relevant ones:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"xcrun simctl erase \n")),(0,r.yg)("h3",{id:"android"},"Android"),(0,r.yg)("p",null,"The advice for iOS applies to the Android virtual devices as well. To wipe user files on a specific AVD, run:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"emulator -avd -wipe-data\n")),(0,r.yg)("p",null,"If you have to clean temporary Detox files from an individual booted device, look out for files like ",(0,r.yg)("inlineCode",{parentName:"p"},"11159175_0.log")," in ",(0,r.yg)("inlineCode",{parentName:"p"},"/sdcard")," folder.\nYou can try deleting them using a simple wildcard like below or use your own:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"adb -s shell rm -rf /sdcard/*_*.*\n")),(0,r.yg)("h2",{id:"detox-cli"},"Detox CLI"),(0,r.yg)("p",null,"If you have installed the official CLI wrapper for Detox, then make sure to uninstall it as well:"),(0,r.yg)(l.A,{groupId:"npm2yarn",mdxType:"Tabs"},(0,r.yg)(o.A,{value:"npm",mdxType:"TabItem"},(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"npm uninstall detox-cli --global\n"))),(0,r.yg)(o.A,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"yarn global remove detox-cli\n"))),(0,r.yg)(o.A,{value:"pnpm",label:"pnpm",mdxType:"TabItem"},(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"pnpm remove detox-cli --global\n")))))}g.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3890],{15680:(e,t,a)=>{a.d(t,{xA:()=>c,yg:()=>g});var n=a(96540);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function o(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),u=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},c=function(e){var t=u(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,l=e.originalType,s=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),p=u(a),m=r,g=p["".concat(s,".").concat(m)]||p[m]||d[m]||l;return a?n.createElement(g,o(o({ref:t},c),{},{components:a})):n.createElement(g,o({ref:t},c))}));function g(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=a.length,o=new Array(l);o[0]=m;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:r,o[1]=i;for(var u=2;u{a.d(t,{A:()=>o});var n=a(96540),r=a(20053);const l={tabItem:"tabItem_Ymn6"};function o(e){let{children:t,hidden:a,className:o}=e;return n.createElement("div",{role:"tabpanel",className:(0,r.A)(l.tabItem,o),hidden:a},t)}},11470:(e,t,a)=>{a.d(t,{A:()=>w});var n=a(58168),r=a(96540),l=a(20053),o=a(23104),i=a(56347),s=a(57485),u=a(31682),c=a(89466);function p(e){return function(e){return r.Children.map(e,(e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:a,attributes:n,default:r}}=e;return{value:t,label:a,attributes:n,default:r}}))}function d(e){const{values:t,children:a}=e;return(0,r.useMemo)((()=>{const e=t??p(a);return function(e){const t=(0,u.X)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,a])}function m(e){let{value:t,tabValues:a}=e;return a.some((e=>e.value===t))}function g(e){let{queryString:t=!1,groupId:a}=e;const n=(0,i.W6)(),l=function(e){let{queryString:t=!1,groupId:a}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!a)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return a??null}({queryString:t,groupId:a});return[(0,s.aZ)(l),(0,r.useCallback)((e=>{if(!l)return;const t=new URLSearchParams(n.location.search);t.set(l,e),n.replace({...n.location,search:t.toString()})}),[l,n])]}function y(e){const{defaultValue:t,queryString:a=!1,groupId:n}=e,l=d(e),[o,i]=(0,r.useState)((()=>function(e){let{defaultValue:t,tabValues:a}=e;if(0===a.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!m({value:t,tabValues:a}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${a.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const n=a.find((e=>e.default))??a[0];if(!n)throw new Error("Unexpected error: 0 tabValues");return n.value}({defaultValue:t,tabValues:l}))),[s,u]=g({queryString:a,groupId:n}),[p,y]=function(e){let{groupId:t}=e;const a=function(e){return e?`docusaurus.tab.${e}`:null}(t),[n,l]=(0,c.Dv)(a);return[n,(0,r.useCallback)((e=>{a&&l.set(e)}),[a,l])]}({groupId:n}),f=(()=>{const e=s??p;return m({value:e,tabValues:l})?e:null})();(0,r.useLayoutEffect)((()=>{f&&i(f)}),[f]);return{selectedValue:o,selectValue:(0,r.useCallback)((e=>{if(!m({value:e,tabValues:l}))throw new Error(`Can't select invalid tab value=${e}`);i(e),u(e),y(e)}),[u,y,l]),tabValues:l}}var f=a(92303);const h={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function b(e){let{className:t,block:a,selectedValue:i,selectValue:s,tabValues:u}=e;const c=[],{blockElementScrollPositionUntilNextRender:p}=(0,o.a_)(),d=e=>{const t=e.currentTarget,a=c.indexOf(t),n=u[a].value;n!==i&&(p(t),s(n))},m=e=>{let t=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const a=c.indexOf(e.currentTarget)+1;t=c[a]??c[0];break}case"ArrowLeft":{const a=c.indexOf(e.currentTarget)-1;t=c[a]??c[c.length-1];break}}t?.focus()};return r.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,l.A)("tabs",{"tabs--block":a},t)},u.map((e=>{let{value:t,label:a,attributes:o}=e;return r.createElement("li",(0,n.A)({role:"tab",tabIndex:i===t?0:-1,"aria-selected":i===t,key:t,ref:e=>c.push(e),onKeyDown:m,onClick:d},o,{className:(0,l.A)("tabs__item",h.tabItem,o?.className,{"tabs__item--active":i===t})}),a??t)})))}function v(e){let{lazy:t,children:a,selectedValue:n}=e;const l=(Array.isArray(a)?a:[a]).filter(Boolean);if(t){const e=l.find((e=>e.props.value===n));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return r.createElement("div",{className:"margin-top--md"},l.map(((e,t)=>(0,r.cloneElement)(e,{key:t,hidden:e.props.value!==n}))))}function x(e){const t=y(e);return r.createElement("div",{className:(0,l.A)("tabs-container",h.tabList)},r.createElement(b,(0,n.A)({},e,t)),r.createElement(v,(0,n.A)({},e,t)))}function w(e){const t=(0,f.A)();return r.createElement(x,(0,n.A)({key:String(t)},e))}},75173:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>g,frontMatter:()=>i,metadata:()=>u,toc:()=>p});var n=a(58168),r=(a(96540),a(15680)),l=a(11470),o=a(19365);const i={},s="Uninstalling Detox",u={unversionedId:"guide/uninstalling",id:"guide/uninstalling",title:"Uninstalling Detox",description:"Installing and using Detox implies certain side effects: cloned devices, cache files, state files, temporary files, etc.",source:"@site/../docs/guide/uninstalling.md",sourceDirName:"guide",slug:"/guide/uninstalling",permalink:"/Detox/docs/next/guide/uninstalling",draft:!1,editUrl:"https://github.com/wix/Detox/edit/master/docs/../docs/guide/uninstalling.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Cucumber.js Integration",permalink:"/Detox/docs/next/guide/cucumber-js-integration"},next:{title:"Natural Language Testing with Detox Copilot",permalink:"/Detox/docs/next/copilot/testing-with-copilot"}},c={},p=[{value:"Detox Framework Cache",id:"detox-framework-cache",level:2},{value:"Test Session State",id:"test-session-state",level:2},{value:"Cloned Simulators (macOS)",id:"cloned-simulators-macos",level:2},{value:"Remnants of Artifacts",id:"remnants-of-artifacts",level:2},{value:"iOS",id:"ios",level:3},{value:"Android",id:"android",level:3},{value:"Detox CLI",id:"detox-cli",level:2}],d={toc:p},m="wrapper";function g(e){let{components:t,...a}=e;return(0,r.yg)(m,(0,n.A)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,r.yg)("h1",{id:"uninstalling-detox"},"Uninstalling Detox"),(0,r.yg)("p",null,"Installing and using Detox implies certain side effects: cloned devices, cache files, state files, temporary files, etc."),(0,r.yg)("p",null,"This checklist might come in handy whenever you have to make a clean uninstallation after using Detox."),(0,r.yg)("h2",{id:"detox-framework-cache"},"Detox Framework Cache"),(0,r.yg)("p",null,"Every install of Detox also triggers a ",(0,r.yg)("inlineCode",{parentName:"p"},"postinstall")," script in its ",(0,r.yg)("inlineCode",{parentName:"p"},"package.json"),", which builds (or unpacks) ",(0,r.yg)("inlineCode",{parentName:"p"},"Detox.framework")," into ",(0,r.yg)("inlineCode",{parentName:"p"},"~/Library/Detox"),"."),(0,r.yg)("p",null,"You can either delete the folder manually:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"rm -rf ~/Library/Detox\n")),(0,r.yg)("p",null,"or run:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"detox clean-framework-cache\n")),(0,r.yg)("h2",{id:"test-session-state"},"Test Session State"),(0,r.yg)("p",null,"On every test run, Detox rewrites a few temporary files in ",(0,r.yg)("inlineCode",{parentName:"p"},"DETOX_LIBRARY_ROOT_PATH"),", i.e.:"),(0,r.yg)("ol",null,(0,r.yg)("li",{parentName:"ol"},(0,r.yg)("inlineCode",{parentName:"li"},"device.registry.json"),", to tell apart the busy and the available devices for use with multiple workers."),(0,r.yg)("li",{parentName:"ol"},(0,r.yg)("inlineCode",{parentName:"li"},"global-context.json.lock"),", to detect multiple concurrent instances of Detox.")),(0,r.yg)("p",null,"The location of ",(0,r.yg)("inlineCode",{parentName:"p"},"DETOX_LIBRARY_ROOT_PATH")," may vary depending on the operating system:"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"macOS:",(0,r.yg)("ul",{parentName:"li"},(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"~/Library/Detox"),"."))),(0,r.yg)("li",{parentName:"ul"},"Linux:",(0,r.yg)("ul",{parentName:"li"},(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"$XDG_DATA_HOME/Detox"),", if ",(0,r.yg)("inlineCode",{parentName:"li"},"$XDG_DATA_HOME")," is defined;"),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"~/.local/share/Detox"),", otherwise."))),(0,r.yg)("li",{parentName:"ul"},"Windows:",(0,r.yg)("ul",{parentName:"li"},(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"%LOCALAPPDATA%\\data\\Detox"),", if ",(0,r.yg)("inlineCode",{parentName:"li"},"%LOCALAPPDATA%")," is defined;"),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"%USERPROFILE%\\Application Data\\Detox"),", otherwise.")))),(0,r.yg)("h2",{id:"cloned-simulators-macos"},"Cloned Simulators (macOS)"),(0,r.yg)("p",null,'To support the "multiple workers" feature on iOS, Detox clones simulator instances when there aren\u2019t enough available ones.\nThe autogenerated simulators have names with ',(0,r.yg)("inlineCode",{parentName:"p"},"-Detox")," suffix appended, so you can easily spot them with:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-bash"},'xcrun simctl list | grep "-Detox"\n')),(0,r.yg)("p",null,"To delete a simulator, you can use:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"xcrun simctl delete \n")),(0,r.yg)("h2",{id:"remnants-of-artifacts"},"Remnants of Artifacts"),(0,r.yg)("p",null,"Forced exits may result in leaving some temporary files behind."),(0,r.yg)("h3",{id:"ios"},"iOS"),(0,r.yg)("p",null,"To ensure there are no temporary artifact files (logs, screenshots, etc.), you can run:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"rm -rf $TMPDIR/*.detox.*\n")),(0,r.yg)("p",null,"If you wish to clean up your iOS simulators from the installed apps and other customizations, just run the erase procedure for the relevant ones:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"xcrun simctl erase \n")),(0,r.yg)("h3",{id:"android"},"Android"),(0,r.yg)("p",null,"The advice for iOS applies to the Android virtual devices as well. To wipe user files on a specific AVD, run:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"emulator -avd -wipe-data\n")),(0,r.yg)("p",null,"If you have to clean temporary Detox files from an individual booted device, look out for files like ",(0,r.yg)("inlineCode",{parentName:"p"},"11159175_0.log")," in ",(0,r.yg)("inlineCode",{parentName:"p"},"/sdcard")," folder.\nYou can try deleting them using a simple wildcard like below or use your own:"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"adb -s shell rm -rf /sdcard/*_*.*\n")),(0,r.yg)("h2",{id:"detox-cli"},"Detox CLI"),(0,r.yg)("p",null,"If you have installed the official CLI wrapper for Detox, then make sure to uninstall it as well:"),(0,r.yg)(l.A,{groupId:"npm2yarn",mdxType:"Tabs"},(0,r.yg)(o.A,{value:"npm",mdxType:"TabItem"},(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"npm uninstall detox-cli --global\n"))),(0,r.yg)(o.A,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"yarn global remove detox-cli\n"))),(0,r.yg)(o.A,{value:"pnpm",label:"pnpm",mdxType:"TabItem"},(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-bash"},"pnpm remove detox-cli --global\n")))))}g.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0d1d5dba.2ea3af64.js b/assets/js/0d1d5dba.2ea3af64.js new file mode 100644 index 0000000000..87bf04bd10 --- /dev/null +++ b/assets/js/0d1d5dba.2ea3af64.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2124],{25317:e=>{e.exports=JSON.parse('[{"label":"minor-release","permalink":"/Detox/blog/tags/minor-release","count":1},{"label":"detox-copilot","permalink":"/Detox/blog/tags/detox-copilot","count":1},{"label":"ai-integration","permalink":"/Detox/blog/tags/ai-integration","count":1},{"label":"major-release","permalink":"/Detox/blog/tags/major-release","count":1},{"label":"genymotion","permalink":"/Detox/blog/tags/genymotion","count":1}]')}}]); \ No newline at end of file diff --git a/assets/js/0d1d5dba.de224e29.js b/assets/js/0d1d5dba.de224e29.js deleted file mode 100644 index 41baa46005..0000000000 --- a/assets/js/0d1d5dba.de224e29.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2124],{25317:e=>{e.exports=JSON.parse('[{"label":"major-release","permalink":"/Detox/blog/tags/major-release","count":1},{"label":"genymotion","permalink":"/Detox/blog/tags/genymotion","count":1}]')}}]); \ No newline at end of file diff --git a/assets/js/29dcf05c.c4cc896c.js b/assets/js/29dcf05c.c4cc896c.js deleted file mode 100644 index 55be1dff13..0000000000 --- a/assets/js/29dcf05c.c4cc896c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2877],{15680:(e,t,n)=>{n.d(t,{xA:()=>g,yg:()=>d});var i=n(96540);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function r(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=i.createContext({}),p=function(e){var t=i.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},g=function(e){var t=p(e.components);return i.createElement(s.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},c=i.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,g=l(e,["components","mdxType","originalType","parentName"]),u=p(n),c=o,d=u["".concat(s,".").concat(c)]||u[c]||m[c]||a;return n?i.createElement(d,r(r({ref:t},g),{},{components:n})):i.createElement(d,r({ref:t},g))}));function d(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,r=new Array(a);r[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:o,r[1]=l;for(var p=2;p{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>r,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var i=n(58168),o=(n(96540),n(15680));const a={},r="Testing with Detox Copilot",l={unversionedId:"guide/testing-with-copilot",id:"guide/testing-with-copilot",title:"Testing with Detox Copilot",description:"In this tutorial, we'll explore how to use Detox Copilot to write end-to-end tests using natural language commands. Detox Copilot leverages large language models (LLMs) to translate human-readable instructions into Detox actions and assertions, making test writing more intuitive and accessible.",source:"@site/../docs/guide/testing-with-copilot.md",sourceDirName:"guide",slug:"/guide/testing-with-copilot",permalink:"/Detox/docs/next/guide/testing-with-copilot",draft:!1,editUrl:"https://github.com/wix/Detox/edit/master/docs/../docs/guide/testing-with-copilot.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Using TypeScript",permalink:"/Detox/docs/next/guide/typescript"},next:{title:"Testing WebViews",permalink:"/Detox/docs/next/guide/testing-webviews"}},s={},p=[{value:"Introduction",id:"introduction",level:2},{value:"Step 0: Setting Up Detox",id:"step-0-setting-up-detox",level:2},{value:"Step 1: Implementing a PromptHandler",id:"step-1-implementing-a-prompthandler",level:2},{value:"Implementing OpenAIPromptHandler",id:"implementing-openaiprompthandler",level:3},{value:"Step 2: Initializing Detox Copilot",id:"step-2-initializing-detox-copilot",level:2},{value:"Step 3: Writing Tests with Detox Copilot",id:"step-3-writing-tests-with-detox-copilot",level:2},{value:"Writing Step-by-Step Tests",id:"writing-step-by-step-tests",level:3},{value:"Best Practices for Writing Intents",id:"best-practices-for-writing-intents",level:2},{value:"Be Specific and Clear",id:"be-specific-and-clear",level:3},{value:"One Action per Step",id:"one-action-per-step",level:3},{value:"Use Exact Labels",id:"use-exact-labels",level:3},{value:"Keep Assertions Simple",id:"keep-assertions-simple",level:3},{value:"Leverage Visual Context",id:"leverage-visual-context",level:3},{value:"Avoid Ambiguity",id:"avoid-ambiguity",level:3},{value:"General Recommendations",id:"general-recommendations",level:3},{value:"FAQs",id:"faqs",level:2}],g={toc:p},u="wrapper";function m(e){let{components:t,...a}=e;return(0,o.yg)(u,(0,i.A)({},g,a,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"testing-with-detox-copilot"},"Testing with Detox Copilot"),(0,o.yg)("p",null,"In this tutorial, we'll explore how to use ",(0,o.yg)("strong",{parentName:"p"},"Detox Copilot")," to write end-to-end tests using natural language commands. Detox Copilot leverages large language models (LLMs) to translate human-readable instructions into Detox actions and assertions, making test writing more intuitive and accessible."),(0,o.yg)("admonition",{type:"note"},(0,o.yg)("p",{parentName:"admonition"},"Detox Copilot is integrated into Detox and requires no additional installation. For complete API details, refer to our ",(0,o.yg)("a",{parentName:"p",href:"/Detox/docs/next/api/copilot"},"Detox Copilot API documentation"),".")),(0,o.yg)("admonition",{title:"Work in Progress",type:"caution"},(0,o.yg)("p",{parentName:"admonition"},(0,o.yg)("strong",{parentName:"p"},"Note"),": Detox Copilot is in active development. APIs are subject to change in future releases.")),(0,o.yg)("h2",{id:"introduction"},"Introduction"),(0,o.yg)("p",null,"Detox Copilot simplifies the process of writing tests by allowing you to describe test steps in natural language.\nIt interprets these instructions and translates them into Detox commands. This guide will help you integrate Detox Copilot into your testing workflow and provide best practices for writing effective intents."),(0,o.yg)("p",null,(0,o.yg)("img",{alt:"Demo",src:n(67888).A,width:"800",height:"450"})),(0,o.yg)("h2",{id:"step-0-setting-up-detox"},"Step 0: Setting Up Detox"),(0,o.yg)("p",null,"Before you begin, ensure that your Detox environment is properly set up.\nIf you need assistance with the setup, refer to the ",(0,o.yg)("a",{parentName:"p",href:"docs/introduction/getting-started/"},"Detox Getting Started Guide"),"."),(0,o.yg)("h2",{id:"step-1-implementing-a-prompthandler"},"Step 1: Implementing a PromptHandler"),(0,o.yg)("p",null,"The ",(0,o.yg)("inlineCode",{parentName:"p"},"PromptHandler")," is a crucial component that interfaces with your LLM service.\nBelow is an example of how to implement a ",(0,o.yg)("inlineCode",{parentName:"p"},"PromptHandler")," using OpenAI's GPT-4 API."),(0,o.yg)("p",null,"You can adapt this code to work with other LLMs or services as needed."),(0,o.yg)("h3",{id:"implementing-openaiprompthandler"},"Implementing OpenAIPromptHandler"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-javascript"},"const { Configuration, OpenAIApi } = require('openai');\nconst path = require('path');\n\nclass OpenAIPromptHandler {\n constructor(apiKey) {\n const configuration = new Configuration({ apiKey });\n this.openai = new OpenAIApi(configuration);\n }\n\n async runPrompt(prompt, imagePath) {\n const messages = [\n { role: 'system', content: 'You are a test automation assistant.' },\n { role: 'user', content: prompt },\n ];\n\n // If an image is provided, \"upload\" it and include the URL in the prompt\n if (imagePath && this.isSnapshotImageSupported()) {\n try {\n const imageUrl = await this.uploadImage(imagePath);\n messages.push({\n role: 'user',\n content: `Here is an image for reference: ${imageUrl}`,\n });\n } catch (error) {\n console.error('Error uploading image:', error);\n throw new Error('Failed to upload image');\n }\n }\n\n const response = await this.openai.createChatCompletion({\n model: 'gpt-4',\n messages,\n });\n\n return response.data.choices[0].message.content;\n }\n\n async uploadImage(imagePath) {\n // Uploads the image and returns the URL\n }\n\n isSnapshotImageSupported() {\n return true; // Set to true to handle image uploads\n }\n}\n\nmodule.exports = OpenAIPromptHandler;\n")),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"Explanation"),":"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("strong",{parentName:"li"},(0,o.yg)("inlineCode",{parentName:"strong"},"runPrompt")),": Sends the prompt to the LLM and returns the response."),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("strong",{parentName:"li"},(0,o.yg)("inlineCode",{parentName:"strong"},"isSnapshotImageSupported")),": Indicates whether the LLM can handle snapshot images. If set to ",(0,o.yg)("inlineCode",{parentName:"li"},"true"),", the handler will include image URLs in the prompt and will include them when instructing Detox Copilot.")),(0,o.yg)("h2",{id:"step-2-initializing-detox-copilot"},"Step 2: Initializing Detox Copilot"),(0,o.yg)("p",null,"Initialize Detox Copilot with your ",(0,o.yg)("inlineCode",{parentName:"p"},"PromptHandler")," before running any tests.\nThis is typically done in the ",(0,o.yg)("inlineCode",{parentName:"p"},"beforeAll")," hook or a setup file."),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"Example"),":"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-javascript"},"const { copilot } = require('detox');\nconst OpenAIPromptHandler = require('./OpenAIPromptHandler');\n\nbeforeAll(() => {\n const promptHandler = new OpenAIPromptHandler('YOUR_OPENAI_API_KEY');\n copilot.init(promptHandler);\n});\n")),(0,o.yg)("h2",{id:"step-3-writing-tests-with-detox-copilot"},"Step 3: Writing Tests with Detox Copilot"),(0,o.yg)("p",null,"With Detox Copilot initialized, you can now write tests using the ",(0,o.yg)("inlineCode",{parentName:"p"},"copilot.perform")," method."),(0,o.yg)("h3",{id:"writing-step-by-step-tests"},"Writing Step-by-Step Tests"),(0,o.yg)("p",null,"Detox Copilot allows you to write tests by providing a sequence of natural language instructions. Each instruction corresponds to a single action or assertion."),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"Example"),":"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-javascript"},"it('should log in successfully', async () => {\n await copilot.perform(\n 'Launch the app',\n 'Tap on the \"Login\" button',\n 'Enter \"user@example.com\" into the \"Email\" field',\n 'Enter \"password123\" into the \"Password\" field',\n 'Tap on the \"Submit\" button',\n 'Verify that the \"Welcome\" message is displayed'\n );\n});\n")),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"Explanation"),":"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("strong",{parentName:"li"},"Step-by-Step Instructions"),": Each step is a separate string, representing a single action or assertion."),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("strong",{parentName:"li"},"Sequential Execution"),": Steps are executed in order, allowing you to describe complex interactions intuitively.")),(0,o.yg)("h2",{id:"best-practices-for-writing-intents"},"Best Practices for Writing Intents"),(0,o.yg)("p",null,"To make the most out of Detox Copilot, consider the following best practices when writing your intents:"),(0,o.yg)("h3",{id:"be-specific-and-clear"},"Be Specific and Clear"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("strong",{parentName:"li"},"Provide Clear Instructions"),": The clearer your instructions, the better Copilot can interpret them."),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("strong",{parentName:"li"},"Example"),":",(0,o.yg)("ul",{parentName:"li"},(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("strong",{parentName:"li"},"Good"),": ",(0,o.yg)("inlineCode",{parentName:"li"},"'Tap on the \"Login\" button'")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("strong",{parentName:"li"},"Better"),": ",(0,o.yg)("inlineCode",{parentName:"li"},"'Tap on the \"Login\" button located at the top right corner'"))))),(0,o.yg)("h3",{id:"one-action-per-step"},"One Action per Step"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("p",{parentName:"li"},(0,o.yg)("strong",{parentName:"p"},"Avoid Combining Multiple Actions"),": Keep each step focused on a single action or assertion.")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("p",{parentName:"li"},(0,o.yg)("strong",{parentName:"p"},"Example"),":"),(0,o.yg)("ul",{parentName:"li"},(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("strong",{parentName:"li"},"Avoid"),": ",(0,o.yg)("inlineCode",{parentName:"li"},"'Tap on the \"Login\" button and enter credentials'")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("strong",{parentName:"li"},"Prefer"),":")),(0,o.yg)("pre",{parentName:"li"},(0,o.yg)("code",{parentName:"pre",className:"language-javascript"},'\'Tap on the "Login" button\',\n\'Enter "user@example.com" into the "Email" field\'\n')))),(0,o.yg)("h3",{id:"use-exact-labels"},"Use Exact Labels"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("strong",{parentName:"li"},"Refer to UI Elements Precisely"),": Use the exact text or identifiers as they appear in the app."),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("strong",{parentName:"li"},"Example"),":",(0,o.yg)("ul",{parentName:"li"},(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("strong",{parentName:"li"},"Good"),": ",(0,o.yg)("inlineCode",{parentName:"li"},'\'Enter "password123" into the "Password" field\'')),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("strong",{parentName:"li"},"Avoid"),": ",(0,o.yg)("inlineCode",{parentName:"li"},"'Enter password into its field'"))))),(0,o.yg)("h3",{id:"keep-assertions-simple"},"Keep Assertions Simple"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("strong",{parentName:"li"},"Focus on Specific Outcomes"),": Make assertions straightforward and specific."),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("strong",{parentName:"li"},"Example"),":",(0,o.yg)("ul",{parentName:"li"},(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("strong",{parentName:"li"},"Good"),": ",(0,o.yg)("inlineCode",{parentName:"li"},"'Verify that the \"Welcome\" message is displayed'")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("strong",{parentName:"li"},"Avoid"),": ",(0,o.yg)("inlineCode",{parentName:"li"},"'Check if the welcome message appears correctly on the screen'"))))),(0,o.yg)("h3",{id:"leverage-visual-context"},"Leverage Visual Context"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("strong",{parentName:"li"},"Utilize Visual Descriptions"),": If your LLM supports image snapshots, include visual context in your intents."),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("strong",{parentName:"li"},"Example"),": ",(0,o.yg)("inlineCode",{parentName:"li"},"'Ensure the profile picture is visible at the top of the screen'"))),(0,o.yg)("h3",{id:"avoid-ambiguity"},"Avoid Ambiguity"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("strong",{parentName:"li"},"Specify Elements Precisely"),": If multiple elements could match, provide additional details."),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("strong",{parentName:"li"},"Example"),":",(0,o.yg)("ul",{parentName:"li"},(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("strong",{parentName:"li"},"Ambiguous"),": ",(0,o.yg)("inlineCode",{parentName:"li"},"'Tap on the \"Submit\" button'")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("strong",{parentName:"li"},"Specific"),": ",(0,o.yg)("inlineCode",{parentName:"li"},"'Tap on the \"Submit\" button in the registration form'"))))),(0,o.yg)("h3",{id:"general-recommendations"},"General Recommendations"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("strong",{parentName:"li"},"Flexibility"),": While it's best to provide clear instructions, Copilot is designed to interpret a variety of phrasing. Different approaches can work, and you are encouraged to experiment."),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("strong",{parentName:"li"},"Feedback Loop"),": Observe how Copilot interprets your instructions and adjust accordingly.")),(0,o.yg)("h2",{id:"faqs"},"FAQs"),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"Q"),": Do I need to install Detox Copilot separately?"),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"A"),": No, Detox Copilot is integrated into Detox and requires no additional installation."),(0,o.yg)("hr",null),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"Q"),": Which LLMs are recommended for use with Detox Copilot?"),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"A"),": We recommend using advanced models like ",(0,o.yg)("strong",{parentName:"p"},"Sonnet 3.5")," or ",(0,o.yg)("strong",{parentName:"p"},"GPT-4o")," for better performance and understanding of complex instructions."),(0,o.yg)("hr",null),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"Q"),": How can I provide feedback or contribute to Detox Copilot?"),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"A"),": Contributions are welcome! Visit the ",(0,o.yg)("a",{parentName:"p",href:"https://github.com/wix-incubator/detox-copilot"},"Detox Copilot GitHub Repository")," to open issues or pull requests if they are relevant to the core-library functionality or open a it under ",(0,o.yg)("a",{parentName:"p",href:"https://github.com/wix/Detox"},"Detox repository")," if it is related to Detox-Copilot integration or if you are not sure where the issue should be opened."),(0,o.yg)("hr",null),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"Q"),": These are heavy operations for a test (uploading images, calling an LLM). Do you optimize it in any way?"),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"A"),": Detox Copilot is designed to avoid unnecessary calls to the LLM service and optimize performance using static cache that is based on the current state of the app.\nThis minimizes the number of calls to the LLM service and reduces latency.\nHowever, you can optimize your ",(0,o.yg)("inlineCode",{parentName:"p"},"PromptHandler")," implementation to reduce latency and improve response times (e.g., by reducing the image size or implementing a server-side cache).\nWe have plans to optimize even further by introducing more advanced caching mechanisms for better performance."))}m.isMDXComponent=!0},67888:(e,t,n)=>{n.d(t,{A:()=>i});const i=n.p+"assets/images/copilot-demo-6f1e5193e3cea07de196d443153fcd3a.gif"}}]); \ No newline at end of file diff --git a/assets/js/2ad854c4.7949d56d.js b/assets/js/2ad854c4.7949d56d.js new file mode 100644 index 0000000000..f50bb9cc18 --- /dev/null +++ b/assets/js/2ad854c4.7949d56d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3650],{86049:t=>{t.exports=JSON.parse('{"permalink":"/Detox/blog/tags/detox-copilot","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"All the important updates and announcements from Detox crew, tips and tricks and everything else that you don\'t want to miss.","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/2e9ac6cb.3ea92ee9.js b/assets/js/2e9ac6cb.3ea92ee9.js new file mode 100644 index 0000000000..6e40a5dd24 --- /dev/null +++ b/assets/js/2e9ac6cb.3ea92ee9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[498],{15680:(e,t,n)=>{n.d(t,{xA:()=>c,yg:()=>u});var o=n(96540);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=o.createContext({}),s=function(e){var t=o.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=s(e.components);return o.createElement(l.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},g=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,l=e.parentName,c=p(e,["components","mdxType","originalType","parentName"]),m=s(n),g=r,u=m["".concat(l,".").concat(g)]||m[g]||d[g]||a;return n?o.createElement(u,i(i({ref:t},c),{},{components:n})):o.createElement(u,i({ref:t},c))}));function u(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,i=new Array(a);i[0]=g;var p={};for(var l in t)hasOwnProperty.call(t,l)&&(p[l]=t[l]);p.originalType=e,p[m]="string"==typeof e?e:r,i[1]=p;for(var s=2;s{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>p,toc:()=>s});var o=n(58168),r=(n(96540),n(15680));const a={},i="Detox Copilot",p={unversionedId:"api/copilot",id:"api/copilot",title:"Detox Copilot",description:"Detox Copilot is an AI-powered plugin that allows you to write Detox tests using natural language commands, powered by large language models (LLMs). It simplifies the process of writing end-to-end tests by translating human-readable instructions into Detox actions and assertions.",source:"@site/../docs/api/copilot.md",sourceDirName:"api",slug:"/api/copilot",permalink:"/Detox/docs/next/api/copilot",draft:!1,editUrl:"https://github.com/wix/Detox/edit/master/docs/../docs/api/copilot.md",tags:[],version:"current",frontMatter:{},sidebar:"apiSidebar",previous:{title:"Logger",permalink:"/Detox/docs/next/api/logger"},next:{title:"Internals API",permalink:"/Detox/docs/next/api/internals"}},l={},s=[{value:"Overview",id:"overview",level:2},{value:"Methods",id:"methods",level:2},{value:"copilot.init(promptHandler)",id:"copilotinitprompthandler",level:2},{value:"copilot.perform(...steps)",id:"copilotperformsteps",level:2},{value:"PromptHandler Interface",id:"prompthandler-interface",level:2}],c={toc:s},m="wrapper";function d(e){let{components:t,...n}=e;return(0,r.yg)(m,(0,o.A)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.yg)("h1",{id:"detox-copilot"},"Detox Copilot"),(0,r.yg)("p",null,"Detox Copilot is an AI-powered plugin that allows you to write Detox tests using natural language commands, powered by large language models (LLMs). It simplifies the process of writing end-to-end tests by translating human-readable instructions into Detox actions and assertions."),(0,r.yg)("admonition",{type:"note"},(0,r.yg)("p",{parentName:"admonition"},"Detox Copilot is based on a core library called ",(0,r.yg)("a",{parentName:"p",href:"https://github.com/wix-incubator/detox-copilot"},"detox-copilot"),", which is designed for Detox but can be extended to work with other testing frameworks.")),(0,r.yg)("admonition",{title:"Work in Progress",type:"caution"},(0,r.yg)("p",{parentName:"admonition"},"Detox Copilot is in active development, and APIs are subject to change in future releases.")),(0,r.yg)("h2",{id:"overview"},"Overview"),(0,r.yg)("p",null,"Detox Copilot exposes a simple API that integrates seamlessly with your Detox tests. It requires minimal setup and allows you to perform complex testing operations by simply describing them in natural language."),(0,r.yg)("p",null,"For a more detailed guide on integrating Detox Copilot in your tests, refer to the ",(0,r.yg)("a",{parentName:"p",href:"/Detox/docs/next/copilot/testing-with-copilot"},"Detox Copilot Guide"),"."),(0,r.yg)("h2",{id:"methods"},"Methods"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("a",{parentName:"li",href:"#copilotinitprompthandler"},(0,r.yg)("inlineCode",{parentName:"a"},"copilot.init()"))),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("a",{parentName:"li",href:"#copilotperformsteps"},(0,r.yg)("inlineCode",{parentName:"a"},"copilot.perform()")))),(0,r.yg)("h2",{id:"copilotinitprompthandler"},(0,r.yg)("inlineCode",{parentName:"h2"},"copilot.init(promptHandler)")),(0,r.yg)("p",null,"Initializes Detox Copilot with the given prompt handler. Must be called before any other Copilot methods."),(0,r.yg)("p",null,(0,r.yg)("strong",{parentName:"p"},"Parameters:")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"promptHandler")," (PromptHandler): An object implementing the ",(0,r.yg)("a",{parentName:"li",href:"#prompthandler-interface"},(0,r.yg)("inlineCode",{parentName:"a"},"PromptHandler"))," interface.")),(0,r.yg)("p",null,(0,r.yg)("strong",{parentName:"p"},"Example:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-javascript"},"const { copilot } = require('detox');\nconst OpenAIPromptHandler = require('./OpenAIPromptHandler');\n\nbeforeAll(() => {\n const promptHandler = new OpenAIPromptHandler('YOUR_OPENAI_API_KEY');\n copilot.init(promptHandler);\n});\n")),(0,r.yg)("h2",{id:"copilotperformsteps"},(0,r.yg)("inlineCode",{parentName:"h2"},"copilot.perform(...steps)")),(0,r.yg)("p",null,"Performs a testing operation or series of operations based on the given steps."),(0,r.yg)("p",null,(0,r.yg)("strong",{parentName:"p"},"Parameters:")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("inlineCode",{parentName:"li"},"steps")," (string[]): One or more natural language instructions specifying the actions or assertions to perform.")),(0,r.yg)("p",null,(0,r.yg)("strong",{parentName:"p"},"Returns:")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"A promise that resolves when all steps have been executed.")),(0,r.yg)("p",null,(0,r.yg)("strong",{parentName:"p"},"Example:")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-javascript"},"await copilot.perform(\n 'Start the application',\n 'Tap on the \"Login\" button',\n 'Enter \"user@example.com\" into the email field',\n 'Enter \"password123\" into the password field',\n 'Press the \"Submit\" button',\n 'The welcome message \"Hello, User!\" should be displayed'\n);\n")),(0,r.yg)("h2",{id:"prompthandler-interface"},(0,r.yg)("inlineCode",{parentName:"h2"},"PromptHandler")," Interface"),(0,r.yg)("p",null,"The ",(0,r.yg)("inlineCode",{parentName:"p"},"PromptHandler")," interface defines how Detox Copilot communicates with the LLM service."),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-typescript"},"interface PromptHandler {\n /**\n * Sends a prompt to the LLM service and returns the response.\n * @param prompt The prompt to send.\n * @param image Optional path to an image capturing the current UI state.\n * @returns A promise resolving to the LLM's response.\n */\n runPrompt(prompt: string, image?: string): Promise;\n\n /**\n * Indicates whether the LLM service supports snapshot images.\n * @returns A boolean value.\n */\n isSnapshotImageSupported(): boolean;\n}\n")),(0,r.yg)("p",null,"You can refer to the ",(0,r.yg)("a",{parentName:"p",href:"/Detox/docs/next/copilot/testing-with-copilot"},"Detox Copilot Guide")," for an example of implementing a ",(0,r.yg)("inlineCode",{parentName:"p"},"PromptHandler")," for OpenAI's service."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2e9ac6cb.7c4ca8aa.js b/assets/js/2e9ac6cb.7c4ca8aa.js deleted file mode 100644 index a296b8d8db..0000000000 --- a/assets/js/2e9ac6cb.7c4ca8aa.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[498],{15680:(e,t,n)=>{n.d(t,{xA:()=>c,yg:()=>u});var r=n(96540);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=r.createContext({}),s=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=s(e.components);return r.createElement(l.Provider,{value:t},e.children)},m="mdxType",g={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,c=p(e,["components","mdxType","originalType","parentName"]),m=s(n),d=o,u=m["".concat(l,".").concat(d)]||m[d]||g[d]||a;return n?r.createElement(u,i(i({ref:t},c),{},{components:n})):r.createElement(u,i({ref:t},c))}));function u(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=d;var p={};for(var l in t)hasOwnProperty.call(t,l)&&(p[l]=t[l]);p.originalType=e,p[m]="string"==typeof e?e:o,i[1]=p;for(var s=2;s{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>g,frontMatter:()=>a,metadata:()=>p,toc:()=>s});var r=n(58168),o=(n(96540),n(15680));const a={},i="Detox Copilot",p={unversionedId:"api/copilot",id:"api/copilot",title:"Detox Copilot",description:"Detox Copilot is an AI-powered plugin that allows you to write Detox tests using natural language commands, powered by large language models (LLMs). It simplifies the process of writing end-to-end tests by translating human-readable instructions into Detox actions and assertions.",source:"@site/../docs/api/copilot.md",sourceDirName:"api",slug:"/api/copilot",permalink:"/Detox/docs/next/api/copilot",draft:!1,editUrl:"https://github.com/wix/Detox/edit/master/docs/../docs/api/copilot.md",tags:[],version:"current",frontMatter:{},sidebar:"apiSidebar",previous:{title:"Logger",permalink:"/Detox/docs/next/api/logger"},next:{title:"Internals API",permalink:"/Detox/docs/next/api/internals"}},l={},s=[{value:"Overview",id:"overview",level:2},{value:"Methods",id:"methods",level:2},{value:"copilot.init(promptHandler)",id:"copilotinitprompthandler",level:2},{value:"copilot.perform(...steps)",id:"copilotperformsteps",level:2},{value:"PromptHandler Interface",id:"prompthandler-interface",level:2}],c={toc:s},m="wrapper";function g(e){let{components:t,...n}=e;return(0,o.yg)(m,(0,r.A)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"detox-copilot"},"Detox Copilot"),(0,o.yg)("p",null,"Detox Copilot is an AI-powered plugin that allows you to write Detox tests using natural language commands, powered by large language models (LLMs). It simplifies the process of writing end-to-end tests by translating human-readable instructions into Detox actions and assertions."),(0,o.yg)("admonition",{type:"note"},(0,o.yg)("p",{parentName:"admonition"},"Detox Copilot is based on a core library called ",(0,o.yg)("a",{parentName:"p",href:"https://github.com/wix-incubator/detox-copilot"},"detox-copilot"),", which is designed for Detox but can be extended to work with other testing frameworks.")),(0,o.yg)("admonition",{title:"Work in Progress",type:"caution"},(0,o.yg)("p",{parentName:"admonition"},"Detox Copilot is in active development, and APIs are subject to change in future releases.")),(0,o.yg)("h2",{id:"overview"},"Overview"),(0,o.yg)("p",null,"Detox Copilot exposes a simple API that integrates seamlessly with your Detox tests. It requires minimal setup and allows you to perform complex testing operations by simply describing them in natural language."),(0,o.yg)("p",null,"For a more detailed guide on integrating Detox Copilot in your tests, refer to the ",(0,o.yg)("a",{parentName:"p",href:"../guide/testing-with-copilot"},"Detox Copilot Guide"),"."),(0,o.yg)("h2",{id:"methods"},"Methods"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"#copilotinitprompthandler"},(0,o.yg)("inlineCode",{parentName:"a"},"copilot.init()"))),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"#copilotperformsteps"},(0,o.yg)("inlineCode",{parentName:"a"},"copilot.perform()")))),(0,o.yg)("h2",{id:"copilotinitprompthandler"},(0,o.yg)("inlineCode",{parentName:"h2"},"copilot.init(promptHandler)")),(0,o.yg)("p",null,"Initializes Detox Copilot with the given prompt handler. Must be called before any other Copilot methods."),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"Parameters:")),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("inlineCode",{parentName:"li"},"promptHandler")," (PromptHandler): An object implementing the ",(0,o.yg)("a",{parentName:"li",href:"#prompthandler-interface"},(0,o.yg)("inlineCode",{parentName:"a"},"PromptHandler"))," interface.")),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"Example:")),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-javascript"},"const { copilot } = require('detox');\nconst OpenAIPromptHandler = require('./OpenAIPromptHandler');\n\nbeforeAll(() => {\n const promptHandler = new OpenAIPromptHandler('YOUR_OPENAI_API_KEY');\n copilot.init(promptHandler);\n});\n")),(0,o.yg)("h2",{id:"copilotperformsteps"},(0,o.yg)("inlineCode",{parentName:"h2"},"copilot.perform(...steps)")),(0,o.yg)("p",null,"Performs a testing operation or series of operations based on the given steps."),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"Parameters:")),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("inlineCode",{parentName:"li"},"steps")," (string[]): One or more natural language instructions specifying the actions or assertions to perform.")),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"Returns:")),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"A promise that resolves when all steps have been executed.")),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"Example:")),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-javascript"},"await copilot.perform(\n 'Start the application',\n 'Tap on the \"Login\" button',\n 'Enter \"user@example.com\" into the email field',\n 'Enter \"password123\" into the password field',\n 'Press the \"Submit\" button',\n 'The welcome message \"Hello, User!\" should be displayed'\n);\n")),(0,o.yg)("h2",{id:"prompthandler-interface"},(0,o.yg)("inlineCode",{parentName:"h2"},"PromptHandler")," Interface"),(0,o.yg)("p",null,"The ",(0,o.yg)("inlineCode",{parentName:"p"},"PromptHandler")," interface defines how Detox Copilot communicates with the LLM service."),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-typescript"},"interface PromptHandler {\n /**\n * Sends a prompt to the LLM service and returns the response.\n * @param prompt The prompt to send.\n * @param image Optional path to an image capturing the current UI state.\n * @returns A promise resolving to the LLM's response.\n */\n runPrompt(prompt: string, image?: string): Promise;\n\n /**\n * Indicates whether the LLM service supports snapshot images.\n * @returns A boolean value.\n */\n isSnapshotImageSupported(): boolean;\n}\n")),(0,o.yg)("p",null,"You can refer to the ",(0,o.yg)("a",{parentName:"p",href:"../guide/testing-with-copilot"},"Detox Copilot Guide")," for an example of implementing a ",(0,o.yg)("inlineCode",{parentName:"p"},"PromptHandler")," for OpenAI's service."))}g.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5329dae7.c80ca4a7.js b/assets/js/5329dae7.c80ca4a7.js new file mode 100644 index 0000000000..b2ad97330a --- /dev/null +++ b/assets/js/5329dae7.c80ca4a7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1185],{15680:(e,t,n)=>{n.d(t,{xA:()=>c,yg:()=>m});var o=n(96540);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function r(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var s=o.createContext({}),p=function(e){var t=o.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},c=function(e){var t=p(e.components);return o.createElement(s.Provider,{value:t},e.children)},g="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},d=o.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),g=p(n),d=i,m=g["".concat(s,".").concat(d)]||g[d]||u[d]||a;return n?o.createElement(m,r(r({ref:t},c),{},{components:n})):o.createElement(m,r({ref:t},c))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,r=new Array(a);r[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[g]="string"==typeof e?e:i,r[1]=l;for(var p=2;p{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>r,default:()=>u,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var o=n(58168),i=(n(96540),n(15680));const a={},r="Natural Language Testing with Detox Copilot",l={unversionedId:"copilot/testing-with-copilot",id:"copilot/testing-with-copilot",title:"Natural Language Testing with Detox Copilot",description:"In this tutorial, we'll explore how to use Detox Copilot to write end-to-end tests using natural language commands. Detox Copilot leverages large language models (LLMs) to translate human-readable instructions into Detox actions and assertions, making test writing more intuitive and accessible.",source:"@site/../docs/copilot/testing-with-copilot.md",sourceDirName:"copilot",slug:"/copilot/testing-with-copilot",permalink:"/Detox/docs/next/copilot/testing-with-copilot",draft:!1,editUrl:"https://github.com/wix/Detox/edit/master/docs/../docs/copilot/testing-with-copilot.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Uninstalling Detox",permalink:"/Detox/docs/next/guide/uninstalling"},next:{title:"Detox Copilot Best Practices",permalink:"/Detox/docs/next/copilot/best-practices"}},s={},p=[{value:"Introduction",id:"introduction",level:2},{value:"Setting Up Detox",id:"setting-up-detox",level:2},{value:"Implementing a PromptHandler",id:"implementing-a-prompthandler",level:2},{value:"Example of a PromptHandler for OpenAI's GPT-4",id:"example-of-a-prompthandler-for-openais-gpt-4",level:3},{value:"Initializing Detox Copilot",id:"initializing-detox-copilot",level:2},{value:"Writing Tests with Detox Copilot",id:"writing-tests-with-detox-copilot",level:2},{value:"Writing Step-by-Step Tests",id:"writing-step-by-step-tests",level:3},{value:"Hybrid Tests with Copilot and Detox APIs",id:"hybrid-tests-with-copilot-and-detox-apis",level:3},{value:"Locating Elements with Copilot",id:"locating-elements-with-copilot",level:3},{value:"Contributing to Detox Copilot",id:"contributing-to-detox-copilot",level:2}],c={toc:p},g="wrapper";function u(e){let{components:t,...a}=e;return(0,i.yg)(g,(0,o.A)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,i.yg)("h1",{id:"natural-language-testing-with-detox-copilot"},"Natural Language Testing with Detox Copilot"),(0,i.yg)("p",null,"In this tutorial, we'll explore how to use ",(0,i.yg)("strong",{parentName:"p"},"Detox Copilot")," to write end-to-end tests using natural language commands. Detox Copilot leverages large language models (LLMs) to translate human-readable instructions into Detox actions and assertions, making test writing more intuitive and accessible."),(0,i.yg)("admonition",{type:"note"},(0,i.yg)("p",{parentName:"admonition"},"Detox Copilot is integrated into Detox and requires no additional installation. For complete API details, refer to our ",(0,i.yg)("a",{parentName:"p",href:"/Detox/docs/next/api/copilot"},"Detox Copilot API documentation"),".")),(0,i.yg)("admonition",{title:"Work in Progress",type:"caution"},(0,i.yg)("p",{parentName:"admonition"},(0,i.yg)("strong",{parentName:"p"},"Note"),": Detox Copilot is in active development. APIs are subject to change in future releases.")),(0,i.yg)("h2",{id:"introduction"},"Introduction"),(0,i.yg)("p",null,"Detox Copilot simplifies the process of writing tests by allowing you to describe test steps in natural language.\nIt interprets these instructions and translates them into Detox commands. This guide will help you integrate Detox Copilot into your testing workflow and provide best practices for writing effective intents."),(0,i.yg)("p",null,(0,i.yg)("img",{alt:"Demo",src:n(67888).A,width:"800",height:"450"})),(0,i.yg)("h2",{id:"setting-up-detox"},"Setting Up Detox"),(0,i.yg)("p",null,"Before you begin, ensure that your Detox environment is properly set up.\nIf you need assistance with the setup, refer to the ",(0,i.yg)("a",{parentName:"p",href:"docs/introduction/getting-started/"},"Detox Getting Started Guide"),"."),(0,i.yg)("h2",{id:"implementing-a-prompthandler"},"Implementing a ",(0,i.yg)("inlineCode",{parentName:"h2"},"PromptHandler")),(0,i.yg)("p",null,"The ",(0,i.yg)("inlineCode",{parentName:"p"},"PromptHandler")," is a crucial component that interfaces with your LLM service.\nBelow is an example of how to implement a ",(0,i.yg)("inlineCode",{parentName:"p"},"PromptHandler")," using OpenAI's GPT-4 API."),(0,i.yg)("p",null,"You can adapt this code to work with other LLMs or services as needed. You may also find pre-built ",(0,i.yg)("inlineCode",{parentName:"p"},"PromptHandler")," implementations for popular LLMs in the ",(0,i.yg)("a",{parentName:"p",href:"https://github.com/wix-incubator/detox-copilot"},"detox-copilot repository on GitHub"),"."),(0,i.yg)("admonition",{title:"Open for Contributions",type:"note"},(0,i.yg)("p",{parentName:"admonition"},"If you have implemented a ",(0,i.yg)("inlineCode",{parentName:"p"},"PromptHandler")," for a specific LLM or service, consider contributing it to the Detox Copilot repository to help the community.")),(0,i.yg)("h3",{id:"example-of-a-prompthandler-for-openais-gpt-4"},"Example of a ",(0,i.yg)("inlineCode",{parentName:"h3"},"PromptHandler")," for OpenAI's GPT-4"),(0,i.yg)("pre",null,(0,i.yg)("code",{parentName:"pre",className:"language-javascript"},"const { Configuration, OpenAIApi } = require('openai');\nconst path = require('path');\n\nclass OpenAIPromptHandler {\n constructor(apiKey) {\n const configuration = new Configuration({ apiKey });\n this.openai = new OpenAIApi(configuration);\n }\n\n async runPrompt(prompt, imagePath) {\n const messages = [\n { role: 'system', content: 'You are a test automation assistant.' },\n { role: 'user', content: prompt },\n ];\n\n // If an image is provided, \"upload\" it and include the URL in the prompt\n if (imagePath && this.isSnapshotImageSupported()) {\n try {\n const imageUrl = await this.uploadImage(imagePath);\n messages.push({\n role: 'user',\n content: `Here is an image for reference: ${imageUrl}`,\n });\n } catch (error) {\n console.error('Error uploading image:', error);\n throw new Error('Failed to upload image');\n }\n }\n\n const response = await this.openai.createChatCompletion({\n model: 'gpt-4',\n messages,\n });\n\n return response.data.choices[0].message.content;\n }\n\n async uploadImage(imagePath) {\n // Uploads the image and returns the URL\n }\n\n isSnapshotImageSupported() {\n return true; // Set to true to handle image uploads\n }\n}\n\nmodule.exports = OpenAIPromptHandler;\n")),(0,i.yg)("p",null,(0,i.yg)("strong",{parentName:"p"},"Explanation"),":"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("strong",{parentName:"li"},(0,i.yg)("inlineCode",{parentName:"strong"},"runPrompt")),": Sends the prompt to the LLM and returns the response."),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("strong",{parentName:"li"},(0,i.yg)("inlineCode",{parentName:"strong"},"isSnapshotImageSupported")),": Indicates whether the LLM can handle snapshot images. If set to ",(0,i.yg)("inlineCode",{parentName:"li"},"true"),", the handler will include image URLs in the prompt and will include them when instructing Detox Copilot.")),(0,i.yg)("h2",{id:"initializing-detox-copilot"},"Initializing Detox Copilot"),(0,i.yg)("p",null,"Initialize Detox Copilot with your ",(0,i.yg)("inlineCode",{parentName:"p"},"PromptHandler")," before running any tests.\nThis is typically done in the ",(0,i.yg)("inlineCode",{parentName:"p"},"beforeAll")," hook or a setup file."),(0,i.yg)("p",null,(0,i.yg)("strong",{parentName:"p"},"Example"),":"),(0,i.yg)("pre",null,(0,i.yg)("code",{parentName:"pre",className:"language-javascript"},"const {copilot} = require('detox/index');\nconst OpenAIPromptHandler = require('./OpenAIPromptHandler');\n\nbeforeAll(() => {\n const promptHandler = new OpenAIPromptHandler('YOUR_OPENAI_API_KEY');\n copilot.init(promptHandler);\n});\n")),(0,i.yg)("h2",{id:"writing-tests-with-detox-copilot"},"Writing Tests with Detox Copilot"),(0,i.yg)("p",null,"With Detox Copilot initialized, you can now write tests using the ",(0,i.yg)("inlineCode",{parentName:"p"},"copilot.perform")," method."),(0,i.yg)("h3",{id:"writing-step-by-step-tests"},"Writing Step-by-Step Tests"),(0,i.yg)("p",null,"Detox Copilot allows you to write tests by providing a sequence of natural language instructions. Each instruction corresponds to a single action or assertion."),(0,i.yg)("pre",null,(0,i.yg)("code",{parentName:"pre",className:"language-javascript"},"it('should verify element sizes and button states', async () => {\n await copilot.perform(\n 'Launch the app with notification permissions enabled',\n 'Navigate to the \"Settings\" page',\n 'Verify that the \"Save\" button is disabled',\n 'Locate the profile picture element',\n 'Verify that the profile picture size is 100 x 100 pixels and that the image is available and rendered',\n 'Tap on the \"Edit Profile\" button',\n 'Verify that the \"Save\" button is now enabled',\n 'Verify that the \"Username\" field text is bold'\n );\n});\n")),(0,i.yg)("p",null,"In the example above, Copilot can perform checks that go beyond traditional UI testing, such as verifying element sizes, button states (enabled/disabled), or text styles (e.g., bold). This is thanks to the combination of Detox code-generation and multimodal LLMs that can analyze the snapshots."),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("strong",{parentName:"li"},"Step-by-Step Instructions"),": Each step is a separate string, representing a single action or assertion."),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("strong",{parentName:"li"},"Sequential Execution"),": Steps are executed in order, allowing you to describe complex interactions intuitively.")),(0,i.yg)("h3",{id:"hybrid-tests-with-copilot-and-detox-apis"},"Hybrid Tests with Copilot and Detox APIs"),(0,i.yg)("p",null,"You can also combine Copilot commands with traditional Detox APIs for more control."),(0,i.yg)("pre",null,(0,i.yg)("code",{parentName:"pre",className:"language-javascript"},"it('should add an item to the cart', async () => {\n await copilot.perform(\n 'Launch the app',\n 'Navigate to the \"Products\" page',\n 'Tap on the \"Add to Cart\" button for the first product'\n );\n\n const cartBadge = element(by.id('cart-badge'));\n await expect(cartBadge).toHaveText('1');\n\n await copilot.perform(\n 'Navigate to the \"Cart\" page',\n 'Verify that the product is listed in the cart'\n );\n});\n")),(0,i.yg)("h3",{id:"locating-elements-with-copilot"},"Locating Elements with Copilot"),(0,i.yg)("p",null,"You can also use Copilot to retrieve values, locate elements, or perform advanced checks such as verifying element sizes or button states."),(0,i.yg)("pre",null,(0,i.yg)("code",{parentName:"pre",className:"language-javascript"},"it('should display the correct page title', async () => {\n const pageTitleElement = await copilot.perform(\n 'Launch the app',\n 'Navigate to the \"Profile\" page',\n 'Locate the page title element'\n );\n\n await expect(pageTitleElement).toHaveText('Profile');\n});\n")),(0,i.yg)("h2",{id:"contributing-to-detox-copilot"},"Contributing to Detox Copilot"),(0,i.yg)("p",null,"Contributions are welcome!\nVisit the ",(0,i.yg)("a",{parentName:"p",href:"https://github.com/wix-incubator/detox-copilot"},"Detox Copilot GitHub Repository")," to open issues or pull requests if they are relevant to the core-library functionality or open a it under ",(0,i.yg)("a",{parentName:"p",href:"https://github.com/wix/Detox"},"Detox repository")," if it is related to Detox-Copilot integration or if you are not sure where the issue should be opened."))}u.isMDXComponent=!0},67888:(e,t,n)=>{n.d(t,{A:()=>o});const o=n.p+"assets/images/copilot-demo-6f1e5193e3cea07de196d443153fcd3a.gif"}}]); \ No newline at end of file diff --git a/assets/js/5fc994c2.19caecdb.js b/assets/js/5fc994c2.19caecdb.js new file mode 100644 index 0000000000..3b615e65d1 --- /dev/null +++ b/assets/js/5fc994c2.19caecdb.js @@ -0,0 +1 @@ +(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1874],{80919:(M,A,N)=>{"use strict";N.d(A,{A:()=>y});var I=N(96540);const D="banner_SLir",g="link_SNdm",j="uaFlag_wtbk",z="hashtag_KSDo";var T=N(75489);const y=M=>I.createElement("div",{className:D},I.createElement(T.A,{to:"https://stand-with-ukraine.pp.ua",className:g},I.createElement("span",{className:j})," This project is created with substantial contributions from our Ukrainian colleagues."," ",I.createElement("span",{className:z},"#StandWithUkraine")))},22515:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>d});var I=N(96540),D=N(5260),g=N(97173),j=N(80919),z=N(20053),T=N(75489);const y={heroBanner:"heroBanner_Yl3D",button:"button_LbLB","button--secondary":"button--secondary_kWrE"};function u(){return I.createElement("section",{className:(0,z.A)("hero hero--primary",y.heroBanner)},I.createElement("div",{className:"container"},I.createElement("h1",{className:"hero__title"},"Users Showcase"),I.createElement("p",{className:"hero__subtitle"},"Check out who is using Detox to Gray box test their React Native Apps"),I.createElement("a",{href:"https://forms.gle/C1BWzd8k5LhogDtM7",target:"_blank",className:y.button},"Join the Showcase!")))}var L=N(58168);const i="card_hv2w",c="title_QZpZ",O="image_IX72",E="storeButton_Omkx";const x=function(M){let{className:A,title:D,titleFontSize:g,image:j,linkGoogle:y,linkApple:u,linkGitHub:L,linkWebsite:x}=M;return I.createElement("li",{className:(0,z.A)(A,i)},I.createElement("img",{src:N(35170)(`./${j}`).default,className:O}),I.createElement("span",{className:c,style:{fontSize:g}},D),I.createElement("div",null,y&&I.createElement(T.A,{className:E,href:y},"Google Play"),u&&I.createElement(T.A,{className:E,href:u},"App Store"),L&&I.createElement(T.A,{className:E,href:L},"GitHub"),x&&I.createElement(T.A,{className:E,href:x},"Website")))},C=JSON.parse('[{"title":"Wix Spaces","image":"img/showcase/wix-spaces.webp","linkGoogle":"https://play.google.com/store/apps/details?id=com.wix.android","linkApple":"https://apps.apple.com/us/app/spaces-follow-businesses/id1099748482","shouldStayOnTop":true},{"title":"Wix Owner","image":"img/showcase/wix-owner.webp","linkGoogle":"https://play.google.com/store/apps/details?id=com.wix.admin","linkApple":"https://apps.apple.com/us/app/wix-owner-website-builder/id1545924344","shouldStayOnTop":true},{"title":"Fit by Wix","image":"img/showcase/wix-fit.webp","linkGoogle":"https://play.google.com/store/apps/details?id=com.wix.fitness","linkApple":"https://apps.apple.com/us/app/fit-by-wix/id1552621043","shouldStayOnTop":true},{"title":"Dine by Wix","image":"img/showcase/wix-dine.webp","linkGoogle":"https://play.google.com/store/apps/details?id=com.wix.restaurants","linkApple":"https://apps.apple.com/us/app/dine-by-wix/id1561524113","shouldStayOnTop":true},{"title":"Hudl","image":"img/showcase/hudl.webp","linkGoogle":"https://play.google.com/store/apps/details?id=com.hudl.hudroid","linkApple":"https://apps.apple.com/us/app/hudl/id412223222"},{"title":"Valora","image":"img/showcase/valora.webp","linkGoogle":"https://play.google.com/store/apps/details?id=co.clabs.valora","linkApple":"https://apps.apple.com/us/app/valora-crypto-wallet/id1520414263"},{"title":"Rocket Chat","image":"img/showcase/rocket-chat.webp","linkGoogle":"https://play.google.com/store/apps/details?id=chat.rocket.android","linkApple":"https://apps.apple.com/us/app/rocket-chat/id1148741252"},{"title":"WealthSimple","image":"img/showcase/wealthsimple.png","linkGoogle":"https://play.google.com/store/apps/details?id=com.wealthsimple.trade","linkApple":"https://apps.apple.com/us/app/wealthsimple-invest/id948087968"},{"title":"Pitch","image":"img/showcase/pitch.webp","linkGoogle":"https://play.google.com/store/apps/details?id=com.pitch.android&gl=IL","linkApple":"https://apps.apple.com/us/app/pitch-collaborate-on-decks/id1551335606?platform=iphone"},{"title":"RN DateTimePicker","titleFontSize":"1.5rem","image":"img/showcase/rn-datetimepicker.png","linkGitHub":"https://github.com/react-native-datetimepicker/datetimepicker"},{"title":"Maiia","image":"img/showcase/maiia.webp","linkGoogle":"https://play.google.com/store/apps/details?id=com.cegedim.maiia.patient","linkApple":"https://apps.apple.com/fr/app/maiia-t%C3%A9l%C3%A9consultation-rdv/id1489590732?agc_click_id=596983166549379072"},{"title":"Noona","image":"img/showcase/noona.webp","linkGoogle":"https://play.google.com/store/apps/details?id=com.timatorgmobile&gl=IL","linkApple":"https://apps.apple.com/is/app/noona-book-anything/id1448498295"},{"title":"Omnon Notes","image":"img/showcase/omnon.webp","linkGoogle":"https://play.google.com/store/apps/details?id=com.nieratechinc.omnomnotes&pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1","linkApple":"https://apps.apple.com/us/app/omnom-notes/id1505867777?ls=1"},{"title":"Bolt Food","image":"img/showcase/bolt-food.webp","linkGoogle":"https://play.google.com/store/apps/details?id=com.bolt.deliveryclient","linkApple":"https://apps.apple.com/us/app/bolt-food/id1451492388"},{"title":"Next","image":"img/showcase/next.jpg","linkGoogle":"https://play.google.com/store/apps/details?id=com.nextinsurance","linkApple":"https://apps.apple.com/us/app/next-insurance/id1580721755"},{"title":"PlayerData","image":"img/showcase/player-data.webp","linkGoogle":"https://play.google.com/store/apps/details?id=uk.co.playerdata.mobile","linkApple":"https://apps.apple.com/gb/app/playerdata-insight/id1462268462"},{"title":"Expo","image":"img/showcase/expo.png","linkWebsite":"https://expo.dev/"},{"title":"Currenxie Global Account","titleFontSize":"1.3rem","image":"img/showcase/currenxie.webp","linkGoogle":"https://play.google.com/store/apps/details?id=com.currenxiemobilereactnative","linkApple":"https://apps.apple.com/us/app/currenxie-global-account/id1550022183"},{"title":"Mercari: Your Marketplace","titleFontSize":"1.3rem","image":"img/showcase/mercari.webp","linkGoogle":"https://play.google.com/store/apps/details?id=com.mercariapp.mercari","linkApple":"https://apps.apple.com/us/app/mercari-your-marketplace/id896130944"}]'),Q="container_M9eJ",S="list_k1OC",k="spinner_LNMg";var w=N(2543),U=N.n(w),Y=N(94098);const a=M=>{const A=U().partition(M,"shouldStayOnTop");return A[0].concat(U().shuffle(A[1]))},e=M=>I.createElement(x,(0,L.A)({key:M.title},M)),t=M=>I.createElement("section",{className:(0,z.A)("container",Q)},I.createElement("ul",{className:(0,z.A)("col","col--12",S)},M)),s=()=>I.createElement(Y.pf,{height:"60",width:"60",color:"#dddddd",ariaLabel:"loading",radius:"2",wrapperClass:k,visible:!0}),l=()=>{const[M,A]=(0,I.useState)([]);return(0,I.useEffect)((()=>{const M="disabled"!==new URLSearchParams(window.location.search).get("shuffle")?a(C):C;A(M.map(e))}),[]),M.length>0?t(M):s()};function d(){return I.createElement(I.Fragment,null,I.createElement(D.A,null,I.createElement("title",null,"Showcase | Detox")),I.createElement(j.A,null),I.createElement(g.A,null,I.createElement("main",null,I.createElement(u,null),I.createElement(l,null))))}},10702:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I=N.p+"assets/images/copilot-demo-5c8641f24001c1d6e3effd175dc8ec2b.gif"},31013:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I=N.p+"assets/images/v20-logger-options-be0263e8b33e617b2a4ef55861d45e4a.png"},46156:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I=N.p+"assets/images/v20-perfetto-example-171220190ff552d655a9a0712e2c04ed.png"},80036:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I=N.p+"assets/images/cover-495e05dd1ea1caeb48d25625ed4ce1a3.jpeg"},3716:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I=N.p+"assets/images/detox-9ab89f3d9933d5d3c6ce2a821b71ab7e.png"},32532:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I=N.p+"assets/images/favicon-7a052e9f28693d126454ffdefb081bc1.ico"},62714:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I=N.p+"assets/images/hero-image-e03755beb56b4e1da191df104226f8bb.webp"},4693:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I=N.p+"assets/images/logo-9b887e6f40378602ea70cf8a0dcc4879.png"},3617:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/webp;base64,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"},45480:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/webp;base64,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"},29268:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I=N.p+"assets/images/expo-6c0bfc1deb0aa9c589e72935b3c59298.png"},3354:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/webp;base64,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"},9940:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/webp;base64,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"},58686:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/webp;base64,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"},76187:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/jpeg;base64,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ysBtZuiQx006bP7iB5iPyJWA2s3RIY6adNr9xA8tf4PxJwG1m6JDHTTptKaV9+B+DCm1ihSZGA2s3RIZ6adNvvLY8SfVzEjAbXStpCjzTFXZyCKuzkEVdnIIq7OQRV2cgirs5BFXayCKAKBt0GKu1kEVdnIIq7OQRV2cgirs5BFXZyCKuzkEUoaQk8k/0af/xAApEAABAgYBAwQDAQEAAAAAAAABMfAAETBBUcFAICFhcYGx0RCRoZDx/9oACAEBAAE/If8ADL1jxv4QMPjcPjcPjcPjcPjcNjcNTcGI+E5CKXWVjATJJkAIbm4fG4fG4fG4fG4fG4bG4u3aQieVeiBWZTIuILXOYH11M+VBdicq9IF7E75+up3yoLsTlXpgXH9HB9+l3yoLsTlXpg7t24IPNJiZHQ75UF2Jyr1ASCe2My+b7fvod8qC7E5V6gCgCpkLGB7kA7K35O+VBdicq9UBQGsPjPt9wQAEBB7giBDPlQXYnKvWBYWzMn2Pb49I8wz5UF2Jyr1gG5ETKLcJT1BDPlQXYnKvXAh08pj2sNqHfKguxOVfgA8gDGx2Ov1QXYnKvwAFUwIfkESNBdicq/IAuxOVeiA7IxSB74PcV12Jyr0QfAtRfFddicq9EEhCWhE8A/xcj2+qy7E5V6IGjCJWg9ogboWQYNVdicq9EDRhFoTFj4QdfqquxOVeiBow/ErQyDIgkpkvUVC7E5V6IGjD8zQP9XI9/qD2MjTXYnKvRA0YdFwkz5prsTlXogaMOibykDC1Z9jhY0l2Jyr0QNGHSpUcxId7w3/2kuxOVeiBow6kknmJDtebVFdicq9EDRh1WIyHoGJmISIoLsTlXogbMOm34tRZCB7nt8elBdicr1jzv4RMPjUPjUPjUPjUPjUNjUNzUCYwBIACQA6yBAAg9iDDc1DY1D41D41D41D41DY1Fm7TED/hp//aAAwDAQACAAMAAAAQ88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888g999q888o999N888888888888rCCCSx88iCCCr888888888888rBBBBwu8ABBBr888888888888rBBBBBC8ABBBr888888888888rBBBBBDRABBBr888888888888rBBBBBB2BBBBr888888888888rBBBBBBBqBBBr888888888888rBBBABBBBBBBr888888888888rBBBSKBBBBBBr888888888888rBBBBUBBBBBBr888888888888rBBBBBHBBBBBr888888888888rBBBB8SIBBBBr888888888888rBBBB88DBBBBr888888888888rCCCH88CJCCCr888888888888I999U888p999x88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888//EACcRAAECAwgDAQEBAAAAAAAAAAEAESBRsSEwMWFx0fDxEEGBwXDh/9oACAEDAQE/EP4GUcE5B11R2XVHZdUdkbAAMjAHcp0BK6o7LqjsuqOyfABzsvRc9VQmSTJJkkANwDETBRuWlaUx/mHkQXuGTJJkkySBvhe4+qohAcD7/wBD6joDEeOZlBQXuPqqIrFrT4M/vjmZQUF7j6qiIS7gY8nJeszAzHormZQUF7j6qiOw32jMexsgbkwgoL3H1VEZtVgyWxItb8e2CgvcfVUQMdrigvcfVUQSNWhMNaEcdwOOTHuOgvcfVUQcjJWsW3wZfax0F7j6qiDkZI/uEJk/X+D9ioL3H1VEHIy8ArbgCYP6MQjZOBwZgw0F7j6qiDkZeXw/n+h+iGgvTY9VQmTTJpk0QLHDeTJMRwcwgFyBIjH4UyaZNMmif4XpRwDkWXdHdd0d13R3QdinUkwOYKHkSF3R3XdHdd0d0+ATnb/BP//EACYRAAEBBwQCAwEAAAAAAAAAAAEAESAwMXGRwSFhobEQQVFw0YH/2gAIAQIBAT8Q+gxLSYttcLbXC21wgYwBdybgFtrhba4W2uEIaTYsmoTSmlNKEiMIQV7yNfJ2sppTSmld5xFk1Dpm5m0P7/EAGjxwMudpxFk1D2s+olTxwMudpxFk1DwsXUID9nB+FwMudpxFk1D+v+A/K42XO04iyaiAMpwZX4c7TiLJqHGQO04iyahwX7AsWzRtND/acRZNQ5w8rSPUTo/2nEWTUOcPKAAwomlNqPz+PdpxFk1DnDz4Ijn6qjoDCHe04iyahzh58+hr+u9pxFk1CYUwphQW8+SATQUUHL1RMKYUwrvOIolgNW2sFtrBbawUnAOScCttYLbWC21ghDAZ9Cf/xAAmEAEAAQMFAAMAAgMBAAAAAAABEQAhUTAxQEHwIGFxgZGQobHh/9oACAEBAAE/EP8AABMUA91apKkqSpKkrfqrY+d8UC1apKkqSpKkzUB3UmOSQ0dloLHzsws/MIECBAkQirkrJA0kEwLaUv8AfzRTA8BdVdikNx+cCBAgQJEsX9s+O4GYqcFuU9/DoMxu1bNZPpJPrcvTjTp4kyo7GR+xqetW57Gadckp7+HRmo0+YXYA/AB3cyWtt9U57Gadckp7+HRLMlGF2Aoj/wAIvtcbRFTW+mc9jNOuSU9/DpDc7A7Uh1ewn2FBjMHsJH+qNM57Gadckp7+HT3sFCbbvybja/2CrpHWmc9jNOuSU9/DplgW1CDIjka7AqIC3iekhN94mR0znsZp1ySnv4dRtVmcwStE3d2zZBvR83EJEdkaub6Nz2M065JT38OrLzrxT2399L/Qijf/AK0bnsZp1ySnv4dU6jSZOnI7J2KU24EFwlu/n4SI96Nz2M065JT38OtGwAiDZXNjp2sy7NE57Gadckp7+HXvxmqEzzIpZfyWXQ9jNOuSU9/DrvfgbeWBnIv/AHfQ9jNOuSU9/Dx/YzTrklPfw6BdkCCFAT8RE+nX9jNOuSU9/DoXgRgDO4ftz+LLYNf2M065JT38OgAIRNHupWcmeVhO69p+7K3db2M065JT38OjogGF0oGMLHTKNmy9xTKAjuDCP8mr7Gadckp7+HR0Zdd1KXewn8h/0v8ATd1fYzTrklPfw6OjagaIjshCf1SoXBIrrC/ZCNi49RqexmnXJKe/h0dG9bUZGyPISjdegfVy6CgoCIwj1p+xmnXJKe/h09DUVHgkiMkYgv6Mtw0/YzTrklPfw6egzipllHBJhJ2RhHpCiVegwLs/Sf1tuaXsZp1ySnv4dXRv8AA7ORS437AnSexmnXJKe/h1dDvW6JBh+gbHZtaQ0XsZp1ySnv4dXQ7US4Elwls/j9kkndLFZcf7MiXHsR0PYzTrlPfw6viLGlvaoyZMUvTb32tuuxoPYzTrkkFHbaAx8bEpPzCBAgQJEA2GoYmQgAgANgOvmVNkCRHcSpG6/ORAgQIEiWL+2fPUhMVGG3JiaEOqtUFQVBUFWpVq+fnc7qUq1QVBUFQVBipHqoM/4Af/2Q=="},70370:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/webp;base64,UklGRgQFAABXRUJQVlA4TPgEAAAv78A7ALXQorbteFx9te0mo/hPum3zyLZt27Zt2zyqbdu2bTtvpu+3XQ2eNX6Lt24hSJIUtpW0c7B7IFtCiaP/ExDxSv+v9P9K//9TMeyQ6TrOsIIij5F7V7uoVr/Mzwgwj7tTmGfWiwzRGI0W1dGM0ggNUl0+qBvKCK7FuerrpjFP5OdokmrpukLVxTfUht6ivbil4Anbfic2VLvpcCNsnvlyqCcTI6rvFgJhmbj6qPkLbZiomcSEtpY5nrBMfAawb79MC6YSA9qXcndiWLaoP8Vv1OivGS962oek5QnXRGQndktt6Gkv5f8Lmm8ifuPWMV3ktCbgnEihZ/1wyOljFDisk/jGYJFbF78CYZ0kpspnnKjpL4B3UnGfN6dDbYYSVsC8E3wCNf0ZMM8JeoraBLgn1dYVg5peMuKaeYLWUKsFuLfjwkFtMOwTKDGFY+6Z532onTMTm3t5ri+1p6vsh3uCURD7FPPhXyuI/SCwz9Q3EPse/lXcDw3bSshFw7Y8OW5a1/FmW9ihBJPp2Jp8yf8CKPwfWIEGgNKfoK0n5GwcmvdUk36aoF1paZvH0YVfeL6qXCj1sZoU4EN6M1u61LPUXs+Dog+l48yrsAsefMM06XIcp+cLrkUmMecNVvmDpytdl/NQLiusI5KQSwanUst9m6FR/K6wk8jFg1FZx8yRaFTbAk8so8T3nDFFGuUBSs2wiqrr5DlJGvXuIGiL2LR7hkoJtgJhW0MGmklJflawBvM8U0pzts4dcW0JAQczSUS0i5BhB/iulOw9VWFbQWbRMxU63YUMGyh8Xi0lfN5IaBtATyj9BizAMZTyYOCEfxX2Y0VKD7Tf/EM9aN03Ki8L6AitP4AFDIFWS9nAHNHqgA0o7Y6yrk0r/fePs0sGsR/gnyenTWJvUPiwL69GiN00XM2+dcWf8dDaqwNmX9joLlJTMIqYfYJfIdVaNhDXl05Sb1D4sYB1hd8homTk2AIE30GoBYjYBrw5ck6Bzvkjvq1AkE6mI8iwg0CqXeNEZLaOmUkRO5ACZyuRz4HYgqAWJLoAx/aQgk4QGCpf54k9iD/op6iN5fhZbYlNSF6hNyVKo3WsK2yxC8lDA6LSBfNzdcS2IcFg23Qtv88KO4VRHUVFMsxT/q7NcurIoRNhR8yp1pARScXhszaztUwz1IqLJjwtK3pqOYREvAFer+aMV/oSZmqS2vEeno24lhV/ciYScuEDnDwe5U0+4rP6qN7iqbpgAOZNFQ4mbyLixJOKu9DJNtvcBU+5KzGOhYnJHkP/7GiLdXXFuoZjXYqw+TdXxE5xUvg3QcR+BPzrDbGuWEDTIqZFfoGw70eo/QS4t/bESW0dUpgnmCJi+gFgXyOojcO7/GGeu68c1LQmYF4G+kJN765NvJMKO4/cZB3suOadE/SAmg4X1rJO4nL2mCNqOgRzVV6sE6PPi5yO57yCY86loB3kdAYfFipcGXwTX7zdB3Kq3bmtUPCEzDZJTLm7L/RUu+l1tgJlL795Jp4gJwZUZ6k9v+gZ9g8SmmWyE39ULCx2tE6f8c0ycWx0Z40mRrS/TDthmUiZy9T3TFFszNUh0x+myQ4UfzePUCyMIXMH10SCBh6oXxnAeOXSmqVnqtgdMedTKi9gn1xTj9TT9Xq9DtWsV+uMMq9wP+xA4rriLnsVeeiW+Ca1rPT/Sv+v9P8/FAE="},43864:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I=N.p+"assets/images/omnon-c51ca00f1728cde8a0c855328f2a7d40.webp"},80141:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/webp;base64,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"},86303:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/webp;base64,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"},30080:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I=N.p+"assets/images/react-native-75ca5141bd8c3c41994b61abc22ebf62.webp"},80754:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/png;base64,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"},50642:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/webp;base64,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"},90052:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I=N.p+"assets/images/showcase-illustration-edbfbcb3f254c32f1822014b44f3e0d0.png"},79792:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/webp;base64,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"},33341:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I=N.p+"assets/images/wealthsimple-9ccf6cb193b8e0dd1dd0b0751f1a5151.png"},17404:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/webp;base64,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"},43017:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/webp;base64,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"},85805:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/webp;base64,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"},813:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/webp;base64,UklGRroCAABXRUJQVlA4TK0CAAAvP8APAI8GMZIkR0rdu46DWKPZTjSY4KBtJEnKDIzjj+0Q/DNdlfmff7VpGzB4dcodPKkAkICkzW3xdiErSQJWFpRBkoCEgMIAVIgyEQBZORcyuBbX4lyIQpRJooCEkIQQMqgkACTX5hwU8vV7UiFfbxdAcgYgkElCkgRsABXSZpcTErCgkA0KILuAcyGKkgDDREkSQCoLCRGIAIBQOYcN58sOk4aJ0EHZ0IsjgpAkSpLcZCGpCAn4PwcAAIPBlwcODAZg8ApvMDjwAK9w/+TuAYD8bdvOr7mz7XnZdvOa7WW7Ztv2noyP+nw/zm5m8/ZffXZ8f+44Ivo/ATSvYCvXz3dYEzd6sqJZt1gPd8sDAApka2kbcsSBMwWuuMcLvaLMEREnyQIRtQqypZeoW5TFdiJWkgVzuLOI+CTJD45Kl6r4gpVnJDIublrVMEC9YzVrdrG8YNmfW6B3SHc2rm4cMYV5CmQdG5M4IxQLABwZTIGdDTYoYjAA3LwCOCFgqhb2nlium0FSGQC7MmXcFTu+FCB8+EL191/uXh8isfX9uaWsi8uT34m4vxA/50pbeFMY0ahLBK49R/BMj4yQt/WRfoHOQSMImm3lx8vxJy8NLhPZcIi/oZKZ/Q8NRphdgcM12C3xlxFfgPCDxUi9igS9VVLyERYfv7mLmz60DLjImcC3IJGZEv1xNw/p7yYW49QifPu8FkV/4TX5at3LEmT++Fr46Nm2j3OV2CeawDwOAmyB9W+WwNEeSHmdDd8gF9weSgbssHfKB95e2LkFbqGwecGYQMx4U3Z0znljHAFcalzNcJuxPWbf6Z1y63BJbPIJtVvbHZXUrOvHM2Ly/7FkrqBoCsdeR7KhqAJRm6SJvIWI+jWVJ+q0aCpPxCua1Ef/U9yDAyJZtTgh0ryaAA=="},55261:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I=N.p+"assets/images/ci-f97fad3f5b589950fbad1b54d5ca69d8.svg"},24161:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAgMCA2MCA2MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yMy42NjQ5IDkuNjIzNjJMMjYuNzI4NCAyNC4xNDI2TDQxLjMwOTYgMjcuMzE0NkwyOC4zNjIzIDM0LjY5NjhMMjkuODI5OSA0OS40NTY1TDE4Ljc2MzQgMzkuNTAxOUw1LjA5NDEzIDQ1LjQ1MzlMMTEuMjAyMSAzMS45MTY3TDEuMjgwMjIgMjAuODMzOUwxNi4xMjI2IDIyLjQyNDVMMjMuNjY0OSA5LjYyMzYyWk0zMS45ODE0IDQ1Ljk2ODRMNDQuNjQzOCA1OC43NjkzQzQ0Ljk0NzggNTkuMDc2MSA0NS40NTEyIDU5LjA3NjEgNDUuNzU5OSA1OC43NzRMNTAuNjgwNSA1My45MjY1QzUwLjk4OTIgNTMuNjI0NCA1MC45ODkyIDUzLjEyNDEgNTAuNjg1MiA1Mi44MTczTDMzLjM3NzggMzUuMzc2NUMzMy4wNzM4IDM1LjA2OTcgMzIuMjcxMiAzNC45NDIyIDMyLjI2MTcgMzUuMzcxOEwzMS45ODE0IDQ1Ljk2ODRaTTguNjY1OCAxNi42MDk0SDguNDIzNTdDOC40MjM1NyAxNC42MzY0IDcuNjgyNjQgMTIuOTEzNSA2LjIwMDc4IDExLjQ0MDlDNC43MTQxNiA5Ljk3MjkxIDIuOTgwNTcgOS4yMzY1OCAxIDkuMjM2NThWOC45OTU4NUMyLjk4MDU3IDguOTk1ODUgNC43MTQxNiA4LjI1OTUxIDYuMTk2MDMgNi43ODY4NEM3LjY3Nzg5IDUuMzA5NDUgOC40MTg4MyAzLjU4NjYxIDguNDE4ODMgMS42MjMwNUg4LjY2MTA1QzguNjYxMDUgMy41OTEzMyA5LjQwMTk5IDUuMzE0MTcgMTAuODgzOSA2Ljc4Njg0QzEyLjM2NTcgOC4yNTk1MSAxNC4wOTkzIDguOTk1ODUgMTYuMDc5OSA4Ljk5NTg1VjkuMjM2NThDMTQuMDk5MyA5LjIzNjU4IDEyLjM2NTcgOS45NzI5MSAxMC44ODM5IDExLjQ0NTZDOS40MDY3NCAxMi45MTgzIDguNjY1OCAxNC42MzY0IDguNjY1OCAxNi42MDk0Wk00NC41NzI1IDI0LjA4Nkg0NC4xOTczQzQ0LjE5NzMgMjEuMDUxIDQzLjA1NzQgMTguMzk4MyA0MC43NzI5IDE2LjEzMjZDMzguNDg4MyAxMy44NjcgMzUuODIzOCAxMi43MzQyIDMyLjc2OTkgMTIuNzM0MlYxMi4zNjEzQzM1LjgyMzggMTIuMzYxMyAzOC40OTMxIDExLjIyODUgNDAuNzcyOSA4Ljk1MzM3QzQzLjA1NzQgNi42NzM1NiA0NC4xOTczIDQuMDI1NTggNDQuMTk3MyAxSDQ0LjU3MjVDNDQuNTcyNSA0LjAzNTAyIDQ1LjcxMjQgNi42ODc3MiA0Ny45OTcgOC45NTMzN0M1MC4yODE1IDExLjIxOSA1Mi45NDYgMTIuMzU2NiA1NiAxMi4zNTY2VjEyLjcyOTRDNTIuOTQ2IDEyLjcyOTQgNTAuMjgxNSAxMy44NjIzIDQ3Ljk5NyAxNi4xMjc5QzQ1LjcxMjQgMTguMzk4MyA0NC41NzI1IDIxLjA1MSA0NC41NzI1IDI0LjA4NloiIHN0cm9rZT0iYmxhY2siLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yMy42NjQ5IDkuNjIzNjJMMjYuNzI4NCAyNC4xNDI2TDQxLjMwOTYgMjcuMzE0NkwyOC4zNjIzIDM0LjY5NjhMMjkuODI5OSA0OS40NTY1TDE4Ljc2MzQgMzkuNTAxOUw1LjA5NDEzIDQ1LjQ1MzlMMTEuMjAyMSAzMS45MTY3TDEuMjgwMjIgMjAuODMzOUwxNi4xMjI2IDIyLjQyNDVMMjMuNjY0OSA5LjYyMzYyWk0zMS45ODE0IDQ1Ljk2ODRMNDQuNjQzOCA1OC43NjkzQzQ0Ljk0NzggNTkuMDc2MSA0NS40NTEyIDU5LjA3NjEgNDUuNzU5OSA1OC43NzRMNTAuNjgwNSA1My45MjY1QzUwLjk4OTIgNTMuNjI0NCA1MC45ODkyIDUzLjEyNDEgNTAuNjg1MiA1Mi44MTczTDMzLjM3NzggMzUuMzc2NUMzMy4wNzM4IDM1LjA2OTcgMzIuMjcxMiAzNC45NDIyIDMyLjI2MTcgMzUuMzcxOEwzMS45ODE0IDQ1Ljk2ODRaTTguNjY1OCAxNi42MDk0SDguNDIzNTdDOC40MjM1NyAxNC42MzY0IDcuNjgyNjQgMTIuOTEzNSA2LjIwMDc4IDExLjQ0MDlDNC43MTQxNiA5Ljk3MjkxIDIuOTgwNTcgOS4yMzY1OCAxIDkuMjM2NThWOC45OTU4NUMyLjk4MDU3IDguOTk1ODUgNC43MTQxNiA4LjI1OTUxIDYuMTk2MDMgNi43ODY4NEM3LjY3Nzg5IDUuMzA5NDUgOC40MTg4MyAzLjU4NjYxIDguNDE4ODMgMS42MjMwNUg4LjY2MTA1QzguNjYxMDUgMy41OTEzMyA5LjQwMTk5IDUuMzE0MTcgMTAuODgzOSA2Ljc4Njg0QzEyLjM2NTcgOC4yNTk1MSAxNC4wOTkzIDguOTk1ODUgMTYuMDc5OSA4Ljk5NTg1VjkuMjM2NThDMTQuMDk5MyA5LjIzNjU4IDEyLjM2NTcgOS45NzI5MSAxMC44ODM5IDExLjQ0NTZDOS40MDY3NCAxMi45MTgzIDguNjY1OCAxNC42MzY0IDguNjY1OCAxNi42MDk0Wk00NC41NzI1IDI0LjA4Nkg0NC4xOTczQzQ0LjE5NzMgMjEuMDUxIDQzLjA1NzQgMTguMzk4MyA0MC43NzI5IDE2LjEzMjZDMzguNDg4MyAxMy44NjcgMzUuODIzOCAxMi43MzQyIDMyLjc2OTkgMTIuNzM0MlYxMi4zNjEzQzM1LjgyMzggMTIuMzYxMyAzOC40OTMxIDExLjIyODUgNDAuNzcyOSA4Ljk1MzM3QzQzLjA1NzQgNi42NzM1NiA0NC4xOTczIDQuMDI1NTggNDQuMTk3MyAxSDQ0LjU3MjVDNDQuNTcyNSA0LjAzNTAyIDQ1LjcxMjQgNi42ODc3MiA0Ny45OTcgOC45NTMzN0M1MC4yODE1IDExLjIxOSA1Mi45NDYgMTIuMzU2NiA1NiAxMi4zNTY2VjEyLjcyOTRDNTIuOTQ2IDEyLjcyOTQgNTAuMjgxNSAxMy44NjIzIDQ3Ljk5NyAxNi4xMjc5QzQ1LjcxMjQgMTguMzk4MyA0NC41NzI1IDIxLjA1MSA0NC41NzI1IDI0LjA4NloiIHN0cm9rZT0idXJsKCNwYWludDBfbGluZWFyXzE2MF82MTgzKSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzE2MF82MTgzIiB4MT0iMTUuMjA4MyIgeTE9IjUuMzUiIHgyPSI0Mi4xMTk4IiB5Mj0iNTUuOTE2NCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjOTkzNEJEIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzQ0NzlFMCIvPgo8L2xpbmVhckdyYWRpZW50Pgo8L2RlZnM+Cjwvc3ZnPgo="},38242:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I=N.p+"assets/images/debug-441eb8c55ec85e26e3839f8c48ca8fca.svg"},24006:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjEiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAgMCA2MSA2MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zLjkzOTA5IDAuMDgwOTYxNkMyLjk5NzE1IDAuMzA0ODQyIDIuMDgxMjggMC45ODI5NDUgMS41MDIyNCAxLjg4NTM2QzAuNzk0OTU3IDIuOTg3NTMgMC44Mzk4NjMgMC45NzU2MjIgMC44NzA2NjEgMzAuMjMxNEwwLjg5ODY2IDU2Ljc2OTRMMS4xNDQ3MiA1Ny4zNzgyQzEuNjI2NDEgNTguNTY5MyAyLjQ4MTIyIDU5LjM4NzQgMy42ODI0NyA1OS44MDY1QzQuMjA0MzIgNTkuOTg4NiA1LjAwNzIzIDYwIDE3LjMyMDkgNjBIMzAuNDA0OEwzMS4wMjc4IDU5Ljc0ODZDMzIuMzQyNCA1OS4yMTc5IDMzLjM0OTkgNTcuOTM0IDMzLjU3NjggNTYuNTAwMkMzMy43MzIzIDU1LjUxNzggMzMuNzMwMiA0LjM3MzAzIDMzLjU3NDcgMy40MTQzQzMzLjM1MzkgMi4wNTQgMzIuNTE3NSAwLjk1MDY0IDMxLjIyNTggMC4zMTYwNDJMMzAuNjIwMiAwLjAxODUwMzNMMTcuNDgyNCAwLjAwMTU5NjU1QzEwLjA1NzUgLTAuMDA3OTg3NTcgNC4xNjgzNSAwLjAyNjQ3MjEgMy45MzkwOSAwLjA4MDk2MTZaTTExLjIyNjggMS4zMzc2N0wxMS41OTY4IDEuNzQxNDlMMTcuNTIzIDEuNzcxOTdDMjMuOTc2NiAxLjgwNTAzIDI0LjA2OTMgMS43OTczOCAyNC4zMzc1IDEuMjA4NjZMMjQuNDYyOCAwLjkzMzg0TDI3LjM4IDAuOTM0OTE3QzMxLjAzOTQgMC45MzYyMSAzMS42MzE5IDEuMTQ5NjQgMzIuNDIwNyAyLjc1MDg0TDMyLjY2NjIgMy4yNDkxVjMwLjAwOTNWNTYuNzY5NEwzMi4zNzUyIDU3LjMyMTFDMzIuMjE1MSA1Ny42MjQ1IDMxLjg2MTEgNTguMDY5MiAzMS41ODg1IDU4LjMwOTFDMzAuNjQ4MyA1OS4xMzY4IDMxLjYxMDQgNTkuMDg0NyAxNy4yNjcgNTkuMDg0N0MyLjYwOTE2IDU5LjA4NDcgMy44MTY0MyA1OS4xNjQ4IDIuNzc1MjEgNTguMTIzNUMxLjcxMDk0IDU3LjA1OTIgMS44MTQgNjAuMDc0NyAxLjgxNCAyOS45OTQxQzEuODE0IC0wLjAxMjgzMzEgMS43MjM0MyAyLjg5Njk3IDIuNjg4NzQgMS45MDIyN0MzLjU5MDQgMC45NzMxNDYgMy43NzY0OCAwLjkzNjEwMiA3LjU0NjkxIDAuOTM0OTE3TDEwLjg1NjggMC45MzM4NEwxMS4yMjY4IDEuMzM3NjdaTTEyLjY5MDQgNTUuNDc3MlY1Ni4zOTI1SDE3LjY5NzhIMjIuNzA1MlY1NS40NzcyVjU0LjU2MThIMTcuNjk3OEgxMi42OTA0VjU1LjQ3NzJaIiBmaWxsPSJibGFjayIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTMuOTM5MDkgMC4wODA5NjE2QzIuOTk3MTUgMC4zMDQ4NDIgMi4wODEyOCAwLjk4Mjk0NSAxLjUwMjI0IDEuODg1MzZDMC43OTQ5NTcgMi45ODc1MyAwLjgzOTg2MyAwLjk3NTYyMiAwLjg3MDY2MSAzMC4yMzE0TDAuODk4NjYgNTYuNzY5NEwxLjE0NDcyIDU3LjM3ODJDMS42MjY0MSA1OC41NjkzIDIuNDgxMjIgNTkuMzg3NCAzLjY4MjQ3IDU5LjgwNjVDNC4yMDQzMiA1OS45ODg2IDUuMDA3MjMgNjAgMTcuMzIwOSA2MEgzMC40MDQ4TDMxLjAyNzggNTkuNzQ4NkMzMi4zNDI0IDU5LjIxNzkgMzMuMzQ5OSA1Ny45MzQgMzMuNTc2OCA1Ni41MDAyQzMzLjczMjMgNTUuNTE3OCAzMy43MzAyIDQuMzczMDMgMzMuNTc0NyAzLjQxNDNDMzMuMzUzOSAyLjA1NCAzMi41MTc1IDAuOTUwNjQgMzEuMjI1OCAwLjMxNjA0MkwzMC42MjAyIDAuMDE4NTAzM0wxNy40ODI0IDAuMDAxNTk2NTVDMTAuMDU3NSAtMC4wMDc5ODc1NyA0LjE2ODM1IDAuMDI2NDcyMSAzLjkzOTA5IDAuMDgwOTYxNlpNMTEuMjI2OCAxLjMzNzY3TDExLjU5NjggMS43NDE0OUwxNy41MjMgMS43NzE5N0MyMy45NzY2IDEuODA1MDMgMjQuMDY5MyAxLjc5NzM4IDI0LjMzNzUgMS4yMDg2NkwyNC40NjI4IDAuOTMzODRMMjcuMzggMC45MzQ5MTdDMzEuMDM5NCAwLjkzNjIxIDMxLjYzMTkgMS4xNDk2NCAzMi40MjA3IDIuNzUwODRMMzIuNjY2MiAzLjI0OTFWMzAuMDA5M1Y1Ni43Njk0TDMyLjM3NTIgNTcuMzIxMUMzMi4yMTUxIDU3LjYyNDUgMzEuODYxMSA1OC4wNjkyIDMxLjU4ODUgNTguMzA5MUMzMC42NDgzIDU5LjEzNjggMzEuNjEwNCA1OS4wODQ3IDE3LjI2NyA1OS4wODQ3QzIuNjA5MTYgNTkuMDg0NyAzLjgxNjQzIDU5LjE2NDggMi43NzUyMSA1OC4xMjM1QzEuNzEwOTQgNTcuMDU5MiAxLjgxNCA2MC4wNzQ3IDEuODE0IDI5Ljk5NDFDMS44MTQgLTAuMDEyODMzMSAxLjcyMzQzIDIuODk2OTcgMi42ODg3NCAxLjkwMjI3QzMuNTkwNCAwLjk3MzE0NiAzLjc3NjQ4IDAuOTM2MTAyIDcuNTQ2OTEgMC45MzQ5MTdMMTAuODU2OCAwLjkzMzg0TDExLjIyNjggMS4zMzc2N1pNMTIuNjkwNCA1NS40NzcyVjU2LjM5MjVIMTcuNjk3OEgyMi43MDUyVjU1LjQ3NzJWNTQuNTYxOEgxNy42OTc4SDEyLjY5MDRWNTUuNDc3MloiIGZpbGw9InVybCgjcGFpbnQwX2xpbmVhcl85NjVfMjk0MykiLz4KPGRlZnM+CjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQwX2xpbmVhcl85NjVfMjk0MyIgeDE9IjkuMzM5MDYiIHkxPSI0LjUiIHgyPSI0Mi43OTIzIiB5Mj0iNDAuNzc2NiIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjOTkzNEJEIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzQ0NzlFMCIvPgo8L2xpbmVhckdyYWRpZW50Pgo8L2RlZnM+Cjwvc3ZnPgo="},37964:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I=N.p+"assets/images/discord-figma-6d2d99381a7a48f8069609f410046835.svg"},82641:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgNTQ4LjY5IDM5OC42OCI+PHBhdGggZD0iTTAsMjAuNTRjMTY4LjQ5LTcxLjE1LDM2Ny4zNSw3MS4xNyw1MzYuMDgsMGExMjczLjM2LDEyNzMuMzYsMCwwLDEsMTIuNjEsMTc4LjhjLTE3OC44Miw3MS43LTM1Ny41MS03MS43LTUzNi4wOCwwQTEyNzMuMzYsMTI3My4zNiwwLDAsMCwwLDIwLjU0WiIgZmlsbD0iIzAwNWJiYiIvPjxwYXRoIGQ9Ik0xMi42MSwxOTkuMzRjMTc4LjU3LTcxLjcsMzU3LjI3LDcxLjcsNTM2LjA4LDBhMTI3NC44NywxMjc0Ljg3LDAsMCwxLTEyLjYxLDE3OC44QzM0Ny4xOCw0NDkuMjksMTg4LjY2LDMwNywwLDM3OC4xNEExMjczLjM2LDEyNzMuMzYsMCwwLDAsMTIuNjEsMTk5LjM0WiIgZmlsbD0iI2ZmZDUwMCIvPjwvc3ZnPg=="},49678:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTMiIGhlaWdodD0iNDUiIHZpZXdCb3g9IjAgMCA5MyA0NSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjkzIiBoZWlnaHQ9IjQ1IiByeD0iMTAiIGZpbGw9IiM1NzVBNUQiLz4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzI1MV80NjY0KSI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjMuOTk5OSAxMi40QzE4LjY5NTkgMTIuNCAxNC4zOTk5IDE2LjY5NiAxNC4zOTk5IDIyQzE0LjM5OTkgMjYuMjQ4IDE3LjE0NzkgMjkuODM2IDIwLjk2MzkgMzEuMTA4QzIxLjQ0MzkgMzEuMTkyIDIxLjYyMzkgMzAuOTA0IDIxLjYyMzkgMzAuNjUyQzIxLjYyMzkgMzAuNDI0IDIxLjYxMTkgMjkuNjY4IDIxLjYxMTkgMjguODY0QzE5LjE5OTkgMjkuMzA4IDE4LjU3NTkgMjguMjc2IDE4LjM4MzkgMjcuNzM2QzE4LjI3NTkgMjcuNDYgMTcuODA3OSAyNi42MDggMTcuMzk5OSAyNi4zOEMxNy4wNjM5IDI2LjIgMTYuNTgzOSAyNS43NTYgMTcuMzg3OSAyNS43NDRDMTguMTQzOSAyNS43MzIgMTguNjgzOSAyNi40NCAxOC44NjM5IDI2LjcyOEMxOS43Mjc5IDI4LjE4IDIxLjEwNzkgMjcuNzcyIDIxLjY1OTkgMjcuNTJDMjEuNzQzOSAyNi44OTYgMjEuOTk1OSAyNi40NzYgMjIuMjcxOSAyNi4yMzZDMjAuMTM1OSAyNS45OTYgMTcuOTAzOSAyNS4xNjggMTcuOTAzOSAyMS40OTZDMTcuOTAzOSAyMC40NTIgMTguMjc1OSAxOS41ODggMTguODg3OSAxOC45MTZDMTguNzkxOSAxOC42NzYgMTguNDU1OSAxNy42OTIgMTguOTgzOSAxNi4zNzJDMTguOTgzOSAxNi4zNzIgMTkuNzg3OSAxNi4xMiAyMS42MjM5IDE3LjM1NkMyMi4zOTE5IDE3LjE0IDIzLjIwNzkgMTcuMDMyIDI0LjAyMzkgMTcuMDMyQzI0LjgzOTkgMTcuMDMyIDI1LjY1NTkgMTcuMTQgMjYuNDIzOSAxNy4zNTZDMjguMjU5OSAxNi4xMDggMjkuMDYzOSAxNi4zNzIgMjkuMDYzOSAxNi4zNzJDMjkuNTkxOSAxNy42OTIgMjkuMjU1OSAxOC42NzYgMjkuMTU5OSAxOC45MTZDMjkuNzcxOSAxOS41ODggMzAuMTQzOSAyMC40NCAzMC4xNDM5IDIxLjQ5NkMzMC4xNDM5IDI1LjE4IDI3Ljg5OTkgMjUuOTk2IDI1Ljc2MzkgMjYuMjM2QzI2LjExMTkgMjYuNTM2IDI2LjQxMTkgMjcuMTEyIDI2LjQxMTkgMjguMDEyQzI2LjQxMTkgMjkuMjk2IDI2LjM5OTkgMzAuMzI4IDI2LjM5OTkgMzAuNjUyQzI2LjM5OTkgMzAuOTA0IDI2LjU3OTkgMzEuMjA0IDI3LjA1OTkgMzEuMTA4QzI4Ljk2NTYgMzAuNDY0NiAzMC42MjE2IDI5LjIzOTggMzEuNzk0OCAyNy42MDU5QzMyLjk2OCAyNS45NzIxIDMzLjU5OTMgMjQuMDExNSAzMy41OTk5IDIyQzMzLjU5OTkgMTYuNjk2IDI5LjMwMzkgMTIuNCAyMy45OTk5IDEyLjRaIiBmaWxsPSJ3aGl0ZSIvPgo8L2c+CjxwYXRoIGQ9Ik01My4wNzIgMjguMTQ0QzUyLjE4NjcgMjguMTQ0IDUxLjM3NiAyOC4wMzIgNTAuNjQgMjcuODA4QzQ5LjkwNCAyNy41NzMzIDQ5LjI4IDI3LjI0OCA0OC43NjggMjYuODMyTDQ5LjI5NiAyNS41MkM0OS44MjkzIDI1LjkyNTMgNTAuNCAyNi4yMjkzIDUxLjAwOCAyNi40MzJDNTEuNjE2IDI2LjYzNDcgNTIuMzA0IDI2LjczNiA1My4wNzIgMjYuNzM2QzUzLjk3ODcgMjYuNzM2IDU0LjY0NTMgMjYuNTc2IDU1LjA3MiAyNi4yNTZDNTUuNTA5MyAyNS45MjUzIDU1LjcyOCAyNS40OTg3IDU1LjcyOCAyNC45NzZDNTUuNzI4IDI0LjU0OTMgNTUuNTczMyAyNC4yMTMzIDU1LjI2NCAyMy45NjhDNTQuOTU0NyAyMy43MTIgNTQuNDM3MyAyMy41MDkzIDUzLjcxMiAyMy4zNkw1MiAyMy4wMDhDNTAuOTg2NyAyMi43OTQ3IDUwLjIyOTMgMjIuNDQyNyA0OS43MjggMjEuOTUyQzQ5LjIzNzMgMjEuNDYxMyA0OC45OTIgMjAuOCA0OC45OTIgMTkuOTY4QzQ4Ljk5MiAxOS4yOTYgNDkuMTY4IDE4LjcwNCA0OS41MiAxOC4xOTJDNDkuODgyNyAxNy42OCA1MC4zODQgMTcuMjg1MyA1MS4wMjQgMTcuMDA4QzUxLjY2NCAxNi43MiA1Mi40IDE2LjU3NiA1My4yMzIgMTYuNTc2QzU0IDE2LjU3NiA1NC43MDkzIDE2LjY5MzMgNTUuMzYgMTYuOTI4QzU2LjAyMTMgMTcuMTUyIDU2LjU4MTMgMTcuNDgyNyA1Ny4wNCAxNy45Mkw1Ni40OTYgMTkuMTg0QzU1LjU4OTMgMTguMzg0IDU0LjQ5NiAxNy45ODQgNTMuMjE2IDE3Ljk4NEM1Mi40MjY3IDE3Ljk4NCA1MS43OTczIDE4LjE2IDUxLjMyOCAxOC41MTJDNTAuODY5MyAxOC44NjQgNTAuNjQgMTkuMzMzMyA1MC42NCAxOS45MkM1MC42NCAyMC4zNjggNTAuNzg0IDIwLjcyNTMgNTEuMDcyIDIwLjk5MkM1MS4zNiAyMS4yNTg3IDUxLjg0IDIxLjQ2MTMgNTIuNTEyIDIxLjZMNTQuMjA4IDIxLjk1MkM1NS4yNzQ3IDIyLjE3NiA1Ni4wNjkzIDIyLjUyMjcgNTYuNTkyIDIyLjk5MkM1Ny4xMTQ3IDIzLjQ1MDcgNTcuMzc2IDI0LjA3NDcgNTcuMzc2IDI0Ljg2NEM1Ny4zNzYgMjUuNTI1MyA1Ny4yIDI2LjEwMTMgNTYuODQ4IDI2LjU5MkM1Ni40OTYgMjcuMDgyNyA1NiAyNy40NjY3IDU1LjM2IDI3Ljc0NEM1NC43MiAyOC4wMTA3IDUzLjk1NzMgMjguMTQ0IDUzLjA3MiAyOC4xNDRaTTYyLjM3MDMgMjguMTQ0QzYxLjM4ODkgMjguMTQ0IDYwLjY1ODMgMjcuODkzMyA2MC4xNzgzIDI3LjM5MkM1OS42OTgzIDI2Ljg5MDcgNTkuNDU4MyAyNi4xNjUzIDU5LjQ1ODMgMjUuMjE2VjIxLjQ0SDU3LjkzODNWMjAuMTkySDU5LjQ1ODNWMTcuODRINjEuMDc0M1YyMC4xOTJINjMuNDkwM1YyMS40NEg2MS4wNzQzVjI1LjA4OEM2MS4wNzQzIDI1LjY1MzMgNjEuMTkxNiAyNi4wOCA2MS40MjYzIDI2LjM2OEM2MS42NzE2IDI2LjY1NiA2Mi4wNjYzIDI2LjggNjIuNjEwMiAyNi44QzYyLjc4MDkgMjYuOCA2Mi45NDYzIDI2Ljc4NCA2My4xMDYzIDI2Ljc1MkM2My4yNjYzIDI2LjcwOTMgNjMuNDI2MyAyNi42NjEzIDYzLjU4NjMgMjYuNjA4TDYzLjg0MjMgMjcuODI0QzYzLjY4MjMgMjcuOTIgNjMuNDU4MyAyNy45OTQ3IDYzLjE3MDMgMjguMDQ4QzYyLjg5MjkgMjguMTEyIDYyLjYyNjMgMjguMTQ0IDYyLjM3MDMgMjguMTQ0Wk02Ny4zODIgMjguMTQ0QzY2LjgzOCAyOC4xNDQgNjYuMzUyNyAyOC4wMzczIDY1LjkyNiAyNy44MjRDNjUuNDk5MyAyNy42MTA3IDY1LjE1OCAyNy4zMjI3IDY0LjkwMiAyNi45NkM2NC42NTY3IDI2LjU5NzMgNjQuNTM0IDI2LjE4NjcgNjQuNTM0IDI1LjcyOEM2NC41MzQgMjUuMTUyIDY0LjY3OCAyNC42OTg3IDY0Ljk2NiAyNC4zNjhDNjUuMjY0NyAyNC4wMzczIDY1Ljc1IDIzLjc5NzMgNjYuNDIyIDIzLjY0OEM2Ny4xMDQ3IDIzLjQ5ODcgNjguMDIyIDIzLjQyNCA2OS4xNzQgMjMuNDI0SDY5LjcxOFYyMy4wMDhDNjkuNzE4IDIyLjQgNjkuNTkgMjEuOTYyNyA2OS4zMzQgMjEuNjk2QzY5LjA3OCAyMS40MjkzIDY4LjY1NjcgMjEuMjk2IDY4LjA3IDIxLjI5NkM2Ny42MjIgMjEuMjk2IDY3LjE3NCAyMS4zNjUzIDY2LjcyNiAyMS41MDRDNjYuMjc4IDIxLjYzMiA2NS44MTkzIDIxLjg0IDY1LjM1IDIyLjEyOEw2NC44NTQgMjAuOTkyQzY1LjI1OTMgMjAuNzA0IDY1Ljc2NiAyMC40NzQ3IDY2LjM3NCAyMC4zMDRDNjYuOTgyIDIwLjEzMzMgNjcuNTYzMyAyMC4wNDggNjguMTE4IDIwLjA0OEM2OS4xODQ3IDIwLjA0OCA2OS45NzQgMjAuMzA0IDcwLjQ4NiAyMC44MTZDNzAuOTk4IDIxLjMxNzMgNzEuMjU0IDIyLjEwNjcgNzEuMjU0IDIzLjE4NFYyOEg2OS43MzRWMjYuNzA0QzY5LjU0MiAyNy4xNTIgNjkuMjQzMyAyNy41MDQgNjguODM4IDI3Ljc2QzY4LjQzMjcgMjguMDE2IDY3Ljk0NzMgMjguMTQ0IDY3LjM4MiAyOC4xNDRaTTY3LjcwMiAyNi45OTJDNjguMjc4IDI2Ljk5MiA2OC43NTggMjYuNzg5MyA2OS4xNDIgMjYuMzg0QzY5LjUyNiAyNS45Nzg3IDY5LjcxOCAyNS40NjY3IDY5LjcxOCAyNC44NDhWMjQuNDE2SDY5LjE5QzY4LjQxMTMgMjQuNDE2IDY3Ljc5OCAyNC40NTMzIDY3LjM1IDI0LjUyOEM2Ni45MTI3IDI0LjYwMjcgNjYuNTk4IDI0LjczMDcgNjYuNDA2IDI0LjkxMkM2Ni4yMjQ3IDI1LjA4MjcgNjYuMTM0IDI1LjMyMjcgNjYuMTM0IDI1LjYzMkM2Ni4xMzQgMjYuMDM3MyA2Ni4yNzI3IDI2LjM2OCA2Ni41NSAyNi42MjRDNjYuODI3MyAyNi44NjkzIDY3LjIxMTMgMjYuOTkyIDY3LjcwMiAyNi45OTJaTTczLjQ3OTggMjhWMjAuMTkySDc1LjA0NzhWMjEuNTg0Qzc1LjQ1MzEgMjAuNjU2IDc2LjI5NTggMjAuMTM4NyA3Ny41NzU4IDIwLjAzMkw3OC4xMDM4IDIwTDc4LjIxNTggMjEuMzc2TDc3LjIzOTggMjEuNDcyQzc1LjgyMTEgMjEuNjEwNyA3NS4xMTE4IDIyLjM0MTMgNzUuMTExOCAyMy42NjRWMjhINzMuNDc5OFoiIGZpbGw9IndoaXRlIi8+CjxkZWZzPgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzI1MV80NjY0Ij4KPHJlY3Qgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBmaWxsPSJ3aGl0ZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTIgMTApIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg=="},97988:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDIwMDEwOTA0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDEvUkVDLVNWRy0yMDAxMDkwNC9EVEQvc3ZnMTAuZHRkIj4KPHN2ZyB3aWR0aD0iOTMiIGhlaWdodD0iNDUiIHZpZXdCb3g9IjAgMCA5MyA0NSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjkzIiBoZWlnaHQ9IjQ1IiByeD0iMTAiIGZpbGw9IiM1NzVBNUQiLz4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzE2Ml83NDAwKSI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjMuOTk5OSAxMi4zOTk5QzE4LjY5NTkgMTIuMzk5OSAxNC4zOTk5IDE2LjY5NTkgMTQuMzk5OSAyMS45OTk5QzE0LjM5OTkgMjYuMjQ3OSAxNy4xNDc5IDI5LjgzNTkgMjAuOTYzOSAzMS4xMDc5QzIxLjQ0MzkgMzEuMTkxOSAyMS42MjM5IDMwLjkwMzkgMjEuNjIzOSAzMC42NTE5QzIxLjYyMzkgMzAuNDIzOSAyMS42MTE5IDI5LjY2NzkgMjEuNjExOSAyOC44NjM5QzE5LjE5OTkgMjkuMzA3OSAxOC41NzU5IDI4LjI3NTkgMTguMzgzOSAyNy43MzU5QzE4LjI3NTkgMjcuNDU5OSAxNy44MDc5IDI2LjYwNzkgMTcuMzk5OSAyNi4zNzk5QzE3LjA2MzkgMjYuMTk5OSAxNi41ODM5IDI1Ljc1NTkgMTcuMzg3OSAyNS43NDM5QzE4LjE0MzkgMjUuNzMxOSAxOC42ODM5IDI2LjQzOTkgMTguODYzOSAyNi43Mjc5QzE5LjcyNzkgMjguMTc5OSAyMS4xMDc5IDI3Ljc3MTkgMjEuNjU5OSAyNy41MTk5QzIxLjc0MzkgMjYuODk1OSAyMS45OTU5IDI2LjQ3NTkgMjIuMjcxOSAyNi4yMzU5QzIwLjEzNTkgMjUuOTk1OSAxNy45MDM5IDI1LjE2NzkgMTcuOTAzOSAyMS40OTU5QzE3LjkwMzkgMjAuNDUxOSAxOC4yNzU5IDE5LjU4NzkgMTguODg3OSAxOC45MTU5QzE4Ljc5MTkgMTguNjc1OSAxOC40NTU5IDE3LjY5MTkgMTguOTgzOSAxNi4zNzE5QzE4Ljk4MzkgMTYuMzcxOSAxOS43ODc5IDE2LjExOTkgMjEuNjIzOSAxNy4zNTU5QzIyLjM5MTkgMTcuMTM5OSAyMy4yMDc5IDE3LjAzMTkgMjQuMDIzOSAxNy4wMzE5QzI0LjgzOTkgMTcuMDMxOSAyNS42NTU5IDE3LjEzOTkgMjYuNDIzOSAxNy4zNTU5QzI4LjI1OTkgMTYuMTA3OSAyOS4wNjM5IDE2LjM3MTkgMjkuMDYzOSAxNi4zNzE5QzI5LjU5MTkgMTcuNjkxOSAyOS4yNTU5IDE4LjY3NTkgMjkuMTU5OSAxOC45MTU5QzI5Ljc3MTkgMTkuNTg3OSAzMC4xNDM5IDIwLjQzOTkgMzAuMTQzOSAyMS40OTU5QzMwLjE0MzkgMjUuMTc5OSAyNy44OTk5IDI1Ljk5NTkgMjUuNzYzOSAyNi4yMzU5QzI2LjExMTkgMjYuNTM1OSAyNi40MTE5IDI3LjExMTkgMjYuNDExOSAyOC4wMTE5QzI2LjQxMTkgMjkuMjk1OSAyNi4zOTk5IDMwLjMyNzkgMjYuMzk5OSAzMC42NTE5QzI2LjM5OTkgMzAuOTAzOSAyNi41Nzk5IDMxLjIwMzkgMjcuMDU5OSAzMS4xMDc5QzI4Ljk2NTYgMzAuNDY0NSAzMC42MjE2IDI5LjIzOTYgMzEuNzk0OCAyNy42MDU4QzMyLjk2OCAyNS45NzE5IDMzLjU5OTMgMjQuMDExMyAzMy41OTk5IDIxLjk5OTlDMzMuNTk5OSAxNi42OTU5IDI5LjMwMzkgMTIuMzk5OSAyMy45OTk5IDEyLjM5OTlaIiBmaWxsPSJ3aGl0ZSIvPgo8L2c+CjxwYXRoIGQ9Ik01My4wNzIgMjguMTQ0QzUyLjE4NjcgMjguMTQ0IDUxLjM3NiAyOC4wMzIgNTAuNjQgMjcuODA4QzQ5LjkwNCAyNy41NzMzIDQ5LjI4IDI3LjI0OCA0OC43NjggMjYuODMyTDQ5LjI5NiAyNS41MkM0OS44MjkzIDI1LjkyNTMgNTAuNCAyNi4yMjkzIDUxLjAwOCAyNi40MzJDNTEuNjE2IDI2LjYzNDcgNTIuMzA0IDI2LjczNiA1My4wNzIgMjYuNzM2QzUzLjk3ODcgMjYuNzM2IDU0LjY0NTMgMjYuNTc2IDU1LjA3MiAyNi4yNTZDNTUuNTA5MyAyNS45MjUzIDU1LjcyOCAyNS40OTg3IDU1LjcyOCAyNC45NzZDNTUuNzI4IDI0LjU0OTMgNTUuNTczMyAyNC4yMTMzIDU1LjI2NCAyMy45NjhDNTQuOTU0NyAyMy43MTIgNTQuNDM3MyAyMy41MDkzIDUzLjcxMiAyMy4zNkw1MiAyMy4wMDhDNTAuOTg2NyAyMi43OTQ3IDUwLjIyOTMgMjIuNDQyNyA0OS43MjggMjEuOTUyQzQ5LjIzNzMgMjEuNDYxMyA0OC45OTIgMjAuOCA0OC45OTIgMTkuOTY4QzQ4Ljk5MiAxOS4yOTYgNDkuMTY4IDE4LjcwNCA0OS41MiAxOC4xOTJDNDkuODgyNyAxNy42OCA1MC4zODQgMTcuMjg1MyA1MS4wMjQgMTcuMDA4QzUxLjY2NCAxNi43MiA1Mi40IDE2LjU3NiA1My4yMzIgMTYuNTc2QzU0IDE2LjU3NiA1NC43MDkzIDE2LjY5MzMgNTUuMzYgMTYuOTI4QzU2LjAyMTMgMTcuMTUyIDU2LjU4MTMgMTcuNDgyNyA1Ny4wNCAxNy45Mkw1Ni40OTYgMTkuMTg0QzU1LjU4OTMgMTguMzg0IDU0LjQ5NiAxNy45ODQgNTMuMjE2IDE3Ljk4NEM1Mi40MjY3IDE3Ljk4NCA1MS43OTczIDE4LjE2IDUxLjMyOCAxOC41MTJDNTAuODY5MyAxOC44NjQgNTAuNjQgMTkuMzMzMyA1MC42NCAxOS45MkM1MC42NCAyMC4zNjggNTAuNzg0IDIwLjcyNTMgNTEuMDcyIDIwLjk5MkM1MS4zNiAyMS4yNTg3IDUxLjg0IDIxLjQ2MTMgNTIuNTEyIDIxLjZMNTQuMjA4IDIxLjk1MkM1NS4yNzQ3IDIyLjE3NiA1Ni4wNjkzIDIyLjUyMjcgNTYuNTkyIDIyLjk5MkM1Ny4xMTQ3IDIzLjQ1MDcgNTcuMzc2IDI0LjA3NDcgNTcuMzc2IDI0Ljg2NEM1Ny4zNzYgMjUuNTI1MyA1Ny4yIDI2LjEwMTMgNTYuODQ4IDI2LjU5MkM1Ni40OTYgMjcuMDgyNyA1NiAyNy40NjY3IDU1LjM2IDI3Ljc0NEM1NC43MiAyOC4wMTA3IDUzLjk1NzMgMjguMTQ0IDUzLjA3MiAyOC4xNDRaTTYyLjM3MDMgMjguMTQ0QzYxLjM4ODkgMjguMTQ0IDYwLjY1ODMgMjcuODkzMyA2MC4xNzgzIDI3LjM5MkM1OS42OTgzIDI2Ljg5MDcgNTkuNDU4MyAyNi4xNjUzIDU5LjQ1ODMgMjUuMjE2VjIxLjQ0SDU3LjkzODNWMjAuMTkySDU5LjQ1ODNWMTcuODRINjEuMDc0M1YyMC4xOTJINjMuNDkwM1YyMS40NEg2MS4wNzQzVjI1LjA4OEM2MS4wNzQzIDI1LjY1MzMgNjEuMTkxNiAyNi4wOCA2MS40MjYzIDI2LjM2OEM2MS42NzE2IDI2LjY1NiA2Mi4wNjYzIDI2LjggNjIuNjEwMiAyNi44QzYyLjc4MDkgMjYuOCA2Mi45NDYzIDI2Ljc4NCA2My4xMDYzIDI2Ljc1MkM2My4yNjYzIDI2LjcwOTMgNjMuNDI2MyAyNi42NjEzIDYzLjU4NjMgMjYuNjA4TDYzLjg0MjMgMjcuODI0QzYzLjY4MjMgMjcuOTIgNjMuNDU4MyAyNy45OTQ3IDYzLjE3MDMgMjguMDQ4QzYyLjg5MjkgMjguMTEyIDYyLjYyNjMgMjguMTQ0IDYyLjM3MDMgMjguMTQ0Wk02Ny4zODIgMjguMTQ0QzY2LjgzOCAyOC4xNDQgNjYuMzUyNyAyOC4wMzczIDY1LjkyNiAyNy44MjRDNjUuNDk5MyAyNy42MTA3IDY1LjE1OCAyNy4zMjI3IDY0LjkwMiAyNi45NkM2NC42NTY3IDI2LjU5NzMgNjQuNTM0IDI2LjE4NjcgNjQuNTM0IDI1LjcyOEM2NC41MzQgMjUuMTUyIDY0LjY3OCAyNC42OTg3IDY0Ljk2NiAyNC4zNjhDNjUuMjY0NyAyNC4wMzczIDY1Ljc1IDIzLjc5NzMgNjYuNDIyIDIzLjY0OEM2Ny4xMDQ3IDIzLjQ5ODcgNjguMDIyIDIzLjQyNCA2OS4xNzQgMjMuNDI0SDY5LjcxOFYyMy4wMDhDNjkuNzE4IDIyLjQgNjkuNTkgMjEuOTYyNyA2OS4zMzQgMjEuNjk2QzY5LjA3OCAyMS40MjkzIDY4LjY1NjcgMjEuMjk2IDY4LjA3IDIxLjI5NkM2Ny42MjIgMjEuMjk2IDY3LjE3NCAyMS4zNjUzIDY2LjcyNiAyMS41MDRDNjYuMjc4IDIxLjYzMiA2NS44MTkzIDIxLjg0IDY1LjM1IDIyLjEyOEw2NC44NTQgMjAuOTkyQzY1LjI1OTMgMjAuNzA0IDY1Ljc2NiAyMC40NzQ3IDY2LjM3NCAyMC4zMDRDNjYuOTgyIDIwLjEzMzMgNjcuNTYzMyAyMC4wNDggNjguMTE4IDIwLjA0OEM2OS4xODQ3IDIwLjA0OCA2OS45NzQgMjAuMzA0IDcwLjQ4NiAyMC44MTZDNzAuOTk4IDIxLjMxNzMgNzEuMjU0IDIyLjEwNjcgNzEuMjU0IDIzLjE4NFYyOEg2OS43MzRWMjYuNzA0QzY5LjU0MiAyNy4xNTIgNjkuMjQzMyAyNy41MDQgNjguODM4IDI3Ljc2QzY4LjQzMjcgMjguMDE2IDY3Ljk0NzMgMjguMTQ0IDY3LjM4MiAyOC4xNDRaTTY3LjcwMiAyNi45OTJDNjguMjc4IDI2Ljk5MiA2OC43NTggMjYuNzg5MyA2OS4xNDIgMjYuMzg0QzY5LjUyNiAyNS45Nzg3IDY5LjcxOCAyNS40NjY3IDY5LjcxOCAyNC44NDhWMjQuNDE2SDY5LjE5QzY4LjQxMTMgMjQuNDE2IDY3Ljc5OCAyNC40NTMzIDY3LjM1IDI0LjUyOEM2Ni45MTI3IDI0LjYwMjcgNjYuNTk4IDI0LjczMDcgNjYuNDA2IDI0LjkxMkM2Ni4yMjQ3IDI1LjA4MjcgNjYuMTM0IDI1LjMyMjcgNjYuMTM0IDI1LjYzMkM2Ni4xMzQgMjYuMDM3MyA2Ni4yNzI3IDI2LjM2OCA2Ni41NSAyNi42MjRDNjYuODI3MyAyNi44NjkzIDY3LjIxMTMgMjYuOTkyIDY3LjcwMiAyNi45OTJaTTczLjQ3OTggMjhWMjAuMTkySDc1LjA0NzhWMjEuNTg0Qzc1LjQ1MzEgMjAuNjU2IDc2LjI5NTggMjAuMTM4NyA3Ny41NzU4IDIwLjAzMkw3OC4xMDM4IDIwTDc4LjIxNTggMjEuMzc2TDc3LjIzOTggMjEuNDcyQzc1LjgyMTEgMjEuNjEwNyA3NS4xMTE4IDIyLjM0MTMgNzUuMTExOCAyMy42NjRWMjhINzMuNDc5OFoiIGZpbGw9IndoaXRlIi8+CjxkZWZzPgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzE2Ml83NDAwIj4KPHJlY3Qgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBmaWxsPSJ3aGl0ZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTIgMTApIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg=="},54606:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I=N.p+"assets/images/join-us-on-disc-5015650d848b915d14420b878d46cca8.svg"},68350:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDIwMDEwOTA0Ly9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9UUi8yMDAxL1JFQy1TVkctMjAwMTA5MDQvRFREL3N2ZzEwLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4wIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiB3aWR0aD0iMzIwLjAwMDAwMHB0IiBoZWlnaHQ9IjkwLjAwMDAwMHB0IiB2aWV3Qm94PSIwIDAgMzIwLjAwMDAwMCA5MC4wMDAwMDAiCiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCBtZWV0Ij4KCjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAuMDAwMDAwLDkwLjAwMDAwMCkgc2NhbGUoMC4xMDAwMDAsLTAuMTAwMDAwKSIKZmlsbD0iI0ZGRkZGRiIgc3Ryb2tlPSJub25lIj4KPHBhdGggZD0iTTQxIDg1NCBjLTIwIC0yNiAtMjEgLTM4IC0yMSAtMzU5IGwwIC0zMzMgMzEgLTI2IDMxIC0yNiAyNjQgMCAyNjQKMCAtNyAzMyAtNiAzMiAzOSAtMzYgYzgyIC03NiAxMjYgLTExNCAxNDAgLTEyMiAxMiAtNyAxNCA1MSAxNCAzOTMgMCA0MjEgLTMKNDQ3IC00NSA0NjQgLTkgMyAtMTY3IDYgLTM1MCA2IGwtMzM0IDAgLTIwIC0yNnogbTUyMiAtMjA0IGM0MyAtMjUgNzggLTExMgo4NSAtMjExIDQgLTYyIDMgLTY3IC0yMyAtODcgLTM1IC0yOCAtOTQgLTQwIC0xMDUgLTIxIC02IDkgMiAyMCAyNiAzNyA0NyAzMgozOCAzNyAtMjAgMTIgLTY0IC0yNyAtMTYzIC0yNyAtMjM1IDAgLTY0IDI1IC03NSAyMSAtMjcgLTkgNjEgLTM4IDI0IC02NyAtNDcKLTM3IC01OSAyNSAtNjkgNDUgLTU3IDExNyAxMyA4NCA0NiAxNzAgNzMgMTkxIDMxIDI1IDQ3IDIyIDE3IC0zIC0yMSAtMTcgLTIxCi0yMCAtNSAtMTQgNTQgMTggMTMyIDM1IDE2MCAzNSAzNiAwIDEyMiAtMjIgMTU0IC00MCAzNSAtMTggMTYgNyAtMjMgMzEgLTE3CjEwIC0yNiAxOSAtMTkgMTkgNiAwIDI3IC05IDQ2IC0yMHoiLz4KPHBhdGggZD0iTTI5NiA1MDQgYy0zMSAtMzEgLTExIC04NCAzMyAtODQgMTYgMCA0MSAzMCA0MSA1MCAwIDIyIC0yNSA1MCAtNDUKNTAgLTcgMCAtMjEgLTcgLTI5IC0xNnoiLz4KPHBhdGggZD0iTTQ1OCA1MDkgYy0xMCAtNiAtMTggLTIyIC0xOCAtMzcgMCAtNTQgNDggLTcwIDc2IC0yNyAxNSAyMyAxNSAyNyAwCjUwIC0xOCAyNyAtMzEgMzAgLTU4IDE0eiIvPgo8cGF0aCBkPSJNOTUwIDgzNSBjMCAtMzQgMSAtMzUgNDAgLTM1IGw0MCAwIDAgLTgwIGMwIC02OCAtMyAtODEgLTE5IC05MCAtMjgKLTE0IC0zOCAtMTMgLTU4IDkgLTEzIDEzIC0yNyAxNyAtNTAgMTQgLTM5IC02IC00MyAtMjggLTEyIC02NiA0NiAtNjAgMTUyCi01MyAxOTYgMTIgMjEgMzEgMjMgNDYgMjMgMTUyIGwwIDExOSAtODAgMCAtODAgMCAwIC0zNXoiLz4KPHBhdGggZD0iTTEyMTQgODYxIGMtNDggLTIxIC02NCAtNTggLTY0IC0xNDggMCAtNTQgNSAtOTQgMTUgLTExMiAzNyAtNzIgMTkzCi03MiAyMzAgMCAxMCAxOCAxNSA1OCAxNSAxMTMgMCA4MCAtMiA4OCAtMjkgMTE4IC0yNSAyOCAtMzUgMzIgLTg3IDM1IC0zMiAxCi02OSAtMSAtODAgLTZ6IG0xMDQgLTczIGM3IC03IDEyIC00MCAxMiAtNzggMCAtNzIgLTEwIC05MCAtNTAgLTkwIC00MCAwIC01MAoxOCAtNTAgOTAgMCAzOCA1IDcxIDEyIDc4IDE1IDE1IDYxIDE1IDc2IDB6Ii8+CjxwYXRoIGQ9Ik0xNDYwIDcxMCBsMCAtMTYwIDQwIDAgNDAgMCAwIDE2MCAwIDE2MCAtNDAgMCAtNDAgMCAwIC0xNjB6Ii8+CjxwYXRoIGQ9Ik0xNTkwIDcxMCBsMCAtMTYwIDQwIDAgNDAgMCAwIDgzIDAgODIgNDggLTgyIDQ3IC04MyA0MyAwIDQyIDAgMAoxNjEgMCAxNjAgLTQyIC0zIC00MyAtMyAwIC04OSBjMSAtNzAgLTIgLTg0IC0xMCAtNjUgLTUgMTMgLTI3IDU0IC00OCA5MiAtMzcKNjUgLTQwIDY3IC03OCA2NyBsLTM5IDAgMCAtMTYweiIvPgo8cGF0aCBkPSJNMTk4MCA3MzkgbDAgLTEzMSAzMCAtMjggYzM5IC0zNyA5NCAtNDYgMTQ2IC0yNSA2MyAyNSA3NCA1MyA3NCAxOTQKbDAgMTIxIC00MCAwIC00MCAwIDAgLTExNCBjMCAtMTI1IC02IC0xNDAgLTU3IC0xMzQgbC0yOCAzIC0zIDEyMyAtMyAxMjIgLTM5CjAgLTQwIDAgMCAtMTMxeiIvPgo8cGF0aCBkPSJNMjMyNCA4NjAgYy01MSAtMjAgLTcxIC05NyAtMzYgLTE0MCA5IC0xMiA0MiAtMzAgNzIgLTQwIDQwIC0xMyA1NQotMjQgNTUgLTM3IDAgLTI0IC00NiAtMjkgLTc4IC05IC0yMiAxNSAtMjUgMTUgLTQ2IC04IC0yOCAtMzAgLTIyIC00MiAzNSAtNjgKMzcgLTE2IDUwIC0xNyA4NSAtOCA1OCAxNiA4OSA1MCA4OSA5OCAwIDQ5IC0zNiA4OSAtODkgOTggLTQxIDcgLTYxIDIwIC02MQo0MCAwIDIxIDM4IDI3IDY5IDExIDI4IC0xNCAzMSAtMTMgNTEgOCBsMjEgMjMgLTI3IDIxIGMtMjggMjIgLTk5IDI4IC0xNDAgMTF6Ii8+CjxwYXRoIGQ9Ik0yNjYzIDg1MCBjLTQ1IC0yNyAtNTMgLTQ4IC01MyAtMTQ0IDAgLTc1IDMgLTg4IDI1IC0xMTQgNDggLTU3IDE1MAotNjEgMjExIC04IDIzIDIwIDI3IDMyIDMyIDk4IDYgOTQgLTkgMTQzIC01MiAxNjkgLTQyIDI1IC0xMjEgMjUgLTE2MyAtMXoKbTExMSAtNTYgYzEzIC01IDE2IC0yMiAxNiAtODQgMCAtNjIgLTMgLTc5IC0xNiAtODQgLTI1IC0xMCAtNTkgLTcgLTcyIDYgLTE2CjE2IC0xNiAxNDAgMCAxNTYgMTMgMTMgNDcgMTYgNzIgNnoiLz4KPHBhdGggZD0iTTI5MjAgNzEwIGwwIC0xNjAgNDEgMCA0MSAwIC00IDg4IC0zIDg5IDQ2IC04NiA0NiAtODYgNDcgLTMgNDcgLTMKLTMgMTU4IC0zIDE1OCAtMzcgMyAtMzggMyAwIC05MyAwIC05MyAtNTIgOTMgYy01MSA5MSAtNTIgOTIgLTkwIDkyIGwtMzggMCAwCi0xNjB6Ii8+CjxwYXRoIGQ9Ik0xNDc0IDQ5MSBjLTU2IC0yNSAtNzQgLTU0IC03NCAtMTE3IDAgLTQ1IDQgLTU2IDMyIC04MyAyMCAtMTkgNTQKLTM4IDg4IC00OCA2OSAtMTkgODQgLTMxIDY5IC00OSAtMTUgLTE4IC03MCAtMTggLTk1IDEgLTI3IDIwIC0zNCAxOSAtNzMgLTE3CmwtMzUgLTMxIDMyIC0yOCBjMTA1IC05NCAyOTIgLTM2IDI5MiA5MSAwIDY5IC01MiAxMTkgLTE0MiAxMzUgLTQzIDggLTYxIDI1Ci01MiA0OSA4IDIwIDU3IDIxIDg4IDEgMjEgLTE0IDI1IC0xMyA1OSAxMyBsMzYgMjkgLTI3IDI2IGMtNTMgNTAgLTEyNiA2MQotMTk4IDI4eiIvPgo8cGF0aCBkPSJNMTgyMCA0ODcgYy03MCAtMzcgLTg0IC02NCAtODkgLTE2OCAtMSAtNTAgMCAtMTA2IDMgLTEyNSAyNSAtMTMzCjIzMyAtMTY2IDMxMCAtNDkgMTYgMjQgMTYgMjUgLTI0IDQ1IC00NyAyNCAtNTcgMjUgLTc2IDUgLTE5IC0xOSAtNjggLTE5IC04MwotMSAtOCA5IC0xMSA0NiAtOSAxMDIgMyA4NyAzIDg5IDMxIDk5IDIyIDcgMzUgNiA1OCAtNyAyNSAtMTUgMzQgLTE1IDY2IC00CjQ1IDE1IDUxIDMzIDI0IDY4IC00NyA1OSAtMTM3IDc0IC0yMTEgMzV6Ii8+CjxwYXRoIGQ9Ik0yMjAwIDUwMyBjLTEwNCAtMzggLTEyMCAtNjYgLTEyMCAtMjEzIDAgLTk3IDMgLTExNyAyMSAtMTQ3IDU0IC04OAoyMjAgLTk3IDI5NiAtMTYgbDMzIDM0IDAgMTMxIDAgMTMxIC0zNCAzMSBjLTQ4IDQ2IC0xNDEgNjkgLTE5NiA0OXogbTEwMQotMTEzIGMxNyAtOSAxOSAtMjIgMTkgLTk4IDAgLTEwMCAtNyAtMTEyIC02MSAtMTEyIC01NyAwIC02OSAxOCAtNjkgMTEwIDAgNTgKNCA4MyAxNiA5NCAxOCAxOCA2NiAyMSA5NSA2eiIvPgo8cGF0aCBkPSJNODYwIDQxMSBsMCAtODkgNTIgLTQ2IGMyOSAtMjUgNTYgLTQ2IDYwIC00NiA1IDAgOCAzNiA4IDgwIGwwIDgwCjM4IDAgYzU0IDAgNjIgLTEzIDYyIC0xMDEgMCAtMTAxIC0xMCAtMTA5IC0xMzIgLTEwOSBsLTg4IDAgMCAtNTAgMCAtNTAgMTEzCjAgYzE4NyAwIDIyMiAzMyAyMjIgMjEwIDAgMTIxIC0xMyAxNTQgLTc1IDE4OSAtMzIgMTggLTU1IDIxIC0xNDkgMjEgbC0xMTEgMAowIC04OXoiLz4KPHBhdGggZD0iTTEyNDAgMjkwIGwwIC0yMTAgNTUgMCA1NSAwIDAgMjEwIDAgMjEwIC01NSAwIC01NSAwIDAgLTIxMHoiLz4KPHBhdGggZD0iTTI0ODAgMjkwIGwwIC0yMTAgNjAgMCA1OSAwIDMgNjggMyA2NyA0MiAtNjAgYzI0IC0zMyA0NCAtNjQgNDYgLTY4CjEgLTQgMzUgLTcgNzYgLTUgbDczIDMgLTQzIDU1IGMtMjQgMzAgLTQ3IDU3IC01MSA1OCAtMTQgNiAtOCAxOSAyNyA1NiAzMiAzNAozNSA0MyAzNSA5OCAwIDQ1IC01IDY3IC0yMSA4OSAtMzUgNTAgLTY2IDU5IC0xOTQgNTkgbC0xMTUgMCAwIC0yMTB6IG0yMTAgODUKYzEwIC0xMiAxMCAtMjEgMiAtNDAgLTEwIC0yMSAtMTkgLTI1IC01MiAtMjUgbC00MCAwIDAgNDAgYzAgNDAgMCA0MCAzOSA0MAoyMiAwIDQ0IC02IDUxIC0xNXoiLz4KPHBhdGggZD0iTTI4NjEgNDA4IGwwIC05MyA1MiAtNDIgNTIgLTQyIDMgODAgMyA4MCA0NyAtMyA0NyAtMyAzIC05MCBjNCAtMTEyCjEgLTExNSAtMTIwIC0xMTUgbC04OCAwIDAgLTUxIDAgLTUxIDEyMyA0IGMxMDMgMiAxMjYgNiAxNDkgMjMgNTAgMzggNTggNjQKNTggMTg2IDAgMTA2IC0xIDExNCAtMjYgMTQ3IC0zOSA1MCAtNzcgNjIgLTE5OSA2MiBsLTEwNSAwIDEgLTkyeiIvPgo8L2c+Cjwvc3ZnPgo="},34732:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDUiIGhlaWdodD0iNDUiIHZpZXdCb3g9IjAgMCA0NSA0NSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjQ1IiBoZWlnaHQ9IjQ1IiByeD0iMTAiIGZpbGw9IiM3MThDRDgiLz4KPHBhdGggZD0iTTI5LjY2NDYgMTYuMDQ0OEMyOC40MjE4IDE1LjQ2MzMgMjcuMDkyOSAxNS4wNDA3IDI1LjcwMzUgMTQuOEMyNS41MzI5IDE1LjEwODUgMjUuMzMzNSAxNS41MjM1IDI1LjE5NjEgMTUuODUzNUMyMy43MTkyIDE1LjYzMTQgMjIuMjU1OSAxNS42MzE0IDIwLjgwNjEgMTUuODUzNUMyMC42Njg3IDE1LjUyMzUgMjAuNDY0OCAxNS4xMDg1IDIwLjI5MjcgMTQuOEMxOC45MDE4IDE1LjA0MDcgMTcuNTcxNCAxNS40NjQ4IDE2LjMyODUgMTYuMDQ3OUMxMy44MjE3IDE5LjgzNiAxMy4xNDIxIDIzLjUzMDEgMTMuNDgxOSAyNy4xNzE3QzE1LjE0NDYgMjguNDEzNCAxNi43NTU5IDI5LjE2NzYgMTguMzQwMSAyOS42NjEyQzE4LjczMTIgMjkuMTIyOSAxOS4wOCAyOC41NTA2IDE5LjM4MDUgMjcuOTQ3NkMxOC44MDgyIDI3LjczMDEgMTguMjYgMjcuNDYxNyAxNy43NDIgMjcuMTUwMUMxNy44Nzk1IDI3LjA0ODMgMTguMDEzOSAyNi45NDE5IDE4LjE0MzcgMjYuODMyNEMyMS4zMDI5IDI4LjMxIDI0LjczNTUgMjguMzEgMjcuODU3IDI2LjgzMjRDMjcuOTg4NCAyNi45NDE5IDI4LjEyMjggMjcuMDQ4MyAyOC4yNTg3IDI3LjE1MDFDMjcuNzM5MiAyNy40NjMyIDI3LjE4OTUgMjcuNzMxNiAyNi42MTcyIDI3Ljk0OTFDMjYuOTE3NyAyOC41NTA2IDI3LjI2NSAyOS4xMjQ0IDI3LjY1NzYgMjkuNjYyN0MyOS4yNDMzIDI5LjE2OTIgMzAuODU2MSAyOC40MTQ5IDMyLjUxODggMjcuMTcxN0MzMi45MTc1IDIyLjk1MDIgMzEuODM3NyAxOS4yOSAyOS42NjQ2IDE2LjA0NDhaTTE5LjgxMDkgMjQuOTMyMkMxOC44NjI2IDI0LjkzMjIgMTguMDg0OCAyNC4wNDY4IDE4LjA4NDggMjIuOTY4N0MxOC4wODQ4IDIxLjg5MDUgMTguODQ2IDIxLjAwMzYgMTkuODEwOSAyMS4wMDM2QzIwLjc3NTkgMjEuMDAzNiAyMS41NTM2IDIxLjg4OSAyMS41MzcgMjIuOTY4N0MyMS41Mzg1IDI0LjA0NjggMjAuNzc1OSAyNC45MzIyIDE5LjgxMDkgMjQuOTMyMlpNMjYuMTg5OCAyNC45MzIyQzI1LjI0MTQgMjQuOTMyMiAyNC40NjM3IDI0LjA0NjggMjQuNDYzNyAyMi45Njg3QzI0LjQ2MzcgMjEuODkwNSAyNS4yMjQ4IDIxLjAwMzYgMjYuMTg5OCAyMS4wMDM2QzI3LjE1NDggMjEuMDAzNiAyNy45MzI1IDIxLjg4OSAyNy45MTU5IDIyLjk2ODdDMjcuOTE1OSAyNC4wNDY4IDI3LjE1NDggMjQuOTMyMiAyNi4xODk4IDI0LjkzMjJaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K"},47393:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDUiIGhlaWdodD0iNDUiIHZpZXdCb3g9IjAgMCA0NSA0NSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjQ1IiBoZWlnaHQ9IjQ1IiByeD0iMTAiIGZpbGw9IiM1NzVBNUQiLz4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzg4OV8yNzg5KSI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjMuMDAwNCAxMi4zOTk5QzE3LjY5NjQgMTIuMzk5OSAxMy40MDA0IDE2LjY5NTkgMTMuNDAwNCAyMS45OTk5QzEzLjQwMDQgMjYuMjQ3OSAxNi4xNDg0IDI5LjgzNTkgMTkuOTY0NCAzMS4xMDc5QzIwLjQ0NDQgMzEuMTkxOSAyMC42MjQ0IDMwLjkwMzkgMjAuNjI0NCAzMC42NTE5QzIwLjYyNDQgMzAuNDIzOSAyMC42MTI0IDI5LjY2NzkgMjAuNjEyNCAyOC44NjM5QzE4LjIwMDQgMjkuMzA3OSAxNy41NzY0IDI4LjI3NTkgMTcuMzg0NCAyNy43MzU5QzE3LjI3NjQgMjcuNDU5OSAxNi44MDg0IDI2LjYwNzkgMTYuNDAwNCAyNi4zNzk5QzE2LjA2NDQgMjYuMTk5OSAxNS41ODQ0IDI1Ljc1NTkgMTYuMzg4NCAyNS43NDM5QzE3LjE0NDQgMjUuNzMxOSAxNy42ODQ0IDI2LjQzOTkgMTcuODY0NCAyNi43Mjc5QzE4LjcyODQgMjguMTc5OSAyMC4xMDg0IDI3Ljc3MTkgMjAuNjYwNCAyNy41MTk5QzIwLjc0NDQgMjYuODk1OSAyMC45OTY0IDI2LjQ3NTkgMjEuMjcyNCAyNi4yMzU5QzE5LjEzNjQgMjUuOTk1OSAxNi45MDQ0IDI1LjE2NzkgMTYuOTA0NCAyMS40OTU5QzE2LjkwNDQgMjAuNDUxOSAxNy4yNzY0IDE5LjU4NzkgMTcuODg4NCAxOC45MTU5QzE3Ljc5MjQgMTguNjc1OSAxNy40NTY0IDE3LjY5MTkgMTcuOTg0NCAxNi4zNzE5QzE3Ljk4NDQgMTYuMzcxOSAxOC43ODg0IDE2LjExOTkgMjAuNjI0NCAxNy4zNTU5QzIxLjM5MjQgMTcuMTM5OSAyMi4yMDg0IDE3LjAzMTkgMjMuMDI0NCAxNy4wMzE5QzIzLjg0MDQgMTcuMDMxOSAyNC42NTY0IDE3LjEzOTkgMjUuNDI0NCAxNy4zNTU5QzI3LjI2MDQgMTYuMTA3OSAyOC4wNjQ0IDE2LjM3MTkgMjguMDY0NCAxNi4zNzE5QzI4LjU5MjQgMTcuNjkxOSAyOC4yNTY0IDE4LjY3NTkgMjguMTYwNCAxOC45MTU5QzI4Ljc3MjQgMTkuNTg3OSAyOS4xNDQ0IDIwLjQzOTkgMjkuMTQ0NCAyMS40OTU5QzI5LjE0NDQgMjUuMTc5OSAyNi45MDA0IDI1Ljk5NTkgMjQuNzY0NCAyNi4yMzU5QzI1LjExMjQgMjYuNTM1OSAyNS40MTI0IDI3LjExMTkgMjUuNDEyNCAyOC4wMTE5QzI1LjQxMjQgMjkuMjk1OSAyNS40MDA0IDMwLjMyNzkgMjUuNDAwNCAzMC42NTE5QzI1LjQwMDQgMzAuOTAzOSAyNS41ODA0IDMxLjIwMzkgMjYuMDYwNCAzMS4xMDc5QzI3Ljk2NjEgMzAuNDY0NSAyOS42MjIxIDI5LjIzOTYgMzAuNzk1MyAyNy42MDU4QzMxLjk2ODUgMjUuOTcxOSAzMi41OTk4IDI0LjAxMTMgMzIuNjAwNCAyMS45OTk5QzMyLjYwMDQgMTYuNjk1OSAyOC4zMDQ0IDEyLjM5OTkgMjMuMDAwNCAxMi4zOTk5WiIgZmlsbD0id2hpdGUiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF84ODlfMjc4OSI+CjxyZWN0IHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgZmlsbD0id2hpdGUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDExIDEwKSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="},83105:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDUiIGhlaWdodD0iNDUiIHZpZXdCb3g9IjAgMCA0NSA0NSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjQ1IiBoZWlnaHQ9IjQ1IiByeD0iMTAiIGZpbGw9IiMxRTlFRUUiLz4KPHBhdGggZD0iTTMyLjYwMDQgMTYuNDUxNUMzMS44OTQzIDE2Ljc2NDQgMzEuMTM1OCAxNi45NzU4IDMwLjMzODQgMTcuMDcxNEMzMS4xNjEyIDE2LjU3OSAzMS43NzY3IDE1LjgwNDIgMzIuMDcwMiAxNC44OTE0QzMxLjI5NzIgMTUuMzUwNiAzMC40NTEyIDE1LjY3MzggMjkuNTY4OSAxNS44NDY5QzI4Ljk3NTcgMTUuMjEzNSAyOC4xODk4IDE0Ljc5MzYgMjcuMzMzNSAxNC42NTI1QzI2LjQ3NzEgMTQuNTExNCAyNS41OTgxIDE0LjY1NyAyNC44MzMgMTUuMDY2N0MyNC4wNjc4IDE1LjQ3NjMgMjMuNDU5NCAxNi4xMjcxIDIzLjEwMiAxNi45MTgxQzIyLjc0NDYgMTcuNzA5IDIyLjY1ODQgMTguNTk1NyAyMi44NTY2IDE5LjQ0MDdDMjEuMjkwMyAxOS4zNjIxIDE5Ljc1ODEgMTguOTU1IDE4LjM1OTMgMTguMjQ1OEMxNi45NjA1IDE3LjUzNjcgMTUuNzI2NSAxNi41NDEzIDE0LjczNzMgMTUuMzI0NEMxNC4zOTkgMTUuOTA3OCAxNC4yMDQ1IDE2LjU4NDMgMTQuMjA0NSAxNy4zMDQ3QzE0LjIwNDIgMTcuOTUzMyAxNC4zNjM5IDE4LjU5MTkgMTQuNjY5NSAxOS4xNjRDMTQuOTc1MiAxOS43MzYgMTUuNDE3MyAyMC4yMjM4IDE1Ljk1NjYgMjAuNTgzOUMxNS4zMzExIDIwLjU2NCAxNC43MTk0IDIwLjM5NSAxNC4xNzI0IDIwLjA5MVYyMC4xNDE3QzE0LjE3MjQgMjEuMDUxMyAxNC40ODcgMjEuOTMzIDE1LjA2MyAyMi42MzdDMTUuNjM5IDIzLjM0MTEgMTYuNDQwOCAyMy44MjQyIDE3LjMzMjQgMjQuMDA0NEMxNi43NTIxIDI0LjE2MTQgMTYuMTQzOCAyNC4xODQ1IDE1LjU1MzMgMjQuMDcyQzE1LjgwNDggMjQuODU0NyAxNi4yOTQ4IDI1LjUzOTEgMTYuOTU0NyAyNi4wMjk1QzE3LjYxNDYgMjYuNTE5OCAxOC40MTEzIDI2Ljc5MTYgMTkuMjMzMyAyNi44MDY3QzE3LjgzNzkgMjcuOTAyIDE2LjExNDYgMjguNDk2MiAxNC4zNDA3IDI4LjQ5MzZDMTQuMDI2NSAyOC40OTM3IDEzLjcxMjUgMjguNDc1MyAxMy40MDA0IDI4LjQzODZDMTUuMjAxMSAyOS41OTY0IDE3LjI5NzIgMzAuMjEwOCAxOS40Mzc5IDMwLjIwODVDMjYuNjg0NiAzMC4yMDg1IDMwLjY0NjIgMjQuMjA2NSAzMC42NDYyIDE5LjAwMUMzMC42NDYyIDE4LjgzMTkgMzAuNjQyIDE4LjY2MTEgMzAuNjM0NCAxOC40OTE5QzMxLjQwNSAxNy45MzQ3IDMyLjA3MDEgMTcuMjQ0NiAzMi41OTg3IDE2LjQ1NDFMMzIuNjAwNCAxNi40NTE1WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg=="},75856:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAgMCA2MCA2MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzE2MF82MTg1KSI+CjxwYXRoIGQ9Ik0zMC42NzczIDUuMDIxMzNDMzAuMTU2NCA1LjAyMTMzIDI5LjY1NjggNC44MDk0OSAyOS4yODg1IDQuNDMyNDJDMjguOTIwMSA0LjA1NTM1IDI4LjcxMzIgMy41NDM5MyAyOC43MTMyIDMuMDEwNjdDMjguNzEzMiAyLjQ3NzQgMjguOTIwMSAxLjk2NTk4IDI5LjI4ODUgMS41ODg5MUMyOS42NTY4IDEuMjExODQgMzAuMTU2NCAxIDMwLjY3NzMgMUMzNi45MDggMS4wMDEyOCA0Mi45NjQ0IDMuMTA1MzkgNDcuOTA4OSA2Ljk4NjUzQzUyLjg1MzQgMTAuODY3NyA1Ni40MSAxNi4zMDkzIDU4LjAyODEgMjIuNDY4OUM1OS42NDYxIDI4LjYyODQgNTkuMjM1NCAzNS4xNjIyIDU2Ljg1OTQgNDEuMDU4N0M1NC40ODM1IDQ2Ljk1NTEgNTAuMjc0OCA1MS44ODUxIDQ0Ljg4NTIgNTUuMDg1NEMzOS40OTU1IDU4LjI4NTggMzMuMjI1NiA1OS41Nzc4IDI3LjA0NjEgNTguNzYxNUMyMC44NjY3IDU3Ljk0NTIgMTUuMTIyNSA1NS4wNjYxIDEwLjcwMyA1MC41N0M2LjI4MzU1IDQ2LjA3MzkgMy40MzUzMiA0MC4yMTE2IDIuNTk5MzUgMzMuODkwOUMxLjc2MzM5IDI3LjU3MDIgMi45ODYzNCAyMS4xNDM2IDYuMDc4ODMgMTUuNjA2M0w0LjI0NjkzIDE2LjMyMTdDMy42NTMzOSAxNi41NTMgMi45OTQzNyAxNi41MzM2IDIuNDE0ODUgMTYuMjY3NUMxLjgzNTM0IDE2LjAwMTUgMS4zODI3OSAxNS41MTA3IDEuMTU2NzcgMTQuOTAzMUMwLjkzMDc1MSAxNC4yOTU1IDAuOTQ5NzcgMTMuNjIwOCAxLjIwOTY0IDEzLjAyNzZDMS40Njk1MiAxMi40MzQzIDEuOTQ4OTYgMTEuOTcxIDIuNTQyNSAxMS43Mzk3TDguNzc0NzUgOS4zMjI5OUM5LjAwNDk1IDkuMjI1MTcgOS4yNDg2OSA5LjE2NDgzIDkuNDk3MTIgOS4xNDQxNkMxMC4wNjgxIDkuMDQ0NTcgMTAuNjU1IDkuMTYzMzkgMTEuMTQ2IDkuNDc3OTlDMTEuNjM3IDkuNzkyNTkgMTEuOTk3OSAxMC4yODEgMTIuMTYgMTAuODUwM0wxNC4xMTQ2IDE3LjM4MDJDMTQuMjczIDE3Ljk5MjggMTQuMTkyOSAxOC42NDQ0IDEzLjg5MTIgMTkuMTk3OEMxMy41ODk1IDE5Ljc1MTEgMTMuMDg5NyAyMC4xNjMgMTIuNDk3MiAyMC4zNDY2QzExLjkwNDcgMjAuNTMwMSAxMS4yNjU4IDIwLjQ3MTEgMTAuNzE0OSAyMC4xODJDMTAuMTY0MSAxOS44OTI4IDkuNzQ0NDMgMTkuMzk2IDkuNTQ0MzMgMTguNzk2M0w5LjI5ODgyIDE3LjkxNjdDNi43MDQ2MyAyMi43MTUgNS43MjM0NyAyOC4yNTMzIDYuNTA2NSAzMy42Nzg2QzcuMjg5NTIgMzkuMTAzOSA5Ljc5MzI4IDQ0LjExNTIgMTMuNjMyMSA0Ny45NDA1QzE3LjQ3MDkgNTEuNzY1OCAyMi40MzE4IDU0LjE5MjkgMjcuNzUwNyA1NC44NDhDMzMuMDY5NSA1NS41MDMgMzguNDUxMiA1NC4zNDk3IDQzLjA2NjggNTEuNTY1NkM0Ny42ODIzIDQ4Ljc4MTYgNTEuMjc1NyA0NC41MjEyIDUzLjI5MzMgMzkuNDQwOEM1NS4zMTEgMzQuMzYwNSA1NS42NDEgMjguNzQxOSA1NC4yMzI2IDIzLjQ1MDZDNTIuODI0MSAxOC4xNTk0IDQ5Ljc1NTMgMTMuNDg4OSA0NS40OTg5IDEwLjE1ODhDNDEuMjQyNCA2LjgyODU5IDM2LjAzNDUgNS4wMjM0MiAzMC42NzczIDUuMDIxMzNWNS4wMjEzM1pNMjAuMzc5OSA0MS42MjQxQzE5LjM1MDcgNDEuNjI0MSAxOC41MTUgNDAuOTEzNiAxOC41MTUgNDAuMDM4OEMxOC41MTUgMzkuMTY0IDE5LjM1MDcgMzguNDUzNSAyMC4zNzk5IDM4LjQ1MzVIMjIuMTY5NEMyMi40MzM5IDM2LjE5IDIzLjMyMzIgMzQuMDUwNyAyNC43MzMxIDMyLjI4NjFDMjUuNDM1IDMxLjM5MzcgMjYuMjcxOCAzMC42MjE5IDI3LjIxMTggMzBDMjYuMjcxIDI5LjM2NzUgMjUuNDM0MyAyOC41ODYgMjQuNzMzMSAyNy42ODQ4QzIzLjMyNDEgMjUuOTIxNiAyMi40MzQ4IDIzLjc4NDEgMjIuMTY5NCAyMS41MjIzSDIwLjM3OTlDMTkuMzUwNyAyMS41MjIzIDE4LjUxNSAyMC44MTE4IDE4LjUxNSAxOS45MzIyQzE4LjUxNSAxOS4wNTI1IDE5LjM1MDcgMTguMzQ2OCAyMC4zNzk5IDE4LjM0NjhINDAuOTIyN0M0MS45NTIgMTguMzQ2OCA0Mi44MTEzIDE5LjA1NzMgNDIuODExMyAxOS45MzIyQzQyLjgxMTMgMjAuODA3IDQxLjk3NTYgMjEuNTIyMyA0MC45MjI3IDIxLjUyMjNIMzkuMTI4NkMzOC44NjQ4IDIzLjc4MzYgMzcuOTc3MiAyNS45MjEyIDM2LjU2OTYgMjcuNjg0OEMzNS44NjY3IDI4LjU4NjIgMzUuMDI4NCAyOS4zNjc2IDM0LjA4NjIgMzBDMzUuMDI5NCAzMC42MjkxIDM1Ljg2NzkgMzEuNDA5MSAzNi41Njk2IDMyLjMxMDNDMzcuOTc4MiAzNC4wNzUxIDM4Ljg2NTkgMzYuMjE0NiAzOS4xMjg2IDM4LjQ3NzZINDAuOTIyN0M0MS45NTIgMzguNDc3NiA0Mi44MTEzIDM5LjE4ODEgNDIuODExMyA0MC4wNjNDNDIuODExMyA0MC45Mzc4IDQxLjk3NTYgNDEuNjQ4MyA0MC45MjI3IDQxLjY0ODNMMjAuMzc5OSA0MS42MjQxWk0zNi44ODEyIDM4LjMyM0MzNi42MTE2IDM2LjYyOTMgMzUuOTA5NiAzNS4wMzg2IDM0Ljg0NjMgMzMuNzEyQzMzLjYyODIgMzIuMTY1MyAzMi4wNzAxIDMxLjExMTYgMzAuNjUzNyAzMS4xMTE2QzI5LjIzNzMgMzEuMTExNiAyNy42ODM5IDMyLjE2NTMgMjYuNDY1OCAzMy43MTJDMjUuNDAxIDM1LjAzODIgMjQuNjk3NCAzNi42Mjg5IDI0LjQyNjIgMzguMzIzSDM2Ljg4MTJaTTM0Ljg0NjMgMjYuMjM5NkMzNS45MDg4IDI0LjkxMDcgMzYuNjEwNyAyMy4zMTg3IDM2Ljg4MTIgMjEuNjIzOEgyNC40MjE1QzI0LjY5MzYgMjMuMzE5MSAyNS4zOTcxIDI0LjkxMTEgMjYuNDYxMSAyNi4yMzk2QzI3LjY3OTIgMjcuNzg2MyAyOS4yMzI2IDI4LjgzNTEgMzAuNjQ5IDI4LjgzNTFDMzIuMDY1NCAyOC44MzUxIDMzLjYyMzUgMjcuNzg2MyAzNC44NDE2IDI2LjIzOTZIMzQuODQ2M1oiIHN0cm9rZT0iYmxhY2siLz4KPHBhdGggZD0iTTMwLjY3NzMgNS4wMjEzM0MzMC4xNTY0IDUuMDIxMzMgMjkuNjU2OCA0LjgwOTQ5IDI5LjI4ODUgNC40MzI0MkMyOC45MjAxIDQuMDU1MzUgMjguNzEzMiAzLjU0MzkzIDI4LjcxMzIgMy4wMTA2N0MyOC43MTMyIDIuNDc3NCAyOC45MjAxIDEuOTY1OTggMjkuMjg4NSAxLjU4ODkxQzI5LjY1NjggMS4yMTE4NCAzMC4xNTY0IDEgMzAuNjc3MyAxQzM2LjkwOCAxLjAwMTI4IDQyLjk2NDQgMy4xMDUzOSA0Ny45MDg5IDYuOTg2NTNDNTIuODUzNCAxMC44Njc3IDU2LjQxIDE2LjMwOTMgNTguMDI4MSAyMi40Njg5QzU5LjY0NjEgMjguNjI4NCA1OS4yMzU0IDM1LjE2MjIgNTYuODU5NCA0MS4wNTg3QzU0LjQ4MzUgNDYuOTU1MSA1MC4yNzQ4IDUxLjg4NTEgNDQuODg1MiA1NS4wODU0QzM5LjQ5NTUgNTguMjg1OCAzMy4yMjU2IDU5LjU3NzggMjcuMDQ2MSA1OC43NjE1QzIwLjg2NjcgNTcuOTQ1MiAxNS4xMjI1IDU1LjA2NjEgMTAuNzAzIDUwLjU3QzYuMjgzNTUgNDYuMDczOSAzLjQzNTMyIDQwLjIxMTYgMi41OTkzNSAzMy44OTA5QzEuNzYzMzkgMjcuNTcwMiAyLjk4NjM0IDIxLjE0MzYgNi4wNzg4MyAxNS42MDYzTDQuMjQ2OTMgMTYuMzIxN0MzLjY1MzM5IDE2LjU1MyAyLjk5NDM3IDE2LjUzMzYgMi40MTQ4NSAxNi4yNjc1QzEuODM1MzQgMTYuMDAxNSAxLjM4Mjc5IDE1LjUxMDcgMS4xNTY3NyAxNC45MDMxQzAuOTMwNzUxIDE0LjI5NTUgMC45NDk3NyAxMy42MjA4IDEuMjA5NjQgMTMuMDI3NkMxLjQ2OTUyIDEyLjQzNDMgMS45NDg5NiAxMS45NzEgMi41NDI1IDExLjczOTdMOC43NzQ3NSA5LjMyMjk5QzkuMDA0OTUgOS4yMjUxNyA5LjI0ODY5IDkuMTY0ODMgOS40OTcxMiA5LjE0NDE2QzEwLjA2ODEgOS4wNDQ1NyAxMC42NTUgOS4xNjMzOSAxMS4xNDYgOS40Nzc5OUMxMS42MzcgOS43OTI1OSAxMS45OTc5IDEwLjI4MSAxMi4xNiAxMC44NTAzTDE0LjExNDYgMTcuMzgwMkMxNC4yNzMgMTcuOTkyOCAxNC4xOTI5IDE4LjY0NDQgMTMuODkxMiAxOS4xOTc4QzEzLjU4OTUgMTkuNzUxMSAxMy4wODk3IDIwLjE2MyAxMi40OTcyIDIwLjM0NjZDMTEuOTA0NyAyMC41MzAxIDExLjI2NTggMjAuNDcxMSAxMC43MTQ5IDIwLjE4MkMxMC4xNjQxIDE5Ljg5MjggOS43NDQ0MyAxOS4zOTYgOS41NDQzMyAxOC43OTYzTDkuMjk4ODIgMTcuOTE2N0M2LjcwNDYzIDIyLjcxNSA1LjcyMzQ3IDI4LjI1MzMgNi41MDY1IDMzLjY3ODZDNy4yODk1MiAzOS4xMDM5IDkuNzkzMjggNDQuMTE1MiAxMy42MzIxIDQ3Ljk0MDVDMTcuNDcwOSA1MS43NjU4IDIyLjQzMTggNTQuMTkyOSAyNy43NTA3IDU0Ljg0OEMzMy4wNjk1IDU1LjUwMyAzOC40NTEyIDU0LjM0OTcgNDMuMDY2OCA1MS41NjU2QzQ3LjY4MjMgNDguNzgxNiA1MS4yNzU3IDQ0LjUyMTIgNTMuMjkzMyAzOS40NDA4QzU1LjMxMSAzNC4zNjA1IDU1LjY0MSAyOC43NDE5IDU0LjIzMjYgMjMuNDUwNkM1Mi44MjQxIDE4LjE1OTQgNDkuNzU1MyAxMy40ODg5IDQ1LjQ5ODkgMTAuMTU4OEM0MS4yNDI0IDYuODI4NTkgMzYuMDM0NSA1LjAyMzQyIDMwLjY3NzMgNS4wMjEzM1Y1LjAyMTMzWk0yMC4zNzk5IDQxLjYyNDFDMTkuMzUwNyA0MS42MjQxIDE4LjUxNSA0MC45MTM2IDE4LjUxNSA0MC4wMzg4QzE4LjUxNSAzOS4xNjQgMTkuMzUwNyAzOC40NTM1IDIwLjM3OTkgMzguNDUzNUgyMi4xNjk0QzIyLjQzMzkgMzYuMTkgMjMuMzIzMiAzNC4wNTA3IDI0LjczMzEgMzIuMjg2MUMyNS40MzUgMzEuMzkzNyAyNi4yNzE4IDMwLjYyMTkgMjcuMjExOCAzMEMyNi4yNzEgMjkuMzY3NSAyNS40MzQzIDI4LjU4NiAyNC43MzMxIDI3LjY4NDhDMjMuMzI0MSAyNS45MjE2IDIyLjQzNDggMjMuNzg0MSAyMi4xNjk0IDIxLjUyMjNIMjAuMzc5OUMxOS4zNTA3IDIxLjUyMjMgMTguNTE1IDIwLjgxMTggMTguNTE1IDE5LjkzMjJDMTguNTE1IDE5LjA1MjUgMTkuMzUwNyAxOC4zNDY4IDIwLjM3OTkgMTguMzQ2OEg0MC45MjI3QzQxLjk1MiAxOC4zNDY4IDQyLjgxMTMgMTkuMDU3MyA0Mi44MTEzIDE5LjkzMjJDNDIuODExMyAyMC44MDcgNDEuOTc1NiAyMS41MjIzIDQwLjkyMjcgMjEuNTIyM0gzOS4xMjg2QzM4Ljg2NDggMjMuNzgzNiAzNy45NzcyIDI1LjkyMTIgMzYuNTY5NiAyNy42ODQ4QzM1Ljg2NjcgMjguNTg2MiAzNS4wMjg0IDI5LjM2NzYgMzQuMDg2MiAzMEMzNS4wMjk0IDMwLjYyOTEgMzUuODY3OSAzMS40MDkxIDM2LjU2OTYgMzIuMzEwM0MzNy45NzgyIDM0LjA3NTEgMzguODY1OSAzNi4yMTQ2IDM5LjEyODYgMzguNDc3Nkg0MC45MjI3QzQxLjk1MiAzOC40Nzc2IDQyLjgxMTMgMzkuMTg4MSA0Mi44MTEzIDQwLjA2M0M0Mi44MTEzIDQwLjkzNzggNDEuOTc1NiA0MS42NDgzIDQwLjkyMjcgNDEuNjQ4M0wyMC4zNzk5IDQxLjYyNDFaTTM2Ljg4MTIgMzguMzIzQzM2LjYxMTYgMzYuNjI5MyAzNS45MDk2IDM1LjAzODYgMzQuODQ2MyAzMy43MTJDMzMuNjI4MiAzMi4xNjUzIDMyLjA3MDEgMzEuMTExNiAzMC42NTM3IDMxLjExMTZDMjkuMjM3MyAzMS4xMTE2IDI3LjY4MzkgMzIuMTY1MyAyNi40NjU4IDMzLjcxMkMyNS40MDEgMzUuMDM4MiAyNC42OTc0IDM2LjYyODkgMjQuNDI2MiAzOC4zMjNIMzYuODgxMlpNMzQuODQ2MyAyNi4yMzk2QzM1LjkwODggMjQuOTEwNyAzNi42MTA3IDIzLjMxODcgMzYuODgxMiAyMS42MjM4SDI0LjQyMTVDMjQuNjkzNiAyMy4zMTkxIDI1LjM5NzEgMjQuOTExMSAyNi40NjExIDI2LjIzOTZDMjcuNjc5MiAyNy43ODYzIDI5LjIzMjYgMjguODM1MSAzMC42NDkgMjguODM1MUMzMi4wNjU0IDI4LjgzNTEgMzMuNjIzNSAyNy43ODYzIDM0Ljg0MTYgMjYuMjM5NkgzNC44NDYzWiIgc3Ryb2tlPSJ1cmwoI3BhaW50MF9saW5lYXJfMTYwXzYxODUpIi8+CjwvZz4KPGRlZnM+CjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQwX2xpbmVhcl8xNjBfNjE4NSIgeDE9IjE1Ljk4MzMiIHkxPSI1LjM1IiB4Mj0iNDIuMDgzMyIgeTI9IjU3LjA2NjciIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KPHN0b3Agc3RvcC1jb2xvcj0iIzk5MzRCRCIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM0NDc5RTAiLz4KPC9saW5lYXJHcmFkaWVudD4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xNjBfNjE4NSI+CjxyZWN0IHdpZHRoPSI2MCIgaGVpZ2h0PSI2MCIgZmlsbD0id2hpdGUiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K"},11316:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I=N.p+"assets/images/test-runner-99a5135c441d1e51e1395f3b20326143.svg"},79969:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I=N.p+"assets/images/twitter-figma-6c7e0221ad0959047e3ed54363785314.svg"},88718:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDIwMDEwOTA0Ly9FTiIKImh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDEvUkVDLVNWRy0yMDAxMDkwNC9EVEQvc3ZnMTAuZHRkIj4KPHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTIxLjYgNS40NTE1NEMyMC44OTQgNS43NjQ0IDIwLjEzNTUgNS45NzU4IDE5LjMzODEgNi4wNzEzNUMyMC4xNjA4IDUuNTc5MDQgMjAuNzc2NCA0LjgwNDIxIDIxLjA2OTggMy44OTE0MkMyMC4yOTY4IDQuMzUwNTcgMTkuNDUwOCA0LjY3Mzc2IDE4LjU2ODYgNC44NDY5NEMxNy45NzUzIDQuMjEzNDggMTcuMTg5NSAzLjc5MzYxIDE2LjMzMzEgMy42NTI1MkMxNS40NzY4IDMuNTExNDMgMTQuNTk3OCAzLjY1NzAxIDEzLjgzMjYgNC4wNjY2N0MxMy4wNjc1IDQuNDc2MzMgMTIuNDU5IDUuMTI3MTMgMTIuMTAxNiA1LjkxODA1QzExLjc0NDMgNi43MDg5NyAxMS42NTggNy41OTU3NCAxMS44NTYzIDguNDQwN0MxMC4yOSA4LjM2MjA2IDguNzU3NzEgNy45NTQ5NSA3LjM1ODkzIDcuMjQ1OEM1Ljk2MDE1IDYuNTM2NjUgNC43MjYxMSA1LjU0MTMgMy43MzY5IDQuMzI0MzZDMy4zOTg2NyA0LjkwNzgyIDMuMjA0MTggNS41ODQyOSAzLjIwNDE4IDYuMzA0NzRDMy4yMDM4IDYuOTUzMyAzLjM2MzUyIDcuNTkxOTMgMy42NjkxNSA4LjE2Mzk3QzMuOTc0NzkgOC43MzYgNC40MTY5IDkuMjIzNzUgNC45NTYyNSA5LjU4Mzk0QzQuMzMwNzQgOS41NjQwNCAzLjcxOTA0IDkuMzk1MDIgMy4xNzIwNSA5LjA5MDk2VjkuMTQxN0MzLjE3MTk5IDEwLjA1MTMgMy40ODY2NCAxMC45MzMgNC4wNjI2MSAxMS42MzdDNC42Mzg1OSAxMi4zNDExIDUuNDQwNDEgMTIuODI0MiA2LjMzMjAzIDEzLjAwNDRDNS43NTE3NyAxMy4xNjE0IDUuMTQzNDEgMTMuMTg0NSA0LjU1MjkgMTMuMDcyQzQuODA0NDYgMTMuODU0NyA1LjI5NDQ4IDE0LjUzOTEgNS45NTQzNiAxNS4wMjk1QzYuNjE0MjMgMTUuNTE5OCA3LjQxMDkzIDE1Ljc5MTYgOC4yMzI5MSAxNS44MDY3QzYuODM3NTUgMTYuOTAyIDUuMTE0MjggMTcuNDk2MiAzLjM0MDMyIDE3LjQ5MzZDMy4wMjYwOCAxNy40OTM3IDIuNzEyMTEgMTcuNDc1MyAyLjQwMDAyIDE3LjQzODZDNC4yMDA2OSAxOC41OTY0IDYuMjk2OCAxOS4yMTA4IDguNDM3NTUgMTkuMjA4NUMxNS42ODQzIDE5LjIwODUgMTkuNjQ1OSAxMy4yMDY1IDE5LjY0NTkgOC4wMDA5OUMxOS42NDU5IDcuODMxODggMTkuNjQxNiA3LjY2MTA3IDE5LjYzNCA3LjQ5MTk1QzIwLjQwNDYgNi45MzQ2OCAyMS4wNjk4IDYuMjQ0NjEgMjEuNTk4MyA1LjQ1NDA3TDIxLjYgNS40NTE1NFoiIGZpbGw9IndoaXRlIi8+Cjwvc3ZnPgo="},95721:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE1LjU1MzUgNS4wMzcyOUMxNC41MTc4IDQuNTUyNzEgMTMuNDEwNCA0LjIwMDUzIDEyLjI1MjYgNEMxMi4xMTA0IDQuMjU3MDcgMTEuOTQ0MyA0LjYwMjg0IDExLjgyOTggNC44Nzc5QzEwLjU5OSA0LjY5MjgxIDkuMzc5NTYgNC42OTI4MSA4LjE3MTQ0IDQuODc3OUM4LjA1NjkzIDQuNjAyODQgNy44ODcwNCA0LjI1NzA3IDcuNzQzNTcgNEM2LjU4NDU0IDQuMjAwNTMgNS40NzU4NCA0LjU1NCA0LjQ0MDEzIDUuMDM5ODVDMi4zNTExIDguMTk2NjYgMS43ODQ3OSAxMS4yNzUxIDIuMDY3OTQgMTQuMzA5N0MzLjQ1MzUgMTUuMzQ0NCA0Ljc5NjI3IDE1Ljk3MyA2LjExNjM4IDE2LjM4NDNDNi40NDIzMyAxNS45MzU3IDYuNzMzMDIgMTUuNDU4OCA2Ljk4MzQ1IDE0Ljk1NjNDNi41MDY1IDE0Ljc3NSA2LjA0OTY5IDE0LjU1MTQgNS42MTgwNSAxNC4yOTE3QzUuNzMyNTYgMTQuMjA2OSA1Ljg0NDU3IDE0LjExODIgNS45NTI3OSAxNC4wMjdDOC41ODU0NiAxNS4yNTgzIDExLjQ0NTkgMTUuMjU4MyAxNC4wNDcyIDE0LjAyN0MxNC4xNTY2IDE0LjExODIgMTQuMjY4NiAxNC4yMDY5IDE0LjM4MTkgMTQuMjkxN0MxMy45NDkgMTQuNTUyNyAxMy40OTA5IDE0Ljc3NjMgMTMuMDE0IDE0Ljk1NzZDMTMuMjY0NCAxNS40NTg4IDEzLjU1MzggMTUuOTM3IDEzLjg4MSAxNi4zODU2QzE1LjIwMjQgMTUuOTc0MyAxNi41NDY0IDE1LjM0NTcgMTcuOTMyIDE0LjMwOTdDMTguMjY0MiAxMC43OTE4IDE3LjM2NDQgNy43NDE2NCAxNS41NTM1IDUuMDM3MjlaTTcuMzQyMTIgMTIuNDQzNEM2LjU1MTgxIDEyLjQ0MzQgNS45MDM3IDExLjcwNTYgNS45MDM3IDEwLjgwNzJDNS45MDM3IDkuOTA4NzMgNi41Mzc5NyA5LjE2OTY2IDcuMzQyMTIgOS4xNjk2NkM4LjE0NjI4IDkuMTY5NjYgOC43OTQzNyA5LjkwNzQzIDguNzgwNTMgMTAuODA3MkM4Ljc4MTc4IDExLjcwNTYgOC4xNDYyOCAxMi40NDM0IDcuMzQyMTIgMTIuNDQzNFpNMTIuNjU3OCAxMi40NDM0QzExLjg2NzUgMTIuNDQzNCAxMS4yMTk0IDExLjcwNTYgMTEuMjE5NCAxMC44MDcyQzExLjIxOTQgOS45MDg3MyAxMS44NTM3IDkuMTY5NjYgMTIuNjU3OCA5LjE2OTY2QzEzLjQ2MiA5LjE2OTY2IDE0LjExMDEgOS45MDc0MyAxNC4wOTYyIDEwLjgwNzJDMTQuMDk2MiAxMS43MDU2IDEzLjQ2MiAxMi40NDM0IDEyLjY1NzggMTIuNDQzNFoiIGZpbGw9IndoaXRlIi8+Cjwvc3ZnPgo="},2911:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE1LjU1MzUgNS4wMzcyOUMxNC41MTc4IDQuNTUyNzEgMTMuNDEwNCA0LjIwMDUzIDEyLjI1MjYgNEMxMi4xMTA0IDQuMjU3MDcgMTEuOTQ0MyA0LjYwMjg0IDExLjgyOTggNC44Nzc5QzEwLjU5OSA0LjY5MjgxIDkuMzc5NTYgNC42OTI4MSA4LjE3MTQ0IDQuODc3OUM4LjA1NjkzIDQuNjAyODQgNy44ODcwNCA0LjI1NzA3IDcuNzQzNTcgNEM2LjU4NDU0IDQuMjAwNTMgNS40NzU4NCA0LjU1NCA0LjQ0MDEzIDUuMDM5ODVDMi4zNTExIDguMTk2NjYgMS43ODQ3OSAxMS4yNzUxIDIuMDY3OTQgMTQuMzA5N0MzLjQ1MzUgMTUuMzQ0NCA0Ljc5NjI3IDE1Ljk3MyA2LjExNjM4IDE2LjM4NDNDNi40NDIzMyAxNS45MzU3IDYuNzMzMDIgMTUuNDU4OCA2Ljk4MzQ1IDE0Ljk1NjNDNi41MDY1IDE0Ljc3NSA2LjA0OTY5IDE0LjU1MTQgNS42MTgwNSAxNC4yOTE3QzUuNzMyNTYgMTQuMjA2OSA1Ljg0NDU3IDE0LjExODIgNS45NTI3OSAxNC4wMjdDOC41ODU0NiAxNS4yNTgzIDExLjQ0NTkgMTUuMjU4MyAxNC4wNDcyIDE0LjAyN0MxNC4xNTY2IDE0LjExODIgMTQuMjY4NiAxNC4yMDY5IDE0LjM4MTkgMTQuMjkxN0MxMy45NDkgMTQuNTUyNyAxMy40OTA5IDE0Ljc3NjMgMTMuMDE0IDE0Ljk1NzZDMTMuMjY0NCAxNS40NTg4IDEzLjU1MzggMTUuOTM3IDEzLjg4MSAxNi4zODU2QzE1LjIwMjQgMTUuOTc0MyAxNi41NDY0IDE1LjM0NTcgMTcuOTMyIDE0LjMwOTdDMTguMjY0MiAxMC43OTE4IDE3LjM2NDQgNy43NDE2NCAxNS41NTM1IDUuMDM3MjlaTTcuMzQyMTIgMTIuNDQzNEM2LjU1MTgxIDEyLjQ0MzQgNS45MDM3IDExLjcwNTYgNS45MDM3IDEwLjgwNzJDNS45MDM3IDkuOTA4NzMgNi41Mzc5NyA5LjE2OTY2IDcuMzQyMTIgOS4xNjk2NkM4LjE0NjI4IDkuMTY5NjYgOC43OTQzNyA5LjkwNzQzIDguNzgwNTMgMTAuODA3MkM4Ljc4MTc4IDExLjcwNTYgOC4xNDYyOCAxMi40NDM0IDcuMzQyMTIgMTIuNDQzNFpNMTIuNjU3OCAxMi40NDM0QzExLjg2NzUgMTIuNDQzNCAxMS4yMTk0IDExLjcwNTYgMTEuMjE5NCAxMC44MDcyQzExLjIxOTQgOS45MDg3MyAxMS44NTM3IDkuMTY5NjYgMTIuNjU3OCA5LjE2OTY2QzEzLjQ2MiA5LjE2OTY2IDE0LjExMDEgOS45MDc0MyAxNC4wOTYyIDEwLjgwNzJDMTQuMDk2MiAxMS43MDU2IDEzLjQ2MiAxMi40NDM0IDEyLjY1NzggMTIuNDQzNFoiIGZpbGw9IiMxMjE2MUIiLz4KPC9zdmc+Cg=="},86448:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTAgMkM1LjU4IDIgMiA1LjU4IDIgMTBDMiAxMy41NCA0LjI5IDE2LjUzIDcuNDcgMTcuNTlDNy44NyAxNy42NiA4LjAyIDE3LjQyIDguMDIgMTcuMjFDOC4wMiAxNy4wMiA4LjAxIDE2LjM5IDguMDEgMTUuNzJDNiAxNi4wOSA1LjQ4IDE1LjIzIDUuMzIgMTQuNzhDNS4yMyAxNC41NSA0Ljg0IDEzLjg0IDQuNSAxMy42NUM0LjIyIDEzLjUgMy44MiAxMy4xMyA0LjQ5IDEzLjEyQzUuMTIgMTMuMTEgNS41NyAxMy43IDUuNzIgMTMuOTRDNi40NCAxNS4xNSA3LjU5IDE0LjgxIDguMDUgMTQuNkM4LjEyIDE0LjA4IDguMzMgMTMuNzMgOC41NiAxMy41M0M2Ljc4IDEzLjMzIDQuOTIgMTIuNjQgNC45MiA5LjU4QzQuOTIgOC43MSA1LjIzIDcuOTkgNS43NCA3LjQzQzUuNjYgNy4yMyA1LjM4IDYuNDEgNS44MiA1LjMxQzUuODIgNS4zMSA2LjQ5IDUuMSA4LjAyIDYuMTNDOC42NiA1Ljk1IDkuMzQgNS44NiAxMC4wMiA1Ljg2QzEwLjcgNS44NiAxMS4zOCA1Ljk1IDEyLjAyIDYuMTNDMTMuNTUgNS4wOSAxNC4yMiA1LjMxIDE0LjIyIDUuMzFDMTQuNjYgNi40MSAxNC4zOCA3LjIzIDE0LjMgNy40M0MxNC44MSA3Ljk5IDE1LjEyIDguNyAxNS4xMiA5LjU4QzE1LjEyIDEyLjY1IDEzLjI1IDEzLjMzIDExLjQ3IDEzLjUzQzExLjc2IDEzLjc4IDEyLjAxIDE0LjI2IDEyLjAxIDE1LjAxQzEyLjAxIDE2LjA4IDEyIDE2Ljk0IDEyIDE3LjIxQzEyIDE3LjQyIDEyLjE1IDE3LjY3IDEyLjU1IDE3LjU5QzE0LjEzODEgMTcuMDUzOCAxNS41MTgxIDE2LjAzMzEgMTYuNDk1OCAxNC42NzE2QzE3LjQ3MzQgMTMuMzEgMTcuOTk5NSAxMS42NzYyIDE4IDEwQzE4IDUuNTggMTQuNDIgMiAxMCAyWiIgZmlsbD0iI2ZmZmZmZiIvPgo8L3N2Zz4K"},46752:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMCAyQzUuNTggMiAyIDUuNTggMiAxMEMyIDEzLjU0IDQuMjkgMTYuNTMgNy40NyAxNy41OUM3Ljg3IDE3LjY2IDguMDIgMTcuNDIgOC4wMiAxNy4yMUM4LjAyIDE3LjAyIDguMDEgMTYuMzkgOC4wMSAxNS43MkM2IDE2LjA5IDUuNDggMTUuMjMgNS4zMiAxNC43OEM1LjIzIDE0LjU1IDQuODQgMTMuODQgNC41IDEzLjY1QzQuMjIgMTMuNSAzLjgyIDEzLjEzIDQuNDkgMTMuMTJDNS4xMiAxMy4xMSA1LjU3IDEzLjcgNS43MiAxMy45NEM2LjQ0IDE1LjE1IDcuNTkgMTQuODEgOC4wNSAxNC42QzguMTIgMTQuMDggOC4zMyAxMy43MyA4LjU2IDEzLjUzQzYuNzggMTMuMzMgNC45MiAxMi42NCA0LjkyIDkuNThDNC45MiA4LjcxIDUuMjMgNy45OSA1Ljc0IDcuNDNDNS42NiA3LjIzIDUuMzggNi40MSA1LjgyIDUuMzFDNS44MiA1LjMxIDYuNDkgNS4xIDguMDIgNi4xM0M4LjY2IDUuOTUgOS4zNCA1Ljg2IDEwLjAyIDUuODZDMTAuNyA1Ljg2IDExLjM4IDUuOTUgMTIuMDIgNi4xM0MxMy41NSA1LjA5IDE0LjIyIDUuMzEgMTQuMjIgNS4zMUMxNC42NiA2LjQxIDE0LjM4IDcuMjMgMTQuMyA3LjQzQzE0LjgxIDcuOTkgMTUuMTIgOC43IDE1LjEyIDkuNThDMTUuMTIgMTIuNjUgMTMuMjUgMTMuMzMgMTEuNDcgMTMuNTNDMTEuNzYgMTMuNzggMTIuMDEgMTQuMjYgMTIuMDEgMTUuMDFDMTIuMDEgMTYuMDggMTIgMTYuOTQgMTIgMTcuMjFDMTIgMTcuNDIgMTIuMTUgMTcuNjcgMTIuNTUgMTcuNTlDMTQuMTM4MSAxNy4wNTM4IDE1LjUxODEgMTYuMDMzMSAxNi40OTU4IDE0LjY3MTZDMTcuNDczNCAxMy4zMSAxNy45OTk1IDExLjY3NjIgMTggMTBDMTggNS41OCAxNC40MiAyIDEwIDJaIiBmaWxsPSIjMTIxNjFCIi8+Cjwvc3ZnPgo="},15878:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMCAyQzUuNTggMiAyIDUuNTggMiAxMEMyIDEzLjU0IDQuMjkgMTYuNTMgNy40NyAxNy41OUM3Ljg3IDE3LjY2IDguMDIgMTcuNDIgOC4wMiAxNy4yMUM4LjAyIDE3LjAyIDguMDEgMTYuMzkgOC4wMSAxNS43MkM2IDE2LjA5IDUuNDggMTUuMjMgNS4zMiAxNC43OEM1LjIzIDE0LjU1IDQuODQgMTMuODQgNC41IDEzLjY1QzQuMjIgMTMuNSAzLjgyIDEzLjEzIDQuNDkgMTMuMTJDNS4xMiAxMy4xMSA1LjU3IDEzLjcgNS43MiAxMy45NEM2LjQ0IDE1LjE1IDcuNTkgMTQuODEgOC4wNSAxNC42QzguMTIgMTQuMDggOC4zMyAxMy43MyA4LjU2IDEzLjUzQzYuNzggMTMuMzMgNC45MiAxMi42NCA0LjkyIDkuNThDNC45MiA4LjcxIDUuMjMgNy45OSA1Ljc0IDcuNDNDNS42NiA3LjIzIDUuMzggNi40MSA1LjgyIDUuMzFDNS44MiA1LjMxIDYuNDkgNS4xIDguMDIgNi4xM0M4LjY2IDUuOTUgOS4zNCA1Ljg2IDEwLjAyIDUuODZDMTAuNyA1Ljg2IDExLjM4IDUuOTUgMTIuMDIgNi4xM0MxMy41NSA1LjA5IDE0LjIyIDUuMzEgMTQuMjIgNS4zMUMxNC42NiA2LjQxIDE0LjM4IDcuMjMgMTQuMyA3LjQzQzE0LjgxIDcuOTkgMTUuMTIgOC43IDE1LjEyIDkuNThDMTUuMTIgMTIuNjUgMTMuMjUgMTMuMzMgMTEuNDcgMTMuNTNDMTEuNzYgMTMuNzggMTIuMDEgMTQuMjYgMTIuMDEgMTUuMDFDMTIuMDEgMTYuMDggMTIgMTYuOTQgMTIgMTcuMjFDMTIgMTcuNDIgMTIuMTUgMTcuNjcgMTIuNTUgMTcuNTlDMTQuMTM4MSAxNy4wNTM4IDE1LjUxODEgMTYuMDMzMSAxNi40OTU4IDE0LjY3MTZDMTcuNDczNCAxMy4zMSAxNy45OTk1IDExLjY3NjIgMTggMTBDMTggNS41OCAxNC40MiAyIDEwIDJaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K"},20566:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMCAyQzUuNTggMiAyIDUuNTggMiAxMEMyIDEzLjU0IDQuMjkgMTYuNTMgNy40NyAxNy41OUM3Ljg3IDE3LjY2IDguMDIgMTcuNDIgOC4wMiAxNy4yMUM4LjAyIDE3LjAyIDguMDEgMTYuMzkgOC4wMSAxNS43MkM2IDE2LjA5IDUuNDggMTUuMjMgNS4zMiAxNC43OEM1LjIzIDE0LjU1IDQuODQgMTMuODQgNC41IDEzLjY1QzQuMjIgMTMuNSAzLjgyIDEzLjEzIDQuNDkgMTMuMTJDNS4xMiAxMy4xMSA1LjU3IDEzLjcgNS43MiAxMy45NEM2LjQ0IDE1LjE1IDcuNTkgMTQuODEgOC4wNSAxNC42QzguMTIgMTQuMDggOC4zMyAxMy43MyA4LjU2IDEzLjUzQzYuNzggMTMuMzMgNC45MiAxMi42NCA0LjkyIDkuNThDNC45MiA4LjcxIDUuMjMgNy45OSA1Ljc0IDcuNDNDNS42NiA3LjIzIDUuMzggNi40MSA1LjgyIDUuMzFDNS44MiA1LjMxIDYuNDkgNS4xIDguMDIgNi4xM0M4LjY2IDUuOTUgOS4zNCA1Ljg2IDEwLjAyIDUuODZDMTAuNyA1Ljg2IDExLjM4IDUuOTUgMTIuMDIgNi4xM0MxMy41NSA1LjA5IDE0LjIyIDUuMzEgMTQuMjIgNS4zMUMxNC42NiA2LjQxIDE0LjM4IDcuMjMgMTQuMyA3LjQzQzE0LjgxIDcuOTkgMTUuMTIgOC43IDE1LjEyIDkuNThDMTUuMTIgMTIuNjUgMTMuMjUgMTMuMzMgMTEuNDcgMTMuNTNDMTEuNzYgMTMuNzggMTIuMDEgMTQuMjYgMTIuMDEgMTUuMDFDMTIuMDEgMTYuMDggMTIgMTYuOTQgMTIgMTcuMjFDMTIgMTcuNDIgMTIuMTUgMTcuNjcgMTIuNTUgMTcuNTlDMTQuMTM4MSAxNy4wNTM4IDE1LjUxODEgMTYuMDMzMSAxNi40OTU4IDE0LjY3MTZDMTcuNDczNCAxMy4zMSAxNy45OTk1IDExLjY3NjIgMTggMTBDMTggNS41OCAxNC40MiAyIDEwIDJaIiBmaWxsPSIjMTIxNjFCIi8+Cjwvc3ZnPgo="},73720:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzczNF8yNTM3KSIgZmlsdGVyPSJ1cmwoI2ZpbHRlcjBfZF83MzRfMjUzNykiPgo8cGF0aCBkPSJNMjggMEg0VjI0SDI4VjBaIi8+CjxwYXRoIGQ9Ik0xMyA3Ljk5OTk4QzExLjMzMyA4LjY2Njk4IDcuNiAxMC43IDYgMTMuNU0xNS41IDExQzEzLjE2NyAxMi4zMzMgOCAxNi40IDYgMjJNMTYuNSAxNC41QzE1LjMzMyAxNS42NjcgMTIuNyAxOC42IDExLjUgMjFNMTguNjc0IDYuNDQ5OThMMTkuMzQ3IDMuMTY0OThMMjEuNTcyIDUuNjc0OThMMjQuNTk5IDUuMzgwOThMMjIuODMxIDguNDQyOThMMjQuNTc0IDExLjA4MkwyMS4yODggMTAuNDA5TDE4Ljc3OCAxMi42MzRMMTguOTY4IDkuNDc3OThMMTUuOTA2IDcuNzA5OThMMTguNjc0IDYuNDQ5OThaIiBzdHJva2U9IiMxYzFlMjEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8L2c+CjxkZWZzPgo8ZmlsdGVyIGlkPSJmaWx0ZXIwX2RfNzM0XzI1MzciIHg9IjAiIHk9IjAiIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPgo8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCIvPgo8ZmVDb2xvck1hdHJpeCBpbj0iU291cmNlQWxwaGEiIHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAxMjcgMCIgcmVzdWx0PSJoYXJkQWxwaGEiLz4KPGZlQ29tcG9zaXRlIGluMj0iaGFyZEFscGhhIiBvcGVyYXRvcj0ib3V0Ii8+CjxmZUNvbG9yTWF0cml4IHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwLjI1IDAiLz4KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbjI9IkJhY2tncm91bmRJbWFnZUZpeCIgcmVzdWx0PSJlZmZlY3QxX2Ryb3BTaGFkb3dfNzM0XzI1MzciLz4KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJlZmZlY3QxX2Ryb3BTaGFkb3dfNzM0XzI1MzciIHJlc3VsdD0ic2hhcGUiLz4KPC9maWx0ZXI+CjxjbGlwUGF0aCBpZD0iY2xpcDBfNzM0XzI1MzciPgo8cmVjdCB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGZpbGw9Im5vbmUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDQpIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg=="},42658:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzczNF8yNTM3KSIgZmlsdGVyPSJ1cmwoI2ZpbHRlcjBfZF83MzRfMjUzNykiPgo8cGF0aCBkPSJNMjggMEg0VjI0SDI4VjBaIi8+CjxwYXRoIGQ9Ik0xMyA3Ljk5OTk4QzExLjMzMyA4LjY2Njk4IDcuNiAxMC43IDYgMTMuNU0xNS41IDExQzEzLjE2NyAxMi4zMzMgOCAxNi40IDYgMjJNMTYuNSAxNC41QzE1LjMzMyAxNS42NjcgMTIuNyAxOC42IDExLjUgMjFNMTguNjc0IDYuNDQ5OThMMTkuMzQ3IDMuMTY0OThMMjEuNTcyIDUuNjc0OThMMjQuNTk5IDUuMzgwOThMMjIuODMxIDguNDQyOThMMjQuNTc0IDExLjA4MkwyMS4yODggMTAuNDA5TDE4Ljc3OCAxMi42MzRMMTguOTY4IDkuNDc3OThMMTUuOTA2IDcuNzA5OThMMTguNjc0IDYuNDQ5OThaIiBzdHJva2U9IiMwNDhGQzAiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8L2c+CjxkZWZzPgo8ZmlsdGVyIGlkPSJmaWx0ZXIwX2RfNzM0XzI1MzciIHg9IjAiIHk9IjAiIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPgo8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCIvPgo8ZmVDb2xvck1hdHJpeCBpbj0iU291cmNlQWxwaGEiIHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAxMjcgMCIgcmVzdWx0PSJoYXJkQWxwaGEiLz4KPGZlQ29tcG9zaXRlIGluMj0iaGFyZEFscGhhIiBvcGVyYXRvcj0ib3V0Ii8+CjxmZUNvbG9yTWF0cml4IHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwLjI1IDAiLz4KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbjI9IkJhY2tncm91bmRJbWFnZUZpeCIgcmVzdWx0PSJlZmZlY3QxX2Ryb3BTaGFkb3dfNzM0XzI1MzciLz4KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJlZmZlY3QxX2Ryb3BTaGFkb3dfNzM0XzI1MzciIHJlc3VsdD0ic2hhcGUiLz4KPC9maWx0ZXI+CjxjbGlwUGF0aCBpZD0iY2xpcDBfNzM0XzI1MzciPgo8cmVjdCB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGZpbGw9Im5vbmUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDQpIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg=="},1819:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzczNF8yNTM3KSIgZmlsdGVyPSJ1cmwoI2ZpbHRlcjBfZF83MzRfMjUzNykiPgo8cGF0aCBkPSJNMjggMEg0VjI0SDI4VjBaIi8+CjxwYXRoIGQ9Ik0xMyA3Ljk5OTk4QzExLjMzMyA4LjY2Njk4IDcuNiAxMC43IDYgMTMuNU0xNS41IDExQzEzLjE2NyAxMi4zMzMgOCAxNi40IDYgMjJNMTYuNSAxNC41QzE1LjMzMyAxNS42NjcgMTIuNyAxOC42IDExLjUgMjFNMTguNjc0IDYuNDQ5OThMMTkuMzQ3IDMuMTY0OThMMjEuNTcyIDUuNjc0OThMMjQuNTk5IDUuMzgwOThMMjIuODMxIDguNDQyOThMMjQuNTc0IDExLjA4MkwyMS4yODggMTAuNDA5TDE4Ljc3OCAxMi42MzRMMTguOTY4IDkuNDc3OThMMTUuOTA2IDcuNzA5OThMMTguNjc0IDYuNDQ5OThaIiBzdHJva2U9IndoaXRlIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9nPgo8ZGVmcz4KPGZpbHRlciBpZD0iZmlsdGVyMF9kXzczNF8yNTM3IiB4PSIwIiB5PSIwIiB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj4KPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz4KPGZlQ29sb3JNYXRyaXggaW49IlNvdXJjZUFscGhhIiB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDAiIHJlc3VsdD0iaGFyZEFscGhhIi8+CjxmZUNvbXBvc2l0ZSBpbjI9ImhhcmRBbHBoYSIgb3BlcmF0b3I9Im91dCIvPgo8ZmVDb2xvck1hdHJpeCB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMC4yNSAwIi8+CjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW4yPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHJlc3VsdD0iZWZmZWN0MV9kcm9wU2hhZG93XzczNF8yNTM3Ii8+CjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iZWZmZWN0MV9kcm9wU2hhZG93XzczNF8yNTM3IiByZXN1bHQ9InNoYXBlIi8+CjwvZmlsdGVyPgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzczNF8yNTM3Ij4KPHJlY3Qgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBmaWxsPSJub25lIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg0KSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="},25200:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE4IDQuNTQyODdDMTcuNDExNiA0LjgwMzU5IDE2Ljc3OTUgNC45Nzk3NSAxNi4xMTUgNS4wNTkzOEMxNi44MDA3IDQuNjQ5MTIgMTcuMzEzNiA0LjAwMzQyIDE3LjU1ODIgMy4yNDI3N0MxNi45MTQgMy42MjUzOSAxNi4yMDkgMy44OTQ3MiAxNS40NzM4IDQuMDM5MDNDMTQuOTc5NCAzLjUxMTE1IDE0LjMyNDUgMy4xNjEyNiAxMy42MTA5IDMuMDQzNjhDMTIuODk3MyAyLjkyNjExIDEyLjE2NDggMy4wNDc0MyAxMS41MjcyIDMuMzg4ODFDMTAuODg5NSAzLjczMDE5IDEwLjM4MjUgNC4yNzI1MyAxMC4wODQ3IDQuOTMxNjNDOS43ODY4NiA1LjU5MDczIDkuNzE0OTkgNi4zMjk3MSA5Ljg4MDIxIDcuMDMzODRDOC41NzQ5NiA2Ljk2ODMgNy4yOTgwNyA2LjYyOTA0IDYuMTMyNDIgNi4wMzgwOUM0Ljk2Njc3IDUuNDQ3MTMgMy45Mzg0MSA0LjYxNzY3IDMuMTE0MDcgMy42MDM1NUMyLjgzMjIgNC4wODk3NyAyLjY3MDEzIDQuNjUzNSAyLjY3MDEzIDUuMjUzODdDMi42Njk4MiA1Ljc5NDM0IDIuODAyOTEgNi4zMjY1MyAzLjA1NzYxIDYuODAzMjJDMy4zMTIzIDcuMjc5OTIgMy42ODA3MyA3LjY4NjM4IDQuMTMwMTkgNy45ODY1NEMzLjYwODkzIDcuOTY5OTUgMy4wOTkxOCA3LjgyOTEgMi42NDMzNSA3LjU3NTcyVjcuNjE4QzIuNjQzMyA4LjM3NjAzIDIuOTA1NTEgOS4xMTA3MyAzLjM4NTQ5IDkuNjk3NDVDMy44NjU0NyAxMC4yODQyIDQuNTMzNjUgMTAuNjg2NyA1LjI3NjY3IDEwLjgzNjlDNC43OTMxMiAxMC45Njc4IDQuMjg2MTUgMTAuOTg3IDMuNzk0MDYgMTAuODkzM0M0LjAwMzcgMTEuNTQ1NSA0LjQxMjA1IDEyLjExNTkgNC45NjE5NCAxMi41MjQ1QzUuNTExODQgMTIuOTMzMSA2LjE3NTc1IDEzLjE1OTYgNi44NjA3NCAxMy4xNzIxQzUuNjk3OTQgMTQuMDg1IDQuMjYxODggMTQuNTgwMSAyLjc4MzU4IDE0LjU3NzlDMi41MjE3MiAxNC41NzggMi4yNjAwNyAxNC41NjI3IDIgMTQuNTMyMUMzLjUwMDU2IDE1LjQ5NjkgNS4yNDczMSAxNi4wMDkgNy4wMzEyNyAxNi4wMDdDMTMuMDcwMiAxNi4wMDcgMTYuMzcxNSAxMS4wMDUzIDE2LjM3MTUgNi42Njc0MUMxNi4zNzE1IDYuNTI2NDggMTYuMzY4IDYuMzg0MTQgMTYuMzYxNyA2LjI0MzIxQzE3LjAwMzggNS43Nzg4MiAxNy41NTgxIDUuMjAzNzYgMTcuOTk4NiA0LjU0NDk4TDE4IDQuNTQyODdaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K"},1088:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE4IDQuNTQyODdDMTcuNDExNiA0LjgwMzU5IDE2Ljc3OTUgNC45Nzk3NSAxNi4xMTUgNS4wNTkzOEMxNi44MDA3IDQuNjQ5MTIgMTcuMzEzNiA0LjAwMzQyIDE3LjU1ODIgMy4yNDI3N0MxNi45MTQgMy42MjUzOSAxNi4yMDkgMy44OTQ3MiAxNS40NzM4IDQuMDM5MDNDMTQuOTc5NCAzLjUxMTE1IDE0LjMyNDUgMy4xNjEyNiAxMy42MTA5IDMuMDQzNjhDMTIuODk3MyAyLjkyNjExIDEyLjE2NDggMy4wNDc0MyAxMS41MjcyIDMuMzg4ODFDMTAuODg5NSAzLjczMDE5IDEwLjM4MjUgNC4yNzI1MyAxMC4wODQ3IDQuOTMxNjNDOS43ODY4NiA1LjU5MDczIDkuNzE0OTkgNi4zMjk3MSA5Ljg4MDIxIDcuMDMzODRDOC41NzQ5NiA2Ljk2ODMgNy4yOTgwNyA2LjYyOTA0IDYuMTMyNDIgNi4wMzgwOUM0Ljk2Njc3IDUuNDQ3MTMgMy45Mzg0MSA0LjYxNzY3IDMuMTE0MDcgMy42MDM1NUMyLjgzMjIgNC4wODk3NyAyLjY3MDEzIDQuNjUzNSAyLjY3MDEzIDUuMjUzODdDMi42Njk4MiA1Ljc5NDM0IDIuODAyOTEgNi4zMjY1MyAzLjA1NzYxIDYuODAzMjJDMy4zMTIzIDcuMjc5OTIgMy42ODA3MyA3LjY4NjM4IDQuMTMwMTkgNy45ODY1NEMzLjYwODkzIDcuOTY5OTUgMy4wOTkxOCA3LjgyOTEgMi42NDMzNSA3LjU3NTcyVjcuNjE4QzIuNjQzMyA4LjM3NjAzIDIuOTA1NTEgOS4xMTA3MyAzLjM4NTQ5IDkuNjk3NDVDMy44NjU0NyAxMC4yODQyIDQuNTMzNjUgMTAuNjg2NyA1LjI3NjY3IDEwLjgzNjlDNC43OTMxMiAxMC45Njc4IDQuMjg2MTUgMTAuOTg3IDMuNzk0MDYgMTAuODkzM0M0LjAwMzcgMTEuNTQ1NSA0LjQxMjA1IDEyLjExNTkgNC45NjE5NCAxMi41MjQ1QzUuNTExODQgMTIuOTMzMSA2LjE3NTc1IDEzLjE1OTYgNi44NjA3NCAxMy4xNzIxQzUuNjk3OTQgMTQuMDg1IDQuMjYxODggMTQuNTgwMSAyLjc4MzU4IDE0LjU3NzlDMi41MjE3MiAxNC41NzggMi4yNjAwNyAxNC41NjI3IDIgMTQuNTMyMUMzLjUwMDU2IDE1LjQ5NjkgNS4yNDczMSAxNi4wMDkgNy4wMzEyNyAxNi4wMDdDMTMuMDcwMiAxNi4wMDcgMTYuMzcxNSAxMS4wMDUzIDE2LjM3MTUgNi42Njc0MUMxNi4zNzE1IDYuNTI2NDggMTYuMzY4IDYuMzg0MTQgMTYuMzYxNyA2LjI0MzIxQzE3LjAwMzggNS43Nzg4MiAxNy41NTgxIDUuMjAzNzYgMTcuOTk4NiA0LjU0NDk4TDE4IDQuNTQyODdaIiBmaWxsPSIjMTIxNjFCIi8+Cjwvc3ZnPgo="},35170:(M,A,N)=>{var I={"./img/blog/copilot-demo.gif":10702,"./img/blog/v20-logger-options.png":31013,"./img/blog/v20-perfetto-example.png":46156,"./img/cover.jpeg":80036,"./img/detox.png":3716,"./img/favicon.ico":32532,"./img/homepage/ci.svg":55261,"./img/homepage/cross-platform.svg":24161,"./img/homepage/debug.svg":38242,"./img/homepage/devices.svg":24006,"./img/homepage/discord-figma.svg":37964,"./img/homepage/flag_of_ukraine_with_waves.svg":82641,"./img/homepage/gh-star-figma.svg":49678,"./img/homepage/github.svg":97988,"./img/homepage/hero-image.webp":62714,"./img/homepage/join-us-on-disc.svg":54606,"./img/homepage/join-us-white.svg":68350,"./img/homepage/mobile-discord.svg":34732,"./img/homepage/mobile-github.svg":47393,"./img/homepage/mobile-twitter.svg":83105,"./img/homepage/sync.svg":75856,"./img/homepage/test-runner.svg":11316,"./img/homepage/twitter-figma.svg":79969,"./img/homepage/twitter-logo.svg":88718,"./img/logo.png":4693,"./img/showcase/bolt-food.webp":3617,"./img/showcase/currenxie.webp":45480,"./img/showcase/discord-footer-dark.svg":95721,"./img/showcase/discord-footer-light.svg":2911,"./img/showcase/expo.png":29268,"./img/showcase/gh-footer-dark.svg":86448,"./img/showcase/gh-footer-light.svg":46752,"./img/showcase/gh-nav-dark.svg":15878,"./img/showcase/gh-nav-light.svg":20566,"./img/showcase/hudl.webp":3354,"./img/showcase/maiia.webp":9940,"./img/showcase/mercari.webp":58686,"./img/showcase/next.jpg":76187,"./img/showcase/noona.webp":70370,"./img/showcase/omnon.webp":43864,"./img/showcase/pitch.webp":80141,"./img/showcase/player-data.webp":86303,"./img/showcase/react-native.webp":30080,"./img/showcase/rn-datetimepicker.png":80754,"./img/showcase/rocket-chat.webp":50642,"./img/showcase/showcase-icon-dark.svg":73720,"./img/showcase/showcase-icon-hover.svg":42658,"./img/showcase/showcase-icon-white.svg":1819,"./img/showcase/showcase-illustration.png":90052,"./img/showcase/twitter-footer-dark.svg":25200,"./img/showcase/twitter-footer-light.svg":1088,"./img/showcase/valora.webp":79792,"./img/showcase/wealthsimple.png":33341,"./img/showcase/wix-dine.webp":17404,"./img/showcase/wix-fit.webp":43017,"./img/showcase/wix-owner.webp":85805,"./img/showcase/wix-spaces.webp":813};function D(M){var A=g(M);return N(A)}function g(M){if(!N.o(I,M)){var A=new Error("Cannot find module '"+M+"'");throw A.code="MODULE_NOT_FOUND",A}return I[M]}D.keys=function(){return Object.keys(I)},D.resolve=g,M.exports=D,D.id=35170}}]); \ No newline at end of file diff --git a/assets/js/5fc994c2.e3cf7671.js b/assets/js/5fc994c2.e3cf7671.js deleted file mode 100644 index df6713e10f..0000000000 --- a/assets/js/5fc994c2.e3cf7671.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1874],{80919:(M,A,N)=>{"use strict";N.d(A,{A:()=>y});var I=N(96540);const D="banner_SLir",g="link_SNdm",j="uaFlag_wtbk",z="hashtag_KSDo";var T=N(75489);const y=M=>I.createElement("div",{className:D},I.createElement(T.A,{to:"https://stand-with-ukraine.pp.ua",className:g},I.createElement("span",{className:j})," This project is created with substantial contributions from our Ukrainian colleagues."," ",I.createElement("span",{className:z},"#StandWithUkraine")))},22515:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>d});var I=N(96540),D=N(5260),g=N(97173),j=N(80919),z=N(20053),T=N(75489);const y={heroBanner:"heroBanner_Yl3D",button:"button_LbLB","button--secondary":"button--secondary_kWrE"};function u(){return I.createElement("section",{className:(0,z.A)("hero hero--primary",y.heroBanner)},I.createElement("div",{className:"container"},I.createElement("h1",{className:"hero__title"},"Users Showcase"),I.createElement("p",{className:"hero__subtitle"},"Check out who is using Detox to Gray box test their React Native Apps"),I.createElement("a",{href:"https://forms.gle/C1BWzd8k5LhogDtM7",target:"_blank",className:y.button},"Join the Showcase!")))}var L=N(58168);const i="card_hv2w",c="title_QZpZ",O="image_IX72",E="storeButton_Omkx";const x=function(M){let{className:A,title:D,titleFontSize:g,image:j,linkGoogle:y,linkApple:u,linkGitHub:L,linkWebsite:x}=M;return I.createElement("li",{className:(0,z.A)(A,i)},I.createElement("img",{src:N(35170)(`./${j}`).default,className:O}),I.createElement("span",{className:c,style:{fontSize:g}},D),I.createElement("div",null,y&&I.createElement(T.A,{className:E,href:y},"Google Play"),u&&I.createElement(T.A,{className:E,href:u},"App Store"),L&&I.createElement(T.A,{className:E,href:L},"GitHub"),x&&I.createElement(T.A,{className:E,href:x},"Website")))},C=JSON.parse('[{"title":"Wix Spaces","image":"img/showcase/wix-spaces.webp","linkGoogle":"https://play.google.com/store/apps/details?id=com.wix.android","linkApple":"https://apps.apple.com/us/app/spaces-follow-businesses/id1099748482","shouldStayOnTop":true},{"title":"Wix Owner","image":"img/showcase/wix-owner.webp","linkGoogle":"https://play.google.com/store/apps/details?id=com.wix.admin","linkApple":"https://apps.apple.com/us/app/wix-owner-website-builder/id1545924344","shouldStayOnTop":true},{"title":"Fit by Wix","image":"img/showcase/wix-fit.webp","linkGoogle":"https://play.google.com/store/apps/details?id=com.wix.fitness","linkApple":"https://apps.apple.com/us/app/fit-by-wix/id1552621043","shouldStayOnTop":true},{"title":"Dine by Wix","image":"img/showcase/wix-dine.webp","linkGoogle":"https://play.google.com/store/apps/details?id=com.wix.restaurants","linkApple":"https://apps.apple.com/us/app/dine-by-wix/id1561524113","shouldStayOnTop":true},{"title":"Hudl","image":"img/showcase/hudl.webp","linkGoogle":"https://play.google.com/store/apps/details?id=com.hudl.hudroid","linkApple":"https://apps.apple.com/us/app/hudl/id412223222"},{"title":"Valora","image":"img/showcase/valora.webp","linkGoogle":"https://play.google.com/store/apps/details?id=co.clabs.valora","linkApple":"https://apps.apple.com/us/app/valora-crypto-wallet/id1520414263"},{"title":"Rocket Chat","image":"img/showcase/rocket-chat.webp","linkGoogle":"https://play.google.com/store/apps/details?id=chat.rocket.android","linkApple":"https://apps.apple.com/us/app/rocket-chat/id1148741252"},{"title":"WealthSimple","image":"img/showcase/wealthsimple.png","linkGoogle":"https://play.google.com/store/apps/details?id=com.wealthsimple.trade","linkApple":"https://apps.apple.com/us/app/wealthsimple-invest/id948087968"},{"title":"Pitch","image":"img/showcase/pitch.webp","linkGoogle":"https://play.google.com/store/apps/details?id=com.pitch.android&gl=IL","linkApple":"https://apps.apple.com/us/app/pitch-collaborate-on-decks/id1551335606?platform=iphone"},{"title":"RN DateTimePicker","titleFontSize":"1.5rem","image":"img/showcase/rn-datetimepicker.png","linkGitHub":"https://github.com/react-native-datetimepicker/datetimepicker"},{"title":"Maiia","image":"img/showcase/maiia.webp","linkGoogle":"https://play.google.com/store/apps/details?id=com.cegedim.maiia.patient","linkApple":"https://apps.apple.com/fr/app/maiia-t%C3%A9l%C3%A9consultation-rdv/id1489590732?agc_click_id=596983166549379072"},{"title":"Noona","image":"img/showcase/noona.webp","linkGoogle":"https://play.google.com/store/apps/details?id=com.timatorgmobile&gl=IL","linkApple":"https://apps.apple.com/is/app/noona-book-anything/id1448498295"},{"title":"Omnon Notes","image":"img/showcase/omnon.webp","linkGoogle":"https://play.google.com/store/apps/details?id=com.nieratechinc.omnomnotes&pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1","linkApple":"https://apps.apple.com/us/app/omnom-notes/id1505867777?ls=1"},{"title":"Bolt Food","image":"img/showcase/bolt-food.webp","linkGoogle":"https://play.google.com/store/apps/details?id=com.bolt.deliveryclient","linkApple":"https://apps.apple.com/us/app/bolt-food/id1451492388"},{"title":"Next","image":"img/showcase/next.jpg","linkGoogle":"https://play.google.com/store/apps/details?id=com.nextinsurance","linkApple":"https://apps.apple.com/us/app/next-insurance/id1580721755"},{"title":"PlayerData","image":"img/showcase/player-data.webp","linkGoogle":"https://play.google.com/store/apps/details?id=uk.co.playerdata.mobile","linkApple":"https://apps.apple.com/gb/app/playerdata-insight/id1462268462"},{"title":"Expo","image":"img/showcase/expo.png","linkWebsite":"https://expo.dev/"},{"title":"Currenxie Global Account","titleFontSize":"1.3rem","image":"img/showcase/currenxie.webp","linkGoogle":"https://play.google.com/store/apps/details?id=com.currenxiemobilereactnative","linkApple":"https://apps.apple.com/us/app/currenxie-global-account/id1550022183"},{"title":"Mercari: Your Marketplace","titleFontSize":"1.3rem","image":"img/showcase/mercari.webp","linkGoogle":"https://play.google.com/store/apps/details?id=com.mercariapp.mercari","linkApple":"https://apps.apple.com/us/app/mercari-your-marketplace/id896130944"}]'),Q="container_M9eJ",S="list_k1OC",k="spinner_LNMg";var w=N(2543),U=N.n(w),Y=N(94098);const a=M=>{const A=U().partition(M,"shouldStayOnTop");return A[0].concat(U().shuffle(A[1]))},e=M=>I.createElement(x,(0,L.A)({key:M.title},M)),t=M=>I.createElement("section",{className:(0,z.A)("container",Q)},I.createElement("ul",{className:(0,z.A)("col","col--12",S)},M)),s=()=>I.createElement(Y.pf,{height:"60",width:"60",color:"#dddddd",ariaLabel:"loading",radius:"2",wrapperClass:k,visible:!0}),l=()=>{const[M,A]=(0,I.useState)([]);return(0,I.useEffect)((()=>{const M="disabled"!==new URLSearchParams(window.location.search).get("shuffle")?a(C):C;A(M.map(e))}),[]),M.length>0?t(M):s()};function d(){return I.createElement(I.Fragment,null,I.createElement(D.A,null,I.createElement("title",null,"Showcase | Detox")),I.createElement(j.A,null),I.createElement(g.A,null,I.createElement("main",null,I.createElement(u,null),I.createElement(l,null))))}},31013:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I=N.p+"assets/images/v20-logger-options-be0263e8b33e617b2a4ef55861d45e4a.png"},46156:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I=N.p+"assets/images/v20-perfetto-example-171220190ff552d655a9a0712e2c04ed.png"},80036:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I=N.p+"assets/images/cover-495e05dd1ea1caeb48d25625ed4ce1a3.jpeg"},3716:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I=N.p+"assets/images/detox-9ab89f3d9933d5d3c6ce2a821b71ab7e.png"},32532:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I=N.p+"assets/images/favicon-7a052e9f28693d126454ffdefb081bc1.ico"},62714:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I=N.p+"assets/images/hero-image-e03755beb56b4e1da191df104226f8bb.webp"},4693:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I=N.p+"assets/images/logo-9b887e6f40378602ea70cf8a0dcc4879.png"},3617:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/webp;base64,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"},45480:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/webp;base64,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"},29268:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I=N.p+"assets/images/expo-6c0bfc1deb0aa9c589e72935b3c59298.png"},3354:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/webp;base64,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"},9940:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/webp;base64,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"},58686:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/webp;base64,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"},76187:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/jpeg;base64,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ysBtZuiQx006bP7iB5iPyJWA2s3RIY6adNr9xA8tf4PxJwG1m6JDHTTptKaV9+B+DCm1ihSZGA2s3RIZ6adNvvLY8SfVzEjAbXStpCjzTFXZyCKuzkEVdnIIq7OQRV2cgirs5BFXayCKAKBt0GKu1kEVdnIIq7OQRV2cgirs5BFXZyCKuzkEUoaQk8k/0af/xAApEAABAgYBAwQDAQEAAAAAAAABMfAAETBBUcFAICFhcYGx0RCRoZDx/9oACAEBAAE/If8ADL1jxv4QMPjcPjcPjcPjcPjcNjcNTcGI+E5CKXWVjATJJkAIbm4fG4fG4fG4fG4fG4bG4u3aQieVeiBWZTIuILXOYH11M+VBdicq9IF7E75+up3yoLsTlXpgXH9HB9+l3yoLsTlXpg7t24IPNJiZHQ75UF2Jyr1ASCe2My+b7fvod8qC7E5V6gCgCpkLGB7kA7K35O+VBdicq9UBQGsPjPt9wQAEBB7giBDPlQXYnKvWBYWzMn2Pb49I8wz5UF2Jyr1gG5ETKLcJT1BDPlQXYnKvXAh08pj2sNqHfKguxOVfgA8gDGx2Ov1QXYnKvwAFUwIfkESNBdicq/IAuxOVeiA7IxSB74PcV12Jyr0QfAtRfFddicq9EEhCWhE8A/xcj2+qy7E5V6IGjCJWg9ogboWQYNVdicq9EDRhFoTFj4QdfqquxOVeiBow/ErQyDIgkpkvUVC7E5V6IGjD8zQP9XI9/qD2MjTXYnKvRA0YdFwkz5prsTlXogaMOibykDC1Z9jhY0l2Jyr0QNGHSpUcxId7w3/2kuxOVeiBow6kknmJDtebVFdicq9EDRh1WIyHoGJmISIoLsTlXogbMOm34tRZCB7nt8elBdicr1jzv4RMPjUPjUPjUPjUPjUNjUNzUCYwBIACQA6yBAAg9iDDc1DY1D41D41D41D41DY1Fm7TED/hp//aAAwDAQACAAMAAAAQ88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888g999q888o999N888888888888rCCCSx88iCCCr888888888888rBBBBwu8ABBBr888888888888rBBBBBC8ABBBr888888888888rBBBBBDRABBBr888888888888rBBBBBB2BBBBr888888888888rBBBBBBBqBBBr888888888888rBBBABBBBBBBr888888888888rBBBSKBBBBBBr888888888888rBBBBUBBBBBBr888888888888rBBBBBHBBBBBr888888888888rBBBB8SIBBBBr888888888888rBBBB88DBBBBr888888888888rCCCH88CJCCCr888888888888I999U888p999x88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888//EACcRAAECAwgDAQEBAAAAAAAAAAEAESBRsSEwMWFx0fDxEEGBwXDh/9oACAEDAQE/EP4GUcE5B11R2XVHZdUdkbAAMjAHcp0BK6o7LqjsuqOyfABzsvRc9VQmSTJJkkANwDETBRuWlaUx/mHkQXuGTJJkkySBvhe4+qohAcD7/wBD6joDEeOZlBQXuPqqIrFrT4M/vjmZQUF7j6qiIS7gY8nJeszAzHormZQUF7j6qiOw32jMexsgbkwgoL3H1VEZtVgyWxItb8e2CgvcfVUQMdrigvcfVUQSNWhMNaEcdwOOTHuOgvcfVUQcjJWsW3wZfax0F7j6qiDkZI/uEJk/X+D9ioL3H1VEHIy8ArbgCYP6MQjZOBwZgw0F7j6qiDkZeXw/n+h+iGgvTY9VQmTTJpk0QLHDeTJMRwcwgFyBIjH4UyaZNMmif4XpRwDkWXdHdd0d13R3QdinUkwOYKHkSF3R3XdHdd0d0+ATnb/BP//EACYRAAEBBwQCAwEAAAAAAAAAAAEAESAwMXGRwSFhobEQQVFw0YH/2gAIAQIBAT8Q+gxLSYttcLbXC21wgYwBdybgFtrhba4W2uEIaTYsmoTSmlNKEiMIQV7yNfJ2sppTSmld5xFk1Dpm5m0P7/EAGjxwMudpxFk1D2s+olTxwMudpxFk1DwsXUID9nB+FwMudpxFk1D+v+A/K42XO04iyaiAMpwZX4c7TiLJqHGQO04iyahwX7AsWzRtND/acRZNQ5w8rSPUTo/2nEWTUOcPKAAwomlNqPz+PdpxFk1DnDz4Ijn6qjoDCHe04iyahzh58+hr+u9pxFk1CYUwphQW8+SATQUUHL1RMKYUwrvOIolgNW2sFtrBbawUnAOScCttYLbWC21ghDAZ9Cf/xAAmEAEAAQMFAAMAAgMBAAAAAAABEQAhUTAxQEHwIGFxgZGQobHh/9oACAEBAAE/EP8AABMUA91apKkqSpKkrfqrY+d8UC1apKkqSpKkzUB3UmOSQ0dloLHzsws/MIECBAkQirkrJA0kEwLaUv8AfzRTA8BdVdikNx+cCBAgQJEsX9s+O4GYqcFuU9/DoMxu1bNZPpJPrcvTjTp4kyo7GR+xqetW57Gadckp7+HRmo0+YXYA/AB3cyWtt9U57Gadckp7+HRLMlGF2Aoj/wAIvtcbRFTW+mc9jNOuSU9/DpDc7A7Uh1ewn2FBjMHsJH+qNM57Gadckp7+HT3sFCbbvybja/2CrpHWmc9jNOuSU9/DplgW1CDIjka7AqIC3iekhN94mR0znsZp1ySnv4dRtVmcwStE3d2zZBvR83EJEdkaub6Nz2M065JT38OrLzrxT2399L/Qijf/AK0bnsZp1ySnv4dU6jSZOnI7J2KU24EFwlu/n4SI96Nz2M065JT38OtGwAiDZXNjp2sy7NE57Gadckp7+HXvxmqEzzIpZfyWXQ9jNOuSU9/DrvfgbeWBnIv/AHfQ9jNOuSU9/Dx/YzTrklPfw6BdkCCFAT8RE+nX9jNOuSU9/DoXgRgDO4ftz+LLYNf2M065JT38OgAIRNHupWcmeVhO69p+7K3db2M065JT38OjogGF0oGMLHTKNmy9xTKAjuDCP8mr7Gadckp7+HR0Zdd1KXewn8h/0v8ATd1fYzTrklPfw6OjagaIjshCf1SoXBIrrC/ZCNi49RqexmnXJKe/h0dG9bUZGyPISjdegfVy6CgoCIwj1p+xmnXJKe/h09DUVHgkiMkYgv6Mtw0/YzTrklPfw6egzipllHBJhJ2RhHpCiVegwLs/Sf1tuaXsZp1ySnv4dXRv8AA7ORS437AnSexmnXJKe/h1dDvW6JBh+gbHZtaQ0XsZp1ySnv4dXQ7US4Elwls/j9kkndLFZcf7MiXHsR0PYzTrlPfw6viLGlvaoyZMUvTb32tuuxoPYzTrkkFHbaAx8bEpPzCBAgQJEA2GoYmQgAgANgOvmVNkCRHcSpG6/ORAgQIEiWL+2fPUhMVGG3JiaEOqtUFQVBUFWpVq+fnc7qUq1QVBUFQVBipHqoM/4Af/2Q=="},70370:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/webp;base64,UklGRgQFAABXRUJQVlA4TPgEAAAv78A7ALXQorbteFx9te0mo/hPum3zyLZt27Zt2zyqbdu2bTtvpu+3XQ2eNX6Lt24hSJIUtpW0c7B7IFtCiaP/ExDxSv+v9P9K//9TMeyQ6TrOsIIij5F7V7uoVr/Mzwgwj7tTmGfWiwzRGI0W1dGM0ggNUl0+qBvKCK7FuerrpjFP5OdokmrpukLVxTfUht6ivbil4Anbfic2VLvpcCNsnvlyqCcTI6rvFgJhmbj6qPkLbZiomcSEtpY5nrBMfAawb79MC6YSA9qXcndiWLaoP8Vv1OivGS962oek5QnXRGQndktt6Gkv5f8Lmm8ifuPWMV3ktCbgnEihZ/1wyOljFDisk/jGYJFbF78CYZ0kpspnnKjpL4B3UnGfN6dDbYYSVsC8E3wCNf0ZMM8JeoraBLgn1dYVg5peMuKaeYLWUKsFuLfjwkFtMOwTKDGFY+6Z532onTMTm3t5ri+1p6vsh3uCURD7FPPhXyuI/SCwz9Q3EPse/lXcDw3bSshFw7Y8OW5a1/FmW9ihBJPp2Jp8yf8CKPwfWIEGgNKfoK0n5GwcmvdUk36aoF1paZvH0YVfeL6qXCj1sZoU4EN6M1u61LPUXs+Dog+l48yrsAsefMM06XIcp+cLrkUmMecNVvmDpytdl/NQLiusI5KQSwanUst9m6FR/K6wk8jFg1FZx8yRaFTbAk8so8T3nDFFGuUBSs2wiqrr5DlJGvXuIGiL2LR7hkoJtgJhW0MGmklJflawBvM8U0pzts4dcW0JAQczSUS0i5BhB/iulOw9VWFbQWbRMxU63YUMGyh8Xi0lfN5IaBtATyj9BizAMZTyYOCEfxX2Y0VKD7Tf/EM9aN03Ki8L6AitP4AFDIFWS9nAHNHqgA0o7Y6yrk0r/fePs0sGsR/gnyenTWJvUPiwL69GiN00XM2+dcWf8dDaqwNmX9joLlJTMIqYfYJfIdVaNhDXl05Sb1D4sYB1hd8homTk2AIE30GoBYjYBrw5ck6Bzvkjvq1AkE6mI8iwg0CqXeNEZLaOmUkRO5ACZyuRz4HYgqAWJLoAx/aQgk4QGCpf54k9iD/op6iN5fhZbYlNSF6hNyVKo3WsK2yxC8lDA6LSBfNzdcS2IcFg23Qtv88KO4VRHUVFMsxT/q7NcurIoRNhR8yp1pARScXhszaztUwz1IqLJjwtK3pqOYREvAFer+aMV/oSZmqS2vEeno24lhV/ciYScuEDnDwe5U0+4rP6qN7iqbpgAOZNFQ4mbyLixJOKu9DJNtvcBU+5KzGOhYnJHkP/7GiLdXXFuoZjXYqw+TdXxE5xUvg3QcR+BPzrDbGuWEDTIqZFfoGw70eo/QS4t/bESW0dUpgnmCJi+gFgXyOojcO7/GGeu68c1LQmYF4G+kJN765NvJMKO4/cZB3suOadE/SAmg4X1rJO4nL2mCNqOgRzVV6sE6PPi5yO57yCY86loB3kdAYfFipcGXwTX7zdB3Kq3bmtUPCEzDZJTLm7L/RUu+l1tgJlL795Jp4gJwZUZ6k9v+gZ9g8SmmWyE39ULCx2tE6f8c0ycWx0Z40mRrS/TDthmUiZy9T3TFFszNUh0x+myQ4UfzePUCyMIXMH10SCBh6oXxnAeOXSmqVnqtgdMedTKi9gn1xTj9TT9Xq9DtWsV+uMMq9wP+xA4rriLnsVeeiW+Ca1rPT/Sv+v9P8/FAE="},43864:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I=N.p+"assets/images/omnon-c51ca00f1728cde8a0c855328f2a7d40.webp"},80141:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/webp;base64,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"},86303:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/webp;base64,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"},30080:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I=N.p+"assets/images/react-native-75ca5141bd8c3c41994b61abc22ebf62.webp"},80754:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/png;base64,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"},50642:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/webp;base64,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"},90052:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I=N.p+"assets/images/showcase-illustration-edbfbcb3f254c32f1822014b44f3e0d0.png"},79792:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/webp;base64,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"},33341:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I=N.p+"assets/images/wealthsimple-9ccf6cb193b8e0dd1dd0b0751f1a5151.png"},17404:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/webp;base64,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"},43017:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/webp;base64,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"},85805:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/webp;base64,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"},813:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/webp;base64,UklGRroCAABXRUJQVlA4TK0CAAAvP8APAI8GMZIkR0rdu46DWKPZTjSY4KBtJEnKDIzjj+0Q/DNdlfmff7VpGzB4dcodPKkAkICkzW3xdiErSQJWFpRBkoCEgMIAVIgyEQBZORcyuBbX4lyIQpRJooCEkIQQMqgkACTX5hwU8vV7UiFfbxdAcgYgkElCkgRsABXSZpcTErCgkA0KILuAcyGKkgDDREkSQCoLCRGIAIBQOYcN58sOk4aJ0EHZ0IsjgpAkSpLcZCGpCAn4PwcAAIPBlwcODAZg8ApvMDjwAK9w/+TuAYD8bdvOr7mz7XnZdvOa7WW7Ztv2noyP+nw/zm5m8/ZffXZ8f+44Ivo/ATSvYCvXz3dYEzd6sqJZt1gPd8sDAApka2kbcsSBMwWuuMcLvaLMEREnyQIRtQqypZeoW5TFdiJWkgVzuLOI+CTJD45Kl6r4gpVnJDIublrVMEC9YzVrdrG8YNmfW6B3SHc2rm4cMYV5CmQdG5M4IxQLABwZTIGdDTYoYjAA3LwCOCFgqhb2nlium0FSGQC7MmXcFTu+FCB8+EL191/uXh8isfX9uaWsi8uT34m4vxA/50pbeFMY0ahLBK49R/BMj4yQt/WRfoHOQSMImm3lx8vxJy8NLhPZcIi/oZKZ/Q8NRphdgcM12C3xlxFfgPCDxUi9igS9VVLyERYfv7mLmz60DLjImcC3IJGZEv1xNw/p7yYW49QifPu8FkV/4TX5at3LEmT++Fr46Nm2j3OV2CeawDwOAmyB9W+WwNEeSHmdDd8gF9weSgbssHfKB95e2LkFbqGwecGYQMx4U3Z0znljHAFcalzNcJuxPWbf6Z1y63BJbPIJtVvbHZXUrOvHM2Ly/7FkrqBoCsdeR7KhqAJRm6SJvIWI+jWVJ+q0aCpPxCua1Ef/U9yDAyJZtTgh0ryaAA=="},55261:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I=N.p+"assets/images/ci-f97fad3f5b589950fbad1b54d5ca69d8.svg"},24161:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAgMCA2MCA2MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yMy42NjQ5IDkuNjIzNjJMMjYuNzI4NCAyNC4xNDI2TDQxLjMwOTYgMjcuMzE0NkwyOC4zNjIzIDM0LjY5NjhMMjkuODI5OSA0OS40NTY1TDE4Ljc2MzQgMzkuNTAxOUw1LjA5NDEzIDQ1LjQ1MzlMMTEuMjAyMSAzMS45MTY3TDEuMjgwMjIgMjAuODMzOUwxNi4xMjI2IDIyLjQyNDVMMjMuNjY0OSA5LjYyMzYyWk0zMS45ODE0IDQ1Ljk2ODRMNDQuNjQzOCA1OC43NjkzQzQ0Ljk0NzggNTkuMDc2MSA0NS40NTEyIDU5LjA3NjEgNDUuNzU5OSA1OC43NzRMNTAuNjgwNSA1My45MjY1QzUwLjk4OTIgNTMuNjI0NCA1MC45ODkyIDUzLjEyNDEgNTAuNjg1MiA1Mi44MTczTDMzLjM3NzggMzUuMzc2NUMzMy4wNzM4IDM1LjA2OTcgMzIuMjcxMiAzNC45NDIyIDMyLjI2MTcgMzUuMzcxOEwzMS45ODE0IDQ1Ljk2ODRaTTguNjY1OCAxNi42MDk0SDguNDIzNTdDOC40MjM1NyAxNC42MzY0IDcuNjgyNjQgMTIuOTEzNSA2LjIwMDc4IDExLjQ0MDlDNC43MTQxNiA5Ljk3MjkxIDIuOTgwNTcgOS4yMzY1OCAxIDkuMjM2NThWOC45OTU4NUMyLjk4MDU3IDguOTk1ODUgNC43MTQxNiA4LjI1OTUxIDYuMTk2MDMgNi43ODY4NEM3LjY3Nzg5IDUuMzA5NDUgOC40MTg4MyAzLjU4NjYxIDguNDE4ODMgMS42MjMwNUg4LjY2MTA1QzguNjYxMDUgMy41OTEzMyA5LjQwMTk5IDUuMzE0MTcgMTAuODgzOSA2Ljc4Njg0QzEyLjM2NTcgOC4yNTk1MSAxNC4wOTkzIDguOTk1ODUgMTYuMDc5OSA4Ljk5NTg1VjkuMjM2NThDMTQuMDk5MyA5LjIzNjU4IDEyLjM2NTcgOS45NzI5MSAxMC44ODM5IDExLjQ0NTZDOS40MDY3NCAxMi45MTgzIDguNjY1OCAxNC42MzY0IDguNjY1OCAxNi42MDk0Wk00NC41NzI1IDI0LjA4Nkg0NC4xOTczQzQ0LjE5NzMgMjEuMDUxIDQzLjA1NzQgMTguMzk4MyA0MC43NzI5IDE2LjEzMjZDMzguNDg4MyAxMy44NjcgMzUuODIzOCAxMi43MzQyIDMyLjc2OTkgMTIuNzM0MlYxMi4zNjEzQzM1LjgyMzggMTIuMzYxMyAzOC40OTMxIDExLjIyODUgNDAuNzcyOSA4Ljk1MzM3QzQzLjA1NzQgNi42NzM1NiA0NC4xOTczIDQuMDI1NTggNDQuMTk3MyAxSDQ0LjU3MjVDNDQuNTcyNSA0LjAzNTAyIDQ1LjcxMjQgNi42ODc3MiA0Ny45OTcgOC45NTMzN0M1MC4yODE1IDExLjIxOSA1Mi45NDYgMTIuMzU2NiA1NiAxMi4zNTY2VjEyLjcyOTRDNTIuOTQ2IDEyLjcyOTQgNTAuMjgxNSAxMy44NjIzIDQ3Ljk5NyAxNi4xMjc5QzQ1LjcxMjQgMTguMzk4MyA0NC41NzI1IDIxLjA1MSA0NC41NzI1IDI0LjA4NloiIHN0cm9rZT0iYmxhY2siLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yMy42NjQ5IDkuNjIzNjJMMjYuNzI4NCAyNC4xNDI2TDQxLjMwOTYgMjcuMzE0NkwyOC4zNjIzIDM0LjY5NjhMMjkuODI5OSA0OS40NTY1TDE4Ljc2MzQgMzkuNTAxOUw1LjA5NDEzIDQ1LjQ1MzlMMTEuMjAyMSAzMS45MTY3TDEuMjgwMjIgMjAuODMzOUwxNi4xMjI2IDIyLjQyNDVMMjMuNjY0OSA5LjYyMzYyWk0zMS45ODE0IDQ1Ljk2ODRMNDQuNjQzOCA1OC43NjkzQzQ0Ljk0NzggNTkuMDc2MSA0NS40NTEyIDU5LjA3NjEgNDUuNzU5OSA1OC43NzRMNTAuNjgwNSA1My45MjY1QzUwLjk4OTIgNTMuNjI0NCA1MC45ODkyIDUzLjEyNDEgNTAuNjg1MiA1Mi44MTczTDMzLjM3NzggMzUuMzc2NUMzMy4wNzM4IDM1LjA2OTcgMzIuMjcxMiAzNC45NDIyIDMyLjI2MTcgMzUuMzcxOEwzMS45ODE0IDQ1Ljk2ODRaTTguNjY1OCAxNi42MDk0SDguNDIzNTdDOC40MjM1NyAxNC42MzY0IDcuNjgyNjQgMTIuOTEzNSA2LjIwMDc4IDExLjQ0MDlDNC43MTQxNiA5Ljk3MjkxIDIuOTgwNTcgOS4yMzY1OCAxIDkuMjM2NThWOC45OTU4NUMyLjk4MDU3IDguOTk1ODUgNC43MTQxNiA4LjI1OTUxIDYuMTk2MDMgNi43ODY4NEM3LjY3Nzg5IDUuMzA5NDUgOC40MTg4MyAzLjU4NjYxIDguNDE4ODMgMS42MjMwNUg4LjY2MTA1QzguNjYxMDUgMy41OTEzMyA5LjQwMTk5IDUuMzE0MTcgMTAuODgzOSA2Ljc4Njg0QzEyLjM2NTcgOC4yNTk1MSAxNC4wOTkzIDguOTk1ODUgMTYuMDc5OSA4Ljk5NTg1VjkuMjM2NThDMTQuMDk5MyA5LjIzNjU4IDEyLjM2NTcgOS45NzI5MSAxMC44ODM5IDExLjQ0NTZDOS40MDY3NCAxMi45MTgzIDguNjY1OCAxNC42MzY0IDguNjY1OCAxNi42MDk0Wk00NC41NzI1IDI0LjA4Nkg0NC4xOTczQzQ0LjE5NzMgMjEuMDUxIDQzLjA1NzQgMTguMzk4MyA0MC43NzI5IDE2LjEzMjZDMzguNDg4MyAxMy44NjcgMzUuODIzOCAxMi43MzQyIDMyLjc2OTkgMTIuNzM0MlYxMi4zNjEzQzM1LjgyMzggMTIuMzYxMyAzOC40OTMxIDExLjIyODUgNDAuNzcyOSA4Ljk1MzM3QzQzLjA1NzQgNi42NzM1NiA0NC4xOTczIDQuMDI1NTggNDQuMTk3MyAxSDQ0LjU3MjVDNDQuNTcyNSA0LjAzNTAyIDQ1LjcxMjQgNi42ODc3MiA0Ny45OTcgOC45NTMzN0M1MC4yODE1IDExLjIxOSA1Mi45NDYgMTIuMzU2NiA1NiAxMi4zNTY2VjEyLjcyOTRDNTIuOTQ2IDEyLjcyOTQgNTAuMjgxNSAxMy44NjIzIDQ3Ljk5NyAxNi4xMjc5QzQ1LjcxMjQgMTguMzk4MyA0NC41NzI1IDIxLjA1MSA0NC41NzI1IDI0LjA4NloiIHN0cm9rZT0idXJsKCNwYWludDBfbGluZWFyXzE2MF82MTgzKSIvPgo8ZGVmcz4KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzE2MF82MTgzIiB4MT0iMTUuMjA4MyIgeTE9IjUuMzUiIHgyPSI0Mi4xMTk4IiB5Mj0iNTUuOTE2NCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjOTkzNEJEIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzQ0NzlFMCIvPgo8L2xpbmVhckdyYWRpZW50Pgo8L2RlZnM+Cjwvc3ZnPgo="},38242:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I=N.p+"assets/images/debug-441eb8c55ec85e26e3839f8c48ca8fca.svg"},24006:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjEiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAgMCA2MSA2MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zLjkzOTA5IDAuMDgwOTYxNkMyLjk5NzE1IDAuMzA0ODQyIDIuMDgxMjggMC45ODI5NDUgMS41MDIyNCAxLjg4NTM2QzAuNzk0OTU3IDIuOTg3NTMgMC44Mzk4NjMgMC45NzU2MjIgMC44NzA2NjEgMzAuMjMxNEwwLjg5ODY2IDU2Ljc2OTRMMS4xNDQ3MiA1Ny4zNzgyQzEuNjI2NDEgNTguNTY5MyAyLjQ4MTIyIDU5LjM4NzQgMy42ODI0NyA1OS44MDY1QzQuMjA0MzIgNTkuOTg4NiA1LjAwNzIzIDYwIDE3LjMyMDkgNjBIMzAuNDA0OEwzMS4wMjc4IDU5Ljc0ODZDMzIuMzQyNCA1OS4yMTc5IDMzLjM0OTkgNTcuOTM0IDMzLjU3NjggNTYuNTAwMkMzMy43MzIzIDU1LjUxNzggMzMuNzMwMiA0LjM3MzAzIDMzLjU3NDcgMy40MTQzQzMzLjM1MzkgMi4wNTQgMzIuNTE3NSAwLjk1MDY0IDMxLjIyNTggMC4zMTYwNDJMMzAuNjIwMiAwLjAxODUwMzNMMTcuNDgyNCAwLjAwMTU5NjU1QzEwLjA1NzUgLTAuMDA3OTg3NTcgNC4xNjgzNSAwLjAyNjQ3MjEgMy45MzkwOSAwLjA4MDk2MTZaTTExLjIyNjggMS4zMzc2N0wxMS41OTY4IDEuNzQxNDlMMTcuNTIzIDEuNzcxOTdDMjMuOTc2NiAxLjgwNTAzIDI0LjA2OTMgMS43OTczOCAyNC4zMzc1IDEuMjA4NjZMMjQuNDYyOCAwLjkzMzg0TDI3LjM4IDAuOTM0OTE3QzMxLjAzOTQgMC45MzYyMSAzMS42MzE5IDEuMTQ5NjQgMzIuNDIwNyAyLjc1MDg0TDMyLjY2NjIgMy4yNDkxVjMwLjAwOTNWNTYuNzY5NEwzMi4zNzUyIDU3LjMyMTFDMzIuMjE1MSA1Ny42MjQ1IDMxLjg2MTEgNTguMDY5MiAzMS41ODg1IDU4LjMwOTFDMzAuNjQ4MyA1OS4xMzY4IDMxLjYxMDQgNTkuMDg0NyAxNy4yNjcgNTkuMDg0N0MyLjYwOTE2IDU5LjA4NDcgMy44MTY0MyA1OS4xNjQ4IDIuNzc1MjEgNTguMTIzNUMxLjcxMDk0IDU3LjA1OTIgMS44MTQgNjAuMDc0NyAxLjgxNCAyOS45OTQxQzEuODE0IC0wLjAxMjgzMzEgMS43MjM0MyAyLjg5Njk3IDIuNjg4NzQgMS45MDIyN0MzLjU5MDQgMC45NzMxNDYgMy43NzY0OCAwLjkzNjEwMiA3LjU0NjkxIDAuOTM0OTE3TDEwLjg1NjggMC45MzM4NEwxMS4yMjY4IDEuMzM3NjdaTTEyLjY5MDQgNTUuNDc3MlY1Ni4zOTI1SDE3LjY5NzhIMjIuNzA1MlY1NS40NzcyVjU0LjU2MThIMTcuNjk3OEgxMi42OTA0VjU1LjQ3NzJaIiBmaWxsPSJibGFjayIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTMuOTM5MDkgMC4wODA5NjE2QzIuOTk3MTUgMC4zMDQ4NDIgMi4wODEyOCAwLjk4Mjk0NSAxLjUwMjI0IDEuODg1MzZDMC43OTQ5NTcgMi45ODc1MyAwLjgzOTg2MyAwLjk3NTYyMiAwLjg3MDY2MSAzMC4yMzE0TDAuODk4NjYgNTYuNzY5NEwxLjE0NDcyIDU3LjM3ODJDMS42MjY0MSA1OC41NjkzIDIuNDgxMjIgNTkuMzg3NCAzLjY4MjQ3IDU5LjgwNjVDNC4yMDQzMiA1OS45ODg2IDUuMDA3MjMgNjAgMTcuMzIwOSA2MEgzMC40MDQ4TDMxLjAyNzggNTkuNzQ4NkMzMi4zNDI0IDU5LjIxNzkgMzMuMzQ5OSA1Ny45MzQgMzMuNTc2OCA1Ni41MDAyQzMzLjczMjMgNTUuNTE3OCAzMy43MzAyIDQuMzczMDMgMzMuNTc0NyAzLjQxNDNDMzMuMzUzOSAyLjA1NCAzMi41MTc1IDAuOTUwNjQgMzEuMjI1OCAwLjMxNjA0MkwzMC42MjAyIDAuMDE4NTAzM0wxNy40ODI0IDAuMDAxNTk2NTVDMTAuMDU3NSAtMC4wMDc5ODc1NyA0LjE2ODM1IDAuMDI2NDcyMSAzLjkzOTA5IDAuMDgwOTYxNlpNMTEuMjI2OCAxLjMzNzY3TDExLjU5NjggMS43NDE0OUwxNy41MjMgMS43NzE5N0MyMy45NzY2IDEuODA1MDMgMjQuMDY5MyAxLjc5NzM4IDI0LjMzNzUgMS4yMDg2NkwyNC40NjI4IDAuOTMzODRMMjcuMzggMC45MzQ5MTdDMzEuMDM5NCAwLjkzNjIxIDMxLjYzMTkgMS4xNDk2NCAzMi40MjA3IDIuNzUwODRMMzIuNjY2MiAzLjI0OTFWMzAuMDA5M1Y1Ni43Njk0TDMyLjM3NTIgNTcuMzIxMUMzMi4yMTUxIDU3LjYyNDUgMzEuODYxMSA1OC4wNjkyIDMxLjU4ODUgNTguMzA5MUMzMC42NDgzIDU5LjEzNjggMzEuNjEwNCA1OS4wODQ3IDE3LjI2NyA1OS4wODQ3QzIuNjA5MTYgNTkuMDg0NyAzLjgxNjQzIDU5LjE2NDggMi43NzUyMSA1OC4xMjM1QzEuNzEwOTQgNTcuMDU5MiAxLjgxNCA2MC4wNzQ3IDEuODE0IDI5Ljk5NDFDMS44MTQgLTAuMDEyODMzMSAxLjcyMzQzIDIuODk2OTcgMi42ODg3NCAxLjkwMjI3QzMuNTkwNCAwLjk3MzE0NiAzLjc3NjQ4IDAuOTM2MTAyIDcuNTQ2OTEgMC45MzQ5MTdMMTAuODU2OCAwLjkzMzg0TDExLjIyNjggMS4zMzc2N1pNMTIuNjkwNCA1NS40NzcyVjU2LjM5MjVIMTcuNjk3OEgyMi43MDUyVjU1LjQ3NzJWNTQuNTYxOEgxNy42OTc4SDEyLjY5MDRWNTUuNDc3MloiIGZpbGw9InVybCgjcGFpbnQwX2xpbmVhcl85NjVfMjk0MykiLz4KPGRlZnM+CjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQwX2xpbmVhcl85NjVfMjk0MyIgeDE9IjkuMzM5MDYiIHkxPSI0LjUiIHgyPSI0Mi43OTIzIiB5Mj0iNDAuNzc2NiIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjOTkzNEJEIi8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzQ0NzlFMCIvPgo8L2xpbmVhckdyYWRpZW50Pgo8L2RlZnM+Cjwvc3ZnPgo="},37964:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I=N.p+"assets/images/discord-figma-6d2d99381a7a48f8069609f410046835.svg"},82641:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgNTQ4LjY5IDM5OC42OCI+PHBhdGggZD0iTTAsMjAuNTRjMTY4LjQ5LTcxLjE1LDM2Ny4zNSw3MS4xNyw1MzYuMDgsMGExMjczLjM2LDEyNzMuMzYsMCwwLDEsMTIuNjEsMTc4LjhjLTE3OC44Miw3MS43LTM1Ny41MS03MS43LTUzNi4wOCwwQTEyNzMuMzYsMTI3My4zNiwwLDAsMCwwLDIwLjU0WiIgZmlsbD0iIzAwNWJiYiIvPjxwYXRoIGQ9Ik0xMi42MSwxOTkuMzRjMTc4LjU3LTcxLjcsMzU3LjI3LDcxLjcsNTM2LjA4LDBhMTI3NC44NywxMjc0Ljg3LDAsMCwxLTEyLjYxLDE3OC44QzM0Ny4xOCw0NDkuMjksMTg4LjY2LDMwNywwLDM3OC4xNEExMjczLjM2LDEyNzMuMzYsMCwwLDAsMTIuNjEsMTk5LjM0WiIgZmlsbD0iI2ZmZDUwMCIvPjwvc3ZnPg=="},49678:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTMiIGhlaWdodD0iNDUiIHZpZXdCb3g9IjAgMCA5MyA0NSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjkzIiBoZWlnaHQ9IjQ1IiByeD0iMTAiIGZpbGw9IiM1NzVBNUQiLz4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzI1MV80NjY0KSI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjMuOTk5OSAxMi40QzE4LjY5NTkgMTIuNCAxNC4zOTk5IDE2LjY5NiAxNC4zOTk5IDIyQzE0LjM5OTkgMjYuMjQ4IDE3LjE0NzkgMjkuODM2IDIwLjk2MzkgMzEuMTA4QzIxLjQ0MzkgMzEuMTkyIDIxLjYyMzkgMzAuOTA0IDIxLjYyMzkgMzAuNjUyQzIxLjYyMzkgMzAuNDI0IDIxLjYxMTkgMjkuNjY4IDIxLjYxMTkgMjguODY0QzE5LjE5OTkgMjkuMzA4IDE4LjU3NTkgMjguMjc2IDE4LjM4MzkgMjcuNzM2QzE4LjI3NTkgMjcuNDYgMTcuODA3OSAyNi42MDggMTcuMzk5OSAyNi4zOEMxNy4wNjM5IDI2LjIgMTYuNTgzOSAyNS43NTYgMTcuMzg3OSAyNS43NDRDMTguMTQzOSAyNS43MzIgMTguNjgzOSAyNi40NCAxOC44NjM5IDI2LjcyOEMxOS43Mjc5IDI4LjE4IDIxLjEwNzkgMjcuNzcyIDIxLjY1OTkgMjcuNTJDMjEuNzQzOSAyNi44OTYgMjEuOTk1OSAyNi40NzYgMjIuMjcxOSAyNi4yMzZDMjAuMTM1OSAyNS45OTYgMTcuOTAzOSAyNS4xNjggMTcuOTAzOSAyMS40OTZDMTcuOTAzOSAyMC40NTIgMTguMjc1OSAxOS41ODggMTguODg3OSAxOC45MTZDMTguNzkxOSAxOC42NzYgMTguNDU1OSAxNy42OTIgMTguOTgzOSAxNi4zNzJDMTguOTgzOSAxNi4zNzIgMTkuNzg3OSAxNi4xMiAyMS42MjM5IDE3LjM1NkMyMi4zOTE5IDE3LjE0IDIzLjIwNzkgMTcuMDMyIDI0LjAyMzkgMTcuMDMyQzI0LjgzOTkgMTcuMDMyIDI1LjY1NTkgMTcuMTQgMjYuNDIzOSAxNy4zNTZDMjguMjU5OSAxNi4xMDggMjkuMDYzOSAxNi4zNzIgMjkuMDYzOSAxNi4zNzJDMjkuNTkxOSAxNy42OTIgMjkuMjU1OSAxOC42NzYgMjkuMTU5OSAxOC45MTZDMjkuNzcxOSAxOS41ODggMzAuMTQzOSAyMC40NCAzMC4xNDM5IDIxLjQ5NkMzMC4xNDM5IDI1LjE4IDI3Ljg5OTkgMjUuOTk2IDI1Ljc2MzkgMjYuMjM2QzI2LjExMTkgMjYuNTM2IDI2LjQxMTkgMjcuMTEyIDI2LjQxMTkgMjguMDEyQzI2LjQxMTkgMjkuMjk2IDI2LjM5OTkgMzAuMzI4IDI2LjM5OTkgMzAuNjUyQzI2LjM5OTkgMzAuOTA0IDI2LjU3OTkgMzEuMjA0IDI3LjA1OTkgMzEuMTA4QzI4Ljk2NTYgMzAuNDY0NiAzMC42MjE2IDI5LjIzOTggMzEuNzk0OCAyNy42MDU5QzMyLjk2OCAyNS45NzIxIDMzLjU5OTMgMjQuMDExNSAzMy41OTk5IDIyQzMzLjU5OTkgMTYuNjk2IDI5LjMwMzkgMTIuNCAyMy45OTk5IDEyLjRaIiBmaWxsPSJ3aGl0ZSIvPgo8L2c+CjxwYXRoIGQ9Ik01My4wNzIgMjguMTQ0QzUyLjE4NjcgMjguMTQ0IDUxLjM3NiAyOC4wMzIgNTAuNjQgMjcuODA4QzQ5LjkwNCAyNy41NzMzIDQ5LjI4IDI3LjI0OCA0OC43NjggMjYuODMyTDQ5LjI5NiAyNS41MkM0OS44MjkzIDI1LjkyNTMgNTAuNCAyNi4yMjkzIDUxLjAwOCAyNi40MzJDNTEuNjE2IDI2LjYzNDcgNTIuMzA0IDI2LjczNiA1My4wNzIgMjYuNzM2QzUzLjk3ODcgMjYuNzM2IDU0LjY0NTMgMjYuNTc2IDU1LjA3MiAyNi4yNTZDNTUuNTA5MyAyNS45MjUzIDU1LjcyOCAyNS40OTg3IDU1LjcyOCAyNC45NzZDNTUuNzI4IDI0LjU0OTMgNTUuNTczMyAyNC4yMTMzIDU1LjI2NCAyMy45NjhDNTQuOTU0NyAyMy43MTIgNTQuNDM3MyAyMy41MDkzIDUzLjcxMiAyMy4zNkw1MiAyMy4wMDhDNTAuOTg2NyAyMi43OTQ3IDUwLjIyOTMgMjIuNDQyNyA0OS43MjggMjEuOTUyQzQ5LjIzNzMgMjEuNDYxMyA0OC45OTIgMjAuOCA0OC45OTIgMTkuOTY4QzQ4Ljk5MiAxOS4yOTYgNDkuMTY4IDE4LjcwNCA0OS41MiAxOC4xOTJDNDkuODgyNyAxNy42OCA1MC4zODQgMTcuMjg1MyA1MS4wMjQgMTcuMDA4QzUxLjY2NCAxNi43MiA1Mi40IDE2LjU3NiA1My4yMzIgMTYuNTc2QzU0IDE2LjU3NiA1NC43MDkzIDE2LjY5MzMgNTUuMzYgMTYuOTI4QzU2LjAyMTMgMTcuMTUyIDU2LjU4MTMgMTcuNDgyNyA1Ny4wNCAxNy45Mkw1Ni40OTYgMTkuMTg0QzU1LjU4OTMgMTguMzg0IDU0LjQ5NiAxNy45ODQgNTMuMjE2IDE3Ljk4NEM1Mi40MjY3IDE3Ljk4NCA1MS43OTczIDE4LjE2IDUxLjMyOCAxOC41MTJDNTAuODY5MyAxOC44NjQgNTAuNjQgMTkuMzMzMyA1MC42NCAxOS45MkM1MC42NCAyMC4zNjggNTAuNzg0IDIwLjcyNTMgNTEuMDcyIDIwLjk5MkM1MS4zNiAyMS4yNTg3IDUxLjg0IDIxLjQ2MTMgNTIuNTEyIDIxLjZMNTQuMjA4IDIxLjk1MkM1NS4yNzQ3IDIyLjE3NiA1Ni4wNjkzIDIyLjUyMjcgNTYuNTkyIDIyLjk5MkM1Ny4xMTQ3IDIzLjQ1MDcgNTcuMzc2IDI0LjA3NDcgNTcuMzc2IDI0Ljg2NEM1Ny4zNzYgMjUuNTI1MyA1Ny4yIDI2LjEwMTMgNTYuODQ4IDI2LjU5MkM1Ni40OTYgMjcuMDgyNyA1NiAyNy40NjY3IDU1LjM2IDI3Ljc0NEM1NC43MiAyOC4wMTA3IDUzLjk1NzMgMjguMTQ0IDUzLjA3MiAyOC4xNDRaTTYyLjM3MDMgMjguMTQ0QzYxLjM4ODkgMjguMTQ0IDYwLjY1ODMgMjcuODkzMyA2MC4xNzgzIDI3LjM5MkM1OS42OTgzIDI2Ljg5MDcgNTkuNDU4MyAyNi4xNjUzIDU5LjQ1ODMgMjUuMjE2VjIxLjQ0SDU3LjkzODNWMjAuMTkySDU5LjQ1ODNWMTcuODRINjEuMDc0M1YyMC4xOTJINjMuNDkwM1YyMS40NEg2MS4wNzQzVjI1LjA4OEM2MS4wNzQzIDI1LjY1MzMgNjEuMTkxNiAyNi4wOCA2MS40MjYzIDI2LjM2OEM2MS42NzE2IDI2LjY1NiA2Mi4wNjYzIDI2LjggNjIuNjEwMiAyNi44QzYyLjc4MDkgMjYuOCA2Mi45NDYzIDI2Ljc4NCA2My4xMDYzIDI2Ljc1MkM2My4yNjYzIDI2LjcwOTMgNjMuNDI2MyAyNi42NjEzIDYzLjU4NjMgMjYuNjA4TDYzLjg0MjMgMjcuODI0QzYzLjY4MjMgMjcuOTIgNjMuNDU4MyAyNy45OTQ3IDYzLjE3MDMgMjguMDQ4QzYyLjg5MjkgMjguMTEyIDYyLjYyNjMgMjguMTQ0IDYyLjM3MDMgMjguMTQ0Wk02Ny4zODIgMjguMTQ0QzY2LjgzOCAyOC4xNDQgNjYuMzUyNyAyOC4wMzczIDY1LjkyNiAyNy44MjRDNjUuNDk5MyAyNy42MTA3IDY1LjE1OCAyNy4zMjI3IDY0LjkwMiAyNi45NkM2NC42NTY3IDI2LjU5NzMgNjQuNTM0IDI2LjE4NjcgNjQuNTM0IDI1LjcyOEM2NC41MzQgMjUuMTUyIDY0LjY3OCAyNC42OTg3IDY0Ljk2NiAyNC4zNjhDNjUuMjY0NyAyNC4wMzczIDY1Ljc1IDIzLjc5NzMgNjYuNDIyIDIzLjY0OEM2Ny4xMDQ3IDIzLjQ5ODcgNjguMDIyIDIzLjQyNCA2OS4xNzQgMjMuNDI0SDY5LjcxOFYyMy4wMDhDNjkuNzE4IDIyLjQgNjkuNTkgMjEuOTYyNyA2OS4zMzQgMjEuNjk2QzY5LjA3OCAyMS40MjkzIDY4LjY1NjcgMjEuMjk2IDY4LjA3IDIxLjI5NkM2Ny42MjIgMjEuMjk2IDY3LjE3NCAyMS4zNjUzIDY2LjcyNiAyMS41MDRDNjYuMjc4IDIxLjYzMiA2NS44MTkzIDIxLjg0IDY1LjM1IDIyLjEyOEw2NC44NTQgMjAuOTkyQzY1LjI1OTMgMjAuNzA0IDY1Ljc2NiAyMC40NzQ3IDY2LjM3NCAyMC4zMDRDNjYuOTgyIDIwLjEzMzMgNjcuNTYzMyAyMC4wNDggNjguMTE4IDIwLjA0OEM2OS4xODQ3IDIwLjA0OCA2OS45NzQgMjAuMzA0IDcwLjQ4NiAyMC44MTZDNzAuOTk4IDIxLjMxNzMgNzEuMjU0IDIyLjEwNjcgNzEuMjU0IDIzLjE4NFYyOEg2OS43MzRWMjYuNzA0QzY5LjU0MiAyNy4xNTIgNjkuMjQzMyAyNy41MDQgNjguODM4IDI3Ljc2QzY4LjQzMjcgMjguMDE2IDY3Ljk0NzMgMjguMTQ0IDY3LjM4MiAyOC4xNDRaTTY3LjcwMiAyNi45OTJDNjguMjc4IDI2Ljk5MiA2OC43NTggMjYuNzg5MyA2OS4xNDIgMjYuMzg0QzY5LjUyNiAyNS45Nzg3IDY5LjcxOCAyNS40NjY3IDY5LjcxOCAyNC44NDhWMjQuNDE2SDY5LjE5QzY4LjQxMTMgMjQuNDE2IDY3Ljc5OCAyNC40NTMzIDY3LjM1IDI0LjUyOEM2Ni45MTI3IDI0LjYwMjcgNjYuNTk4IDI0LjczMDcgNjYuNDA2IDI0LjkxMkM2Ni4yMjQ3IDI1LjA4MjcgNjYuMTM0IDI1LjMyMjcgNjYuMTM0IDI1LjYzMkM2Ni4xMzQgMjYuMDM3MyA2Ni4yNzI3IDI2LjM2OCA2Ni41NSAyNi42MjRDNjYuODI3MyAyNi44NjkzIDY3LjIxMTMgMjYuOTkyIDY3LjcwMiAyNi45OTJaTTczLjQ3OTggMjhWMjAuMTkySDc1LjA0NzhWMjEuNTg0Qzc1LjQ1MzEgMjAuNjU2IDc2LjI5NTggMjAuMTM4NyA3Ny41NzU4IDIwLjAzMkw3OC4xMDM4IDIwTDc4LjIxNTggMjEuMzc2TDc3LjIzOTggMjEuNDcyQzc1LjgyMTEgMjEuNjEwNyA3NS4xMTE4IDIyLjM0MTMgNzUuMTExOCAyMy42NjRWMjhINzMuNDc5OFoiIGZpbGw9IndoaXRlIi8+CjxkZWZzPgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzI1MV80NjY0Ij4KPHJlY3Qgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBmaWxsPSJ3aGl0ZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTIgMTApIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg=="},97988:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDIwMDEwOTA0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDEvUkVDLVNWRy0yMDAxMDkwNC9EVEQvc3ZnMTAuZHRkIj4KPHN2ZyB3aWR0aD0iOTMiIGhlaWdodD0iNDUiIHZpZXdCb3g9IjAgMCA5MyA0NSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjkzIiBoZWlnaHQ9IjQ1IiByeD0iMTAiIGZpbGw9IiM1NzVBNUQiLz4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzE2Ml83NDAwKSI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjMuOTk5OSAxMi4zOTk5QzE4LjY5NTkgMTIuMzk5OSAxNC4zOTk5IDE2LjY5NTkgMTQuMzk5OSAyMS45OTk5QzE0LjM5OTkgMjYuMjQ3OSAxNy4xNDc5IDI5LjgzNTkgMjAuOTYzOSAzMS4xMDc5QzIxLjQ0MzkgMzEuMTkxOSAyMS42MjM5IDMwLjkwMzkgMjEuNjIzOSAzMC42NTE5QzIxLjYyMzkgMzAuNDIzOSAyMS42MTE5IDI5LjY2NzkgMjEuNjExOSAyOC44NjM5QzE5LjE5OTkgMjkuMzA3OSAxOC41NzU5IDI4LjI3NTkgMTguMzgzOSAyNy43MzU5QzE4LjI3NTkgMjcuNDU5OSAxNy44MDc5IDI2LjYwNzkgMTcuMzk5OSAyNi4zNzk5QzE3LjA2MzkgMjYuMTk5OSAxNi41ODM5IDI1Ljc1NTkgMTcuMzg3OSAyNS43NDM5QzE4LjE0MzkgMjUuNzMxOSAxOC42ODM5IDI2LjQzOTkgMTguODYzOSAyNi43Mjc5QzE5LjcyNzkgMjguMTc5OSAyMS4xMDc5IDI3Ljc3MTkgMjEuNjU5OSAyNy41MTk5QzIxLjc0MzkgMjYuODk1OSAyMS45OTU5IDI2LjQ3NTkgMjIuMjcxOSAyNi4yMzU5QzIwLjEzNTkgMjUuOTk1OSAxNy45MDM5IDI1LjE2NzkgMTcuOTAzOSAyMS40OTU5QzE3LjkwMzkgMjAuNDUxOSAxOC4yNzU5IDE5LjU4NzkgMTguODg3OSAxOC45MTU5QzE4Ljc5MTkgMTguNjc1OSAxOC40NTU5IDE3LjY5MTkgMTguOTgzOSAxNi4zNzE5QzE4Ljk4MzkgMTYuMzcxOSAxOS43ODc5IDE2LjExOTkgMjEuNjIzOSAxNy4zNTU5QzIyLjM5MTkgMTcuMTM5OSAyMy4yMDc5IDE3LjAzMTkgMjQuMDIzOSAxNy4wMzE5QzI0LjgzOTkgMTcuMDMxOSAyNS42NTU5IDE3LjEzOTkgMjYuNDIzOSAxNy4zNTU5QzI4LjI1OTkgMTYuMTA3OSAyOS4wNjM5IDE2LjM3MTkgMjkuMDYzOSAxNi4zNzE5QzI5LjU5MTkgMTcuNjkxOSAyOS4yNTU5IDE4LjY3NTkgMjkuMTU5OSAxOC45MTU5QzI5Ljc3MTkgMTkuNTg3OSAzMC4xNDM5IDIwLjQzOTkgMzAuMTQzOSAyMS40OTU5QzMwLjE0MzkgMjUuMTc5OSAyNy44OTk5IDI1Ljk5NTkgMjUuNzYzOSAyNi4yMzU5QzI2LjExMTkgMjYuNTM1OSAyNi40MTE5IDI3LjExMTkgMjYuNDExOSAyOC4wMTE5QzI2LjQxMTkgMjkuMjk1OSAyNi4zOTk5IDMwLjMyNzkgMjYuMzk5OSAzMC42NTE5QzI2LjM5OTkgMzAuOTAzOSAyNi41Nzk5IDMxLjIwMzkgMjcuMDU5OSAzMS4xMDc5QzI4Ljk2NTYgMzAuNDY0NSAzMC42MjE2IDI5LjIzOTYgMzEuNzk0OCAyNy42MDU4QzMyLjk2OCAyNS45NzE5IDMzLjU5OTMgMjQuMDExMyAzMy41OTk5IDIxLjk5OTlDMzMuNTk5OSAxNi42OTU5IDI5LjMwMzkgMTIuMzk5OSAyMy45OTk5IDEyLjM5OTlaIiBmaWxsPSJ3aGl0ZSIvPgo8L2c+CjxwYXRoIGQ9Ik01My4wNzIgMjguMTQ0QzUyLjE4NjcgMjguMTQ0IDUxLjM3NiAyOC4wMzIgNTAuNjQgMjcuODA4QzQ5LjkwNCAyNy41NzMzIDQ5LjI4IDI3LjI0OCA0OC43NjggMjYuODMyTDQ5LjI5NiAyNS41MkM0OS44MjkzIDI1LjkyNTMgNTAuNCAyNi4yMjkzIDUxLjAwOCAyNi40MzJDNTEuNjE2IDI2LjYzNDcgNTIuMzA0IDI2LjczNiA1My4wNzIgMjYuNzM2QzUzLjk3ODcgMjYuNzM2IDU0LjY0NTMgMjYuNTc2IDU1LjA3MiAyNi4yNTZDNTUuNTA5MyAyNS45MjUzIDU1LjcyOCAyNS40OTg3IDU1LjcyOCAyNC45NzZDNTUuNzI4IDI0LjU0OTMgNTUuNTczMyAyNC4yMTMzIDU1LjI2NCAyMy45NjhDNTQuOTU0NyAyMy43MTIgNTQuNDM3MyAyMy41MDkzIDUzLjcxMiAyMy4zNkw1MiAyMy4wMDhDNTAuOTg2NyAyMi43OTQ3IDUwLjIyOTMgMjIuNDQyNyA0OS43MjggMjEuOTUyQzQ5LjIzNzMgMjEuNDYxMyA0OC45OTIgMjAuOCA0OC45OTIgMTkuOTY4QzQ4Ljk5MiAxOS4yOTYgNDkuMTY4IDE4LjcwNCA0OS41MiAxOC4xOTJDNDkuODgyNyAxNy42OCA1MC4zODQgMTcuMjg1MyA1MS4wMjQgMTcuMDA4QzUxLjY2NCAxNi43MiA1Mi40IDE2LjU3NiA1My4yMzIgMTYuNTc2QzU0IDE2LjU3NiA1NC43MDkzIDE2LjY5MzMgNTUuMzYgMTYuOTI4QzU2LjAyMTMgMTcuMTUyIDU2LjU4MTMgMTcuNDgyNyA1Ny4wNCAxNy45Mkw1Ni40OTYgMTkuMTg0QzU1LjU4OTMgMTguMzg0IDU0LjQ5NiAxNy45ODQgNTMuMjE2IDE3Ljk4NEM1Mi40MjY3IDE3Ljk4NCA1MS43OTczIDE4LjE2IDUxLjMyOCAxOC41MTJDNTAuODY5MyAxOC44NjQgNTAuNjQgMTkuMzMzMyA1MC42NCAxOS45MkM1MC42NCAyMC4zNjggNTAuNzg0IDIwLjcyNTMgNTEuMDcyIDIwLjk5MkM1MS4zNiAyMS4yNTg3IDUxLjg0IDIxLjQ2MTMgNTIuNTEyIDIxLjZMNTQuMjA4IDIxLjk1MkM1NS4yNzQ3IDIyLjE3NiA1Ni4wNjkzIDIyLjUyMjcgNTYuNTkyIDIyLjk5MkM1Ny4xMTQ3IDIzLjQ1MDcgNTcuMzc2IDI0LjA3NDcgNTcuMzc2IDI0Ljg2NEM1Ny4zNzYgMjUuNTI1MyA1Ny4yIDI2LjEwMTMgNTYuODQ4IDI2LjU5MkM1Ni40OTYgMjcuMDgyNyA1NiAyNy40NjY3IDU1LjM2IDI3Ljc0NEM1NC43MiAyOC4wMTA3IDUzLjk1NzMgMjguMTQ0IDUzLjA3MiAyOC4xNDRaTTYyLjM3MDMgMjguMTQ0QzYxLjM4ODkgMjguMTQ0IDYwLjY1ODMgMjcuODkzMyA2MC4xNzgzIDI3LjM5MkM1OS42OTgzIDI2Ljg5MDcgNTkuNDU4MyAyNi4xNjUzIDU5LjQ1ODMgMjUuMjE2VjIxLjQ0SDU3LjkzODNWMjAuMTkySDU5LjQ1ODNWMTcuODRINjEuMDc0M1YyMC4xOTJINjMuNDkwM1YyMS40NEg2MS4wNzQzVjI1LjA4OEM2MS4wNzQzIDI1LjY1MzMgNjEuMTkxNiAyNi4wOCA2MS40MjYzIDI2LjM2OEM2MS42NzE2IDI2LjY1NiA2Mi4wNjYzIDI2LjggNjIuNjEwMiAyNi44QzYyLjc4MDkgMjYuOCA2Mi45NDYzIDI2Ljc4NCA2My4xMDYzIDI2Ljc1MkM2My4yNjYzIDI2LjcwOTMgNjMuNDI2MyAyNi42NjEzIDYzLjU4NjMgMjYuNjA4TDYzLjg0MjMgMjcuODI0QzYzLjY4MjMgMjcuOTIgNjMuNDU4MyAyNy45OTQ3IDYzLjE3MDMgMjguMDQ4QzYyLjg5MjkgMjguMTEyIDYyLjYyNjMgMjguMTQ0IDYyLjM3MDMgMjguMTQ0Wk02Ny4zODIgMjguMTQ0QzY2LjgzOCAyOC4xNDQgNjYuMzUyNyAyOC4wMzczIDY1LjkyNiAyNy44MjRDNjUuNDk5MyAyNy42MTA3IDY1LjE1OCAyNy4zMjI3IDY0LjkwMiAyNi45NkM2NC42NTY3IDI2LjU5NzMgNjQuNTM0IDI2LjE4NjcgNjQuNTM0IDI1LjcyOEM2NC41MzQgMjUuMTUyIDY0LjY3OCAyNC42OTg3IDY0Ljk2NiAyNC4zNjhDNjUuMjY0NyAyNC4wMzczIDY1Ljc1IDIzLjc5NzMgNjYuNDIyIDIzLjY0OEM2Ny4xMDQ3IDIzLjQ5ODcgNjguMDIyIDIzLjQyNCA2OS4xNzQgMjMuNDI0SDY5LjcxOFYyMy4wMDhDNjkuNzE4IDIyLjQgNjkuNTkgMjEuOTYyNyA2OS4zMzQgMjEuNjk2QzY5LjA3OCAyMS40MjkzIDY4LjY1NjcgMjEuMjk2IDY4LjA3IDIxLjI5NkM2Ny42MjIgMjEuMjk2IDY3LjE3NCAyMS4zNjUzIDY2LjcyNiAyMS41MDRDNjYuMjc4IDIxLjYzMiA2NS44MTkzIDIxLjg0IDY1LjM1IDIyLjEyOEw2NC44NTQgMjAuOTkyQzY1LjI1OTMgMjAuNzA0IDY1Ljc2NiAyMC40NzQ3IDY2LjM3NCAyMC4zMDRDNjYuOTgyIDIwLjEzMzMgNjcuNTYzMyAyMC4wNDggNjguMTE4IDIwLjA0OEM2OS4xODQ3IDIwLjA0OCA2OS45NzQgMjAuMzA0IDcwLjQ4NiAyMC44MTZDNzAuOTk4IDIxLjMxNzMgNzEuMjU0IDIyLjEwNjcgNzEuMjU0IDIzLjE4NFYyOEg2OS43MzRWMjYuNzA0QzY5LjU0MiAyNy4xNTIgNjkuMjQzMyAyNy41MDQgNjguODM4IDI3Ljc2QzY4LjQzMjcgMjguMDE2IDY3Ljk0NzMgMjguMTQ0IDY3LjM4MiAyOC4xNDRaTTY3LjcwMiAyNi45OTJDNjguMjc4IDI2Ljk5MiA2OC43NTggMjYuNzg5MyA2OS4xNDIgMjYuMzg0QzY5LjUyNiAyNS45Nzg3IDY5LjcxOCAyNS40NjY3IDY5LjcxOCAyNC44NDhWMjQuNDE2SDY5LjE5QzY4LjQxMTMgMjQuNDE2IDY3Ljc5OCAyNC40NTMzIDY3LjM1IDI0LjUyOEM2Ni45MTI3IDI0LjYwMjcgNjYuNTk4IDI0LjczMDcgNjYuNDA2IDI0LjkxMkM2Ni4yMjQ3IDI1LjA4MjcgNjYuMTM0IDI1LjMyMjcgNjYuMTM0IDI1LjYzMkM2Ni4xMzQgMjYuMDM3MyA2Ni4yNzI3IDI2LjM2OCA2Ni41NSAyNi42MjRDNjYuODI3MyAyNi44NjkzIDY3LjIxMTMgMjYuOTkyIDY3LjcwMiAyNi45OTJaTTczLjQ3OTggMjhWMjAuMTkySDc1LjA0NzhWMjEuNTg0Qzc1LjQ1MzEgMjAuNjU2IDc2LjI5NTggMjAuMTM4NyA3Ny41NzU4IDIwLjAzMkw3OC4xMDM4IDIwTDc4LjIxNTggMjEuMzc2TDc3LjIzOTggMjEuNDcyQzc1LjgyMTEgMjEuNjEwNyA3NS4xMTE4IDIyLjM0MTMgNzUuMTExOCAyMy42NjRWMjhINzMuNDc5OFoiIGZpbGw9IndoaXRlIi8+CjxkZWZzPgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzE2Ml83NDAwIj4KPHJlY3Qgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBmaWxsPSJ3aGl0ZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTIgMTApIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg=="},54606:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I=N.p+"assets/images/join-us-on-disc-5015650d848b915d14420b878d46cca8.svg"},68350:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDIwMDEwOTA0Ly9FTiIKICJodHRwOi8vd3d3LnczLm9yZy9UUi8yMDAxL1JFQy1TVkctMjAwMTA5MDQvRFREL3N2ZzEwLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4wIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiB3aWR0aD0iMzIwLjAwMDAwMHB0IiBoZWlnaHQ9IjkwLjAwMDAwMHB0IiB2aWV3Qm94PSIwIDAgMzIwLjAwMDAwMCA5MC4wMDAwMDAiCiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCBtZWV0Ij4KCjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAuMDAwMDAwLDkwLjAwMDAwMCkgc2NhbGUoMC4xMDAwMDAsLTAuMTAwMDAwKSIKZmlsbD0iI0ZGRkZGRiIgc3Ryb2tlPSJub25lIj4KPHBhdGggZD0iTTQxIDg1NCBjLTIwIC0yNiAtMjEgLTM4IC0yMSAtMzU5IGwwIC0zMzMgMzEgLTI2IDMxIC0yNiAyNjQgMCAyNjQKMCAtNyAzMyAtNiAzMiAzOSAtMzYgYzgyIC03NiAxMjYgLTExNCAxNDAgLTEyMiAxMiAtNyAxNCA1MSAxNCAzOTMgMCA0MjEgLTMKNDQ3IC00NSA0NjQgLTkgMyAtMTY3IDYgLTM1MCA2IGwtMzM0IDAgLTIwIC0yNnogbTUyMiAtMjA0IGM0MyAtMjUgNzggLTExMgo4NSAtMjExIDQgLTYyIDMgLTY3IC0yMyAtODcgLTM1IC0yOCAtOTQgLTQwIC0xMDUgLTIxIC02IDkgMiAyMCAyNiAzNyA0NyAzMgozOCAzNyAtMjAgMTIgLTY0IC0yNyAtMTYzIC0yNyAtMjM1IDAgLTY0IDI1IC03NSAyMSAtMjcgLTkgNjEgLTM4IDI0IC02NyAtNDcKLTM3IC01OSAyNSAtNjkgNDUgLTU3IDExNyAxMyA4NCA0NiAxNzAgNzMgMTkxIDMxIDI1IDQ3IDIyIDE3IC0zIC0yMSAtMTcgLTIxCi0yMCAtNSAtMTQgNTQgMTggMTMyIDM1IDE2MCAzNSAzNiAwIDEyMiAtMjIgMTU0IC00MCAzNSAtMTggMTYgNyAtMjMgMzEgLTE3CjEwIC0yNiAxOSAtMTkgMTkgNiAwIDI3IC05IDQ2IC0yMHoiLz4KPHBhdGggZD0iTTI5NiA1MDQgYy0zMSAtMzEgLTExIC04NCAzMyAtODQgMTYgMCA0MSAzMCA0MSA1MCAwIDIyIC0yNSA1MCAtNDUKNTAgLTcgMCAtMjEgLTcgLTI5IC0xNnoiLz4KPHBhdGggZD0iTTQ1OCA1MDkgYy0xMCAtNiAtMTggLTIyIC0xOCAtMzcgMCAtNTQgNDggLTcwIDc2IC0yNyAxNSAyMyAxNSAyNyAwCjUwIC0xOCAyNyAtMzEgMzAgLTU4IDE0eiIvPgo8cGF0aCBkPSJNOTUwIDgzNSBjMCAtMzQgMSAtMzUgNDAgLTM1IGw0MCAwIDAgLTgwIGMwIC02OCAtMyAtODEgLTE5IC05MCAtMjgKLTE0IC0zOCAtMTMgLTU4IDkgLTEzIDEzIC0yNyAxNyAtNTAgMTQgLTM5IC02IC00MyAtMjggLTEyIC02NiA0NiAtNjAgMTUyCi01MyAxOTYgMTIgMjEgMzEgMjMgNDYgMjMgMTUyIGwwIDExOSAtODAgMCAtODAgMCAwIC0zNXoiLz4KPHBhdGggZD0iTTEyMTQgODYxIGMtNDggLTIxIC02NCAtNTggLTY0IC0xNDggMCAtNTQgNSAtOTQgMTUgLTExMiAzNyAtNzIgMTkzCi03MiAyMzAgMCAxMCAxOCAxNSA1OCAxNSAxMTMgMCA4MCAtMiA4OCAtMjkgMTE4IC0yNSAyOCAtMzUgMzIgLTg3IDM1IC0zMiAxCi02OSAtMSAtODAgLTZ6IG0xMDQgLTczIGM3IC03IDEyIC00MCAxMiAtNzggMCAtNzIgLTEwIC05MCAtNTAgLTkwIC00MCAwIC01MAoxOCAtNTAgOTAgMCAzOCA1IDcxIDEyIDc4IDE1IDE1IDYxIDE1IDc2IDB6Ii8+CjxwYXRoIGQ9Ik0xNDYwIDcxMCBsMCAtMTYwIDQwIDAgNDAgMCAwIDE2MCAwIDE2MCAtNDAgMCAtNDAgMCAwIC0xNjB6Ii8+CjxwYXRoIGQ9Ik0xNTkwIDcxMCBsMCAtMTYwIDQwIDAgNDAgMCAwIDgzIDAgODIgNDggLTgyIDQ3IC04MyA0MyAwIDQyIDAgMAoxNjEgMCAxNjAgLTQyIC0zIC00MyAtMyAwIC04OSBjMSAtNzAgLTIgLTg0IC0xMCAtNjUgLTUgMTMgLTI3IDU0IC00OCA5MiAtMzcKNjUgLTQwIDY3IC03OCA2NyBsLTM5IDAgMCAtMTYweiIvPgo8cGF0aCBkPSJNMTk4MCA3MzkgbDAgLTEzMSAzMCAtMjggYzM5IC0zNyA5NCAtNDYgMTQ2IC0yNSA2MyAyNSA3NCA1MyA3NCAxOTQKbDAgMTIxIC00MCAwIC00MCAwIDAgLTExNCBjMCAtMTI1IC02IC0xNDAgLTU3IC0xMzQgbC0yOCAzIC0zIDEyMyAtMyAxMjIgLTM5CjAgLTQwIDAgMCAtMTMxeiIvPgo8cGF0aCBkPSJNMjMyNCA4NjAgYy01MSAtMjAgLTcxIC05NyAtMzYgLTE0MCA5IC0xMiA0MiAtMzAgNzIgLTQwIDQwIC0xMyA1NQotMjQgNTUgLTM3IDAgLTI0IC00NiAtMjkgLTc4IC05IC0yMiAxNSAtMjUgMTUgLTQ2IC04IC0yOCAtMzAgLTIyIC00MiAzNSAtNjgKMzcgLTE2IDUwIC0xNyA4NSAtOCA1OCAxNiA4OSA1MCA4OSA5OCAwIDQ5IC0zNiA4OSAtODkgOTggLTQxIDcgLTYxIDIwIC02MQo0MCAwIDIxIDM4IDI3IDY5IDExIDI4IC0xNCAzMSAtMTMgNTEgOCBsMjEgMjMgLTI3IDIxIGMtMjggMjIgLTk5IDI4IC0xNDAgMTF6Ii8+CjxwYXRoIGQ9Ik0yNjYzIDg1MCBjLTQ1IC0yNyAtNTMgLTQ4IC01MyAtMTQ0IDAgLTc1IDMgLTg4IDI1IC0xMTQgNDggLTU3IDE1MAotNjEgMjExIC04IDIzIDIwIDI3IDMyIDMyIDk4IDYgOTQgLTkgMTQzIC01MiAxNjkgLTQyIDI1IC0xMjEgMjUgLTE2MyAtMXoKbTExMSAtNTYgYzEzIC01IDE2IC0yMiAxNiAtODQgMCAtNjIgLTMgLTc5IC0xNiAtODQgLTI1IC0xMCAtNTkgLTcgLTcyIDYgLTE2CjE2IC0xNiAxNDAgMCAxNTYgMTMgMTMgNDcgMTYgNzIgNnoiLz4KPHBhdGggZD0iTTI5MjAgNzEwIGwwIC0xNjAgNDEgMCA0MSAwIC00IDg4IC0zIDg5IDQ2IC04NiA0NiAtODYgNDcgLTMgNDcgLTMKLTMgMTU4IC0zIDE1OCAtMzcgMyAtMzggMyAwIC05MyAwIC05MyAtNTIgOTMgYy01MSA5MSAtNTIgOTIgLTkwIDkyIGwtMzggMCAwCi0xNjB6Ii8+CjxwYXRoIGQ9Ik0xNDc0IDQ5MSBjLTU2IC0yNSAtNzQgLTU0IC03NCAtMTE3IDAgLTQ1IDQgLTU2IDMyIC04MyAyMCAtMTkgNTQKLTM4IDg4IC00OCA2OSAtMTkgODQgLTMxIDY5IC00OSAtMTUgLTE4IC03MCAtMTggLTk1IDEgLTI3IDIwIC0zNCAxOSAtNzMgLTE3CmwtMzUgLTMxIDMyIC0yOCBjMTA1IC05NCAyOTIgLTM2IDI5MiA5MSAwIDY5IC01MiAxMTkgLTE0MiAxMzUgLTQzIDggLTYxIDI1Ci01MiA0OSA4IDIwIDU3IDIxIDg4IDEgMjEgLTE0IDI1IC0xMyA1OSAxMyBsMzYgMjkgLTI3IDI2IGMtNTMgNTAgLTEyNiA2MQotMTk4IDI4eiIvPgo8cGF0aCBkPSJNMTgyMCA0ODcgYy03MCAtMzcgLTg0IC02NCAtODkgLTE2OCAtMSAtNTAgMCAtMTA2IDMgLTEyNSAyNSAtMTMzCjIzMyAtMTY2IDMxMCAtNDkgMTYgMjQgMTYgMjUgLTI0IDQ1IC00NyAyNCAtNTcgMjUgLTc2IDUgLTE5IC0xOSAtNjggLTE5IC04MwotMSAtOCA5IC0xMSA0NiAtOSAxMDIgMyA4NyAzIDg5IDMxIDk5IDIyIDcgMzUgNiA1OCAtNyAyNSAtMTUgMzQgLTE1IDY2IC00CjQ1IDE1IDUxIDMzIDI0IDY4IC00NyA1OSAtMTM3IDc0IC0yMTEgMzV6Ii8+CjxwYXRoIGQ9Ik0yMjAwIDUwMyBjLTEwNCAtMzggLTEyMCAtNjYgLTEyMCAtMjEzIDAgLTk3IDMgLTExNyAyMSAtMTQ3IDU0IC04OAoyMjAgLTk3IDI5NiAtMTYgbDMzIDM0IDAgMTMxIDAgMTMxIC0zNCAzMSBjLTQ4IDQ2IC0xNDEgNjkgLTE5NiA0OXogbTEwMQotMTEzIGMxNyAtOSAxOSAtMjIgMTkgLTk4IDAgLTEwMCAtNyAtMTEyIC02MSAtMTEyIC01NyAwIC02OSAxOCAtNjkgMTEwIDAgNTgKNCA4MyAxNiA5NCAxOCAxOCA2NiAyMSA5NSA2eiIvPgo8cGF0aCBkPSJNODYwIDQxMSBsMCAtODkgNTIgLTQ2IGMyOSAtMjUgNTYgLTQ2IDYwIC00NiA1IDAgOCAzNiA4IDgwIGwwIDgwCjM4IDAgYzU0IDAgNjIgLTEzIDYyIC0xMDEgMCAtMTAxIC0xMCAtMTA5IC0xMzIgLTEwOSBsLTg4IDAgMCAtNTAgMCAtNTAgMTEzCjAgYzE4NyAwIDIyMiAzMyAyMjIgMjEwIDAgMTIxIC0xMyAxNTQgLTc1IDE4OSAtMzIgMTggLTU1IDIxIC0xNDkgMjEgbC0xMTEgMAowIC04OXoiLz4KPHBhdGggZD0iTTEyNDAgMjkwIGwwIC0yMTAgNTUgMCA1NSAwIDAgMjEwIDAgMjEwIC01NSAwIC01NSAwIDAgLTIxMHoiLz4KPHBhdGggZD0iTTI0ODAgMjkwIGwwIC0yMTAgNjAgMCA1OSAwIDMgNjggMyA2NyA0MiAtNjAgYzI0IC0zMyA0NCAtNjQgNDYgLTY4CjEgLTQgMzUgLTcgNzYgLTUgbDczIDMgLTQzIDU1IGMtMjQgMzAgLTQ3IDU3IC01MSA1OCAtMTQgNiAtOCAxOSAyNyA1NiAzMiAzNAozNSA0MyAzNSA5OCAwIDQ1IC01IDY3IC0yMSA4OSAtMzUgNTAgLTY2IDU5IC0xOTQgNTkgbC0xMTUgMCAwIC0yMTB6IG0yMTAgODUKYzEwIC0xMiAxMCAtMjEgMiAtNDAgLTEwIC0yMSAtMTkgLTI1IC01MiAtMjUgbC00MCAwIDAgNDAgYzAgNDAgMCA0MCAzOSA0MAoyMiAwIDQ0IC02IDUxIC0xNXoiLz4KPHBhdGggZD0iTTI4NjEgNDA4IGwwIC05MyA1MiAtNDIgNTIgLTQyIDMgODAgMyA4MCA0NyAtMyA0NyAtMyAzIC05MCBjNCAtMTEyCjEgLTExNSAtMTIwIC0xMTUgbC04OCAwIDAgLTUxIDAgLTUxIDEyMyA0IGMxMDMgMiAxMjYgNiAxNDkgMjMgNTAgMzggNTggNjQKNTggMTg2IDAgMTA2IC0xIDExNCAtMjYgMTQ3IC0zOSA1MCAtNzcgNjIgLTE5OSA2MiBsLTEwNSAwIDEgLTkyeiIvPgo8L2c+Cjwvc3ZnPgo="},34732:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDUiIGhlaWdodD0iNDUiIHZpZXdCb3g9IjAgMCA0NSA0NSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjQ1IiBoZWlnaHQ9IjQ1IiByeD0iMTAiIGZpbGw9IiM3MThDRDgiLz4KPHBhdGggZD0iTTI5LjY2NDYgMTYuMDQ0OEMyOC40MjE4IDE1LjQ2MzMgMjcuMDkyOSAxNS4wNDA3IDI1LjcwMzUgMTQuOEMyNS41MzI5IDE1LjEwODUgMjUuMzMzNSAxNS41MjM1IDI1LjE5NjEgMTUuODUzNUMyMy43MTkyIDE1LjYzMTQgMjIuMjU1OSAxNS42MzE0IDIwLjgwNjEgMTUuODUzNUMyMC42Njg3IDE1LjUyMzUgMjAuNDY0OCAxNS4xMDg1IDIwLjI5MjcgMTQuOEMxOC45MDE4IDE1LjA0MDcgMTcuNTcxNCAxNS40NjQ4IDE2LjMyODUgMTYuMDQ3OUMxMy44MjE3IDE5LjgzNiAxMy4xNDIxIDIzLjUzMDEgMTMuNDgxOSAyNy4xNzE3QzE1LjE0NDYgMjguNDEzNCAxNi43NTU5IDI5LjE2NzYgMTguMzQwMSAyOS42NjEyQzE4LjczMTIgMjkuMTIyOSAxOS4wOCAyOC41NTA2IDE5LjM4MDUgMjcuOTQ3NkMxOC44MDgyIDI3LjczMDEgMTguMjYgMjcuNDYxNyAxNy43NDIgMjcuMTUwMUMxNy44Nzk1IDI3LjA0ODMgMTguMDEzOSAyNi45NDE5IDE4LjE0MzcgMjYuODMyNEMyMS4zMDI5IDI4LjMxIDI0LjczNTUgMjguMzEgMjcuODU3IDI2LjgzMjRDMjcuOTg4NCAyNi45NDE5IDI4LjEyMjggMjcuMDQ4MyAyOC4yNTg3IDI3LjE1MDFDMjcuNzM5MiAyNy40NjMyIDI3LjE4OTUgMjcuNzMxNiAyNi42MTcyIDI3Ljk0OTFDMjYuOTE3NyAyOC41NTA2IDI3LjI2NSAyOS4xMjQ0IDI3LjY1NzYgMjkuNjYyN0MyOS4yNDMzIDI5LjE2OTIgMzAuODU2MSAyOC40MTQ5IDMyLjUxODggMjcuMTcxN0MzMi45MTc1IDIyLjk1MDIgMzEuODM3NyAxOS4yOSAyOS42NjQ2IDE2LjA0NDhaTTE5LjgxMDkgMjQuOTMyMkMxOC44NjI2IDI0LjkzMjIgMTguMDg0OCAyNC4wNDY4IDE4LjA4NDggMjIuOTY4N0MxOC4wODQ4IDIxLjg5MDUgMTguODQ2IDIxLjAwMzYgMTkuODEwOSAyMS4wMDM2QzIwLjc3NTkgMjEuMDAzNiAyMS41NTM2IDIxLjg4OSAyMS41MzcgMjIuOTY4N0MyMS41Mzg1IDI0LjA0NjggMjAuNzc1OSAyNC45MzIyIDE5LjgxMDkgMjQuOTMyMlpNMjYuMTg5OCAyNC45MzIyQzI1LjI0MTQgMjQuOTMyMiAyNC40NjM3IDI0LjA0NjggMjQuNDYzNyAyMi45Njg3QzI0LjQ2MzcgMjEuODkwNSAyNS4yMjQ4IDIxLjAwMzYgMjYuMTg5OCAyMS4wMDM2QzI3LjE1NDggMjEuMDAzNiAyNy45MzI1IDIxLjg4OSAyNy45MTU5IDIyLjk2ODdDMjcuOTE1OSAyNC4wNDY4IDI3LjE1NDggMjQuOTMyMiAyNi4xODk4IDI0LjkzMjJaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K"},47393:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDUiIGhlaWdodD0iNDUiIHZpZXdCb3g9IjAgMCA0NSA0NSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjQ1IiBoZWlnaHQ9IjQ1IiByeD0iMTAiIGZpbGw9IiM1NzVBNUQiLz4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzg4OV8yNzg5KSI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMjMuMDAwNCAxMi4zOTk5QzE3LjY5NjQgMTIuMzk5OSAxMy40MDA0IDE2LjY5NTkgMTMuNDAwNCAyMS45OTk5QzEzLjQwMDQgMjYuMjQ3OSAxNi4xNDg0IDI5LjgzNTkgMTkuOTY0NCAzMS4xMDc5QzIwLjQ0NDQgMzEuMTkxOSAyMC42MjQ0IDMwLjkwMzkgMjAuNjI0NCAzMC42NTE5QzIwLjYyNDQgMzAuNDIzOSAyMC42MTI0IDI5LjY2NzkgMjAuNjEyNCAyOC44NjM5QzE4LjIwMDQgMjkuMzA3OSAxNy41NzY0IDI4LjI3NTkgMTcuMzg0NCAyNy43MzU5QzE3LjI3NjQgMjcuNDU5OSAxNi44MDg0IDI2LjYwNzkgMTYuNDAwNCAyNi4zNzk5QzE2LjA2NDQgMjYuMTk5OSAxNS41ODQ0IDI1Ljc1NTkgMTYuMzg4NCAyNS43NDM5QzE3LjE0NDQgMjUuNzMxOSAxNy42ODQ0IDI2LjQzOTkgMTcuODY0NCAyNi43Mjc5QzE4LjcyODQgMjguMTc5OSAyMC4xMDg0IDI3Ljc3MTkgMjAuNjYwNCAyNy41MTk5QzIwLjc0NDQgMjYuODk1OSAyMC45OTY0IDI2LjQ3NTkgMjEuMjcyNCAyNi4yMzU5QzE5LjEzNjQgMjUuOTk1OSAxNi45MDQ0IDI1LjE2NzkgMTYuOTA0NCAyMS40OTU5QzE2LjkwNDQgMjAuNDUxOSAxNy4yNzY0IDE5LjU4NzkgMTcuODg4NCAxOC45MTU5QzE3Ljc5MjQgMTguNjc1OSAxNy40NTY0IDE3LjY5MTkgMTcuOTg0NCAxNi4zNzE5QzE3Ljk4NDQgMTYuMzcxOSAxOC43ODg0IDE2LjExOTkgMjAuNjI0NCAxNy4zNTU5QzIxLjM5MjQgMTcuMTM5OSAyMi4yMDg0IDE3LjAzMTkgMjMuMDI0NCAxNy4wMzE5QzIzLjg0MDQgMTcuMDMxOSAyNC42NTY0IDE3LjEzOTkgMjUuNDI0NCAxNy4zNTU5QzI3LjI2MDQgMTYuMTA3OSAyOC4wNjQ0IDE2LjM3MTkgMjguMDY0NCAxNi4zNzE5QzI4LjU5MjQgMTcuNjkxOSAyOC4yNTY0IDE4LjY3NTkgMjguMTYwNCAxOC45MTU5QzI4Ljc3MjQgMTkuNTg3OSAyOS4xNDQ0IDIwLjQzOTkgMjkuMTQ0NCAyMS40OTU5QzI5LjE0NDQgMjUuMTc5OSAyNi45MDA0IDI1Ljk5NTkgMjQuNzY0NCAyNi4yMzU5QzI1LjExMjQgMjYuNTM1OSAyNS40MTI0IDI3LjExMTkgMjUuNDEyNCAyOC4wMTE5QzI1LjQxMjQgMjkuMjk1OSAyNS40MDA0IDMwLjMyNzkgMjUuNDAwNCAzMC42NTE5QzI1LjQwMDQgMzAuOTAzOSAyNS41ODA0IDMxLjIwMzkgMjYuMDYwNCAzMS4xMDc5QzI3Ljk2NjEgMzAuNDY0NSAyOS42MjIxIDI5LjIzOTYgMzAuNzk1MyAyNy42MDU4QzMxLjk2ODUgMjUuOTcxOSAzMi41OTk4IDI0LjAxMTMgMzIuNjAwNCAyMS45OTk5QzMyLjYwMDQgMTYuNjk1OSAyOC4zMDQ0IDEyLjM5OTkgMjMuMDAwNCAxMi4zOTk5WiIgZmlsbD0id2hpdGUiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF84ODlfMjc4OSI+CjxyZWN0IHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgZmlsbD0id2hpdGUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDExIDEwKSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="},83105:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDUiIGhlaWdodD0iNDUiIHZpZXdCb3g9IjAgMCA0NSA0NSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3Qgd2lkdGg9IjQ1IiBoZWlnaHQ9IjQ1IiByeD0iMTAiIGZpbGw9IiMxRTlFRUUiLz4KPHBhdGggZD0iTTMyLjYwMDQgMTYuNDUxNUMzMS44OTQzIDE2Ljc2NDQgMzEuMTM1OCAxNi45NzU4IDMwLjMzODQgMTcuMDcxNEMzMS4xNjEyIDE2LjU3OSAzMS43NzY3IDE1LjgwNDIgMzIuMDcwMiAxNC44OTE0QzMxLjI5NzIgMTUuMzUwNiAzMC40NTEyIDE1LjY3MzggMjkuNTY4OSAxNS44NDY5QzI4Ljk3NTcgMTUuMjEzNSAyOC4xODk4IDE0Ljc5MzYgMjcuMzMzNSAxNC42NTI1QzI2LjQ3NzEgMTQuNTExNCAyNS41OTgxIDE0LjY1NyAyNC44MzMgMTUuMDY2N0MyNC4wNjc4IDE1LjQ3NjMgMjMuNDU5NCAxNi4xMjcxIDIzLjEwMiAxNi45MTgxQzIyLjc0NDYgMTcuNzA5IDIyLjY1ODQgMTguNTk1NyAyMi44NTY2IDE5LjQ0MDdDMjEuMjkwMyAxOS4zNjIxIDE5Ljc1ODEgMTguOTU1IDE4LjM1OTMgMTguMjQ1OEMxNi45NjA1IDE3LjUzNjcgMTUuNzI2NSAxNi41NDEzIDE0LjczNzMgMTUuMzI0NEMxNC4zOTkgMTUuOTA3OCAxNC4yMDQ1IDE2LjU4NDMgMTQuMjA0NSAxNy4zMDQ3QzE0LjIwNDIgMTcuOTUzMyAxNC4zNjM5IDE4LjU5MTkgMTQuNjY5NSAxOS4xNjRDMTQuOTc1MiAxOS43MzYgMTUuNDE3MyAyMC4yMjM4IDE1Ljk1NjYgMjAuNTgzOUMxNS4zMzExIDIwLjU2NCAxNC43MTk0IDIwLjM5NSAxNC4xNzI0IDIwLjA5MVYyMC4xNDE3QzE0LjE3MjQgMjEuMDUxMyAxNC40ODcgMjEuOTMzIDE1LjA2MyAyMi42MzdDMTUuNjM5IDIzLjM0MTEgMTYuNDQwOCAyMy44MjQyIDE3LjMzMjQgMjQuMDA0NEMxNi43NTIxIDI0LjE2MTQgMTYuMTQzOCAyNC4xODQ1IDE1LjU1MzMgMjQuMDcyQzE1LjgwNDggMjQuODU0NyAxNi4yOTQ4IDI1LjUzOTEgMTYuOTU0NyAyNi4wMjk1QzE3LjYxNDYgMjYuNTE5OCAxOC40MTEzIDI2Ljc5MTYgMTkuMjMzMyAyNi44MDY3QzE3LjgzNzkgMjcuOTAyIDE2LjExNDYgMjguNDk2MiAxNC4zNDA3IDI4LjQ5MzZDMTQuMDI2NSAyOC40OTM3IDEzLjcxMjUgMjguNDc1MyAxMy40MDA0IDI4LjQzODZDMTUuMjAxMSAyOS41OTY0IDE3LjI5NzIgMzAuMjEwOCAxOS40Mzc5IDMwLjIwODVDMjYuNjg0NiAzMC4yMDg1IDMwLjY0NjIgMjQuMjA2NSAzMC42NDYyIDE5LjAwMUMzMC42NDYyIDE4LjgzMTkgMzAuNjQyIDE4LjY2MTEgMzAuNjM0NCAxOC40OTE5QzMxLjQwNSAxNy45MzQ3IDMyLjA3MDEgMTcuMjQ0NiAzMi41OTg3IDE2LjQ1NDFMMzIuNjAwNCAxNi40NTE1WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg=="},75856:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAgMCA2MCA2MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzE2MF82MTg1KSI+CjxwYXRoIGQ9Ik0zMC42NzczIDUuMDIxMzNDMzAuMTU2NCA1LjAyMTMzIDI5LjY1NjggNC44MDk0OSAyOS4yODg1IDQuNDMyNDJDMjguOTIwMSA0LjA1NTM1IDI4LjcxMzIgMy41NDM5MyAyOC43MTMyIDMuMDEwNjdDMjguNzEzMiAyLjQ3NzQgMjguOTIwMSAxLjk2NTk4IDI5LjI4ODUgMS41ODg5MUMyOS42NTY4IDEuMjExODQgMzAuMTU2NCAxIDMwLjY3NzMgMUMzNi45MDggMS4wMDEyOCA0Mi45NjQ0IDMuMTA1MzkgNDcuOTA4OSA2Ljk4NjUzQzUyLjg1MzQgMTAuODY3NyA1Ni40MSAxNi4zMDkzIDU4LjAyODEgMjIuNDY4OUM1OS42NDYxIDI4LjYyODQgNTkuMjM1NCAzNS4xNjIyIDU2Ljg1OTQgNDEuMDU4N0M1NC40ODM1IDQ2Ljk1NTEgNTAuMjc0OCA1MS44ODUxIDQ0Ljg4NTIgNTUuMDg1NEMzOS40OTU1IDU4LjI4NTggMzMuMjI1NiA1OS41Nzc4IDI3LjA0NjEgNTguNzYxNUMyMC44NjY3IDU3Ljk0NTIgMTUuMTIyNSA1NS4wNjYxIDEwLjcwMyA1MC41N0M2LjI4MzU1IDQ2LjA3MzkgMy40MzUzMiA0MC4yMTE2IDIuNTk5MzUgMzMuODkwOUMxLjc2MzM5IDI3LjU3MDIgMi45ODYzNCAyMS4xNDM2IDYuMDc4ODMgMTUuNjA2M0w0LjI0NjkzIDE2LjMyMTdDMy42NTMzOSAxNi41NTMgMi45OTQzNyAxNi41MzM2IDIuNDE0ODUgMTYuMjY3NUMxLjgzNTM0IDE2LjAwMTUgMS4zODI3OSAxNS41MTA3IDEuMTU2NzcgMTQuOTAzMUMwLjkzMDc1MSAxNC4yOTU1IDAuOTQ5NzcgMTMuNjIwOCAxLjIwOTY0IDEzLjAyNzZDMS40Njk1MiAxMi40MzQzIDEuOTQ4OTYgMTEuOTcxIDIuNTQyNSAxMS43Mzk3TDguNzc0NzUgOS4zMjI5OUM5LjAwNDk1IDkuMjI1MTcgOS4yNDg2OSA5LjE2NDgzIDkuNDk3MTIgOS4xNDQxNkMxMC4wNjgxIDkuMDQ0NTcgMTAuNjU1IDkuMTYzMzkgMTEuMTQ2IDkuNDc3OTlDMTEuNjM3IDkuNzkyNTkgMTEuOTk3OSAxMC4yODEgMTIuMTYgMTAuODUwM0wxNC4xMTQ2IDE3LjM4MDJDMTQuMjczIDE3Ljk5MjggMTQuMTkyOSAxOC42NDQ0IDEzLjg5MTIgMTkuMTk3OEMxMy41ODk1IDE5Ljc1MTEgMTMuMDg5NyAyMC4xNjMgMTIuNDk3MiAyMC4zNDY2QzExLjkwNDcgMjAuNTMwMSAxMS4yNjU4IDIwLjQ3MTEgMTAuNzE0OSAyMC4xODJDMTAuMTY0MSAxOS44OTI4IDkuNzQ0NDMgMTkuMzk2IDkuNTQ0MzMgMTguNzk2M0w5LjI5ODgyIDE3LjkxNjdDNi43MDQ2MyAyMi43MTUgNS43MjM0NyAyOC4yNTMzIDYuNTA2NSAzMy42Nzg2QzcuMjg5NTIgMzkuMTAzOSA5Ljc5MzI4IDQ0LjExNTIgMTMuNjMyMSA0Ny45NDA1QzE3LjQ3MDkgNTEuNzY1OCAyMi40MzE4IDU0LjE5MjkgMjcuNzUwNyA1NC44NDhDMzMuMDY5NSA1NS41MDMgMzguNDUxMiA1NC4zNDk3IDQzLjA2NjggNTEuNTY1NkM0Ny42ODIzIDQ4Ljc4MTYgNTEuMjc1NyA0NC41MjEyIDUzLjI5MzMgMzkuNDQwOEM1NS4zMTEgMzQuMzYwNSA1NS42NDEgMjguNzQxOSA1NC4yMzI2IDIzLjQ1MDZDNTIuODI0MSAxOC4xNTk0IDQ5Ljc1NTMgMTMuNDg4OSA0NS40OTg5IDEwLjE1ODhDNDEuMjQyNCA2LjgyODU5IDM2LjAzNDUgNS4wMjM0MiAzMC42NzczIDUuMDIxMzNWNS4wMjEzM1pNMjAuMzc5OSA0MS42MjQxQzE5LjM1MDcgNDEuNjI0MSAxOC41MTUgNDAuOTEzNiAxOC41MTUgNDAuMDM4OEMxOC41MTUgMzkuMTY0IDE5LjM1MDcgMzguNDUzNSAyMC4zNzk5IDM4LjQ1MzVIMjIuMTY5NEMyMi40MzM5IDM2LjE5IDIzLjMyMzIgMzQuMDUwNyAyNC43MzMxIDMyLjI4NjFDMjUuNDM1IDMxLjM5MzcgMjYuMjcxOCAzMC42MjE5IDI3LjIxMTggMzBDMjYuMjcxIDI5LjM2NzUgMjUuNDM0MyAyOC41ODYgMjQuNzMzMSAyNy42ODQ4QzIzLjMyNDEgMjUuOTIxNiAyMi40MzQ4IDIzLjc4NDEgMjIuMTY5NCAyMS41MjIzSDIwLjM3OTlDMTkuMzUwNyAyMS41MjIzIDE4LjUxNSAyMC44MTE4IDE4LjUxNSAxOS45MzIyQzE4LjUxNSAxOS4wNTI1IDE5LjM1MDcgMTguMzQ2OCAyMC4zNzk5IDE4LjM0NjhINDAuOTIyN0M0MS45NTIgMTguMzQ2OCA0Mi44MTEzIDE5LjA1NzMgNDIuODExMyAxOS45MzIyQzQyLjgxMTMgMjAuODA3IDQxLjk3NTYgMjEuNTIyMyA0MC45MjI3IDIxLjUyMjNIMzkuMTI4NkMzOC44NjQ4IDIzLjc4MzYgMzcuOTc3MiAyNS45MjEyIDM2LjU2OTYgMjcuNjg0OEMzNS44NjY3IDI4LjU4NjIgMzUuMDI4NCAyOS4zNjc2IDM0LjA4NjIgMzBDMzUuMDI5NCAzMC42MjkxIDM1Ljg2NzkgMzEuNDA5MSAzNi41Njk2IDMyLjMxMDNDMzcuOTc4MiAzNC4wNzUxIDM4Ljg2NTkgMzYuMjE0NiAzOS4xMjg2IDM4LjQ3NzZINDAuOTIyN0M0MS45NTIgMzguNDc3NiA0Mi44MTEzIDM5LjE4ODEgNDIuODExMyA0MC4wNjNDNDIuODExMyA0MC45Mzc4IDQxLjk3NTYgNDEuNjQ4MyA0MC45MjI3IDQxLjY0ODNMMjAuMzc5OSA0MS42MjQxWk0zNi44ODEyIDM4LjMyM0MzNi42MTE2IDM2LjYyOTMgMzUuOTA5NiAzNS4wMzg2IDM0Ljg0NjMgMzMuNzEyQzMzLjYyODIgMzIuMTY1MyAzMi4wNzAxIDMxLjExMTYgMzAuNjUzNyAzMS4xMTE2QzI5LjIzNzMgMzEuMTExNiAyNy42ODM5IDMyLjE2NTMgMjYuNDY1OCAzMy43MTJDMjUuNDAxIDM1LjAzODIgMjQuNjk3NCAzNi42Mjg5IDI0LjQyNjIgMzguMzIzSDM2Ljg4MTJaTTM0Ljg0NjMgMjYuMjM5NkMzNS45MDg4IDI0LjkxMDcgMzYuNjEwNyAyMy4zMTg3IDM2Ljg4MTIgMjEuNjIzOEgyNC40MjE1QzI0LjY5MzYgMjMuMzE5MSAyNS4zOTcxIDI0LjkxMTEgMjYuNDYxMSAyNi4yMzk2QzI3LjY3OTIgMjcuNzg2MyAyOS4yMzI2IDI4LjgzNTEgMzAuNjQ5IDI4LjgzNTFDMzIuMDY1NCAyOC44MzUxIDMzLjYyMzUgMjcuNzg2MyAzNC44NDE2IDI2LjIzOTZIMzQuODQ2M1oiIHN0cm9rZT0iYmxhY2siLz4KPHBhdGggZD0iTTMwLjY3NzMgNS4wMjEzM0MzMC4xNTY0IDUuMDIxMzMgMjkuNjU2OCA0LjgwOTQ5IDI5LjI4ODUgNC40MzI0MkMyOC45MjAxIDQuMDU1MzUgMjguNzEzMiAzLjU0MzkzIDI4LjcxMzIgMy4wMTA2N0MyOC43MTMyIDIuNDc3NCAyOC45MjAxIDEuOTY1OTggMjkuMjg4NSAxLjU4ODkxQzI5LjY1NjggMS4yMTE4NCAzMC4xNTY0IDEgMzAuNjc3MyAxQzM2LjkwOCAxLjAwMTI4IDQyLjk2NDQgMy4xMDUzOSA0Ny45MDg5IDYuOTg2NTNDNTIuODUzNCAxMC44Njc3IDU2LjQxIDE2LjMwOTMgNTguMDI4MSAyMi40Njg5QzU5LjY0NjEgMjguNjI4NCA1OS4yMzU0IDM1LjE2MjIgNTYuODU5NCA0MS4wNTg3QzU0LjQ4MzUgNDYuOTU1MSA1MC4yNzQ4IDUxLjg4NTEgNDQuODg1MiA1NS4wODU0QzM5LjQ5NTUgNTguMjg1OCAzMy4yMjU2IDU5LjU3NzggMjcuMDQ2MSA1OC43NjE1QzIwLjg2NjcgNTcuOTQ1MiAxNS4xMjI1IDU1LjA2NjEgMTAuNzAzIDUwLjU3QzYuMjgzNTUgNDYuMDczOSAzLjQzNTMyIDQwLjIxMTYgMi41OTkzNSAzMy44OTA5QzEuNzYzMzkgMjcuNTcwMiAyLjk4NjM0IDIxLjE0MzYgNi4wNzg4MyAxNS42MDYzTDQuMjQ2OTMgMTYuMzIxN0MzLjY1MzM5IDE2LjU1MyAyLjk5NDM3IDE2LjUzMzYgMi40MTQ4NSAxNi4yNjc1QzEuODM1MzQgMTYuMDAxNSAxLjM4Mjc5IDE1LjUxMDcgMS4xNTY3NyAxNC45MDMxQzAuOTMwNzUxIDE0LjI5NTUgMC45NDk3NyAxMy42MjA4IDEuMjA5NjQgMTMuMDI3NkMxLjQ2OTUyIDEyLjQzNDMgMS45NDg5NiAxMS45NzEgMi41NDI1IDExLjczOTdMOC43NzQ3NSA5LjMyMjk5QzkuMDA0OTUgOS4yMjUxNyA5LjI0ODY5IDkuMTY0ODMgOS40OTcxMiA5LjE0NDE2QzEwLjA2ODEgOS4wNDQ1NyAxMC42NTUgOS4xNjMzOSAxMS4xNDYgOS40Nzc5OUMxMS42MzcgOS43OTI1OSAxMS45OTc5IDEwLjI4MSAxMi4xNiAxMC44NTAzTDE0LjExNDYgMTcuMzgwMkMxNC4yNzMgMTcuOTkyOCAxNC4xOTI5IDE4LjY0NDQgMTMuODkxMiAxOS4xOTc4QzEzLjU4OTUgMTkuNzUxMSAxMy4wODk3IDIwLjE2MyAxMi40OTcyIDIwLjM0NjZDMTEuOTA0NyAyMC41MzAxIDExLjI2NTggMjAuNDcxMSAxMC43MTQ5IDIwLjE4MkMxMC4xNjQxIDE5Ljg5MjggOS43NDQ0MyAxOS4zOTYgOS41NDQzMyAxOC43OTYzTDkuMjk4ODIgMTcuOTE2N0M2LjcwNDYzIDIyLjcxNSA1LjcyMzQ3IDI4LjI1MzMgNi41MDY1IDMzLjY3ODZDNy4yODk1MiAzOS4xMDM5IDkuNzkzMjggNDQuMTE1MiAxMy42MzIxIDQ3Ljk0MDVDMTcuNDcwOSA1MS43NjU4IDIyLjQzMTggNTQuMTkyOSAyNy43NTA3IDU0Ljg0OEMzMy4wNjk1IDU1LjUwMyAzOC40NTEyIDU0LjM0OTcgNDMuMDY2OCA1MS41NjU2QzQ3LjY4MjMgNDguNzgxNiA1MS4yNzU3IDQ0LjUyMTIgNTMuMjkzMyAzOS40NDA4QzU1LjMxMSAzNC4zNjA1IDU1LjY0MSAyOC43NDE5IDU0LjIzMjYgMjMuNDUwNkM1Mi44MjQxIDE4LjE1OTQgNDkuNzU1MyAxMy40ODg5IDQ1LjQ5ODkgMTAuMTU4OEM0MS4yNDI0IDYuODI4NTkgMzYuMDM0NSA1LjAyMzQyIDMwLjY3NzMgNS4wMjEzM1Y1LjAyMTMzWk0yMC4zNzk5IDQxLjYyNDFDMTkuMzUwNyA0MS42MjQxIDE4LjUxNSA0MC45MTM2IDE4LjUxNSA0MC4wMzg4QzE4LjUxNSAzOS4xNjQgMTkuMzUwNyAzOC40NTM1IDIwLjM3OTkgMzguNDUzNUgyMi4xNjk0QzIyLjQzMzkgMzYuMTkgMjMuMzIzMiAzNC4wNTA3IDI0LjczMzEgMzIuMjg2MUMyNS40MzUgMzEuMzkzNyAyNi4yNzE4IDMwLjYyMTkgMjcuMjExOCAzMEMyNi4yNzEgMjkuMzY3NSAyNS40MzQzIDI4LjU4NiAyNC43MzMxIDI3LjY4NDhDMjMuMzI0MSAyNS45MjE2IDIyLjQzNDggMjMuNzg0MSAyMi4xNjk0IDIxLjUyMjNIMjAuMzc5OUMxOS4zNTA3IDIxLjUyMjMgMTguNTE1IDIwLjgxMTggMTguNTE1IDE5LjkzMjJDMTguNTE1IDE5LjA1MjUgMTkuMzUwNyAxOC4zNDY4IDIwLjM3OTkgMTguMzQ2OEg0MC45MjI3QzQxLjk1MiAxOC4zNDY4IDQyLjgxMTMgMTkuMDU3MyA0Mi44MTEzIDE5LjkzMjJDNDIuODExMyAyMC44MDcgNDEuOTc1NiAyMS41MjIzIDQwLjkyMjcgMjEuNTIyM0gzOS4xMjg2QzM4Ljg2NDggMjMuNzgzNiAzNy45NzcyIDI1LjkyMTIgMzYuNTY5NiAyNy42ODQ4QzM1Ljg2NjcgMjguNTg2MiAzNS4wMjg0IDI5LjM2NzYgMzQuMDg2MiAzMEMzNS4wMjk0IDMwLjYyOTEgMzUuODY3OSAzMS40MDkxIDM2LjU2OTYgMzIuMzEwM0MzNy45NzgyIDM0LjA3NTEgMzguODY1OSAzNi4yMTQ2IDM5LjEyODYgMzguNDc3Nkg0MC45MjI3QzQxLjk1MiAzOC40Nzc2IDQyLjgxMTMgMzkuMTg4MSA0Mi44MTEzIDQwLjA2M0M0Mi44MTEzIDQwLjkzNzggNDEuOTc1NiA0MS42NDgzIDQwLjkyMjcgNDEuNjQ4M0wyMC4zNzk5IDQxLjYyNDFaTTM2Ljg4MTIgMzguMzIzQzM2LjYxMTYgMzYuNjI5MyAzNS45MDk2IDM1LjAzODYgMzQuODQ2MyAzMy43MTJDMzMuNjI4MiAzMi4xNjUzIDMyLjA3MDEgMzEuMTExNiAzMC42NTM3IDMxLjExMTZDMjkuMjM3MyAzMS4xMTE2IDI3LjY4MzkgMzIuMTY1MyAyNi40NjU4IDMzLjcxMkMyNS40MDEgMzUuMDM4MiAyNC42OTc0IDM2LjYyODkgMjQuNDI2MiAzOC4zMjNIMzYuODgxMlpNMzQuODQ2MyAyNi4yMzk2QzM1LjkwODggMjQuOTEwNyAzNi42MTA3IDIzLjMxODcgMzYuODgxMiAyMS42MjM4SDI0LjQyMTVDMjQuNjkzNiAyMy4zMTkxIDI1LjM5NzEgMjQuOTExMSAyNi40NjExIDI2LjIzOTZDMjcuNjc5MiAyNy43ODYzIDI5LjIzMjYgMjguODM1MSAzMC42NDkgMjguODM1MUMzMi4wNjU0IDI4LjgzNTEgMzMuNjIzNSAyNy43ODYzIDM0Ljg0MTYgMjYuMjM5NkgzNC44NDYzWiIgc3Ryb2tlPSJ1cmwoI3BhaW50MF9saW5lYXJfMTYwXzYxODUpIi8+CjwvZz4KPGRlZnM+CjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQwX2xpbmVhcl8xNjBfNjE4NSIgeDE9IjE1Ljk4MzMiIHkxPSI1LjM1IiB4Mj0iNDIuMDgzMyIgeTI9IjU3LjA2NjciIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KPHN0b3Agc3RvcC1jb2xvcj0iIzk5MzRCRCIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM0NDc5RTAiLz4KPC9saW5lYXJHcmFkaWVudD4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xNjBfNjE4NSI+CjxyZWN0IHdpZHRoPSI2MCIgaGVpZ2h0PSI2MCIgZmlsbD0id2hpdGUiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K"},11316:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I=N.p+"assets/images/test-runner-99a5135c441d1e51e1395f3b20326143.svg"},79969:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I=N.p+"assets/images/twitter-figma-6c7e0221ad0959047e3ed54363785314.svg"},88718:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDIwMDEwOTA0Ly9FTiIKImh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDEvUkVDLVNWRy0yMDAxMDkwNC9EVEQvc3ZnMTAuZHRkIj4KPHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTIxLjYgNS40NTE1NEMyMC44OTQgNS43NjQ0IDIwLjEzNTUgNS45NzU4IDE5LjMzODEgNi4wNzEzNUMyMC4xNjA4IDUuNTc5MDQgMjAuNzc2NCA0LjgwNDIxIDIxLjA2OTggMy44OTE0MkMyMC4yOTY4IDQuMzUwNTcgMTkuNDUwOCA0LjY3Mzc2IDE4LjU2ODYgNC44NDY5NEMxNy45NzUzIDQuMjEzNDggMTcuMTg5NSAzLjc5MzYxIDE2LjMzMzEgMy42NTI1MkMxNS40NzY4IDMuNTExNDMgMTQuNTk3OCAzLjY1NzAxIDEzLjgzMjYgNC4wNjY2N0MxMy4wNjc1IDQuNDc2MzMgMTIuNDU5IDUuMTI3MTMgMTIuMTAxNiA1LjkxODA1QzExLjc0NDMgNi43MDg5NyAxMS42NTggNy41OTU3NCAxMS44NTYzIDguNDQwN0MxMC4yOSA4LjM2MjA2IDguNzU3NzEgNy45NTQ5NSA3LjM1ODkzIDcuMjQ1OEM1Ljk2MDE1IDYuNTM2NjUgNC43MjYxMSA1LjU0MTMgMy43MzY5IDQuMzI0MzZDMy4zOTg2NyA0LjkwNzgyIDMuMjA0MTggNS41ODQyOSAzLjIwNDE4IDYuMzA0NzRDMy4yMDM4IDYuOTUzMyAzLjM2MzUyIDcuNTkxOTMgMy42NjkxNSA4LjE2Mzk3QzMuOTc0NzkgOC43MzYgNC40MTY5IDkuMjIzNzUgNC45NTYyNSA5LjU4Mzk0QzQuMzMwNzQgOS41NjQwNCAzLjcxOTA0IDkuMzk1MDIgMy4xNzIwNSA5LjA5MDk2VjkuMTQxN0MzLjE3MTk5IDEwLjA1MTMgMy40ODY2NCAxMC45MzMgNC4wNjI2MSAxMS42MzdDNC42Mzg1OSAxMi4zNDExIDUuNDQwNDEgMTIuODI0MiA2LjMzMjAzIDEzLjAwNDRDNS43NTE3NyAxMy4xNjE0IDUuMTQzNDEgMTMuMTg0NSA0LjU1MjkgMTMuMDcyQzQuODA0NDYgMTMuODU0NyA1LjI5NDQ4IDE0LjUzOTEgNS45NTQzNiAxNS4wMjk1QzYuNjE0MjMgMTUuNTE5OCA3LjQxMDkzIDE1Ljc5MTYgOC4yMzI5MSAxNS44MDY3QzYuODM3NTUgMTYuOTAyIDUuMTE0MjggMTcuNDk2MiAzLjM0MDMyIDE3LjQ5MzZDMy4wMjYwOCAxNy40OTM3IDIuNzEyMTEgMTcuNDc1MyAyLjQwMDAyIDE3LjQzODZDNC4yMDA2OSAxOC41OTY0IDYuMjk2OCAxOS4yMTA4IDguNDM3NTUgMTkuMjA4NUMxNS42ODQzIDE5LjIwODUgMTkuNjQ1OSAxMy4yMDY1IDE5LjY0NTkgOC4wMDA5OUMxOS42NDU5IDcuODMxODggMTkuNjQxNiA3LjY2MTA3IDE5LjYzNCA3LjQ5MTk1QzIwLjQwNDYgNi45MzQ2OCAyMS4wNjk4IDYuMjQ0NjEgMjEuNTk4MyA1LjQ1NDA3TDIxLjYgNS40NTE1NFoiIGZpbGw9IndoaXRlIi8+Cjwvc3ZnPgo="},95721:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE1LjU1MzUgNS4wMzcyOUMxNC41MTc4IDQuNTUyNzEgMTMuNDEwNCA0LjIwMDUzIDEyLjI1MjYgNEMxMi4xMTA0IDQuMjU3MDcgMTEuOTQ0MyA0LjYwMjg0IDExLjgyOTggNC44Nzc5QzEwLjU5OSA0LjY5MjgxIDkuMzc5NTYgNC42OTI4MSA4LjE3MTQ0IDQuODc3OUM4LjA1NjkzIDQuNjAyODQgNy44ODcwNCA0LjI1NzA3IDcuNzQzNTcgNEM2LjU4NDU0IDQuMjAwNTMgNS40NzU4NCA0LjU1NCA0LjQ0MDEzIDUuMDM5ODVDMi4zNTExIDguMTk2NjYgMS43ODQ3OSAxMS4yNzUxIDIuMDY3OTQgMTQuMzA5N0MzLjQ1MzUgMTUuMzQ0NCA0Ljc5NjI3IDE1Ljk3MyA2LjExNjM4IDE2LjM4NDNDNi40NDIzMyAxNS45MzU3IDYuNzMzMDIgMTUuNDU4OCA2Ljk4MzQ1IDE0Ljk1NjNDNi41MDY1IDE0Ljc3NSA2LjA0OTY5IDE0LjU1MTQgNS42MTgwNSAxNC4yOTE3QzUuNzMyNTYgMTQuMjA2OSA1Ljg0NDU3IDE0LjExODIgNS45NTI3OSAxNC4wMjdDOC41ODU0NiAxNS4yNTgzIDExLjQ0NTkgMTUuMjU4MyAxNC4wNDcyIDE0LjAyN0MxNC4xNTY2IDE0LjExODIgMTQuMjY4NiAxNC4yMDY5IDE0LjM4MTkgMTQuMjkxN0MxMy45NDkgMTQuNTUyNyAxMy40OTA5IDE0Ljc3NjMgMTMuMDE0IDE0Ljk1NzZDMTMuMjY0NCAxNS40NTg4IDEzLjU1MzggMTUuOTM3IDEzLjg4MSAxNi4zODU2QzE1LjIwMjQgMTUuOTc0MyAxNi41NDY0IDE1LjM0NTcgMTcuOTMyIDE0LjMwOTdDMTguMjY0MiAxMC43OTE4IDE3LjM2NDQgNy43NDE2NCAxNS41NTM1IDUuMDM3MjlaTTcuMzQyMTIgMTIuNDQzNEM2LjU1MTgxIDEyLjQ0MzQgNS45MDM3IDExLjcwNTYgNS45MDM3IDEwLjgwNzJDNS45MDM3IDkuOTA4NzMgNi41Mzc5NyA5LjE2OTY2IDcuMzQyMTIgOS4xNjk2NkM4LjE0NjI4IDkuMTY5NjYgOC43OTQzNyA5LjkwNzQzIDguNzgwNTMgMTAuODA3MkM4Ljc4MTc4IDExLjcwNTYgOC4xNDYyOCAxMi40NDM0IDcuMzQyMTIgMTIuNDQzNFpNMTIuNjU3OCAxMi40NDM0QzExLjg2NzUgMTIuNDQzNCAxMS4yMTk0IDExLjcwNTYgMTEuMjE5NCAxMC44MDcyQzExLjIxOTQgOS45MDg3MyAxMS44NTM3IDkuMTY5NjYgMTIuNjU3OCA5LjE2OTY2QzEzLjQ2MiA5LjE2OTY2IDE0LjExMDEgOS45MDc0MyAxNC4wOTYyIDEwLjgwNzJDMTQuMDk2MiAxMS43MDU2IDEzLjQ2MiAxMi40NDM0IDEyLjY1NzggMTIuNDQzNFoiIGZpbGw9IndoaXRlIi8+Cjwvc3ZnPgo="},2911:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE1LjU1MzUgNS4wMzcyOUMxNC41MTc4IDQuNTUyNzEgMTMuNDEwNCA0LjIwMDUzIDEyLjI1MjYgNEMxMi4xMTA0IDQuMjU3MDcgMTEuOTQ0MyA0LjYwMjg0IDExLjgyOTggNC44Nzc5QzEwLjU5OSA0LjY5MjgxIDkuMzc5NTYgNC42OTI4MSA4LjE3MTQ0IDQuODc3OUM4LjA1NjkzIDQuNjAyODQgNy44ODcwNCA0LjI1NzA3IDcuNzQzNTcgNEM2LjU4NDU0IDQuMjAwNTMgNS40NzU4NCA0LjU1NCA0LjQ0MDEzIDUuMDM5ODVDMi4zNTExIDguMTk2NjYgMS43ODQ3OSAxMS4yNzUxIDIuMDY3OTQgMTQuMzA5N0MzLjQ1MzUgMTUuMzQ0NCA0Ljc5NjI3IDE1Ljk3MyA2LjExNjM4IDE2LjM4NDNDNi40NDIzMyAxNS45MzU3IDYuNzMzMDIgMTUuNDU4OCA2Ljk4MzQ1IDE0Ljk1NjNDNi41MDY1IDE0Ljc3NSA2LjA0OTY5IDE0LjU1MTQgNS42MTgwNSAxNC4yOTE3QzUuNzMyNTYgMTQuMjA2OSA1Ljg0NDU3IDE0LjExODIgNS45NTI3OSAxNC4wMjdDOC41ODU0NiAxNS4yNTgzIDExLjQ0NTkgMTUuMjU4MyAxNC4wNDcyIDE0LjAyN0MxNC4xNTY2IDE0LjExODIgMTQuMjY4NiAxNC4yMDY5IDE0LjM4MTkgMTQuMjkxN0MxMy45NDkgMTQuNTUyNyAxMy40OTA5IDE0Ljc3NjMgMTMuMDE0IDE0Ljk1NzZDMTMuMjY0NCAxNS40NTg4IDEzLjU1MzggMTUuOTM3IDEzLjg4MSAxNi4zODU2QzE1LjIwMjQgMTUuOTc0MyAxNi41NDY0IDE1LjM0NTcgMTcuOTMyIDE0LjMwOTdDMTguMjY0MiAxMC43OTE4IDE3LjM2NDQgNy43NDE2NCAxNS41NTM1IDUuMDM3MjlaTTcuMzQyMTIgMTIuNDQzNEM2LjU1MTgxIDEyLjQ0MzQgNS45MDM3IDExLjcwNTYgNS45MDM3IDEwLjgwNzJDNS45MDM3IDkuOTA4NzMgNi41Mzc5NyA5LjE2OTY2IDcuMzQyMTIgOS4xNjk2NkM4LjE0NjI4IDkuMTY5NjYgOC43OTQzNyA5LjkwNzQzIDguNzgwNTMgMTAuODA3MkM4Ljc4MTc4IDExLjcwNTYgOC4xNDYyOCAxMi40NDM0IDcuMzQyMTIgMTIuNDQzNFpNMTIuNjU3OCAxMi40NDM0QzExLjg2NzUgMTIuNDQzNCAxMS4yMTk0IDExLjcwNTYgMTEuMjE5NCAxMC44MDcyQzExLjIxOTQgOS45MDg3MyAxMS44NTM3IDkuMTY5NjYgMTIuNjU3OCA5LjE2OTY2QzEzLjQ2MiA5LjE2OTY2IDE0LjExMDEgOS45MDc0MyAxNC4wOTYyIDEwLjgwNzJDMTQuMDk2MiAxMS43MDU2IDEzLjQ2MiAxMi40NDM0IDEyLjY1NzggMTIuNDQzNFoiIGZpbGw9IiMxMjE2MUIiLz4KPC9zdmc+Cg=="},86448:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTAgMkM1LjU4IDIgMiA1LjU4IDIgMTBDMiAxMy41NCA0LjI5IDE2LjUzIDcuNDcgMTcuNTlDNy44NyAxNy42NiA4LjAyIDE3LjQyIDguMDIgMTcuMjFDOC4wMiAxNy4wMiA4LjAxIDE2LjM5IDguMDEgMTUuNzJDNiAxNi4wOSA1LjQ4IDE1LjIzIDUuMzIgMTQuNzhDNS4yMyAxNC41NSA0Ljg0IDEzLjg0IDQuNSAxMy42NUM0LjIyIDEzLjUgMy44MiAxMy4xMyA0LjQ5IDEzLjEyQzUuMTIgMTMuMTEgNS41NyAxMy43IDUuNzIgMTMuOTRDNi40NCAxNS4xNSA3LjU5IDE0LjgxIDguMDUgMTQuNkM4LjEyIDE0LjA4IDguMzMgMTMuNzMgOC41NiAxMy41M0M2Ljc4IDEzLjMzIDQuOTIgMTIuNjQgNC45MiA5LjU4QzQuOTIgOC43MSA1LjIzIDcuOTkgNS43NCA3LjQzQzUuNjYgNy4yMyA1LjM4IDYuNDEgNS44MiA1LjMxQzUuODIgNS4zMSA2LjQ5IDUuMSA4LjAyIDYuMTNDOC42NiA1Ljk1IDkuMzQgNS44NiAxMC4wMiA1Ljg2QzEwLjcgNS44NiAxMS4zOCA1Ljk1IDEyLjAyIDYuMTNDMTMuNTUgNS4wOSAxNC4yMiA1LjMxIDE0LjIyIDUuMzFDMTQuNjYgNi40MSAxNC4zOCA3LjIzIDE0LjMgNy40M0MxNC44MSA3Ljk5IDE1LjEyIDguNyAxNS4xMiA5LjU4QzE1LjEyIDEyLjY1IDEzLjI1IDEzLjMzIDExLjQ3IDEzLjUzQzExLjc2IDEzLjc4IDEyLjAxIDE0LjI2IDEyLjAxIDE1LjAxQzEyLjAxIDE2LjA4IDEyIDE2Ljk0IDEyIDE3LjIxQzEyIDE3LjQyIDEyLjE1IDE3LjY3IDEyLjU1IDE3LjU5QzE0LjEzODEgMTcuMDUzOCAxNS41MTgxIDE2LjAzMzEgMTYuNDk1OCAxNC42NzE2QzE3LjQ3MzQgMTMuMzEgMTcuOTk5NSAxMS42NzYyIDE4IDEwQzE4IDUuNTggMTQuNDIgMiAxMCAyWiIgZmlsbD0iI2ZmZmZmZiIvPgo8L3N2Zz4K"},46752:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMCAyQzUuNTggMiAyIDUuNTggMiAxMEMyIDEzLjU0IDQuMjkgMTYuNTMgNy40NyAxNy41OUM3Ljg3IDE3LjY2IDguMDIgMTcuNDIgOC4wMiAxNy4yMUM4LjAyIDE3LjAyIDguMDEgMTYuMzkgOC4wMSAxNS43MkM2IDE2LjA5IDUuNDggMTUuMjMgNS4zMiAxNC43OEM1LjIzIDE0LjU1IDQuODQgMTMuODQgNC41IDEzLjY1QzQuMjIgMTMuNSAzLjgyIDEzLjEzIDQuNDkgMTMuMTJDNS4xMiAxMy4xMSA1LjU3IDEzLjcgNS43MiAxMy45NEM2LjQ0IDE1LjE1IDcuNTkgMTQuODEgOC4wNSAxNC42QzguMTIgMTQuMDggOC4zMyAxMy43MyA4LjU2IDEzLjUzQzYuNzggMTMuMzMgNC45MiAxMi42NCA0LjkyIDkuNThDNC45MiA4LjcxIDUuMjMgNy45OSA1Ljc0IDcuNDNDNS42NiA3LjIzIDUuMzggNi40MSA1LjgyIDUuMzFDNS44MiA1LjMxIDYuNDkgNS4xIDguMDIgNi4xM0M4LjY2IDUuOTUgOS4zNCA1Ljg2IDEwLjAyIDUuODZDMTAuNyA1Ljg2IDExLjM4IDUuOTUgMTIuMDIgNi4xM0MxMy41NSA1LjA5IDE0LjIyIDUuMzEgMTQuMjIgNS4zMUMxNC42NiA2LjQxIDE0LjM4IDcuMjMgMTQuMyA3LjQzQzE0LjgxIDcuOTkgMTUuMTIgOC43IDE1LjEyIDkuNThDMTUuMTIgMTIuNjUgMTMuMjUgMTMuMzMgMTEuNDcgMTMuNTNDMTEuNzYgMTMuNzggMTIuMDEgMTQuMjYgMTIuMDEgMTUuMDFDMTIuMDEgMTYuMDggMTIgMTYuOTQgMTIgMTcuMjFDMTIgMTcuNDIgMTIuMTUgMTcuNjcgMTIuNTUgMTcuNTlDMTQuMTM4MSAxNy4wNTM4IDE1LjUxODEgMTYuMDMzMSAxNi40OTU4IDE0LjY3MTZDMTcuNDczNCAxMy4zMSAxNy45OTk1IDExLjY3NjIgMTggMTBDMTggNS41OCAxNC40MiAyIDEwIDJaIiBmaWxsPSIjMTIxNjFCIi8+Cjwvc3ZnPgo="},15878:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMCAyQzUuNTggMiAyIDUuNTggMiAxMEMyIDEzLjU0IDQuMjkgMTYuNTMgNy40NyAxNy41OUM3Ljg3IDE3LjY2IDguMDIgMTcuNDIgOC4wMiAxNy4yMUM4LjAyIDE3LjAyIDguMDEgMTYuMzkgOC4wMSAxNS43MkM2IDE2LjA5IDUuNDggMTUuMjMgNS4zMiAxNC43OEM1LjIzIDE0LjU1IDQuODQgMTMuODQgNC41IDEzLjY1QzQuMjIgMTMuNSAzLjgyIDEzLjEzIDQuNDkgMTMuMTJDNS4xMiAxMy4xMSA1LjU3IDEzLjcgNS43MiAxMy45NEM2LjQ0IDE1LjE1IDcuNTkgMTQuODEgOC4wNSAxNC42QzguMTIgMTQuMDggOC4zMyAxMy43MyA4LjU2IDEzLjUzQzYuNzggMTMuMzMgNC45MiAxMi42NCA0LjkyIDkuNThDNC45MiA4LjcxIDUuMjMgNy45OSA1Ljc0IDcuNDNDNS42NiA3LjIzIDUuMzggNi40MSA1LjgyIDUuMzFDNS44MiA1LjMxIDYuNDkgNS4xIDguMDIgNi4xM0M4LjY2IDUuOTUgOS4zNCA1Ljg2IDEwLjAyIDUuODZDMTAuNyA1Ljg2IDExLjM4IDUuOTUgMTIuMDIgNi4xM0MxMy41NSA1LjA5IDE0LjIyIDUuMzEgMTQuMjIgNS4zMUMxNC42NiA2LjQxIDE0LjM4IDcuMjMgMTQuMyA3LjQzQzE0LjgxIDcuOTkgMTUuMTIgOC43IDE1LjEyIDkuNThDMTUuMTIgMTIuNjUgMTMuMjUgMTMuMzMgMTEuNDcgMTMuNTNDMTEuNzYgMTMuNzggMTIuMDEgMTQuMjYgMTIuMDEgMTUuMDFDMTIuMDEgMTYuMDggMTIgMTYuOTQgMTIgMTcuMjFDMTIgMTcuNDIgMTIuMTUgMTcuNjcgMTIuNTUgMTcuNTlDMTQuMTM4MSAxNy4wNTM4IDE1LjUxODEgMTYuMDMzMSAxNi40OTU4IDE0LjY3MTZDMTcuNDczNCAxMy4zMSAxNy45OTk1IDExLjY3NjIgMTggMTBDMTggNS41OCAxNC40MiAyIDEwIDJaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K"},20566:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMCAyQzUuNTggMiAyIDUuNTggMiAxMEMyIDEzLjU0IDQuMjkgMTYuNTMgNy40NyAxNy41OUM3Ljg3IDE3LjY2IDguMDIgMTcuNDIgOC4wMiAxNy4yMUM4LjAyIDE3LjAyIDguMDEgMTYuMzkgOC4wMSAxNS43MkM2IDE2LjA5IDUuNDggMTUuMjMgNS4zMiAxNC43OEM1LjIzIDE0LjU1IDQuODQgMTMuODQgNC41IDEzLjY1QzQuMjIgMTMuNSAzLjgyIDEzLjEzIDQuNDkgMTMuMTJDNS4xMiAxMy4xMSA1LjU3IDEzLjcgNS43MiAxMy45NEM2LjQ0IDE1LjE1IDcuNTkgMTQuODEgOC4wNSAxNC42QzguMTIgMTQuMDggOC4zMyAxMy43MyA4LjU2IDEzLjUzQzYuNzggMTMuMzMgNC45MiAxMi42NCA0LjkyIDkuNThDNC45MiA4LjcxIDUuMjMgNy45OSA1Ljc0IDcuNDNDNS42NiA3LjIzIDUuMzggNi40MSA1LjgyIDUuMzFDNS44MiA1LjMxIDYuNDkgNS4xIDguMDIgNi4xM0M4LjY2IDUuOTUgOS4zNCA1Ljg2IDEwLjAyIDUuODZDMTAuNyA1Ljg2IDExLjM4IDUuOTUgMTIuMDIgNi4xM0MxMy41NSA1LjA5IDE0LjIyIDUuMzEgMTQuMjIgNS4zMUMxNC42NiA2LjQxIDE0LjM4IDcuMjMgMTQuMyA3LjQzQzE0LjgxIDcuOTkgMTUuMTIgOC43IDE1LjEyIDkuNThDMTUuMTIgMTIuNjUgMTMuMjUgMTMuMzMgMTEuNDcgMTMuNTNDMTEuNzYgMTMuNzggMTIuMDEgMTQuMjYgMTIuMDEgMTUuMDFDMTIuMDEgMTYuMDggMTIgMTYuOTQgMTIgMTcuMjFDMTIgMTcuNDIgMTIuMTUgMTcuNjcgMTIuNTUgMTcuNTlDMTQuMTM4MSAxNy4wNTM4IDE1LjUxODEgMTYuMDMzMSAxNi40OTU4IDE0LjY3MTZDMTcuNDczNCAxMy4zMSAxNy45OTk1IDExLjY3NjIgMTggMTBDMTggNS41OCAxNC40MiAyIDEwIDJaIiBmaWxsPSIjMTIxNjFCIi8+Cjwvc3ZnPgo="},73720:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzczNF8yNTM3KSIgZmlsdGVyPSJ1cmwoI2ZpbHRlcjBfZF83MzRfMjUzNykiPgo8cGF0aCBkPSJNMjggMEg0VjI0SDI4VjBaIi8+CjxwYXRoIGQ9Ik0xMyA3Ljk5OTk4QzExLjMzMyA4LjY2Njk4IDcuNiAxMC43IDYgMTMuNU0xNS41IDExQzEzLjE2NyAxMi4zMzMgOCAxNi40IDYgMjJNMTYuNSAxNC41QzE1LjMzMyAxNS42NjcgMTIuNyAxOC42IDExLjUgMjFNMTguNjc0IDYuNDQ5OThMMTkuMzQ3IDMuMTY0OThMMjEuNTcyIDUuNjc0OThMMjQuNTk5IDUuMzgwOThMMjIuODMxIDguNDQyOThMMjQuNTc0IDExLjA4MkwyMS4yODggMTAuNDA5TDE4Ljc3OCAxMi42MzRMMTguOTY4IDkuNDc3OThMMTUuOTA2IDcuNzA5OThMMTguNjc0IDYuNDQ5OThaIiBzdHJva2U9IiMxYzFlMjEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8L2c+CjxkZWZzPgo8ZmlsdGVyIGlkPSJmaWx0ZXIwX2RfNzM0XzI1MzciIHg9IjAiIHk9IjAiIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPgo8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCIvPgo8ZmVDb2xvck1hdHJpeCBpbj0iU291cmNlQWxwaGEiIHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAxMjcgMCIgcmVzdWx0PSJoYXJkQWxwaGEiLz4KPGZlQ29tcG9zaXRlIGluMj0iaGFyZEFscGhhIiBvcGVyYXRvcj0ib3V0Ii8+CjxmZUNvbG9yTWF0cml4IHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwLjI1IDAiLz4KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbjI9IkJhY2tncm91bmRJbWFnZUZpeCIgcmVzdWx0PSJlZmZlY3QxX2Ryb3BTaGFkb3dfNzM0XzI1MzciLz4KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJlZmZlY3QxX2Ryb3BTaGFkb3dfNzM0XzI1MzciIHJlc3VsdD0ic2hhcGUiLz4KPC9maWx0ZXI+CjxjbGlwUGF0aCBpZD0iY2xpcDBfNzM0XzI1MzciPgo8cmVjdCB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGZpbGw9Im5vbmUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDQpIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg=="},42658:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzczNF8yNTM3KSIgZmlsdGVyPSJ1cmwoI2ZpbHRlcjBfZF83MzRfMjUzNykiPgo8cGF0aCBkPSJNMjggMEg0VjI0SDI4VjBaIi8+CjxwYXRoIGQ9Ik0xMyA3Ljk5OTk4QzExLjMzMyA4LjY2Njk4IDcuNiAxMC43IDYgMTMuNU0xNS41IDExQzEzLjE2NyAxMi4zMzMgOCAxNi40IDYgMjJNMTYuNSAxNC41QzE1LjMzMyAxNS42NjcgMTIuNyAxOC42IDExLjUgMjFNMTguNjc0IDYuNDQ5OThMMTkuMzQ3IDMuMTY0OThMMjEuNTcyIDUuNjc0OThMMjQuNTk5IDUuMzgwOThMMjIuODMxIDguNDQyOThMMjQuNTc0IDExLjA4MkwyMS4yODggMTAuNDA5TDE4Ljc3OCAxMi42MzRMMTguOTY4IDkuNDc3OThMMTUuOTA2IDcuNzA5OThMMTguNjc0IDYuNDQ5OThaIiBzdHJva2U9IiMwNDhGQzAiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8L2c+CjxkZWZzPgo8ZmlsdGVyIGlkPSJmaWx0ZXIwX2RfNzM0XzI1MzciIHg9IjAiIHk9IjAiIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPgo8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCIvPgo8ZmVDb2xvck1hdHJpeCBpbj0iU291cmNlQWxwaGEiIHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAxMjcgMCIgcmVzdWx0PSJoYXJkQWxwaGEiLz4KPGZlQ29tcG9zaXRlIGluMj0iaGFyZEFscGhhIiBvcGVyYXRvcj0ib3V0Ii8+CjxmZUNvbG9yTWF0cml4IHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwLjI1IDAiLz4KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbjI9IkJhY2tncm91bmRJbWFnZUZpeCIgcmVzdWx0PSJlZmZlY3QxX2Ryb3BTaGFkb3dfNzM0XzI1MzciLz4KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJlZmZlY3QxX2Ryb3BTaGFkb3dfNzM0XzI1MzciIHJlc3VsdD0ic2hhcGUiLz4KPC9maWx0ZXI+CjxjbGlwUGF0aCBpZD0iY2xpcDBfNzM0XzI1MzciPgo8cmVjdCB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGZpbGw9Im5vbmUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDQpIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg=="},1819:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzczNF8yNTM3KSIgZmlsdGVyPSJ1cmwoI2ZpbHRlcjBfZF83MzRfMjUzNykiPgo8cGF0aCBkPSJNMjggMEg0VjI0SDI4VjBaIi8+CjxwYXRoIGQ9Ik0xMyA3Ljk5OTk4QzExLjMzMyA4LjY2Njk4IDcuNiAxMC43IDYgMTMuNU0xNS41IDExQzEzLjE2NyAxMi4zMzMgOCAxNi40IDYgMjJNMTYuNSAxNC41QzE1LjMzMyAxNS42NjcgMTIuNyAxOC42IDExLjUgMjFNMTguNjc0IDYuNDQ5OThMMTkuMzQ3IDMuMTY0OThMMjEuNTcyIDUuNjc0OThMMjQuNTk5IDUuMzgwOThMMjIuODMxIDguNDQyOThMMjQuNTc0IDExLjA4MkwyMS4yODggMTAuNDA5TDE4Ljc3OCAxMi42MzRMMTguOTY4IDkuNDc3OThMMTUuOTA2IDcuNzA5OThMMTguNjc0IDYuNDQ5OThaIiBzdHJva2U9IndoaXRlIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9nPgo8ZGVmcz4KPGZpbHRlciBpZD0iZmlsdGVyMF9kXzczNF8yNTM3IiB4PSIwIiB5PSIwIiB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIGZpbHRlclVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj4KPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz4KPGZlQ29sb3JNYXRyaXggaW49IlNvdXJjZUFscGhhIiB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDAiIHJlc3VsdD0iaGFyZEFscGhhIi8+CjxmZUNvbXBvc2l0ZSBpbjI9ImhhcmRBbHBoYSIgb3BlcmF0b3I9Im91dCIvPgo8ZmVDb2xvck1hdHJpeCB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMC4yNSAwIi8+CjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW4yPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHJlc3VsdD0iZWZmZWN0MV9kcm9wU2hhZG93XzczNF8yNTM3Ii8+CjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iZWZmZWN0MV9kcm9wU2hhZG93XzczNF8yNTM3IiByZXN1bHQ9InNoYXBlIi8+CjwvZmlsdGVyPgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzczNF8yNTM3Ij4KPHJlY3Qgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBmaWxsPSJub25lIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg0KSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="},25200:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE4IDQuNTQyODdDMTcuNDExNiA0LjgwMzU5IDE2Ljc3OTUgNC45Nzk3NSAxNi4xMTUgNS4wNTkzOEMxNi44MDA3IDQuNjQ5MTIgMTcuMzEzNiA0LjAwMzQyIDE3LjU1ODIgMy4yNDI3N0MxNi45MTQgMy42MjUzOSAxNi4yMDkgMy44OTQ3MiAxNS40NzM4IDQuMDM5MDNDMTQuOTc5NCAzLjUxMTE1IDE0LjMyNDUgMy4xNjEyNiAxMy42MTA5IDMuMDQzNjhDMTIuODk3MyAyLjkyNjExIDEyLjE2NDggMy4wNDc0MyAxMS41MjcyIDMuMzg4ODFDMTAuODg5NSAzLjczMDE5IDEwLjM4MjUgNC4yNzI1MyAxMC4wODQ3IDQuOTMxNjNDOS43ODY4NiA1LjU5MDczIDkuNzE0OTkgNi4zMjk3MSA5Ljg4MDIxIDcuMDMzODRDOC41NzQ5NiA2Ljk2ODMgNy4yOTgwNyA2LjYyOTA0IDYuMTMyNDIgNi4wMzgwOUM0Ljk2Njc3IDUuNDQ3MTMgMy45Mzg0MSA0LjYxNzY3IDMuMTE0MDcgMy42MDM1NUMyLjgzMjIgNC4wODk3NyAyLjY3MDEzIDQuNjUzNSAyLjY3MDEzIDUuMjUzODdDMi42Njk4MiA1Ljc5NDM0IDIuODAyOTEgNi4zMjY1MyAzLjA1NzYxIDYuODAzMjJDMy4zMTIzIDcuMjc5OTIgMy42ODA3MyA3LjY4NjM4IDQuMTMwMTkgNy45ODY1NEMzLjYwODkzIDcuOTY5OTUgMy4wOTkxOCA3LjgyOTEgMi42NDMzNSA3LjU3NTcyVjcuNjE4QzIuNjQzMyA4LjM3NjAzIDIuOTA1NTEgOS4xMTA3MyAzLjM4NTQ5IDkuNjk3NDVDMy44NjU0NyAxMC4yODQyIDQuNTMzNjUgMTAuNjg2NyA1LjI3NjY3IDEwLjgzNjlDNC43OTMxMiAxMC45Njc4IDQuMjg2MTUgMTAuOTg3IDMuNzk0MDYgMTAuODkzM0M0LjAwMzcgMTEuNTQ1NSA0LjQxMjA1IDEyLjExNTkgNC45NjE5NCAxMi41MjQ1QzUuNTExODQgMTIuOTMzMSA2LjE3NTc1IDEzLjE1OTYgNi44NjA3NCAxMy4xNzIxQzUuNjk3OTQgMTQuMDg1IDQuMjYxODggMTQuNTgwMSAyLjc4MzU4IDE0LjU3NzlDMi41MjE3MiAxNC41NzggMi4yNjAwNyAxNC41NjI3IDIgMTQuNTMyMUMzLjUwMDU2IDE1LjQ5NjkgNS4yNDczMSAxNi4wMDkgNy4wMzEyNyAxNi4wMDdDMTMuMDcwMiAxNi4wMDcgMTYuMzcxNSAxMS4wMDUzIDE2LjM3MTUgNi42Njc0MUMxNi4zNzE1IDYuNTI2NDggMTYuMzY4IDYuMzg0MTQgMTYuMzYxNyA2LjI0MzIxQzE3LjAwMzggNS43Nzg4MiAxNy41NTgxIDUuMjAzNzYgMTcuOTk4NiA0LjU0NDk4TDE4IDQuNTQyODdaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K"},1088:(M,A,N)=>{"use strict";N.r(A),N.d(A,{default:()=>I});const I="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCAyMCAyMCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE4IDQuNTQyODdDMTcuNDExNiA0LjgwMzU5IDE2Ljc3OTUgNC45Nzk3NSAxNi4xMTUgNS4wNTkzOEMxNi44MDA3IDQuNjQ5MTIgMTcuMzEzNiA0LjAwMzQyIDE3LjU1ODIgMy4yNDI3N0MxNi45MTQgMy42MjUzOSAxNi4yMDkgMy44OTQ3MiAxNS40NzM4IDQuMDM5MDNDMTQuOTc5NCAzLjUxMTE1IDE0LjMyNDUgMy4xNjEyNiAxMy42MTA5IDMuMDQzNjhDMTIuODk3MyAyLjkyNjExIDEyLjE2NDggMy4wNDc0MyAxMS41MjcyIDMuMzg4ODFDMTAuODg5NSAzLjczMDE5IDEwLjM4MjUgNC4yNzI1MyAxMC4wODQ3IDQuOTMxNjNDOS43ODY4NiA1LjU5MDczIDkuNzE0OTkgNi4zMjk3MSA5Ljg4MDIxIDcuMDMzODRDOC41NzQ5NiA2Ljk2ODMgNy4yOTgwNyA2LjYyOTA0IDYuMTMyNDIgNi4wMzgwOUM0Ljk2Njc3IDUuNDQ3MTMgMy45Mzg0MSA0LjYxNzY3IDMuMTE0MDcgMy42MDM1NUMyLjgzMjIgNC4wODk3NyAyLjY3MDEzIDQuNjUzNSAyLjY3MDEzIDUuMjUzODdDMi42Njk4MiA1Ljc5NDM0IDIuODAyOTEgNi4zMjY1MyAzLjA1NzYxIDYuODAzMjJDMy4zMTIzIDcuMjc5OTIgMy42ODA3MyA3LjY4NjM4IDQuMTMwMTkgNy45ODY1NEMzLjYwODkzIDcuOTY5OTUgMy4wOTkxOCA3LjgyOTEgMi42NDMzNSA3LjU3NTcyVjcuNjE4QzIuNjQzMyA4LjM3NjAzIDIuOTA1NTEgOS4xMTA3MyAzLjM4NTQ5IDkuNjk3NDVDMy44NjU0NyAxMC4yODQyIDQuNTMzNjUgMTAuNjg2NyA1LjI3NjY3IDEwLjgzNjlDNC43OTMxMiAxMC45Njc4IDQuMjg2MTUgMTAuOTg3IDMuNzk0MDYgMTAuODkzM0M0LjAwMzcgMTEuNTQ1NSA0LjQxMjA1IDEyLjExNTkgNC45NjE5NCAxMi41MjQ1QzUuNTExODQgMTIuOTMzMSA2LjE3NTc1IDEzLjE1OTYgNi44NjA3NCAxMy4xNzIxQzUuNjk3OTQgMTQuMDg1IDQuMjYxODggMTQuNTgwMSAyLjc4MzU4IDE0LjU3NzlDMi41MjE3MiAxNC41NzggMi4yNjAwNyAxNC41NjI3IDIgMTQuNTMyMUMzLjUwMDU2IDE1LjQ5NjkgNS4yNDczMSAxNi4wMDkgNy4wMzEyNyAxNi4wMDdDMTMuMDcwMiAxNi4wMDcgMTYuMzcxNSAxMS4wMDUzIDE2LjM3MTUgNi42Njc0MUMxNi4zNzE1IDYuNTI2NDggMTYuMzY4IDYuMzg0MTQgMTYuMzYxNyA2LjI0MzIxQzE3LjAwMzggNS43Nzg4MiAxNy41NTgxIDUuMjAzNzYgMTcuOTk4NiA0LjU0NDk4TDE4IDQuNTQyODdaIiBmaWxsPSIjMTIxNjFCIi8+Cjwvc3ZnPgo="},35170:(M,A,N)=>{var I={"./img/blog/v20-logger-options.png":31013,"./img/blog/v20-perfetto-example.png":46156,"./img/cover.jpeg":80036,"./img/detox.png":3716,"./img/favicon.ico":32532,"./img/homepage/ci.svg":55261,"./img/homepage/cross-platform.svg":24161,"./img/homepage/debug.svg":38242,"./img/homepage/devices.svg":24006,"./img/homepage/discord-figma.svg":37964,"./img/homepage/flag_of_ukraine_with_waves.svg":82641,"./img/homepage/gh-star-figma.svg":49678,"./img/homepage/github.svg":97988,"./img/homepage/hero-image.webp":62714,"./img/homepage/join-us-on-disc.svg":54606,"./img/homepage/join-us-white.svg":68350,"./img/homepage/mobile-discord.svg":34732,"./img/homepage/mobile-github.svg":47393,"./img/homepage/mobile-twitter.svg":83105,"./img/homepage/sync.svg":75856,"./img/homepage/test-runner.svg":11316,"./img/homepage/twitter-figma.svg":79969,"./img/homepage/twitter-logo.svg":88718,"./img/logo.png":4693,"./img/showcase/bolt-food.webp":3617,"./img/showcase/currenxie.webp":45480,"./img/showcase/discord-footer-dark.svg":95721,"./img/showcase/discord-footer-light.svg":2911,"./img/showcase/expo.png":29268,"./img/showcase/gh-footer-dark.svg":86448,"./img/showcase/gh-footer-light.svg":46752,"./img/showcase/gh-nav-dark.svg":15878,"./img/showcase/gh-nav-light.svg":20566,"./img/showcase/hudl.webp":3354,"./img/showcase/maiia.webp":9940,"./img/showcase/mercari.webp":58686,"./img/showcase/next.jpg":76187,"./img/showcase/noona.webp":70370,"./img/showcase/omnon.webp":43864,"./img/showcase/pitch.webp":80141,"./img/showcase/player-data.webp":86303,"./img/showcase/react-native.webp":30080,"./img/showcase/rn-datetimepicker.png":80754,"./img/showcase/rocket-chat.webp":50642,"./img/showcase/showcase-icon-dark.svg":73720,"./img/showcase/showcase-icon-hover.svg":42658,"./img/showcase/showcase-icon-white.svg":1819,"./img/showcase/showcase-illustration.png":90052,"./img/showcase/twitter-footer-dark.svg":25200,"./img/showcase/twitter-footer-light.svg":1088,"./img/showcase/valora.webp":79792,"./img/showcase/wealthsimple.png":33341,"./img/showcase/wix-dine.webp":17404,"./img/showcase/wix-fit.webp":43017,"./img/showcase/wix-owner.webp":85805,"./img/showcase/wix-spaces.webp":813};function D(M){var A=g(M);return N(A)}function g(M){if(!N.o(I,M)){var A=new Error("Cannot find module '"+M+"'");throw A.code="MODULE_NOT_FOUND",A}return I[M]}D.keys=function(){return Object.keys(I)},D.resolve=g,M.exports=D,D.id=35170}}]); \ No newline at end of file diff --git a/assets/js/73f08e0f.ebb577a4.js b/assets/js/73f08e0f.ebb577a4.js new file mode 100644 index 0000000000..6b9d8d565d --- /dev/null +++ b/assets/js/73f08e0f.ebb577a4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3336],{15680:(e,t,o)=>{o.d(t,{xA:()=>p,yg:()=>y});var n=o(96540);function a(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function i(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function r(e){for(var t=1;t=0||(a[o]=e[o]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(a[o]=e[o])}return a}var s=n.createContext({}),g=function(e){var t=n.useContext(s),o=t;return e&&(o="function"==typeof e?e(t):r(r({},t),e)),o},p=function(e){var t=g(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var o=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=g(o),d=a,y=u["".concat(s,".").concat(d)]||u[d]||c[d]||i;return o?n.createElement(y,r(r({ref:t},p),{},{components:o})):n.createElement(y,r({ref:t},p))}));function y(e,t){var o=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=o.length,r=new Array(i);r[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:a,r[1]=l;for(var g=2;g{o.r(t),o.d(t,{assets:()=>s,contentTitle:()=>r,default:()=>c,frontMatter:()=>i,metadata:()=>l,toc:()=>g});var n=o(58168),a=(o(96540),o(15680));const i={authors:["asafkorem"],tags:["minor-release","detox-copilot","ai-integration"]},r="Introducing Detox Copilot",l={permalink:"/Detox/blog/2024/09/30/detox-copilot-is-out",editUrl:"https://github.com/wix/Detox/edit/master/website/blog/2024-09-30-detox-copilot-is-out.md",source:"@site/blog/2024-09-30-detox-copilot-is-out.md",title:"Introducing Detox Copilot",description:"Detox Copilot: Write Tests in Natural Language",date:"2024-09-30T00:00:00.000Z",formattedDate:"September 30, 2024",tags:[{label:"minor-release",permalink:"/Detox/blog/tags/minor-release"},{label:"detox-copilot",permalink:"/Detox/blog/tags/detox-copilot"},{label:"ai-integration",permalink:"/Detox/blog/tags/ai-integration"}],readingTime:3.27,hasTruncateMarker:!1,authors:[{name:"Asaf Korem",title:"Detox Core Contributor",url:"https://github.com/asafkorem",imageURL:"https://github.com/asafkorem.png",key:"asafkorem"}],frontMatter:{authors:["asafkorem"],tags:["minor-release","detox-copilot","ai-integration"]},nextItem:{title:"Detox 20 is out",permalink:"/Detox/blog/2022/11/10/detox-20-is-out"}},s={authorsImageUrls:[void 0]},g=[{value:"Detox Copilot: Write Tests in Natural Language",id:"detox-copilot-write-tests-in-natural-language",level:2},{value:"Why Natural Language Testing?",id:"why-natural-language-testing",level:3},{value:"Key Features of Detox Copilot",id:"key-features-of-detox-copilot",level:2},{value:"Write Tests in Plain Text",id:"write-tests-in-plain-text",level:3},{value:"Seamless Integration with Detox",id:"seamless-integration-with-detox",level:3},{value:"LLM-Agnostic Design",id:"llm-agnostic-design",level:3},{value:"How Detox Copilot Works",id:"how-detox-copilot-works",level:2},{value:"Getting Started with Detox Copilot",id:"getting-started-with-detox-copilot",level:2},{value:"Extending Beyond Detox",id:"extending-beyond-detox",level:2},{value:"Learn More",id:"learn-more",level:2},{value:"Join the Future of Testing",id:"join-the-future-of-testing",level:2}],p={toc:g},u="wrapper";function c(e){let{components:t,...i}=e;return(0,a.yg)(u,(0,n.A)({},p,i,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h2",{id:"detox-copilot-write-tests-in-natural-language"},"Detox Copilot: Write Tests in Natural Language"),(0,a.yg)("p",null,"We're excited to announce ",(0,a.yg)("strong",{parentName:"p"},"Detox Copilot"),", a groundbreaking feature that brings natural language testing to Detox. With Detox Copilot, you can now write end-to-end tests using plain textual commands, making test creation more intuitive and accessible than ever."),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"Detox Copilot in action GIF",src:o(16031).A,width:"600",height:"388"})),(0,a.yg)("p",null,"Detox Copilot leverages advanced Large Language Models (LLMs) to interpret natural language instructions and translate them into Detox actions and assertions. This means you can describe your test scenarios in everyday language, aligning perfectly with ",(0,a.yg)("strong",{parentName:"p"},"Behavior-Driven Development (BDD)")," principles."),(0,a.yg)("h3",{id:"why-natural-language-testing"},"Why Natural Language Testing?"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("strong",{parentName:"li"},"Improved Collaboration"),": Teams can collaborate more effectively, as tests are written in plain language understandable by developers, QA engineers, and non-technical stakeholders alike."),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("strong",{parentName:"li"},"Faster Test Creation"),": Reduce the time spent writing and maintaining complex test scripts."),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("strong",{parentName:"li"},"Enhanced Test Coverage"),": Lower the barrier to writing tests, encouraging more comprehensive testing."),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("strong",{parentName:"li"},"Reduced Maintenance Costs"),": Thanks to the decoupling from specific matchers (e.g., avoiding brittle XPath selectors or relying on ",(0,a.yg)("inlineCode",{parentName:"li"},"testID")," attributes commonly used in React Native apps), tests are less prone to breaking when the UI changes, leading to lower maintenance overhead.")),(0,a.yg)("h2",{id:"key-features-of-detox-copilot"},"Key Features of Detox Copilot"),(0,a.yg)("h3",{id:"write-tests-in-plain-text"},"Write Tests in Plain Text"),(0,a.yg)("p",null,"Detox Copilot allows you to write tests using natural language commands. Each step corresponds to a specific action or assertion within your app."),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-javascript"},"it('should navigate and add a product to the cart', async () => {\n await copilot.perform(\n 'Navigate to the \"Products\" page',\n 'Tap on the \"Add to Cart\" button for the first product',\n 'Verify that the \"Added to Cart\" pop-up is displayed'\n );\n});\n")),(0,a.yg)("h3",{id:"seamless-integration-with-detox"},"Seamless Integration with Detox"),(0,a.yg)("p",null,"Detox Copilot is built into Detox and requires no additional installation. Simply initialize it in your test setup, and you're ready to start writing natural language tests."),(0,a.yg)("h3",{id:"llm-agnostic-design"},"LLM-Agnostic Design"),(0,a.yg)("p",null,"Detox Copilot uses LLMs to interpret instructions but is designed to be LLM-agnostic. This means you can connect it to your preferred language model service, offering flexibility and future-proofing your testing strategy."),(0,a.yg)("h2",{id:"how-detox-copilot-works"},"How Detox Copilot Works"),(0,a.yg)("p",null,"Once you've written your tests using natural language instructions, Detox Copilot takes care of the rest.\nHere is a high-level overview of the execution flow:"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("strong",{parentName:"li"},"Gather Context"),": Collect relevant app state, view hierarchy, and previous step results."),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("strong",{parentName:"li"},"Interpret Intent"),": Use the LLM to interpret the natural language instruction."),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("strong",{parentName:"li"},"Generate Code"),": Create the appropriate Detox commands."),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("strong",{parentName:"li"},"Execute Action"),": Run the generated Detox code."),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("strong",{parentName:"li"},"Cache Results"),": Store execution results to optimize future runs."),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("strong",{parentName:"li"},"Provide Feedback"),": Return values or confirm actions for subsequent steps.")),(0,a.yg)("p",null,"By combining these steps, Detox Copilot effectively bridges the gap between natural language instructions and concrete test actions."),(0,a.yg)("admonition",{type:"info"},(0,a.yg)("p",{parentName:"admonition"},"Check Detox Copilot ",(0,a.yg)("strong",{parentName:"p"},(0,a.yg)("a",{parentName:"strong",href:"/docs/next/copilot/technical-overview"},"Technical Overview"))," for a detailed explanation of the building blocks and the execution flow.")),(0,a.yg)("h2",{id:"getting-started-with-detox-copilot"},"Getting Started with Detox Copilot"),(0,a.yg)("p",null,"Getting started with Detox Copilot is easy. Simply initialize Copilot in your test setup and start writing tests using natural language instructions."),(0,a.yg)("p",null,"Check our ",(0,a.yg)("a",{parentName:"p",href:"/docs/next/copilot/testing-with-copilot"},"Testing with Copilot guide")," for detailed instructions on setting up and writing tests with Detox Copilot."),(0,a.yg)("h2",{id:"extending-beyond-detox"},"Extending Beyond Detox"),(0,a.yg)("p",null,"Detox Copilot is built on a standalone core library called ",(0,a.yg)("a",{parentName:"p",href:"https://github.com/wix-incubator/detox-copilot"},"detox-copilot")," designed to interpret natural language testing instructions and generate test code. Though initially developed for Detox, it can be extended to work with other testing frameworks."),(0,a.yg)("h2",{id:"learn-more"},"Learn More"),(0,a.yg)("p",null,"For detailed guidance, check out our ",(0,a.yg)("a",{parentName:"p",href:"/docs/next/copilot/testing-with-copilot"},"Testing with Copilot guide")," and the ",(0,a.yg)("a",{parentName:"p",href:"/docs/next/api/copilot"},"Detox Copilot API Documentation"),"."),(0,a.yg)("h2",{id:"join-the-future-of-testing"},"Join the Future of Testing"),(0,a.yg)("p",null,"Detox Copilot represents a major step forward in making end-to-end testing more accessible and efficient. By embracing natural language testing, you can enhance collaboration, speed up test creation, and improve overall test coverage."),(0,a.yg)("p",null,"We're ",(0,a.yg)("strong",{parentName:"p"},"excited")," to see how you'll leverage Detox Copilot in your tests! Share your experiences, feedback, and suggestions with us as we continue to refine and expand this groundbreaking feature."))}c.isMDXComponent=!0},16031:(e,t,o)=>{o.d(t,{A:()=>n});const n=o.p+"assets/images/copilot-demo-5c8641f24001c1d6e3effd175dc8ec2b.gif"}}]); \ No newline at end of file diff --git a/assets/js/814f3328.1e97cc47.js b/assets/js/814f3328.1e97cc47.js deleted file mode 100644 index 815b4a33cd..0000000000 --- a/assets/js/814f3328.1e97cc47.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7472],{55513:e=>{e.exports=JSON.parse('{"title":"All our posts","items":[{"title":"Detox 20 is out","permalink":"/Detox/blog/2022/11/10/detox-20-is-out"}]}')}}]); \ No newline at end of file diff --git a/assets/js/814f3328.92f73eb0.js b/assets/js/814f3328.92f73eb0.js new file mode 100644 index 0000000000..4aad739d06 --- /dev/null +++ b/assets/js/814f3328.92f73eb0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7472],{55513:t=>{t.exports=JSON.parse('{"title":"All our posts","items":[{"title":"Introducing Detox Copilot","permalink":"/Detox/blog/2024/09/30/detox-copilot-is-out"},{"title":"Detox 20 is out","permalink":"/Detox/blog/2022/11/10/detox-20-is-out"}]}')}}]); \ No newline at end of file diff --git a/assets/js/8f43d633.4e452f8b.js b/assets/js/8f43d633.4e452f8b.js deleted file mode 100644 index 1fdd7cbd04..0000000000 --- a/assets/js/8f43d633.4e452f8b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6990],{82885:e=>{e.exports=JSON.parse('{"blogPosts":[{"id":"/2022/11/10/detox-20-is-out","metadata":{"permalink":"/Detox/blog/2022/11/10/detox-20-is-out","editUrl":"https://github.com/wix/Detox/edit/master/website/blog/2022-11-10-detox-20-is-out.md","source":"@site/blog/2022-11-10-detox-20-is-out.md","title":"Detox 20 is out","description":"Today we\'re proud to announce the new major release, Detox 20 (codename \\"Ash\xe1n\\"), which brings:","date":"2022-11-10T00:00:00.000Z","formattedDate":"November 10, 2022","tags":[{"label":"major-release","permalink":"/Detox/blog/tags/major-release"},{"label":"genymotion","permalink":"/Detox/blog/tags/genymotion"}],"readingTime":9.705,"hasTruncateMarker":false,"authors":[{"name":"Yaroslav Serhieiev","title":"Detox Core Contributor","url":"https://github.com/noomorph","imageURL":"https://github.com/noomorph.png","key":"noomorph"}],"frontMatter":{"authors":["noomorph"],"tags":["major-release","genymotion"]}},"content":"Today we\'re proud to announce the new major release, **Detox 20** (codename \\"Ash\xe1n\\"), which brings:\\n\\n* official support for Genymotion SaaS\\n* improved integration with test runners\\n* configurable logging subsystem\\n* headless mode for iOS via configs and CLI\\n* reversing TCP ports via Android app configs\\n* and more optimizations to land in the next minor versions.\\n\\n## Genymotion SaaS\\n\\n**Highlights**: [`Using Genymotion SaaS`].\\n\\nTwo years ago we [added elementary support][Genymotion PR] for cloud-based Android emulators provided by [Genymotion SaaS] and started a beta testing phase across mobile projects at Wix.\\n\\nPreviously our mobile infrastructure engineers had been maintaining Android virtual devices on CI build agents on their own, so switching to cloud devices cleared up their time for more productive tasks. Another improvement was particularly noticeable for teams with a vast number of tests. We could reduce the duration of their CI pipelines almost by half after they scaled up from 2 parallel devices to 6[^1].\\n\\n[^1]: The mentioned threshold is not a hard limit, but rather a point where the return value of scaling up the number of devices starts dramatically diminishing in our case \u2013 not only the tests themselves, but installing NPM dependencies and building the projects also takes time.\\n\\nThis positive impact encouraged us to adopt [Genymotion SaaS] for CI as quickly as possible, ignoring some unresolved issues in the initial pull request. For the most part, those were minor problems in global lifecycle management. Yet that made us feel uncertain about releasing it as-is, so we decided to take time and gain more production experience before taking any direction.\\n\\nThe further experience was surprisingly smooth and rarely presented issues, spare for a few minor [glitches](https://github.com/wix/Detox/issues/3573) in advanced scenarios. Admittedly, revamping the [Detox lifecycle][`Internals API`] took us longer than expected, which is all the more reason for us to celebrate today.\\n\\nWe\'re looking forward to providing our users with more opportunities for testing in the cloud, and this step is only the first of many to come. We hope you\'ll utilize this new feature to your delight.\\n\\n## Integration with test runners\\n\\n**Highlights**: [`Config file > Test runner`], [`Internals API`], [`Dropping Mocha support`].\\n\\nIt took about a few months of work to formalize the contract between Detox and a test runner. While there\'s still a lot of place for improvement, the new Detox release refines their interaction and lays the groundwork for third-party integrations.\\n\\n[Mocha] was our first supported test runner, but unfortunately, it could not keep up with our scaling requirements as the number of end-to-end tests grew. [By the time][Mocha 8] it acquired the ability to run tests in parallel, we already had [to place bets][Jest PR] on another horse, and that was [Jest].\\n\\nWe attempted to keep compatibility with both Jest and Mocha, but the farther we went, the more obvious it was that we couldn\'t have it both ways. As it turned out, Jest wasn\'t easy to get along with \u2013 our first integration with it was too simplistic. Over a couple of years of use in production, we kept discovering various issues that forced us to rewrite our \\"glue\\" code from scratch twice, and this isn\'t over yet. All combined didn\'t leave much time and energy for tinkering with Mocha anymore.\\n\\nIn this release, we discontinued Mocha support to focus on the attunement of Jest with the new runner-independent [test runner config][`Config file > Test runner`] and [Internals API][`Internals API`]. If there\'s enough demand, now it is up to the open-source community to build a new integration between Detox and Mocha.\\n\\n## Configurable logger\\n\\n**Highlights**: [`Config file > Logger`], [`Logger API`].\\n\\nThe rigidity of the logging subsystem has always been showing itself [since its very creation][Logger rewrite] in the summer of 2019.\\nDue to time constraints and existing tech debts, it was impossible to do it right the first time, so we lived about three years with a proof-of-concept rather than a full-fledged feature.\\n\\nThe inconveniences weren\'t fatal but quite noticeable, nevertheless. Here are a few syndromes you could have spotted if you have ever used Detox timeline and log artifacts, especially when running tests in parallel:\\n\\n* an uncanny file array: `detox_pid_7505.log`, `detox_pid_7505.log.json`, `detox_pid_7506.log`;\\n* a relatively shallow `detox.trace.json`: test suites, test functions, and some user-defined segments.\\n\\nThe good news is that the new Detox release condenses all those numerous logs into two files:\\n\\n* the plain, human-readable `detox.log`;\\n* the raw, machine-readable `detox.trace.json` for `chrome://trace`, [Perfetto] and other utilities.\\n\\n![A screenshot of timeline view generated by Perfetto](/img/blog/v20-perfetto-example.png)\\n\\nWith the help of the new [Logger API][`Logger API`], you can add custom duration events to the timeline, too, e.g.:\\n\\n```js\\nawait detox.log.trace.complete(\'Login\', async () => {\\n await element(by.id(\'email\')).typeText(\'john@example.com\');\\n await element(by.id(\'password\')).typeText(\'123456\');\\n\\n detox.log.info(\'Trying to log in...\');\\n await element(by.id(\'submit\')).tap();\\n});\\n```\\n\\nBesides, it is possible now to customize the console output of Detox via the new [logger config][`Config file > Logger`], e.g.:\\n\\n```js title=\\"detox.config.js\\"\\n/** @type {Detox.DetoxConfig} */\\nmodule.exports = {\\n // ...\\n logger: {\\n options: {\\n showDate: false,\\n showLoggerName: false,\\n showPid: false,\\n prefixers: {\\n ph: null,\\n },\\n },\\n },\\n};\\n```\\n\\nIn the example above, we minimize all the metadata around the log messages \u2013 see the screenshot below:\\n\\n![Terser logs after applying the override](/img/blog/v20-logger-options.png)\\n\\n## Minor features\\n\\n### Headless iOS\\n\\nOne of Detox known issues was always booting iOS simulators in a hidden mode. You could see tests running on your local simulator only if you had manually opened the Simulator app beforehand. So, we unified the `headless` property for both iOS and Android, and now both the platforms visibly boot a device unless you configure it otherwise, e.g.:\\n\\n```js\\n/* @type {Detox.DetoxConfig} */\\nmodule.exports = {\\n devices: {\\n iphone: {\\n type: \'ios.simulator\',\\n // highlight-next-line\\n headless: process.env.CI ? true : undefined,\\n device: {\\n type: \'iPhone 14\'\\n },\\n /* ... */\\n }\\n },\\n};\\n```\\n\\nor, via CLI:\\n\\n```bash\\ndetox test -c ios.sim.release --headless\\n```\\n\\n### Reverse ports\\n\\nYour apps might try to access some `localhost:*` addresses (e.g., mock servers), but this is a bit more problematic in the case of Android. The Android emulators are separate virtual devices with their own loopback network interface. In such cases, you must set up reverse port forwarding via `adb reverse`.\\n\\nLocal servers are quite a common prerequisite for apps in debug mode \u2013 one could recall React Native bundler on port 8081, Storybook server on 9009, etc. That\'s why we decided to add an optional config property for Android apps, `reversePorts`:\\n\\n```js\\n/** @type {Detox.DetoxConfig} */\\nmodule.exports = {\\n // ...\\n apps: {\\n \'android.debug\': {\\n type: \'android.apk\',\\n binaryPath: \'...\',\\n reversePorts: [8081, 3000],\\n },\\n },\\n};\\n```\\n\\nIn other words, this is a convenience API that tells Detox to run `device.reverseTcpPort(portNumber)` after installing the app. It should be helpful for anyone who prefers to keep such things as configs rather than as code.\\n\\n### Read-only emulators by default\\n\\nThe `-read-only` flag appeared in [Android emulator 28.0.16](https://developer.android.com/studio/releases/emulator#concurrent-avd). Detox promptly adopted it since the read-only mode allowed it to run multiple instances of a single Android virtual device (AVD) concurrently. This feature helped us to implement parallel test execution support for Android back then.\\n\\nBeing overcautious, we implemented that partially, only for cases when the user starts multiple concurrent workers. This decision created a moderately annoying UX issue. Imagine you run tests sequentially first, using one worker only. That provides you with a regular AVD instance, i.e., not a read-only one. After that, you switch to multiple workers only to get an error from the Android emulator, complaining about mixing regular and read-only instances.\\n\\nWhile the fix itself has always been straightforward \u2013 close the running AVD and try again \u2013 this entire overcaution brought more issues than solving them. That\'s why, from now on, Android emulators will always be starting in `-read-only` mode unless you configure `readonly: false` in your [device config][`Config file > Device`].\\n\\n### Reset lock file\\n\\nThis release adds a small CLI tool, [`detox reset-lock-file`][reset-lock-file], to help users with one specific use scenario.\\n\\nImagine you want to run tests for multiple Detox configurations at once, e.g.:\\n\\n```bash\\ndetox test -c iphoneSE2020.release e2e/ui.test.js\\ndetox test -c iphone14ProMax.release e2e/ui.test.js\\n```\\n\\nThe problem is that Detox uses a file-locking mechanism to avoid situations when parallel test workers would take control of the same device. The `detox test` command, upon start, erases that file contents, creating a race condition risk.\\n\\nTo eliminate that risk, use a combination of `detox reset-lock-file` and `--keepLockFile` like this:\\n\\n```bash\\ndetox reset-lock-file & \\\\\\ndetox test --keepLockFile -c iphoneSE2020.release e2e/ui.test.js & \\\\\\ndetox test --keepLockFile -c iphone14ProMax.release e2e/ui.test.js & \\\\\\nwait\\n```\\n\\nIn the future, we plan to minimize using lock files so that you don\'t have to think about this low-level implementation detail.\\nSo, this tool adds some convenience until we provide a next-gen solution.\\n\\n## Deprecations\\n\\nDetox 20 executes many pending deprecations, so make sure to check out our [Migration Guide] before upgrading:\\n\\n* JS: minimum supported Node.js version is `14.x`;\\n* JS: minimum supported Jest version is `27.2.5`;\\n* JS: Mocha test runner is no longer supported;\\n* JS: discontinued old adapters for Jest (`jest-jasmine`, first generation of `jest-circus` adapter);\\n* JS: discontinued `{ permanent: true }` option in `device.appLaunchArgs.*` methods ([#3360](https://github.com/wix/Detox/pull/3360));\\n* CLI: dropped `-w, --workers` and `-o, --runner-config` args \u2013 see a [dedicated section][Updating command-line scripts] in the migration guide;\\n* CLI: dropped deprecated `--device-launch-args` ([#3665](https://github.com/wix/Detox/pull/3665));\\n* Config: discontinued kebab-case properties: `test-runner`, `runner-config` ([#3371](https://github.com/wix/Detox/pull/3371))\\n* Config: discontinued `skipLegacyWorkersInjections` property ([(#3286)](https://github.com/wix/Detox/pull/3286))\\n* Config: deprecated `specs` and `runnerConfig` properties\\n* Config: changed [semantics][`Config file > Test runner`] of `testRunner` property\\n* Config: dropped support for all-in-one configurations ([#3386](https://github.com/wix/Detox/pull/3386));\\n* Android: remove deprecated native IdlePolicyConfig ([#3332](https://github.com/wix/Detox/pull/3332/files))\\n* iOS: discontinued `ios.none` device type \u2013 see the new way to [debug native code][Debugging Native] ([#3361](https://github.com/wix/Detox/pull/3361))\\n\\n## Afterword\\n\\nOver the last year and a half, we have established a centralized configuration system for more than 50 projects using Detox at Wix. While it never seemed to be a cakewalk, the entire experience of troubleshooting over a hundred issues across the organization did not leave us unchanged.\\n\\nWe see numerous things to improve in Detox, but most of them boil down to the same thing \u2013 **scaling**. Surprisingly, \\"scaling\\" makes an excellent umbrella term for nearly every challenge we\'ve been encountering lately:\\n\\n* _scaling up the number of users_ requires us to improve the onboarding and troubleshooting experience;\\n* _scaling up the number of projects_ forces us to centralize scattered configs into flexible organization presets;\\n* _scaling up the number of tests_ prompts us to optimize the codebase and incline it towards cloud and remote execution.\\n\\nOur core team has been facing challenges of limited human resource constraints and growing scaling needs for a long time. In many ways, that has shaped a specific mindset within the team. We evaluate every discussed feature by asking a simple question: _will it save other people and us time to focus on more important things?_ Teaching a man to fish is better than giving fish, so our success at preventing support issues matters more than our success at solving them ourselves.\\n\\nThat\'s why we\'ll be making subsequent efforts in these three areas, hoping to get back to you soon with even more exciting updates.\\n\\nEnjoy your drive with Detox 20!\\n\\nCheers! :wave:\\n\\n[`Using Genymotion SaaS`]: /docs/guide/genymotion-saas\\n[`Config file > Test runner`]: /docs/config/testRunner\\n[`Internals API`]: /docs/api/internals\\n[`Dropping Mocha support`]: https://github.com/wix/Detox/issues/3193\\n[`Config file > Device`]: /docs/config/devices\\n[`Config file > Logger`]: /docs/config/logger\\n[`Config file > Test runner`]: /docs/config/testRunner\\n[`Logger API`]: /docs/api/logger\\n[reset-lock-file]: /docs/cli/reset-lock-file\\n[Jest]: https://jestjs.io\\n[Mocha]: https://mochajs.org\\n[Mocha 8]: https://github.com/mochajs/mocha/releases/tag/v8.0.0\\n[Jest PR]: https://github.com/wix/Detox/pull/609\\n[Logger rewrite]: https://github.com/wix/Detox/pull/835\\n[Genymotion PR]: https://github.com/wix/Detox/pull/2446\\n[Genymotion SaaS]: https://cloud.geny.io\\n[Genymotion issues]: https://github.com/wix/Detox/issues/3573\\n[Perfetto]: https://ui.perfetto.dev/\\n[Migration Guide]: /docs/guide/migration#200\\n[Updating command-line scripts]: /docs/guide/migration#updating-command-line-scripts\\n[Debugging Native]: /docs/introduction/debugging#native-application-code\\n[typings]: https://github.com/wix/Detox/blob/master/detox/index.d.ts"}]}')}}]); \ No newline at end of file diff --git a/assets/js/8f43d633.99f04e1b.js b/assets/js/8f43d633.99f04e1b.js new file mode 100644 index 0000000000..48cd08dff2 --- /dev/null +++ b/assets/js/8f43d633.99f04e1b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6990],{82885:e=>{e.exports=JSON.parse('{"blogPosts":[{"id":"/2024/09/30/detox-copilot-is-out","metadata":{"permalink":"/Detox/blog/2024/09/30/detox-copilot-is-out","editUrl":"https://github.com/wix/Detox/edit/master/website/blog/2024-09-30-detox-copilot-is-out.md","source":"@site/blog/2024-09-30-detox-copilot-is-out.md","title":"Introducing Detox Copilot","description":"Detox Copilot: Write Tests in Natural Language","date":"2024-09-30T00:00:00.000Z","formattedDate":"September 30, 2024","tags":[{"label":"minor-release","permalink":"/Detox/blog/tags/minor-release"},{"label":"detox-copilot","permalink":"/Detox/blog/tags/detox-copilot"},{"label":"ai-integration","permalink":"/Detox/blog/tags/ai-integration"}],"readingTime":3.27,"hasTruncateMarker":false,"authors":[{"name":"Asaf Korem","title":"Detox Core Contributor","url":"https://github.com/asafkorem","imageURL":"https://github.com/asafkorem.png","key":"asafkorem"}],"frontMatter":{"authors":["asafkorem"],"tags":["minor-release","detox-copilot","ai-integration"]},"nextItem":{"title":"Detox 20 is out","permalink":"/Detox/blog/2022/11/10/detox-20-is-out"}},"content":"## Detox Copilot: Write Tests in Natural Language\\n\\nWe\'re excited to announce **Detox Copilot**, a groundbreaking feature that brings natural language testing to Detox. With Detox Copilot, you can now write end-to-end tests using plain textual commands, making test creation more intuitive and accessible than ever.\\n\\n![Detox Copilot in action GIF](/img/blog/copilot-demo.gif)\\n\\nDetox Copilot leverages advanced Large Language Models (LLMs) to interpret natural language instructions and translate them into Detox actions and assertions. This means you can describe your test scenarios in everyday language, aligning perfectly with **Behavior-Driven Development (BDD)** principles.\\n\\n### Why Natural Language Testing?\\n\\n- **Improved Collaboration**: Teams can collaborate more effectively, as tests are written in plain language understandable by developers, QA engineers, and non-technical stakeholders alike.\\n- **Faster Test Creation**: Reduce the time spent writing and maintaining complex test scripts.\\n- **Enhanced Test Coverage**: Lower the barrier to writing tests, encouraging more comprehensive testing.\\n- **Reduced Maintenance Costs**: Thanks to the decoupling from specific matchers (e.g., avoiding brittle XPath selectors or relying on `testID` attributes commonly used in React Native apps), tests are less prone to breaking when the UI changes, leading to lower maintenance overhead.\\n\\n## Key Features of Detox Copilot\\n\\n### Write Tests in Plain Text\\n\\nDetox Copilot allows you to write tests using natural language commands. Each step corresponds to a specific action or assertion within your app.\\n\\n```javascript\\nit(\'should navigate and add a product to the cart\', async () => {\\n await copilot.perform(\\n \'Navigate to the \\"Products\\" page\',\\n \'Tap on the \\"Add to Cart\\" button for the first product\',\\n \'Verify that the \\"Added to Cart\\" pop-up is displayed\'\\n );\\n});\\n```\\n\\n### Seamless Integration with Detox\\n\\nDetox Copilot is built into Detox and requires no additional installation. Simply initialize it in your test setup, and you\'re ready to start writing natural language tests.\\n\\n### LLM-Agnostic Design\\n\\nDetox Copilot uses LLMs to interpret instructions but is designed to be LLM-agnostic. This means you can connect it to your preferred language model service, offering flexibility and future-proofing your testing strategy.\\n\\n## How Detox Copilot Works\\n\\nOnce you\'ve written your tests using natural language instructions, Detox Copilot takes care of the rest.\\nHere is a high-level overview of the execution flow:\\n\\n1. **Gather Context**: Collect relevant app state, view hierarchy, and previous step results.\\n2. **Interpret Intent**: Use the LLM to interpret the natural language instruction.\\n3. **Generate Code**: Create the appropriate Detox commands.\\n4. **Execute Action**: Run the generated Detox code.\\n5. **Cache Results**: Store execution results to optimize future runs.\\n6. **Provide Feedback**: Return values or confirm actions for subsequent steps.\\n\\nBy combining these steps, Detox Copilot effectively bridges the gap between natural language instructions and concrete test actions.\\n\\n:::info\\n\\nCheck Detox Copilot **[Technical Overview]** for a detailed explanation of the building blocks and the execution flow.\\n\\n:::\\n\\n## Getting Started with Detox Copilot\\n\\nGetting started with Detox Copilot is easy. Simply initialize Copilot in your test setup and start writing tests using natural language instructions.\\n\\nCheck our [Testing with Copilot guide] for detailed instructions on setting up and writing tests with Detox Copilot.\\n\\n\\n## Extending Beyond Detox\\n\\nDetox Copilot is built on a standalone core library called [detox-copilot] designed to interpret natural language testing instructions and generate test code. Though initially developed for Detox, it can be extended to work with other testing frameworks.\\n\\n## Learn More\\n\\nFor detailed guidance, check out our [Testing with Copilot guide] and the [Detox Copilot API Documentation].\\n\\n## Join the Future of Testing\\n\\nDetox Copilot represents a major step forward in making end-to-end testing more accessible and efficient. By embracing natural language testing, you can enhance collaboration, speed up test creation, and improve overall test coverage.\\n\\nWe\'re **excited** to see how you\'ll leverage Detox Copilot in your tests! Share your experiences, feedback, and suggestions with us as we continue to refine and expand this groundbreaking feature.\\n\\n[Testing with Copilot guide]: /docs/next/copilot/testing-with-copilot\\n[Detox Copilot API Documentation]: /docs/next/api/copilot\\n[detox-copilot]: https://github.com/wix-incubator/detox-copilot\\n[Technical Overview]: /docs/next/copilot/technical-overview"},{"id":"/2022/11/10/detox-20-is-out","metadata":{"permalink":"/Detox/blog/2022/11/10/detox-20-is-out","editUrl":"https://github.com/wix/Detox/edit/master/website/blog/2022-11-10-detox-20-is-out.md","source":"@site/blog/2022-11-10-detox-20-is-out.md","title":"Detox 20 is out","description":"Today we\'re proud to announce the new major release, Detox 20 (codename \\"Ash\xe1n\\"), which brings:","date":"2022-11-10T00:00:00.000Z","formattedDate":"November 10, 2022","tags":[{"label":"major-release","permalink":"/Detox/blog/tags/major-release"},{"label":"genymotion","permalink":"/Detox/blog/tags/genymotion"}],"readingTime":9.705,"hasTruncateMarker":false,"authors":[{"name":"Yaroslav Serhieiev","title":"Detox Core Contributor","url":"https://github.com/noomorph","imageURL":"https://github.com/noomorph.png","key":"noomorph"}],"frontMatter":{"authors":["noomorph"],"tags":["major-release","genymotion"]},"prevItem":{"title":"Introducing Detox Copilot","permalink":"/Detox/blog/2024/09/30/detox-copilot-is-out"}},"content":"Today we\'re proud to announce the new major release, **Detox 20** (codename \\"Ash\xe1n\\"), which brings:\\n\\n* official support for Genymotion SaaS\\n* improved integration with test runners\\n* configurable logging subsystem\\n* headless mode for iOS via configs and CLI\\n* reversing TCP ports via Android app configs\\n* and more optimizations to land in the next minor versions.\\n\\n## Genymotion SaaS\\n\\n**Highlights**: [`Using Genymotion SaaS`].\\n\\nTwo years ago we [added elementary support][Genymotion PR] for cloud-based Android emulators provided by [Genymotion SaaS] and started a beta testing phase across mobile projects at Wix.\\n\\nPreviously our mobile infrastructure engineers had been maintaining Android virtual devices on CI build agents on their own, so switching to cloud devices cleared up their time for more productive tasks. Another improvement was particularly noticeable for teams with a vast number of tests. We could reduce the duration of their CI pipelines almost by half after they scaled up from 2 parallel devices to 6[^1].\\n\\n[^1]: The mentioned threshold is not a hard limit, but rather a point where the return value of scaling up the number of devices starts dramatically diminishing in our case \u2013 not only the tests themselves, but installing NPM dependencies and building the projects also takes time.\\n\\nThis positive impact encouraged us to adopt [Genymotion SaaS] for CI as quickly as possible, ignoring some unresolved issues in the initial pull request. For the most part, those were minor problems in global lifecycle management. Yet that made us feel uncertain about releasing it as-is, so we decided to take time and gain more production experience before taking any direction.\\n\\nThe further experience was surprisingly smooth and rarely presented issues, spare for a few minor [glitches](https://github.com/wix/Detox/issues/3573) in advanced scenarios. Admittedly, revamping the [Detox lifecycle][`Internals API`] took us longer than expected, which is all the more reason for us to celebrate today.\\n\\nWe\'re looking forward to providing our users with more opportunities for testing in the cloud, and this step is only the first of many to come. We hope you\'ll utilize this new feature to your delight.\\n\\n## Integration with test runners\\n\\n**Highlights**: [`Config file > Test runner`], [`Internals API`], [`Dropping Mocha support`].\\n\\nIt took about a few months of work to formalize the contract between Detox and a test runner. While there\'s still a lot of place for improvement, the new Detox release refines their interaction and lays the groundwork for third-party integrations.\\n\\n[Mocha] was our first supported test runner, but unfortunately, it could not keep up with our scaling requirements as the number of end-to-end tests grew. [By the time][Mocha 8] it acquired the ability to run tests in parallel, we already had [to place bets][Jest PR] on another horse, and that was [Jest].\\n\\nWe attempted to keep compatibility with both Jest and Mocha, but the farther we went, the more obvious it was that we couldn\'t have it both ways. As it turned out, Jest wasn\'t easy to get along with \u2013 our first integration with it was too simplistic. Over a couple of years of use in production, we kept discovering various issues that forced us to rewrite our \\"glue\\" code from scratch twice, and this isn\'t over yet. All combined didn\'t leave much time and energy for tinkering with Mocha anymore.\\n\\nIn this release, we discontinued Mocha support to focus on the attunement of Jest with the new runner-independent [test runner config][`Config file > Test runner`] and [Internals API][`Internals API`]. If there\'s enough demand, now it is up to the open-source community to build a new integration between Detox and Mocha.\\n\\n## Configurable logger\\n\\n**Highlights**: [`Config file > Logger`], [`Logger API`].\\n\\nThe rigidity of the logging subsystem has always been showing itself [since its very creation][Logger rewrite] in the summer of 2019.\\nDue to time constraints and existing tech debts, it was impossible to do it right the first time, so we lived about three years with a proof-of-concept rather than a full-fledged feature.\\n\\nThe inconveniences weren\'t fatal but quite noticeable, nevertheless. Here are a few syndromes you could have spotted if you have ever used Detox timeline and log artifacts, especially when running tests in parallel:\\n\\n* an uncanny file array: `detox_pid_7505.log`, `detox_pid_7505.log.json`, `detox_pid_7506.log`;\\n* a relatively shallow `detox.trace.json`: test suites, test functions, and some user-defined segments.\\n\\nThe good news is that the new Detox release condenses all those numerous logs into two files:\\n\\n* the plain, human-readable `detox.log`;\\n* the raw, machine-readable `detox.trace.json` for `chrome://trace`, [Perfetto] and other utilities.\\n\\n![A screenshot of timeline view generated by Perfetto](/img/blog/v20-perfetto-example.png)\\n\\nWith the help of the new [Logger API][`Logger API`], you can add custom duration events to the timeline, too, e.g.:\\n\\n```js\\nawait detox.log.trace.complete(\'Login\', async () => {\\n await element(by.id(\'email\')).typeText(\'john@example.com\');\\n await element(by.id(\'password\')).typeText(\'123456\');\\n\\n detox.log.info(\'Trying to log in...\');\\n await element(by.id(\'submit\')).tap();\\n});\\n```\\n\\nBesides, it is possible now to customize the console output of Detox via the new [logger config][`Config file > Logger`], e.g.:\\n\\n```js title=\\"detox.config.js\\"\\n/** @type {Detox.DetoxConfig} */\\nmodule.exports = {\\n // ...\\n logger: {\\n options: {\\n showDate: false,\\n showLoggerName: false,\\n showPid: false,\\n prefixers: {\\n ph: null,\\n },\\n },\\n },\\n};\\n```\\n\\nIn the example above, we minimize all the metadata around the log messages \u2013 see the screenshot below:\\n\\n![Terser logs after applying the override](/img/blog/v20-logger-options.png)\\n\\n## Minor features\\n\\n### Headless iOS\\n\\nOne of Detox known issues was always booting iOS simulators in a hidden mode. You could see tests running on your local simulator only if you had manually opened the Simulator app beforehand. So, we unified the `headless` property for both iOS and Android, and now both the platforms visibly boot a device unless you configure it otherwise, e.g.:\\n\\n```js\\n/* @type {Detox.DetoxConfig} */\\nmodule.exports = {\\n devices: {\\n iphone: {\\n type: \'ios.simulator\',\\n // highlight-next-line\\n headless: process.env.CI ? true : undefined,\\n device: {\\n type: \'iPhone 14\'\\n },\\n /* ... */\\n }\\n },\\n};\\n```\\n\\nor, via CLI:\\n\\n```bash\\ndetox test -c ios.sim.release --headless\\n```\\n\\n### Reverse ports\\n\\nYour apps might try to access some `localhost:*` addresses (e.g., mock servers), but this is a bit more problematic in the case of Android. The Android emulators are separate virtual devices with their own loopback network interface. In such cases, you must set up reverse port forwarding via `adb reverse`.\\n\\nLocal servers are quite a common prerequisite for apps in debug mode \u2013 one could recall React Native bundler on port 8081, Storybook server on 9009, etc. That\'s why we decided to add an optional config property for Android apps, `reversePorts`:\\n\\n```js\\n/** @type {Detox.DetoxConfig} */\\nmodule.exports = {\\n // ...\\n apps: {\\n \'android.debug\': {\\n type: \'android.apk\',\\n binaryPath: \'...\',\\n reversePorts: [8081, 3000],\\n },\\n },\\n};\\n```\\n\\nIn other words, this is a convenience API that tells Detox to run `device.reverseTcpPort(portNumber)` after installing the app. It should be helpful for anyone who prefers to keep such things as configs rather than as code.\\n\\n### Read-only emulators by default\\n\\nThe `-read-only` flag appeared in [Android emulator 28.0.16](https://developer.android.com/studio/releases/emulator#concurrent-avd). Detox promptly adopted it since the read-only mode allowed it to run multiple instances of a single Android virtual device (AVD) concurrently. This feature helped us to implement parallel test execution support for Android back then.\\n\\nBeing overcautious, we implemented that partially, only for cases when the user starts multiple concurrent workers. This decision created a moderately annoying UX issue. Imagine you run tests sequentially first, using one worker only. That provides you with a regular AVD instance, i.e., not a read-only one. After that, you switch to multiple workers only to get an error from the Android emulator, complaining about mixing regular and read-only instances.\\n\\nWhile the fix itself has always been straightforward \u2013 close the running AVD and try again \u2013 this entire overcaution brought more issues than solving them. That\'s why, from now on, Android emulators will always be starting in `-read-only` mode unless you configure `readonly: false` in your [device config][`Config file > Device`].\\n\\n### Reset lock file\\n\\nThis release adds a small CLI tool, [`detox reset-lock-file`][reset-lock-file], to help users with one specific use scenario.\\n\\nImagine you want to run tests for multiple Detox configurations at once, e.g.:\\n\\n```bash\\ndetox test -c iphoneSE2020.release e2e/ui.test.js\\ndetox test -c iphone14ProMax.release e2e/ui.test.js\\n```\\n\\nThe problem is that Detox uses a file-locking mechanism to avoid situations when parallel test workers would take control of the same device. The `detox test` command, upon start, erases that file contents, creating a race condition risk.\\n\\nTo eliminate that risk, use a combination of `detox reset-lock-file` and `--keepLockFile` like this:\\n\\n```bash\\ndetox reset-lock-file & \\\\\\ndetox test --keepLockFile -c iphoneSE2020.release e2e/ui.test.js & \\\\\\ndetox test --keepLockFile -c iphone14ProMax.release e2e/ui.test.js & \\\\\\nwait\\n```\\n\\nIn the future, we plan to minimize using lock files so that you don\'t have to think about this low-level implementation detail.\\nSo, this tool adds some convenience until we provide a next-gen solution.\\n\\n## Deprecations\\n\\nDetox 20 executes many pending deprecations, so make sure to check out our [Migration Guide] before upgrading:\\n\\n* JS: minimum supported Node.js version is `14.x`;\\n* JS: minimum supported Jest version is `27.2.5`;\\n* JS: Mocha test runner is no longer supported;\\n* JS: discontinued old adapters for Jest (`jest-jasmine`, first generation of `jest-circus` adapter);\\n* JS: discontinued `{ permanent: true }` option in `device.appLaunchArgs.*` methods ([#3360](https://github.com/wix/Detox/pull/3360));\\n* CLI: dropped `-w, --workers` and `-o, --runner-config` args \u2013 see a [dedicated section][Updating command-line scripts] in the migration guide;\\n* CLI: dropped deprecated `--device-launch-args` ([#3665](https://github.com/wix/Detox/pull/3665));\\n* Config: discontinued kebab-case properties: `test-runner`, `runner-config` ([#3371](https://github.com/wix/Detox/pull/3371))\\n* Config: discontinued `skipLegacyWorkersInjections` property ([(#3286)](https://github.com/wix/Detox/pull/3286))\\n* Config: deprecated `specs` and `runnerConfig` properties\\n* Config: changed [semantics][`Config file > Test runner`] of `testRunner` property\\n* Config: dropped support for all-in-one configurations ([#3386](https://github.com/wix/Detox/pull/3386));\\n* Android: remove deprecated native IdlePolicyConfig ([#3332](https://github.com/wix/Detox/pull/3332/files))\\n* iOS: discontinued `ios.none` device type \u2013 see the new way to [debug native code][Debugging Native] ([#3361](https://github.com/wix/Detox/pull/3361))\\n\\n## Afterword\\n\\nOver the last year and a half, we have established a centralized configuration system for more than 50 projects using Detox at Wix. While it never seemed to be a cakewalk, the entire experience of troubleshooting over a hundred issues across the organization did not leave us unchanged.\\n\\nWe see numerous things to improve in Detox, but most of them boil down to the same thing \u2013 **scaling**. Surprisingly, \\"scaling\\" makes an excellent umbrella term for nearly every challenge we\'ve been encountering lately:\\n\\n* _scaling up the number of users_ requires us to improve the onboarding and troubleshooting experience;\\n* _scaling up the number of projects_ forces us to centralize scattered configs into flexible organization presets;\\n* _scaling up the number of tests_ prompts us to optimize the codebase and incline it towards cloud and remote execution.\\n\\nOur core team has been facing challenges of limited human resource constraints and growing scaling needs for a long time. In many ways, that has shaped a specific mindset within the team. We evaluate every discussed feature by asking a simple question: _will it save other people and us time to focus on more important things?_ Teaching a man to fish is better than giving fish, so our success at preventing support issues matters more than our success at solving them ourselves.\\n\\nThat\'s why we\'ll be making subsequent efforts in these three areas, hoping to get back to you soon with even more exciting updates.\\n\\nEnjoy your drive with Detox 20!\\n\\nCheers! :wave:\\n\\n[`Using Genymotion SaaS`]: /docs/guide/genymotion-saas\\n[`Config file > Test runner`]: /docs/config/testRunner\\n[`Internals API`]: /docs/api/internals\\n[`Dropping Mocha support`]: https://github.com/wix/Detox/issues/3193\\n[`Config file > Device`]: /docs/config/devices\\n[`Config file > Logger`]: /docs/config/logger\\n[`Config file > Test runner`]: /docs/config/testRunner\\n[`Logger API`]: /docs/api/logger\\n[reset-lock-file]: /docs/cli/reset-lock-file\\n[Jest]: https://jestjs.io\\n[Mocha]: https://mochajs.org\\n[Mocha 8]: https://github.com/mochajs/mocha/releases/tag/v8.0.0\\n[Jest PR]: https://github.com/wix/Detox/pull/609\\n[Logger rewrite]: https://github.com/wix/Detox/pull/835\\n[Genymotion PR]: https://github.com/wix/Detox/pull/2446\\n[Genymotion SaaS]: https://cloud.geny.io\\n[Genymotion issues]: https://github.com/wix/Detox/issues/3573\\n[Perfetto]: https://ui.perfetto.dev/\\n[Migration Guide]: /docs/guide/migration#200\\n[Updating command-line scripts]: /docs/guide/migration#updating-command-line-scripts\\n[Debugging Native]: /docs/introduction/debugging#native-application-code\\n[typings]: https://github.com/wix/Detox/blob/master/detox/index.d.ts"}]}')}}]); \ No newline at end of file diff --git a/assets/js/9292650b.2e9752e5.js b/assets/js/9292650b.2e9752e5.js deleted file mode 100644 index 9d6bb1d78b..0000000000 --- a/assets/js/9292650b.2e9752e5.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9034],{15680:(e,t,n)=>{n.d(t,{xA:()=>u,yg:()=>c});var a=n(96540);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=a.createContext({}),p=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},u=function(e){var t=p(e.components);return a.createElement(l.Provider,{value:t},e.children)},g="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),g=p(n),m=o,c=g["".concat(l,".").concat(m)]||g[m]||d[m]||i;return n?a.createElement(c,r(r({ref:t},u),{},{components:n})):a.createElement(c,r({ref:t},u))}));function c(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,r=new Array(i);r[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[g]="string"==typeof e?e:o,r[1]=s;for(var p=2;p{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>p});var a=n(58168),o=(n(96540),n(15680));const i={authors:["noomorph"],tags:["major-release","genymotion"]},r="Detox 20 is out",s={permalink:"/Detox/blog/2022/11/10/detox-20-is-out",editUrl:"https://github.com/wix/Detox/edit/master/website/blog/2022-11-10-detox-20-is-out.md",source:"@site/blog/2022-11-10-detox-20-is-out.md",title:"Detox 20 is out",description:'Today we\'re proud to announce the new major release, Detox 20 (codename "Ash\xe1n"), which brings:',date:"2022-11-10T00:00:00.000Z",formattedDate:"November 10, 2022",tags:[{label:"major-release",permalink:"/Detox/blog/tags/major-release"},{label:"genymotion",permalink:"/Detox/blog/tags/genymotion"}],readingTime:9.705,hasTruncateMarker:!1,authors:[{name:"Yaroslav Serhieiev",title:"Detox Core Contributor",url:"https://github.com/noomorph",imageURL:"https://github.com/noomorph.png",key:"noomorph"}],frontMatter:{authors:["noomorph"],tags:["major-release","genymotion"]}},l={authorsImageUrls:[void 0]},p=[{value:"Genymotion SaaS",id:"genymotion-saas",level:2},{value:"Integration with test runners",id:"integration-with-test-runners",level:2},{value:"Configurable logger",id:"configurable-logger",level:2},{value:"Minor features",id:"minor-features",level:2},{value:"Headless iOS",id:"headless-ios",level:3},{value:"Reverse ports",id:"reverse-ports",level:3},{value:"Read-only emulators by default",id:"read-only-emulators-by-default",level:3},{value:"Reset lock file",id:"reset-lock-file",level:3},{value:"Deprecations",id:"deprecations",level:2},{value:"Afterword",id:"afterword",level:2}],u={toc:p},g="wrapper";function d(e){let{components:t,...i}=e;return(0,o.yg)(g,(0,a.A)({},u,i,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"Today we're proud to announce the new major release, ",(0,o.yg)("strong",{parentName:"p"},"Detox 20"),' (codename "Ash\xe1n"), which brings:'),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"official support for Genymotion SaaS"),(0,o.yg)("li",{parentName:"ul"},"improved integration with test runners"),(0,o.yg)("li",{parentName:"ul"},"configurable logging subsystem"),(0,o.yg)("li",{parentName:"ul"},"headless mode for iOS via configs and CLI"),(0,o.yg)("li",{parentName:"ul"},"reversing TCP ports via Android app configs"),(0,o.yg)("li",{parentName:"ul"},"and more optimizations to land in the next minor versions.")),(0,o.yg)("h2",{id:"genymotion-saas"},"Genymotion SaaS"),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"Highlights"),": ",(0,o.yg)("a",{parentName:"p",href:"/docs/guide/genymotion-saas"},(0,o.yg)("inlineCode",{parentName:"a"},"Using Genymotion SaaS")),"."),(0,o.yg)("p",null,"Two years ago we ",(0,o.yg)("a",{parentName:"p",href:"https://github.com/wix/Detox/pull/2446"},"added elementary support")," for cloud-based Android emulators provided by ",(0,o.yg)("a",{parentName:"p",href:"https://cloud.geny.io"},"Genymotion SaaS")," and started a beta testing phase across mobile projects at Wix."),(0,o.yg)("p",null,"Previously our mobile infrastructure engineers had been maintaining Android virtual devices on CI build agents on their own, so switching to cloud devices cleared up their time for more productive tasks. Another improvement was particularly noticeable for teams with a vast number of tests. We could reduce the duration of their CI pipelines almost by half after they scaled up from 2 parallel devices to 6",(0,o.yg)("sup",{parentName:"p",id:"fnref-1-2b8cfe"},(0,o.yg)("a",{parentName:"sup",href:"#fn-1-2b8cfe",className:"footnote-ref"},"1")),"."),(0,o.yg)("p",null,"This positive impact encouraged us to adopt ",(0,o.yg)("a",{parentName:"p",href:"https://cloud.geny.io"},"Genymotion SaaS")," for CI as quickly as possible, ignoring some unresolved issues in the initial pull request. For the most part, those were minor problems in global lifecycle management. Yet that made us feel uncertain about releasing it as-is, so we decided to take time and gain more production experience before taking any direction."),(0,o.yg)("p",null,"The further experience was surprisingly smooth and rarely presented issues, spare for a few minor ",(0,o.yg)("a",{parentName:"p",href:"https://github.com/wix/Detox/issues/3573"},"glitches")," in advanced scenarios. Admittedly, revamping the ",(0,o.yg)("a",{parentName:"p",href:"/docs/api/internals"},"Detox lifecycle")," took us longer than expected, which is all the more reason for us to celebrate today."),(0,o.yg)("p",null,"We're looking forward to providing our users with more opportunities for testing in the cloud, and this step is only the first of many to come. We hope you'll utilize this new feature to your delight."),(0,o.yg)("h2",{id:"integration-with-test-runners"},"Integration with test runners"),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"Highlights"),": ",(0,o.yg)("a",{parentName:"p",href:"/docs/config/testRunner"},(0,o.yg)("inlineCode",{parentName:"a"},"Config file > Test runner")),", ",(0,o.yg)("a",{parentName:"p",href:"/docs/api/internals"},(0,o.yg)("inlineCode",{parentName:"a"},"Internals API")),", ",(0,o.yg)("a",{parentName:"p",href:"https://github.com/wix/Detox/issues/3193"},(0,o.yg)("inlineCode",{parentName:"a"},"Dropping Mocha support")),"."),(0,o.yg)("p",null,"It took about a few months of work to formalize the contract between Detox and a test runner. While there's still a lot of place for improvement, the new Detox release refines their interaction and lays the groundwork for third-party integrations."),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://mochajs.org"},"Mocha")," was our first supported test runner, but unfortunately, it could not keep up with our scaling requirements as the number of end-to-end tests grew. ",(0,o.yg)("a",{parentName:"p",href:"https://github.com/mochajs/mocha/releases/tag/v8.0.0"},"By the time")," it acquired the ability to run tests in parallel, we already had ",(0,o.yg)("a",{parentName:"p",href:"https://github.com/wix/Detox/pull/609"},"to place bets")," on another horse, and that was ",(0,o.yg)("a",{parentName:"p",href:"https://jestjs.io"},"Jest"),"."),(0,o.yg)("p",null,"We attempted to keep compatibility with both Jest and Mocha, but the farther we went, the more obvious it was that we couldn't have it both ways. As it turned out, Jest wasn't easy to get along with \u2013 our first integration with it was too simplistic. Over a couple of years of use in production, we kept discovering various issues that forced us to rewrite our \"glue\" code from scratch twice, and this isn't over yet. All combined didn't leave much time and energy for tinkering with Mocha anymore."),(0,o.yg)("p",null,"In this release, we discontinued Mocha support to focus on the attunement of Jest with the new runner-independent ",(0,o.yg)("a",{parentName:"p",href:"/docs/config/testRunner"},"test runner config")," and ",(0,o.yg)("a",{parentName:"p",href:"/docs/api/internals"},"Internals API"),". If there's enough demand, now it is up to the open-source community to build a new integration between Detox and Mocha."),(0,o.yg)("h2",{id:"configurable-logger"},"Configurable logger"),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"Highlights"),": ",(0,o.yg)("a",{parentName:"p",href:"/docs/config/logger"},(0,o.yg)("inlineCode",{parentName:"a"},"Config file > Logger")),", ",(0,o.yg)("a",{parentName:"p",href:"/docs/api/logger"},(0,o.yg)("inlineCode",{parentName:"a"},"Logger API")),"."),(0,o.yg)("p",null,"The rigidity of the logging subsystem has always been showing itself ",(0,o.yg)("a",{parentName:"p",href:"https://github.com/wix/Detox/pull/835"},"since its very creation")," in the summer of 2019.\nDue to time constraints and existing tech debts, it was impossible to do it right the first time, so we lived about three years with a proof-of-concept rather than a full-fledged feature."),(0,o.yg)("p",null,"The inconveniences weren't fatal but quite noticeable, nevertheless. Here are a few syndromes you could have spotted if you have ever used Detox timeline and log artifacts, especially when running tests in parallel:"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"an uncanny file array: ",(0,o.yg)("inlineCode",{parentName:"li"},"detox_pid_7505.log"),", ",(0,o.yg)("inlineCode",{parentName:"li"},"detox_pid_7505.log.json"),", ",(0,o.yg)("inlineCode",{parentName:"li"},"detox_pid_7506.log"),";"),(0,o.yg)("li",{parentName:"ul"},"a relatively shallow ",(0,o.yg)("inlineCode",{parentName:"li"},"detox.trace.json"),": test suites, test functions, and some user-defined segments.")),(0,o.yg)("p",null,"The good news is that the new Detox release condenses all those numerous logs into two files:"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"the plain, human-readable ",(0,o.yg)("inlineCode",{parentName:"li"},"detox.log"),";"),(0,o.yg)("li",{parentName:"ul"},"the raw, machine-readable ",(0,o.yg)("inlineCode",{parentName:"li"},"detox.trace.json")," for ",(0,o.yg)("inlineCode",{parentName:"li"},"chrome://trace"),", ",(0,o.yg)("a",{parentName:"li",href:"https://ui.perfetto.dev/"},"Perfetto")," and other utilities.")),(0,o.yg)("p",null,(0,o.yg)("img",{alt:"A screenshot of timeline view generated by Perfetto",src:n(27709).A,width:"1600",height:"1000"})),(0,o.yg)("p",null,"With the help of the new ",(0,o.yg)("a",{parentName:"p",href:"/docs/api/logger"},"Logger API"),", you can add custom duration events to the timeline, too, e.g.:"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-js"},"await detox.log.trace.complete('Login', async () => {\n await element(by.id('email')).typeText('john@example.com');\n await element(by.id('password')).typeText('123456');\n\n detox.log.info('Trying to log in...');\n await element(by.id('submit')).tap();\n});\n")),(0,o.yg)("p",null,"Besides, it is possible now to customize the console output of Detox via the new ",(0,o.yg)("a",{parentName:"p",href:"/docs/config/logger"},"logger config"),", e.g.:"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-js",metastring:'title="detox.config.js"',title:'"detox.config.js"'},"/** @type {Detox.DetoxConfig} */\nmodule.exports = {\n // ...\n logger: {\n options: {\n showDate: false,\n showLoggerName: false,\n showPid: false,\n prefixers: {\n ph: null,\n },\n },\n },\n};\n")),(0,o.yg)("p",null,"In the example above, we minimize all the metadata around the log messages \u2013 see the screenshot below:"),(0,o.yg)("p",null,(0,o.yg)("img",{alt:"Terser logs after applying the override",src:n(72716).A,width:"1400",height:"399"})),(0,o.yg)("h2",{id:"minor-features"},"Minor features"),(0,o.yg)("h3",{id:"headless-ios"},"Headless iOS"),(0,o.yg)("p",null,"One of Detox known issues was always booting iOS simulators in a hidden mode. You could see tests running on your local simulator only if you had manually opened the Simulator app beforehand. So, we unified the ",(0,o.yg)("inlineCode",{parentName:"p"},"headless")," property for both iOS and Android, and now both the platforms visibly boot a device unless you configure it otherwise, e.g.:"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-js"},"/* @type {Detox.DetoxConfig} */\nmodule.exports = {\n devices: {\n iphone: {\n type: 'ios.simulator',\n // highlight-next-line\n headless: process.env.CI ? true : undefined,\n device: {\n type: 'iPhone 14'\n },\n /* ... */\n }\n },\n};\n")),(0,o.yg)("p",null,"or, via CLI:"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-bash"},"detox test -c ios.sim.release --headless\n")),(0,o.yg)("h3",{id:"reverse-ports"},"Reverse ports"),(0,o.yg)("p",null,"Your apps might try to access some ",(0,o.yg)("inlineCode",{parentName:"p"},"localhost:*")," addresses (e.g., mock servers), but this is a bit more problematic in the case of Android. The Android emulators are separate virtual devices with their own loopback network interface. In such cases, you must set up reverse port forwarding via ",(0,o.yg)("inlineCode",{parentName:"p"},"adb reverse"),"."),(0,o.yg)("p",null,"Local servers are quite a common prerequisite for apps in debug mode \u2013 one could recall React Native bundler on port 8081, Storybook server on 9009, etc. That's why we decided to add an optional config property for Android apps, ",(0,o.yg)("inlineCode",{parentName:"p"},"reversePorts"),":"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-js"},"/** @type {Detox.DetoxConfig} */\nmodule.exports = {\n // ...\n apps: {\n 'android.debug': {\n type: 'android.apk',\n binaryPath: '...',\n reversePorts: [8081, 3000],\n },\n },\n};\n")),(0,o.yg)("p",null,"In other words, this is a convenience API that tells Detox to run ",(0,o.yg)("inlineCode",{parentName:"p"},"device.reverseTcpPort(portNumber)")," after installing the app. It should be helpful for anyone who prefers to keep such things as configs rather than as code."),(0,o.yg)("h3",{id:"read-only-emulators-by-default"},"Read-only emulators by default"),(0,o.yg)("p",null,"The ",(0,o.yg)("inlineCode",{parentName:"p"},"-read-only")," flag appeared in ",(0,o.yg)("a",{parentName:"p",href:"https://developer.android.com/studio/releases/emulator#concurrent-avd"},"Android emulator 28.0.16"),". Detox promptly adopted it since the read-only mode allowed it to run multiple instances of a single Android virtual device (AVD) concurrently. This feature helped us to implement parallel test execution support for Android back then."),(0,o.yg)("p",null,"Being overcautious, we implemented that partially, only for cases when the user starts multiple concurrent workers. This decision created a moderately annoying UX issue. Imagine you run tests sequentially first, using one worker only. That provides you with a regular AVD instance, i.e., not a read-only one. After that, you switch to multiple workers only to get an error from the Android emulator, complaining about mixing regular and read-only instances."),(0,o.yg)("p",null,"While the fix itself has always been straightforward \u2013 close the running AVD and try again \u2013 this entire overcaution brought more issues than solving them. That's why, from now on, Android emulators will always be starting in ",(0,o.yg)("inlineCode",{parentName:"p"},"-read-only")," mode unless you configure ",(0,o.yg)("inlineCode",{parentName:"p"},"readonly: false")," in your ",(0,o.yg)("a",{parentName:"p",href:"/docs/config/devices"},"device config"),"."),(0,o.yg)("h3",{id:"reset-lock-file"},"Reset lock file"),(0,o.yg)("p",null,"This release adds a small CLI tool, ",(0,o.yg)("a",{parentName:"p",href:"/docs/cli/reset-lock-file"},(0,o.yg)("inlineCode",{parentName:"a"},"detox reset-lock-file")),", to help users with one specific use scenario."),(0,o.yg)("p",null,"Imagine you want to run tests for multiple Detox configurations at once, e.g.:"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-bash"},"detox test -c iphoneSE2020.release e2e/ui.test.js\ndetox test -c iphone14ProMax.release e2e/ui.test.js\n")),(0,o.yg)("p",null,"The problem is that Detox uses a file-locking mechanism to avoid situations when parallel test workers would take control of the same device. The ",(0,o.yg)("inlineCode",{parentName:"p"},"detox test")," command, upon start, erases that file contents, creating a race condition risk."),(0,o.yg)("p",null,"To eliminate that risk, use a combination of ",(0,o.yg)("inlineCode",{parentName:"p"},"detox reset-lock-file")," and ",(0,o.yg)("inlineCode",{parentName:"p"},"--keepLockFile")," like this:"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-bash"},"detox reset-lock-file & \\\ndetox test --keepLockFile -c iphoneSE2020.release e2e/ui.test.js & \\\ndetox test --keepLockFile -c iphone14ProMax.release e2e/ui.test.js & \\\nwait\n")),(0,o.yg)("p",null,"In the future, we plan to minimize using lock files so that you don't have to think about this low-level implementation detail.\nSo, this tool adds some convenience until we provide a next-gen solution."),(0,o.yg)("h2",{id:"deprecations"},"Deprecations"),(0,o.yg)("p",null,"Detox 20 executes many pending deprecations, so make sure to check out our ",(0,o.yg)("a",{parentName:"p",href:"/docs/guide/migration#200"},"Migration Guide")," before upgrading:"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"JS: minimum supported Node.js version is ",(0,o.yg)("inlineCode",{parentName:"li"},"14.x"),";"),(0,o.yg)("li",{parentName:"ul"},"JS: minimum supported Jest version is ",(0,o.yg)("inlineCode",{parentName:"li"},"27.2.5"),";"),(0,o.yg)("li",{parentName:"ul"},"JS: Mocha test runner is no longer supported;"),(0,o.yg)("li",{parentName:"ul"},"JS: discontinued old adapters for Jest (",(0,o.yg)("inlineCode",{parentName:"li"},"jest-jasmine"),", first generation of ",(0,o.yg)("inlineCode",{parentName:"li"},"jest-circus")," adapter);"),(0,o.yg)("li",{parentName:"ul"},"JS: discontinued ",(0,o.yg)("inlineCode",{parentName:"li"},"{ permanent: true }")," option in ",(0,o.yg)("inlineCode",{parentName:"li"},"device.appLaunchArgs.*")," methods (",(0,o.yg)("a",{parentName:"li",href:"https://github.com/wix/Detox/pull/3360"},"#3360"),");"),(0,o.yg)("li",{parentName:"ul"},"CLI: dropped ",(0,o.yg)("inlineCode",{parentName:"li"},"-w, --workers")," and ",(0,o.yg)("inlineCode",{parentName:"li"},"-o, --runner-config")," args \u2013 see a ",(0,o.yg)("a",{parentName:"li",href:"/docs/guide/migration#updating-command-line-scripts"},"dedicated section")," in the migration guide;"),(0,o.yg)("li",{parentName:"ul"},"CLI: dropped deprecated ",(0,o.yg)("inlineCode",{parentName:"li"},"--device-launch-args")," (",(0,o.yg)("a",{parentName:"li",href:"https://github.com/wix/Detox/pull/3665"},"#3665"),");"),(0,o.yg)("li",{parentName:"ul"},"Config: discontinued kebab-case properties: ",(0,o.yg)("inlineCode",{parentName:"li"},"test-runner"),", ",(0,o.yg)("inlineCode",{parentName:"li"},"runner-config")," (",(0,o.yg)("a",{parentName:"li",href:"https://github.com/wix/Detox/pull/3371"},"#3371"),")"),(0,o.yg)("li",{parentName:"ul"},"Config: discontinued ",(0,o.yg)("inlineCode",{parentName:"li"},"skipLegacyWorkersInjections")," property (",(0,o.yg)("a",{parentName:"li",href:"https://github.com/wix/Detox/pull/3286"},"(#3286)"),")"),(0,o.yg)("li",{parentName:"ul"},"Config: deprecated ",(0,o.yg)("inlineCode",{parentName:"li"},"specs")," and ",(0,o.yg)("inlineCode",{parentName:"li"},"runnerConfig")," properties"),(0,o.yg)("li",{parentName:"ul"},"Config: changed ",(0,o.yg)("a",{parentName:"li",href:"/docs/config/testRunner"},"semantics")," of ",(0,o.yg)("inlineCode",{parentName:"li"},"testRunner")," property"),(0,o.yg)("li",{parentName:"ul"},"Config: dropped support for all-in-one configurations (",(0,o.yg)("a",{parentName:"li",href:"https://github.com/wix/Detox/pull/3386"},"#3386"),");"),(0,o.yg)("li",{parentName:"ul"},"Android: remove deprecated native IdlePolicyConfig (",(0,o.yg)("a",{parentName:"li",href:"https://github.com/wix/Detox/pull/3332/files"},"#3332"),")"),(0,o.yg)("li",{parentName:"ul"},"iOS: discontinued ",(0,o.yg)("inlineCode",{parentName:"li"},"ios.none")," device type \u2013 see the new way to ",(0,o.yg)("a",{parentName:"li",href:"/docs/introduction/debugging#native-application-code"},"debug native code")," (",(0,o.yg)("a",{parentName:"li",href:"https://github.com/wix/Detox/pull/3361"},"#3361"),")")),(0,o.yg)("h2",{id:"afterword"},"Afterword"),(0,o.yg)("p",null,"Over the last year and a half, we have established a centralized configuration system for more than 50 projects using Detox at Wix. While it never seemed to be a cakewalk, the entire experience of troubleshooting over a hundred issues across the organization did not leave us unchanged."),(0,o.yg)("p",null,"We see numerous things to improve in Detox, but most of them boil down to the same thing \u2013 ",(0,o.yg)("strong",{parentName:"p"},"scaling"),'. Surprisingly, "scaling" makes an excellent umbrella term for nearly every challenge we\'ve been encountering lately:'),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("em",{parentName:"li"},"scaling up the number of users")," requires us to improve the onboarding and troubleshooting experience;"),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("em",{parentName:"li"},"scaling up the number of projects")," forces us to centralize scattered configs into flexible organization presets;"),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("em",{parentName:"li"},"scaling up the number of tests")," prompts us to optimize the codebase and incline it towards cloud and remote execution.")),(0,o.yg)("p",null,"Our core team has been facing challenges of limited human resource constraints and growing scaling needs for a long time. In many ways, that has shaped a specific mindset within the team. We evaluate every discussed feature by asking a simple question: ",(0,o.yg)("em",{parentName:"p"},"will it save other people and us time to focus on more important things?")," Teaching a man to fish is better than giving fish, so our success at preventing support issues matters more than our success at solving them ourselves."),(0,o.yg)("p",null,"That's why we'll be making subsequent efforts in these three areas, hoping to get back to you soon with even more exciting updates."),(0,o.yg)("p",null,"Enjoy your drive with Detox 20!"),(0,o.yg)("p",null,"Cheers! \ud83d\udc4b"),(0,o.yg)("div",{className:"footnotes"},(0,o.yg)("hr",{parentName:"div"}),(0,o.yg)("ol",{parentName:"div"},(0,o.yg)("li",{parentName:"ol",id:"fn-1-2b8cfe"},"The mentioned threshold is not a hard limit, but rather a point where the return value of scaling up the number of devices starts dramatically diminishing in our case \u2013 not only the tests themselves, but installing NPM dependencies and building the projects also takes time.",(0,o.yg)("a",{parentName:"li",href:"#fnref-1-2b8cfe",className:"footnote-backref"},"\u21a9")))))}d.isMDXComponent=!0},72716:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/v20-logger-options-be0263e8b33e617b2a4ef55861d45e4a.png"},27709:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/v20-perfetto-example-171220190ff552d655a9a0712e2c04ed.png"}}]); \ No newline at end of file diff --git a/assets/js/9292650b.b0d5ad62.js b/assets/js/9292650b.b0d5ad62.js new file mode 100644 index 0000000000..f6e826ec5c --- /dev/null +++ b/assets/js/9292650b.b0d5ad62.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9034],{15680:(e,t,n)=>{n.d(t,{xA:()=>u,yg:()=>c});var o=n(96540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function r(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=o.createContext({}),p=function(e){var t=o.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},u=function(e){var t=p(e.components);return o.createElement(l.Provider,{value:t},e.children)},g="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},m=o.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),g=p(n),m=a,c=g["".concat(l,".").concat(m)]||g[m]||d[m]||i;return n?o.createElement(c,r(r({ref:t},u),{},{components:n})):o.createElement(c,r({ref:t},u))}));function c(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,r=new Array(i);r[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[g]="string"==typeof e?e:a,r[1]=s;for(var p=2;p{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>p});var o=n(58168),a=(n(96540),n(15680));const i={authors:["noomorph"],tags:["major-release","genymotion"]},r="Detox 20 is out",s={permalink:"/Detox/blog/2022/11/10/detox-20-is-out",editUrl:"https://github.com/wix/Detox/edit/master/website/blog/2022-11-10-detox-20-is-out.md",source:"@site/blog/2022-11-10-detox-20-is-out.md",title:"Detox 20 is out",description:'Today we\'re proud to announce the new major release, Detox 20 (codename "Ash\xe1n"), which brings:',date:"2022-11-10T00:00:00.000Z",formattedDate:"November 10, 2022",tags:[{label:"major-release",permalink:"/Detox/blog/tags/major-release"},{label:"genymotion",permalink:"/Detox/blog/tags/genymotion"}],readingTime:9.705,hasTruncateMarker:!1,authors:[{name:"Yaroslav Serhieiev",title:"Detox Core Contributor",url:"https://github.com/noomorph",imageURL:"https://github.com/noomorph.png",key:"noomorph"}],frontMatter:{authors:["noomorph"],tags:["major-release","genymotion"]},prevItem:{title:"Introducing Detox Copilot",permalink:"/Detox/blog/2024/09/30/detox-copilot-is-out"}},l={authorsImageUrls:[void 0]},p=[{value:"Genymotion SaaS",id:"genymotion-saas",level:2},{value:"Integration with test runners",id:"integration-with-test-runners",level:2},{value:"Configurable logger",id:"configurable-logger",level:2},{value:"Minor features",id:"minor-features",level:2},{value:"Headless iOS",id:"headless-ios",level:3},{value:"Reverse ports",id:"reverse-ports",level:3},{value:"Read-only emulators by default",id:"read-only-emulators-by-default",level:3},{value:"Reset lock file",id:"reset-lock-file",level:3},{value:"Deprecations",id:"deprecations",level:2},{value:"Afterword",id:"afterword",level:2}],u={toc:p},g="wrapper";function d(e){let{components:t,...i}=e;return(0,a.yg)(g,(0,o.A)({},u,i,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("p",null,"Today we're proud to announce the new major release, ",(0,a.yg)("strong",{parentName:"p"},"Detox 20"),' (codename "Ash\xe1n"), which brings:'),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"official support for Genymotion SaaS"),(0,a.yg)("li",{parentName:"ul"},"improved integration with test runners"),(0,a.yg)("li",{parentName:"ul"},"configurable logging subsystem"),(0,a.yg)("li",{parentName:"ul"},"headless mode for iOS via configs and CLI"),(0,a.yg)("li",{parentName:"ul"},"reversing TCP ports via Android app configs"),(0,a.yg)("li",{parentName:"ul"},"and more optimizations to land in the next minor versions.")),(0,a.yg)("h2",{id:"genymotion-saas"},"Genymotion SaaS"),(0,a.yg)("p",null,(0,a.yg)("strong",{parentName:"p"},"Highlights"),": ",(0,a.yg)("a",{parentName:"p",href:"/docs/guide/genymotion-saas"},(0,a.yg)("inlineCode",{parentName:"a"},"Using Genymotion SaaS")),"."),(0,a.yg)("p",null,"Two years ago we ",(0,a.yg)("a",{parentName:"p",href:"https://github.com/wix/Detox/pull/2446"},"added elementary support")," for cloud-based Android emulators provided by ",(0,a.yg)("a",{parentName:"p",href:"https://cloud.geny.io"},"Genymotion SaaS")," and started a beta testing phase across mobile projects at Wix."),(0,a.yg)("p",null,"Previously our mobile infrastructure engineers had been maintaining Android virtual devices on CI build agents on their own, so switching to cloud devices cleared up their time for more productive tasks. Another improvement was particularly noticeable for teams with a vast number of tests. We could reduce the duration of their CI pipelines almost by half after they scaled up from 2 parallel devices to 6",(0,a.yg)("sup",{parentName:"p",id:"fnref-1-2b8cfe"},(0,a.yg)("a",{parentName:"sup",href:"#fn-1-2b8cfe",className:"footnote-ref"},"1")),"."),(0,a.yg)("p",null,"This positive impact encouraged us to adopt ",(0,a.yg)("a",{parentName:"p",href:"https://cloud.geny.io"},"Genymotion SaaS")," for CI as quickly as possible, ignoring some unresolved issues in the initial pull request. For the most part, those were minor problems in global lifecycle management. Yet that made us feel uncertain about releasing it as-is, so we decided to take time and gain more production experience before taking any direction."),(0,a.yg)("p",null,"The further experience was surprisingly smooth and rarely presented issues, spare for a few minor ",(0,a.yg)("a",{parentName:"p",href:"https://github.com/wix/Detox/issues/3573"},"glitches")," in advanced scenarios. Admittedly, revamping the ",(0,a.yg)("a",{parentName:"p",href:"/docs/api/internals"},"Detox lifecycle")," took us longer than expected, which is all the more reason for us to celebrate today."),(0,a.yg)("p",null,"We're looking forward to providing our users with more opportunities for testing in the cloud, and this step is only the first of many to come. We hope you'll utilize this new feature to your delight."),(0,a.yg)("h2",{id:"integration-with-test-runners"},"Integration with test runners"),(0,a.yg)("p",null,(0,a.yg)("strong",{parentName:"p"},"Highlights"),": ",(0,a.yg)("a",{parentName:"p",href:"/docs/config/testRunner"},(0,a.yg)("inlineCode",{parentName:"a"},"Config file > Test runner")),", ",(0,a.yg)("a",{parentName:"p",href:"/docs/api/internals"},(0,a.yg)("inlineCode",{parentName:"a"},"Internals API")),", ",(0,a.yg)("a",{parentName:"p",href:"https://github.com/wix/Detox/issues/3193"},(0,a.yg)("inlineCode",{parentName:"a"},"Dropping Mocha support")),"."),(0,a.yg)("p",null,"It took about a few months of work to formalize the contract between Detox and a test runner. While there's still a lot of place for improvement, the new Detox release refines their interaction and lays the groundwork for third-party integrations."),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://mochajs.org"},"Mocha")," was our first supported test runner, but unfortunately, it could not keep up with our scaling requirements as the number of end-to-end tests grew. ",(0,a.yg)("a",{parentName:"p",href:"https://github.com/mochajs/mocha/releases/tag/v8.0.0"},"By the time")," it acquired the ability to run tests in parallel, we already had ",(0,a.yg)("a",{parentName:"p",href:"https://github.com/wix/Detox/pull/609"},"to place bets")," on another horse, and that was ",(0,a.yg)("a",{parentName:"p",href:"https://jestjs.io"},"Jest"),"."),(0,a.yg)("p",null,"We attempted to keep compatibility with both Jest and Mocha, but the farther we went, the more obvious it was that we couldn't have it both ways. As it turned out, Jest wasn't easy to get along with \u2013 our first integration with it was too simplistic. Over a couple of years of use in production, we kept discovering various issues that forced us to rewrite our \"glue\" code from scratch twice, and this isn't over yet. All combined didn't leave much time and energy for tinkering with Mocha anymore."),(0,a.yg)("p",null,"In this release, we discontinued Mocha support to focus on the attunement of Jest with the new runner-independent ",(0,a.yg)("a",{parentName:"p",href:"/docs/config/testRunner"},"test runner config")," and ",(0,a.yg)("a",{parentName:"p",href:"/docs/api/internals"},"Internals API"),". If there's enough demand, now it is up to the open-source community to build a new integration between Detox and Mocha."),(0,a.yg)("h2",{id:"configurable-logger"},"Configurable logger"),(0,a.yg)("p",null,(0,a.yg)("strong",{parentName:"p"},"Highlights"),": ",(0,a.yg)("a",{parentName:"p",href:"/docs/config/logger"},(0,a.yg)("inlineCode",{parentName:"a"},"Config file > Logger")),", ",(0,a.yg)("a",{parentName:"p",href:"/docs/api/logger"},(0,a.yg)("inlineCode",{parentName:"a"},"Logger API")),"."),(0,a.yg)("p",null,"The rigidity of the logging subsystem has always been showing itself ",(0,a.yg)("a",{parentName:"p",href:"https://github.com/wix/Detox/pull/835"},"since its very creation")," in the summer of 2019.\nDue to time constraints and existing tech debts, it was impossible to do it right the first time, so we lived about three years with a proof-of-concept rather than a full-fledged feature."),(0,a.yg)("p",null,"The inconveniences weren't fatal but quite noticeable, nevertheless. Here are a few syndromes you could have spotted if you have ever used Detox timeline and log artifacts, especially when running tests in parallel:"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"an uncanny file array: ",(0,a.yg)("inlineCode",{parentName:"li"},"detox_pid_7505.log"),", ",(0,a.yg)("inlineCode",{parentName:"li"},"detox_pid_7505.log.json"),", ",(0,a.yg)("inlineCode",{parentName:"li"},"detox_pid_7506.log"),";"),(0,a.yg)("li",{parentName:"ul"},"a relatively shallow ",(0,a.yg)("inlineCode",{parentName:"li"},"detox.trace.json"),": test suites, test functions, and some user-defined segments.")),(0,a.yg)("p",null,"The good news is that the new Detox release condenses all those numerous logs into two files:"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"the plain, human-readable ",(0,a.yg)("inlineCode",{parentName:"li"},"detox.log"),";"),(0,a.yg)("li",{parentName:"ul"},"the raw, machine-readable ",(0,a.yg)("inlineCode",{parentName:"li"},"detox.trace.json")," for ",(0,a.yg)("inlineCode",{parentName:"li"},"chrome://trace"),", ",(0,a.yg)("a",{parentName:"li",href:"https://ui.perfetto.dev/"},"Perfetto")," and other utilities.")),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"A screenshot of timeline view generated by Perfetto",src:n(27709).A,width:"1600",height:"1000"})),(0,a.yg)("p",null,"With the help of the new ",(0,a.yg)("a",{parentName:"p",href:"/docs/api/logger"},"Logger API"),", you can add custom duration events to the timeline, too, e.g.:"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-js"},"await detox.log.trace.complete('Login', async () => {\n await element(by.id('email')).typeText('john@example.com');\n await element(by.id('password')).typeText('123456');\n\n detox.log.info('Trying to log in...');\n await element(by.id('submit')).tap();\n});\n")),(0,a.yg)("p",null,"Besides, it is possible now to customize the console output of Detox via the new ",(0,a.yg)("a",{parentName:"p",href:"/docs/config/logger"},"logger config"),", e.g.:"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-js",metastring:'title="detox.config.js"',title:'"detox.config.js"'},"/** @type {Detox.DetoxConfig} */\nmodule.exports = {\n // ...\n logger: {\n options: {\n showDate: false,\n showLoggerName: false,\n showPid: false,\n prefixers: {\n ph: null,\n },\n },\n },\n};\n")),(0,a.yg)("p",null,"In the example above, we minimize all the metadata around the log messages \u2013 see the screenshot below:"),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"Terser logs after applying the override",src:n(72716).A,width:"1400",height:"399"})),(0,a.yg)("h2",{id:"minor-features"},"Minor features"),(0,a.yg)("h3",{id:"headless-ios"},"Headless iOS"),(0,a.yg)("p",null,"One of Detox known issues was always booting iOS simulators in a hidden mode. You could see tests running on your local simulator only if you had manually opened the Simulator app beforehand. So, we unified the ",(0,a.yg)("inlineCode",{parentName:"p"},"headless")," property for both iOS and Android, and now both the platforms visibly boot a device unless you configure it otherwise, e.g.:"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-js"},"/* @type {Detox.DetoxConfig} */\nmodule.exports = {\n devices: {\n iphone: {\n type: 'ios.simulator',\n // highlight-next-line\n headless: process.env.CI ? true : undefined,\n device: {\n type: 'iPhone 14'\n },\n /* ... */\n }\n },\n};\n")),(0,a.yg)("p",null,"or, via CLI:"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-bash"},"detox test -c ios.sim.release --headless\n")),(0,a.yg)("h3",{id:"reverse-ports"},"Reverse ports"),(0,a.yg)("p",null,"Your apps might try to access some ",(0,a.yg)("inlineCode",{parentName:"p"},"localhost:*")," addresses (e.g., mock servers), but this is a bit more problematic in the case of Android. The Android emulators are separate virtual devices with their own loopback network interface. In such cases, you must set up reverse port forwarding via ",(0,a.yg)("inlineCode",{parentName:"p"},"adb reverse"),"."),(0,a.yg)("p",null,"Local servers are quite a common prerequisite for apps in debug mode \u2013 one could recall React Native bundler on port 8081, Storybook server on 9009, etc. That's why we decided to add an optional config property for Android apps, ",(0,a.yg)("inlineCode",{parentName:"p"},"reversePorts"),":"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-js"},"/** @type {Detox.DetoxConfig} */\nmodule.exports = {\n // ...\n apps: {\n 'android.debug': {\n type: 'android.apk',\n binaryPath: '...',\n reversePorts: [8081, 3000],\n },\n },\n};\n")),(0,a.yg)("p",null,"In other words, this is a convenience API that tells Detox to run ",(0,a.yg)("inlineCode",{parentName:"p"},"device.reverseTcpPort(portNumber)")," after installing the app. It should be helpful for anyone who prefers to keep such things as configs rather than as code."),(0,a.yg)("h3",{id:"read-only-emulators-by-default"},"Read-only emulators by default"),(0,a.yg)("p",null,"The ",(0,a.yg)("inlineCode",{parentName:"p"},"-read-only")," flag appeared in ",(0,a.yg)("a",{parentName:"p",href:"https://developer.android.com/studio/releases/emulator#concurrent-avd"},"Android emulator 28.0.16"),". Detox promptly adopted it since the read-only mode allowed it to run multiple instances of a single Android virtual device (AVD) concurrently. This feature helped us to implement parallel test execution support for Android back then."),(0,a.yg)("p",null,"Being overcautious, we implemented that partially, only for cases when the user starts multiple concurrent workers. This decision created a moderately annoying UX issue. Imagine you run tests sequentially first, using one worker only. That provides you with a regular AVD instance, i.e., not a read-only one. After that, you switch to multiple workers only to get an error from the Android emulator, complaining about mixing regular and read-only instances."),(0,a.yg)("p",null,"While the fix itself has always been straightforward \u2013 close the running AVD and try again \u2013 this entire overcaution brought more issues than solving them. That's why, from now on, Android emulators will always be starting in ",(0,a.yg)("inlineCode",{parentName:"p"},"-read-only")," mode unless you configure ",(0,a.yg)("inlineCode",{parentName:"p"},"readonly: false")," in your ",(0,a.yg)("a",{parentName:"p",href:"/docs/config/devices"},"device config"),"."),(0,a.yg)("h3",{id:"reset-lock-file"},"Reset lock file"),(0,a.yg)("p",null,"This release adds a small CLI tool, ",(0,a.yg)("a",{parentName:"p",href:"/docs/cli/reset-lock-file"},(0,a.yg)("inlineCode",{parentName:"a"},"detox reset-lock-file")),", to help users with one specific use scenario."),(0,a.yg)("p",null,"Imagine you want to run tests for multiple Detox configurations at once, e.g.:"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-bash"},"detox test -c iphoneSE2020.release e2e/ui.test.js\ndetox test -c iphone14ProMax.release e2e/ui.test.js\n")),(0,a.yg)("p",null,"The problem is that Detox uses a file-locking mechanism to avoid situations when parallel test workers would take control of the same device. The ",(0,a.yg)("inlineCode",{parentName:"p"},"detox test")," command, upon start, erases that file contents, creating a race condition risk."),(0,a.yg)("p",null,"To eliminate that risk, use a combination of ",(0,a.yg)("inlineCode",{parentName:"p"},"detox reset-lock-file")," and ",(0,a.yg)("inlineCode",{parentName:"p"},"--keepLockFile")," like this:"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-bash"},"detox reset-lock-file & \\\ndetox test --keepLockFile -c iphoneSE2020.release e2e/ui.test.js & \\\ndetox test --keepLockFile -c iphone14ProMax.release e2e/ui.test.js & \\\nwait\n")),(0,a.yg)("p",null,"In the future, we plan to minimize using lock files so that you don't have to think about this low-level implementation detail.\nSo, this tool adds some convenience until we provide a next-gen solution."),(0,a.yg)("h2",{id:"deprecations"},"Deprecations"),(0,a.yg)("p",null,"Detox 20 executes many pending deprecations, so make sure to check out our ",(0,a.yg)("a",{parentName:"p",href:"/docs/guide/migration#200"},"Migration Guide")," before upgrading:"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"JS: minimum supported Node.js version is ",(0,a.yg)("inlineCode",{parentName:"li"},"14.x"),";"),(0,a.yg)("li",{parentName:"ul"},"JS: minimum supported Jest version is ",(0,a.yg)("inlineCode",{parentName:"li"},"27.2.5"),";"),(0,a.yg)("li",{parentName:"ul"},"JS: Mocha test runner is no longer supported;"),(0,a.yg)("li",{parentName:"ul"},"JS: discontinued old adapters for Jest (",(0,a.yg)("inlineCode",{parentName:"li"},"jest-jasmine"),", first generation of ",(0,a.yg)("inlineCode",{parentName:"li"},"jest-circus")," adapter);"),(0,a.yg)("li",{parentName:"ul"},"JS: discontinued ",(0,a.yg)("inlineCode",{parentName:"li"},"{ permanent: true }")," option in ",(0,a.yg)("inlineCode",{parentName:"li"},"device.appLaunchArgs.*")," methods (",(0,a.yg)("a",{parentName:"li",href:"https://github.com/wix/Detox/pull/3360"},"#3360"),");"),(0,a.yg)("li",{parentName:"ul"},"CLI: dropped ",(0,a.yg)("inlineCode",{parentName:"li"},"-w, --workers")," and ",(0,a.yg)("inlineCode",{parentName:"li"},"-o, --runner-config")," args \u2013 see a ",(0,a.yg)("a",{parentName:"li",href:"/docs/guide/migration#updating-command-line-scripts"},"dedicated section")," in the migration guide;"),(0,a.yg)("li",{parentName:"ul"},"CLI: dropped deprecated ",(0,a.yg)("inlineCode",{parentName:"li"},"--device-launch-args")," (",(0,a.yg)("a",{parentName:"li",href:"https://github.com/wix/Detox/pull/3665"},"#3665"),");"),(0,a.yg)("li",{parentName:"ul"},"Config: discontinued kebab-case properties: ",(0,a.yg)("inlineCode",{parentName:"li"},"test-runner"),", ",(0,a.yg)("inlineCode",{parentName:"li"},"runner-config")," (",(0,a.yg)("a",{parentName:"li",href:"https://github.com/wix/Detox/pull/3371"},"#3371"),")"),(0,a.yg)("li",{parentName:"ul"},"Config: discontinued ",(0,a.yg)("inlineCode",{parentName:"li"},"skipLegacyWorkersInjections")," property (",(0,a.yg)("a",{parentName:"li",href:"https://github.com/wix/Detox/pull/3286"},"(#3286)"),")"),(0,a.yg)("li",{parentName:"ul"},"Config: deprecated ",(0,a.yg)("inlineCode",{parentName:"li"},"specs")," and ",(0,a.yg)("inlineCode",{parentName:"li"},"runnerConfig")," properties"),(0,a.yg)("li",{parentName:"ul"},"Config: changed ",(0,a.yg)("a",{parentName:"li",href:"/docs/config/testRunner"},"semantics")," of ",(0,a.yg)("inlineCode",{parentName:"li"},"testRunner")," property"),(0,a.yg)("li",{parentName:"ul"},"Config: dropped support for all-in-one configurations (",(0,a.yg)("a",{parentName:"li",href:"https://github.com/wix/Detox/pull/3386"},"#3386"),");"),(0,a.yg)("li",{parentName:"ul"},"Android: remove deprecated native IdlePolicyConfig (",(0,a.yg)("a",{parentName:"li",href:"https://github.com/wix/Detox/pull/3332/files"},"#3332"),")"),(0,a.yg)("li",{parentName:"ul"},"iOS: discontinued ",(0,a.yg)("inlineCode",{parentName:"li"},"ios.none")," device type \u2013 see the new way to ",(0,a.yg)("a",{parentName:"li",href:"/docs/introduction/debugging#native-application-code"},"debug native code")," (",(0,a.yg)("a",{parentName:"li",href:"https://github.com/wix/Detox/pull/3361"},"#3361"),")")),(0,a.yg)("h2",{id:"afterword"},"Afterword"),(0,a.yg)("p",null,"Over the last year and a half, we have established a centralized configuration system for more than 50 projects using Detox at Wix. While it never seemed to be a cakewalk, the entire experience of troubleshooting over a hundred issues across the organization did not leave us unchanged."),(0,a.yg)("p",null,"We see numerous things to improve in Detox, but most of them boil down to the same thing \u2013 ",(0,a.yg)("strong",{parentName:"p"},"scaling"),'. Surprisingly, "scaling" makes an excellent umbrella term for nearly every challenge we\'ve been encountering lately:'),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("em",{parentName:"li"},"scaling up the number of users")," requires us to improve the onboarding and troubleshooting experience;"),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("em",{parentName:"li"},"scaling up the number of projects")," forces us to centralize scattered configs into flexible organization presets;"),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("em",{parentName:"li"},"scaling up the number of tests")," prompts us to optimize the codebase and incline it towards cloud and remote execution.")),(0,a.yg)("p",null,"Our core team has been facing challenges of limited human resource constraints and growing scaling needs for a long time. In many ways, that has shaped a specific mindset within the team. We evaluate every discussed feature by asking a simple question: ",(0,a.yg)("em",{parentName:"p"},"will it save other people and us time to focus on more important things?")," Teaching a man to fish is better than giving fish, so our success at preventing support issues matters more than our success at solving them ourselves."),(0,a.yg)("p",null,"That's why we'll be making subsequent efforts in these three areas, hoping to get back to you soon with even more exciting updates."),(0,a.yg)("p",null,"Enjoy your drive with Detox 20!"),(0,a.yg)("p",null,"Cheers! \ud83d\udc4b"),(0,a.yg)("div",{className:"footnotes"},(0,a.yg)("hr",{parentName:"div"}),(0,a.yg)("ol",{parentName:"div"},(0,a.yg)("li",{parentName:"ol",id:"fn-1-2b8cfe"},"The mentioned threshold is not a hard limit, but rather a point where the return value of scaling up the number of devices starts dramatically diminishing in our case \u2013 not only the tests themselves, but installing NPM dependencies and building the projects also takes time.",(0,a.yg)("a",{parentName:"li",href:"#fnref-1-2b8cfe",className:"footnote-backref"},"\u21a9")))))}d.isMDXComponent=!0},72716:(e,t,n)=>{n.d(t,{A:()=>o});const o=n.p+"assets/images/v20-logger-options-be0263e8b33e617b2a4ef55861d45e4a.png"},27709:(e,t,n)=>{n.d(t,{A:()=>o});const o=n.p+"assets/images/v20-perfetto-example-171220190ff552d655a9a0712e2c04ed.png"}}]); \ No newline at end of file diff --git a/assets/js/933bed1e.909642c9.js b/assets/js/933bed1e.62163c02.js similarity index 82% rename from assets/js/933bed1e.909642c9.js rename to assets/js/933bed1e.62163c02.js index dd5aad167d..63fb18ed51 100644 --- a/assets/js/933bed1e.909642c9.js +++ b/assets/js/933bed1e.62163c02.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2141],{52401:e=>{e.exports=JSON.parse('{"permalink":"/Detox/blog","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"All the important updates and announcements from Detox crew, tips and tricks and everything else that you don\'t want to miss.","blogTitle":"Blog"}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2141],{52401:e=>{e.exports=JSON.parse('{"permalink":"/Detox/blog","page":1,"postsPerPage":10,"totalPages":1,"totalCount":2,"blogDescription":"All the important updates and announcements from Detox crew, tips and tricks and everything else that you don\'t want to miss.","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.030b4912.js b/assets/js/935f2afb.030b4912.js deleted file mode 100644 index eb5b8ab56c..0000000000 --- a/assets/js/935f2afb.030b4912.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8581],{35610:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":"unreleased","badge":true,"noIndex":false,"className":"docs-version-current","isLast":false,"docsSidebars":{"tutorialSidebar":[{"type":"category","label":"Introduction","items":[{"type":"link","label":"Getting Started","href":"/Detox/docs/next/introduction/getting-started","docId":"introduction/getting-started"},{"type":"link","label":"Environment Setup","href":"/Detox/docs/next/introduction/environment-setup","docId":"introduction/environment-setup"},{"type":"link","label":"Project Setup","href":"/Detox/docs/next/introduction/project-setup","docId":"introduction/project-setup"},{"type":"link","label":"Your First Test","href":"/Detox/docs/next/introduction/your-first-test","docId":"introduction/your-first-test"},{"type":"link","label":"How to Debug","href":"/Detox/docs/next/introduction/debugging","docId":"introduction/debugging"},{"type":"link","label":"Preparing for CI","href":"/Detox/docs/next/introduction/preparing-for-ci","docId":"introduction/preparing-for-ci"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Guides","items":[{"type":"link","label":"Investigating Failures","href":"/Detox/docs/next/guide/investigating-test-failure","docId":"guide/investigating-test-failure"},{"type":"link","label":"Adding test ID\'s to your components","href":"/Detox/docs/next/guide/test-id","docId":"guide/test-id"},{"type":"link","label":"Parallel Test Execution","href":"/Detox/docs/next/guide/parallel-test-execution","docId":"guide/parallel-test-execution"},{"type":"link","label":"Using TypeScript","href":"/Detox/docs/next/guide/typescript","docId":"guide/typescript"},{"type":"link","label":"Testing with Detox Copilot","href":"/Detox/docs/next/guide/testing-with-copilot","docId":"guide/testing-with-copilot"},{"type":"link","label":"Testing WebViews","href":"/Detox/docs/next/guide/testing-webviews","docId":"guide/testing-webviews"},{"type":"link","label":"Using Genymotion SaaS","href":"/Detox/docs/next/guide/genymotion-saas","docId":"guide/genymotion-saas"},{"type":"link","label":"Taking Screenshots","href":"/Detox/docs/next/guide/taking-screenshots","docId":"guide/taking-screenshots"},{"type":"link","label":"Mocking","href":"/Detox/docs/next/guide/mocking","docId":"guide/mocking"},{"type":"link","label":"Using Launch Arguments","href":"/Detox/docs/next/guide/launch-args","docId":"guide/launch-args"},{"type":"link","label":"Mocking Open With URL (Deep Links)","href":"/Detox/docs/next/guide/mocking-open-with-url","docId":"guide/mocking-open-with-url"},{"type":"link","label":"Mocking User Notifications","href":"/Detox/docs/next/guide/mocking-user-notifications","docId":"guide/mocking-user-notifications"},{"type":"link","label":"Mocking User Activity","href":"/Detox/docs/next/guide/mocking-user-activity","docId":"guide/mocking-user-activity"},{"type":"link","label":"Developing Your App While Writing Tests","href":"/Detox/docs/next/guide/developing-while-writing-tests","docId":"guide/developing-while-writing-tests"},{"type":"link","label":"Setting Up an Android Development & Testing Environment","href":"/Detox/docs/next/guide/android-dev-env","docId":"guide/android-dev-env"},{"type":"link","label":"ProGuard configuration","href":"/Detox/docs/next/guide/proguard-configuration","docId":"guide/proguard-configuration"},{"type":"link","label":"Cucumber.js Integration","href":"/Detox/docs/next/guide/cucumber-js-integration","docId":"guide/cucumber-js-integration"},{"type":"link","label":"Uninstalling Detox","href":"/Detox/docs/next/guide/uninstalling","docId":"guide/uninstalling"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Troubleshooting","items":[{"type":"link","label":"Dealing With Problems With Building the App & Detox","href":"/Detox/docs/next/troubleshooting/building-the-app","docId":"troubleshooting/building-the-app"},{"type":"link","label":"Dealing With Problems With Running Tests","href":"/Detox/docs/next/troubleshooting/running-tests","docId":"troubleshooting/running-tests"},{"type":"link","label":"Dealing With Synchronization Issues in Tests","href":"/Detox/docs/next/troubleshooting/synchronization","docId":"troubleshooting/synchronization"},{"type":"link","label":"Dealing With Flakiness in Tests","href":"/Detox/docs/next/troubleshooting/flakiness","docId":"troubleshooting/flakiness"}],"collapsed":true,"collapsible":true},{"type":"link","label":"Migration Guide","href":"/Detox/docs/next/guide/migration","docId":"guide/migration"}],"apiSidebar":[{"type":"category","label":"Config file","items":[{"type":"link","label":"Overview","href":"/Detox/docs/next/config/overview","docId":"config/overview"},{"type":"link","label":"Devices","href":"/Detox/docs/next/config/devices","docId":"config/devices"},{"type":"link","label":"Apps","href":"/Detox/docs/next/config/apps","docId":"config/apps"},{"type":"link","label":"Artifacts","href":"/Detox/docs/next/config/artifacts","docId":"config/artifacts"},{"type":"link","label":"Behavior","href":"/Detox/docs/next/config/behavior","docId":"config/behavior"},{"type":"link","label":"Logger","href":"/Detox/docs/next/config/logger","docId":"config/logger"},{"type":"link","label":"Session","href":"/Detox/docs/next/config/session","docId":"config/session"},{"type":"link","label":"Test runner","href":"/Detox/docs/next/config/testRunner","docId":"config/testRunner"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Command Line Interface","items":[{"type":"link","label":"detox","href":"/Detox/docs/next/cli/overview","docId":"cli/overview"},{"type":"link","label":"detox init","href":"/Detox/docs/next/cli/init","docId":"cli/init"},{"type":"link","label":"detox build","href":"/Detox/docs/next/cli/build","docId":"cli/build"},{"type":"link","label":"detox start","href":"/Detox/docs/next/cli/start","docId":"cli/start"},{"type":"link","label":"detox test","href":"/Detox/docs/next/cli/test","docId":"cli/test"},{"type":"link","label":"detox recorder","href":"/Detox/docs/next/cli/recorder","docId":"cli/recorder"},{"type":"link","label":"detox build-framework-cache","href":"/Detox/docs/next/cli/build-framework-cache","docId":"cli/build-framework-cache"},{"type":"link","label":"detox clean-framework-cache","href":"/Detox/docs/next/cli/clean-framework-cache","docId":"cli/clean-framework-cache"},{"type":"link","label":"detox rebuild-framework-cache","href":"/Detox/docs/next/cli/rebuild-framework-cache","docId":"cli/rebuild-framework-cache"},{"type":"link","label":"detox reset-lock-file","href":"/Detox/docs/next/cli/reset-lock-file","docId":"cli/reset-lock-file"},{"type":"link","label":"detox run-server","href":"/Detox/docs/next/cli/run-server","docId":"cli/run-server"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Client API","items":[{"type":"link","label":"Device","href":"/Detox/docs/next/api/device","docId":"api/device"},{"type":"link","label":"Matchers","href":"/Detox/docs/next/api/matchers","docId":"api/matchers"},{"type":"link","label":"Actions","href":"/Detox/docs/next/api/actions","docId":"api/actions"},{"type":"link","label":"Expect","href":"/Detox/docs/next/api/expect","docId":"api/expect"},{"type":"link","label":"Web Views","href":"/Detox/docs/next/api/webviews","docId":"api/webviews"},{"type":"link","label":"System","href":"/Detox/docs/next/api/system","docId":"api/system"},{"type":"link","label":"Logger","href":"/Detox/docs/next/api/logger","docId":"api/logger"},{"type":"link","label":"Detox Copilot","href":"/Detox/docs/next/api/copilot","docId":"api/copilot"}],"collapsed":true,"collapsible":true},{"type":"link","label":"Internals API","href":"/Detox/docs/next/api/internals","docId":"api/internals"},{"type":"category","label":"Tech Articles","items":[{"type":"link","label":"Design Principles","href":"/Detox/docs/next/articles/design-principles","docId":"articles/design-principles"},{"type":"link","label":"How Detox Works","href":"/Detox/docs/next/articles/how-detox-works","docId":"articles/how-detox-works"},{"type":"link","label":"Third-Party Drivers","href":"/Detox/docs/next/articles/third-party-drivers","docId":"articles/third-party-drivers"}],"collapsed":true,"collapsible":true}],"contributeSidebar":[{"type":"link","label":"Contributing to Detox","href":"/Detox/docs/next/contributing","docId":"contributing"},{"type":"category","label":"Questions & Answers","items":[{"type":"link","label":"Asking Questions","href":"/Detox/docs/next/contributing/questions/asking-questions","docId":"contributing/questions/asking-questions"},{"type":"link","label":"Answering Questions","href":"/Detox/docs/next/contributing/questions/answering-questions","docId":"contributing/questions/answering-questions"}],"collapsed":true,"collapsible":true},{"type":"link","label":"Reporting Bugs","href":"/Detox/docs/next/contributing/reporting-bugs","docId":"contributing/reporting-bugs"},{"type":"link","label":"Feedback and Suggestions","href":"/Detox/docs/next/contributing/feature-requests","docId":"contributing/feature-requests"},{"type":"category","label":"Code Changes","items":[{"type":"link","label":"Overview","href":"/Detox/docs/next/contributing/code/overview","docId":"contributing/code/overview"},{"type":"link","label":"Setting up the Development Environment","href":"/Detox/docs/next/contributing/code/setting-up-the-dev-environment","docId":"contributing/code/setting-up-the-dev-environment"},{"type":"link","label":"Building and Testing","href":"/Detox/docs/next/contributing/code/building-and-testing","docId":"contributing/code/building-and-testing"},{"type":"link","label":"Example Projects","href":"/Detox/docs/next/contributing/code/example-projects","docId":"contributing/code/example-projects"},{"type":"link","label":"Submitting Pull Requests","href":"/Detox/docs/next/contributing/code/submitting-pull-requests","docId":"contributing/code/submitting-pull-requests"},{"type":"link","label":"Review a Pull Request","href":"/Detox/docs/next/contributing/code/reviewing-pull-requests","docId":"contributing/code/reviewing-pull-requests"}],"collapsed":true,"collapsible":true},{"type":"link","label":"Documentation Site","href":"/Detox/docs/next/contributing/documentation","docId":"contributing/documentation"},{"type":"link","label":"Code of Conduct","href":"/Detox/docs/next/contributing/code-of-conduct","docId":"contributing/code-of-conduct"}]},"docs":{"api/actions":{"id":"api/actions","title":"Actions","description":"Detox uses matchers to find UI elements in your app and actions to simulate user interaction with those elements.","sidebar":"apiSidebar"},"api/copilot":{"id":"api/copilot","title":"Detox Copilot","description":"Detox Copilot is an AI-powered plugin that allows you to write Detox tests using natural language commands, powered by large language models (LLMs). It simplifies the process of writing end-to-end tests by translating human-readable instructions into Detox actions and assertions.","sidebar":"apiSidebar"},"api/device":{"id":"api/device","title":"Device","description":"The device object is globally available in every test file, unless you use exposeGlobals: false in the behavior config,","sidebar":"apiSidebar"},"api/expect":{"id":"api/expect","title":"Expect","description":"Detox uses matchers to match UI elements in your app and expectations to verify those elements are in the expected state.","sidebar":"apiSidebar"},"api/internals":{"id":"api/internals","title":"Internals API","description":"This section might be more volatile than the other ones, yet we\'ll do our best to adhere to Semantic Release standards even here.","sidebar":"apiSidebar"},"api/logger":{"id":"api/logger","title":"Logger","description":"Detox Logger API allows you to save your custom messages and events alongside the built-in ones.","sidebar":"apiSidebar"},"api/matchers":{"id":"api/matchers","title":"Matchers","description":"Detox uses matchers to match UI elements in your app.","sidebar":"apiSidebar"},"api/system":{"id":"api/system","title":"System","description":"System APIs allows you to interact with dialogs in the system-level (e.g. permissions, alerts, etc.).","sidebar":"apiSidebar"},"api/webviews":{"id":"api/webviews","title":"Web Views","description":"Web views are native components that render content not natively supported by the platform, like web pages or PDF documents.","sidebar":"apiSidebar"},"articles/design-principles":{"id":"articles/design-principles","title":"Design Principles","description":"Traditionally, end-to-end tests on mobile are riddled with inherent issues, making the testing process difficult and lowering ROI for developers. We believe that the only way to solve these issues at the core is by changing some of the basic principles of our approach.","sidebar":"apiSidebar"},"articles/how-detox-works":{"id":"articles/how-detox-works","title":"How Detox Works","description":"Detox is an end-to-end testing framework. This means it runs your app on an actual device/simulator and interacts with it just like a real user would. This type of testing can give a lot of confidence in your app and help automate a manual QA process.","sidebar":"apiSidebar"},"articles/third-party-drivers":{"id":"articles/third-party-drivers","title":"Third-Party Drivers","description":"Detox comes with built-in support for running on Android and iOS by choosing a driver type in your Detox configurations.","sidebar":"apiSidebar"},"cli/build":{"id":"cli/build","title":"detox build","description":"detox build [options]","sidebar":"apiSidebar"},"cli/build-framework-cache":{"id":"cli/build-framework-cache","title":"detox build-framework-cache","description":"MacOS only.","sidebar":"apiSidebar"},"cli/clean-framework-cache":{"id":"cli/clean-framework-cache","title":"detox clean-framework-cache","description":"MacOS only.","sidebar":"apiSidebar"},"cli/init":{"id":"cli/init","title":"detox init","description":"Creates a few template files in the current project directory to get you started with Detox:","sidebar":"apiSidebar"},"cli/overview":{"id":"cli/overview","title":"detox","description":"Detox CLI lets you operate Detox from command line.","sidebar":"apiSidebar"},"cli/rebuild-framework-cache":{"id":"cli/rebuild-framework-cache","title":"detox rebuild-framework-cache","description":"MacOS only.","sidebar":"apiSidebar"},"cli/recorder":{"id":"cli/recorder","title":"detox recorder","description":"Detox Recorder tool is deprecated due to shortage of human resources in Detox team.","sidebar":"apiSidebar"},"cli/reset-lock-file":{"id":"cli/reset-lock-file","title":"detox reset-lock-file","description":"Resets Detox lock file. The lock file contains information about busy and free devices, and this way we can ensure no device can be used simultaneously by multiple Detox test sessions.","sidebar":"apiSidebar"},"cli/run-server":{"id":"cli/run-server","title":"detox run-server","description":"This tool is useful mostly for contributing to the native codebase of Detox, not for the outside use.","sidebar":"apiSidebar"},"cli/start":{"id":"cli/start","title":"detox start","description":"detox start [options]","sidebar":"apiSidebar"},"cli/test":{"id":"cli/test","title":"detox test","description":"For the most part, detox test is a convenience method which converts CLI arguments to environment variables and","sidebar":"apiSidebar"},"config/apps":{"id":"config/apps","title":"Apps","description":"The format of Detox config allows you to define inside it multiple app configs in a key-value manner, i.e.:","sidebar":"apiSidebar"},"config/artifacts":{"id":"config/artifacts","title":"Artifacts","description":"This article is incomplete. We\'re looking forward to improve this article as soon as we have an opportunity to do so.","sidebar":"apiSidebar"},"config/behavior":{"id":"config/behavior","title":"Behavior","description":"If you need to tweak the flow of detox.init() or detox.cleanup() steps,","sidebar":"apiSidebar"},"config/devices":{"id":"config/devices","title":"Devices","description":"The format of Detox config allows you to define inside it multiple device configs in a key-value manner, i.e.:","sidebar":"apiSidebar"},"config/logger":{"id":"config/logger","title":"Logger","description":"The logger section controls how the printed logs are going to look like in your terminal window.","sidebar":"apiSidebar"},"config/overview":{"id":"config/overview","title":"Overview","description":"If you prefer to read TypeScript files instead of docs, feel free to browse through","sidebar":"apiSidebar"},"config/session":{"id":"config/session","title":"Session","description":"It is not recommended to customize this section unless you are debugging native code","sidebar":"apiSidebar"},"config/testRunner":{"id":"config/testRunner","title":"Test runner","description":"While Detox was created to test mobile applications, effectively it is not a test runner \u2013 instead, it runs on top of a test runner. There are many third-party solutions for running tests, so we\'re happy to not reinvent the wheel and to devote our time to the mobile domain itself.","sidebar":"apiSidebar"},"contributing":{"id":"contributing","title":"Contributing to Detox","description":"Detox, an open-source project, greatly values community involvement. Whether you\'re a mobile developer, QA specialist, or an open source enthusiast, your contribution could significantly enhance the reliability, user experience, and development process of mobile applications.","sidebar":"contributeSidebar"},"contributing/code-of-conduct":{"id":"contributing/code-of-conduct","title":"Code of Conduct","description":"This Code of Conduct is adapted from the [Contributor Covenant],","sidebar":"contributeSidebar"},"contributing/code/building-and-testing":{"id":"contributing/code/building-and-testing","title":"Building and Testing","description":"Our JavaScript code is thoroughly verified with comprehensive unit tests, complemented by integration tests.","sidebar":"contributeSidebar"},"contributing/code/example-projects":{"id":"contributing/code/example-projects","title":"Example Projects","description":"Explore various example projects hosted in this monorepo to understand real-world usage and testing with Detox.","sidebar":"contributeSidebar"},"contributing/code/overview":{"id":"contributing/code/overview","title":"Code Changes Overview","description":"Welcome to the code changes section! As a contributor, it\'s essential to understand the project\'s goals and adhere to its code of conduct. Before contributing, please review any existing issues related to your work, ensure your code is well-documented, and has adequate test coverage. It\'s also important that your code is compatible with the project\'s supported platforms and their versions.","sidebar":"contributeSidebar"},"contributing/code/reviewing-pull-requests":{"id":"contributing/code/reviewing-pull-requests","title":"Review a Pull Request","description":"Reviewing a PR is an important part of the contribution process. It ensures the quality of the codebase and provides an opportunity for the community to collaborate and learn from each other.","sidebar":"contributeSidebar"},"contributing/code/setting-up-the-dev-environment":{"id":"contributing/code/setting-up-the-dev-environment","title":"Setting up the Development Environment","description":"This document guides you through setting up your development environment to start contributing to our codebase.","sidebar":"contributeSidebar"},"contributing/code/submitting-pull-requests":{"id":"contributing/code/submitting-pull-requests","title":"Submitting Pull Requests","description":"Before creating a PR, it\'s recommended to consult with the Detox collaborators. Request a design review or assistance with planning the tests to ensure alignment with project goals.","sidebar":"contributeSidebar"},"contributing/documentation":{"id":"contributing/documentation","title":"Documentation Site","description":"Contributions towards enhancing our documentation are highly valued in the Detox community.","sidebar":"contributeSidebar"},"contributing/feature-requests":{"id":"contributing/feature-requests","title":"Feedback and Suggestions","description":"Open dialogue and feedback, particularly feature requests, play an invaluable role in open-source communities like Detox. They provide insights into user preferences and requirements, aiding in the refinement and enhancement of the project.","sidebar":"contributeSidebar"},"contributing/questions/answering-questions":{"id":"contributing/questions/answering-questions","title":"Answering Questions","description":"Contributing answers is an invaluable part of supporting the Detox community. By sharing your knowledge and experience, you help others learn and grow, and you also contribute to enhancing Detox for the entire community.","sidebar":"contributeSidebar"},"contributing/questions/asking-questions":{"id":"contributing/questions/asking-questions","title":"Asking Questions","description":"Posting queries on public forums increases visibility and chances of getting an answer, and it also helps others with similar issues. However, it\'s essential to ask questions the right way to get the right answers.","sidebar":"contributeSidebar"},"contributing/reporting-bugs":{"id":"contributing/reporting-bugs","title":"Reporting Bugs","description":"Encountering a bug? Your detailed report is key for us to identify and rectify the issue.","sidebar":"contributeSidebar"},"demo":{"id":"demo","title":"Internal Demo Page for Styling","description":"This page is for internal use only. If you are a contributor to the Detox project, you can use this page to test your changes to the website documentation pages"},"guide/android-dev-env":{"id":"guide/android-dev-env","title":"Setting Up an Android Development & Testing Environment","description":"This guide provides some core practices to follow in setting up a stable, reliable environment for running automated UI tests using Android emulators (using Detox, in particular) \u2013 be it on a personal, local computer, or a powerful CI machine.","sidebar":"tutorialSidebar"},"guide/cucumber-js-integration":{"id":"guide/cucumber-js-integration","title":"Cucumber.js Integration","description":"This is an article generously contributed by the community.","sidebar":"tutorialSidebar"},"guide/developing-while-writing-tests":{"id":"guide/developing-while-writing-tests","title":"Developing Your App While Writing Tests","description":"If your app requires active development, such as adding testID fields for tests, this is a good workflow. It allows you to work both on your app and your tests at the same time.","sidebar":"tutorialSidebar"},"guide/genymotion-saas":{"id":"guide/genymotion-saas","title":"Using Genymotion SaaS","description":"As the number of your end-to-end tests grows, the overall test session duration might easily surpass an hour or two.","sidebar":"tutorialSidebar"},"guide/investigating-test-failure":{"id":"guide/investigating-test-failure","title":"Investigating Failures","description":"There are a few tricks and tools that can help you to understand the reason for test failures, even before you resort to debugging.","sidebar":"tutorialSidebar"},"guide/launch-args":{"id":"guide/launch-args","title":"Using Launch Arguments","description":"In Detox, the app under test is launched via an explicit call to device.launchApp(). Through various means, Detox enables specifying a set of user-defined arguments (key-value pairs) to be passed on to the app when launched, so as to make them available inside the launched app itself at runtime (both on the native side, and - if applicable, on the JavaScript side).","sidebar":"tutorialSidebar"},"guide/migration":{"id":"guide/migration","title":"Migration Guide","description":"We are improving Detox API as we go along, sometimes these changes require us to break the API in order for it to make more sense. These migration guides refer to breaking changes. If a newer version has no entries in this document, it means it does not require special migration steps. Refer to the release notes of the latter builds to learn about their improvements and changes.","sidebar":"tutorialSidebar"},"guide/mocking":{"id":"guide/mocking","title":"Mocking","description":"This article previously focused on the older React Native versions (<0.59), so if you need to access it, follow this Git history link.","sidebar":"tutorialSidebar"},"guide/mocking-open-with-url":{"id":"guide/mocking-open-with-url","title":"Mocking Open With URL (Deep Links)","description":"You can mock opening the app from URL to test your app\u2019s deep link handling mechanism.","sidebar":"tutorialSidebar"},"guide/mocking-user-activity":{"id":"guide/mocking-user-activity","title":"Mocking User Activity","description":"Detox supports mocking user activity for iOS apps.","sidebar":"tutorialSidebar"},"guide/mocking-user-notifications":{"id":"guide/mocking-user-notifications","title":"Mocking User Notifications","description":"Detox supports mocking user notifications.","sidebar":"tutorialSidebar"},"guide/parallel-test-execution":{"id":"guide/parallel-test-execution","title":"Parallel Test Execution","description":"Detox comes out of the box with multi-worker support thanks to (Jest\'s feature, etc.).","sidebar":"tutorialSidebar"},"guide/proguard-configuration":{"id":"guide/proguard-configuration","title":"ProGuard configuration","description":"You can skip this guide if you are working solely with debug builds (android.emu.debug, etc.),","sidebar":"tutorialSidebar"},"guide/taking-screenshots":{"id":"guide/taking-screenshots","title":"Taking Screenshots","description":"Detox supports taking in-test screenshots of the device, making the result immediately available in the form of an image file.","sidebar":"tutorialSidebar"},"guide/test-id":{"id":"guide/test-id","title":"Adding test ID\'s to your components","description":"This guide was written primarily for React Native apps, but it can be generalized for testing any app, including native apps.","sidebar":"tutorialSidebar"},"guide/testing-webviews":{"id":"guide/testing-webviews","title":"Testing WebViews","description":"In this tutorial, we\'ll go over how you can test a WebView in React Native applications using Detox. We will cover how to engage with web elements in both single and multi WebView scenarios, apply matchers, and execute actions.","sidebar":"tutorialSidebar"},"guide/testing-with-copilot":{"id":"guide/testing-with-copilot","title":"Testing with Detox Copilot","description":"In this tutorial, we\'ll explore how to use Detox Copilot to write end-to-end tests using natural language commands. Detox Copilot leverages large language models (LLMs) to translate human-readable instructions into Detox actions and assertions, making test writing more intuitive and accessible.","sidebar":"tutorialSidebar"},"guide/typescript":{"id":"guide/typescript","title":"Using TypeScript","description":"This guide assumes you are using Detox\'s default test runner integration with Jest.","sidebar":"tutorialSidebar"},"guide/uninstalling":{"id":"guide/uninstalling","title":"Uninstalling Detox","description":"Installing and using Detox implies certain side effects: cloned devices, cache files, state files, temporary files, etc.","sidebar":"tutorialSidebar"},"introduction/debugging":{"id":"introduction/debugging","title":"How to Debug","description":"Detox Tests","sidebar":"tutorialSidebar"},"introduction/environment-setup":{"id":"introduction/environment-setup","title":"Environment Setup","description":"The Introduction section walks you through setting up Detox in your project, one step at a time.","sidebar":"tutorialSidebar"},"introduction/getting-started":{"id":"introduction/getting-started","title":"Getting Started","description":"Before You Start","sidebar":"tutorialSidebar"},"introduction/preparing-for-ci":{"id":"introduction/preparing-for-ci","title":"Preparing for CI","description":"This guide is outdated.","sidebar":"tutorialSidebar"},"introduction/project-setup":{"id":"introduction/project-setup","title":"Project Setup","description":"This article mainly covers standard React Native projects.","sidebar":"tutorialSidebar"},"introduction/your-first-test":{"id":"introduction/your-first-test","title":"Your First Test","description":"The previous articles have addressed the environment and project setup, and now it is time for writing","sidebar":"tutorialSidebar"},"troubleshooting/artifacts":{"id":"troubleshooting/artifacts","title":"Artifacts","description":"Video Recording Issues on CI"},"troubleshooting/building-the-app":{"id":"troubleshooting/building-the-app","title":"Dealing With Problems With Building the App & Detox","description":"This page is about issues related to building the app, typically triggered when running detox build (and not detox test, for example).","sidebar":"tutorialSidebar"},"troubleshooting/flakiness":{"id":"troubleshooting/flakiness","title":"Dealing With Flakiness in Tests","description":"What is a flaky test?","sidebar":"tutorialSidebar"},"troubleshooting/running-tests":{"id":"troubleshooting/running-tests","title":"Dealing With Problems With Running Tests","description":"This page is about issues related to executing your Detox tests, typically triggered when running detox test (and not detox build, for example).","sidebar":"tutorialSidebar"},"troubleshooting/synchronization":{"id":"troubleshooting/synchronization","title":"Dealing With Synchronization Issues in Tests","description":"Traditionally, one of the most difficult aspects of E2E testing is synchronizing the test scenario with the app. Complex operations inside the app (like accessing servers or performing animations) often take variable amount of time to complete. We can\u2019t continue the test until they\u2019ve completed. How can we synchronize the test with these operations?","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.10fefa8c.js b/assets/js/935f2afb.10fefa8c.js new file mode 100644 index 0000000000..d35c517e31 --- /dev/null +++ b/assets/js/935f2afb.10fefa8c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8581],{35610:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":"unreleased","badge":true,"noIndex":false,"className":"docs-version-current","isLast":false,"docsSidebars":{"tutorialSidebar":[{"type":"category","label":"Introduction","items":[{"type":"link","label":"Getting Started","href":"/Detox/docs/next/introduction/getting-started","docId":"introduction/getting-started"},{"type":"link","label":"Environment Setup","href":"/Detox/docs/next/introduction/environment-setup","docId":"introduction/environment-setup"},{"type":"link","label":"Project Setup","href":"/Detox/docs/next/introduction/project-setup","docId":"introduction/project-setup"},{"type":"link","label":"Your First Test","href":"/Detox/docs/next/introduction/your-first-test","docId":"introduction/your-first-test"},{"type":"link","label":"How to Debug","href":"/Detox/docs/next/introduction/debugging","docId":"introduction/debugging"},{"type":"link","label":"Preparing for CI","href":"/Detox/docs/next/introduction/preparing-for-ci","docId":"introduction/preparing-for-ci"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Guides","items":[{"type":"link","label":"Investigating Failures","href":"/Detox/docs/next/guide/investigating-test-failure","docId":"guide/investigating-test-failure"},{"type":"link","label":"Adding test ID\'s to your components","href":"/Detox/docs/next/guide/test-id","docId":"guide/test-id"},{"type":"link","label":"Parallel Test Execution","href":"/Detox/docs/next/guide/parallel-test-execution","docId":"guide/parallel-test-execution"},{"type":"link","label":"Using TypeScript","href":"/Detox/docs/next/guide/typescript","docId":"guide/typescript"},{"type":"link","label":"Testing WebViews","href":"/Detox/docs/next/guide/testing-webviews","docId":"guide/testing-webviews"},{"type":"link","label":"Using Genymotion SaaS","href":"/Detox/docs/next/guide/genymotion-saas","docId":"guide/genymotion-saas"},{"type":"link","label":"Taking Screenshots","href":"/Detox/docs/next/guide/taking-screenshots","docId":"guide/taking-screenshots"},{"type":"link","label":"Mocking","href":"/Detox/docs/next/guide/mocking","docId":"guide/mocking"},{"type":"link","label":"Using Launch Arguments","href":"/Detox/docs/next/guide/launch-args","docId":"guide/launch-args"},{"type":"link","label":"Mocking Open With URL (Deep Links)","href":"/Detox/docs/next/guide/mocking-open-with-url","docId":"guide/mocking-open-with-url"},{"type":"link","label":"Mocking User Notifications","href":"/Detox/docs/next/guide/mocking-user-notifications","docId":"guide/mocking-user-notifications"},{"type":"link","label":"Mocking User Activity","href":"/Detox/docs/next/guide/mocking-user-activity","docId":"guide/mocking-user-activity"},{"type":"link","label":"Developing Your App While Writing Tests","href":"/Detox/docs/next/guide/developing-while-writing-tests","docId":"guide/developing-while-writing-tests"},{"type":"link","label":"Setting Up an Android Development & Testing Environment","href":"/Detox/docs/next/guide/android-dev-env","docId":"guide/android-dev-env"},{"type":"link","label":"ProGuard configuration","href":"/Detox/docs/next/guide/proguard-configuration","docId":"guide/proguard-configuration"},{"type":"link","label":"Cucumber.js Integration","href":"/Detox/docs/next/guide/cucumber-js-integration","docId":"guide/cucumber-js-integration"},{"type":"link","label":"Uninstalling Detox","href":"/Detox/docs/next/guide/uninstalling","docId":"guide/uninstalling"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Detox Copilot","items":[{"type":"link","label":"Natural Language Testing with Detox Copilot","href":"/Detox/docs/next/copilot/testing-with-copilot","docId":"copilot/testing-with-copilot"},{"type":"link","label":"Detox Copilot Best Practices","href":"/Detox/docs/next/copilot/best-practices","docId":"copilot/best-practices"},{"type":"link","label":"Technical Overview","href":"/Detox/docs/next/copilot/technical-overview","docId":"copilot/technical-overview"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Troubleshooting","items":[{"type":"link","label":"Dealing With Problems With Building the App & Detox","href":"/Detox/docs/next/troubleshooting/building-the-app","docId":"troubleshooting/building-the-app"},{"type":"link","label":"Dealing With Problems With Running Tests","href":"/Detox/docs/next/troubleshooting/running-tests","docId":"troubleshooting/running-tests"},{"type":"link","label":"Dealing With Synchronization Issues in Tests","href":"/Detox/docs/next/troubleshooting/synchronization","docId":"troubleshooting/synchronization"},{"type":"link","label":"Dealing With Flakiness in Tests","href":"/Detox/docs/next/troubleshooting/flakiness","docId":"troubleshooting/flakiness"}],"collapsed":true,"collapsible":true},{"type":"link","label":"Migration Guide","href":"/Detox/docs/next/guide/migration","docId":"guide/migration"}],"apiSidebar":[{"type":"category","label":"Config file","items":[{"type":"link","label":"Overview","href":"/Detox/docs/next/config/overview","docId":"config/overview"},{"type":"link","label":"Devices","href":"/Detox/docs/next/config/devices","docId":"config/devices"},{"type":"link","label":"Apps","href":"/Detox/docs/next/config/apps","docId":"config/apps"},{"type":"link","label":"Artifacts","href":"/Detox/docs/next/config/artifacts","docId":"config/artifacts"},{"type":"link","label":"Behavior","href":"/Detox/docs/next/config/behavior","docId":"config/behavior"},{"type":"link","label":"Logger","href":"/Detox/docs/next/config/logger","docId":"config/logger"},{"type":"link","label":"Session","href":"/Detox/docs/next/config/session","docId":"config/session"},{"type":"link","label":"Test runner","href":"/Detox/docs/next/config/testRunner","docId":"config/testRunner"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Command Line Interface","items":[{"type":"link","label":"detox","href":"/Detox/docs/next/cli/overview","docId":"cli/overview"},{"type":"link","label":"detox init","href":"/Detox/docs/next/cli/init","docId":"cli/init"},{"type":"link","label":"detox build","href":"/Detox/docs/next/cli/build","docId":"cli/build"},{"type":"link","label":"detox start","href":"/Detox/docs/next/cli/start","docId":"cli/start"},{"type":"link","label":"detox test","href":"/Detox/docs/next/cli/test","docId":"cli/test"},{"type":"link","label":"detox recorder","href":"/Detox/docs/next/cli/recorder","docId":"cli/recorder"},{"type":"link","label":"detox build-framework-cache","href":"/Detox/docs/next/cli/build-framework-cache","docId":"cli/build-framework-cache"},{"type":"link","label":"detox clean-framework-cache","href":"/Detox/docs/next/cli/clean-framework-cache","docId":"cli/clean-framework-cache"},{"type":"link","label":"detox rebuild-framework-cache","href":"/Detox/docs/next/cli/rebuild-framework-cache","docId":"cli/rebuild-framework-cache"},{"type":"link","label":"detox reset-lock-file","href":"/Detox/docs/next/cli/reset-lock-file","docId":"cli/reset-lock-file"},{"type":"link","label":"detox run-server","href":"/Detox/docs/next/cli/run-server","docId":"cli/run-server"}],"collapsed":true,"collapsible":true},{"type":"category","label":"Client API","items":[{"type":"link","label":"Device","href":"/Detox/docs/next/api/device","docId":"api/device"},{"type":"link","label":"Matchers","href":"/Detox/docs/next/api/matchers","docId":"api/matchers"},{"type":"link","label":"Actions","href":"/Detox/docs/next/api/actions","docId":"api/actions"},{"type":"link","label":"Expect","href":"/Detox/docs/next/api/expect","docId":"api/expect"},{"type":"link","label":"Web Views","href":"/Detox/docs/next/api/webviews","docId":"api/webviews"},{"type":"link","label":"System","href":"/Detox/docs/next/api/system","docId":"api/system"},{"type":"link","label":"Logger","href":"/Detox/docs/next/api/logger","docId":"api/logger"},{"type":"link","label":"Detox Copilot","href":"/Detox/docs/next/api/copilot","docId":"api/copilot"}],"collapsed":true,"collapsible":true},{"type":"link","label":"Internals API","href":"/Detox/docs/next/api/internals","docId":"api/internals"},{"type":"category","label":"Tech Articles","items":[{"type":"link","label":"Design Principles","href":"/Detox/docs/next/articles/design-principles","docId":"articles/design-principles"},{"type":"link","label":"How Detox Works","href":"/Detox/docs/next/articles/how-detox-works","docId":"articles/how-detox-works"},{"type":"link","label":"Third-Party Drivers","href":"/Detox/docs/next/articles/third-party-drivers","docId":"articles/third-party-drivers"}],"collapsed":true,"collapsible":true}],"contributeSidebar":[{"type":"link","label":"Contributing to Detox","href":"/Detox/docs/next/contributing","docId":"contributing"},{"type":"category","label":"Questions & Answers","items":[{"type":"link","label":"Asking Questions","href":"/Detox/docs/next/contributing/questions/asking-questions","docId":"contributing/questions/asking-questions"},{"type":"link","label":"Answering Questions","href":"/Detox/docs/next/contributing/questions/answering-questions","docId":"contributing/questions/answering-questions"}],"collapsed":true,"collapsible":true},{"type":"link","label":"Reporting Bugs","href":"/Detox/docs/next/contributing/reporting-bugs","docId":"contributing/reporting-bugs"},{"type":"link","label":"Feedback and Suggestions","href":"/Detox/docs/next/contributing/feature-requests","docId":"contributing/feature-requests"},{"type":"category","label":"Code Changes","items":[{"type":"link","label":"Overview","href":"/Detox/docs/next/contributing/code/overview","docId":"contributing/code/overview"},{"type":"link","label":"Setting up the Development Environment","href":"/Detox/docs/next/contributing/code/setting-up-the-dev-environment","docId":"contributing/code/setting-up-the-dev-environment"},{"type":"link","label":"Building and Testing","href":"/Detox/docs/next/contributing/code/building-and-testing","docId":"contributing/code/building-and-testing"},{"type":"link","label":"Example Projects","href":"/Detox/docs/next/contributing/code/example-projects","docId":"contributing/code/example-projects"},{"type":"link","label":"Submitting Pull Requests","href":"/Detox/docs/next/contributing/code/submitting-pull-requests","docId":"contributing/code/submitting-pull-requests"},{"type":"link","label":"Review a Pull Request","href":"/Detox/docs/next/contributing/code/reviewing-pull-requests","docId":"contributing/code/reviewing-pull-requests"}],"collapsed":true,"collapsible":true},{"type":"link","label":"Documentation Site","href":"/Detox/docs/next/contributing/documentation","docId":"contributing/documentation"},{"type":"link","label":"Code of Conduct","href":"/Detox/docs/next/contributing/code-of-conduct","docId":"contributing/code-of-conduct"}]},"docs":{"api/actions":{"id":"api/actions","title":"Actions","description":"Detox uses matchers to find UI elements in your app and actions to simulate user interaction with those elements.","sidebar":"apiSidebar"},"api/copilot":{"id":"api/copilot","title":"Detox Copilot","description":"Detox Copilot is an AI-powered plugin that allows you to write Detox tests using natural language commands, powered by large language models (LLMs). It simplifies the process of writing end-to-end tests by translating human-readable instructions into Detox actions and assertions.","sidebar":"apiSidebar"},"api/device":{"id":"api/device","title":"Device","description":"The device object is globally available in every test file, unless you use exposeGlobals: false in the behavior config,","sidebar":"apiSidebar"},"api/expect":{"id":"api/expect","title":"Expect","description":"Detox uses matchers to match UI elements in your app and expectations to verify those elements are in the expected state.","sidebar":"apiSidebar"},"api/internals":{"id":"api/internals","title":"Internals API","description":"This section might be more volatile than the other ones, yet we\'ll do our best to adhere to Semantic Release standards even here.","sidebar":"apiSidebar"},"api/logger":{"id":"api/logger","title":"Logger","description":"Detox Logger API allows you to save your custom messages and events alongside the built-in ones.","sidebar":"apiSidebar"},"api/matchers":{"id":"api/matchers","title":"Matchers","description":"Detox uses matchers to match UI elements in your app.","sidebar":"apiSidebar"},"api/system":{"id":"api/system","title":"System","description":"System APIs allows you to interact with dialogs in the system-level (e.g. permissions, alerts, etc.).","sidebar":"apiSidebar"},"api/webviews":{"id":"api/webviews","title":"Web Views","description":"Web views are native components that render content not natively supported by the platform, like web pages or PDF documents.","sidebar":"apiSidebar"},"articles/design-principles":{"id":"articles/design-principles","title":"Design Principles","description":"Traditionally, end-to-end tests on mobile are riddled with inherent issues, making the testing process difficult and lowering ROI for developers. We believe that the only way to solve these issues at the core is by changing some of the basic principles of our approach.","sidebar":"apiSidebar"},"articles/how-detox-works":{"id":"articles/how-detox-works","title":"How Detox Works","description":"Detox is an end-to-end testing framework. This means it runs your app on an actual device/simulator and interacts with it just like a real user would. This type of testing can give a lot of confidence in your app and help automate a manual QA process.","sidebar":"apiSidebar"},"articles/third-party-drivers":{"id":"articles/third-party-drivers","title":"Third-Party Drivers","description":"Detox comes with built-in support for running on Android and iOS by choosing a driver type in your Detox configurations.","sidebar":"apiSidebar"},"cli/build":{"id":"cli/build","title":"detox build","description":"detox build [options]","sidebar":"apiSidebar"},"cli/build-framework-cache":{"id":"cli/build-framework-cache","title":"detox build-framework-cache","description":"MacOS only.","sidebar":"apiSidebar"},"cli/clean-framework-cache":{"id":"cli/clean-framework-cache","title":"detox clean-framework-cache","description":"MacOS only.","sidebar":"apiSidebar"},"cli/init":{"id":"cli/init","title":"detox init","description":"Creates a few template files in the current project directory to get you started with Detox:","sidebar":"apiSidebar"},"cli/overview":{"id":"cli/overview","title":"detox","description":"Detox CLI lets you operate Detox from command line.","sidebar":"apiSidebar"},"cli/rebuild-framework-cache":{"id":"cli/rebuild-framework-cache","title":"detox rebuild-framework-cache","description":"MacOS only.","sidebar":"apiSidebar"},"cli/recorder":{"id":"cli/recorder","title":"detox recorder","description":"Detox Recorder tool is deprecated due to shortage of human resources in Detox team.","sidebar":"apiSidebar"},"cli/reset-lock-file":{"id":"cli/reset-lock-file","title":"detox reset-lock-file","description":"Resets Detox lock file. The lock file contains information about busy and free devices, and this way we can ensure no device can be used simultaneously by multiple Detox test sessions.","sidebar":"apiSidebar"},"cli/run-server":{"id":"cli/run-server","title":"detox run-server","description":"This tool is useful mostly for contributing to the native codebase of Detox, not for the outside use.","sidebar":"apiSidebar"},"cli/start":{"id":"cli/start","title":"detox start","description":"detox start [options]","sidebar":"apiSidebar"},"cli/test":{"id":"cli/test","title":"detox test","description":"For the most part, detox test is a convenience method which converts CLI arguments to environment variables and","sidebar":"apiSidebar"},"config/apps":{"id":"config/apps","title":"Apps","description":"The format of Detox config allows you to define inside it multiple app configs in a key-value manner, i.e.:","sidebar":"apiSidebar"},"config/artifacts":{"id":"config/artifacts","title":"Artifacts","description":"This article is incomplete. We\'re looking forward to improve this article as soon as we have an opportunity to do so.","sidebar":"apiSidebar"},"config/behavior":{"id":"config/behavior","title":"Behavior","description":"If you need to tweak the flow of detox.init() or detox.cleanup() steps,","sidebar":"apiSidebar"},"config/devices":{"id":"config/devices","title":"Devices","description":"The format of Detox config allows you to define inside it multiple device configs in a key-value manner, i.e.:","sidebar":"apiSidebar"},"config/logger":{"id":"config/logger","title":"Logger","description":"The logger section controls how the printed logs are going to look like in your terminal window.","sidebar":"apiSidebar"},"config/overview":{"id":"config/overview","title":"Overview","description":"If you prefer to read TypeScript files instead of docs, feel free to browse through","sidebar":"apiSidebar"},"config/session":{"id":"config/session","title":"Session","description":"It is not recommended to customize this section unless you are debugging native code","sidebar":"apiSidebar"},"config/testRunner":{"id":"config/testRunner","title":"Test runner","description":"While Detox was created to test mobile applications, effectively it is not a test runner \u2013 instead, it runs on top of a test runner. There are many third-party solutions for running tests, so we\'re happy to not reinvent the wheel and to devote our time to the mobile domain itself.","sidebar":"apiSidebar"},"contributing":{"id":"contributing","title":"Contributing to Detox","description":"Detox, an open-source project, greatly values community involvement. Whether you\'re a mobile developer, QA specialist, or an open source enthusiast, your contribution could significantly enhance the reliability, user experience, and development process of mobile applications.","sidebar":"contributeSidebar"},"contributing/code-of-conduct":{"id":"contributing/code-of-conduct","title":"Code of Conduct","description":"This Code of Conduct is adapted from the [Contributor Covenant],","sidebar":"contributeSidebar"},"contributing/code/building-and-testing":{"id":"contributing/code/building-and-testing","title":"Building and Testing","description":"Our JavaScript code is thoroughly verified with comprehensive unit tests, complemented by integration tests.","sidebar":"contributeSidebar"},"contributing/code/example-projects":{"id":"contributing/code/example-projects","title":"Example Projects","description":"Explore various example projects hosted in this monorepo to understand real-world usage and testing with Detox.","sidebar":"contributeSidebar"},"contributing/code/overview":{"id":"contributing/code/overview","title":"Code Changes Overview","description":"Welcome to the code changes section! As a contributor, it\'s essential to understand the project\'s goals and adhere to its code of conduct. Before contributing, please review any existing issues related to your work, ensure your code is well-documented, and has adequate test coverage. It\'s also important that your code is compatible with the project\'s supported platforms and their versions.","sidebar":"contributeSidebar"},"contributing/code/reviewing-pull-requests":{"id":"contributing/code/reviewing-pull-requests","title":"Review a Pull Request","description":"Reviewing a PR is an important part of the contribution process. It ensures the quality of the codebase and provides an opportunity for the community to collaborate and learn from each other.","sidebar":"contributeSidebar"},"contributing/code/setting-up-the-dev-environment":{"id":"contributing/code/setting-up-the-dev-environment","title":"Setting up the Development Environment","description":"This document guides you through setting up your development environment to start contributing to our codebase.","sidebar":"contributeSidebar"},"contributing/code/submitting-pull-requests":{"id":"contributing/code/submitting-pull-requests","title":"Submitting Pull Requests","description":"Before creating a PR, it\'s recommended to consult with the Detox collaborators. Request a design review or assistance with planning the tests to ensure alignment with project goals.","sidebar":"contributeSidebar"},"contributing/documentation":{"id":"contributing/documentation","title":"Documentation Site","description":"Contributions towards enhancing our documentation are highly valued in the Detox community.","sidebar":"contributeSidebar"},"contributing/feature-requests":{"id":"contributing/feature-requests","title":"Feedback and Suggestions","description":"Open dialogue and feedback, particularly feature requests, play an invaluable role in open-source communities like Detox. They provide insights into user preferences and requirements, aiding in the refinement and enhancement of the project.","sidebar":"contributeSidebar"},"contributing/questions/answering-questions":{"id":"contributing/questions/answering-questions","title":"Answering Questions","description":"Contributing answers is an invaluable part of supporting the Detox community. By sharing your knowledge and experience, you help others learn and grow, and you also contribute to enhancing Detox for the entire community.","sidebar":"contributeSidebar"},"contributing/questions/asking-questions":{"id":"contributing/questions/asking-questions","title":"Asking Questions","description":"Posting queries on public forums increases visibility and chances of getting an answer, and it also helps others with similar issues. However, it\'s essential to ask questions the right way to get the right answers.","sidebar":"contributeSidebar"},"contributing/reporting-bugs":{"id":"contributing/reporting-bugs","title":"Reporting Bugs","description":"Encountering a bug? Your detailed report is key for us to identify and rectify the issue.","sidebar":"contributeSidebar"},"copilot/best-practices":{"id":"copilot/best-practices","title":"Detox Copilot Best Practices","description":"Detox Copilot allows you to write tests using natural language commands. Each step corresponds to a specific action or assertion within your app. In case you\'re wondering how to make the most out of this feature, here are some best practices to follow when writing your Copilot intents.","sidebar":"tutorialSidebar"},"copilot/technical-overview":{"id":"copilot/technical-overview","title":"Technical Overview","description":"Detox Copilot integrates seamlessly with your testing environment by combining natural language processing with Detox\'s robust testing capabilities.","sidebar":"tutorialSidebar"},"copilot/testing-with-copilot":{"id":"copilot/testing-with-copilot","title":"Natural Language Testing with Detox Copilot","description":"In this tutorial, we\'ll explore how to use Detox Copilot to write end-to-end tests using natural language commands. Detox Copilot leverages large language models (LLMs) to translate human-readable instructions into Detox actions and assertions, making test writing more intuitive and accessible.","sidebar":"tutorialSidebar"},"demo":{"id":"demo","title":"Internal Demo Page for Styling","description":"This page is for internal use only. If you are a contributor to the Detox project, you can use this page to test your changes to the website documentation pages"},"guide/android-dev-env":{"id":"guide/android-dev-env","title":"Setting Up an Android Development & Testing Environment","description":"This guide provides some core practices to follow in setting up a stable, reliable environment for running automated UI tests using Android emulators (using Detox, in particular) \u2013 be it on a personal, local computer, or a powerful CI machine.","sidebar":"tutorialSidebar"},"guide/cucumber-js-integration":{"id":"guide/cucumber-js-integration","title":"Cucumber.js Integration","description":"This is an article generously contributed by the community.","sidebar":"tutorialSidebar"},"guide/developing-while-writing-tests":{"id":"guide/developing-while-writing-tests","title":"Developing Your App While Writing Tests","description":"If your app requires active development, such as adding testID fields for tests, this is a good workflow. It allows you to work both on your app and your tests at the same time.","sidebar":"tutorialSidebar"},"guide/genymotion-saas":{"id":"guide/genymotion-saas","title":"Using Genymotion SaaS","description":"As the number of your end-to-end tests grows, the overall test session duration might easily surpass an hour or two.","sidebar":"tutorialSidebar"},"guide/investigating-test-failure":{"id":"guide/investigating-test-failure","title":"Investigating Failures","description":"There are a few tricks and tools that can help you to understand the reason for test failures, even before you resort to debugging.","sidebar":"tutorialSidebar"},"guide/launch-args":{"id":"guide/launch-args","title":"Using Launch Arguments","description":"In Detox, the app under test is launched via an explicit call to device.launchApp(). Through various means, Detox enables specifying a set of user-defined arguments (key-value pairs) to be passed on to the app when launched, so as to make them available inside the launched app itself at runtime (both on the native side, and - if applicable, on the JavaScript side).","sidebar":"tutorialSidebar"},"guide/migration":{"id":"guide/migration","title":"Migration Guide","description":"We are improving Detox API as we go along, sometimes these changes require us to break the API in order for it to make more sense. These migration guides refer to breaking changes. If a newer version has no entries in this document, it means it does not require special migration steps. Refer to the release notes of the latter builds to learn about their improvements and changes.","sidebar":"tutorialSidebar"},"guide/mocking":{"id":"guide/mocking","title":"Mocking","description":"This article previously focused on the older React Native versions (<0.59), so if you need to access it, follow this Git history link.","sidebar":"tutorialSidebar"},"guide/mocking-open-with-url":{"id":"guide/mocking-open-with-url","title":"Mocking Open With URL (Deep Links)","description":"You can mock opening the app from URL to test your app\u2019s deep link handling mechanism.","sidebar":"tutorialSidebar"},"guide/mocking-user-activity":{"id":"guide/mocking-user-activity","title":"Mocking User Activity","description":"Detox supports mocking user activity for iOS apps.","sidebar":"tutorialSidebar"},"guide/mocking-user-notifications":{"id":"guide/mocking-user-notifications","title":"Mocking User Notifications","description":"Detox supports mocking user notifications.","sidebar":"tutorialSidebar"},"guide/parallel-test-execution":{"id":"guide/parallel-test-execution","title":"Parallel Test Execution","description":"Detox comes out of the box with multi-worker support thanks to (Jest\'s feature, etc.).","sidebar":"tutorialSidebar"},"guide/proguard-configuration":{"id":"guide/proguard-configuration","title":"ProGuard configuration","description":"You can skip this guide if you are working solely with debug builds (android.emu.debug, etc.),","sidebar":"tutorialSidebar"},"guide/taking-screenshots":{"id":"guide/taking-screenshots","title":"Taking Screenshots","description":"Detox supports taking in-test screenshots of the device, making the result immediately available in the form of an image file.","sidebar":"tutorialSidebar"},"guide/test-id":{"id":"guide/test-id","title":"Adding test ID\'s to your components","description":"This guide was written primarily for React Native apps, but it can be generalized for testing any app, including native apps.","sidebar":"tutorialSidebar"},"guide/testing-webviews":{"id":"guide/testing-webviews","title":"Testing WebViews","description":"In this tutorial, we\'ll go over how you can test a WebView in React Native applications using Detox. We will cover how to engage with web elements in both single and multi WebView scenarios, apply matchers, and execute actions.","sidebar":"tutorialSidebar"},"guide/typescript":{"id":"guide/typescript","title":"Using TypeScript","description":"This guide assumes you are using Detox\'s default test runner integration with Jest.","sidebar":"tutorialSidebar"},"guide/uninstalling":{"id":"guide/uninstalling","title":"Uninstalling Detox","description":"Installing and using Detox implies certain side effects: cloned devices, cache files, state files, temporary files, etc.","sidebar":"tutorialSidebar"},"introduction/debugging":{"id":"introduction/debugging","title":"How to Debug","description":"Detox Tests","sidebar":"tutorialSidebar"},"introduction/environment-setup":{"id":"introduction/environment-setup","title":"Environment Setup","description":"The Introduction section walks you through setting up Detox in your project, one step at a time.","sidebar":"tutorialSidebar"},"introduction/getting-started":{"id":"introduction/getting-started","title":"Getting Started","description":"Before You Start","sidebar":"tutorialSidebar"},"introduction/preparing-for-ci":{"id":"introduction/preparing-for-ci","title":"Preparing for CI","description":"This guide is outdated.","sidebar":"tutorialSidebar"},"introduction/project-setup":{"id":"introduction/project-setup","title":"Project Setup","description":"This article mainly covers standard React Native projects.","sidebar":"tutorialSidebar"},"introduction/your-first-test":{"id":"introduction/your-first-test","title":"Your First Test","description":"The previous articles have addressed the environment and project setup, and now it is time for writing","sidebar":"tutorialSidebar"},"troubleshooting/artifacts":{"id":"troubleshooting/artifacts","title":"Artifacts","description":"Video Recording Issues on CI"},"troubleshooting/building-the-app":{"id":"troubleshooting/building-the-app","title":"Dealing With Problems With Building the App & Detox","description":"This page is about issues related to building the app, typically triggered when running detox build (and not detox test, for example).","sidebar":"tutorialSidebar"},"troubleshooting/flakiness":{"id":"troubleshooting/flakiness","title":"Dealing With Flakiness in Tests","description":"What is a flaky test?","sidebar":"tutorialSidebar"},"troubleshooting/running-tests":{"id":"troubleshooting/running-tests","title":"Dealing With Problems With Running Tests","description":"This page is about issues related to executing your Detox tests, typically triggered when running detox test (and not detox build, for example).","sidebar":"tutorialSidebar"},"troubleshooting/synchronization":{"id":"troubleshooting/synchronization","title":"Dealing With Synchronization Issues in Tests","description":"Traditionally, one of the most difficult aspects of E2E testing is synchronizing the test scenario with the app. Complex operations inside the app (like accessing servers or performing animations) often take variable amount of time to complete. We can\u2019t continue the test until they\u2019ve completed. How can we synchronize the test with these operations?","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/95ce696f.592acc49.js b/assets/js/95ce696f.592acc49.js new file mode 100644 index 0000000000..84c9c581a6 --- /dev/null +++ b/assets/js/95ce696f.592acc49.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6118],{15680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>h});var a=r(96540);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function l(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=a.createContext({}),c=function(e){var t=a.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=c(e.components);return a.createElement(s.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var r=e.components,n=e.mdxType,o=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),m=c(r),u=n,h=m["".concat(s,".").concat(u)]||m[u]||d[u]||o;return r?a.createElement(h,l(l({ref:t},p),{},{components:r})):a.createElement(h,l({ref:t},p))}));function h(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=r.length,l=new Array(o);l[0]=u;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[m]="string"==typeof e?e:n,l[1]=i;for(var c=2;c{r.r(t),r.d(t,{assets:()=>ge,contentTitle:()=>ye,default:()=>we,frontMatter:()=>xe,metadata:()=>fe,toc:()=>ve});var a,n,o,l,i,s,c,p,m,d,u,h,x,y,f,g,v,E,b,w,k,N,C,O,D,M,P,z,j,T,L,S,I,A,R,B,G,F,U,H,W,X,V,Y,q,J,K,Q,Z,$,_,ee,te,re,ae,ne,oe,le,ie,se,ce,pe=r(58168),me=r(96540),de=r(15680);function ue(){return ue=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:r,...pe}=e;return me.createElement("svg",ue({width:800,height:900,xmlns:"http://www.w3.org/2000/svg","aria-labelledby":r},pe),t?me.createElement("title",{id:r},t):null,a||(a=me.createElement("defs",null,me.createElement("marker",{id:"arrowhead",markerWidth:10,markerHeight:7,refX:5,refY:3.5,orient:"auto"},me.createElement("path",{fill:"#333",d:"m0 0 10 3.5L0 7z"})))),n||(n=me.createElement("style",null,".step-text,.sub-text{font-size:14px;text-anchor:middle;fill:#333;font-family:Arial,sans-serif}.sub-text{font-size:12px;fill:#555}")),o||(o=me.createElement("rect",{x:350,y:20,width:100,height:40,fill:"#d1eaff",stroke:"#333",rx:10,ry:10})),l||(l=me.createElement("text",{x:400,y:45,className:"step-text"},"Start")),i||(i=me.createElement("rect",{x:300,y:80,width:200,height:50,fill:"#e8f5e9",stroke:"#333",rx:10,ry:10})),s||(s=me.createElement("text",{x:400,y:105,className:"step-text"},"Gather Context")),c||(c=me.createElement("text",{x:400,y:120,className:"sub-text"},"(App's UI State)")),p||(p=me.createElement("rect",{x:300,y:160,width:200,height:50,fill:"#fff8e1",stroke:"#333",rx:10,ry:10})),m||(m=me.createElement("text",{x:400,y:185,className:"step-text"},"Check Cache")),d||(d=me.createElement("text",{x:400,y:200,className:"sub-text"},"(Based on intent)")),u||(u=me.createElement("rect",{x:300,y:230,width:200,height:50,fill:"#fff",stroke:"#333",rx:10,ry:10})),h||(h=me.createElement("text",{x:400,y:260,className:"step-text"},"Result in Cache?")),x||(x=me.createElement("rect",{x:50,y:320,width:200,height:50,fill:"#fff8e1",stroke:"#333",rx:10,ry:10})),y||(y=me.createElement("text",{x:150,y:345,className:"step-text"},"Retrieve Result")),f||(f=me.createElement("text",{x:150,y:360,className:"sub-text"},"(From Cache)")),g||(g=me.createElement("rect",{x:50,y:390,width:200,height:50,fill:"#c8e6c9",stroke:"#333",rx:10,ry:10})),v||(v=me.createElement("text",{x:150,y:415,className:"step-text"},"Execute Cached")),E||(E=me.createElement("text",{x:150,y:430,className:"step-text"},"Detox Code")),b||(b=me.createElement("rect",{x:50,y:460,width:200,height:50,fill:"#f3e5f5",stroke:"#333",rx:10,ry:10})),w||(w=me.createElement("text",{x:150,y:485,className:"step-text"},"Provide Feedback")),k||(k=me.createElement("text",{x:150,y:500,className:"sub-text"},"(Error / Result)")),N||(N=me.createElement("rect",{x:550,y:320,width:200,height:50,fill:"#ffebee",stroke:"#333",rx:10,ry:10})),C||(C=me.createElement("text",{x:650,y:345,className:"step-text"},"Create LLM Prompt")),O||(O=me.createElement("text",{x:650,y:360,className:"sub-text"},"(Based on Context and Intent)")),D||(D=me.createElement("rect",{x:550,y:390,width:200,height:50,fill:"#d4fffc",stroke:"#333",rx:10,ry:10})),M||(M=me.createElement("text",{x:650,y:415,className:"step-text"},"Generate Detox Code")),P||(P=me.createElement("text",{x:650,y:430,className:"sub-text"},"(Using LLM)")),z||(z=me.createElement("rect",{x:550,y:460,width:200,height:50,fill:"#c8e6c9",stroke:"#333",rx:10,ry:10})),j||(j=me.createElement("text",{x:650,y:485,className:"step-text"},"Execute Generated")),T||(T=me.createElement("text",{x:650,y:500,className:"step-text"},"Detox Code")),L||(L=me.createElement("rect",{x:550,y:530,width:200,height:50,fill:"#fff8e1",stroke:"#333",rx:10,ry:10})),S||(S=me.createElement("text",{x:650,y:560,className:"step-text"},"Cache Generated Code")),I||(I=me.createElement("rect",{x:550,y:600,width:200,height:50,fill:"#f3e5f5",stroke:"#333",rx:10,ry:10})),A||(A=me.createElement("text",{x:650,y:625,className:"step-text"},"Provide Feedback")),R||(R=me.createElement("text",{x:650,y:640,className:"sub-text"},"(Error / Result)")),B||(B=me.createElement("rect",{x:300,y:680,width:200,height:50,fill:"#fff",stroke:"#333",rx:10,ry:10})),G||(G=me.createElement("text",{x:400,y:710,className:"step-text"},"Next Step?")),F||(F=me.createElement("rect",{x:350,y:770,width:100,height:40,fill:"#d1eaff",stroke:"#333",rx:10,ry:10})),U||(U=me.createElement("text",{x:400,y:795,className:"step-text"},"End")),H||(H=me.createElement("path",{stroke:"#333",markerEnd:"url(#arrowhead)",d:"M400 60v20"})),W||(W=me.createElement("path",{stroke:"#333",markerEnd:"url(#arrowhead)",d:"M400 130v30"})),X||(X=me.createElement("path",{stroke:"#333",markerEnd:"url(#arrowhead)",d:"M400 210v20"})),V||(V=me.createElement("path",{stroke:"#333",d:"M300 260H150"})),Y||(Y=me.createElement("path",{stroke:"#333",markerEnd:"url(#arrowhead)",d:"M150 260v60"})),q||(q=me.createElement("text",{x:275,y:250,fontSize:12,fill:"#333"},"Yes")),J||(J=me.createElement("path",{stroke:"#333",d:"M500 260h150"})),K||(K=me.createElement("path",{stroke:"#333",markerEnd:"url(#arrowhead)",d:"M650 260v60"})),Q||(Q=me.createElement("text",{x:525,y:250,fontSize:12,fill:"#333"},"No")),Z||(Z=me.createElement("path",{stroke:"#333",markerEnd:"url(#arrowhead)",d:"M150 370v20"})),$||($=me.createElement("path",{stroke:"#333",markerEnd:"url(#arrowhead)",d:"M150 440v20"})),_||(_=me.createElement("path",{stroke:"#333",d:"M250 490h150"})),ee||(ee=me.createElement("path",{stroke:"#333",markerEnd:"url(#arrowhead)",d:"M400 490v190"})),te||(te=me.createElement("path",{stroke:"#333",markerEnd:"url(#arrowhead)",d:"M650 370v20"})),re||(re=me.createElement("path",{stroke:"#333",markerEnd:"url(#arrowhead)",d:"M650 440v20"})),ae||(ae=me.createElement("path",{stroke:"#333",markerEnd:"url(#arrowhead)",d:"M650 510v20"})),ne||(ne=me.createElement("path",{stroke:"#333",markerEnd:"url(#arrowhead)",d:"M650 580v20"})),oe||(oe=me.createElement("path",{stroke:"#333",d:"M550 630H400"})),le||(le=me.createElement("path",{stroke:"#333",markerEnd:"url(#arrowhead)",d:"M400 730v40"})),ie||(ie=me.createElement("text",{x:410,y:760,fontSize:12,fill:"#333"},"No")),se||(se=me.createElement("path",{d:"M300 710c-50 0-50-620 100-620",fill:"none",stroke:"#333",markerEnd:"url(#arrowhead)"})),ce||(ce=me.createElement("text",{x:260,y:400,fontSize:12,fill:"#333"},"Yes")))},xe={},ye="Technical Overview",fe={unversionedId:"copilot/technical-overview",id:"copilot/technical-overview",title:"Technical Overview",description:"Detox Copilot integrates seamlessly with your testing environment by combining natural language processing with Detox's robust testing capabilities.",source:"@site/../docs/copilot/technical-overview.mdx",sourceDirName:"copilot",slug:"/copilot/technical-overview",permalink:"/Detox/docs/next/copilot/technical-overview",draft:!1,editUrl:"https://github.com/wix/Detox/edit/master/docs/../docs/copilot/technical-overview.mdx",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Detox Copilot Best Practices",permalink:"/Detox/docs/next/copilot/best-practices"},next:{title:"Dealing With Problems With Building the App & Detox",permalink:"/Detox/docs/next/troubleshooting/building-the-app"}},ge={},ve=[{value:"Building Blocks of Detox Copilot",id:"building-blocks-of-detox-copilot",level:2},{value:"Copilot's Execution Flow",id:"copilots-execution-flow",level:2},{value:"Performance Optimization",id:"performance-optimization",level:3}],Ee={toc:ve},be="wrapper";function we(e){let{components:t,...r}=e;return(0,de.yg)(be,(0,pe.A)({},Ee,r,{components:t,mdxType:"MDXLayout"}),(0,de.yg)("h1",{id:"technical-overview"},"Technical Overview"),(0,de.yg)("p",null,"Detox Copilot integrates seamlessly with your testing environment by combining natural language processing with Detox's robust testing capabilities."),(0,de.yg)("h2",{id:"building-blocks-of-detox-copilot"},"Building Blocks of Detox Copilot"),(0,de.yg)("p",null,"To enable Detox Copilot to work harmoniously with Detox and your app, it relies on several building blocks:"),(0,de.yg)("ul",null,(0,de.yg)("li",{parentName:"ul"},(0,de.yg)("strong",{parentName:"li"},"Dynamic Code Generation"),": Copilot generates Detox code on-the-fly to perform actions or assertions based on your instructions."),(0,de.yg)("li",{parentName:"ul"},(0,de.yg)("strong",{parentName:"li"},"Visual Analysis"),": Copilot can analyze the app's screen to verify the presence of specific elements or text, enabling assertions beyond standard UI checks."),(0,de.yg)("li",{parentName:"ul"},(0,de.yg)("strong",{parentName:"li"},"App View Hierarchy"),": Detox generates an XML representation of the app's view hierarchy, helping Copilot interact with all UI elements, even those not directly visible."),(0,de.yg)("li",{parentName:"ul"},(0,de.yg)("strong",{parentName:"li"},"Snapshot Images"),": Optional snapshot images provide Copilot with visual context for more precise understanding and analysis."),(0,de.yg)("li",{parentName:"ul"},(0,de.yg)("strong",{parentName:"li"},"Injected Test IDs"),": When necessary, Detox injects unique test IDs to ensure reliable access to UI elements."),(0,de.yg)("li",{parentName:"ul"},(0,de.yg)("strong",{parentName:"li"},"Caching Mechanism"),": Copilot caches execution results to optimize performance and reduce unnecessary LLM calls (see ",(0,de.yg)("a",{parentName:"li",href:"#performance-optimization"},"Performance Optimization"),")."),(0,de.yg)("li",{parentName:"ul"},(0,de.yg)("strong",{parentName:"li"},"Test Context Awareness"),": Copilot maintains awareness of previously executed steps, ensuring continuity and readability in the test flow.")),(0,de.yg)("h2",{id:"copilots-execution-flow"},"Copilot's Execution Flow"),(0,de.yg)(he,{style:{backgroundColor:"#f5f5f5",borderRadius:"10px"},mdxType:"OverviewSVG"}),(0,de.yg)("p",null,"The execution flow of Detox Copilot can be broken down into six main steps:"),(0,de.yg)("ol",null,(0,de.yg)("li",{parentName:"ol"},(0,de.yg)("strong",{parentName:"li"},"Gather Context"),": Collect relevant app state, view hierarchy, and previous step results."),(0,de.yg)("li",{parentName:"ol"},(0,de.yg)("strong",{parentName:"li"},"Interpret Intent"),": Use the LLM to interpret the natural language instruction."),(0,de.yg)("li",{parentName:"ol"},(0,de.yg)("strong",{parentName:"li"},"Generate Code"),": Create the appropriate Detox commands."),(0,de.yg)("li",{parentName:"ol"},(0,de.yg)("strong",{parentName:"li"},"Execute Action"),": Run the generated Detox code."),(0,de.yg)("li",{parentName:"ol"},(0,de.yg)("strong",{parentName:"li"},"Cache Results"),": Store execution results to optimize future runs."),(0,de.yg)("li",{parentName:"ol"},(0,de.yg)("strong",{parentName:"li"},"Provide Feedback"),": Return values or confirm actions for subsequent steps.")),(0,de.yg)("p",null,"By combining these steps, Detox Copilot effectively bridges the gap between natural language instructions and concrete test actions."),(0,de.yg)("h3",{id:"performance-optimization"},"Performance Optimization"),(0,de.yg)("p",null,"Detox Copilot is designed to avoid unnecessary calls to the LLM service and optimize performance using static cache that is based on the current state of the app.\nThis minimizes the number of calls to the LLM service and reduces latency.\nHowever, you can optimize your ",(0,de.yg)("inlineCode",{parentName:"p"},"PromptHandler")," implementation to reduce latency and improve response times (e.g., by reducing the image size or implementing a server-side cache).\nWe have plans to optimize even further by introducing more advanced caching mechanisms for better performance."))}we.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a074e23a.5255be3b.js b/assets/js/a074e23a.5255be3b.js new file mode 100644 index 0000000000..bb59343fe3 --- /dev/null +++ b/assets/js/a074e23a.5255be3b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7484],{15680:(e,t,n)=>{n.d(t,{xA:()=>c,yg:()=>y});var a=n(96540);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),p=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=p(e.components);return a.createElement(s.Provider,{value:t},e.children)},g="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),g=p(n),m=r,y=g["".concat(s,".").concat(m)]||g[m]||u[m]||i;return n?a.createElement(y,o(o({ref:t},c),{},{components:n})):a.createElement(y,o({ref:t},c))}));function y(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,o=new Array(i);o[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[g]="string"==typeof e?e:r,o[1]=l;for(var p=2;p{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var a=n(58168),r=(n(96540),n(15680));const i={},o="Detox Copilot Best Practices",l={unversionedId:"copilot/best-practices",id:"copilot/best-practices",title:"Detox Copilot Best Practices",description:"Detox Copilot allows you to write tests using natural language commands. Each step corresponds to a specific action or assertion within your app. In case you're wondering how to make the most out of this feature, here are some best practices to follow when writing your Copilot intents.",source:"@site/../docs/copilot/best-practices.md",sourceDirName:"copilot",slug:"/copilot/best-practices",permalink:"/Detox/docs/next/copilot/best-practices",draft:!1,editUrl:"https://github.com/wix/Detox/edit/master/docs/../docs/copilot/best-practices.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Natural Language Testing with Detox Copilot",permalink:"/Detox/docs/next/copilot/testing-with-copilot"},next:{title:"Technical Overview",permalink:"/Detox/docs/next/copilot/technical-overview"}},s={},p=[{value:"Step-by-Step Instructions",id:"step-by-step-instructions",level:2},{value:"Be Specific and Clear",id:"be-specific-and-clear",level:2},{value:"One Action per Step",id:"one-action-per-step",level:2},{value:"Use Exact Labels",id:"use-exact-labels",level:2},{value:"Keep Assertions Simple",id:"keep-assertions-simple",level:2},{value:"Leverage Visual Context",id:"leverage-visual-context",level:2},{value:"Avoid Ambiguity",id:"avoid-ambiguity",level:2},{value:"General Recommendations",id:"general-recommendations",level:2}],c={toc:p},g="wrapper";function u(e){let{components:t,...n}=e;return(0,r.yg)(g,(0,a.A)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.yg)("h1",{id:"detox-copilot-best-practices"},"Detox Copilot Best Practices"),(0,r.yg)("p",null,"Detox Copilot allows you to write tests using natural language commands. Each step corresponds to a specific action or assertion within your app. In case you're wondering how to make the most out of this feature, here are some best practices to follow when writing your Copilot intents."),(0,r.yg)("h2",{id:"step-by-step-instructions"},"Step-by-Step Instructions"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},"Write Sequential Steps"),": Describe your test steps in a clear and sequential manner."),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},"Example"),":")),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-javascript"},"it('should navigate and add a product to the cart', async () => {\n await copilot.perform(\n 'Navigate to the \"Products\" page',\n 'Tap on the \"Add to Cart\" button for the first product',\n 'Verify that the \"Added to Cart\" pop-up is displayed'\n );\n});\n")),(0,r.yg)("h2",{id:"be-specific-and-clear"},"Be Specific and Clear"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},"Provide Clear Instructions"),": The clearer your instructions, the better Copilot can interpret them."),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},"Example"),":",(0,r.yg)("ul",{parentName:"li"},(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},"Good"),": ",(0,r.yg)("inlineCode",{parentName:"li"},"'Tap on the \"Login\" button'")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},"Better"),": ",(0,r.yg)("inlineCode",{parentName:"li"},"'Tap on the \"Login\" button located at the top right corner'"))))),(0,r.yg)("h2",{id:"one-action-per-step"},"One Action per Step"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},(0,r.yg)("strong",{parentName:"p"},"Avoid Combining Multiple Actions"),": Keep each step focused on a single action or assertion.")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("p",{parentName:"li"},(0,r.yg)("strong",{parentName:"p"},"Example"),":"),(0,r.yg)("ul",{parentName:"li"},(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},"Avoid"),": ",(0,r.yg)("inlineCode",{parentName:"li"},"'Tap on the \"Login\" button and enter credentials'")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},"Prefer"),":")),(0,r.yg)("pre",{parentName:"li"},(0,r.yg)("code",{parentName:"pre",className:"language-javascript"},'\'Tap on the "Login" button\',\n\'Enter "user@example.com" into the "Email" field\'\n')))),(0,r.yg)("h2",{id:"use-exact-labels"},"Use Exact Labels"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},"Refer to UI Elements Precisely"),": Use the exact text or identifiers as they appear in the app."),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},"Example"),":",(0,r.yg)("ul",{parentName:"li"},(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},"Good"),": ",(0,r.yg)("inlineCode",{parentName:"li"},'\'Enter "password123" into the "Password" field\'')),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},"Avoid"),": ",(0,r.yg)("inlineCode",{parentName:"li"},"'Enter password into its field'"))))),(0,r.yg)("h2",{id:"keep-assertions-simple"},"Keep Assertions Simple"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},"Focus on Specific Outcomes"),": Make assertions straightforward and specific."),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},"Example"),":",(0,r.yg)("ul",{parentName:"li"},(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},"Good"),": ",(0,r.yg)("inlineCode",{parentName:"li"},"'Verify that the \"Welcome\" message is displayed'")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},"Avoid"),": ",(0,r.yg)("inlineCode",{parentName:"li"},"'Check if the welcome message appears correctly on the screen'"))))),(0,r.yg)("h2",{id:"leverage-visual-context"},"Leverage Visual Context"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},"Utilize Visual Descriptions"),": If your LLM supports image snapshots, include visual context in your intents."),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},"Example"),": ",(0,r.yg)("inlineCode",{parentName:"li"},"'Ensure the profile picture is visible at the top of the screen'"))),(0,r.yg)("h2",{id:"avoid-ambiguity"},"Avoid Ambiguity"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},"Specify Elements Precisely"),": If multiple elements could match, provide additional details."),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},"Example"),":",(0,r.yg)("ul",{parentName:"li"},(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},"Ambiguous"),": ",(0,r.yg)("inlineCode",{parentName:"li"},"'Tap on the \"Submit\" button'")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},"Specific"),": ",(0,r.yg)("inlineCode",{parentName:"li"},"'Tap on the \"Submit\" button in the registration form'"))))),(0,r.yg)("h2",{id:"general-recommendations"},"General Recommendations"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},"Flexibility"),": While it's best to provide clear instructions, Copilot is designed to interpret a variety of phrasing. Different approaches can work, and you are encouraged to experiment."),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},"Feedback Loop"),": Observe how Copilot interprets your instructions and adjust accordingly."),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("strong",{parentName:"li"},"Model Selection"),": Choose an LLM model that best suits your application's complexity and language requirements. We recommend advanced models like ",(0,r.yg)("strong",{parentName:"li"},"Sonnet 3.5")," or ",(0,r.yg)("strong",{parentName:"li"},"GPT-4o")," for better performance.")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/af952e90.98ab7f12.js b/assets/js/af952e90.0cb4ee98.js similarity index 70% rename from assets/js/af952e90.98ab7f12.js rename to assets/js/af952e90.0cb4ee98.js index 2b10d5830c..e7d185d2a6 100644 --- a/assets/js/af952e90.98ab7f12.js +++ b/assets/js/af952e90.0cb4ee98.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7360],{15680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>m});var o=r(96540);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function a(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var l=o.createContext({}),c=function(e){var t=o.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},u=function(e){var t=c(e.components);return o.createElement(l.Provider,{value:t},e.children)},p="mdxType",g={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},d=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),p=c(r),d=n,m=p["".concat(l,".").concat(d)]||p[d]||g[d]||i;return r?o.createElement(m,a(a({ref:t},u),{},{components:r})):o.createElement(m,a({ref:t},u))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,a=new Array(i);a[0]=d;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:n,a[1]=s;for(var c=2;c{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>g,frontMatter:()=>i,metadata:()=>s,toc:()=>c});var o=r(58168),n=(r(96540),r(15680));const i={sidebar_label:"Overview"},a="Code Changes Overview",s={unversionedId:"contributing/code/overview",id:"contributing/code/overview",title:"Code Changes Overview",description:"Welcome to the code changes section! As a contributor, it's essential to understand the project's goals and adhere to its code of conduct. Before contributing, please review any existing issues related to your work, ensure your code is well-documented, and has adequate test coverage. It's also important that your code is compatible with the project's supported platforms and their versions.",source:"@site/../docs/contributing/code/overview.md",sourceDirName:"contributing/code",slug:"/contributing/code/overview",permalink:"/Detox/docs/next/contributing/code/overview",draft:!1,editUrl:"https://github.com/wix/Detox/edit/master/docs/../docs/contributing/code/overview.md",tags:[],version:"current",frontMatter:{sidebar_label:"Overview"},sidebar:"contributeSidebar",previous:{title:"Feedback and Suggestions",permalink:"/Detox/docs/next/contributing/feature-requests"},next:{title:"Setting up the Development Environment",permalink:"/Detox/docs/next/contributing/code/setting-up-the-dev-environment"}},l={},c=[{value:"Repository Structure",id:"repository-structure",level:2}],u={toc:c},p="wrapper";function g(e){let{components:t,...r}=e;return(0,n.yg)(p,(0,o.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.yg)("h1",{id:"code-changes-overview"},"Code Changes Overview"),(0,n.yg)("p",null,"Welcome to the code changes section! As a contributor, it's essential to understand the project's goals and adhere to its code of conduct. Before contributing, please review any existing issues related to your work, ensure your code is well-documented, and has adequate test coverage. It's also important that your code is compatible with the project's supported platforms and their versions."),(0,n.yg)("p",null,"Our collaborative workflow is simple:"),(0,n.yg)("ol",null,(0,n.yg)("li",{parentName:"ol"},(0,n.yg)("strong",{parentName:"li"},"Identify an Issue:")," If not exists already, create an issue for new features or bug reports, outlining your proposal or the identified problem."),(0,n.yg)("li",{parentName:"ol"},(0,n.yg)("strong",{parentName:"li"},"Propose a Solution:")," Open a pull request with a proposed solution to the issue. On complex issues, it's recommended to discuss your approach with the community and maintainers before submitting a PR."),(0,n.yg)("li",{parentName:"ol"},(0,n.yg)("strong",{parentName:"li"},"Engage in Review:")," A collaborator will review your pull request. Reviews from other contributors are also encouraged."),(0,n.yg)("li",{parentName:"ol"},(0,n.yg)("strong",{parentName:"li"},"Merge and Release:")," After the review, a collaborator will merge your contribution, typically releasing it in the next version of the project.")),(0,n.yg)("p",null,"We use ",(0,n.yg)("a",{parentName:"p",href:"https://github.com/wix/Detox"},"GitHub")," for managing pull requests, conducting code reviews, and tracking issues."),(0,n.yg)("p",null,"The code review process is central to our collaboration. Every contribution must go through a review before merging to maintain the quality of our codebase. As a contributor, being willing to discuss your work, respond to feedback, and work with the community is key to improving the project and creating a positive environment for all contributors."),(0,n.yg)("h2",{id:"repository-structure"},"Repository Structure"),(0,n.yg)("p",null,"Our GitHub repository is a monorepo, which means it contains multiple Detox-related projects and packages."),(0,n.yg)("p",null,"The main package is the Detox framework, which is the core of the project.\nIt contains the native code for iOS and Android, as well as the JavaScript code.\nThe other projects are the Detox CLI, the Detox test app, example apps, and the Detox documentation website."),(0,n.yg)("p",null,"Here's a high-level overview of the repository structure:"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"\ud83d\udcc1 ",(0,n.yg)("strong",{parentName:"li"},"detox-cli")," - The CLI for Detox (e.g., ",(0,n.yg)("inlineCode",{parentName:"li"},"detox init"),", ",(0,n.yg)("inlineCode",{parentName:"li"},"detox test"),", read more about our ",(0,n.yg)("a",{parentName:"li",href:"/Detox/docs/next/cli/overview"},"CLI docs"),")"),(0,n.yg)("li",{parentName:"ul"},"\ud83d\udcc1 ",(0,n.yg)("strong",{parentName:"li"},"detox-copilot")," - Detox plugin that leverages large language models (LLM) to seamlessly invoke Detox actions (",(0,n.yg)("strong",{parentName:"li"},"work in progress"),")"),(0,n.yg)("li",{parentName:"ul"},"\ud83d\udcc1 ",(0,n.yg)("strong",{parentName:"li"},"detox")," - The Detox framework",(0,n.yg)("ul",{parentName:"li"},(0,n.yg)("li",{parentName:"ul"},"\ud83d\udcc1 ",(0,n.yg)("strong",{parentName:"li"},"android")," - The Android native code, alongside native unit tests"),(0,n.yg)("li",{parentName:"ul"},"\ud83d\udcc1 ",(0,n.yg)("strong",{parentName:"li"},"ios")," - The iOS native code, including its native submodules (e.g., DetoxSync)"),(0,n.yg)("li",{parentName:"ul"},"\ud83d\udcc1 ",(0,n.yg)("strong",{parentName:"li"},"test")," - The Detox self-test app: A full-feature React Native app for end-to-end testing Detox itself",(0,n.yg)("ul",{parentName:"li"},(0,n.yg)("li",{parentName:"ul"},"\ud83d\udcc1 ",(0,n.yg)("strong",{parentName:"li"},"src")," - The app's JavaScript code"),(0,n.yg)("li",{parentName:"ul"},"\ud83d\udcc1 ",(0,n.yg)("strong",{parentName:"li"},"e2e")," - The Detox self-tests"),(0,n.yg)("li",{parentName:"ul"},"\ud83d\udcc1 ",(0,n.yg)("strong",{parentName:"li"},"integration")," - Detox integration self-tests"))),(0,n.yg)("li",{parentName:"ul"},"\ud83d\udcc1 ",(0,n.yg)("strong",{parentName:"li"},"local-cli")," - Local CLI commands for Detox development (e.g., ",(0,n.yg)("inlineCode",{parentName:"li"},"detox rebuild-framework-cache"),", which rebuilds the iOS framework)"),(0,n.yg)("li",{parentName:"ul"},"\ud83d\udcc1 ",(0,n.yg)("strong",{parentName:"li"},"runners")," - The Detox runners, which are used to run the tests"),(0,n.yg)("li",{parentName:"ul"},"\ud83d\udcc1 ",(0,n.yg)("strong",{parentName:"li"},"scripts")," - Scripts for building the framework for publishing"),(0,n.yg)("li",{parentName:"ul"},"\ud83d\udcc1 ",(0,n.yg)("strong",{parentName:"li"},"src")," - The JavaScript source code of Detox. The include bundled JavaScript unit tests"))),(0,n.yg)("li",{parentName:"ul"},"\ud83d\udcc1 ",(0,n.yg)("strong",{parentName:"li"},"website")," - The documentation website of Detox (read more about our ",(0,n.yg)("a",{parentName:"li",href:"/Detox/docs/next/contributing/documentation"},"documentation site docs"),")"),(0,n.yg)("li",{parentName:"ul"},"\ud83d\udcc1 ",(0,n.yg)("strong",{parentName:"li"},"docs")," - The documentation of Detox, written in Markdown and published on the website"),(0,n.yg)("li",{parentName:"ul"},"\ud83d\udcc1 ",(0,n.yg)("strong",{parentName:"li"},"examples")," - Example apps for Detox (for more information, check the ",(0,n.yg)("a",{parentName:"li",href:"/Detox/docs/next/contributing/code/example-projects"},"list of example projects"),")"),(0,n.yg)("li",{parentName:"ul"},"\ud83d\udcc1 ",(0,n.yg)("strong",{parentName:"li"},"scripts")," - Scripts for building and testing Detox")))}g.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7360],{15680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>m});var o=r(96540);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function a(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var l=o.createContext({}),c=function(e){var t=o.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},u=function(e){var t=c(e.components);return o.createElement(l.Provider,{value:t},e.children)},p="mdxType",g={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},d=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),p=c(r),d=n,m=p["".concat(l,".").concat(d)]||p[d]||g[d]||i;return r?o.createElement(m,a(a({ref:t},u),{},{components:r})):o.createElement(m,a({ref:t},u))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,a=new Array(i);a[0]=d;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:n,a[1]=s;for(var c=2;c{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>g,frontMatter:()=>i,metadata:()=>s,toc:()=>c});var o=r(58168),n=(r(96540),r(15680));const i={sidebar_label:"Overview"},a="Code Changes Overview",s={unversionedId:"contributing/code/overview",id:"contributing/code/overview",title:"Code Changes Overview",description:"Welcome to the code changes section! As a contributor, it's essential to understand the project's goals and adhere to its code of conduct. Before contributing, please review any existing issues related to your work, ensure your code is well-documented, and has adequate test coverage. It's also important that your code is compatible with the project's supported platforms and their versions.",source:"@site/../docs/contributing/code/overview.md",sourceDirName:"contributing/code",slug:"/contributing/code/overview",permalink:"/Detox/docs/next/contributing/code/overview",draft:!1,editUrl:"https://github.com/wix/Detox/edit/master/docs/../docs/contributing/code/overview.md",tags:[],version:"current",frontMatter:{sidebar_label:"Overview"},sidebar:"contributeSidebar",previous:{title:"Feedback and Suggestions",permalink:"/Detox/docs/next/contributing/feature-requests"},next:{title:"Setting up the Development Environment",permalink:"/Detox/docs/next/contributing/code/setting-up-the-dev-environment"}},l={},c=[{value:"Repository Structure",id:"repository-structure",level:2}],u={toc:c},p="wrapper";function g(e){let{components:t,...r}=e;return(0,n.yg)(p,(0,o.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,n.yg)("h1",{id:"code-changes-overview"},"Code Changes Overview"),(0,n.yg)("p",null,"Welcome to the code changes section! As a contributor, it's essential to understand the project's goals and adhere to its code of conduct. Before contributing, please review any existing issues related to your work, ensure your code is well-documented, and has adequate test coverage. It's also important that your code is compatible with the project's supported platforms and their versions."),(0,n.yg)("p",null,"Our collaborative workflow is simple:"),(0,n.yg)("ol",null,(0,n.yg)("li",{parentName:"ol"},(0,n.yg)("strong",{parentName:"li"},"Identify an Issue:")," If not exists already, create an issue for new features or bug reports, outlining your proposal or the identified problem."),(0,n.yg)("li",{parentName:"ol"},(0,n.yg)("strong",{parentName:"li"},"Propose a Solution:")," Open a pull request with a proposed solution to the issue. On complex issues, it's recommended to discuss your approach with the community and maintainers before submitting a PR."),(0,n.yg)("li",{parentName:"ol"},(0,n.yg)("strong",{parentName:"li"},"Engage in Review:")," A collaborator will review your pull request. Reviews from other contributors are also encouraged."),(0,n.yg)("li",{parentName:"ol"},(0,n.yg)("strong",{parentName:"li"},"Merge and Release:")," After the review, a collaborator will merge your contribution, typically releasing it in the next version of the project.")),(0,n.yg)("p",null,"We use ",(0,n.yg)("a",{parentName:"p",href:"https://github.com/wix/Detox"},"GitHub")," for managing pull requests, conducting code reviews, and tracking issues."),(0,n.yg)("p",null,"The code review process is central to our collaboration. Every contribution must go through a review before merging to maintain the quality of our codebase. As a contributor, being willing to discuss your work, respond to feedback, and work with the community is key to improving the project and creating a positive environment for all contributors."),(0,n.yg)("h2",{id:"repository-structure"},"Repository Structure"),(0,n.yg)("p",null,"Our GitHub repository is a monorepo, which means it contains multiple Detox-related projects and packages."),(0,n.yg)("p",null,"The main package is the Detox framework, which is the core of the project.\nIt contains the native code for iOS and Android, as well as the JavaScript code.\nThe other projects are the Detox CLI, the Detox test app, example apps, and the Detox documentation website."),(0,n.yg)("p",null,"Here's a high-level overview of the repository structure:"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"\ud83d\udcc1 ",(0,n.yg)("strong",{parentName:"li"},"detox-cli")," - The CLI for Detox (e.g., ",(0,n.yg)("inlineCode",{parentName:"li"},"detox init"),", ",(0,n.yg)("inlineCode",{parentName:"li"},"detox test"),", read more about our ",(0,n.yg)("a",{parentName:"li",href:"/Detox/docs/next/cli/overview"},"CLI docs"),")"),(0,n.yg)("li",{parentName:"ul"},"\ud83d\udcc1 ",(0,n.yg)("strong",{parentName:"li"},"detox")," - The Detox framework",(0,n.yg)("ul",{parentName:"li"},(0,n.yg)("li",{parentName:"ul"},"\ud83d\udcc1 ",(0,n.yg)("strong",{parentName:"li"},"android")," - The Android native code, alongside native unit tests"),(0,n.yg)("li",{parentName:"ul"},"\ud83d\udcc1 ",(0,n.yg)("strong",{parentName:"li"},"ios")," - The iOS native code, including its native submodules (e.g., DetoxSync)"),(0,n.yg)("li",{parentName:"ul"},"\ud83d\udcc1 ",(0,n.yg)("strong",{parentName:"li"},"test")," - The Detox self-test app: A full-feature React Native app for end-to-end testing Detox itself",(0,n.yg)("ul",{parentName:"li"},(0,n.yg)("li",{parentName:"ul"},"\ud83d\udcc1 ",(0,n.yg)("strong",{parentName:"li"},"src")," - The app's JavaScript code"),(0,n.yg)("li",{parentName:"ul"},"\ud83d\udcc1 ",(0,n.yg)("strong",{parentName:"li"},"e2e")," - The Detox self-tests"),(0,n.yg)("li",{parentName:"ul"},"\ud83d\udcc1 ",(0,n.yg)("strong",{parentName:"li"},"integration")," - Detox integration self-tests"))),(0,n.yg)("li",{parentName:"ul"},"\ud83d\udcc1 ",(0,n.yg)("strong",{parentName:"li"},"local-cli")," - Local CLI commands for Detox development (e.g., ",(0,n.yg)("inlineCode",{parentName:"li"},"detox rebuild-framework-cache"),", which rebuilds the iOS framework)"),(0,n.yg)("li",{parentName:"ul"},"\ud83d\udcc1 ",(0,n.yg)("strong",{parentName:"li"},"runners")," - The Detox runners, which are used to run the tests"),(0,n.yg)("li",{parentName:"ul"},"\ud83d\udcc1 ",(0,n.yg)("strong",{parentName:"li"},"scripts")," - Scripts for building the framework for publishing"),(0,n.yg)("li",{parentName:"ul"},"\ud83d\udcc1 ",(0,n.yg)("strong",{parentName:"li"},"src")," - The JavaScript source code of Detox. The include bundled JavaScript unit tests"))),(0,n.yg)("li",{parentName:"ul"},"\ud83d\udcc1 ",(0,n.yg)("strong",{parentName:"li"},"website")," - The documentation website of Detox (read more about our ",(0,n.yg)("a",{parentName:"li",href:"/Detox/docs/next/contributing/documentation"},"documentation site docs"),")"),(0,n.yg)("li",{parentName:"ul"},"\ud83d\udcc1 ",(0,n.yg)("strong",{parentName:"li"},"docs")," - The documentation of Detox, written in Markdown and published on the website"),(0,n.yg)("li",{parentName:"ul"},"\ud83d\udcc1 ",(0,n.yg)("strong",{parentName:"li"},"examples")," - Example apps for Detox (for more information, check the ",(0,n.yg)("a",{parentName:"li",href:"/Detox/docs/next/contributing/code/example-projects"},"list of example projects"),")"),(0,n.yg)("li",{parentName:"ul"},"\ud83d\udcc1 ",(0,n.yg)("strong",{parentName:"li"},"scripts")," - Scripts for building and testing Detox")))}g.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b80a1ac9.175f49b8.js b/assets/js/b80a1ac9.175f49b8.js new file mode 100644 index 0000000000..494db673a6 --- /dev/null +++ b/assets/js/b80a1ac9.175f49b8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6938],{15680:(e,t,n)=>{n.d(t,{xA:()=>u,yg:()=>m});var r=n(96540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),p=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=p(e.components);return r.createElement(l.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=p(n),y=a,m=c["".concat(l,".").concat(y)]||c[y]||d[y]||o;return n?r.createElement(m,i(i({ref:t},u),{},{components:n})):r.createElement(m,i({ref:t},u))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=y;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:a,i[1]=s;for(var p=2;p{n.d(t,{A:()=>i});var r=n(96540),a=n(20053);const o={tabItem:"tabItem_Ymn6"};function i(e){let{children:t,hidden:n,className:i}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.A)(o.tabItem,i),hidden:n},t)}},11470:(e,t,n)=>{n.d(t,{A:()=>x});var r=n(58168),a=n(96540),o=n(20053),i=n(23104),s=n(56347),l=n(57485),p=n(31682),u=n(89466);function c(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}function d(e){const{values:t,children:n}=e;return(0,a.useMemo)((()=>{const e=t??c(n);return function(e){const t=(0,p.X)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,n])}function y(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function m(e){let{queryString:t=!1,groupId:n}=e;const r=(0,s.W6)(),o=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,l.aZ)(o),(0,a.useCallback)((e=>{if(!o)return;const t=new URLSearchParams(r.location.search);t.set(o,e),r.replace({...r.location,search:t.toString()})}),[o,r])]}function g(e){const{defaultValue:t,queryString:n=!1,groupId:r}=e,o=d(e),[i,s]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!y({value:t,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:o}))),[l,p]=m({queryString:n,groupId:r}),[c,g]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,o]=(0,u.Dv)(n);return[r,(0,a.useCallback)((e=>{n&&o.set(e)}),[n,o])]}({groupId:r}),h=(()=>{const e=l??c;return y({value:e,tabValues:o})?e:null})();(0,a.useLayoutEffect)((()=>{h&&s(h)}),[h]);return{selectedValue:i,selectValue:(0,a.useCallback)((e=>{if(!y({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);s(e),p(e),g(e)}),[p,g,o]),tabValues:o}}var h=n(92303);const f={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function b(e){let{className:t,block:n,selectedValue:s,selectValue:l,tabValues:p}=e;const u=[],{blockElementScrollPositionUntilNextRender:c}=(0,i.a_)(),d=e=>{const t=e.currentTarget,n=u.indexOf(t),r=p[n].value;r!==s&&(c(t),l(r))},y=e=>{let t=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const n=u.indexOf(e.currentTarget)+1;t=u[n]??u[0];break}case"ArrowLeft":{const n=u.indexOf(e.currentTarget)-1;t=u[n]??u[u.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.A)("tabs",{"tabs--block":n},t)},p.map((e=>{let{value:t,label:n,attributes:i}=e;return a.createElement("li",(0,r.A)({role:"tab",tabIndex:s===t?0:-1,"aria-selected":s===t,key:t,ref:e=>u.push(e),onKeyDown:y,onClick:d},i,{className:(0,o.A)("tabs__item",f.tabItem,i?.className,{"tabs__item--active":s===t})}),n??t)})))}function v(e){let{lazy:t,children:n,selectedValue:r}=e;const o=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=o.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},o.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function w(e){const t=g(e);return a.createElement("div",{className:(0,o.A)("tabs-container",f.tabList)},a.createElement(b,(0,r.A)({},e,t)),a.createElement(v,(0,r.A)({},e,t)))}function x(e){const t=(0,h.A)();return a.createElement(w,(0,r.A)({key:String(t)},e))}},32764:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>m,frontMatter:()=>s,metadata:()=>p,toc:()=>c});var r=n(58168),a=(n(96540),n(15680)),o=n(11470),i=n(19365);const s={},l="Using TypeScript",p={unversionedId:"guide/typescript",id:"guide/typescript",title:"Using TypeScript",description:"This guide assumes you are using Detox's default test runner integration with Jest.",source:"@site/../docs/guide/typescript.md",sourceDirName:"guide",slug:"/guide/typescript",permalink:"/Detox/docs/next/guide/typescript",draft:!1,editUrl:"https://github.com/wix/Detox/edit/master/docs/../docs/guide/typescript.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Parallel Test Execution",permalink:"/Detox/docs/next/guide/parallel-test-execution"},next:{title:"Testing WebViews",permalink:"/Detox/docs/next/guide/testing-webviews"}},u={},c=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Setting up Jest with TypeScript",id:"setting-up-jest-with-typescript",level:2},{value:"Writing Detox Tests in TypeScript",id:"writing-detox-tests-in-typescript",level:2},{value:"Conclusion",id:"conclusion",level:2}],d={toc:c},y="wrapper";function m(e){let{components:t,...n}=e;return(0,a.yg)(y,(0,r.A)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"using-typescript"},"Using TypeScript"),(0,a.yg)("admonition",{type:"info"},(0,a.yg)("p",{parentName:"admonition"},"This guide assumes you are using Detox's default test runner integration with Jest.\nIf you have a custom integration, you need to consult your test runner's documentation\non how to use TypeScript with it.")),(0,a.yg)("p",null,"It is very common among JavaScript developers to use TypeScript in their projects,\nso a question arises: ",(0,a.yg)("strong",{parentName:"p"},"how to use Detox with TypeScript?")," Since Detox by default\nbases on Jest, the question can be rephrased as: ",(0,a.yg)("a",{parentName:"p",href:"https://jestjs.io/docs/getting-started#using-typescript"},"how to use Jest with TypeScript?"),"."),(0,a.yg)("p",null,"Nevertheless, since many people ask about it, we decided to provide a guide on how to use Detox with TypeScript."),(0,a.yg)("h2",{id:"prerequisites"},"Prerequisites"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"A working Detox setup with Jest as your test runner."),(0,a.yg)("li",{parentName:"ul"},"TypeScript installed in your project.")),(0,a.yg)("p",null,"Since React Native 0.71, the default React Native project template comes with TypeScript support out of the box. However, if you have no TypeScript project, now's the time:"),(0,a.yg)(o.A,{groupId:"npm2yarn",mdxType:"Tabs"},(0,a.yg)(i.A,{value:"npm",mdxType:"TabItem"},(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-bash"},"npm install --save-dev typescript\ntsc --init\n"))),(0,a.yg)(i.A,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-bash"},"yarn add --dev typescript\ntsc --init\n"))),(0,a.yg)(i.A,{value:"pnpm",label:"pnpm",mdxType:"TabItem"},(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-bash"},"pnpm add --save-dev typescript\ntsc --init\n")))),(0,a.yg)("p",null,"The latter command will generate a default ",(0,a.yg)("inlineCode",{parentName:"p"},"tsconfig.json")," file, so that you can modify it to suit your needs."),(0,a.yg)("admonition",{type:"tip"},(0,a.yg)("p",{parentName:"admonition"},"If you get an error like:"),(0,a.yg)("pre",{parentName:"admonition"},(0,a.yg)("code",{parentName:"pre",className:"language-plain",metastring:"text",text:!0},"command not found: tsc\n")),(0,a.yg)("p",{parentName:"admonition"},"You can try to:"),(0,a.yg)("ol",{parentName:"admonition"},(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("inlineCode",{parentName:"li"},"export PATH=$PATH:./node_modules/.bin")," if you are using ",(0,a.yg)("inlineCode",{parentName:"li"},"bash")," or ",(0,a.yg)("inlineCode",{parentName:"li"},"zsh"),"."),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("inlineCode",{parentName:"li"},"set PATH=%PATH%;./node_modules/.bin")," if you are using Windows Command Prompt."),(0,a.yg)("li",{parentName:"ol"},"run ",(0,a.yg)("inlineCode",{parentName:"li"},"npx tsc --init")," instead of ",(0,a.yg)("inlineCode",{parentName:"li"},"tsc --init"),"."),(0,a.yg)("li",{parentName:"ol"},"or any other solution to run an executable from ",(0,a.yg)("inlineCode",{parentName:"li"},"node_modules/.bin")," directory."))),(0,a.yg)("p",null,"Make sure your TypeScript compiles without errors before proceeding:"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-bash"},"tsc # or tsc --noEmit if you don't want to generate output files\n")),(0,a.yg)("h2",{id:"setting-up-jest-with-typescript"},"Setting up Jest with TypeScript"),(0,a.yg)("p",null,"Jest requires a few extra packages to work seamlessly with TypeScript, so let's install them:"),(0,a.yg)(o.A,{groupId:"npm2yarn",mdxType:"Tabs"},(0,a.yg)(i.A,{value:"npm",mdxType:"TabItem"},(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-bash"},"npm install --save-dev ts-jest @types/jest @types/node\n"))),(0,a.yg)(i.A,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-bash"},"yarn add --dev ts-jest @types/jest @types/node\n"))),(0,a.yg)(i.A,{value:"pnpm",label:"pnpm",mdxType:"TabItem"},(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-bash"},"pnpm add --save-dev ts-jest @types/jest @types/node\n")))),(0,a.yg)("p",null,"Your Jest config file at ",(0,a.yg)("inlineCode",{parentName:"p"},"e2e/jest.config.js")," (or wherever you keep your Jest configuration) also needs a couple of tweaks:"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-javascript"},"/** @type {import('@jest/types').Config.InitialOptions} */\nmodule.exports = {\n// highlight-next-line\n preset: 'ts-jest', // (1)\n rootDir: '..',\n// highlight-next-line\n testMatch: ['/e2e/**/*.test.ts'], // (2)\n testTimeout: 120000,\n maxWorkers: 1,\n globalSetup: 'detox/runners/jest/globalSetup',\n globalTeardown: 'detox/runners/jest/globalTeardown',\n reporters: ['detox/runners/jest/reporter'],\n testEnvironment: 'detox/runners/jest/testEnvironment',\n verbose: true,\n};\n")),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("p",{parentName:"li"},"The ",(0,a.yg)("inlineCode",{parentName:"p"},"preset")," option tells Jest to use ",(0,a.yg)("inlineCode",{parentName:"p"},"ts-jest")," to compile TypeScript files. This is the most important part of the setup.")),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("p",{parentName:"li"},"Make sure you update your ",(0,a.yg)("inlineCode",{parentName:"p"},"testMatch")," to include TypeScript files. Otherwise, you are likely to get an error like this:"),(0,a.yg)("pre",{parentName:"li"},(0,a.yg)("code",{parentName:"pre",className:"language-plain",metastring:"text",text:!0},"No tests found, exiting with code 1\nRun with `--passWithNoTests` to exit with code 0\nIn /path/to/your/project\n 60 files checked.\n testMatch: /path/to/your/project/e2e/**/*.test.js - 0 matches\n testPathIgnorePatterns: /node_modules/ - 60 matches\n testRegex: - 0 matches\nPattern: - 0 matches\n")))),(0,a.yg)("h2",{id:"writing-detox-tests-in-typescript"},"Writing Detox Tests in TypeScript"),(0,a.yg)("p",null,"With the setup ready, you can now write Detox tests in TypeScript.\nChange file extensions from ",(0,a.yg)("inlineCode",{parentName:"p"},".js")," to ",(0,a.yg)("inlineCode",{parentName:"p"},".ts")," where appropriate, and you\u2019re good to go."),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-typescript"},"// highlight-next-line\nimport { expect } from 'detox';\n\ndescribe('Login Screen', () => {\n it('should login with correct credentials', async () => {\n const email: string = 'test@example.com';\n const password: string = 'password123';\n\n await element(by.id('emailInput')).typeText(email);\n await element(by.id('passwordInput')).typeText(password);\n await element(by.id('loginButton')).tap();\n\n expect(await element(by.id('welcomeMessage'))).toBeVisible();\n });\n});\n")),(0,a.yg)("admonition",{type:"info"},(0,a.yg)("p",{parentName:"admonition"},"Pay attention at the highlighted line above, where we import ",(0,a.yg)("inlineCode",{parentName:"p"},"expect")," from Detox. Unfortunately, there is ",(0,a.yg)("a",{parentName:"p",href:"https://github.com/wix/Detox/issues/2610"},"an unresolved clash")," between Jest's ",(0,a.yg)("inlineCode",{parentName:"p"},"expect")," and Detox's ",(0,a.yg)("inlineCode",{parentName:"p"},"expect")," when using TypeScript. This will be fixed in the future, but for now, you need to import Detox's ",(0,a.yg)("inlineCode",{parentName:"p"},"expect")," explicitly in case you see errors like this:"),(0,a.yg)("pre",{parentName:"admonition"},(0,a.yg)("code",{parentName:"pre",className:"language-plain",metastring:"text",text:!0},"error TS2339: Property 'toBeVisible' does not exist on type 'JestMatchers'.\n"))),(0,a.yg)("h2",{id:"conclusion"},"Conclusion"),(0,a.yg)("p",null,"Using Detox with TypeScript largely boils down to setting up Jest to understand TypeScript. With the power of static typing, your Detox tests can now become more robust, easier to understand, and less error-prone. Happy testing!"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b80a1ac9.f71f5896.js b/assets/js/b80a1ac9.f71f5896.js deleted file mode 100644 index dcb2de5ae2..0000000000 --- a/assets/js/b80a1ac9.f71f5896.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6938],{15680:(e,t,n)=>{n.d(t,{xA:()=>u,yg:()=>m});var r=n(96540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),p=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=p(e.components);return r.createElement(l.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=p(n),y=a,m=c["".concat(l,".").concat(y)]||c[y]||d[y]||o;return n?r.createElement(m,i(i({ref:t},u),{},{components:n})):r.createElement(m,i({ref:t},u))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=y;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:a,i[1]=s;for(var p=2;p{n.d(t,{A:()=>i});var r=n(96540),a=n(20053);const o={tabItem:"tabItem_Ymn6"};function i(e){let{children:t,hidden:n,className:i}=e;return r.createElement("div",{role:"tabpanel",className:(0,a.A)(o.tabItem,i),hidden:n},t)}},11470:(e,t,n)=>{n.d(t,{A:()=>x});var r=n(58168),a=n(96540),o=n(20053),i=n(23104),s=n(56347),l=n(57485),p=n(31682),u=n(89466);function c(e){return function(e){return a.Children.map(e,(e=>{if(!e||(0,a.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:a}}=e;return{value:t,label:n,attributes:r,default:a}}))}function d(e){const{values:t,children:n}=e;return(0,a.useMemo)((()=>{const e=t??c(n);return function(e){const t=(0,p.X)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,n])}function y(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function m(e){let{queryString:t=!1,groupId:n}=e;const r=(0,s.W6)(),o=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,l.aZ)(o),(0,a.useCallback)((e=>{if(!o)return;const t=new URLSearchParams(r.location.search);t.set(o,e),r.replace({...r.location,search:t.toString()})}),[o,r])]}function g(e){const{defaultValue:t,queryString:n=!1,groupId:r}=e,o=d(e),[i,s]=(0,a.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!y({value:t,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:o}))),[l,p]=m({queryString:n,groupId:r}),[c,g]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,o]=(0,u.Dv)(n);return[r,(0,a.useCallback)((e=>{n&&o.set(e)}),[n,o])]}({groupId:r}),h=(()=>{const e=l??c;return y({value:e,tabValues:o})?e:null})();(0,a.useLayoutEffect)((()=>{h&&s(h)}),[h]);return{selectedValue:i,selectValue:(0,a.useCallback)((e=>{if(!y({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);s(e),p(e),g(e)}),[p,g,o]),tabValues:o}}var h=n(92303);const f={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};function b(e){let{className:t,block:n,selectedValue:s,selectValue:l,tabValues:p}=e;const u=[],{blockElementScrollPositionUntilNextRender:c}=(0,i.a_)(),d=e=>{const t=e.currentTarget,n=u.indexOf(t),r=p[n].value;r!==s&&(c(t),l(r))},y=e=>{let t=null;switch(e.key){case"Enter":d(e);break;case"ArrowRight":{const n=u.indexOf(e.currentTarget)+1;t=u[n]??u[0];break}case"ArrowLeft":{const n=u.indexOf(e.currentTarget)-1;t=u[n]??u[u.length-1];break}}t?.focus()};return a.createElement("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,o.A)("tabs",{"tabs--block":n},t)},p.map((e=>{let{value:t,label:n,attributes:i}=e;return a.createElement("li",(0,r.A)({role:"tab",tabIndex:s===t?0:-1,"aria-selected":s===t,key:t,ref:e=>u.push(e),onKeyDown:y,onClick:d},i,{className:(0,o.A)("tabs__item",f.tabItem,i?.className,{"tabs__item--active":s===t})}),n??t)})))}function v(e){let{lazy:t,children:n,selectedValue:r}=e;const o=(Array.isArray(n)?n:[n]).filter(Boolean);if(t){const e=o.find((e=>e.props.value===r));return e?(0,a.cloneElement)(e,{className:"margin-top--md"}):null}return a.createElement("div",{className:"margin-top--md"},o.map(((e,t)=>(0,a.cloneElement)(e,{key:t,hidden:e.props.value!==r}))))}function w(e){const t=g(e);return a.createElement("div",{className:(0,o.A)("tabs-container",f.tabList)},a.createElement(b,(0,r.A)({},e,t)),a.createElement(v,(0,r.A)({},e,t)))}function x(e){const t=(0,h.A)();return a.createElement(w,(0,r.A)({key:String(t)},e))}},32764:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>m,frontMatter:()=>s,metadata:()=>p,toc:()=>c});var r=n(58168),a=(n(96540),n(15680)),o=n(11470),i=n(19365);const s={},l="Using TypeScript",p={unversionedId:"guide/typescript",id:"guide/typescript",title:"Using TypeScript",description:"This guide assumes you are using Detox's default test runner integration with Jest.",source:"@site/../docs/guide/typescript.md",sourceDirName:"guide",slug:"/guide/typescript",permalink:"/Detox/docs/next/guide/typescript",draft:!1,editUrl:"https://github.com/wix/Detox/edit/master/docs/../docs/guide/typescript.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Parallel Test Execution",permalink:"/Detox/docs/next/guide/parallel-test-execution"},next:{title:"Testing with Detox Copilot",permalink:"/Detox/docs/next/guide/testing-with-copilot"}},u={},c=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Setting up Jest with TypeScript",id:"setting-up-jest-with-typescript",level:2},{value:"Writing Detox Tests in TypeScript",id:"writing-detox-tests-in-typescript",level:2},{value:"Conclusion",id:"conclusion",level:2}],d={toc:c},y="wrapper";function m(e){let{components:t,...n}=e;return(0,a.yg)(y,(0,r.A)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"using-typescript"},"Using TypeScript"),(0,a.yg)("admonition",{type:"info"},(0,a.yg)("p",{parentName:"admonition"},"This guide assumes you are using Detox's default test runner integration with Jest.\nIf you have a custom integration, you need to consult your test runner's documentation\non how to use TypeScript with it.")),(0,a.yg)("p",null,"It is very common among JavaScript developers to use TypeScript in their projects,\nso a question arises: ",(0,a.yg)("strong",{parentName:"p"},"how to use Detox with TypeScript?")," Since Detox by default\nbases on Jest, the question can be rephrased as: ",(0,a.yg)("a",{parentName:"p",href:"https://jestjs.io/docs/getting-started#using-typescript"},"how to use Jest with TypeScript?"),"."),(0,a.yg)("p",null,"Nevertheless, since many people ask about it, we decided to provide a guide on how to use Detox with TypeScript."),(0,a.yg)("h2",{id:"prerequisites"},"Prerequisites"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"A working Detox setup with Jest as your test runner."),(0,a.yg)("li",{parentName:"ul"},"TypeScript installed in your project.")),(0,a.yg)("p",null,"Since React Native 0.71, the default React Native project template comes with TypeScript support out of the box. However, if you have no TypeScript project, now's the time:"),(0,a.yg)(o.A,{groupId:"npm2yarn",mdxType:"Tabs"},(0,a.yg)(i.A,{value:"npm",mdxType:"TabItem"},(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-bash"},"npm install --save-dev typescript\ntsc --init\n"))),(0,a.yg)(i.A,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-bash"},"yarn add --dev typescript\ntsc --init\n"))),(0,a.yg)(i.A,{value:"pnpm",label:"pnpm",mdxType:"TabItem"},(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-bash"},"pnpm add --save-dev typescript\ntsc --init\n")))),(0,a.yg)("p",null,"The latter command will generate a default ",(0,a.yg)("inlineCode",{parentName:"p"},"tsconfig.json")," file, so that you can modify it to suit your needs."),(0,a.yg)("admonition",{type:"tip"},(0,a.yg)("p",{parentName:"admonition"},"If you get an error like:"),(0,a.yg)("pre",{parentName:"admonition"},(0,a.yg)("code",{parentName:"pre",className:"language-plain",metastring:"text",text:!0},"command not found: tsc\n")),(0,a.yg)("p",{parentName:"admonition"},"You can try to:"),(0,a.yg)("ol",{parentName:"admonition"},(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("inlineCode",{parentName:"li"},"export PATH=$PATH:./node_modules/.bin")," if you are using ",(0,a.yg)("inlineCode",{parentName:"li"},"bash")," or ",(0,a.yg)("inlineCode",{parentName:"li"},"zsh"),"."),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("inlineCode",{parentName:"li"},"set PATH=%PATH%;./node_modules/.bin")," if you are using Windows Command Prompt."),(0,a.yg)("li",{parentName:"ol"},"run ",(0,a.yg)("inlineCode",{parentName:"li"},"npx tsc --init")," instead of ",(0,a.yg)("inlineCode",{parentName:"li"},"tsc --init"),"."),(0,a.yg)("li",{parentName:"ol"},"or any other solution to run an executable from ",(0,a.yg)("inlineCode",{parentName:"li"},"node_modules/.bin")," directory."))),(0,a.yg)("p",null,"Make sure your TypeScript compiles without errors before proceeding:"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-bash"},"tsc # or tsc --noEmit if you don't want to generate output files\n")),(0,a.yg)("h2",{id:"setting-up-jest-with-typescript"},"Setting up Jest with TypeScript"),(0,a.yg)("p",null,"Jest requires a few extra packages to work seamlessly with TypeScript, so let's install them:"),(0,a.yg)(o.A,{groupId:"npm2yarn",mdxType:"Tabs"},(0,a.yg)(i.A,{value:"npm",mdxType:"TabItem"},(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-bash"},"npm install --save-dev ts-jest @types/jest @types/node\n"))),(0,a.yg)(i.A,{value:"yarn",label:"Yarn",mdxType:"TabItem"},(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-bash"},"yarn add --dev ts-jest @types/jest @types/node\n"))),(0,a.yg)(i.A,{value:"pnpm",label:"pnpm",mdxType:"TabItem"},(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-bash"},"pnpm add --save-dev ts-jest @types/jest @types/node\n")))),(0,a.yg)("p",null,"Your Jest config file at ",(0,a.yg)("inlineCode",{parentName:"p"},"e2e/jest.config.js")," (or wherever you keep your Jest configuration) also needs a couple of tweaks:"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-javascript"},"/** @type {import('@jest/types').Config.InitialOptions} */\nmodule.exports = {\n// highlight-next-line\n preset: 'ts-jest', // (1)\n rootDir: '..',\n// highlight-next-line\n testMatch: ['/e2e/**/*.test.ts'], // (2)\n testTimeout: 120000,\n maxWorkers: 1,\n globalSetup: 'detox/runners/jest/globalSetup',\n globalTeardown: 'detox/runners/jest/globalTeardown',\n reporters: ['detox/runners/jest/reporter'],\n testEnvironment: 'detox/runners/jest/testEnvironment',\n verbose: true,\n};\n")),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("p",{parentName:"li"},"The ",(0,a.yg)("inlineCode",{parentName:"p"},"preset")," option tells Jest to use ",(0,a.yg)("inlineCode",{parentName:"p"},"ts-jest")," to compile TypeScript files. This is the most important part of the setup.")),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("p",{parentName:"li"},"Make sure you update your ",(0,a.yg)("inlineCode",{parentName:"p"},"testMatch")," to include TypeScript files. Otherwise, you are likely to get an error like this:"),(0,a.yg)("pre",{parentName:"li"},(0,a.yg)("code",{parentName:"pre",className:"language-plain",metastring:"text",text:!0},"No tests found, exiting with code 1\nRun with `--passWithNoTests` to exit with code 0\nIn /path/to/your/project\n 60 files checked.\n testMatch: /path/to/your/project/e2e/**/*.test.js - 0 matches\n testPathIgnorePatterns: /node_modules/ - 60 matches\n testRegex: - 0 matches\nPattern: - 0 matches\n")))),(0,a.yg)("h2",{id:"writing-detox-tests-in-typescript"},"Writing Detox Tests in TypeScript"),(0,a.yg)("p",null,"With the setup ready, you can now write Detox tests in TypeScript.\nChange file extensions from ",(0,a.yg)("inlineCode",{parentName:"p"},".js")," to ",(0,a.yg)("inlineCode",{parentName:"p"},".ts")," where appropriate, and you\u2019re good to go."),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-typescript"},"// highlight-next-line\nimport { expect } from 'detox';\n\ndescribe('Login Screen', () => {\n it('should login with correct credentials', async () => {\n const email: string = 'test@example.com';\n const password: string = 'password123';\n\n await element(by.id('emailInput')).typeText(email);\n await element(by.id('passwordInput')).typeText(password);\n await element(by.id('loginButton')).tap();\n\n expect(await element(by.id('welcomeMessage'))).toBeVisible();\n });\n});\n")),(0,a.yg)("admonition",{type:"info"},(0,a.yg)("p",{parentName:"admonition"},"Pay attention at the highlighted line above, where we import ",(0,a.yg)("inlineCode",{parentName:"p"},"expect")," from Detox. Unfortunately, there is ",(0,a.yg)("a",{parentName:"p",href:"https://github.com/wix/Detox/issues/2610"},"an unresolved clash")," between Jest's ",(0,a.yg)("inlineCode",{parentName:"p"},"expect")," and Detox's ",(0,a.yg)("inlineCode",{parentName:"p"},"expect")," when using TypeScript. This will be fixed in the future, but for now, you need to import Detox's ",(0,a.yg)("inlineCode",{parentName:"p"},"expect")," explicitly in case you see errors like this:"),(0,a.yg)("pre",{parentName:"admonition"},(0,a.yg)("code",{parentName:"pre",className:"language-plain",metastring:"text",text:!0},"error TS2339: Property 'toBeVisible' does not exist on type 'JestMatchers'.\n"))),(0,a.yg)("h2",{id:"conclusion"},"Conclusion"),(0,a.yg)("p",null,"Using Detox with TypeScript largely boils down to setting up Jest to understand TypeScript. With the power of static typing, your Detox tests can now become more robust, easier to understand, and less error-prone. Happy testing!"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/baa98f43.734013e7.js b/assets/js/baa98f43.734013e7.js new file mode 100644 index 0000000000..19345d32ac --- /dev/null +++ b/assets/js/baa98f43.734013e7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4151],{21826:t=>{t.exports=JSON.parse('{"permalink":"/Detox/blog/tags/ai-integration","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"All the important updates and announcements from Detox crew, tips and tricks and everything else that you don\'t want to miss.","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/c7f75652.bd985fd6.js b/assets/js/c7f75652.bd985fd6.js new file mode 100644 index 0000000000..93f240c3a0 --- /dev/null +++ b/assets/js/c7f75652.bd985fd6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8716],{15680:(e,t,o)=>{o.d(t,{xA:()=>p,yg:()=>y});var n=o(96540);function a(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function i(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function r(e){for(var t=1;t=0||(a[o]=e[o]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(a[o]=e[o])}return a}var s=n.createContext({}),g=function(e){var t=n.useContext(s),o=t;return e&&(o="function"==typeof e?e(t):r(r({},t),e)),o},p=function(e){var t=g(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var o=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=g(o),d=a,y=u["".concat(s,".").concat(d)]||u[d]||c[d]||i;return o?n.createElement(y,r(r({ref:t},p),{},{components:o})):n.createElement(y,r({ref:t},p))}));function y(e,t){var o=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=o.length,r=new Array(i);r[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:a,r[1]=l;for(var g=2;g{o.r(t),o.d(t,{assets:()=>s,contentTitle:()=>r,default:()=>c,frontMatter:()=>i,metadata:()=>l,toc:()=>g});var n=o(58168),a=(o(96540),o(15680));const i={authors:["asafkorem"],tags:["minor-release","detox-copilot","ai-integration"]},r="Introducing Detox Copilot",l={permalink:"/Detox/blog/2024/09/30/detox-copilot-is-out",editUrl:"https://github.com/wix/Detox/edit/master/website/blog/2024-09-30-detox-copilot-is-out.md",source:"@site/blog/2024-09-30-detox-copilot-is-out.md",title:"Introducing Detox Copilot",description:"Detox Copilot: Write Tests in Natural Language",date:"2024-09-30T00:00:00.000Z",formattedDate:"September 30, 2024",tags:[{label:"minor-release",permalink:"/Detox/blog/tags/minor-release"},{label:"detox-copilot",permalink:"/Detox/blog/tags/detox-copilot"},{label:"ai-integration",permalink:"/Detox/blog/tags/ai-integration"}],readingTime:3.27,hasTruncateMarker:!1,authors:[{name:"Asaf Korem",title:"Detox Core Contributor",url:"https://github.com/asafkorem",imageURL:"https://github.com/asafkorem.png",key:"asafkorem"}],frontMatter:{authors:["asafkorem"],tags:["minor-release","detox-copilot","ai-integration"]},nextItem:{title:"Detox 20 is out",permalink:"/Detox/blog/2022/11/10/detox-20-is-out"}},s={authorsImageUrls:[void 0]},g=[{value:"Detox Copilot: Write Tests in Natural Language",id:"detox-copilot-write-tests-in-natural-language",level:2},{value:"Why Natural Language Testing?",id:"why-natural-language-testing",level:3},{value:"Key Features of Detox Copilot",id:"key-features-of-detox-copilot",level:2},{value:"Write Tests in Plain Text",id:"write-tests-in-plain-text",level:3},{value:"Seamless Integration with Detox",id:"seamless-integration-with-detox",level:3},{value:"LLM-Agnostic Design",id:"llm-agnostic-design",level:3},{value:"How Detox Copilot Works",id:"how-detox-copilot-works",level:2},{value:"Getting Started with Detox Copilot",id:"getting-started-with-detox-copilot",level:2},{value:"Extending Beyond Detox",id:"extending-beyond-detox",level:2},{value:"Learn More",id:"learn-more",level:2},{value:"Join the Future of Testing",id:"join-the-future-of-testing",level:2}],p={toc:g},u="wrapper";function c(e){let{components:t,...i}=e;return(0,a.yg)(u,(0,n.A)({},p,i,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h2",{id:"detox-copilot-write-tests-in-natural-language"},"Detox Copilot: Write Tests in Natural Language"),(0,a.yg)("p",null,"We're excited to announce ",(0,a.yg)("strong",{parentName:"p"},"Detox Copilot"),", a groundbreaking feature that brings natural language testing to Detox. With Detox Copilot, you can now write end-to-end tests using plain textual commands, making test creation more intuitive and accessible than ever."),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"Detox Copilot in action GIF",src:o(16031).A,width:"600",height:"388"})),(0,a.yg)("p",null,"Detox Copilot leverages advanced Large Language Models (LLMs) to interpret natural language instructions and translate them into Detox actions and assertions. This means you can describe your test scenarios in everyday language, aligning perfectly with ",(0,a.yg)("strong",{parentName:"p"},"Behavior-Driven Development (BDD)")," principles."),(0,a.yg)("h3",{id:"why-natural-language-testing"},"Why Natural Language Testing?"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("strong",{parentName:"li"},"Improved Collaboration"),": Teams can collaborate more effectively, as tests are written in plain language understandable by developers, QA engineers, and non-technical stakeholders alike."),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("strong",{parentName:"li"},"Faster Test Creation"),": Reduce the time spent writing and maintaining complex test scripts."),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("strong",{parentName:"li"},"Enhanced Test Coverage"),": Lower the barrier to writing tests, encouraging more comprehensive testing."),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("strong",{parentName:"li"},"Reduced Maintenance Costs"),": Thanks to the decoupling from specific matchers (e.g., avoiding brittle XPath selectors or relying on ",(0,a.yg)("inlineCode",{parentName:"li"},"testID")," attributes commonly used in React Native apps), tests are less prone to breaking when the UI changes, leading to lower maintenance overhead.")),(0,a.yg)("h2",{id:"key-features-of-detox-copilot"},"Key Features of Detox Copilot"),(0,a.yg)("h3",{id:"write-tests-in-plain-text"},"Write Tests in Plain Text"),(0,a.yg)("p",null,"Detox Copilot allows you to write tests using natural language commands. Each step corresponds to a specific action or assertion within your app."),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-javascript"},"it('should navigate and add a product to the cart', async () => {\n await copilot.perform(\n 'Navigate to the \"Products\" page',\n 'Tap on the \"Add to Cart\" button for the first product',\n 'Verify that the \"Added to Cart\" pop-up is displayed'\n );\n});\n")),(0,a.yg)("h3",{id:"seamless-integration-with-detox"},"Seamless Integration with Detox"),(0,a.yg)("p",null,"Detox Copilot is built into Detox and requires no additional installation. Simply initialize it in your test setup, and you're ready to start writing natural language tests."),(0,a.yg)("h3",{id:"llm-agnostic-design"},"LLM-Agnostic Design"),(0,a.yg)("p",null,"Detox Copilot uses LLMs to interpret instructions but is designed to be LLM-agnostic. This means you can connect it to your preferred language model service, offering flexibility and future-proofing your testing strategy."),(0,a.yg)("h2",{id:"how-detox-copilot-works"},"How Detox Copilot Works"),(0,a.yg)("p",null,"Once you've written your tests using natural language instructions, Detox Copilot takes care of the rest.\nHere is a high-level overview of the execution flow:"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("strong",{parentName:"li"},"Gather Context"),": Collect relevant app state, view hierarchy, and previous step results."),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("strong",{parentName:"li"},"Interpret Intent"),": Use the LLM to interpret the natural language instruction."),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("strong",{parentName:"li"},"Generate Code"),": Create the appropriate Detox commands."),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("strong",{parentName:"li"},"Execute Action"),": Run the generated Detox code."),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("strong",{parentName:"li"},"Cache Results"),": Store execution results to optimize future runs."),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("strong",{parentName:"li"},"Provide Feedback"),": Return values or confirm actions for subsequent steps.")),(0,a.yg)("p",null,"By combining these steps, Detox Copilot effectively bridges the gap between natural language instructions and concrete test actions."),(0,a.yg)("admonition",{type:"info"},(0,a.yg)("p",{parentName:"admonition"},"Check Detox Copilot ",(0,a.yg)("strong",{parentName:"p"},(0,a.yg)("a",{parentName:"strong",href:"/docs/next/copilot/technical-overview"},"Technical Overview"))," for a detailed explanation of the building blocks and the execution flow.")),(0,a.yg)("h2",{id:"getting-started-with-detox-copilot"},"Getting Started with Detox Copilot"),(0,a.yg)("p",null,"Getting started with Detox Copilot is easy. Simply initialize Copilot in your test setup and start writing tests using natural language instructions."),(0,a.yg)("p",null,"Check our ",(0,a.yg)("a",{parentName:"p",href:"/docs/next/copilot/testing-with-copilot"},"Testing with Copilot guide")," for detailed instructions on setting up and writing tests with Detox Copilot."),(0,a.yg)("h2",{id:"extending-beyond-detox"},"Extending Beyond Detox"),(0,a.yg)("p",null,"Detox Copilot is built on a standalone core library called ",(0,a.yg)("a",{parentName:"p",href:"https://github.com/wix-incubator/detox-copilot"},"detox-copilot")," designed to interpret natural language testing instructions and generate test code. Though initially developed for Detox, it can be extended to work with other testing frameworks."),(0,a.yg)("h2",{id:"learn-more"},"Learn More"),(0,a.yg)("p",null,"For detailed guidance, check out our ",(0,a.yg)("a",{parentName:"p",href:"/docs/next/copilot/testing-with-copilot"},"Testing with Copilot guide")," and the ",(0,a.yg)("a",{parentName:"p",href:"/docs/next/api/copilot"},"Detox Copilot API Documentation"),"."),(0,a.yg)("h2",{id:"join-the-future-of-testing"},"Join the Future of Testing"),(0,a.yg)("p",null,"Detox Copilot represents a major step forward in making end-to-end testing more accessible and efficient. By embracing natural language testing, you can enhance collaboration, speed up test creation, and improve overall test coverage."),(0,a.yg)("p",null,"We're ",(0,a.yg)("strong",{parentName:"p"},"excited")," to see how you'll leverage Detox Copilot in your tests! Share your experiences, feedback, and suggestions with us as we continue to refine and expand this groundbreaking feature."))}c.isMDXComponent=!0},16031:(e,t,o)=>{o.d(t,{A:()=>n});const n=o.p+"assets/images/copilot-demo-5c8641f24001c1d6e3effd175dc8ec2b.gif"}}]); \ No newline at end of file diff --git a/assets/js/d96edd44.b6ebe047.js b/assets/js/d96edd44.b6ebe047.js new file mode 100644 index 0000000000..a0d1b97015 --- /dev/null +++ b/assets/js/d96edd44.b6ebe047.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5237],{46595:e=>{e.exports=JSON.parse('{"label":"ai-integration","permalink":"/Detox/blog/tags/ai-integration","allTagsPath":"/Detox/blog/tags","count":1}')}}]); \ No newline at end of file diff --git a/assets/js/e2c7edfe.58edca54.js b/assets/js/e2c7edfe.58edca54.js new file mode 100644 index 0000000000..64ee83511b --- /dev/null +++ b/assets/js/e2c7edfe.58edca54.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9736],{13131:e=>{e.exports=JSON.parse('{"label":"minor-release","permalink":"/Detox/blog/tags/minor-release","allTagsPath":"/Detox/blog/tags","count":1}')}}]); \ No newline at end of file diff --git a/assets/js/ede8d976.70718177.js b/assets/js/ede8d976.70718177.js new file mode 100644 index 0000000000..a52396812b --- /dev/null +++ b/assets/js/ede8d976.70718177.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[265],{73498:e=>{e.exports=JSON.parse('{"label":"detox-copilot","permalink":"/Detox/blog/tags/detox-copilot","allTagsPath":"/Detox/blog/tags","count":1}')}}]); \ No newline at end of file diff --git a/assets/js/f6c890be.20f52cf6.js b/assets/js/f6c890be.20f52cf6.js new file mode 100644 index 0000000000..2f7241cd2b --- /dev/null +++ b/assets/js/f6c890be.20f52cf6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5930],{6794:e=>{e.exports=JSON.parse('{"permalink":"/Detox/blog/tags/minor-release","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"All the important updates and announcements from Detox crew, tips and tricks and everything else that you don\'t want to miss.","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/f98b7248.b9946c6e.js b/assets/js/f98b7248.b9946c6e.js deleted file mode 100644 index 5bab4d2242..0000000000 --- a/assets/js/f98b7248.b9946c6e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6941],{15680:(e,t,n)=>{n.d(t,{xA:()=>u,yg:()=>c});var a=n(96540);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=a.createContext({}),p=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},u=function(e){var t=p(e.components);return a.createElement(l.Provider,{value:t},e.children)},g="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),g=p(n),m=o,c=g["".concat(l,".").concat(m)]||g[m]||d[m]||i;return n?a.createElement(c,r(r({ref:t},u),{},{components:n})):a.createElement(c,r({ref:t},u))}));function c(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,r=new Array(i);r[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[g]="string"==typeof e?e:o,r[1]=s;for(var p=2;p{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>p});var a=n(58168),o=(n(96540),n(15680));const i={authors:["noomorph"],tags:["major-release","genymotion"]},r="Detox 20 is out",s={permalink:"/Detox/blog/2022/11/10/detox-20-is-out",editUrl:"https://github.com/wix/Detox/edit/master/website/blog/2022-11-10-detox-20-is-out.md",source:"@site/blog/2022-11-10-detox-20-is-out.md",title:"Detox 20 is out",description:'Today we\'re proud to announce the new major release, Detox 20 (codename "Ash\xe1n"), which brings:',date:"2022-11-10T00:00:00.000Z",formattedDate:"November 10, 2022",tags:[{label:"major-release",permalink:"/Detox/blog/tags/major-release"},{label:"genymotion",permalink:"/Detox/blog/tags/genymotion"}],readingTime:9.705,hasTruncateMarker:!1,authors:[{name:"Yaroslav Serhieiev",title:"Detox Core Contributor",url:"https://github.com/noomorph",imageURL:"https://github.com/noomorph.png",key:"noomorph"}],frontMatter:{authors:["noomorph"],tags:["major-release","genymotion"]}},l={authorsImageUrls:[void 0]},p=[{value:"Genymotion SaaS",id:"genymotion-saas",level:2},{value:"Integration with test runners",id:"integration-with-test-runners",level:2},{value:"Configurable logger",id:"configurable-logger",level:2},{value:"Minor features",id:"minor-features",level:2},{value:"Headless iOS",id:"headless-ios",level:3},{value:"Reverse ports",id:"reverse-ports",level:3},{value:"Read-only emulators by default",id:"read-only-emulators-by-default",level:3},{value:"Reset lock file",id:"reset-lock-file",level:3},{value:"Deprecations",id:"deprecations",level:2},{value:"Afterword",id:"afterword",level:2}],u={toc:p},g="wrapper";function d(e){let{components:t,...i}=e;return(0,o.yg)(g,(0,a.A)({},u,i,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"Today we're proud to announce the new major release, ",(0,o.yg)("strong",{parentName:"p"},"Detox 20"),' (codename "Ash\xe1n"), which brings:'),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"official support for Genymotion SaaS"),(0,o.yg)("li",{parentName:"ul"},"improved integration with test runners"),(0,o.yg)("li",{parentName:"ul"},"configurable logging subsystem"),(0,o.yg)("li",{parentName:"ul"},"headless mode for iOS via configs and CLI"),(0,o.yg)("li",{parentName:"ul"},"reversing TCP ports via Android app configs"),(0,o.yg)("li",{parentName:"ul"},"and more optimizations to land in the next minor versions.")),(0,o.yg)("h2",{id:"genymotion-saas"},"Genymotion SaaS"),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"Highlights"),": ",(0,o.yg)("a",{parentName:"p",href:"/docs/guide/genymotion-saas"},(0,o.yg)("inlineCode",{parentName:"a"},"Using Genymotion SaaS")),"."),(0,o.yg)("p",null,"Two years ago we ",(0,o.yg)("a",{parentName:"p",href:"https://github.com/wix/Detox/pull/2446"},"added elementary support")," for cloud-based Android emulators provided by ",(0,o.yg)("a",{parentName:"p",href:"https://cloud.geny.io"},"Genymotion SaaS")," and started a beta testing phase across mobile projects at Wix."),(0,o.yg)("p",null,"Previously our mobile infrastructure engineers had been maintaining Android virtual devices on CI build agents on their own, so switching to cloud devices cleared up their time for more productive tasks. Another improvement was particularly noticeable for teams with a vast number of tests. We could reduce the duration of their CI pipelines almost by half after they scaled up from 2 parallel devices to 6",(0,o.yg)("sup",{parentName:"p",id:"fnref-1-2b8cfe"},(0,o.yg)("a",{parentName:"sup",href:"#fn-1-2b8cfe",className:"footnote-ref"},"1")),"."),(0,o.yg)("p",null,"This positive impact encouraged us to adopt ",(0,o.yg)("a",{parentName:"p",href:"https://cloud.geny.io"},"Genymotion SaaS")," for CI as quickly as possible, ignoring some unresolved issues in the initial pull request. For the most part, those were minor problems in global lifecycle management. Yet that made us feel uncertain about releasing it as-is, so we decided to take time and gain more production experience before taking any direction."),(0,o.yg)("p",null,"The further experience was surprisingly smooth and rarely presented issues, spare for a few minor ",(0,o.yg)("a",{parentName:"p",href:"https://github.com/wix/Detox/issues/3573"},"glitches")," in advanced scenarios. Admittedly, revamping the ",(0,o.yg)("a",{parentName:"p",href:"/docs/api/internals"},"Detox lifecycle")," took us longer than expected, which is all the more reason for us to celebrate today."),(0,o.yg)("p",null,"We're looking forward to providing our users with more opportunities for testing in the cloud, and this step is only the first of many to come. We hope you'll utilize this new feature to your delight."),(0,o.yg)("h2",{id:"integration-with-test-runners"},"Integration with test runners"),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"Highlights"),": ",(0,o.yg)("a",{parentName:"p",href:"/docs/config/testRunner"},(0,o.yg)("inlineCode",{parentName:"a"},"Config file > Test runner")),", ",(0,o.yg)("a",{parentName:"p",href:"/docs/api/internals"},(0,o.yg)("inlineCode",{parentName:"a"},"Internals API")),", ",(0,o.yg)("a",{parentName:"p",href:"https://github.com/wix/Detox/issues/3193"},(0,o.yg)("inlineCode",{parentName:"a"},"Dropping Mocha support")),"."),(0,o.yg)("p",null,"It took about a few months of work to formalize the contract between Detox and a test runner. While there's still a lot of place for improvement, the new Detox release refines their interaction and lays the groundwork for third-party integrations."),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://mochajs.org"},"Mocha")," was our first supported test runner, but unfortunately, it could not keep up with our scaling requirements as the number of end-to-end tests grew. ",(0,o.yg)("a",{parentName:"p",href:"https://github.com/mochajs/mocha/releases/tag/v8.0.0"},"By the time")," it acquired the ability to run tests in parallel, we already had ",(0,o.yg)("a",{parentName:"p",href:"https://github.com/wix/Detox/pull/609"},"to place bets")," on another horse, and that was ",(0,o.yg)("a",{parentName:"p",href:"https://jestjs.io"},"Jest"),"."),(0,o.yg)("p",null,"We attempted to keep compatibility with both Jest and Mocha, but the farther we went, the more obvious it was that we couldn't have it both ways. As it turned out, Jest wasn't easy to get along with \u2013 our first integration with it was too simplistic. Over a couple of years of use in production, we kept discovering various issues that forced us to rewrite our \"glue\" code from scratch twice, and this isn't over yet. All combined didn't leave much time and energy for tinkering with Mocha anymore."),(0,o.yg)("p",null,"In this release, we discontinued Mocha support to focus on the attunement of Jest with the new runner-independent ",(0,o.yg)("a",{parentName:"p",href:"/docs/config/testRunner"},"test runner config")," and ",(0,o.yg)("a",{parentName:"p",href:"/docs/api/internals"},"Internals API"),". If there's enough demand, now it is up to the open-source community to build a new integration between Detox and Mocha."),(0,o.yg)("h2",{id:"configurable-logger"},"Configurable logger"),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"Highlights"),": ",(0,o.yg)("a",{parentName:"p",href:"/docs/config/logger"},(0,o.yg)("inlineCode",{parentName:"a"},"Config file > Logger")),", ",(0,o.yg)("a",{parentName:"p",href:"/docs/api/logger"},(0,o.yg)("inlineCode",{parentName:"a"},"Logger API")),"."),(0,o.yg)("p",null,"The rigidity of the logging subsystem has always been showing itself ",(0,o.yg)("a",{parentName:"p",href:"https://github.com/wix/Detox/pull/835"},"since its very creation")," in the summer of 2019.\nDue to time constraints and existing tech debts, it was impossible to do it right the first time, so we lived about three years with a proof-of-concept rather than a full-fledged feature."),(0,o.yg)("p",null,"The inconveniences weren't fatal but quite noticeable, nevertheless. Here are a few syndromes you could have spotted if you have ever used Detox timeline and log artifacts, especially when running tests in parallel:"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"an uncanny file array: ",(0,o.yg)("inlineCode",{parentName:"li"},"detox_pid_7505.log"),", ",(0,o.yg)("inlineCode",{parentName:"li"},"detox_pid_7505.log.json"),", ",(0,o.yg)("inlineCode",{parentName:"li"},"detox_pid_7506.log"),";"),(0,o.yg)("li",{parentName:"ul"},"a relatively shallow ",(0,o.yg)("inlineCode",{parentName:"li"},"detox.trace.json"),": test suites, test functions, and some user-defined segments.")),(0,o.yg)("p",null,"The good news is that the new Detox release condenses all those numerous logs into two files:"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"the plain, human-readable ",(0,o.yg)("inlineCode",{parentName:"li"},"detox.log"),";"),(0,o.yg)("li",{parentName:"ul"},"the raw, machine-readable ",(0,o.yg)("inlineCode",{parentName:"li"},"detox.trace.json")," for ",(0,o.yg)("inlineCode",{parentName:"li"},"chrome://trace"),", ",(0,o.yg)("a",{parentName:"li",href:"https://ui.perfetto.dev/"},"Perfetto")," and other utilities.")),(0,o.yg)("p",null,(0,o.yg)("img",{alt:"A screenshot of timeline view generated by Perfetto",src:n(27709).A,width:"1600",height:"1000"})),(0,o.yg)("p",null,"With the help of the new ",(0,o.yg)("a",{parentName:"p",href:"/docs/api/logger"},"Logger API"),", you can add custom duration events to the timeline, too, e.g.:"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-js"},"await detox.log.trace.complete('Login', async () => {\n await element(by.id('email')).typeText('john@example.com');\n await element(by.id('password')).typeText('123456');\n\n detox.log.info('Trying to log in...');\n await element(by.id('submit')).tap();\n});\n")),(0,o.yg)("p",null,"Besides, it is possible now to customize the console output of Detox via the new ",(0,o.yg)("a",{parentName:"p",href:"/docs/config/logger"},"logger config"),", e.g.:"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-js",metastring:'title="detox.config.js"',title:'"detox.config.js"'},"/** @type {Detox.DetoxConfig} */\nmodule.exports = {\n // ...\n logger: {\n options: {\n showDate: false,\n showLoggerName: false,\n showPid: false,\n prefixers: {\n ph: null,\n },\n },\n },\n};\n")),(0,o.yg)("p",null,"In the example above, we minimize all the metadata around the log messages \u2013 see the screenshot below:"),(0,o.yg)("p",null,(0,o.yg)("img",{alt:"Terser logs after applying the override",src:n(72716).A,width:"1400",height:"399"})),(0,o.yg)("h2",{id:"minor-features"},"Minor features"),(0,o.yg)("h3",{id:"headless-ios"},"Headless iOS"),(0,o.yg)("p",null,"One of Detox known issues was always booting iOS simulators in a hidden mode. You could see tests running on your local simulator only if you had manually opened the Simulator app beforehand. So, we unified the ",(0,o.yg)("inlineCode",{parentName:"p"},"headless")," property for both iOS and Android, and now both the platforms visibly boot a device unless you configure it otherwise, e.g.:"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-js"},"/* @type {Detox.DetoxConfig} */\nmodule.exports = {\n devices: {\n iphone: {\n type: 'ios.simulator',\n // highlight-next-line\n headless: process.env.CI ? true : undefined,\n device: {\n type: 'iPhone 14'\n },\n /* ... */\n }\n },\n};\n")),(0,o.yg)("p",null,"or, via CLI:"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-bash"},"detox test -c ios.sim.release --headless\n")),(0,o.yg)("h3",{id:"reverse-ports"},"Reverse ports"),(0,o.yg)("p",null,"Your apps might try to access some ",(0,o.yg)("inlineCode",{parentName:"p"},"localhost:*")," addresses (e.g., mock servers), but this is a bit more problematic in the case of Android. The Android emulators are separate virtual devices with their own loopback network interface. In such cases, you must set up reverse port forwarding via ",(0,o.yg)("inlineCode",{parentName:"p"},"adb reverse"),"."),(0,o.yg)("p",null,"Local servers are quite a common prerequisite for apps in debug mode \u2013 one could recall React Native bundler on port 8081, Storybook server on 9009, etc. That's why we decided to add an optional config property for Android apps, ",(0,o.yg)("inlineCode",{parentName:"p"},"reversePorts"),":"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-js"},"/** @type {Detox.DetoxConfig} */\nmodule.exports = {\n // ...\n apps: {\n 'android.debug': {\n type: 'android.apk',\n binaryPath: '...',\n reversePorts: [8081, 3000],\n },\n },\n};\n")),(0,o.yg)("p",null,"In other words, this is a convenience API that tells Detox to run ",(0,o.yg)("inlineCode",{parentName:"p"},"device.reverseTcpPort(portNumber)")," after installing the app. It should be helpful for anyone who prefers to keep such things as configs rather than as code."),(0,o.yg)("h3",{id:"read-only-emulators-by-default"},"Read-only emulators by default"),(0,o.yg)("p",null,"The ",(0,o.yg)("inlineCode",{parentName:"p"},"-read-only")," flag appeared in ",(0,o.yg)("a",{parentName:"p",href:"https://developer.android.com/studio/releases/emulator#concurrent-avd"},"Android emulator 28.0.16"),". Detox promptly adopted it since the read-only mode allowed it to run multiple instances of a single Android virtual device (AVD) concurrently. This feature helped us to implement parallel test execution support for Android back then."),(0,o.yg)("p",null,"Being overcautious, we implemented that partially, only for cases when the user starts multiple concurrent workers. This decision created a moderately annoying UX issue. Imagine you run tests sequentially first, using one worker only. That provides you with a regular AVD instance, i.e., not a read-only one. After that, you switch to multiple workers only to get an error from the Android emulator, complaining about mixing regular and read-only instances."),(0,o.yg)("p",null,"While the fix itself has always been straightforward \u2013 close the running AVD and try again \u2013 this entire overcaution brought more issues than solving them. That's why, from now on, Android emulators will always be starting in ",(0,o.yg)("inlineCode",{parentName:"p"},"-read-only")," mode unless you configure ",(0,o.yg)("inlineCode",{parentName:"p"},"readonly: false")," in your ",(0,o.yg)("a",{parentName:"p",href:"/docs/config/devices"},"device config"),"."),(0,o.yg)("h3",{id:"reset-lock-file"},"Reset lock file"),(0,o.yg)("p",null,"This release adds a small CLI tool, ",(0,o.yg)("a",{parentName:"p",href:"/docs/cli/reset-lock-file"},(0,o.yg)("inlineCode",{parentName:"a"},"detox reset-lock-file")),", to help users with one specific use scenario."),(0,o.yg)("p",null,"Imagine you want to run tests for multiple Detox configurations at once, e.g.:"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-bash"},"detox test -c iphoneSE2020.release e2e/ui.test.js\ndetox test -c iphone14ProMax.release e2e/ui.test.js\n")),(0,o.yg)("p",null,"The problem is that Detox uses a file-locking mechanism to avoid situations when parallel test workers would take control of the same device. The ",(0,o.yg)("inlineCode",{parentName:"p"},"detox test")," command, upon start, erases that file contents, creating a race condition risk."),(0,o.yg)("p",null,"To eliminate that risk, use a combination of ",(0,o.yg)("inlineCode",{parentName:"p"},"detox reset-lock-file")," and ",(0,o.yg)("inlineCode",{parentName:"p"},"--keepLockFile")," like this:"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-bash"},"detox reset-lock-file & \\\ndetox test --keepLockFile -c iphoneSE2020.release e2e/ui.test.js & \\\ndetox test --keepLockFile -c iphone14ProMax.release e2e/ui.test.js & \\\nwait\n")),(0,o.yg)("p",null,"In the future, we plan to minimize using lock files so that you don't have to think about this low-level implementation detail.\nSo, this tool adds some convenience until we provide a next-gen solution."),(0,o.yg)("h2",{id:"deprecations"},"Deprecations"),(0,o.yg)("p",null,"Detox 20 executes many pending deprecations, so make sure to check out our ",(0,o.yg)("a",{parentName:"p",href:"/docs/guide/migration#200"},"Migration Guide")," before upgrading:"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"JS: minimum supported Node.js version is ",(0,o.yg)("inlineCode",{parentName:"li"},"14.x"),";"),(0,o.yg)("li",{parentName:"ul"},"JS: minimum supported Jest version is ",(0,o.yg)("inlineCode",{parentName:"li"},"27.2.5"),";"),(0,o.yg)("li",{parentName:"ul"},"JS: Mocha test runner is no longer supported;"),(0,o.yg)("li",{parentName:"ul"},"JS: discontinued old adapters for Jest (",(0,o.yg)("inlineCode",{parentName:"li"},"jest-jasmine"),", first generation of ",(0,o.yg)("inlineCode",{parentName:"li"},"jest-circus")," adapter);"),(0,o.yg)("li",{parentName:"ul"},"JS: discontinued ",(0,o.yg)("inlineCode",{parentName:"li"},"{ permanent: true }")," option in ",(0,o.yg)("inlineCode",{parentName:"li"},"device.appLaunchArgs.*")," methods (",(0,o.yg)("a",{parentName:"li",href:"https://github.com/wix/Detox/pull/3360"},"#3360"),");"),(0,o.yg)("li",{parentName:"ul"},"CLI: dropped ",(0,o.yg)("inlineCode",{parentName:"li"},"-w, --workers")," and ",(0,o.yg)("inlineCode",{parentName:"li"},"-o, --runner-config")," args \u2013 see a ",(0,o.yg)("a",{parentName:"li",href:"/docs/guide/migration#updating-command-line-scripts"},"dedicated section")," in the migration guide;"),(0,o.yg)("li",{parentName:"ul"},"CLI: dropped deprecated ",(0,o.yg)("inlineCode",{parentName:"li"},"--device-launch-args")," (",(0,o.yg)("a",{parentName:"li",href:"https://github.com/wix/Detox/pull/3665"},"#3665"),");"),(0,o.yg)("li",{parentName:"ul"},"Config: discontinued kebab-case properties: ",(0,o.yg)("inlineCode",{parentName:"li"},"test-runner"),", ",(0,o.yg)("inlineCode",{parentName:"li"},"runner-config")," (",(0,o.yg)("a",{parentName:"li",href:"https://github.com/wix/Detox/pull/3371"},"#3371"),")"),(0,o.yg)("li",{parentName:"ul"},"Config: discontinued ",(0,o.yg)("inlineCode",{parentName:"li"},"skipLegacyWorkersInjections")," property (",(0,o.yg)("a",{parentName:"li",href:"https://github.com/wix/Detox/pull/3286"},"(#3286)"),")"),(0,o.yg)("li",{parentName:"ul"},"Config: deprecated ",(0,o.yg)("inlineCode",{parentName:"li"},"specs")," and ",(0,o.yg)("inlineCode",{parentName:"li"},"runnerConfig")," properties"),(0,o.yg)("li",{parentName:"ul"},"Config: changed ",(0,o.yg)("a",{parentName:"li",href:"/docs/config/testRunner"},"semantics")," of ",(0,o.yg)("inlineCode",{parentName:"li"},"testRunner")," property"),(0,o.yg)("li",{parentName:"ul"},"Config: dropped support for all-in-one configurations (",(0,o.yg)("a",{parentName:"li",href:"https://github.com/wix/Detox/pull/3386"},"#3386"),");"),(0,o.yg)("li",{parentName:"ul"},"Android: remove deprecated native IdlePolicyConfig (",(0,o.yg)("a",{parentName:"li",href:"https://github.com/wix/Detox/pull/3332/files"},"#3332"),")"),(0,o.yg)("li",{parentName:"ul"},"iOS: discontinued ",(0,o.yg)("inlineCode",{parentName:"li"},"ios.none")," device type \u2013 see the new way to ",(0,o.yg)("a",{parentName:"li",href:"/docs/introduction/debugging#native-application-code"},"debug native code")," (",(0,o.yg)("a",{parentName:"li",href:"https://github.com/wix/Detox/pull/3361"},"#3361"),")")),(0,o.yg)("h2",{id:"afterword"},"Afterword"),(0,o.yg)("p",null,"Over the last year and a half, we have established a centralized configuration system for more than 50 projects using Detox at Wix. While it never seemed to be a cakewalk, the entire experience of troubleshooting over a hundred issues across the organization did not leave us unchanged."),(0,o.yg)("p",null,"We see numerous things to improve in Detox, but most of them boil down to the same thing \u2013 ",(0,o.yg)("strong",{parentName:"p"},"scaling"),'. Surprisingly, "scaling" makes an excellent umbrella term for nearly every challenge we\'ve been encountering lately:'),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("em",{parentName:"li"},"scaling up the number of users")," requires us to improve the onboarding and troubleshooting experience;"),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("em",{parentName:"li"},"scaling up the number of projects")," forces us to centralize scattered configs into flexible organization presets;"),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("em",{parentName:"li"},"scaling up the number of tests")," prompts us to optimize the codebase and incline it towards cloud and remote execution.")),(0,o.yg)("p",null,"Our core team has been facing challenges of limited human resource constraints and growing scaling needs for a long time. In many ways, that has shaped a specific mindset within the team. We evaluate every discussed feature by asking a simple question: ",(0,o.yg)("em",{parentName:"p"},"will it save other people and us time to focus on more important things?")," Teaching a man to fish is better than giving fish, so our success at preventing support issues matters more than our success at solving them ourselves."),(0,o.yg)("p",null,"That's why we'll be making subsequent efforts in these three areas, hoping to get back to you soon with even more exciting updates."),(0,o.yg)("p",null,"Enjoy your drive with Detox 20!"),(0,o.yg)("p",null,"Cheers! \ud83d\udc4b"),(0,o.yg)("div",{className:"footnotes"},(0,o.yg)("hr",{parentName:"div"}),(0,o.yg)("ol",{parentName:"div"},(0,o.yg)("li",{parentName:"ol",id:"fn-1-2b8cfe"},"The mentioned threshold is not a hard limit, but rather a point where the return value of scaling up the number of devices starts dramatically diminishing in our case \u2013 not only the tests themselves, but installing NPM dependencies and building the projects also takes time.",(0,o.yg)("a",{parentName:"li",href:"#fnref-1-2b8cfe",className:"footnote-backref"},"\u21a9")))))}d.isMDXComponent=!0},72716:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/v20-logger-options-be0263e8b33e617b2a4ef55861d45e4a.png"},27709:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/v20-perfetto-example-171220190ff552d655a9a0712e2c04ed.png"}}]); \ No newline at end of file diff --git a/assets/js/f98b7248.dff8ac9c.js b/assets/js/f98b7248.dff8ac9c.js new file mode 100644 index 0000000000..41d78771a9 --- /dev/null +++ b/assets/js/f98b7248.dff8ac9c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6941],{15680:(e,t,n)=>{n.d(t,{xA:()=>u,yg:()=>c});var o=n(96540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function r(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=o.createContext({}),p=function(e){var t=o.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},u=function(e){var t=p(e.components);return o.createElement(l.Provider,{value:t},e.children)},g="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},m=o.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),g=p(n),m=a,c=g["".concat(l,".").concat(m)]||g[m]||d[m]||i;return n?o.createElement(c,r(r({ref:t},u),{},{components:n})):o.createElement(c,r({ref:t},u))}));function c(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,r=new Array(i);r[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[g]="string"==typeof e?e:a,r[1]=s;for(var p=2;p{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>p});var o=n(58168),a=(n(96540),n(15680));const i={authors:["noomorph"],tags:["major-release","genymotion"]},r="Detox 20 is out",s={permalink:"/Detox/blog/2022/11/10/detox-20-is-out",editUrl:"https://github.com/wix/Detox/edit/master/website/blog/2022-11-10-detox-20-is-out.md",source:"@site/blog/2022-11-10-detox-20-is-out.md",title:"Detox 20 is out",description:'Today we\'re proud to announce the new major release, Detox 20 (codename "Ash\xe1n"), which brings:',date:"2022-11-10T00:00:00.000Z",formattedDate:"November 10, 2022",tags:[{label:"major-release",permalink:"/Detox/blog/tags/major-release"},{label:"genymotion",permalink:"/Detox/blog/tags/genymotion"}],readingTime:9.705,hasTruncateMarker:!1,authors:[{name:"Yaroslav Serhieiev",title:"Detox Core Contributor",url:"https://github.com/noomorph",imageURL:"https://github.com/noomorph.png",key:"noomorph"}],frontMatter:{authors:["noomorph"],tags:["major-release","genymotion"]},prevItem:{title:"Introducing Detox Copilot",permalink:"/Detox/blog/2024/09/30/detox-copilot-is-out"}},l={authorsImageUrls:[void 0]},p=[{value:"Genymotion SaaS",id:"genymotion-saas",level:2},{value:"Integration with test runners",id:"integration-with-test-runners",level:2},{value:"Configurable logger",id:"configurable-logger",level:2},{value:"Minor features",id:"minor-features",level:2},{value:"Headless iOS",id:"headless-ios",level:3},{value:"Reverse ports",id:"reverse-ports",level:3},{value:"Read-only emulators by default",id:"read-only-emulators-by-default",level:3},{value:"Reset lock file",id:"reset-lock-file",level:3},{value:"Deprecations",id:"deprecations",level:2},{value:"Afterword",id:"afterword",level:2}],u={toc:p},g="wrapper";function d(e){let{components:t,...i}=e;return(0,a.yg)(g,(0,o.A)({},u,i,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("p",null,"Today we're proud to announce the new major release, ",(0,a.yg)("strong",{parentName:"p"},"Detox 20"),' (codename "Ash\xe1n"), which brings:'),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"official support for Genymotion SaaS"),(0,a.yg)("li",{parentName:"ul"},"improved integration with test runners"),(0,a.yg)("li",{parentName:"ul"},"configurable logging subsystem"),(0,a.yg)("li",{parentName:"ul"},"headless mode for iOS via configs and CLI"),(0,a.yg)("li",{parentName:"ul"},"reversing TCP ports via Android app configs"),(0,a.yg)("li",{parentName:"ul"},"and more optimizations to land in the next minor versions.")),(0,a.yg)("h2",{id:"genymotion-saas"},"Genymotion SaaS"),(0,a.yg)("p",null,(0,a.yg)("strong",{parentName:"p"},"Highlights"),": ",(0,a.yg)("a",{parentName:"p",href:"/docs/guide/genymotion-saas"},(0,a.yg)("inlineCode",{parentName:"a"},"Using Genymotion SaaS")),"."),(0,a.yg)("p",null,"Two years ago we ",(0,a.yg)("a",{parentName:"p",href:"https://github.com/wix/Detox/pull/2446"},"added elementary support")," for cloud-based Android emulators provided by ",(0,a.yg)("a",{parentName:"p",href:"https://cloud.geny.io"},"Genymotion SaaS")," and started a beta testing phase across mobile projects at Wix."),(0,a.yg)("p",null,"Previously our mobile infrastructure engineers had been maintaining Android virtual devices on CI build agents on their own, so switching to cloud devices cleared up their time for more productive tasks. Another improvement was particularly noticeable for teams with a vast number of tests. We could reduce the duration of their CI pipelines almost by half after they scaled up from 2 parallel devices to 6",(0,a.yg)("sup",{parentName:"p",id:"fnref-1-2b8cfe"},(0,a.yg)("a",{parentName:"sup",href:"#fn-1-2b8cfe",className:"footnote-ref"},"1")),"."),(0,a.yg)("p",null,"This positive impact encouraged us to adopt ",(0,a.yg)("a",{parentName:"p",href:"https://cloud.geny.io"},"Genymotion SaaS")," for CI as quickly as possible, ignoring some unresolved issues in the initial pull request. For the most part, those were minor problems in global lifecycle management. Yet that made us feel uncertain about releasing it as-is, so we decided to take time and gain more production experience before taking any direction."),(0,a.yg)("p",null,"The further experience was surprisingly smooth and rarely presented issues, spare for a few minor ",(0,a.yg)("a",{parentName:"p",href:"https://github.com/wix/Detox/issues/3573"},"glitches")," in advanced scenarios. Admittedly, revamping the ",(0,a.yg)("a",{parentName:"p",href:"/docs/api/internals"},"Detox lifecycle")," took us longer than expected, which is all the more reason for us to celebrate today."),(0,a.yg)("p",null,"We're looking forward to providing our users with more opportunities for testing in the cloud, and this step is only the first of many to come. We hope you'll utilize this new feature to your delight."),(0,a.yg)("h2",{id:"integration-with-test-runners"},"Integration with test runners"),(0,a.yg)("p",null,(0,a.yg)("strong",{parentName:"p"},"Highlights"),": ",(0,a.yg)("a",{parentName:"p",href:"/docs/config/testRunner"},(0,a.yg)("inlineCode",{parentName:"a"},"Config file > Test runner")),", ",(0,a.yg)("a",{parentName:"p",href:"/docs/api/internals"},(0,a.yg)("inlineCode",{parentName:"a"},"Internals API")),", ",(0,a.yg)("a",{parentName:"p",href:"https://github.com/wix/Detox/issues/3193"},(0,a.yg)("inlineCode",{parentName:"a"},"Dropping Mocha support")),"."),(0,a.yg)("p",null,"It took about a few months of work to formalize the contract between Detox and a test runner. While there's still a lot of place for improvement, the new Detox release refines their interaction and lays the groundwork for third-party integrations."),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://mochajs.org"},"Mocha")," was our first supported test runner, but unfortunately, it could not keep up with our scaling requirements as the number of end-to-end tests grew. ",(0,a.yg)("a",{parentName:"p",href:"https://github.com/mochajs/mocha/releases/tag/v8.0.0"},"By the time")," it acquired the ability to run tests in parallel, we already had ",(0,a.yg)("a",{parentName:"p",href:"https://github.com/wix/Detox/pull/609"},"to place bets")," on another horse, and that was ",(0,a.yg)("a",{parentName:"p",href:"https://jestjs.io"},"Jest"),"."),(0,a.yg)("p",null,"We attempted to keep compatibility with both Jest and Mocha, but the farther we went, the more obvious it was that we couldn't have it both ways. As it turned out, Jest wasn't easy to get along with \u2013 our first integration with it was too simplistic. Over a couple of years of use in production, we kept discovering various issues that forced us to rewrite our \"glue\" code from scratch twice, and this isn't over yet. All combined didn't leave much time and energy for tinkering with Mocha anymore."),(0,a.yg)("p",null,"In this release, we discontinued Mocha support to focus on the attunement of Jest with the new runner-independent ",(0,a.yg)("a",{parentName:"p",href:"/docs/config/testRunner"},"test runner config")," and ",(0,a.yg)("a",{parentName:"p",href:"/docs/api/internals"},"Internals API"),". If there's enough demand, now it is up to the open-source community to build a new integration between Detox and Mocha."),(0,a.yg)("h2",{id:"configurable-logger"},"Configurable logger"),(0,a.yg)("p",null,(0,a.yg)("strong",{parentName:"p"},"Highlights"),": ",(0,a.yg)("a",{parentName:"p",href:"/docs/config/logger"},(0,a.yg)("inlineCode",{parentName:"a"},"Config file > Logger")),", ",(0,a.yg)("a",{parentName:"p",href:"/docs/api/logger"},(0,a.yg)("inlineCode",{parentName:"a"},"Logger API")),"."),(0,a.yg)("p",null,"The rigidity of the logging subsystem has always been showing itself ",(0,a.yg)("a",{parentName:"p",href:"https://github.com/wix/Detox/pull/835"},"since its very creation")," in the summer of 2019.\nDue to time constraints and existing tech debts, it was impossible to do it right the first time, so we lived about three years with a proof-of-concept rather than a full-fledged feature."),(0,a.yg)("p",null,"The inconveniences weren't fatal but quite noticeable, nevertheless. Here are a few syndromes you could have spotted if you have ever used Detox timeline and log artifacts, especially when running tests in parallel:"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"an uncanny file array: ",(0,a.yg)("inlineCode",{parentName:"li"},"detox_pid_7505.log"),", ",(0,a.yg)("inlineCode",{parentName:"li"},"detox_pid_7505.log.json"),", ",(0,a.yg)("inlineCode",{parentName:"li"},"detox_pid_7506.log"),";"),(0,a.yg)("li",{parentName:"ul"},"a relatively shallow ",(0,a.yg)("inlineCode",{parentName:"li"},"detox.trace.json"),": test suites, test functions, and some user-defined segments.")),(0,a.yg)("p",null,"The good news is that the new Detox release condenses all those numerous logs into two files:"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"the plain, human-readable ",(0,a.yg)("inlineCode",{parentName:"li"},"detox.log"),";"),(0,a.yg)("li",{parentName:"ul"},"the raw, machine-readable ",(0,a.yg)("inlineCode",{parentName:"li"},"detox.trace.json")," for ",(0,a.yg)("inlineCode",{parentName:"li"},"chrome://trace"),", ",(0,a.yg)("a",{parentName:"li",href:"https://ui.perfetto.dev/"},"Perfetto")," and other utilities.")),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"A screenshot of timeline view generated by Perfetto",src:n(27709).A,width:"1600",height:"1000"})),(0,a.yg)("p",null,"With the help of the new ",(0,a.yg)("a",{parentName:"p",href:"/docs/api/logger"},"Logger API"),", you can add custom duration events to the timeline, too, e.g.:"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-js"},"await detox.log.trace.complete('Login', async () => {\n await element(by.id('email')).typeText('john@example.com');\n await element(by.id('password')).typeText('123456');\n\n detox.log.info('Trying to log in...');\n await element(by.id('submit')).tap();\n});\n")),(0,a.yg)("p",null,"Besides, it is possible now to customize the console output of Detox via the new ",(0,a.yg)("a",{parentName:"p",href:"/docs/config/logger"},"logger config"),", e.g.:"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-js",metastring:'title="detox.config.js"',title:'"detox.config.js"'},"/** @type {Detox.DetoxConfig} */\nmodule.exports = {\n // ...\n logger: {\n options: {\n showDate: false,\n showLoggerName: false,\n showPid: false,\n prefixers: {\n ph: null,\n },\n },\n },\n};\n")),(0,a.yg)("p",null,"In the example above, we minimize all the metadata around the log messages \u2013 see the screenshot below:"),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"Terser logs after applying the override",src:n(72716).A,width:"1400",height:"399"})),(0,a.yg)("h2",{id:"minor-features"},"Minor features"),(0,a.yg)("h3",{id:"headless-ios"},"Headless iOS"),(0,a.yg)("p",null,"One of Detox known issues was always booting iOS simulators in a hidden mode. You could see tests running on your local simulator only if you had manually opened the Simulator app beforehand. So, we unified the ",(0,a.yg)("inlineCode",{parentName:"p"},"headless")," property for both iOS and Android, and now both the platforms visibly boot a device unless you configure it otherwise, e.g.:"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-js"},"/* @type {Detox.DetoxConfig} */\nmodule.exports = {\n devices: {\n iphone: {\n type: 'ios.simulator',\n // highlight-next-line\n headless: process.env.CI ? true : undefined,\n device: {\n type: 'iPhone 14'\n },\n /* ... */\n }\n },\n};\n")),(0,a.yg)("p",null,"or, via CLI:"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-bash"},"detox test -c ios.sim.release --headless\n")),(0,a.yg)("h3",{id:"reverse-ports"},"Reverse ports"),(0,a.yg)("p",null,"Your apps might try to access some ",(0,a.yg)("inlineCode",{parentName:"p"},"localhost:*")," addresses (e.g., mock servers), but this is a bit more problematic in the case of Android. The Android emulators are separate virtual devices with their own loopback network interface. In such cases, you must set up reverse port forwarding via ",(0,a.yg)("inlineCode",{parentName:"p"},"adb reverse"),"."),(0,a.yg)("p",null,"Local servers are quite a common prerequisite for apps in debug mode \u2013 one could recall React Native bundler on port 8081, Storybook server on 9009, etc. That's why we decided to add an optional config property for Android apps, ",(0,a.yg)("inlineCode",{parentName:"p"},"reversePorts"),":"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-js"},"/** @type {Detox.DetoxConfig} */\nmodule.exports = {\n // ...\n apps: {\n 'android.debug': {\n type: 'android.apk',\n binaryPath: '...',\n reversePorts: [8081, 3000],\n },\n },\n};\n")),(0,a.yg)("p",null,"In other words, this is a convenience API that tells Detox to run ",(0,a.yg)("inlineCode",{parentName:"p"},"device.reverseTcpPort(portNumber)")," after installing the app. It should be helpful for anyone who prefers to keep such things as configs rather than as code."),(0,a.yg)("h3",{id:"read-only-emulators-by-default"},"Read-only emulators by default"),(0,a.yg)("p",null,"The ",(0,a.yg)("inlineCode",{parentName:"p"},"-read-only")," flag appeared in ",(0,a.yg)("a",{parentName:"p",href:"https://developer.android.com/studio/releases/emulator#concurrent-avd"},"Android emulator 28.0.16"),". Detox promptly adopted it since the read-only mode allowed it to run multiple instances of a single Android virtual device (AVD) concurrently. This feature helped us to implement parallel test execution support for Android back then."),(0,a.yg)("p",null,"Being overcautious, we implemented that partially, only for cases when the user starts multiple concurrent workers. This decision created a moderately annoying UX issue. Imagine you run tests sequentially first, using one worker only. That provides you with a regular AVD instance, i.e., not a read-only one. After that, you switch to multiple workers only to get an error from the Android emulator, complaining about mixing regular and read-only instances."),(0,a.yg)("p",null,"While the fix itself has always been straightforward \u2013 close the running AVD and try again \u2013 this entire overcaution brought more issues than solving them. That's why, from now on, Android emulators will always be starting in ",(0,a.yg)("inlineCode",{parentName:"p"},"-read-only")," mode unless you configure ",(0,a.yg)("inlineCode",{parentName:"p"},"readonly: false")," in your ",(0,a.yg)("a",{parentName:"p",href:"/docs/config/devices"},"device config"),"."),(0,a.yg)("h3",{id:"reset-lock-file"},"Reset lock file"),(0,a.yg)("p",null,"This release adds a small CLI tool, ",(0,a.yg)("a",{parentName:"p",href:"/docs/cli/reset-lock-file"},(0,a.yg)("inlineCode",{parentName:"a"},"detox reset-lock-file")),", to help users with one specific use scenario."),(0,a.yg)("p",null,"Imagine you want to run tests for multiple Detox configurations at once, e.g.:"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-bash"},"detox test -c iphoneSE2020.release e2e/ui.test.js\ndetox test -c iphone14ProMax.release e2e/ui.test.js\n")),(0,a.yg)("p",null,"The problem is that Detox uses a file-locking mechanism to avoid situations when parallel test workers would take control of the same device. The ",(0,a.yg)("inlineCode",{parentName:"p"},"detox test")," command, upon start, erases that file contents, creating a race condition risk."),(0,a.yg)("p",null,"To eliminate that risk, use a combination of ",(0,a.yg)("inlineCode",{parentName:"p"},"detox reset-lock-file")," and ",(0,a.yg)("inlineCode",{parentName:"p"},"--keepLockFile")," like this:"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-bash"},"detox reset-lock-file & \\\ndetox test --keepLockFile -c iphoneSE2020.release e2e/ui.test.js & \\\ndetox test --keepLockFile -c iphone14ProMax.release e2e/ui.test.js & \\\nwait\n")),(0,a.yg)("p",null,"In the future, we plan to minimize using lock files so that you don't have to think about this low-level implementation detail.\nSo, this tool adds some convenience until we provide a next-gen solution."),(0,a.yg)("h2",{id:"deprecations"},"Deprecations"),(0,a.yg)("p",null,"Detox 20 executes many pending deprecations, so make sure to check out our ",(0,a.yg)("a",{parentName:"p",href:"/docs/guide/migration#200"},"Migration Guide")," before upgrading:"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"JS: minimum supported Node.js version is ",(0,a.yg)("inlineCode",{parentName:"li"},"14.x"),";"),(0,a.yg)("li",{parentName:"ul"},"JS: minimum supported Jest version is ",(0,a.yg)("inlineCode",{parentName:"li"},"27.2.5"),";"),(0,a.yg)("li",{parentName:"ul"},"JS: Mocha test runner is no longer supported;"),(0,a.yg)("li",{parentName:"ul"},"JS: discontinued old adapters for Jest (",(0,a.yg)("inlineCode",{parentName:"li"},"jest-jasmine"),", first generation of ",(0,a.yg)("inlineCode",{parentName:"li"},"jest-circus")," adapter);"),(0,a.yg)("li",{parentName:"ul"},"JS: discontinued ",(0,a.yg)("inlineCode",{parentName:"li"},"{ permanent: true }")," option in ",(0,a.yg)("inlineCode",{parentName:"li"},"device.appLaunchArgs.*")," methods (",(0,a.yg)("a",{parentName:"li",href:"https://github.com/wix/Detox/pull/3360"},"#3360"),");"),(0,a.yg)("li",{parentName:"ul"},"CLI: dropped ",(0,a.yg)("inlineCode",{parentName:"li"},"-w, --workers")," and ",(0,a.yg)("inlineCode",{parentName:"li"},"-o, --runner-config")," args \u2013 see a ",(0,a.yg)("a",{parentName:"li",href:"/docs/guide/migration#updating-command-line-scripts"},"dedicated section")," in the migration guide;"),(0,a.yg)("li",{parentName:"ul"},"CLI: dropped deprecated ",(0,a.yg)("inlineCode",{parentName:"li"},"--device-launch-args")," (",(0,a.yg)("a",{parentName:"li",href:"https://github.com/wix/Detox/pull/3665"},"#3665"),");"),(0,a.yg)("li",{parentName:"ul"},"Config: discontinued kebab-case properties: ",(0,a.yg)("inlineCode",{parentName:"li"},"test-runner"),", ",(0,a.yg)("inlineCode",{parentName:"li"},"runner-config")," (",(0,a.yg)("a",{parentName:"li",href:"https://github.com/wix/Detox/pull/3371"},"#3371"),")"),(0,a.yg)("li",{parentName:"ul"},"Config: discontinued ",(0,a.yg)("inlineCode",{parentName:"li"},"skipLegacyWorkersInjections")," property (",(0,a.yg)("a",{parentName:"li",href:"https://github.com/wix/Detox/pull/3286"},"(#3286)"),")"),(0,a.yg)("li",{parentName:"ul"},"Config: deprecated ",(0,a.yg)("inlineCode",{parentName:"li"},"specs")," and ",(0,a.yg)("inlineCode",{parentName:"li"},"runnerConfig")," properties"),(0,a.yg)("li",{parentName:"ul"},"Config: changed ",(0,a.yg)("a",{parentName:"li",href:"/docs/config/testRunner"},"semantics")," of ",(0,a.yg)("inlineCode",{parentName:"li"},"testRunner")," property"),(0,a.yg)("li",{parentName:"ul"},"Config: dropped support for all-in-one configurations (",(0,a.yg)("a",{parentName:"li",href:"https://github.com/wix/Detox/pull/3386"},"#3386"),");"),(0,a.yg)("li",{parentName:"ul"},"Android: remove deprecated native IdlePolicyConfig (",(0,a.yg)("a",{parentName:"li",href:"https://github.com/wix/Detox/pull/3332/files"},"#3332"),")"),(0,a.yg)("li",{parentName:"ul"},"iOS: discontinued ",(0,a.yg)("inlineCode",{parentName:"li"},"ios.none")," device type \u2013 see the new way to ",(0,a.yg)("a",{parentName:"li",href:"/docs/introduction/debugging#native-application-code"},"debug native code")," (",(0,a.yg)("a",{parentName:"li",href:"https://github.com/wix/Detox/pull/3361"},"#3361"),")")),(0,a.yg)("h2",{id:"afterword"},"Afterword"),(0,a.yg)("p",null,"Over the last year and a half, we have established a centralized configuration system for more than 50 projects using Detox at Wix. While it never seemed to be a cakewalk, the entire experience of troubleshooting over a hundred issues across the organization did not leave us unchanged."),(0,a.yg)("p",null,"We see numerous things to improve in Detox, but most of them boil down to the same thing \u2013 ",(0,a.yg)("strong",{parentName:"p"},"scaling"),'. Surprisingly, "scaling" makes an excellent umbrella term for nearly every challenge we\'ve been encountering lately:'),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("em",{parentName:"li"},"scaling up the number of users")," requires us to improve the onboarding and troubleshooting experience;"),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("em",{parentName:"li"},"scaling up the number of projects")," forces us to centralize scattered configs into flexible organization presets;"),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("em",{parentName:"li"},"scaling up the number of tests")," prompts us to optimize the codebase and incline it towards cloud and remote execution.")),(0,a.yg)("p",null,"Our core team has been facing challenges of limited human resource constraints and growing scaling needs for a long time. In many ways, that has shaped a specific mindset within the team. We evaluate every discussed feature by asking a simple question: ",(0,a.yg)("em",{parentName:"p"},"will it save other people and us time to focus on more important things?")," Teaching a man to fish is better than giving fish, so our success at preventing support issues matters more than our success at solving them ourselves."),(0,a.yg)("p",null,"That's why we'll be making subsequent efforts in these three areas, hoping to get back to you soon with even more exciting updates."),(0,a.yg)("p",null,"Enjoy your drive with Detox 20!"),(0,a.yg)("p",null,"Cheers! \ud83d\udc4b"),(0,a.yg)("div",{className:"footnotes"},(0,a.yg)("hr",{parentName:"div"}),(0,a.yg)("ol",{parentName:"div"},(0,a.yg)("li",{parentName:"ol",id:"fn-1-2b8cfe"},"The mentioned threshold is not a hard limit, but rather a point where the return value of scaling up the number of devices starts dramatically diminishing in our case \u2013 not only the tests themselves, but installing NPM dependencies and building the projects also takes time.",(0,a.yg)("a",{parentName:"li",href:"#fnref-1-2b8cfe",className:"footnote-backref"},"\u21a9")))))}d.isMDXComponent=!0},72716:(e,t,n)=>{n.d(t,{A:()=>o});const o=n.p+"assets/images/v20-logger-options-be0263e8b33e617b2a4ef55861d45e4a.png"},27709:(e,t,n)=>{n.d(t,{A:()=>o});const o=n.p+"assets/images/v20-perfetto-example-171220190ff552d655a9a0712e2c04ed.png"}}]); \ No newline at end of file diff --git a/assets/js/main.2857f36d.js b/assets/js/main.2857f36d.js new file mode 100644 index 0000000000..869977e671 --- /dev/null +++ b/assets/js/main.2857f36d.js @@ -0,0 +1,2 @@ +/*! For license information please see main.2857f36d.js.LICENSE.txt */ +(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8792],{55600:(e,t,n)=>{"use strict";n.d(t,{Bc:()=>g,E8:()=>Un,a1:()=>zn});var r=n(96540);n(40961);function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function l(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,i=[],a=!0,c=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);a=!0);}catch(e){c=!0,o=e}finally{try{a||null==n.return||n.return()}finally{if(c)throw o}}return i}}(e,t)||d(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(e){return function(e){if(Array.isArray(e))return f(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||d(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function d(e,t){if(e){if("string"==typeof e)return f(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?f(e,t):void 0}}function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function N(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function j(e){for(var t=1;t=3||2===n&&r>=4||1===n&&r>=10);function i(t,n,r){if(o&&void 0!==r){var i=r[0].__autocomplete_algoliaCredentials,a={"X-Algolia-Application-Id":i.appId,"X-Algolia-API-Key":i.apiKey};e.apply(void 0,[t].concat(P(n),[{headers:a}]))}else e.apply(void 0,[t].concat(P(n)))}return{init:function(t,n){e("init",{appId:t,apiKey:n})},setUserToken:function(t){e("setUserToken",t)},clickedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&i("clickedObjectIDsAfterSearch",M(t),t[0].items)},clickedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&i("clickedObjectIDs",M(t),t[0].items)},clickedFilters:function(){for(var t=arguments.length,n=new Array(t),r=0;r0&&e.apply(void 0,["clickedFilters"].concat(n))},convertedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&i("convertedObjectIDsAfterSearch",M(t),t[0].items)},convertedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&i("convertedObjectIDs",M(t),t[0].items)},convertedFilters:function(){for(var t=arguments.length,n=new Array(t),r=0;r0&&e.apply(void 0,["convertedFilters"].concat(n))},viewedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&t.reduce((function(e,t){var n=t.items,r=R(t,C);return[].concat(P(e),P(function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:20,n=[],r=0;r0&&e.apply(void 0,["viewedFilters"].concat(n))}}}function F(e){var t=e.items.reduce((function(e,t){var n;return e[t.__autocomplete_indexName]=(null!==(n=e[t.__autocomplete_indexName])&&void 0!==n?n:[]).concat(t),e}),{});return Object.keys(t).map((function(e){return{index:e,items:t[e],algoliaSource:["autocomplete"]}}))}function z(e){return e.objectID&&e.__autocomplete_indexName&&e.__autocomplete_queryID}function U(e){return U="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},U(e)}function $(e){return function(e){if(Array.isArray(e))return q(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return q(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?q(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function q(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&K({onItemsChange:r,items:n,insights:c,state:t}))}}),0);return{name:"aa.algoliaInsightsPlugin",subscribe:function(e){var t=e.setContext,n=e.onSelect,r=e.onActive;a("addAlgoliaAgent","insights-plugin"),t({algoliaInsightsPlugin:{__algoliaSearchParameters:{clickAnalytics:!0},insights:c}}),n((function(e){var t=e.item,n=e.state,r=e.event;z(t)&&o({state:n,event:r,insights:c,item:t,insightsEvents:[V({eventName:"Item Selected"},D({item:t,items:s.current}))]})})),r((function(e){var t=e.item,n=e.state,r=e.event;z(t)&&i({state:n,event:r,insights:c,item:t,insightsEvents:[V({eventName:"Item Active"},D({item:t,items:s.current}))]})}))},onStateChange:function(e){var t=e.state;l({state:t})},__autocomplete_pluginOptions:e}}function Q(e,t){var n=t;return{then:function(t,r){return Q(e.then(X(t,n,e),X(r,n,e)),n)},catch:function(t){return Q(e.catch(X(t,n,e)),n)},finally:function(t){return t&&n.onCancelList.push(t),Q(e.finally(X(t&&function(){return n.onCancelList=[],t()},n,e)),n)},cancel:function(){n.isCanceled=!0;var e=n.onCancelList;n.onCancelList=[],e.forEach((function(e){e()}))},isCanceled:function(){return!0===n.isCanceled}}}function Z(e){return Q(e,{isCanceled:!1,onCancelList:[]})}function X(e,t,n){return e?function(n){return t.isCanceled?n:e(n)}:n}function J(e,t,n,r){if(!n)return null;if(e<0&&(null===t||null!==r&&0===t))return n+e;var o=(null===t?-1:t)+e;return o<=-1||o>=n?null===r?null:0:o}function ee(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function te(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n0},reshape:function(e){return e.sources}},e),{},{id:null!==(n=e.id)&&void 0!==n?n:"autocomplete-".concat(x++),plugins:o,initialState:ge({activeItemId:null,query:"",completion:null,collections:[],isOpen:!1,status:"idle",context:{}},e.initialState),onStateChange:function(t){var n;null===(n=e.onStateChange)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onStateChange)||void 0===n?void 0:n.call(e,t)}))},onSubmit:function(t){var n;null===(n=e.onSubmit)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onSubmit)||void 0===n?void 0:n.call(e,t)}))},onReset:function(t){var n;null===(n=e.onReset)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onReset)||void 0===n?void 0:n.call(e,t)}))},getSources:function(n){return Promise.all([].concat(function(e){return function(e){if(Array.isArray(e))return he(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return he(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?he(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(o.map((function(e){return e.getSources}))),[e.getSources]).filter(Boolean).map((function(e){return function(e,t){var n=[];return Promise.resolve(e(t)).then((function(e){return Promise.all(e.filter((function(e){return Boolean(e)})).map((function(e){if(e.sourceId,n.includes(e.sourceId))throw new Error("[Autocomplete] The `sourceId` ".concat(JSON.stringify(e.sourceId)," is not unique."));n.push(e.sourceId);var t={getItemInputValue:function(e){return e.state.query},getItemUrl:function(){},onSelect:function(e){(0,e.setIsOpen)(!1)},onActive:E,onResolve:E};Object.keys(t).forEach((function(e){t[e].__default=!0}));var r=te(te({},t),e);return Promise.resolve(r)})))}))}(e,n)}))).then((function(e){return y(e)})).then((function(e){return e.map((function(e){return ge(ge({},e),{},{onSelect:function(n){e.onSelect(n),t.forEach((function(e){var t;return null===(t=e.onSelect)||void 0===t?void 0:t.call(e,n)}))},onActive:function(n){e.onActive(n),t.forEach((function(e){var t;return null===(t=e.onActive)||void 0===t?void 0:t.call(e,n)}))},onResolve:function(n){e.onResolve(n),t.forEach((function(e){var t;return null===(t=e.onResolve)||void 0===t?void 0:t.call(e,n)}))}})}))}))},navigator:ge({navigate:function(e){var t=e.itemUrl;r.location.assign(t)},navigateNewTab:function(e){var t=e.itemUrl,n=r.open(t,"_blank","noopener");null==n||n.focus()},navigateNewWindow:function(e){var t=e.itemUrl;r.open(t,"_blank","noopener")}},e.navigator)})}function ye(e){return ye="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ye(e)}function xe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function we(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,Ie);Fe&&o.environment.clearTimeout(Fe);var l=s.setCollections,u=s.setIsOpen,d=s.setQuery,f=s.setActiveItemId,p=s.setStatus;if(d(i),f(o.defaultActiveItemId),!i&&!1===o.openOnFocus){var h,m=c.getState().collections.map((function(e){return Ne(Ne({},e),{},{items:[]})}));p("idle"),l(m),u(null!==(h=r.isOpen)&&void 0!==h?h:o.shouldPanelOpen({state:c.getState()}));var g=Z(ze(m).then((function(){return Promise.resolve()})));return c.pendingRequests.add(g)}p("loading"),Fe=o.environment.setTimeout((function(){p("stalled")}),o.stallThreshold);var b=Z(ze(o.getSources(Ne({query:i,refresh:a,state:c.getState()},s)).then((function(e){return Promise.all(e.map((function(e){return Promise.resolve(e.getItems(Ne({query:i,refresh:a,state:c.getState()},s))).then((function(t){return function(e,t,n){if(o=e,Boolean(null==o?void 0:o.execute)){var r="algolia"===e.requesterId?Object.assign.apply(Object,[{}].concat(Ae(Object.keys(n.context).map((function(e){var t;return null===(t=n.context[e])||void 0===t?void 0:t.__algoliaSearchParameters}))))):{};return ke(ke({},e),{},{requests:e.queries.map((function(n){return{query:"algolia"===e.requesterId?ke(ke({},n),{},{params:ke(ke({},r),n.params)}):n,sourceId:t,transformResponse:e.transformResponse}}))})}var o;return{items:e,sourceId:t}}(t,e.sourceId,c.getState())}))}))).then(Te).then((function(t){return function(e,t,n){return t.map((function(t){var r,o=e.filter((function(e){return e.sourceId===t.sourceId})),i=o.map((function(e){return e.items})),a=o[0].transformResponse,c=a?a({results:r=i,hits:r.map((function(e){return e.hits})).filter(Boolean),facetHits:r.map((function(e){var t;return null===(t=e.facetHits)||void 0===t?void 0:t.map((function(e){return{label:e.value,count:e.count,_highlightResult:{label:{value:e.highlighted}}}}))})).filter(Boolean)}):i;return t.onResolve({source:t,results:i,items:c,state:n.getState()}),c.every(Boolean),'The `getItems` function from source "'.concat(t.sourceId,'" must return an array of items but returned ').concat(JSON.stringify(void 0),".\n\nDid you forget to return items?\n\nSee: https://www.algolia.com/doc/ui-libraries/autocomplete/core-concepts/sources/#param-getitems"),{source:t,items:c}}))}(t,e,c)})).then((function(e){return function(e){var t=e.props,n=e.state,r=e.collections.reduce((function(e,t){return we(we({},e),{},Se({},t.source.sourceId,we(we({},t.source),{},{getItems:function(){return y(t.items)}})))}),{}),o=t.plugins.reduce((function(e,t){return t.reshape?t.reshape(e):e}),{sourcesBySourceId:r,state:n}).sourcesBySourceId;return y(t.reshape({sourcesBySourceId:o,sources:Object.values(o),state:n})).filter(Boolean).map((function(e){return{source:e,items:e.getItems()}}))}({collections:e,props:o,state:c.getState()})}))})))).then((function(e){var n;p("idle"),l(e);var d=o.shouldPanelOpen({state:c.getState()});u(null!==(n=r.isOpen)&&void 0!==n?n:o.openOnFocus&&!i&&d||d);var f=oe(c.getState());if(null!==c.getState().activeItemId&&f){var h=f.item,m=f.itemInputValue,g=f.itemUrl,b=f.source;b.onActive(Ne({event:t,item:h,itemInputValue:m,itemUrl:g,refresh:a,source:b,state:c.getState()},s))}})).finally((function(){p("idle"),Fe&&o.environment.clearTimeout(Fe)}));return c.pendingRequests.add(b)}function $e(e){return $e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},$e(e)}var qe=["event","props","refresh","store"];function He(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ve(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function it(e){var t=e.props,n=e.refresh,r=e.store,o=ot(e,Ke),i=function(e,t){return void 0!==t?"".concat(e,"-").concat(t):e};return{getEnvironmentProps:function(e){var n=e.inputElement,o=e.formElement,i=e.panelElement;function a(e){!r.getState().isOpen&&r.pendingRequests.isEmpty()||e.target===n||!1===[o,i].some((function(t){return(n=t)===(r=e.target)||n.contains(r);var n,r}))&&(r.dispatch("blur",null),t.debug||r.pendingRequests.cancelAll())}return nt({onTouchStart:a,onMouseDown:a,onTouchMove:function(e){!1!==r.getState().isOpen&&n===t.environment.document.activeElement&&e.target!==n&&n.blur()}},ot(e,Ye))},getRootProps:function(e){return nt({role:"combobox","aria-expanded":r.getState().isOpen,"aria-haspopup":"listbox","aria-owns":r.getState().isOpen?"".concat(t.id,"-list"):void 0,"aria-labelledby":"".concat(t.id,"-label")},e)},getFormProps:function(e){return e.inputElement,nt({action:"",noValidate:!0,role:"search",onSubmit:function(i){var a;i.preventDefault(),t.onSubmit(nt({event:i,refresh:n,state:r.getState()},o)),r.dispatch("submit",null),null===(a=e.inputElement)||void 0===a||a.blur()},onReset:function(i){var a;i.preventDefault(),t.onReset(nt({event:i,refresh:n,state:r.getState()},o)),r.dispatch("reset",null),null===(a=e.inputElement)||void 0===a||a.focus()}},ot(e,Qe))},getLabelProps:function(e){var n=e||{},r=n.sourceIndex,o=ot(n,Xe);return nt({htmlFor:"".concat(i(t.id,r),"-input"),id:"".concat(i(t.id,r),"-label")},o)},getInputProps:function(e){var i;function a(e){(t.openOnFocus||Boolean(r.getState().query))&&Ue(nt({event:e,props:t,query:r.getState().completion||r.getState().query,refresh:n,store:r},o)),r.dispatch("focus",null)}var c=e||{},s=(c.inputElement,c.maxLength),l=void 0===s?512:s,u=ot(c,Ze),d=oe(r.getState()),f=function(e){return Boolean(e&&e.match(ie))}((null===(i=t.environment.navigator)||void 0===i?void 0:i.userAgent)||""),p=null!=d&&d.itemUrl&&!f?"go":"search";return nt({"aria-autocomplete":"both","aria-activedescendant":r.getState().isOpen&&null!==r.getState().activeItemId?"".concat(t.id,"-item-").concat(r.getState().activeItemId):void 0,"aria-controls":r.getState().isOpen?"".concat(t.id,"-list"):void 0,"aria-labelledby":"".concat(t.id,"-label"),value:r.getState().completion||r.getState().query,id:"".concat(t.id,"-input"),autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",enterKeyHint:p,spellCheck:"false",autoFocus:t.autoFocus,placeholder:t.placeholder,maxLength:l,type:"search",onChange:function(e){Ue(nt({event:e,props:t,query:e.currentTarget.value.slice(0,l),refresh:n,store:r},o))},onKeyDown:function(e){!function(e){var t=e.event,n=e.props,r=e.refresh,o=e.store,i=function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,qe);if("ArrowUp"===t.key||"ArrowDown"===t.key){var a=function(){var e=n.environment.document.getElementById("".concat(n.id,"-item-").concat(o.getState().activeItemId));e&&(e.scrollIntoViewIfNeeded?e.scrollIntoViewIfNeeded(!1):e.scrollIntoView(!1))},c=function(){var e=oe(o.getState());if(null!==o.getState().activeItemId&&e){var n=e.item,a=e.itemInputValue,c=e.itemUrl,s=e.source;s.onActive(Ve({event:t,item:n,itemInputValue:a,itemUrl:c,refresh:r,source:s,state:o.getState()},i))}};t.preventDefault(),!1===o.getState().isOpen&&(n.openOnFocus||Boolean(o.getState().query))?Ue(Ve({event:t,props:n,query:o.getState().query,refresh:r,store:o},i)).then((function(){o.dispatch(t.key,{nextActiveItemId:n.defaultActiveItemId}),c(),setTimeout(a,0)})):(o.dispatch(t.key,{}),c(),a())}else if("Escape"===t.key)t.preventDefault(),o.dispatch(t.key,null),o.pendingRequests.cancelAll();else if("Tab"===t.key)o.dispatch("blur",null),o.pendingRequests.cancelAll();else if("Enter"===t.key){if(null===o.getState().activeItemId||o.getState().collections.every((function(e){return 0===e.items.length})))return void(n.debug||o.pendingRequests.cancelAll());t.preventDefault();var s=oe(o.getState()),l=s.item,u=s.itemInputValue,d=s.itemUrl,f=s.source;if(t.metaKey||t.ctrlKey)void 0!==d&&(f.onSelect(Ve({event:t,item:l,itemInputValue:u,itemUrl:d,refresh:r,source:f,state:o.getState()},i)),n.navigator.navigateNewTab({itemUrl:d,item:l,state:o.getState()}));else if(t.shiftKey)void 0!==d&&(f.onSelect(Ve({event:t,item:l,itemInputValue:u,itemUrl:d,refresh:r,source:f,state:o.getState()},i)),n.navigator.navigateNewWindow({itemUrl:d,item:l,state:o.getState()}));else if(t.altKey);else{if(void 0!==d)return f.onSelect(Ve({event:t,item:l,itemInputValue:u,itemUrl:d,refresh:r,source:f,state:o.getState()},i)),void n.navigator.navigate({itemUrl:d,item:l,state:o.getState()});Ue(Ve({event:t,nextState:{isOpen:!1},props:n,query:u,refresh:r,store:o},i)).then((function(){f.onSelect(Ve({event:t,item:l,itemInputValue:u,itemUrl:d,refresh:r,source:f,state:o.getState()},i))}))}}}(nt({event:e,props:t,refresh:n,store:r},o))},onFocus:a,onBlur:E,onClick:function(n){e.inputElement!==t.environment.document.activeElement||r.getState().isOpen||a(n)}},u)},getPanelProps:function(e){return nt({onMouseDown:function(e){e.preventDefault()},onMouseLeave:function(){r.dispatch("mouseleave",null)}},e)},getListProps:function(e){var n=e||{},r=n.sourceIndex,o=ot(n,Je);return nt({role:"listbox","aria-labelledby":"".concat(i(t.id,r),"-label"),id:"".concat(i(t.id,r),"-list")},o)},getItemProps:function(e){var a=e.item,c=e.source,s=e.sourceIndex,l=ot(e,et);return nt({id:"".concat(i(t.id,s),"-item-").concat(a.__autocomplete_id),role:"option","aria-selected":r.getState().activeItemId===a.__autocomplete_id,onMouseMove:function(e){if(a.__autocomplete_id!==r.getState().activeItemId){r.dispatch("mousemove",a.__autocomplete_id);var t=oe(r.getState());if(null!==r.getState().activeItemId&&t){var i=t.item,c=t.itemInputValue,s=t.itemUrl,l=t.source;l.onActive(nt({event:e,item:i,itemInputValue:c,itemUrl:s,refresh:n,source:l,state:r.getState()},o))}}},onMouseDown:function(e){e.preventDefault()},onClick:function(e){var i=c.getItemInputValue({item:a,state:r.getState()}),s=c.getItemUrl({item:a,state:r.getState()});(s?Promise.resolve():Ue(nt({event:e,nextState:{isOpen:!1},props:t,query:i,refresh:n,store:r},o))).then((function(){c.onSelect(nt({event:e,item:a,itemInputValue:i,itemUrl:s,refresh:n,source:c,state:r.getState()},o))}))}},l)}}}function at(e){return at="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},at(e)}function ct(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function st(e){for(var t=1;t0&&r.createElement("div",{className:"DocSearch-NoResults-Prefill-List"},r.createElement("p",{className:"DocSearch-Help"},l,":"),r.createElement("ul",null,m.slice(0,3).reduce((function(e,t){return[].concat(u(e),[r.createElement("li",{key:t},r.createElement("button",{className:"DocSearch-Prefill",key:t,type:"button",onClick:function(){o.setQuery(t.toLowerCase()+" "),o.refresh(),o.inputRef.current.focus()}},t))])}),[]))),o.getMissingResultsUrl&&r.createElement("p",{className:"DocSearch-Help"},"".concat(f," "),r.createElement("a",{href:o.getMissingResultsUrl({query:o.state.query}),target:"_blank",rel:"noopener noreferrer"},h)))}var zt=["hit","attribute","tagName"];function Ut(e,t){return t.split(".").reduce((function(e,t){return null!=e&&e[t]?e[t]:null}),e)}function $t(e){var t=e.hit,n=e.attribute,o=e.tagName,a=void 0===o?"span":o,c=s(e,zt);return(0,r.createElement)(a,i(i({},c),{},{dangerouslySetInnerHTML:{__html:Ut(t,"_snippetResult.".concat(n,".value"))||Ut(t,n)}}))}function qt(e){return e.collection&&0!==e.collection.items.length?r.createElement("section",{className:"DocSearch-Hits"},r.createElement("div",{className:"DocSearch-Hit-source"},e.title),r.createElement("ul",e.getListProps(),e.collection.items.map((function(t,n){return r.createElement(Ht,c({key:[e.title,t.objectID].join(":"),item:t,index:n},e))})))):null}function Ht(e){var t=e.item,n=e.index,o=e.renderIcon,i=e.renderAction,a=e.getItemProps,s=e.onItemClick,u=e.collection,d=e.hitComponent,f=l(r.useState(!1),2),p=f[0],h=f[1],m=l(r.useState(!1),2),g=m[0],b=m[1],v=r.useRef(null),y=d;return r.createElement("li",c({className:["DocSearch-Hit",t.__docsearch_parent&&"DocSearch-Hit--Child",p&&"DocSearch-Hit--deleting",g&&"DocSearch-Hit--favoriting"].filter(Boolean).join(" "),onTransitionEnd:function(){v.current&&v.current()}},a({item:t,source:u.source,onClick:function(e){s(t,e)}})),r.createElement(y,{hit:t},r.createElement("div",{className:"DocSearch-Hit-Container"},o({item:t,index:n}),t.hierarchy[t.type]&&"lvl1"===t.type&&r.createElement("div",{className:"DocSearch-Hit-content-wrapper"},r.createElement($t,{className:"DocSearch-Hit-title",hit:t,attribute:"hierarchy.lvl1"}),t.content&&r.createElement($t,{className:"DocSearch-Hit-path",hit:t,attribute:"content"})),t.hierarchy[t.type]&&("lvl2"===t.type||"lvl3"===t.type||"lvl4"===t.type||"lvl5"===t.type||"lvl6"===t.type)&&r.createElement("div",{className:"DocSearch-Hit-content-wrapper"},r.createElement($t,{className:"DocSearch-Hit-title",hit:t,attribute:"hierarchy.".concat(t.type)}),r.createElement($t,{className:"DocSearch-Hit-path",hit:t,attribute:"hierarchy.lvl1"})),"content"===t.type&&r.createElement("div",{className:"DocSearch-Hit-content-wrapper"},r.createElement($t,{className:"DocSearch-Hit-title",hit:t,attribute:"content"}),r.createElement($t,{className:"DocSearch-Hit-path",hit:t,attribute:"hierarchy.lvl1"})),i({item:t,runDeleteTransition:function(e){h(!0),v.current=e},runFavoriteTransition:function(e){b(!0),v.current=e}}))))}function Vt(e,t,n){return e.reduce((function(e,r){var o=t(r);return e.hasOwnProperty(o)||(e[o]=[]),e[o].length<(n||5)&&e[o].push(r),e}),{})}function Wt(e){return e}function Gt(e){return 1===e.button||e.altKey||e.ctrlKey||e.metaKey||e.shiftKey}function Kt(){}var Yt=/(|<\/mark>)/g,Qt=RegExp(Yt.source);function Zt(e){var t,n,r=e;if(!r.__docsearch_parent&&!e._highlightResult)return e.hierarchy.lvl0;var o=r.__docsearch_parent?null===(t=r.__docsearch_parent)||void 0===t||null===(t=t._highlightResult)||void 0===t||null===(t=t.hierarchy)||void 0===t?void 0:t.lvl0:null===(n=e._highlightResult)||void 0===n||null===(n=n.hierarchy)||void 0===n?void 0:n.lvl0;return o?o.value&&Qt.test(o.value)?o.value.replace(Yt,""):o.value:e.hierarchy.lvl0}function Xt(e){return r.createElement("div",{className:"DocSearch-Dropdown-Container"},e.state.collections.map((function(t){if(0===t.items.length)return null;var n=Zt(t.items[0]);return r.createElement(qt,c({},e,{key:t.source.sourceId,title:n,collection:t,renderIcon:function(e){var n,o=e.item,i=e.index;return r.createElement(r.Fragment,null,o.__docsearch_parent&&r.createElement("svg",{className:"DocSearch-Hit-Tree",viewBox:"0 0 24 54"},r.createElement("g",{stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},o.__docsearch_parent!==(null===(n=t.items[i+1])||void 0===n?void 0:n.__docsearch_parent)?r.createElement("path",{d:"M8 6v21M20 27H8.3"}):r.createElement("path",{d:"M8 6v42M20 27H8.3"}))),r.createElement("div",{className:"DocSearch-Hit-icon"},r.createElement(Pt,{type:o.type})))},renderAction:function(){return r.createElement("div",{className:"DocSearch-Hit-action"},r.createElement(Ct,null))}}))})),e.resultsFooterComponent&&r.createElement("section",{className:"DocSearch-HitsFooter"},r.createElement(e.resultsFooterComponent,{state:e.state})))}var Jt=["translations"];function en(e){var t=e.translations,n=void 0===t?{}:t,o=s(e,Jt),i=n.recentSearchesTitle,a=void 0===i?"Recent":i,l=n.noRecentSearchesText,u=void 0===l?"No recent searches":l,d=n.saveRecentSearchButtonTitle,f=void 0===d?"Save this search":d,p=n.removeRecentSearchButtonTitle,h=void 0===p?"Remove this search from history":p,m=n.favoriteSearchesTitle,g=void 0===m?"Favorite":m,b=n.removeFavoriteSearchButtonTitle,v=void 0===b?"Remove this search from favorites":b;return"idle"===o.state.status&&!1===o.hasCollections?o.disableUserPersonalization?null:r.createElement("div",{className:"DocSearch-StartScreen"},r.createElement("p",{className:"DocSearch-Help"},u)):!1===o.hasCollections?null:r.createElement("div",{className:"DocSearch-Dropdown-Container"},r.createElement(qt,c({},o,{title:a,collection:o.state.collections[0],renderIcon:function(){return r.createElement("div",{className:"DocSearch-Hit-icon"},r.createElement(At,null))},renderAction:function(e){var t=e.item,n=e.runFavoriteTransition,i=e.runDeleteTransition;return r.createElement(r.Fragment,null,r.createElement("div",{className:"DocSearch-Hit-action"},r.createElement("button",{className:"DocSearch-Hit-action-button",title:f,type:"submit",onClick:function(e){e.preventDefault(),e.stopPropagation(),n((function(){o.favoriteSearches.add(t),o.recentSearches.remove(t),o.refresh()}))}},r.createElement(Nt,null))),r.createElement("div",{className:"DocSearch-Hit-action"},r.createElement("button",{className:"DocSearch-Hit-action-button",title:h,type:"submit",onClick:function(e){e.preventDefault(),e.stopPropagation(),i((function(){o.recentSearches.remove(t),o.refresh()}))}},r.createElement(Ot,null))))}})),r.createElement(qt,c({},o,{title:g,collection:o.state.collections[1],renderIcon:function(){return r.createElement("div",{className:"DocSearch-Hit-icon"},r.createElement(Nt,null))},renderAction:function(e){var t=e.item,n=e.runDeleteTransition;return r.createElement("div",{className:"DocSearch-Hit-action"},r.createElement("button",{className:"DocSearch-Hit-action-button",title:v,type:"submit",onClick:function(e){e.preventDefault(),e.stopPropagation(),n((function(){o.favoriteSearches.remove(t),o.refresh()}))}},r.createElement(Ot,null)))}})))}var tn=["translations"],nn=r.memo((function(e){var t=e.translations,n=void 0===t?{}:t,o=s(e,tn);if("error"===o.state.status)return r.createElement(Mt,{translations:null==n?void 0:n.errorScreen});var i=o.state.collections.some((function(e){return e.items.length>0}));return o.state.query?!1===i?r.createElement(Ft,c({},o,{translations:null==n?void 0:n.noResultsScreen})):r.createElement(Xt,o):r.createElement(en,c({},o,{hasCollections:i,translations:null==n?void 0:n.startScreen}))}),(function(e,t){return"loading"===t.state.status||"stalled"===t.state.status})),rn=["translations"];function on(e){var t=e.translations,n=void 0===t?{}:t,o=s(e,rn),i=n.resetButtonTitle,a=void 0===i?"Clear the query":i,l=n.resetButtonAriaLabel,u=void 0===l?"Clear the query":l,d=n.cancelButtonText,f=void 0===d?"Cancel":d,p=n.cancelButtonAriaLabel,m=void 0===p?"Cancel":p,g=n.searchInputLabel,b=void 0===g?"Search":g,v=o.getFormProps({inputElement:o.inputRef.current}).onReset;return r.useEffect((function(){o.autoFocus&&o.inputRef.current&&o.inputRef.current.focus()}),[o.autoFocus,o.inputRef]),r.useEffect((function(){o.isFromSelection&&o.inputRef.current&&o.inputRef.current.select()}),[o.isFromSelection,o.inputRef]),r.createElement(r.Fragment,null,r.createElement("form",{className:"DocSearch-Form",onSubmit:function(e){e.preventDefault()},onReset:v},r.createElement("label",c({className:"DocSearch-MagnifierLabel"},o.getLabelProps()),r.createElement(h,null),r.createElement("span",{className:"DocSearch-VisuallyHiddenForAccessibility"},b)),r.createElement("div",{className:"DocSearch-LoadingIndicator"},r.createElement(Dt,null)),r.createElement("input",c({className:"DocSearch-Input",ref:o.inputRef},o.getInputProps({inputElement:o.inputRef.current,autoFocus:o.autoFocus,maxLength:64}))),r.createElement("button",{type:"reset",title:a,className:"DocSearch-Reset","aria-label":u,hidden:!o.state.query},r.createElement(Ot,null))),r.createElement("button",{className:"DocSearch-Cancel",type:"reset","aria-label":m,onClick:o.onClose},f))}var an=["_highlightResult","_snippetResult"];function cn(e){var t=e.key,n=e.limit,r=void 0===n?5:n,o=function(e){return!1===function(){var e="__TEST_KEY__";try{return localStorage.setItem(e,""),localStorage.removeItem(e),!0}catch(e){return!1}}()?{setItem:function(){},getItem:function(){return[]}}:{setItem:function(t){return window.localStorage.setItem(e,JSON.stringify(t))},getItem:function(){var t=window.localStorage.getItem(e);return t?JSON.parse(t):[]}}}(t),i=o.getItem().slice(0,r);return{add:function(e){var t=e,n=(t._highlightResult,t._snippetResult,s(t,an)),a=i.findIndex((function(e){return e.objectID===n.objectID}));a>-1&&i.splice(a,1),i.unshift(n),i=i.slice(0,r),o.setItem(i)},remove:function(e){i=i.filter((function(t){return t.objectID!==e.objectID})),o.setItem(i)},getAll:function(){return i}}}function sn(e){const t=`algoliasearch-client-js-${e.key}`;let n;const r=()=>(void 0===n&&(n=e.localStorage||window.localStorage),n),o=()=>JSON.parse(r().getItem(t)||"{}"),i=e=>{r().setItem(t,JSON.stringify(e))};return{get:(t,n,r={miss:()=>Promise.resolve()})=>Promise.resolve().then((()=>{(()=>{const t=e.timeToLive?1e3*e.timeToLive:null,n=o(),r=Object.fromEntries(Object.entries(n).filter((([,e])=>void 0!==e.timestamp)));if(i(r),!t)return;const a=Object.fromEntries(Object.entries(r).filter((([,e])=>{const n=(new Date).getTime();return!(e.timestamp+tPromise.all([e?e.value:n(),void 0!==e]))).then((([e,t])=>Promise.all([e,t||r.miss(e)]))).then((([e])=>e)),set:(e,n)=>Promise.resolve().then((()=>{const i=o();return i[JSON.stringify(e)]={timestamp:(new Date).getTime(),value:n},r().setItem(t,JSON.stringify(i)),n})),delete:e=>Promise.resolve().then((()=>{const n=o();delete n[JSON.stringify(e)],r().setItem(t,JSON.stringify(n))})),clear:()=>Promise.resolve().then((()=>{r().removeItem(t)}))}}function ln(e){const t=[...e.caches],n=t.shift();return void 0===n?{get:(e,t,n={miss:()=>Promise.resolve()})=>t().then((e=>Promise.all([e,n.miss(e)]))).then((([e])=>e)),set:(e,t)=>Promise.resolve(t),delete:e=>Promise.resolve(),clear:()=>Promise.resolve()}:{get:(e,r,o={miss:()=>Promise.resolve()})=>n.get(e,r,o).catch((()=>ln({caches:t}).get(e,r,o))),set:(e,r)=>n.set(e,r).catch((()=>ln({caches:t}).set(e,r))),delete:e=>n.delete(e).catch((()=>ln({caches:t}).delete(e))),clear:()=>n.clear().catch((()=>ln({caches:t}).clear()))}}function un(e={serializable:!0}){let t={};return{get(n,r,o={miss:()=>Promise.resolve()}){const i=JSON.stringify(n);if(i in t)return Promise.resolve(e.serializable?JSON.parse(t[i]):t[i]);const a=r(),c=o&&o.miss||(()=>Promise.resolve());return a.then((e=>c(e))).then((()=>a))},set:(n,r)=>(t[JSON.stringify(n)]=e.serializable?JSON.stringify(r):r,Promise.resolve(r)),delete:e=>(delete t[JSON.stringify(e)],Promise.resolve()),clear:()=>(t={},Promise.resolve())}}function dn(e){let t=e.length-1;for(;t>0;t--){const n=Math.floor(Math.random()*(t+1)),r=e[t];e[t]=e[n],e[n]=r}return e}function fn(e,t){return t?(Object.keys(t).forEach((n=>{e[n]=t[n](e)})),e):e}function pn(e,...t){let n=0;return e.replace(/%s/g,(()=>encodeURIComponent(t[n++])))}const hn={WithinQueryParameters:0,WithinHeaders:1};function mn(e,t){const n=e||{},r=n.data||{};return Object.keys(n).forEach((e=>{-1===["timeout","headers","queryParameters","data","cacheable"].indexOf(e)&&(r[e]=n[e])})),{data:Object.entries(r).length>0?r:void 0,timeout:n.timeout||t,headers:n.headers||{},queryParameters:n.queryParameters||{},cacheable:n.cacheable}}const gn={Read:1,Write:2,Any:3};function bn(e,t=1){return{...e,status:t,lastUpdate:Date.now()}}function vn(e){return"string"==typeof e?{protocol:"https",url:e,accept:gn.Any}:{protocol:e.protocol||"https",url:e.url,accept:e.accept||gn.Any}}const yn="GET",xn="POST";function wn(e,t,n,r){const o=[],i=function(e,t){if(e.method===yn||void 0===e.data&&void 0===t.data)return;const n=Array.isArray(e.data)?e.data:{...e.data,...t.data};return JSON.stringify(n)}(n,r),a=function(e,t){const n={...e.headers,...t.headers},r={};return Object.keys(n).forEach((e=>{const t=n[e];r[e.toLowerCase()]=t})),r}(e,r),c=n.method,s=n.method!==yn?{}:{...n.data,...r.data},l={"x-algolia-agent":e.userAgent.value,...e.queryParameters,...s,...r.queryParameters};let u=0;const d=(t,s)=>{const f=t.pop();if(void 0===f)throw{name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.",transporterStackTrace:kn(o)};const p={data:i,headers:a,method:c,url:_n(f,n.path,l),connectTimeout:s(u,e.timeouts.connect),responseTimeout:s(u,r.timeout)},h=e=>{const n={request:p,response:e,host:f,triesLeft:t.length};return o.push(n),n},m={onSuccess:e=>function(e){try{return JSON.parse(e.content)}catch(t){throw function(e,t){return{name:"DeserializationError",message:e,response:t}}(t.message,e)}}(e),onRetry(n){const r=h(n);return n.isTimedOut&&u++,Promise.all([e.logger.info("Retryable failure",Dn(r)),e.hostsCache.set(f,bn(f,n.isTimedOut?3:2))]).then((()=>d(t,s)))},onFail(e){throw h(e),function({content:e,status:t},n){let r=e;try{r=JSON.parse(e).message}catch(e){}return function(e,t,n){return{name:"ApiError",message:e,status:t,transporterStackTrace:n}}(r,t,n)}(e,kn(o))}};return e.requester.send(p).then((e=>((e,t)=>(e=>{const t=e.status;return e.isTimedOut||(({isTimedOut:e,status:t})=>!e&&!~~t)(e)||2!=~~(t/100)&&4!=~~(t/100)})(e)?t.onRetry(e):(({status:e})=>2==~~(e/100))(e)?t.onSuccess(e):t.onFail(e))(e,m)))};return function(e,t){return Promise.all(t.map((t=>e.get(t,(()=>Promise.resolve(bn(t))))))).then((e=>{const n=e.filter((e=>function(e){return 1===e.status||Date.now()-e.lastUpdate>12e4}(e))),r=e.filter((e=>function(e){return 3===e.status&&Date.now()-e.lastUpdate<=12e4}(e))),o=[...n,...r];return{getTimeout:(e,t)=>(0===r.length&&0===e?1:r.length+3+e)*t,statelessHosts:o.length>0?o.map((e=>vn(e))):t}}))}(e.hostsCache,t).then((e=>d([...e.statelessHosts].reverse(),e.getTimeout)))}function Sn(e){const t={value:`Algolia for JavaScript (${e})`,add(e){const n=`; ${e.segment}${void 0!==e.version?` (${e.version})`:""}`;return-1===t.value.indexOf(n)&&(t.value=`${t.value}${n}`),t}};return t}function _n(e,t,n){const r=En(n);let o=`${e.protocol}://${e.url}/${"/"===t.charAt(0)?t.substr(1):t}`;return r.length&&(o+=`?${r}`),o}function En(e){return Object.keys(e).map((t=>{return pn("%s=%s",t,(n=e[t],"[object Object]"===Object.prototype.toString.call(n)||"[object Array]"===Object.prototype.toString.call(n)?JSON.stringify(e[t]):e[t]));var n})).join("&")}function kn(e){return e.map((e=>Dn(e)))}function Dn(e){const t=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return{...e,request:{...e.request,headers:{...e.request.headers,...t}}}}const An=e=>{const t=e.appId,n=function(e,t,n){const r={"x-algolia-api-key":n,"x-algolia-application-id":t};return{headers:()=>e===hn.WithinHeaders?r:{},queryParameters:()=>e===hn.WithinQueryParameters?r:{}}}(void 0!==e.authMode?e.authMode:hn.WithinHeaders,t,e.apiKey),r=function(e){const{hostsCache:t,logger:n,requester:r,requestsCache:o,responsesCache:i,timeouts:a,userAgent:c,hosts:s,queryParameters:l,headers:u}=e,d={hostsCache:t,logger:n,requester:r,requestsCache:o,responsesCache:i,timeouts:a,userAgent:c,headers:u,queryParameters:l,hosts:s.map((e=>vn(e))),read(e,t){const n=mn(t,d.timeouts.read),r=()=>wn(d,d.hosts.filter((e=>!!(e.accept&gn.Read))),e,n);if(!0!==(void 0!==n.cacheable?n.cacheable:e.cacheable))return r();const o={request:e,mappedRequestOptions:n,transporter:{queryParameters:d.queryParameters,headers:d.headers}};return d.responsesCache.get(o,(()=>d.requestsCache.get(o,(()=>d.requestsCache.set(o,r()).then((e=>Promise.all([d.requestsCache.delete(o),e])),(e=>Promise.all([d.requestsCache.delete(o),Promise.reject(e)]))).then((([e,t])=>t))))),{miss:e=>d.responsesCache.set(o,e)})},write:(e,t)=>wn(d,d.hosts.filter((e=>!!(e.accept&gn.Write))),e,mn(t,d.timeouts.write))};return d}({hosts:[{url:`${t}-dsn.algolia.net`,accept:gn.Read},{url:`${t}.algolia.net`,accept:gn.Write}].concat(dn([{url:`${t}-1.algolianet.com`},{url:`${t}-2.algolianet.com`},{url:`${t}-3.algolianet.com`}])),...e,headers:{...n.headers(),"content-type":"application/x-www-form-urlencoded",...e.headers},queryParameters:{...n.queryParameters(),...e.queryParameters}}),o={transporter:r,appId:t,addAlgoliaAgent(e,t){r.userAgent.add({segment:e,version:t})},clearCache:()=>Promise.all([r.requestsCache.clear(),r.responsesCache.clear()]).then((()=>{}))};return fn(o,e.methods)},On=e=>(t,n)=>t.method===yn?e.transporter.read(t,n):e.transporter.write(t,n),Cn=e=>(t,n={})=>fn({transporter:e.transporter,appId:e.appId,indexName:t},n.methods),Tn=e=>(t,n)=>{const r=t.map((e=>({...e,params:En(e.params||{})})));return e.transporter.read({method:xn,path:"1/indexes/*/queries",data:{requests:r},cacheable:!0},n)},Pn=e=>(t,n)=>Promise.all(t.map((t=>{const{facetName:r,facetQuery:o,...i}=t.params;return Cn(e)(t.indexName,{methods:{searchForFacetValues:Nn}}).searchForFacetValues(r,o,{...n,...i})}))),In=e=>(t,n,r)=>e.transporter.read({method:xn,path:pn("1/answers/%s/prediction",e.indexName),data:{query:t,queryLanguages:n},cacheable:!0},r),Rn=e=>(t,n)=>e.transporter.read({method:xn,path:pn("1/indexes/%s/query",e.indexName),data:{query:t},cacheable:!0},n),Nn=e=>(t,n,r)=>e.transporter.read({method:xn,path:pn("1/indexes/%s/facets/%s/query",e.indexName,t),data:{facetQuery:n},cacheable:!0},r),jn=1,Ln=2,Mn=3;function Bn(e,t,n){const r={appId:e,apiKey:t,timeouts:{connect:1,read:2,write:30},requester:{send:e=>new Promise((t=>{const n=new XMLHttpRequest;n.open(e.method,e.url,!0),Object.keys(e.headers).forEach((t=>n.setRequestHeader(t,e.headers[t])));const r=(e,r)=>setTimeout((()=>{n.abort(),t({status:0,content:r,isTimedOut:!0})}),1e3*e),o=r(e.connectTimeout,"Connection timeout");let i;n.onreadystatechange=()=>{n.readyState>n.OPENED&&void 0===i&&(clearTimeout(o),i=r(e.responseTimeout,"Socket timeout"))},n.onerror=()=>{0===n.status&&(clearTimeout(o),clearTimeout(i),t({content:n.responseText||"Network request failed",status:n.status,isTimedOut:!1}))},n.onload=()=>{clearTimeout(o),clearTimeout(i),t({content:n.responseText,status:n.status,isTimedOut:!1})},n.send(e.data)}))},logger:(o=Mn,{debug:(e,t)=>(jn>=o&&console.debug(e,t),Promise.resolve()),info:(e,t)=>(Ln>=o&&console.info(e,t),Promise.resolve()),error:(e,t)=>(console.error(e,t),Promise.resolve())}),responsesCache:un(),requestsCache:un({serializable:!1}),hostsCache:ln({caches:[sn({key:`4.19.1-${e}`}),un()]}),userAgent:Sn("4.19.1").add({segment:"Browser",version:"lite"}),authMode:hn.WithinQueryParameters};var o;return An({...r,...n,methods:{search:Tn,searchForFacetValues:Pn,multipleQueries:Tn,multipleSearchForFacetValues:Pn,customRequest:On,initIndex:e=>t=>Cn(e)(t,{methods:{search:Rn,searchForFacetValues:Nn,findAnswers:In}})}})}Bn.version="4.19.1";var Fn=["footer","searchBox"];function zn(e){var t=e.appId,n=e.apiKey,o=e.indexName,a=e.placeholder,u=void 0===a?"Search docs":a,d=e.searchParameters,f=e.maxResultsPerGroup,p=e.onClose,h=void 0===p?Kt:p,m=e.transformItems,g=void 0===m?Wt:m,b=e.hitComponent,v=void 0===b?kt:b,y=e.resultsFooterComponent,x=void 0===y?function(){return null}:y,w=e.navigator,S=e.initialScrollY,_=void 0===S?0:S,E=e.transformSearchClient,k=void 0===E?Wt:E,D=e.disableUserPersonalization,A=void 0!==D&&D,O=e.initialQuery,C=void 0===O?"":O,T=e.translations,P=void 0===T?{}:T,I=e.getMissingResultsUrl,R=e.insights,N=void 0!==R&&R,j=P.footer,L=P.searchBox,M=s(P,Fn),B=l(r.useState({query:"",collections:[],completion:null,context:{},isOpen:!1,activeItemId:null,status:"idle"}),2),F=B[0],z=B[1],U=r.useRef(null),$=r.useRef(null),q=r.useRef(null),H=r.useRef(null),V=r.useRef(null),W=r.useRef(10),G=r.useRef("undefined"!=typeof window?window.getSelection().toString().slice(0,64):"").current,K=r.useRef(C||G).current,Y=function(e,t,n){return r.useMemo((function(){var r=Bn(e,t);return r.addAlgoliaAgent("docsearch","3.6.2"),!1===/docsearch.js \(.*\)/.test(r.transporter.userAgent.value)&&r.addAlgoliaAgent("docsearch-react","3.6.2"),n(r)}),[e,t,n])}(t,n,k),Q=r.useRef(cn({key:"__DOCSEARCH_FAVORITE_SEARCHES__".concat(o),limit:10})).current,Z=r.useRef(cn({key:"__DOCSEARCH_RECENT_SEARCHES__".concat(o),limit:0===Q.getAll().length?7:4})).current,X=r.useCallback((function(e){if(!A){var t="content"===e.type?e.__docsearch_parent:e;t&&-1===Q.getAll().findIndex((function(e){return e.objectID===t.objectID}))&&Z.add(t)}}),[Q,Z,A]),J=r.useCallback((function(e){if(F.context.algoliaInsightsPlugin&&e.__autocomplete_id){var t=e,n={eventName:"Item Selected",index:t.__autocomplete_indexName,items:[t],positions:[e.__autocomplete_id],queryID:t.__autocomplete_queryID};F.context.algoliaInsightsPlugin.insights.clickedObjectIDsAfterSearch(n)}}),[F.context.algoliaInsightsPlugin]),ee=r.useMemo((function(){return wt({id:"docsearch",defaultActiveItemId:0,placeholder:u,openOnFocus:!0,initialState:{query:K,context:{searchSuggestions:[]}},insights:N,navigator:w,onStateChange:function(e){z(e.state)},getSources:function(e){var r=e.query,a=e.state,c=e.setContext,s=e.setStatus;if(!r)return A?[]:[{sourceId:"recentSearches",onSelect:function(e){var t=e.item,n=e.event;X(t),Gt(n)||h()},getItemUrl:function(e){return e.item.url},getItems:function(){return Z.getAll()}},{sourceId:"favoriteSearches",onSelect:function(e){var t=e.item,n=e.event;X(t),Gt(n)||h()},getItemUrl:function(e){return e.item.url},getItems:function(){return Q.getAll()}}];var l=Boolean(N);return Y.search([{query:r,indexName:o,params:i({attributesToRetrieve:["hierarchy.lvl0","hierarchy.lvl1","hierarchy.lvl2","hierarchy.lvl3","hierarchy.lvl4","hierarchy.lvl5","hierarchy.lvl6","content","type","url"],attributesToSnippet:["hierarchy.lvl1:".concat(W.current),"hierarchy.lvl2:".concat(W.current),"hierarchy.lvl3:".concat(W.current),"hierarchy.lvl4:".concat(W.current),"hierarchy.lvl5:".concat(W.current),"hierarchy.lvl6:".concat(W.current),"content:".concat(W.current)],snippetEllipsisText:"\u2026",highlightPreTag:"",highlightPostTag:"",hitsPerPage:20,clickAnalytics:l},d)}]).catch((function(e){throw"RetryError"===e.name&&s("error"),e})).then((function(e){var r=e.results[0],s=r.hits,u=r.nbHits,d=Vt(s,(function(e){return Zt(e)}),f);a.context.searchSuggestions.length0&&(re(),V.current&&V.current.focus())}),[K,re]),r.useEffect((function(){function e(){if($.current){var e=.01*window.innerHeight;$.current.style.setProperty("--docsearch-vh","".concat(e,"px"))}}return e(),window.addEventListener("resize",e),function(){window.removeEventListener("resize",e)}}),[]),r.createElement("div",c({ref:U},ne({"aria-expanded":!0}),{className:["DocSearch","DocSearch-Container","stalled"===F.status&&"DocSearch-Container--Stalled","error"===F.status&&"DocSearch-Container--Errored"].filter(Boolean).join(" "),role:"button",tabIndex:0,onMouseDown:function(e){e.target===e.currentTarget&&h()}}),r.createElement("div",{className:"DocSearch-Modal",ref:$},r.createElement("header",{className:"DocSearch-SearchBar",ref:q},r.createElement(on,c({},ee,{state:F,autoFocus:0===K.length,inputRef:V,isFromSelection:Boolean(K)&&K===G,translations:L,onClose:h}))),r.createElement("div",{className:"DocSearch-Dropdown",ref:H},r.createElement(nn,c({},ee,{indexName:o,state:F,hitComponent:v,resultsFooterComponent:x,disableUserPersonalization:A,recentSearches:Z,favoriteSearches:Q,inputRef:V,translations:M,getMissingResultsUrl:I,onItemClick:function(e,t){J(e),X(e),Gt(t)||h()}}))),r.createElement("footer",{className:"DocSearch-Footer"},r.createElement(Et,{translations:j}))))}function Un(e){var t=e.isOpen,n=e.onOpen,o=e.onClose,i=e.onInput,a=e.searchButtonRef;r.useEffect((function(){function e(e){var r;(27===e.keyCode&&t||"k"===(null===(r=e.key)||void 0===r?void 0:r.toLowerCase())&&(e.metaKey||e.ctrlKey)||!function(e){var t=e.target,n=t.tagName;return t.isContentEditable||"INPUT"===n||"SELECT"===n||"TEXTAREA"===n}(e)&&"/"===e.key&&!t)&&(e.preventDefault(),t?o():document.body.classList.contains("DocSearch--active")||document.body.classList.contains("DocSearch--active")||n()),a&&a.current===document.activeElement&&i&&/[a-zA-Z0-9]/.test(String.fromCharCode(e.keyCode))&&i(e)}return window.addEventListener("keydown",e),function(){window.removeEventListener("keydown",e)}}),[t,n,o,i,a])}},35947:(e,t,n)=>{"use strict";n.d(t,{A:()=>p});var r=n(96540),o=n(58168),i=n(53259),a=n.n(i),c=n(84054);const s={"00424e3f":[()=>n.e(4879).then(n.bind(n,465)),"@site/../docs/troubleshooting/building-the-app.md",465],"01a85c17":[()=>Promise.all([n.e(1869),n.e(8209)]).then(n.bind(n,69158)),"@theme/BlogTagsListPage",69158],"040764b7":[()=>n.e(4651).then(n.bind(n,91724)),"@site/../docs/guide/testing-webviews.md",91724],"04c33c1d":[()=>n.e(9304).then(n.bind(n,29940)),"@site/../docs/guide/cucumber-js-integration.md",29940],"04d1378b":[()=>Promise.all([n.e(1869),n.e(3282),n.e(3414)]).then(n.bind(n,63566)),"@site/versioned_docs/version-20.x/config/devices.mdx",63566],"06556991":[()=>Promise.all([n.e(1869),n.e(3890)]).then(n.bind(n,75173)),"@site/../docs/guide/uninstalling.md",75173],"090a441b":[()=>n.e(3150).then(n.bind(n,13685)),"@site/versioned_docs/version-20.x/contributing/reporting-bugs.md",13685],"0970ca0c":[()=>n.e(8560).then(n.bind(n,18779)),"@site/../docs/cli/build-framework-cache.md",18779],"0a02aff3":[()=>n.e(7924).then(n.bind(n,26530)),"@site/versioned_docs/version-19.x/APIRef.Expect.md",26530],"0a2b2829":[()=>n.e(99).then(n.bind(n,73972)),"@site/../docs/articles/how-detox-works.md",73972],"0b72a6ff":[()=>n.e(7715).then(n.bind(n,12094)),"@site/versioned_docs/version-19.x/Troubleshooting.Synchronization.md",12094],"0b851b4d":[()=>n.e(9585).then(n.bind(n,14120)),"@site/../docs/guide/android-dev-env.md",14120],"0c7edd3c":[()=>Promise.all([n.e(1869),n.e(3282),n.e(9966)]).then(n.bind(n,22505)),"@site/../docs/introduction/debugging.mdx",22505],"0d1d5dba":[()=>n.e(2124).then(n.t.bind(n,25317,19)),"~blog/default/detox-blog-tags-tags-2aa.json",25317],"0e97a833":[()=>Promise.all([n.e(1869),n.e(3015)]).then(n.bind(n,72414)),"@site/versioned_docs/version-19.x/Guide.Mocha.md",72414],"0ef19a76":[()=>n.e(3392).then(n.t.bind(n,4061,19)),"/home/runner/work/Detox/Detox/website/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",4061],"0f6ee85b":[()=>n.e(7024).then(n.bind(n,84327)),"@site/../docs/api/webviews.md",84327],"120e2fab":[()=>n.e(3894).then(n.bind(n,83817)),"@site/versioned_docs/version-19.x/Introduction.Android.md",83817],"121cced5":[()=>n.e(96).then(n.bind(n,69768)),"@site/versioned_docs/version-19.x/Troubleshooting.RunningTests.md",69768],"1373a77b":[()=>Promise.all([n.e(1869),n.e(682)]).then(n.bind(n,72743)),"@site/../docs/guide/migration.md",72743],"155ec335":[()=>n.e(4005).then(n.bind(n,86394)),"@site/../docs/api/system.md",86394],"170ab94c":[()=>n.e(7714).then(n.bind(n,64200)),"@site/versioned_docs/version-19.x/APIRef.Matchers.md",64200],17896441:[()=>Promise.all([n.e(1869),n.e(3282),n.e(9551),n.e(8401)]).then(n.bind(n,25022)),"@theme/DocItem",25022],"17f9232f":[()=>n.e(9437).then(n.bind(n,75697)),"@site/../docs/contributing/questions/answering-questions.md",75697],"181d712d":[()=>n.e(9685).then(n.t.bind(n,52945,19)),"/home/runner/work/Detox/Detox/website/.docusaurus/docusaurus-plugin-content-blog/default/plugin-route-context-module-100.json",52945],"18fc5556":[()=>n.e(2).then(n.bind(n,8788)),"@site/versioned_docs/version-20.x/contributing/code/building-and-testing.md",8788],"19ee85cd":[()=>n.e(6887).then(n.bind(n,36972)),"@site/../docs/config/overview.mdx",36972],"1a01fdf1":[()=>Promise.all([n.e(1869),n.e(6769)]).then(n.bind(n,44229)),"@site/../docs/api/internals.mdx",44229],"1a4e3797":[()=>Promise.all([n.e(1869),n.e(2138)]).then(n.bind(n,74604)),"@theme/SearchPage",74604],"1c323773":[()=>n.e(8620).then(n.bind(n,67310)),"@site/versioned_docs/version-19.x/Guide.Expo.md",67310],"1c545b73":[()=>n.e(1079).then(n.bind(n,57693)),"@site/../docs/contributing/code-of-conduct.md",57693],"1d245f66":[()=>n.e(9591).then(n.bind(n,88762)),"@site/versioned_docs/version-19.x/Introduction.WritingFirstTest.md",88762],"1ee22d16":[()=>n.e(6291).then(n.bind(n,70308)),"@site/versioned_docs/version-20.x/api/system.md",70308],"20110cf9":[()=>n.e(643).then(n.bind(n,61575)),"@site/versioned_docs/version-20.x/api/logger.mdx",61575],"239f6efa":[()=>n.e(9679).then(n.bind(n,71690)),"@site/versioned_docs/version-19.x/Guide.RunningOnCI.md",71690],"23a61782":[()=>n.e(7321).then(n.bind(n,31904)),"@site/../docs/guide/launch-args.md",31904],24602229:[()=>n.e(3892).then(n.bind(n,87992)),"@site/versioned_docs/version-19.x/Introduction.HowDetoxWorks.md",87992],26368098:[()=>n.e(1211).then(n.bind(n,83093)),"@site/../docs/guide/developing-while-writing-tests.md",83093],"268dddcf":[()=>n.e(68).then(n.bind(n,17704)),"@site/../docs/cli/rebuild-framework-cache.md",17704],"289d965c":[()=>n.e(6643).then(n.bind(n,97348)),"@site/../docs/guide/proguard-configuration.md",97348],"2aa9b0dd":[()=>Promise.all([n.e(1869),n.e(8160)]).then(n.bind(n,6719)),"@site/versioned_docs/version-20.x/contributing/code/setting-up-the-dev-environment.md",6719],"2ad854c4":[()=>n.e(3650).then(n.t.bind(n,86049,19)),"~blog/default/detox-blog-tags-detox-copilot-3ae-list.json",86049],"2cf03b61":[()=>n.e(8952).then(n.bind(n,73983)),"@site/versioned_docs/version-20.x/cli/test.md",73983],"2d84255a":[()=>Promise.all([n.e(1869),n.e(3282),n.e(7608)]).then(n.bind(n,39936)),"@site/../docs/config/devices.mdx",39936],"2dcc617a":[()=>Promise.all([n.e(1869),n.e(3282),n.e(2120)]).then(n.bind(n,21141)),"@site/versioned_docs/version-20.x/config/behavior.mdx",21141],"2e9ac6cb":[()=>n.e(498).then(n.bind(n,10623)),"@site/../docs/api/copilot.md",10623],"2ec4e639":[()=>n.e(5104).then(n.bind(n,81110)),"@site/versioned_docs/version-19.x/config/overview.md",81110],"30a967f3":[()=>Promise.all([n.e(1869),n.e(3282),n.e(5484)]).then(n.bind(n,69945)),"@site/versioned_docs/version-20.x/demo.mdx",69945],"328083ea":[()=>n.e(1581).then(n.bind(n,54806)),"@site/versioned_docs/version-20.x/contributing/questions/asking-questions.md",54806],"329947da":[()=>n.e(5844).then(n.bind(n,4317)),"@site/versioned_docs/version-20.x/api/webviews.md",4317],"32a9b7bf":[()=>n.e(6527).then(n.bind(n,25752)),"@site/versioned_docs/version-19.x/APIRef.Artifacts.md",25752],"3498d2db":[()=>n.e(8641).then(n.bind(n,32518)),"@site/versioned_docs/version-19.x/Guide.DebuggingInAndroidStudio.md",32518],"373c35af":[()=>n.e(2698).then(n.bind(n,49343)),"@site/versioned_docs/version-20.x/api/device.md",49343],"37fdb427":[()=>n.e(2460).then(n.bind(n,38502)),"@site/../docs/contributing/code/building-and-testing.md",38502],"38bf2aac":[()=>Promise.all([n.e(1869),n.e(3282),n.e(2377)]).then(n.bind(n,3723)),"@site/versioned_docs/version-20.x/introduction/debugging.mdx",3723],"3974811d":[()=>Promise.all([n.e(1869),n.e(7696)]).then(n.bind(n,28350)),"@site/versioned_docs/version-19.x/Guide.Contributing.md",28350],"398b3246":[()=>n.e(2920).then(n.bind(n,92317)),"@site/../docs/api/device.md",92317],"3abc4359":[()=>Promise.all([n.e(1869),n.e(5599)]).then(n.bind(n,4732)),"@site/versioned_docs/version-19.x/Guide.Uninstalling.md",4732],"3b089002":[()=>n.e(8881).then(n.bind(n,87507)),"@site/../docs/troubleshooting/flakiness.md",87507],"3bc305d8":[()=>n.e(123).then(n.bind(n,1748)),"@site/../docs/guide/mocking-user-notifications.md",1748],"3c59129e":[()=>n.e(5992).then(n.bind(n,78675)),"@site/versioned_docs/version-20.x/contributing/questions/answering-questions.md",78675],"3d4c33f6":[()=>n.e(2083).then(n.bind(n,41329)),"@site/versioned_docs/version-20.x/cli/reset-lock-file.md",41329],"3e7ee0fc":[()=>n.e(2965).then(n.bind(n,98218)),"@site/versioned_docs/version-20.x/cli/rebuild-framework-cache.md",98218],"3f3efe2b":[()=>Promise.all([n.e(1869),n.e(3282),n.e(3671)]).then(n.bind(n,90551)),"@site/../docs/config/testRunner.mdx",90551],"3f50474f":[()=>n.e(4930).then(n.bind(n,6645)),"@site/versioned_docs/version-19.x/Guide.DevelopingWhileWritingTests.md",6645],"3f859f05":[()=>n.e(2269).then(n.bind(n,42329)),"@site/versioned_docs/version-20.x/guide/genymotion-saas.mdx",42329],"3fb5a56d":[()=>n.e(1539).then(n.t.bind(n,61966,19)),"/home/runner/work/Detox/Detox/website/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",61966],"40113ee6":[()=>Promise.all([n.e(1869),n.e(3282),n.e(7056)]).then(n.bind(n,36137)),"@site/versioned_docs/version-20.x/introduction/project-setup.mdx",36137],"40e30cb7":[()=>n.e(8221).then(n.bind(n,54988)),"@site/versioned_docs/version-20.x/troubleshooting/running-tests.md",54988],"41e12717":[()=>n.e(6913).then(n.bind(n,19696)),"@site/versioned_docs/version-19.x/Introduction.Workflows.md",19696],"435645a6":[()=>n.e(2661).then(n.bind(n,20767)),"@site/versioned_docs/version-20.x/guide/test-id.md",20767],"45e366b7":[()=>Promise.all([n.e(1869),n.e(3282),n.e(187)]).then(n.bind(n,1145)),"@site/versioned_docs/version-20.x/config/testRunner.mdx",1145],"478bcf42":[()=>Promise.all([n.e(1869),n.e(7619)]).then(n.bind(n,95297)),"@site/versioned_docs/version-20.x/contributing/documentation.md",95297],"4898f926":[()=>n.e(3559).then(n.bind(n,11735)),"@site/versioned_docs/version-20.x/guide/developing-while-writing-tests.md",11735],"48c4a2a0":[()=>n.e(7308).then(n.t.bind(n,57757,19)),"/home/runner/work/Detox/Detox/website/.docusaurus/docusaurus-theme-search-algolia/default/plugin-route-context-module-100.json",57757],"4a184f52":[()=>n.e(5210).then(n.bind(n,52438)),"@site/../docs/contributing/feature-requests.md",52438],"4aba33e7":[()=>n.e(9543).then(n.bind(n,22687)),"@site/versioned_docs/version-19.x/Introduction.DesignPrinciples.md",22687],"4afa4b8a":[()=>n.e(2438).then(n.bind(n,1015)),"@site/versioned_docs/version-19.x/Introduction.iOS.md",1015],"4c76b531":[()=>n.e(7900).then(n.bind(n,52001)),"@site/versioned_docs/version-19.x/Introduction.iOSDevEnv.md",52001],"4d2064e8":[()=>n.e(4480).then(n.bind(n,80900)),"@site/versioned_docs/version-20.x/contributing/code/submitting-pull-requests.md",80900],"4e8770ad":[()=>Promise.all([n.e(1869),n.e(3282),n.e(2043)]).then(n.bind(n,91823)),"@site/versioned_docs/version-20.x/config/session.mdx",91823],"50214cd4":[()=>Promise.all([n.e(1869),n.e(4216)]).then(n.bind(n,65600)),"@site/versioned_docs/version-19.x/Guide.Migration.md",65600],"5125c427":[()=>n.e(5458).then(n.bind(n,2463)),"@site/../docs/cli/reset-lock-file.md",2463],"5133b137":[()=>n.e(1998).then(n.bind(n,80720)),"@site/../docs/contributing/code/example-projects.md",80720],"5329dae7":[()=>n.e(1185).then(n.bind(n,6681)),"@site/../docs/copilot/testing-with-copilot.md",6681],"54c48e38":[()=>n.e(7109).then(n.bind(n,84387)),"@site/../docs/guide/mocking-user-activity.md",84387],"5a9cd6fb":[()=>n.e(7243).then(n.bind(n,81168)),"@site/../docs/introduction/preparing-for-ci.md",81168],"5b12c1a9":[()=>n.e(7577).then(n.bind(n,82038)),"@site/versioned_docs/version-20.x/config/overview.mdx",82038],"5bc90040":[()=>n.e(1218).then(n.bind(n,64657)),"@site/../docs/api/logger.mdx",64657],"5bfbde57":[()=>Promise.all([n.e(1869),n.e(7899)]).then(n.bind(n,25207)),"@site/versioned_docs/version-19.x/introduction/getting-started.md",25207],"5d002dae":[()=>n.e(2068).then(n.bind(n,66913)),"@site/../docs/guide/test-id.md",66913],"5d2f6d16":[()=>n.e(9515).then(n.bind(n,83199)),"@site/../docs/cli/init.md",83199],"5e26652b":[()=>Promise.all([n.e(1869),n.e(7126)]).then(n.bind(n,39554)),"@site/../docs/cli/overview.md",39554],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,4784)),"@generated/docusaurus.config",4784],"5eff386f":[()=>n.e(9592).then(n.bind(n,70359)),"@site/versioned_docs/version-20.x/troubleshooting/building-the-app.md",70359],"5fc994c2":[()=>Promise.all([n.e(1869),n.e(4098),n.e(1874)]).then(n.bind(n,22515)),"@site/src/pages/showcase.js",22515],"5fcf77d7":[()=>n.e(5564).then(n.bind(n,41485)),"@site/../docs/guide/mocking.md",41485],"63371bf1":[()=>n.e(9118).then(n.bind(n,87718)),"@site/versioned_docs/version-20.x/contributing/code/overview.md",87718],"649c4fa3":[()=>n.e(2459).then(n.bind(n,82882)),"@site/versioned_docs/version-20.x/guide/proguard-configuration.md",82882],"656a21b7":[()=>n.e(7813).then(n.bind(n,74601)),"@site/versioned_docs/version-20.x/guide/mocking-user-activity.md",74601],"66491fb6":[()=>n.e(1839).then(n.t.bind(n,6610,19)),"~blog/default/detox-blog-tags-genymotion-f0f-list.json",6610],"66c89031":[()=>n.e(4261).then(n.bind(n,79171)),"@site/../docs/guide/taking-screenshots.md",79171],"6781c826":[()=>n.e(6002).then(n.bind(n,51182)),"@site/../docs/api/expect.md",51182],"684e0aea":[()=>n.e(5403).then(n.bind(n,5808)),"@site/versioned_docs/version-20.x/cli/clean-framework-cache.md",5808],"6875c492":[()=>Promise.all([n.e(1869),n.e(3282),n.e(9551),n.e(8382),n.e(4813)]).then(n.bind(n,33069)),"@theme/BlogTagsPostsPage",33069],"6af18994":[()=>n.e(7153).then(n.bind(n,34673)),"@site/versioned_docs/version-20.x/guide/taking-screenshots.md",34673],"6e1398c4":[()=>n.e(3182).then(n.bind(n,70191)),"@site/versioned_docs/version-19.x/Introduction.AndroidDevEnv.md",70191],"6fb4057b":[()=>Promise.all([n.e(1869),n.e(347)]).then(n.bind(n,93008)),"@site/../docs/articles/third-party-drivers.md",93008],"7358fe14":[()=>Promise.all([n.e(1869),n.e(3818)]).then(n.bind(n,47276)),"@site/versioned_docs/version-20.x/cli/overview.md",47276],"73f08e0f":[()=>n.e(3336).then(n.bind(n,73837)),"@site/blog/2024-09-30-detox-copilot-is-out.md?truncated=true",73837],"743699a6":[()=>Promise.all([n.e(1869),n.e(5333)]).then(n.bind(n,52344)),"@site/versioned_docs/version-19.x/Guide.Jest.md",52344],"74a579df":[()=>Promise.all([n.e(1869),n.e(3206)]).then(n.bind(n,46390)),"@site/versioned_docs/version-20.x/guide/typescript.md",46390],"750255a9":[()=>n.e(6101).then(n.bind(n,92492)),"@site/versioned_docs/version-20.x/contributing/code/reviewing-pull-requests.md",92492],"79ac7843":[()=>n.e(6417).then(n.bind(n,49114)),"@site/versioned_docs/version-19.x/README.md",49114],"7a99341f":[()=>Promise.all([n.e(1869),n.e(3282),n.e(2373)]).then(n.bind(n,60375)),"@site/versioned_docs/version-20.x/config/logger.mdx",60375],"7accbb75":[()=>n.e(7473).then(n.bind(n,16402)),"@site/versioned_docs/version-20.x/api/actions.md",16402],"7b8d824d":[()=>n.e(2338).then(n.bind(n,22066)),"@site/../docs/troubleshooting/running-tests.md",22066],"7c823085":[()=>n.e(8519).then(n.bind(n,73705)),"@site/../docs/troubleshooting/synchronization.md",73705],"7c97e9a2":[()=>Promise.all([n.e(1869),n.e(9342)]).then(n.bind(n,3409)),"@site/versioned_docs/version-20.x/guide/migration.md",3409],"7d2f6bd9":[()=>n.e(7839).then(n.bind(n,78704)),"@site/versioned_docs/version-20.x/guide/parallel-test-execution.md",78704],"7dcc0419":[()=>n.e(7746).then(n.bind(n,20859)),"@site/versioned_docs/version-20.x/guide/mocking.md",20859],"80f9953e":[()=>n.e(9582).then(n.bind(n,34784)),"@site/versioned_docs/version-19.x/APIRef.DetoxObjectAPI.md",34784],"814f3328":[()=>n.e(7472).then(n.t.bind(n,55513,19)),"~blog/default/blog-post-list-prop-default.json",55513],"851303a1":[()=>Promise.all([n.e(1869),n.e(3282),n.e(5763)]).then(n.bind(n,11113)),"@site/../docs/config/apps.mdx",11113],"85a74db3":[()=>Promise.all([n.e(1869),n.e(4871)]).then(n.bind(n,32535)),"@site/../docs/contributing/documentation.md",32535],"85addd09":[()=>n.e(2496).then(n.bind(n,31404)),"@site/versioned_docs/version-20.x/articles/design-principles.md",31404],"85c7de33":[()=>n.e(235).then(n.bind(n,88287)),"@site/versioned_docs/version-19.x/APIRef.MockingUserActivity.md",88287],"861bdbb6":[()=>Promise.all([n.e(1869),n.e(178)]).then(n.bind(n,8303)),"@site/versioned_docs/version-19.x/APIRef.DetoxCLI.md",8303],"865d1447":[()=>n.e(7886).then(n.bind(n,45607)),"@site/versioned_docs/version-19.x/Guide.RunningLocally.md",45607],"86a9c212":[()=>n.e(641).then(n.bind(n,47494)),"@site/../docs/cli/clean-framework-cache.md",47494],"881ac13d":[()=>n.e(8768).then(n.bind(n,61540)),"@site/../docs/api/actions.md",61540],"8ab53c77":[()=>n.e(1513).then(n.bind(n,71316)),"@site/versioned_docs/version-20.x/troubleshooting/artifacts.md",71316],"8e7c33d6":[()=>n.e(6104).then(n.bind(n,71293)),"@site/../docs/cli/test.md",71293],"8f43d633":[()=>n.e(6990).then(n.t.bind(n,82885,19)),"~blog/default/detox-blog-archive-d9f.json",82885],"9017a355":[()=>n.e(2154).then(n.bind(n,30090)),"@site/../docs/articles/design-principles.md",30090],"90ca9965":[()=>n.e(7529).then(n.t.bind(n,7899,19)),"~blog/default/detox-blog-tags-major-release-66e-list.json",7899],"9292650b":[()=>n.e(9034).then(n.bind(n,97742)),"@site/blog/2022-11-10-detox-20-is-out.md?truncated=true",97742],"9338ecde":[()=>Promise.all([n.e(1869),n.e(4203)]).then(n.bind(n,86815)),"@site/../docs/introduction/environment-setup.md",86815],"933bed1e":[()=>n.e(2141).then(n.t.bind(n,52401,19)),"~blog/default/detox-blog-0bb.json",52401],"935f2afb":[()=>n.e(8581).then(n.t.bind(n,35610,19)),"~docs/default/version-current-metadata-prop-751.json",35610],"9509e94f":[()=>n.e(708).then(n.bind(n,53459)),"@site/versioned_docs/version-20.x/troubleshooting/synchronization.md",53459],"95ce696f":[()=>n.e(6118).then(n.bind(n,88515)),"@site/../docs/copilot/technical-overview.mdx",88515],96997528:[()=>n.e(1138).then(n.bind(n,76018)),"@site/versioned_docs/version-20.x/api/matchers.md",76018],"9a34b858":[()=>Promise.all([n.e(1869),n.e(1533)]).then(n.bind(n,94836)),"@site/versioned_docs/version-20.x/api/internals.mdx",94836],"9a6ca8b8":[()=>Promise.all([n.e(1869),n.e(3282),n.e(289)]).then(n.bind(n,18918)),"@site/versioned_docs/version-20.x/config/artifacts.mdx",18918],"9b67fd78":[()=>n.e(4324).then(n.bind(n,21678)),"@site/../docs/contributing/code/submitting-pull-requests.md",21678],"9e4087bc":[()=>n.e(2711).then(n.bind(n,89331)),"@theme/BlogArchivePage",89331],"9eb50243":[()=>n.e(2419).then(n.t.bind(n,88788,19)),"~blog/default/detox-blog-tags-major-release-66e.json",88788],"9f23071e":[()=>n.e(7606).then(n.bind(n,28739)),"@site/versioned_docs/version-20.x/contributing/code-of-conduct.md",28739],a074e23a:[()=>n.e(7484).then(n.bind(n,20710)),"@site/../docs/copilot/best-practices.md",20710],a4761f6f:[()=>Promise.all([n.e(1869),n.e(3282),n.e(298)]).then(n.bind(n,11563)),"@site/versioned_docs/version-20.x/config/apps.mdx",11563],a55aca30:[()=>n.e(3010).then(n.bind(n,45413)),"@site/../docs/cli/start.md",45413],a622d695:[()=>n.e(4778).then(n.bind(n,81676)),"@site/versioned_docs/version-20.x/api/expect.md",81676],a6860cb2:[()=>n.e(4511).then(n.bind(n,84651)),"@site/../docs/contributing/reporting-bugs.md",84651],a6aa9e1f:[()=>Promise.all([n.e(1869),n.e(3282),n.e(9551),n.e(8382),n.e(7643)]).then(n.bind(n,77785)),"@theme/BlogListPage",77785],a8a1de49:[()=>Promise.all([n.e(1869),n.e(6618)]).then(n.bind(n,53046)),"@site/src/components/CustomLayout",53046],ae694851:[()=>Promise.all([n.e(1869),n.e(5928)]).then(n.bind(n,33511)),"@site/versioned_docs/version-20.x/guide/uninstalling.md",33511],af558054:[()=>n.e(7583).then(n.bind(n,14994)),"@site/versioned_docs/version-19.x/APIRef.Screenshots.md",14994],af67069a:[()=>Promise.all([n.e(1869),n.e(3282),n.e(2247)]).then(n.bind(n,21644)),"@site/versioned_docs/version-20.x/introduction/your-first-test.mdx",21644],af952e90:[()=>n.e(7360).then(n.bind(n,72504)),"@site/../docs/contributing/code/overview.md",72504],b1c3f2c7:[()=>n.e(612).then(n.t.bind(n,33939,19)),"~blog/default/detox-blog-tags-genymotion-f0f.json",33939],b48043f7:[()=>n.e(5235).then(n.bind(n,32117)),"@site/versioned_docs/version-20.x/cli/recorder.md",32117],b49de2ad:[()=>n.e(3372).then(n.bind(n,76314)),"@site/versioned_docs/version-19.x/Guide.DebuggingInXcode.md",76314],b6072cb9:[()=>n.e(8634).then(n.bind(n,62532)),"@site/versioned_docs/version-19.x/APIRef.MockingOpenWithURL.md",62532],b80a1ac9:[()=>Promise.all([n.e(1869),n.e(6938)]).then(n.bind(n,32764)),"@site/../docs/guide/typescript.md",32764],b9d5de69:[()=>Promise.all([n.e(1869),n.e(3282),n.e(8271)]).then(n.bind(n,8057)),"@site/../docs/config/session.mdx",8057],ba1e31c2:[()=>n.e(7761).then(n.bind(n,96916)),"@site/../docs/api/matchers.md",96916],baa98f43:[()=>n.e(4151).then(n.t.bind(n,21826,19)),"~blog/default/detox-blog-tags-ai-integration-5be-list.json",21826],bab8a798:[()=>n.e(3421).then(n.bind(n,37417)),"@site/versioned_docs/version-20.x/introduction/getting-started.mdx",37417],bc243f9c:[()=>n.e(4099).then(n.bind(n,58920)),"@site/versioned_docs/version-19.x/APIRef.DeviceObjectAPI.md",58920],beec6c9a:[()=>n.e(3995).then(n.bind(n,59648)),"@site/versioned_docs/version-20.x/cli/run-server.md",59648],c12557ec:[()=>n.e(3360).then(n.bind(n,75078)),"@site/../docs/contributing/code/reviewing-pull-requests.md",75078],c262e01e:[()=>n.e(3833).then(n.bind(n,59719)),"@site/../docs/introduction/getting-started.mdx",59719],c4f5d8e4:[()=>Promise.all([n.e(1869),n.e(2634)]).then(n.bind(n,83414)),"@site/src/pages/index.js",83414],c50db514:[()=>n.e(2707).then(n.bind(n,22898)),"@site/versioned_docs/version-20.x/guide/testing-webviews.md",22898],c62bfd53:[()=>n.e(2270).then(n.bind(n,23983)),"@site/versioned_docs/version-19.x/APIRef.TestLifecycle.md",23983],c74a7097:[()=>n.e(4557).then(n.bind(n,28661)),"@site/versioned_docs/version-20.x/troubleshooting/flakiness.md",28661],c7632c1f:[()=>Promise.all([n.e(1869),n.e(6388)]).then(n.bind(n,85909)),"@site/../docs/contributing/code/setting-up-the-dev-environment.md",85909],c7f75652:[()=>n.e(8716).then(n.bind(n,59547)),"@site/blog/2024-09-30-detox-copilot-is-out.md",59547],c83bcda6:[()=>n.e(6461).then(n.bind(n,59347)),"@site/../docs/guide/mocking-open-with-url.md",59347],c8447d5b:[()=>n.e(4122).then(n.bind(n,4353)),"@site/../docs/cli/build.md",4353],cae448e5:[()=>n.e(3486).then(n.bind(n,46978)),"@site/../docs/guide/parallel-test-execution.md",46978],cb38042d:[()=>n.e(323).then(n.bind(n,3367)),"@site/versioned_docs/version-20.x/cli/start.md",3367],ccc49370:[()=>Promise.all([n.e(1869),n.e(3282),n.e(9551),n.e(8382),n.e(3249)]).then(n.bind(n,84029)),"@theme/BlogPostPage",84029],cd796466:[()=>Promise.all([n.e(1869),n.e(3282),n.e(6044)]).then(n.bind(n,87081)),"@site/../docs/introduction/your-first-test.mdx",87081],d350cff3:[()=>n.e(2525).then(n.t.bind(n,84563,19)),"~docs/default/version-20-x-metadata-prop-424.json",84563],d389a7b2:[()=>n.e(5465).then(n.bind(n,78758)),"@site/../docs/troubleshooting/artifacts.md",78758],d8b689b0:[()=>Promise.all([n.e(1869),n.e(656)]).then(n.bind(n,44896)),"@site/versioned_docs/version-20.x/introduction/environment-setup.md",44896],d9683343:[()=>n.e(8245).then(n.bind(n,51730)),"@site/../docs/cli/run-server.md",51730],d96edd44:[()=>n.e(5237).then(n.t.bind(n,46595,19)),"~blog/default/detox-blog-tags-ai-integration-5be.json",46595],d9894068:[()=>n.e(577).then(n.bind(n,50928)),"@site/versioned_docs/version-20.x/contributing.md",50928],dbe4f0b7:[()=>n.e(8877).then(n.bind(n,5266)),"@site/versioned_docs/version-20.x/guide/cucumber-js-integration.md",5266],dc701447:[()=>n.e(2581).then(n.bind(n,93094)),"@site/versioned_docs/version-20.x/introduction/preparing-for-ci.md",93094],dcfd3b61:[()=>n.e(7742).then(n.bind(n,45473)),"@site/versioned_docs/version-19.x/APIRef.LaunchArgs.md",45473],dd5377a3:[()=>n.e(7846).then(n.bind(n,20593)),"@site/versioned_docs/version-20.x/cli/build-framework-cache.md",20593],ddab1e1f:[()=>Promise.all([n.e(1869),n.e(3282),n.e(2905)]).then(n.bind(n,20220)),"@site/../docs/config/artifacts.mdx",20220],ddb15f76:[()=>n.e(5110).then(n.bind(n,28199)),"@site/versioned_docs/version-20.x/cli/build.md",28199],df0b489b:[()=>n.e(770).then(n.bind(n,29768)),"@site/versioned_docs/version-19.x/APIRef.MockingUserNotifications.md",29768],df5bc064:[()=>n.e(5351).then(n.bind(n,8890)),"@site/versioned_docs/version-19.x/Guide.Mocking.md",8890],df8c2417:[()=>n.e(9120).then(n.bind(n,20721)),"@site/versioned_docs/version-19.x/APIRef.ActionsOnElement.md",20721],e237dedf:[()=>n.e(8795).then(n.bind(n,52272)),"@site/versioned_docs/version-19.x/Troubleshooting.md",52272],e2c7edfe:[()=>n.e(9736).then(n.t.bind(n,13131,19)),"~blog/default/detox-blog-tags-minor-release-46f.json",13131],e432d2f9:[()=>n.e(3134).then(n.bind(n,43516)),"@site/versioned_docs/version-19.x/Troubleshooting.Flakiness.md",43516],e453af6e:[()=>n.e(6646).then(n.bind(n,77274)),"@site/versioned_docs/version-20.x/articles/how-detox-works.md",77274],e6bddadc:[()=>n.e(3022).then(n.bind(n,29689)),"@site/versioned_docs/version-20.x/cli/init.md",29689],e6cdcb35:[()=>n.e(332).then(n.bind(n,98919)),"@site/../docs/guide/genymotion-saas.mdx",98919],e8bfc54f:[()=>Promise.all([n.e(1869),n.e(3282),n.e(4078)]).then(n.bind(n,62031)),"@site/../docs/config/behavior.mdx",62031],e9d07a0a:[()=>Promise.all([n.e(1869),n.e(3282),n.e(456)]).then(n.bind(n,30923)),"@site/../docs/demo.mdx",30923],ea7b1b31:[()=>n.e(7367).then(n.bind(n,3795)),"@site/versioned_docs/version-20.x/guide/investigating-test-failure.mdx",3795],ea9c95e7:[()=>n.e(8839).then(n.bind(n,54981)),"@site/../docs/guide/investigating-test-failure.mdx",54981],eb35abdd:[()=>n.e(8455).then(n.bind(n,28171)),"@site/../docs/cli/recorder.md",28171],ecfe08ed:[()=>n.e(1987).then(n.bind(n,77102)),"@site/../docs/contributing.md",77102],ede8d976:[()=>n.e(265).then(n.t.bind(n,73498,19)),"~blog/default/detox-blog-tags-detox-copilot-3ae.json",73498],ef7da448:[()=>Promise.all([n.e(1869),n.e(4368)]).then(n.bind(n,5310)),"@site/versioned_docs/version-20.x/articles/third-party-drivers.md",5310],f02f7df4:[()=>Promise.all([n.e(1869),n.e(3282),n.e(1274)]).then(n.bind(n,40012)),"@site/../docs/introduction/project-setup.mdx",40012],f14c3b1d:[()=>n.e(3119).then(n.t.bind(n,76854,19)),"~docs/default/version-19-x-metadata-prop-607.json",76854],f164116d:[()=>Promise.all([n.e(1869),n.e(8758)]).then(n.bind(n,36558)),"@site/versioned_docs/version-19.x/Guide.ThirdPartyDrivers.md",36558],f2f4b8a7:[()=>n.e(3103).then(n.bind(n,82322)),"@site/versioned_docs/version-20.x/guide/mocking-user-notifications.md",82322],f431fa1f:[()=>n.e(1707).then(n.bind(n,10878)),"@site/versioned_docs/version-20.x/guide/launch-args.md",10878],f6b2bbb1:[()=>Promise.all([n.e(1869),n.e(3282),n.e(8476)]).then(n.bind(n,93281)),"@site/../docs/config/logger.mdx",93281],f6c890be:[()=>n.e(5930).then(n.t.bind(n,6794,19)),"~blog/default/detox-blog-tags-minor-release-46f-list.json",6794],f9078c13:[()=>n.e(4196).then(n.bind(n,30859)),"@site/versioned_docs/version-19.x/Guide.ParallelTestExecution.md",30859],f97fefc4:[()=>n.e(3379).then(n.bind(n,25689)),"@site/versioned_docs/version-20.x/guide/mocking-open-with-url.md",25689],f98b7248:[()=>n.e(6941).then(n.bind(n,44090)),"@site/blog/2022-11-10-detox-20-is-out.md",44090],f999fa4a:[()=>n.e(9812).then(n.bind(n,63782)),"@site/versioned_docs/version-20.x/contributing/code/example-projects.md",63782],fa42474c:[()=>n.e(4034).then(n.bind(n,4922)),"@site/versioned_docs/version-19.x/Troubleshooting.BuildingTheApp.md",4922],fc323215:[()=>n.e(8460).then(n.bind(n,88376)),"@site/../docs/contributing/questions/asking-questions.md",88376],fc9f0a8f:[()=>n.e(1700).then(n.bind(n,63418)),"@site/versioned_docs/version-20.x/guide/android-dev-env.md",63418],fe23c957:[()=>n.e(53).then(n.bind(n,12020)),"@site/versioned_docs/version-20.x/contributing/feature-requests.md",12020]};function l(e){let{error:t,retry:n,pastDelay:o}=e;return t?r.createElement("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"}},r.createElement("p",null,String(t)),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},"Retry"))):o?r.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"}},r.createElement("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb"},r.createElement("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2"},r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"8"},r.createElement("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"}))))):null}var u=n(86921),d=n(53102);function f(e,t){if("*"===e)return a()({loading:l,loader:()=>n.e(1774).then(n.bind(n,81774)),modules:["@theme/NotFound"],webpack:()=>[81774],render(e,t){const n=e.default;return r.createElement(d.W,{value:{plugin:{name:"native",id:"default"}}},r.createElement(n,t))}});const i=c[`${e}-${t}`],f={},p=[],h=[],m=(0,u.A)(i);return Object.entries(m).forEach((e=>{let[t,n]=e;const r=s[n];r&&(f[t]=r[0],p.push(r[1]),h.push(r[2]))})),a().Map({loading:l,loader:f,modules:p,webpack:()=>h,render(t,n){const a=JSON.parse(JSON.stringify(i));Object.entries(t).forEach((t=>{let[n,r]=t;const o=r.default;if(!o)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof o&&"function"!=typeof o||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{o[e]=r[e]}));let i=a;const c=n.split(".");c.slice(0,-1).forEach((e=>{i=i[e]})),i[c[c.length-1]]=o}));const c=a.__comp;delete a.__comp;const s=a.__context;return delete a.__context,r.createElement(d.W,{value:s},r.createElement(c,(0,o.A)({},a,n)))}})}const p=[{path:"/Detox/blog",component:f("/Detox/blog","c30"),exact:!0},{path:"/Detox/blog/2022/11/10/detox-20-is-out",component:f("/Detox/blog/2022/11/10/detox-20-is-out","04b"),exact:!0},{path:"/Detox/blog/2024/09/30/detox-copilot-is-out",component:f("/Detox/blog/2024/09/30/detox-copilot-is-out","902"),exact:!0},{path:"/Detox/blog/archive",component:f("/Detox/blog/archive","723"),exact:!0},{path:"/Detox/blog/tags",component:f("/Detox/blog/tags","fe8"),exact:!0},{path:"/Detox/blog/tags/ai-integration",component:f("/Detox/blog/tags/ai-integration","e0e"),exact:!0},{path:"/Detox/blog/tags/detox-copilot",component:f("/Detox/blog/tags/detox-copilot","05e"),exact:!0},{path:"/Detox/blog/tags/genymotion",component:f("/Detox/blog/tags/genymotion","75d"),exact:!0},{path:"/Detox/blog/tags/major-release",component:f("/Detox/blog/tags/major-release","328"),exact:!0},{path:"/Detox/blog/tags/minor-release",component:f("/Detox/blog/tags/minor-release","f51"),exact:!0},{path:"/Detox/search",component:f("/Detox/search","576"),exact:!0},{path:"/Detox/showcase",component:f("/Detox/showcase","d2d"),exact:!0},{path:"/Detox/docs/19.x",component:f("/Detox/docs/19.x","725"),routes:[{path:"/Detox/docs/19.x/",component:f("/Detox/docs/19.x/","4d2"),exact:!0},{path:"/Detox/docs/19.x/api/actions-on-element",component:f("/Detox/docs/19.x/api/actions-on-element","1c2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/19.x/api/artifacts",component:f("/Detox/docs/19.x/api/artifacts","6ac"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/19.x/api/detox-cli",component:f("/Detox/docs/19.x/api/detox-cli","b6e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/19.x/api/detox-object-api",component:f("/Detox/docs/19.x/api/detox-object-api","aa7"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/19.x/api/device-object-api",component:f("/Detox/docs/19.x/api/device-object-api","64a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/19.x/api/expect",component:f("/Detox/docs/19.x/api/expect","cc4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/19.x/api/launch-args",component:f("/Detox/docs/19.x/api/launch-args","671"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/19.x/api/matchers",component:f("/Detox/docs/19.x/api/matchers","8cd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/19.x/api/mocking-open-with-url",component:f("/Detox/docs/19.x/api/mocking-open-with-url","116"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/19.x/api/mocking-user-activity",component:f("/Detox/docs/19.x/api/mocking-user-activity","cfa"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/19.x/api/mocking-user-notifications",component:f("/Detox/docs/19.x/api/mocking-user-notifications","725"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/19.x/api/screenshots",component:f("/Detox/docs/19.x/api/screenshots","bb0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/19.x/api/test-lifecycle",component:f("/Detox/docs/19.x/api/test-lifecycle","451"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/19.x/config/overview",component:f("/Detox/docs/19.x/config/overview","c73"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/19.x/contributing",component:f("/Detox/docs/19.x/contributing","04b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/19.x/guide/debugging-in-android-studio",component:f("/Detox/docs/19.x/guide/debugging-in-android-studio","1a7"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/19.x/guide/debugging-in-xcode",component:f("/Detox/docs/19.x/guide/debugging-in-xcode","50c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/19.x/guide/developing-while-writing-tests",component:f("/Detox/docs/19.x/guide/developing-while-writing-tests","121"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/19.x/guide/expo",component:f("/Detox/docs/19.x/guide/expo","ff2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/19.x/guide/jest",component:f("/Detox/docs/19.x/guide/jest","468"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/19.x/guide/migration",component:f("/Detox/docs/19.x/guide/migration","9af"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/19.x/guide/mocha",component:f("/Detox/docs/19.x/guide/mocha","224"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/19.x/guide/mocking",component:f("/Detox/docs/19.x/guide/mocking","7b4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/19.x/guide/parallel-test-execution",component:f("/Detox/docs/19.x/guide/parallel-test-execution","ea9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/19.x/guide/running-locally",component:f("/Detox/docs/19.x/guide/running-locally","980"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/19.x/guide/running-on-ci",component:f("/Detox/docs/19.x/guide/running-on-ci","57e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/19.x/guide/third-party-drivers",component:f("/Detox/docs/19.x/guide/third-party-drivers","c97"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/19.x/guide/uninstalling",component:f("/Detox/docs/19.x/guide/uninstalling","e71"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/19.x/introduction/android",component:f("/Detox/docs/19.x/introduction/android","9dd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/19.x/introduction/android-dev-env",component:f("/Detox/docs/19.x/introduction/android-dev-env","45e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/19.x/introduction/design-principles",component:f("/Detox/docs/19.x/introduction/design-principles","780"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/19.x/introduction/getting-started",component:f("/Detox/docs/19.x/introduction/getting-started","4c6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/19.x/introduction/how-detox-works",component:f("/Detox/docs/19.x/introduction/how-detox-works","618"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/19.x/introduction/ios",component:f("/Detox/docs/19.x/introduction/ios","d94"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/19.x/introduction/ios-dev-env",component:f("/Detox/docs/19.x/introduction/ios-dev-env","4bf"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/19.x/introduction/workflows",component:f("/Detox/docs/19.x/introduction/workflows","46e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/19.x/introduction/writing-first-test",component:f("/Detox/docs/19.x/introduction/writing-first-test","091"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/19.x/troubleshooting/building-the-app",component:f("/Detox/docs/19.x/troubleshooting/building-the-app","b06"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/19.x/troubleshooting/flakiness",component:f("/Detox/docs/19.x/troubleshooting/flakiness","4ff"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/19.x/troubleshooting/running-tests",component:f("/Detox/docs/19.x/troubleshooting/running-tests","e2a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/19.x/troubleshooting/synchronization",component:f("/Detox/docs/19.x/troubleshooting/synchronization","ddd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/19.x/troubleshooting/troubleshooting",component:f("/Detox/docs/19.x/troubleshooting/troubleshooting","018"),exact:!0,sidebar:"tutorialSidebar"}]},{path:"/Detox/docs/next",component:f("/Detox/docs/next","f17"),routes:[{path:"/Detox/docs/next/api/actions",component:f("/Detox/docs/next/api/actions","cd0"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/next/api/copilot",component:f("/Detox/docs/next/api/copilot","68e"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/next/api/device",component:f("/Detox/docs/next/api/device","306"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/next/api/expect",component:f("/Detox/docs/next/api/expect","d84"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/next/api/internals",component:f("/Detox/docs/next/api/internals","a1c"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/next/api/logger",component:f("/Detox/docs/next/api/logger","4ae"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/next/api/matchers",component:f("/Detox/docs/next/api/matchers","53e"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/next/api/system",component:f("/Detox/docs/next/api/system","8ab"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/next/api/webviews",component:f("/Detox/docs/next/api/webviews","b0d"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/next/articles/design-principles",component:f("/Detox/docs/next/articles/design-principles","b6b"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/next/articles/how-detox-works",component:f("/Detox/docs/next/articles/how-detox-works","e9a"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/next/articles/third-party-drivers",component:f("/Detox/docs/next/articles/third-party-drivers","b2c"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/next/cli/build",component:f("/Detox/docs/next/cli/build","a44"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/next/cli/build-framework-cache",component:f("/Detox/docs/next/cli/build-framework-cache","341"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/next/cli/clean-framework-cache",component:f("/Detox/docs/next/cli/clean-framework-cache","42a"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/next/cli/init",component:f("/Detox/docs/next/cli/init","b35"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/next/cli/overview",component:f("/Detox/docs/next/cli/overview","f53"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/next/cli/rebuild-framework-cache",component:f("/Detox/docs/next/cli/rebuild-framework-cache","c65"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/next/cli/recorder",component:f("/Detox/docs/next/cli/recorder","9a4"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/next/cli/reset-lock-file",component:f("/Detox/docs/next/cli/reset-lock-file","78e"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/next/cli/run-server",component:f("/Detox/docs/next/cli/run-server","86b"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/next/cli/start",component:f("/Detox/docs/next/cli/start","f17"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/next/cli/test",component:f("/Detox/docs/next/cli/test","699"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/next/config/apps",component:f("/Detox/docs/next/config/apps","1d3"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/next/config/artifacts",component:f("/Detox/docs/next/config/artifacts","825"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/next/config/behavior",component:f("/Detox/docs/next/config/behavior","efc"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/next/config/devices",component:f("/Detox/docs/next/config/devices","bcd"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/next/config/logger",component:f("/Detox/docs/next/config/logger","257"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/next/config/overview",component:f("/Detox/docs/next/config/overview","802"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/next/config/session",component:f("/Detox/docs/next/config/session","a7f"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/next/config/testRunner",component:f("/Detox/docs/next/config/testRunner","6ec"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/next/contributing",component:f("/Detox/docs/next/contributing","739"),exact:!0,sidebar:"contributeSidebar"},{path:"/Detox/docs/next/contributing/code-of-conduct",component:f("/Detox/docs/next/contributing/code-of-conduct","20f"),exact:!0,sidebar:"contributeSidebar"},{path:"/Detox/docs/next/contributing/code/building-and-testing",component:f("/Detox/docs/next/contributing/code/building-and-testing","a97"),exact:!0,sidebar:"contributeSidebar"},{path:"/Detox/docs/next/contributing/code/example-projects",component:f("/Detox/docs/next/contributing/code/example-projects","556"),exact:!0,sidebar:"contributeSidebar"},{path:"/Detox/docs/next/contributing/code/overview",component:f("/Detox/docs/next/contributing/code/overview","998"),exact:!0,sidebar:"contributeSidebar"},{path:"/Detox/docs/next/contributing/code/reviewing-pull-requests",component:f("/Detox/docs/next/contributing/code/reviewing-pull-requests","6de"),exact:!0,sidebar:"contributeSidebar"},{path:"/Detox/docs/next/contributing/code/setting-up-the-dev-environment",component:f("/Detox/docs/next/contributing/code/setting-up-the-dev-environment","9be"),exact:!0,sidebar:"contributeSidebar"},{path:"/Detox/docs/next/contributing/code/submitting-pull-requests",component:f("/Detox/docs/next/contributing/code/submitting-pull-requests","a0f"),exact:!0,sidebar:"contributeSidebar"},{path:"/Detox/docs/next/contributing/documentation",component:f("/Detox/docs/next/contributing/documentation","067"),exact:!0,sidebar:"contributeSidebar"},{path:"/Detox/docs/next/contributing/feature-requests",component:f("/Detox/docs/next/contributing/feature-requests","6eb"),exact:!0,sidebar:"contributeSidebar"},{path:"/Detox/docs/next/contributing/questions/answering-questions",component:f("/Detox/docs/next/contributing/questions/answering-questions","26d"),exact:!0,sidebar:"contributeSidebar"},{path:"/Detox/docs/next/contributing/questions/asking-questions",component:f("/Detox/docs/next/contributing/questions/asking-questions","de0"),exact:!0,sidebar:"contributeSidebar"},{path:"/Detox/docs/next/contributing/reporting-bugs",component:f("/Detox/docs/next/contributing/reporting-bugs","25c"),exact:!0,sidebar:"contributeSidebar"},{path:"/Detox/docs/next/copilot/best-practices",component:f("/Detox/docs/next/copilot/best-practices","d01"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/next/copilot/technical-overview",component:f("/Detox/docs/next/copilot/technical-overview","d0a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/next/copilot/testing-with-copilot",component:f("/Detox/docs/next/copilot/testing-with-copilot","2c4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/next/demo",component:f("/Detox/docs/next/demo","01f"),exact:!0},{path:"/Detox/docs/next/guide/android-dev-env",component:f("/Detox/docs/next/guide/android-dev-env","841"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/next/guide/cucumber-js-integration",component:f("/Detox/docs/next/guide/cucumber-js-integration","270"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/next/guide/developing-while-writing-tests",component:f("/Detox/docs/next/guide/developing-while-writing-tests","be1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/next/guide/genymotion-saas",component:f("/Detox/docs/next/guide/genymotion-saas","789"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/next/guide/investigating-test-failure",component:f("/Detox/docs/next/guide/investigating-test-failure","4ad"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/next/guide/launch-args",component:f("/Detox/docs/next/guide/launch-args","8f4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/next/guide/migration",component:f("/Detox/docs/next/guide/migration","296"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/next/guide/mocking",component:f("/Detox/docs/next/guide/mocking","d4f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/next/guide/mocking-open-with-url",component:f("/Detox/docs/next/guide/mocking-open-with-url","582"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/next/guide/mocking-user-activity",component:f("/Detox/docs/next/guide/mocking-user-activity","6a0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/next/guide/mocking-user-notifications",component:f("/Detox/docs/next/guide/mocking-user-notifications","69d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/next/guide/parallel-test-execution",component:f("/Detox/docs/next/guide/parallel-test-execution","11f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/next/guide/proguard-configuration",component:f("/Detox/docs/next/guide/proguard-configuration","bf9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/next/guide/taking-screenshots",component:f("/Detox/docs/next/guide/taking-screenshots","09b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/next/guide/test-id",component:f("/Detox/docs/next/guide/test-id","abf"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/next/guide/testing-webviews",component:f("/Detox/docs/next/guide/testing-webviews","64b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/next/guide/typescript",component:f("/Detox/docs/next/guide/typescript","169"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/next/guide/uninstalling",component:f("/Detox/docs/next/guide/uninstalling","d7c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/next/introduction/debugging",component:f("/Detox/docs/next/introduction/debugging","8c9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/next/introduction/environment-setup",component:f("/Detox/docs/next/introduction/environment-setup","315"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/next/introduction/getting-started",component:f("/Detox/docs/next/introduction/getting-started","859"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/next/introduction/preparing-for-ci",component:f("/Detox/docs/next/introduction/preparing-for-ci","214"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/next/introduction/project-setup",component:f("/Detox/docs/next/introduction/project-setup","a97"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/next/introduction/your-first-test",component:f("/Detox/docs/next/introduction/your-first-test","dc6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/next/troubleshooting/artifacts",component:f("/Detox/docs/next/troubleshooting/artifacts","c54"),exact:!0},{path:"/Detox/docs/next/troubleshooting/building-the-app",component:f("/Detox/docs/next/troubleshooting/building-the-app","434"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/next/troubleshooting/flakiness",component:f("/Detox/docs/next/troubleshooting/flakiness","074"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/next/troubleshooting/running-tests",component:f("/Detox/docs/next/troubleshooting/running-tests","10a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/next/troubleshooting/synchronization",component:f("/Detox/docs/next/troubleshooting/synchronization","5b4"),exact:!0,sidebar:"tutorialSidebar"}]},{path:"/Detox/docs",component:f("/Detox/docs","071"),routes:[{path:"/Detox/docs/api/actions",component:f("/Detox/docs/api/actions","854"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/api/device",component:f("/Detox/docs/api/device","fe3"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/api/expect",component:f("/Detox/docs/api/expect","21a"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/api/internals",component:f("/Detox/docs/api/internals","17c"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/api/logger",component:f("/Detox/docs/api/logger","619"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/api/matchers",component:f("/Detox/docs/api/matchers","f36"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/api/system",component:f("/Detox/docs/api/system","ea1"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/api/webviews",component:f("/Detox/docs/api/webviews","05b"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/articles/design-principles",component:f("/Detox/docs/articles/design-principles","fdb"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/articles/how-detox-works",component:f("/Detox/docs/articles/how-detox-works","db3"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/articles/third-party-drivers",component:f("/Detox/docs/articles/third-party-drivers","e7e"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/cli/build",component:f("/Detox/docs/cli/build","043"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/cli/build-framework-cache",component:f("/Detox/docs/cli/build-framework-cache","34f"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/cli/clean-framework-cache",component:f("/Detox/docs/cli/clean-framework-cache","b33"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/cli/init",component:f("/Detox/docs/cli/init","3cd"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/cli/overview",component:f("/Detox/docs/cli/overview","809"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/cli/rebuild-framework-cache",component:f("/Detox/docs/cli/rebuild-framework-cache","65e"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/cli/recorder",component:f("/Detox/docs/cli/recorder","215"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/cli/reset-lock-file",component:f("/Detox/docs/cli/reset-lock-file","000"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/cli/run-server",component:f("/Detox/docs/cli/run-server","aa3"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/cli/start",component:f("/Detox/docs/cli/start","2a9"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/cli/test",component:f("/Detox/docs/cli/test","e12"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/config/apps",component:f("/Detox/docs/config/apps","1da"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/config/artifacts",component:f("/Detox/docs/config/artifacts","fb9"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/config/behavior",component:f("/Detox/docs/config/behavior","471"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/config/devices",component:f("/Detox/docs/config/devices","11a"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/config/logger",component:f("/Detox/docs/config/logger","bad"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/config/overview",component:f("/Detox/docs/config/overview","88c"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/config/session",component:f("/Detox/docs/config/session","214"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/config/testRunner",component:f("/Detox/docs/config/testRunner","271"),exact:!0,sidebar:"apiSidebar"},{path:"/Detox/docs/contributing",component:f("/Detox/docs/contributing","6c5"),exact:!0,sidebar:"contributeSidebar"},{path:"/Detox/docs/contributing/code-of-conduct",component:f("/Detox/docs/contributing/code-of-conduct","1fe"),exact:!0,sidebar:"contributeSidebar"},{path:"/Detox/docs/contributing/code/building-and-testing",component:f("/Detox/docs/contributing/code/building-and-testing","1cc"),exact:!0,sidebar:"contributeSidebar"},{path:"/Detox/docs/contributing/code/example-projects",component:f("/Detox/docs/contributing/code/example-projects","3a7"),exact:!0,sidebar:"contributeSidebar"},{path:"/Detox/docs/contributing/code/overview",component:f("/Detox/docs/contributing/code/overview","1ca"),exact:!0,sidebar:"contributeSidebar"},{path:"/Detox/docs/contributing/code/reviewing-pull-requests",component:f("/Detox/docs/contributing/code/reviewing-pull-requests","f0c"),exact:!0,sidebar:"contributeSidebar"},{path:"/Detox/docs/contributing/code/setting-up-the-dev-environment",component:f("/Detox/docs/contributing/code/setting-up-the-dev-environment","f7c"),exact:!0,sidebar:"contributeSidebar"},{path:"/Detox/docs/contributing/code/submitting-pull-requests",component:f("/Detox/docs/contributing/code/submitting-pull-requests","235"),exact:!0,sidebar:"contributeSidebar"},{path:"/Detox/docs/contributing/documentation",component:f("/Detox/docs/contributing/documentation","dc9"),exact:!0,sidebar:"contributeSidebar"},{path:"/Detox/docs/contributing/feature-requests",component:f("/Detox/docs/contributing/feature-requests","acb"),exact:!0,sidebar:"contributeSidebar"},{path:"/Detox/docs/contributing/questions/answering-questions",component:f("/Detox/docs/contributing/questions/answering-questions","af3"),exact:!0,sidebar:"contributeSidebar"},{path:"/Detox/docs/contributing/questions/asking-questions",component:f("/Detox/docs/contributing/questions/asking-questions","79a"),exact:!0,sidebar:"contributeSidebar"},{path:"/Detox/docs/contributing/reporting-bugs",component:f("/Detox/docs/contributing/reporting-bugs","76e"),exact:!0,sidebar:"contributeSidebar"},{path:"/Detox/docs/demo",component:f("/Detox/docs/demo","717"),exact:!0},{path:"/Detox/docs/guide/android-dev-env",component:f("/Detox/docs/guide/android-dev-env","483"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/guide/cucumber-js-integration",component:f("/Detox/docs/guide/cucumber-js-integration","8bd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/guide/developing-while-writing-tests",component:f("/Detox/docs/guide/developing-while-writing-tests","05c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/guide/genymotion-saas",component:f("/Detox/docs/guide/genymotion-saas","1fc"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/guide/investigating-test-failure",component:f("/Detox/docs/guide/investigating-test-failure","872"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/guide/launch-args",component:f("/Detox/docs/guide/launch-args","a38"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/guide/migration",component:f("/Detox/docs/guide/migration","0ad"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/guide/mocking",component:f("/Detox/docs/guide/mocking","4bc"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/guide/mocking-open-with-url",component:f("/Detox/docs/guide/mocking-open-with-url","a0d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/guide/mocking-user-activity",component:f("/Detox/docs/guide/mocking-user-activity","814"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/guide/mocking-user-notifications",component:f("/Detox/docs/guide/mocking-user-notifications","734"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/guide/parallel-test-execution",component:f("/Detox/docs/guide/parallel-test-execution","018"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/guide/proguard-configuration",component:f("/Detox/docs/guide/proguard-configuration","44e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/guide/taking-screenshots",component:f("/Detox/docs/guide/taking-screenshots","0d2"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/guide/test-id",component:f("/Detox/docs/guide/test-id","fee"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/guide/testing-webviews",component:f("/Detox/docs/guide/testing-webviews","b0d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/guide/typescript",component:f("/Detox/docs/guide/typescript","e33"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/guide/uninstalling",component:f("/Detox/docs/guide/uninstalling","e93"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/introduction/debugging",component:f("/Detox/docs/introduction/debugging","8ff"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/introduction/environment-setup",component:f("/Detox/docs/introduction/environment-setup","1d9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/introduction/getting-started",component:f("/Detox/docs/introduction/getting-started","710"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/introduction/preparing-for-ci",component:f("/Detox/docs/introduction/preparing-for-ci","102"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/introduction/project-setup",component:f("/Detox/docs/introduction/project-setup","71e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/introduction/your-first-test",component:f("/Detox/docs/introduction/your-first-test","263"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/troubleshooting/artifacts",component:f("/Detox/docs/troubleshooting/artifacts","b2c"),exact:!0},{path:"/Detox/docs/troubleshooting/building-the-app",component:f("/Detox/docs/troubleshooting/building-the-app","c23"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/troubleshooting/flakiness",component:f("/Detox/docs/troubleshooting/flakiness","85d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/troubleshooting/running-tests",component:f("/Detox/docs/troubleshooting/running-tests","fe8"),exact:!0,sidebar:"tutorialSidebar"},{path:"/Detox/docs/troubleshooting/synchronization",component:f("/Detox/docs/troubleshooting/synchronization","a0b"),exact:!0,sidebar:"tutorialSidebar"}]},{path:"/Detox/",component:f("/Detox/","ea6"),exact:!0},{path:"*",component:f("*")}]},6125:(e,t,n)=>{"use strict";n.d(t,{o:()=>o,x:()=>i});var r=n(96540);const o=r.createContext(!1);function i(e){let{children:t}=e;const[n,i]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{i(!0)}),[]),r.createElement(o.Provider,{value:n},t)}},38536:(e,t,n)=>{"use strict";var r=n(96540),o=n(40961),i=n(54625),a=n(80545),c=n(38193);const s=[n(10119),n(26134),n(76294),n(50895)];var l=n(35947),u=n(56347),d=n(22831);function f(e){let{children:t}=e;return r.createElement(r.Fragment,null,t)}var p=n(58168),h=n(5260),m=n(44586),g=n(86025),b=n(6342),v=n(69024),y=n(32131),x=n(14090),w=n(2967),S=n(70440),_=n(41463);function E(){const{i18n:{defaultLocale:e,localeConfigs:t}}=(0,m.A)(),n=(0,y.o)();return r.createElement(h.A,null,Object.entries(t).map((e=>{let[t,{htmlLang:o}]=e;return r.createElement("link",{key:t,rel:"alternate",href:n.createUrl({locale:t,fullyQualified:!0}),hrefLang:o})})),r.createElement("link",{rel:"alternate",href:n.createUrl({locale:e,fullyQualified:!0}),hrefLang:"x-default"}))}function k(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,m.A)(),o=function(){const{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,m.A)(),{pathname:r}=(0,u.zy)();return e+(0,S.applyTrailingSlash)((0,g.A)(r),{trailingSlash:n,baseUrl:t})}(),i=t?`${n}${t}`:o;return r.createElement(h.A,null,r.createElement("meta",{property:"og:url",content:i}),r.createElement("link",{rel:"canonical",href:i}))}function D(){const{i18n:{currentLocale:e}}=(0,m.A)(),{metadata:t,image:n}=(0,b.p)();return r.createElement(r.Fragment,null,r.createElement(h.A,null,r.createElement("meta",{name:"twitter:card",content:"summary_large_image"}),r.createElement("body",{className:x.w})),n&&r.createElement(v.be,{image:n}),r.createElement(k,null),r.createElement(E,null),r.createElement(_.A,{tag:w.Cy,locale:e}),r.createElement(h.A,null,t.map(((e,t)=>r.createElement("meta",(0,p.A)({key:t},e))))))}const A=new Map;function O(e){if(A.has(e.pathname))return{...e,pathname:A.get(e.pathname)};if((0,d.u)(l.A,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return A.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return A.set(e.pathname,t),{...e,pathname:t}}var C=n(6125),T=n(26988);function P(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>o.forEach((e=>e?.()))}const I=function(e){let{children:t,location:n,previousLocation:o}=e;return(0,r.useLayoutEffect)((()=>{o!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,o=t.hash===n.hash,i=t.search===n.search;if(r&&o&&!i)return;const{hash:a}=t;if(a){const e=decodeURIComponent(a.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:o}),P("onRouteDidUpdate",{previousLocation:o,location:n}))}),[o,n]),t};function R(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.u)(l.A,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class N extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=c.A.canUseDOM?P("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=P("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),R(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return r.createElement(I,{previousLocation:this.previousLocation,location:t},r.createElement(u.qh,{location:t,render:()=>e}))}}const j=N,L="__docusaurus-base-url-issue-banner-container",M="__docusaurus-base-url-issue-banner-suggestion-container",B="__DOCUSAURUS_INSERT_BASEURL_BANNER";function F(e){return`\nwindow['${B}'] = true;\n\ndocument.addEventListener('DOMContentLoaded', maybeInsertBanner);\n\nfunction maybeInsertBanner() {\n var shouldInsert = window['${B}'];\n shouldInsert && insertBanner();\n}\n\nfunction insertBanner() {\n var bannerContainer = document.getElementById('${L}');\n if (!bannerContainer) {\n return;\n }\n var bannerHtml = ${JSON.stringify(function(e){return`\n

- - + + \ No newline at end of file diff --git a/docs/19.x/api/detox-object-api/index.html b/docs/19.x/api/detox-object-api/index.html index d67955f879..fdc77cc6bd 100644 --- a/docs/19.x/api/detox-object-api/index.html +++ b/docs/19.x/api/detox-object-api/index.html @@ -11,13 +11,13 @@ - - + +
Version: 19.x

Detox Object API

The detox Object

detox is globally available in every test file, though currently it is only used in the setup/init file.

NOTE: detox is test runner independent, and we encourage you to choose your own test runner, but for the sake of demonstration we will use mocha’s syntax.

Methods

detox.init()

The setup phase happens inside detox.init(). This is the phase where detox reads its configuration, starts a server, loads its expectation library and starts a simulator.

If you’re using mocha, in your init.js add:

const detox = require('detox');

before(async () => {
await detox.init();
});
Explicit imports during initialization

Detox exports device, expect, element, by and waitFor as globals by default, if you want to control their initialization manually, set init detox with initGlobals set to false. This is useful when during E2E tests you also need to run regular expectations in node. jest Expect for instance, will not be overridden by Detox when this option is used.

const detox = require('detox');

before(async () => {
await detox.init(undefined, {initGlobals: false});
});

Then import them manually:

const {device, expect, element, by, waitFor} = require('detox');

Use this example for initial setup

Reusing existing app

By default await detox.init(); will uninstall and install the app. If you wish to reuse the existing app for a faster run, add {reuse: true} param to your init.

before(async () => {
await detox.init(undefined, {reuse: true});
});

detox.beforeEach()

This method should be called at the start of every test to let Detox’s artifacts lifecycle know it is the time to start recording logs and videos, or to take another beforeEach.png screenshot. Although this is one of usage of beforeEach, Detox does not limit itself to this usage and may utilize calls to beforeEach for additional purposes in the future.

declare function beforeEach(testSummary: {
title: string;
fullName: string;
status: 'running';
})

Usually, you are not supposed to write own implementation of this call, instead rely on Detox in-house adapters for mocha and jest as in the examples. It should alleviate transitions to newer Detox versions for you as the chances are that API specification won’t prove itself as sufficient and it may undergo rewrites and extensions.

NOTE: If you are implementing support for a test runner different from Mocha and Jest, please keep in mind that pending (also known as skipped) tests should not trigger detox.beforeEach() at all, neither detox.afterEach(). The rule of thumb is either you guarantee you call them both, or you don’t call anyone.

detox.afterEach()

You are expected to call this method only after the test and all its inner afterEach()-es complete. Besides passing test title and full name, you should pay heed on delivering a valid status field: failed or passed. If the test has another status (e.g. skipped), please comply to the note above in detox.beforeEach() or use one of these two values as a fallback.

declare function afterEach(testSummary: {
title: string;
fullName: string;
status: 'failed' | 'passed';
})

Normally, you are not supposed to write own implementation of this call, as mentioned earlier in the detox.beforeEach() documentation.

detox.cleanup()

The cleanup phase should happen after all the tests have finished. This is the phase where detox server shuts down. The simulator will also shut itself down if --cleanup flag is added to detox test

If you’re using mocha, in your init.js add:

after(async () => {
await detox.cleanup();
});

detox.traceCall()

⚠️ Beta

Trace a subprocess of your test’s runtime such that it would leave traces inside the Timeline artifact, for a later inspection.

Example:

it('Verify sanity things', async () => {
// Instead of this typical direct call:
// await element(by.id('sanityButton')).tap()

// Use traceCall() as a wrapper:
await detox.traceCall('Navigate to sanity', () =>
element(by.id('sanityButton')).tap());
});

This would have the tap action traced to the final artifact, so it would look something like this:

User event

At the bottom right, you can see what portion of the test was spent in handling the whole navigation process: tap + screen push + screen rendering (i.e. action time, alongside Detox' inherent wait for the application to become idle).

detox.trace.startSection(), detox.trace.endSection()

⚠️ Beta

This is similar to the traceCall() API, except that it gives more freedom with respect to when a section’s start and ending times are defined, so as to monitor a nontrivial flow. As a usage example:

it('Verify sanity things', async () => {
try {
detox.trace.startSection('Turn off notifications');
await element(by.id('gotoNotifications')).tap();
await element(by.id('notificationsToggle')).tap();
await device.pressBack();
} finally {
detox.trace.endSection('Turn off notifications');
}
});

Effectively, start and end can even be called in two complete different places - such as a before and an after. But that is discouraged. In fact, usage of detox.traceCall() is the recommended way of tracing things, altogether.

- - + + \ No newline at end of file diff --git a/docs/19.x/api/device-object-api/index.html b/docs/19.x/api/device-object-api/index.html index e8276a4484..71b19e6963 100644 --- a/docs/19.x/api/device-object-api/index.html +++ b/docs/19.x/api/device-object-api/index.html @@ -11,8 +11,8 @@ - - + +
@@ -34,7 +34,7 @@ See Xcode 12 Release notes: #57933113 for more details.

The name parameter is optional — by default, it equals to capture.

test('Capture view hierarchy', async () => {
const temporaryArtifactPath = await device.captureViewHierarchy('myElements');

// The temporary path will remain valid until the test completion.
// Afterwards, the artifact will be moved, e.g.:
// * on success, to: <artifacts-location>/✓ Capture view hierarchy/myElements.viewhierarchy
// * on failure, to: <artifacts-location>/✗ Capture view hierarchy/myElements.viewhierarchy
});

device.shake() iOS Only

Simulate shake

device.setBiometricEnrollment(bool) iOS Only

Toggles device enrollment in biometric authentication (Touch ID or Face ID).

await device.setBiometricEnrollment(true);
// or
await device.setBiometricEnrollment(false);

device.matchFace() iOS Only

Simulates the success of a face match via Face ID

device.unmatchFace() iOS Only

Simulates the failure of face match via Face ID

device.matchFinger() iOS Only

Simulates the success of a finger match via Touch ID

device.unmatchFinger() iOS Only

Simulates the failure of a finger match via Touch ID

device.clearKeychain() iOS Only

Clears the device keychain

device.setStatusBar() iOS Only

Override simulator’s status bar. Available options:

await device.setStatusBar({
time: "12:34",
// Set the date or time to a fixed value.
// If the string is a valid ISO date string it will also set the date on relevant devices.
dataNetwork: "wifi",
// If specified must be one of 'wifi', '3g', '4g', 'lte', 'lte-a', or 'lte+'.
wifiMode: "failed",
// If specified must be one of 'searching', 'failed', or 'active'.
wifiBars: "2",
// If specified must be 0-3.
cellularMode: "searching",
// If specified must be one of 'notSupported', 'searching', 'failed', or 'active'.
cellularBars: "3",
// If specified must be 0-4.
batteryState: "charging",
// If specified must be one of 'charging', 'charged', or 'discharging'.
batteryLevel: "50",
// If specified must be 0-100.
});

device.resetStatusBar() iOS Only

Resets any override in simulator’s status bar.

device.reverseTcpPort() Android Only

Reverse a TCP port from the device (guest) back to the host-computer, as typically done with the adb reverse command. The end result would be that all network requests going from the device to the specified port will be forwarded to the computer.

device.unreverseTcpPort() Android Only

Clear a reversed TCP-port (e.g. previously set using device.reverseTcpPort()).

device.pressBack() Android Only

Simulate press back button.

await device.pressBack();

device.getUiDevice() Android Only

Exposes UiAutomator’s UiDevice API. This is not a part of the official Detox API, it may break and change whenever an update to UiDevice or UiAutomator Gradle dependencies (androidx.test.uiautomator:uiautomator) is introduced.

UiDevice’s autogenerated code

- - + + \ No newline at end of file diff --git a/docs/19.x/api/expect/index.html b/docs/19.x/api/expect/index.html index 4bed53a0c6..c501380a99 100644 --- a/docs/19.x/api/expect/index.html +++ b/docs/19.x/api/expect/index.html @@ -11,14 +11,14 @@ - - + +
Version: 19.x

Expect

Expect

Detox uses matchers to match UI elements in your app and expectations to verify those elements are in the expected state.

Use actions to simulate use interaction with elements.

Methods

toBeVisible()

Expects the view to be at least N% visible on the screen. Accepts an optional parameter of percent threshold of element visibility, integer ranging from 1 to 100, that determines whether the element is visible or not. If no number is provided then defaults to 75%.

Negating this expectation with a not expression expects the view’s visible area to be lower than N%.

On iOS, visibility is defined by having the view, or one of its subviews, be topmost at the view’s activation point on screen.

await expect(element(by.id('UniqueId203'))).toBeVisible();
await expect(element(by.id('UniqueId204'))).toBeVisible(35);

toExist()

Expects the element to exist within the app’s current UI hierarchy.

await expect(element(by.id('UniqueId205'))).toExist();

toBeFocused()

Expects the element to be the focused element.

await expect(element(by.id('textFieldId'))).toBeFocused();

toHaveText(text)

Expects the element to have the specified text.

await expect(element(by.id('UniqueId204'))).toHaveText('I contain some text');

toHaveLabel(label)

Expects the element to have the specified label as its accessibility label (iOS) or content description (Android). In React Native, this corresponds to the value in the accessibilityLabel prop.

note

Note that there is an inconsistency between the implementation for accessibility between Android and iOS. On iOS if a View has no accessibilityLabel explicitly defined, then it defaults to having a concatenation of the accessibilityLabels of the child Views. On Android, the same View would have no accessibilityLabel at all. See this issue for details.

await expect(element(by.id('UniqueId204'))).toHaveLabel('Done');

toHaveId(id)

Expects the element to have the specified accessibility identifier. In React Native, this corresponds to the value in the testID prop.

await expect(element(by.text('I contain some text'))).toHaveId('UniqueId204');

toHaveValue(value)

Expects the element to have the specified accessibility value. In React Native, this corresponds to the value in the accessibilityValue prop.

await expect(element(by.id('UniqueId533'))).toHaveValue('0');

toHaveSliderPosition(normalizedPosition, tolerance)

Expects the slider element to have the specified normalized position ([0, 1]), within the provided tolerance (optional).

await expect(element(by.id('slider'))).toHaveSliderPosition(0.75);
await expect(element(by.id('slider'))).toHaveSliderPosition(0.3113, 0.00001);

toHaveToggleValue(value)

Expects a toggle-able element (e.g. a Switch or a Check-Box) to be on/checked or off/unchecked. As a reference, in react-native, this is the equivalent switch component.

await expect(element(by.id('switch'))).toHaveToggleValue(true);
await expect(element(by.id('checkbox'))).toHaveToggleValue(false);

not

Negates the expectation.

await expect(element(by.id('UniqueId533'))).not.toBeVisible();

withTimeout(timeout)

Waits until the expectation is resolved for the specified amount of time. If timeout is reached before resolution, the expectation is failed.

timeout—the timeout to wait, in ms

await waitFor(element(by.id('UniqueId204'))).toBeVisible().withTimeout(2000);

Deprecated Methods

toBeNotVisible()

Deprecated: Use .not.toBeVisible() instead.

Expects the element to not be visible on screen.

await expect(element(by.id('UniqueId205'))).toBeNotVisible();

toNotExist()

Deprecated: Use .not.toExist() instead.

Expects the element to not exist within the app’s current UI hierarchy.

await expect(element(by.id('RandomJunk959'))).toNotExist();

toBeNotFocused()

Deprecated: Use .not.toBeFocused() instead.

Expects the element not to be the focused element.

await expect(element(by.id('textFieldId'))).toBeFocused();
- - + + \ No newline at end of file diff --git a/docs/19.x/api/launch-args/index.html b/docs/19.x/api/launch-args/index.html index 78044a8557..9cf45820e0 100644 --- a/docs/19.x/api/launch-args/index.html +++ b/docs/19.x/api/launch-args/index.html @@ -11,14 +11,14 @@ - - + +
Version: 19.x

Launch Arguments

Launch Arguments

In Detox, the app under test is launched via an explicit call to device.launchApp(). Through various means, Detox enables specifying a set of user-defined arguments (key-value pairs) to be passed on to the app when launched, so as to make them available inside the launched app itself at runtime (both on the native side, and - if applicable, on the JavaScript side).

Motivation

If this is clear to you first hand, you can skip right to the section about arguments setup.

In particular, the common use case of using launch argument (although not distinctly), is for mocking external entities such as servers - replacing them with equivalent mock servers, sporting equivalent (yet fake) API-endpoints that run alongside the testing host (i.e. the one running Detox). These mock servers can typically be configured during the test, to return deterministic responses to network requests coming from the app.

Typically, the process of setting up such servers - especially in a parallel test-execution environment, involves three major steps (within the context of a test set-up):

  1. Allocating a port for a mock server, dynamically.
  2. Bringing up a mock server instance bound to that port (e.g. at localhost:1234).
  3. Launching the app with a predefined argument that holds the port, for example mockServerPort=1234. (It is assumed here that there’s designated mocked code inside the app that can read mockServerPort and rewire all connections to localhost:1234 instead of to the real production server).

In this context, launch argument are useful for implementing step #3.

Arguments Setup

User-defined launch arguments specification is very flexible, and can be defined on 4 levels:

LevelDescription
1. Static ConfigurationAs a part of a static Detox configuration, using the launchArgs property.
This is can sufficient, for example, if you only require one mock server instance, and can use the same static port throughout the entire testing execution session.
2. Static via CLIAs arguments specified explicitly in the command-line execution of detox test, using --app-launch-args.
3.device.appLaunchArgsDynamically, using the device.appLaunchArgs API, which initially holds the static configuration, and then allows for the modification of it before applied through device.launchApp().
Mostly required in complex test environments, where the servers and ports are dynamic, and are determined via distinct software components (e.g. separate test kits).
4. device.launchApp() with launchArgsDynamically and explicitly, using on-site arguments specified in calls to device.launchApp() through the launchArgs parameter.
Ideal for fairly simple test environments, where the ports are dynamic but are in complete control of the user.

Important: Arguments specified in each level take precedence over equivalent underlying levels.

Examples:

  1. In an environment where mockServerPort is statically pre-set to 1001 in Detox configuration, and then set to 1003 using device.appLaunchArgs inside a test, the app would eventually be launched with 1003 as its value, in calls to device.launchApp() in that test.
  2. (Scenario continues) In subsequent calls to device.launchApp() with this parameter: device.launchApp({ launchArgs: {mockServerPort: 1004} }), the app will be (re-)launched with 1004 as the value for mockServerPort.

In-App Arguments Access

On iOS, the specified launch arguments are passed as the process launch arguments and available through normal means.

On Android, the launch arguments are set as bundle-extra’s into the activity’s intent. It will therefore be accessible on the native side via the current activity as: currentActivity.getIntent().getBundleExtra("launchArgs").

Further, handling of these launch arguments is up to the user’s responsibility and is out of scope for Detox.

- - + + \ No newline at end of file diff --git a/docs/19.x/api/matchers/index.html b/docs/19.x/api/matchers/index.html index 935cc213af..3b4cedca48 100644 --- a/docs/19.x/api/matchers/index.html +++ b/docs/19.x/api/matchers/index.html @@ -11,8 +11,8 @@ - - + +
@@ -34,7 +34,7 @@ "allowsDirectInteraction" "causesPageTurn" "tabBar"

element(by.traits(['button']));

withAncestor(matcher)

Matches elements with an ancestor that matches the specified matcher.

element(by.id('child').withAncestor(by.id('parent')));

withDescendant(matcher)

Matches elements with at least one descendant that matches the specified matcher.

element(by.id('parent').withDescendant(by.id('child')));

and(matcher)

Matches elements by combining several matchers together.

element(by.id('uniqueId').and(by.text('some text')));

atIndex(index)

If a matcher resolves into multiple matched UI elements, you may specify which element to use by its index.

On iOS, matched elements are sorted by their x and y axes.

Note: Due to different underlying implementations of Detox on iOS and Android, as well as other differences in the OS implementations, as well as RN implementation differences on each OS, indices may not match between iOS and Android. Relying on indices may also introduce flakiness in your tests as your app’s user interface is updated. It is recommended to use unique identifier matchers for your elements.

element(by.text('Product')).atIndex(2);
- - + + \ No newline at end of file diff --git a/docs/19.x/api/mocking-open-with-url/index.html b/docs/19.x/api/mocking-open-with-url/index.html index afaf02f22d..9f46a206ac 100644 --- a/docs/19.x/api/mocking-open-with-url/index.html +++ b/docs/19.x/api/mocking-open-with-url/index.html @@ -11,13 +11,13 @@ - - + +
Version: 19.x

Mocking Open With URL (Deep Links)

You can mock opening the app from URL to test your app’s deep link handling mechanism.

Mocking App Launch With a URL

await device.launchApp({newInstance: true, url, sourceApp: bundleId}); // sourceApp is an optional iOS-only argument

Example

describe('launch app from URL', () => {
it('should handle URL successfully', async () => {
await device.launchApp({
newInstance: true,
url: 'scheme://some.url',
sourceApp: 'com.apple.mobilesafari'
});
await expect(element(by.text('a label'))).toBeVisible();
});
});

Mocking Opening With a URL On a Launched App

iOS-only

await device.openURL({url: 'scheme://some.url', sourceApp: 'com.apple.mobilesafari'});
- - + + \ No newline at end of file diff --git a/docs/19.x/api/mocking-user-activity/index.html b/docs/19.x/api/mocking-user-activity/index.html index 65ed06c3ee..4538afa43b 100644 --- a/docs/19.x/api/mocking-user-activity/index.html +++ b/docs/19.x/api/mocking-user-activity/index.html @@ -11,13 +11,13 @@ - - + +
Version: 19.x

Mocking User Activity

Mocking User Activity

Detox supports mocking user activity for iOS apps.

The user activity API is used to mock an external user activity state. The app normally uses this state to continue the activity inside the app. This API is also used for associated domains, Spotlight search handling and Siri intents.

Mocking App Launch with a User Activity

Using launchApp() with custom params will trigger the mocking mechanism.

await device.launchApp({userActivity: activity});

Example:

describe('Background user activity', () => {
it('Launch with user activity', async () => {
await device.launchApp({userActivity: activity})
await expect(element(by.text('From user activity'))).toBeVisible();
});
});

Sending User Activity to a Running App

Use the sendUserActivity() method.

await device.sendUserActivity(activity)

Example:

 
describe('Foreground user activity', () => {

beforeEach(async () => {
await device.launchApp({newInstance: true});
});

it('User activity from inside the app', async () => {
await device.sendUserActivity(activity);
await expect(element(by.text('From user activity'))).toBeVisible();
});
});

User Activity JSON Format

User activities are passed as JSON objects to Detox, which then parses them and creates native objects representing the passed information.

The JSON object passed to Detox needs to provide some required data, but can also provide additional, optional data.

KeyRequiredValue TypeDescription
activityTypeYesStringThe activity type. Either a custom user string or a predefined constant as provided by Detox. See the Activity Types section below.
webpageURLNoStringUsed when simulating an associated domain link opening. This is the URL that the user browsed to.
referrerURLNoStringUsed when simulating an associated domain link opening. This is the URL that the user browsed from.
userInfoNoObjectAn additional key-value pair storage, used for general purpose data passing to the app.

Activity Types

Activities can be both developer-generated user activity state, such as actions from another system—another iOS device, macOS, Safari, etc., and system-generated user activities, such as user browsed an associated domain, Spotlight search tapped, Siri intent activity, etc., where the app should handle such an activity.

Detox supports mocking both types.

For developer-generated user activities, use a custom activityType that is expected by the application.

For system-generated user activities, use set the activityType to a predefined constant in Detox, like so:

const DetoxConstants = require('detox').DetoxConstants;

const userActivityBrowsingWeb = {
"activityType": DetoxConstants.userActivityTypes.browsingWeb,
"webpageURL": "https://my.deeplink.dtx",
"referrerURL": "https://google.com/"
};

Currently supported system-generated activity types:

  • DetoxConstants.userActivityTypes.browsingWeb - Used for associated domains (deep links)
  • DetoxConstants.userActivityTypes.searchableItem - Used for Spotlight search results

Spotlight Search Results

In addition to DetoxConstants.userActivityTypes.searchableItem, Detox also provides an additional constant, used to provide the item identifier, which was selected in Spotlight. The app uses this identifier to display the item on screen.

An example on a Spotlight search user activity:

const DetoxConstants = require('detox').DetoxConstants;

let userActivitySearchableItem = {
"activityType": DetoxConstants.userActivityTypes.searchableItem,
"userInfo": {"customKey": "value"}
};
userActivitySearchableItem.userInfo[DetoxConstants.searchableItemActivityIdentifier] = "com.test.itemId"
- - + + \ No newline at end of file diff --git a/docs/19.x/api/mocking-user-notifications/index.html b/docs/19.x/api/mocking-user-notifications/index.html index d8eacddf9e..39f83cb782 100644 --- a/docs/19.x/api/mocking-user-notifications/index.html +++ b/docs/19.x/api/mocking-user-notifications/index.html @@ -11,13 +11,13 @@ - - + +
Version: 19.x

Mocking User Notifications

Mocking User Notifications

Detox supports mocking user notifications.

Note: The mocking mechanism will not mimic the UI of a user notification. Instead, it will only simulate a user interaction with the notification - namely, the "opening" of it (equivalent to a user’s tap/swipe on it in the notification center).

Mocking App Launch With a Notification

launchApp() with custom parameters (i.e. userNotification) will trigger the mocking mechanism.

await device.launchApp({newInstance: true, userNotification: notification});

Example

describe('Launch with push notification', () => {
it('should handle the notification', async () => {
await device.launchApp({
newInstance: true,
userNotification: userNotificationPushTrigger,
});
await expect(element(by.text('From push'))).toBeVisible();
});
});

Mocking Notification Reception on a Running App

Use the sendUserNotification() method to send notification to running app. Notifications can be sent to an active or a background app.

Note: while the name sendUserNotification() is not very idiomatic on Android, as notification data is not "sent" to apps (rather, it is bundled into an Activity/Service launch Intent as Intent-extras), this unified API is used, for the time being, for both platforms equivalently. With plans of a more extensive support for Android, we estimate it would be deprecated when the time comes.

await device.sendUserNotification(notification);

Example:

describe('Foreground user notifications', () => {
it('should handle the local notification from inside the app', async () => {
await device.launchApp();
await device.sendUserNotification(localNotification);
await expect(element(by.text('from local notification'))).toBeVisible();
});
});

Notification JSON Format

User notifications are passed as JSON objects to Detox. The JSON object needs to provide some required data, but can also provide an additional, optional payload.

Mind the major difference here between the two platforms. While on iOS many types of data fields are applicable, Android is very loosely defined - with support for just free-form user data in the payload field.

KeyRequiredValue TypePlatformDescription
triggerYesObjectiOSThe conditions that trigger the delivery of the notification. See the Triggers section below.
titleNoStringiOSA short description of the reason for the alert.
subtitleNoStringiOSA secondary description of the reason for the alert.
bodyNoStringiOSThe body of the notification.
badgeNoIntegeriOSThe number to display as the app’s icon badge.
payloadiOS: No
Android: Yes
ObjectiOS & AndroidAn object of custom information associated with the notification.
Android: see full description below
categoryNoStringiOSThe identifier of the app-defined category object.
content-availableNoIntegeriOSInclude this key with a value of 1 to configure a silent notification.
user-textNoStringiOSThe text response provided by the user.
action-identifierNoStringiOSThe identifier for the action that the user selected.

Triggers (iOS-only)

Triggers are objects representing the trigger.

KeyRequiredValue TypeDescription
typeYesStringThe conditions that trigger the delivery of the notification. See the Trigger Types section below.
repeatsNoBooleanIndicates whether the event repeats. Only used for calendar, timeInterval and location trigger types.
timeIntervalYes for timeInterval trigger typeNumberThe time interval used to create the trigger.
date-componentsYes for calendar trigger typeObjectThe date components used to construct this object. See the Date Components section below.
regionYes for location trigger typeObjectThe region used to determine when the notification is sent. See the Region section below.
Trigger Types

There are four types of triggers supported by Detox at this time:

  • push
  • calendar
  • timeInterval
  • location

For convenience, these trigger types are provided as constants in DetoxConstants:

const DetoxConstants = require('detox').DetoxConstants;

const userNotification = {
"trigger": {
"type": DetoxConstants.userNotificationTriggers.push
},
// ...
}

Date Components (iOS-only)

KeyRequiredValue TypeDescription
eraNoIntegerThe number of era units for the receiver.
yearNoIntegerThe number of year units for the receiver.
monthNoIntegerThe number of month units for the receiver.
dayNoIntegerThe number of day units for the receiver.
hourNoIntegerThe number of hour units for the receiver.
minuteNoIntegerThe number of minute units for the receiver.
secondNoIntegerThe number of second units for the receiver.
weekdayNoIntegerThe number of the weekday unit for the receiver.
weekdayOrdinalNoIntegerThe ordinal number of weekday units for the receiver.
quarterNoIntegerThe number of quarters for the receiver.
weekOfMonthNoIntegerThe week number of the month for the receiver.
leapMonthNoBooleanIndicates whether the month is a leap month.

Region (iOS-only)

KeyRequiredValue TypeDescription
centerYesObjectThe center point of the geographic area. See the Coordinate section below.
radiusYesNumberThe radius (measured in meters) that defines the geographic area’s outer boundary.
notifyOnEntryNoBooleanIndicates that notifications are generated upon entry into the region.
notifyOnExitNoBooleanIndicates that notifications are generated upon exit from the region.

Coordinate (iOS-only)

KeyRequiredValue TypeDescription
latitudeYesNumberThe latitude in degrees. Positive values indicate latitudes north of the equator. Negative values indicate latitudes south of the equator.
longitudeYesNumberThe longitude in degrees. Measurements are relative to the zero meridian, with positive values extending east of the meridian and negative values extending west of the meridian.

Payload

On Android, the content will be available via the activity’s getIntent() API, inside the intent’s extra bundle. Under some limitations, that includes data-cascading so as to provide comprehensive support for JavaScript’s advanced object-hierarchy capabilities as much as possible. As an example, consider this payload:

const userNotification = {
payload: {
userData: 'userDataValue',
userDataNum: 111.2,
userDataFlag: true,
userDataArray: ['rock', 'paper', 'scissors'],
userDataObj: {
cascadedKey: 'cascadedValue'
},
},
};

The outcome on the native side will be such that all of these conditions evaluate to true:

activity.getIntent().getStringExtra("userData") == "userDataValue";
activity.getIntent().getDoubleExtra("userDataNum") == 111.2;
activity.getIntent().getBooleanExtra("userDataFlag") == true;
activity.getIntent().getStringArrayExtra("userDataArray")[0] == "rock";
activity.getIntent().getBundleExtra("userDataObj").getString("cascadedKey") == "cascadedValue";
Handling at Runtime

Note that on Android, data delivered through an intent at runtime, is typically received in your activity’s onNewIntent callback. Be sure to consider what should be done in order to handle this type of a use case in your app: Namely, that setIntent() should be called in order for the data to be later available in your app through getIntent(), as explained earlier.

This isn’t related to Detox in particular, and is set here simply to help you consider all the use cases in your app so that tests coverage would be optimal.

Examples

  1. Calendar Trigger
  2. Location Trigger
  3. Time Interval Trigger
  4. Push Trigger
- - + + \ No newline at end of file diff --git a/docs/19.x/api/screenshots/index.html b/docs/19.x/api/screenshots/index.html index b31e1358c7..3e19f750b5 100644 --- a/docs/19.x/api/screenshots/index.html +++ b/docs/19.x/api/screenshots/index.html @@ -11,13 +11,13 @@ - - + +
Version: 19.x

Taking Screenshots

Taking Screenshots

Detox supports taking in-test screenshots of the device, making the result immediately available in the form of an image file.

Screenshots can be taken in two levels:

  • Device-level: taking a screenshot of the entire screen.
  • Element-level: taking a screenshot of a specific element (and the view-hierarchy associated with it), currently appearing on the screen.

In both cases, the concept is mainly useful for verifying the proper visual structure and layout of elements appearing on the device’s screen, in the form of a snapshot-test. Namely, by following these conceptual steps:

  1. Taking a screenshot, once, and manually verifying it, visually.
  2. Storing it as an E2E test asset (i.e. the snapshot).
  3. Using it as the point-of-reference for comparison against screenshots taken in consequent tests, from that point on.
const fs = require('fs');

describe('Members area', () => {
const snapshottedImagePath = './e2e/assets/snapshotted-image.png';

it('should greet the member with an announcement', async () => {
const imagePath = (take screenshot from the device); // Discussed below
expectBitmapsToBeEqual(imagePath, snapshottedImagePath);
});
});

function expectBitmapsToBeEqual(imagePath, expectedImagePath) {
const bitmapBuffer = fs.readFileSync(imagePath);
const expectedBitmapBuffer = fs.readFileSync(expectedImagePath);
if (!bitmapBuffer.equals(expectedBitmapBuffer)) {
throw new Error(`Expected image at ${imagePath} to be equal to image at ${expectedImagePath}, but it was different!`);
}
}

Important: The recommended, more practical way of doing this, is by utilizing more advanced 3rd-party image snapshotting & comparison tools such as Applitools.

Device-level Screenshots

Taking a screenshot of the entire screen can be done using a device-level API:

const imagePath = await device.takeScreenshot('opened general section');

The API immediately returns the path of a temporary, readable image file where the screenshot is stored, all-the-while scheduling the transferring of it to the artifacts folder upon completion of the currently running test.

Returns:

The path of a temporary file containing the resulted .png image.

Important: The returned path is guaranteed to be valid only during the test execution. Later on, the screenshot will be moved to the artifacts' folder, and will not be available.

Parameters:

name (optional) - Name of the final image-file to store as the artifact. For example, setting name to opened general section would result in an artifact file named opened general section.png. In case the name isn’t provided, Detox would self-generate a random, distinct name, instead (though not a very descriptive one).

Artifacts Management

Means of creation of the final image as an artifact is tightly connected to the --take-screenshots argument to Detox CLI:

  • If --take-screenshots none is set, the screenshot will be taken, but it won’t be saved to <artifacts-location> after the test ends.
  • If --take-screenshots failing is set, and the test passes, the screenshot won’t be saved to <artifacts-location> after the test ends.
  • In the other modes (manual and all), if the test passes, the screenshot will be put to <artifacts-location>/✓ Members area should greet the member with an announcement/opened general section.png.
  • In the other modes (manual and all), if the test fails, the screenshot will be put to <artifacts-location>/✗ Members area should greet the member with an announcement/opened general section.png.

Caveats

This API well-captures all elements, although alongside surrounding "visual noise" such as the navigation bar, as can be seen in the image below:

device-screenshot

As the image includes, for example, the current time (in the top-left corner), running the test in any different time would unnecessarily result in an utter comparison failure, making the test downright useless. Fortunately, this can be resolved, by putting the device into "demo mode" (i.e. freezing the irrelevant, volatile elements) . For example (credits - Miki):

async function setDemoMode() {
if (device.getPlatform() === 'ios') {
execSync(
'xcrun simctl status_bar "iPhone 11" override --time "12:00" --batteryState charged --batteryLevel 100 --wifiBars 3 --cellularMode active --cellularBars 4'
);
} else {
// enter demo mode
execSync('adb shell settings put global sysui_demo_allowed 1');
// display time 12:00
execSync('adb shell am broadcast -a com.android.systemui.demo -e command clock -e hhmm 1200');
// Display full mobile data with 4g type and no wifi
execSync(
'adb shell am broadcast -a com.android.systemui.demo -e command network -e mobile show -e level 4 -e datatype 4g -e wifi false'
);
// Hide notifications
execSync('adb shell am broadcast -a com.android.systemui.demo -e command notifications -e visible false');
// Show full battery but not in charging state
execSync('adb shell am broadcast -a com.android.systemui.demo -e command battery -e plugged false -e level 100');
}
}

Note: This script implicitly assumes only one device is used, as device ID isn’t specified anywhere (e.g. with adb -s <id>).

Element-level Screenshots

Taking a screenshot of a specific element can be simply done using an API similar to other element-interaction Detox APIs:

const imagePath = await element(by.id('announcementsRoot')).takeScreenshot('welcome announcement');

The API works in the exact same way as device.takeScreenshot() does in terms of return value, arguments, and artifacts management.

In this example, the image-file specified by imagePath will hold the visual content of a native view whose test ID is announcementsRoot, alongside all of the views in the view-hierarchy formed by it as the root-view. Visually, this can be, for example:

Announcements view

Meaning, assuming announcementsRoot has been specified over some ancestor view which has both the Announcement title and the card as its direct or indirect children, the result would include both. That, in turns, also includes the card’s children, such as the avatar, welcome text, etc.

Caveats of this approach

Focusing on specific elements, this approach is key to more stable comparisons, and hence more stable tests, over time. However, inspecting less content evidently means protecting against less bugs. For example, In a screen where the element in question is partly obstructed by other elements drawn on the screen, the image created by takeScreenshot() will successfully hold all of it’s content, nonetheless.

Consider this situation in one of the app’s screens, where the upcoming schedule overlaps the top-hand announcement card:

overlap

Taking an element-screenshot of the announcement part alone, would yield a proper result, leaving this bug overlooked:

announcement element

Only by taking the element-screenshot of a common ancestor, will this bug be surfaced. However, in turn, that can affect stability, as the result is now sensitive to more details such as padding and background color.

As a bottom line, this API is mostly suited for testing UI components rather than complete screens.

- - + + \ No newline at end of file diff --git a/docs/19.x/api/test-lifecycle/index.html b/docs/19.x/api/test-lifecycle/index.html index abe1aaf294..45951d75bd 100644 --- a/docs/19.x/api/test-lifecycle/index.html +++ b/docs/19.x/api/test-lifecycle/index.html @@ -11,14 +11,14 @@ - - + +
Version: 19.x

Test Lifecycle

Test Lifecycle

Detox is test runner independent, and we encourage you to choose your own test runner, but for the sake of demonstration we will use mocha’s syntax.

Initial Setup

The setup phase happens inside detox.init(). This is the phase where detox reads its configuration, starts a server, loads its expectation library and starts a simulator.

before(async () => {
await detox.init();
});

Of course, you can add any of your initializations in this phase.

Before and After Each Test

Despite being a recent and still an optional formation, detox.beforeEach and detox.afterEach lifecycle functions are highly recommended to be called in your test setups. The newer features (including test artifacts: video recordings, screenshots, logs) are not expected to work without these calls.

TIP: This API is still apt to change in the future, thus to minimize the risks, you are encouraged to switch to the built-in adapters for mocha and jest like in examples here: mocha adapter example, jest adapter example.

If nevertheless you use another test runner with Detox (not mocha and not jest), then you have to implement a logic similar to the one below. Futurewise, consider refactoring it to an adapter and sharing with Detox project (e.g. adapter for ava.js or tape):

let testSummary;

beforeEach(async function () {
testSummary = {
title: this.currentTest.title,
fullName: this.currentTest.fullTitle(),
status: 'running',
};

await detox.beforeEach(testSummary);
});

afterEach(async function () {
testSummary.status = this.currentTest.state || 'failed';
await detox.afterEach(testSummary);
});

Teardown

The cleanup phase should happen after all the tests have finished, can be initiated using detox.cleanup(). This is the phase where detox server shuts down. The simulator will also shut itself down if --cleanup flag is added to detox test

after(async () => {
await detox.cleanup();
});

Repeating Setup for All Tests

A good practice for testing in general is to have decoupled tests, meaning that each test has the same starting point, and the tests can run in any order and still produce the same results. We strongly encourage either restarting your application or restart react-native (if your application is built with it).

Reloading React Native

  beforeEach(async () => {
await device.reloadReactNative();
});

Relaunching the Entire App

  beforeEach(async () => {
await device.launchApp({newInstance: true});
});
- - + + \ No newline at end of file diff --git a/docs/19.x/config/overview/index.html b/docs/19.x/config/overview/index.html index 802c8f1e0b..d452950584 100644 --- a/docs/19.x/config/overview/index.html +++ b/docs/19.x/config/overview/index.html @@ -11,8 +11,8 @@ - - + +
@@ -44,7 +44,7 @@ This is only a convenience method, to help you manage building multiple configurations of your app and couple them to your tests. You can also choose not to use it and provide a compiled app by yourself.

You can choose to build your project in any of these ways...

  • If there’s only one configuration, you can simply use:

    detox build
  • To choose a specific configuration:

    detox build --configuration yourConfiguration
  • Building with xcodebuild:

    xcodebuild -project ios/YourProject.xcodeproj -scheme YourProject -sdk iphonesimulator -derivedDataPath ios/build
  • Building using React Native, this is the least suggested way of running your build, since it also starts a random simulator and installs the app on it.

    react-native run-ios

Note: remember to update the app path in your package.json.

Test Configuration

  • If there’s only one configuration, you can simply use:

    detox test ./e2e

where ./e2e is the path to your Detox tests folder.

  • For multiple configurations, choose your configuration by passing --configuration param:

    detox test ./e2e --configuration yourConfiguration

Faster Test Runs with App Reuse

By default, the app is removed, reinstalled and launched before each run. Starting fresh is critical in CI but during the development you might be able to save time between test runs and reuse the app that was previously installed in the simulator. To do so use the reuse flag and run your tests like this:

detox test ./e2e --reuse

This is especially useful with React Native development mode when making JavaScript code changes that are getting picked up by the packager (and thus no reinstall is needed). This can save up to 7 seconds per run! You should not use this option if you made native code changes or if your app relies on local ("disk") storage.

- - + + \ No newline at end of file diff --git a/docs/19.x/contributing/index.html b/docs/19.x/contributing/index.html index a197a5fddd..15e36c77ef 100644 --- a/docs/19.x/contributing/index.html +++ b/docs/19.x/contributing/index.html @@ -11,15 +11,15 @@ - - + +
Version: 19.x

Contributing

Contributing

This guide is about contributing to our codebase.

We don’t have any special guidelines - just some setup walk-through!

Environment

Install Homebrew

If you haven’t yet - install brew.

Install Node.js v12.x or newer

There’s more than one way to install Node.js:

The best way is to use nvm, but the simplest way is to use Homebrew:

brew install node

Install npm

Either install npm or check that you have it installed, using their official guide.

NOTE: For Detox, please use the latest npm version 6.x.x (i.e not version 7.0.0 or newer).

Install the monorepo management tool, lerna

npm install lerna@3.x.x --global

For all the internal projects (detox, detox-cli, demos, test) lerna will create symbolic links in node_modules instead of npm copying the content of the projects. This way, any change you do on any code is there immediately. There is no need to update node modules or copy files between projects.

Install common React Native dependencies

React-Native CLI:

npm install react-native-cli --global

Watchman:

brew install watchman

iOS

For iOS, you must install Xcode and related tools. Refer to our Setting Up an iOS Environment guide.

You must also have xcpretty installed:

gem install xcpretty

Android

For Android, you need to have Java and the Android SDK properly set up. Refer to our Setting Up an Android Development & Testing Environment guide.

Detox

Clone Detox and Submodules

git clone git@github.com:wix/detox.git
cd detox
git submodule update --init --recursive

(this makes sure all git submodule dependencies have been properly checked out)

Installing and Linking Internal Projects

lerna bootstrap

Building and Testing

Automatically

scripts/ci.ios.sh and scripts/ci.android.sh are the scripts Detox runs in CI, they will run lerna bootstrap, unit tests, and E2E tests. Make sure these scripts pass before submitting a PR, this is exactly what Detox is going to run in CI.

Manually

The following steps can be run manually in order to build / test the various components of Detox.

0. (React Native ≤ 0.55.x) Fixing Compilation Issues in RN Sources

Detox Android test project uses React Native sources instead of the precompiled AAR. The test project uses React Native 0.51 and 0.53, both have issues with compilation (fixed in 0.55). In order to fix this issue, from inside detox/test run:

mv node_modules/react-native/ReactAndroid/release.gradle node_modules/react-native/ReactAndroid/release.gradle.bak
1. Unit Tests and Lint
lerna run test

Detox JS code is 100% test covered and is set to break the build if coverage gets below, so make sure you run unit tests (lerna run test) locally before pushing.

Alternatively, to run only the JS tests, run the following from the detox/detox directory:

npm run unit

or

npm run unit:watch

After running the tests, Jest will create a coverage report you can examine:

cd detox
open coverage/lcov-report/index.html
2. Running Detox E2E Coverage Tests

Detox has a suite of end-to-end tests to test its own API while developing (and for regression); We maintain a special application that is "tested" against Detox’s API, but essentially, it’s the API that is tested, not the app.

To run the tests, you must first build the native code and then run based on your target of choice (Android / iOS):

  • iOS:

    cd detox/test
    npm run build:ios
    npm run e2e:ios
  • Android:

    cd detox/test
    npm run build:android
    npm run e2e:android

FYI Android test project includes two flavors:

  • fromBin - (standard use case) utilizes the precompiled .aar from node_modules just like a standard RN project.
  • fromSource - compiles the project with RN sources from node_modules, this is useful when developing and debugging Espresso idle resource. Here are the prerequisites to compiling React Native from source.

Each build can be triggered separately by running its Gradle assembling task (under detox/test/android/):

./gradlew assembleFromSourceDebug
-or-
./gradlew assembleFromBinDebug

To run from Android Studio, React Native’s react.gradle script may require node to be in path. On MacOS, environment variables can be exported to desktop applications by adding the following to your .bashrc/.zshrc:

launchctl setenv PATH $PATH
3. Android Native Unit-Tests

Under detox/android:

./gradlew testFullRelease

Detox - Example Projects

This is in fact a monorepo that also sports some example projects (for usage reference), alongside the main test project:

  • examples/demo-react-native and examples/demo-react-native-jest: Demonstrate usage of Detox in React-Native app projects, with mocha.js and Jest as the hosting test-runner frameworks, respectively.
  • examples/demo-native-ios: Demonstrates usage of Detox in a pure-native iOS app.
  • examples/demo-native-android (broken): Demonstrates usage of Detox in a pure-native Android app.
  • examples/demo-pure-native-android: Demonstrates usage of the pure Detox-Native project
  • more...

In order to run E2E tests associated with any of these projects, refer to the project-specific READMEs.

Detox Documentation Website

The documentation website is built using Docusaurus.

To run the website locally, run the following commands:

cd website
npm install
npm start

Updating the Website

To update a specific page, edit the corresponding markdown file in docs/. To add a new page, create a new markdown file in docs/ and add a link to it in website/sidebars.json.

Website Deployment

While changes to the website are published automatically on every commit to master under the Next version, tagging and locking docs to a specific version is done automatically on every Detox release.

In case you want to update the docs for a specific version, you can change the related files and code under website/versioned_docs/version-<version>/ and website/versioned_sidebars/version-<version>-sidebars.json.

Update Old Versions

To update a specific version with the latest changes:

  1. Remove the version from versions.json.
  2. Run npm run docusaurus docs:version <version>.
- - + + \ No newline at end of file diff --git a/docs/19.x/guide/debugging-in-android-studio/index.html b/docs/19.x/guide/debugging-in-android-studio/index.html index 351f0e0f65..3c9ca37130 100644 --- a/docs/19.x/guide/debugging-in-android-studio/index.html +++ b/docs/19.x/guide/debugging-in-android-studio/index.html @@ -11,8 +11,8 @@ - - + +
@@ -40,7 +40,7 @@ one below:

Android Debug Configuration - Android Instrumented Tests

The moment you see the app has started on the device, go back to the Terminal where Detox is running and press any key.

As a result, you are expected to see a confirmation from Detox, e.g.:

Found the app (com.wix.detox-example) with process ID = 16854. Proceeding...

Now the entire test will run as usual until it sends an action to the app, which gets trapped in your breakpoint.

Breakpoint is active

Happy debugging!

Extra tweaks

If you feel like you see too often this timeout error while debugging:

Waited for the new RN-context for too long! (60 seconds)
If you think that’s not long enough, consider applying a custom Detox runtime-config in DetoxTest.runTests().

you can temporarily hack the timeout here:

diff --git a/detox/android/detox/src/main/java/com/wix/detox/config/DetoxConfig.kt b/detox/android/detox/src/main/java/com/wix/detox/config/DetoxConfig.kt
index b33b2086..aaf8e9e2 100644
--- a/detox/android/detox/src/main/java/com/wix/detox/config/DetoxConfig.kt
+++ b/detox/android/detox/src/main/java/com/wix/detox/config/DetoxConfig.kt
@@ -1,8 +1,10 @@
package com.wix.detox.config

class DetoxConfig {
@JvmField var idlePolicyConfig: DetoxIdlePolicyConfig = DetoxIdlePolicyConfig()
- @JvmField var rnContextLoadTimeoutSec = 60
+ @JvmField var rnContextLoadTimeoutSec = Int.MAX_VALUE

fun apply() {
idlePolicyConfig.apply()
- - + + \ No newline at end of file diff --git a/docs/19.x/guide/debugging-in-xcode/index.html b/docs/19.x/guide/debugging-in-xcode/index.html index 7fc06d74af..d8430d6b48 100644 --- a/docs/19.x/guide/debugging-in-xcode/index.html +++ b/docs/19.x/guide/debugging-in-xcode/index.html @@ -11,13 +11,13 @@ - - + +
Version: 19.x

Debugging in Xcode During Detox Tests

Debugging in Xcode During Detox Tests

This is mostly useful for investigating weird crashes or when contributing to Detox itself. This workflow isn’t standard. Don’t use it unless you have a good reason.

Add Detox Framework to Your Project

  • Go to node_modules/detox and extract Detox-ios-src.tbz
  • Drag Detox-ios-src/Detox.xcodeproj into your Xcode project
  • Go to your project settings -> General and add Detox.framework to Frameworks, Libraries, and Embedded Content (make sure Embed & Sign is selected under Embed)

NOTE: Apps should not be submitted to the App Store with the Detox framework linked. Follow this guide only to debug Detox issues in your project. Once finished, make sure to remove Detox.framework from your project.

Add an ios.none Configuration to Detox Section

Edit your Detox configuration to add the following configuration:

"ios.none": {
"binaryPath": "ios",
"type": "ios.none",
"device": {
"type": "iPhone 12 Pro Max"
},
"session": {
"server": "ws://localhost:8099",
"sessionId": <your app’s bundle identifier>
}
}

Note: This configuration will not handle simulator and application lifecycle, they will have to be performed manually (e.g. running your application from Xcode).

Run Detox Server Manually

Run the following command in your project root directory:

detox run-server

Run Your Application From Xcode

Run your application from Xcode as you normally do.

Note: Before running, place breakpoints in places where you wish to debug.

Run Detox Tests

Run the following command in your project root directory:

detox test --configuration ios.none

Note: Calls to device.launchApp() may fail as this API is unavailable when using ios.none configuration types. Instead, use it.only to run specific tests and restart your app from Xcode.

- - + + \ No newline at end of file diff --git a/docs/19.x/guide/developing-while-writing-tests/index.html b/docs/19.x/guide/developing-while-writing-tests/index.html index 64d9d3c7c3..e6bbebe9bb 100644 --- a/docs/19.x/guide/developing-while-writing-tests/index.html +++ b/docs/19.x/guide/developing-while-writing-tests/index.html @@ -11,14 +11,14 @@ - - + +
Version: 19.x

Developing Your App While Writing Tests

Developing Your App While Writing Tests

If your app requires active development, such as adding testID fields for tests, this is a good workflow. It allows you to work both on your app and your tests at the same time.

The main idea behind this workflow is to run your app in debug with Detox on a simulator. Once the app is up and running, it will still be connected to the React Native packager. This means that you’ll be able to do JavaScript code modifications in your app codebase and press CMD+R to reload the bundle inside the Detox simulator.

Step 1: Build Your App in Debug

Detox is going to need the executable for your app. This means we need to build it first. Since we want a build that’s connected to the live React Native packager (to update bundle changes), we’re going to need a debug build.

There are multiple ways to build your app, let’s find the alternative you like best:

  • I like to build my app by clicking "Play" in Xcode — This isn’t a great approach here because using Xcode IDE to build your app will place the executable in an internal directory which path that is difficult to predict (~/Library/Developer/Xcode/DerivedData/...). This means we won’t be able to tell Detox where to find it. Although you can change the default derivedData path by altering your Xcode settings, we encourage you to try the alternative ways to build. If you’d like to debug Detox with Xcode, see Debugging In Xcode.

  • I like to build my app with react-native run-ios — The official React Native command line tools provide a script to build your app from terminal. Go to your project root and type react-native run-ios. This will build the app in debug and place the executable in the folder ios/build/Build/Products/Debug-iphonesimulator. This is a great way to build because it’s easy to specify this path in Detox configuration inside package.json. This is actually the path we specified in the getting started tutorial.

    react-native run-ios
  • I like to build my app with detox build — During the installation instructions, we provided Detox configuration in package.json with a command line to build your app executable. We can execute this build command by going to the project root and typing detox build. Please make sure that you’re using a Detox configuration that builds a debug version of your app. The default we specified in the getting started tutorial should work.

    detox build

TIP: Running react-native run-ios will also start a simulator and install your app on it, running detox test later will possibly start a different simulator, so you’ll find yourself with two open simulators. You can safely close the simulator started by react-native, everything will continue working as expected.

Step 2: Make Sure Your React-Native Packager is Running

If you can’t see a React Native packager instance running in a terminal, you can run it manually by typing:

react-native start

The packager instance will reload the JavaScript bundle of your app when you press CMD+R in the simulator window. This will allow you to make modifications in your app codebase.

Step 3: Run Detox Tests

Type the following inside your project root:

detox test

This will use Detox to find the app executable we’ve built in step 1, install it on a simulator and run Detox tests against it.

Step 4: Make Changes to Your App’s Codebase as Usual

You can keep working on the JavaScript codebase of your app as usual. As long as you keep the simulator from step 3 running, you’ll be able to press CMD+R inside and reload your app with the new changes.

Step 5: Re-run Detox Tests Without Re-installing the App

You can make changes to your Detox tests as well. When you want to run your tests on the simulator, we recommend using the following command:

detox test --reuse

The reuse option will prevent Detox from compiling and re-installing your app again in the simulator. The tests will simply run against the current app instance currently running in the simulator. This will make the process much faster.

- - + + \ No newline at end of file diff --git a/docs/19.x/guide/expo/index.html b/docs/19.x/guide/expo/index.html index 705cc34a77..b08c5c810b 100644 --- a/docs/19.x/guide/expo/index.html +++ b/docs/19.x/guide/expo/index.html @@ -11,13 +11,13 @@ - - + +
Version: 19.x

Expo

Expo

Note: Expo support with Detox is entirely a community driven effort. We have no specific support in Detox for Expo applications (ejected or otherwise).

If you are seeing an issue, it is most likely not an issue with Detox itself, but with the Expo runtime or with an incorrect Detox setup. For support on how to use Detox with Expo, you should contact the Expo team or the Expo community.

General Expo issues will no longer be allowed in the Detox issue tracker. If you’ve investigated the Expo runtime or your app, and found a genuine issue with Detox, please open an issue.

- - + + \ No newline at end of file diff --git a/docs/19.x/guide/jest/index.html b/docs/19.x/guide/jest/index.html index 00ccb96671..c9248f19cf 100644 --- a/docs/19.x/guide/jest/index.html +++ b/docs/19.x/guide/jest/index.html @@ -11,8 +11,8 @@ - - + +
@@ -24,7 +24,7 @@ If you wish to force-enable it nonetheless, the --jest-report-specs CLI option can be used with detox test, e.g.:

detox test --configuration <yourConfigurationName> --workers 2 --jest-report-specs

How to Run Unit and E2E Tests in the Same Project

  • Create different Jest configs for unit and E2E tests, e.g. in e2e/config.json (for Detox) and jest.config.js (for unit tests). For example, in Jest’s E2E config you can set testRegex to look for \.e2e.js$ regexp, and this way avoid accidental triggering of unit tests with .test.js extension.
  • To run your E2E tests, use detox test command (or npx detox test, if you haven’t installed detox-cli).
- - + + \ No newline at end of file diff --git a/docs/19.x/guide/migration/index.html b/docs/19.x/guide/migration/index.html index c9cf9671b4..be63e87997 100644 --- a/docs/19.x/guide/migration/index.html +++ b/docs/19.x/guide/migration/index.html @@ -11,8 +11,8 @@ - - + +
@@ -37,7 +37,7 @@ By default, it dynamically creates ./artifacts/{configuration}.{timestamp} directory in the project folder as soon as it has to save a recorded artifact.

Previously, to enable log recording you just had to specify --artifact-location arg. Currently, you need to tell that explicitly via a new CLI flag: --record-logs all or --record-logs failing.

Notice that --artifact-location became sensitive to whether you end your directory path with a slash or not. It has the next convention:

  • If you want to create automatically a subdirectory with timestamp and configuration name (to avoid file overwrites upon consequent reruns), specify a path to directory that does not end with a slash.
  • Otherwise, if you want to put artifacts straight to the specified directory (in a case where you make a single run only, e.g. on CI), add a slash to the end.

For more information see CLI documentation.

Migrating from Detox 4.x.x to 5.x.x

The clearest example for the 4->5 API changes is the change log of detox’s own test suite. Check detox test change log for a real life example.

Version 5.x.x breaks detox’s API in 4 different places

1. Promise based flow

All of the API calls are now promise based, and must use either promise chains or async-await.

Here’s an example of an async call to tap an element:

// <=4.x.x
beforeEach(() => {
element(by.text('Sanity')).tap();
});
// 5.x.x
beforeEach(async () => {
await element(by.text('Sanity')).tap();
});

Same thing with expectations

// <=4.x.x
it('should have welcome screen', () => {
expect(element(by.text('Welcome'))).toBeVisible();
expect(element(by.text('Say Hello'))).toBeVisible();
expect(element(by.text('Say World'))).toBeVisible();
};
// 5.x.x
it('should have welcome screen', async () => {
await expect(element(by.text('Welcome'))).toBeVisible();
await expect(element(by.text('Say Hello'))).toBeVisible();
await expect(element(by.text('Say World'))).toBeVisible();
});
2. detox object has a leaner API

Configure and init detox with just one promise based function.

// <=4.x.x
detox.config(config);
detox.start(done);
// 5.x.x
await detox.init(config);

No need to wait for test result after each test, you can safely remove detox.waitForTestResult

// <=4.x.x
afterEach((done) => {
detox.waitForTestResult(done);
});

cleanup is promise based

// <=4.x.x
detox.cleanup(done);
// 5.x.x
await detox.cleanup();
3. simulator is now device

The global object simulator is now device, this change makes sense when thinking about multi-platform tests (Android support). Along with the new promise based API, this is how we now control the attached device

<=4.x.x5.x.x
simulator.reloadReactNativeApp(done)await device.reloadReactNative()
simulator.relaunchApp(done)await device.relaunchApp()
simulator.sendUserNotification(params, done)await device.sendUserNotification(params)
simulator.openURL(url)await device.openURL(url)
4. Detox config scheme

In order for our API to support multiple platforms and devices, and to be able to provide a valid command line tool, we changed the Detox configuration scheme (in package.json)

Previous config looked like this:

//<=4.x.x
"detox": {
"session": {
"server": "ws://localhost:8099",
"sessionId": "test"
},
"ios-simulator": {
"app": "ios/build/Build/Products/Release-iphonesimulator/example.app",
"device": "iPhone 7 Plus"
}
}

The new configuration holds a dictionary of configurations.

  1. Each configuration must state type - currently only simulator is supported
  2. app is now binaryPath
  3. build - [optional] build command (either xcodebuild, react-native run-ios, etc...), will be later available through detox CLI tool.
  4. session object is not mandatory anymore, if is not provided detox will handle server creation by itself.
//5.x.x
"detox": {
"configurations": {
"ios.sim.release": {
"binaryPath": "ios/build/Build/Products/Release-iphonesimulator/example.app",
"build": "xcodebuild -project ios/example.xcodeproj -scheme example -configuration Release -sdk iphonesimulator -derivedDataPath ios/build",
"type": "ios.simulator",
"name": "iPhone 7 Plus"
}
}
}
3.1 Start using detox-cli

You will now be able to run builds and tests from your command line detox build and detox test, read more about CLI tools here

Migrating from Detox 3.x.x to 4.x.x

If you have integrated with Detox in version 3.x.x, you will need to clean your project from previously generated targets.

  • Use the provided cleanup_4.0.rb to remove unneeded changes made with Detox 4.x.x.

    ruby node_modules/detox/scripts/cleanup_4.0.rb
  • The script will delete previously configured project targets *_Detox. The targets are not used by detox anymore since the framework is now injected at runtime and doesn’t need to be linked in a different target.

  • Make sure to add changes performed by running this script to version control.

- - + + \ No newline at end of file diff --git a/docs/19.x/guide/mocha/index.html b/docs/19.x/guide/mocha/index.html index ff9d1c1315..4a1c75a8f9 100644 --- a/docs/19.x/guide/mocha/index.html +++ b/docs/19.x/guide/mocha/index.html @@ -11,13 +11,13 @@ - - + +
Version: 19.x

Mocha Setup Guide

Mocha Setup Guide

This guide describes how to install Mocha as a test runner to be used by Detox for running the E2E tests.

Note that while Mocha is lightweight and easy to set up, we nevertheless encourage usage of Jest instead, for 2 main reasons:

  1. Mocha does not support parallel-test execution (i.e. splitting the test suites between concurrently running test devices/emulators).
  2. Advanced integration features such as taking device screenshots on failures will not be as timely accurate as with working with Jest.

Installation

Disclaimer: Here we focus on installing Detox on new projects. If you’re migrating a project with an existing Detox installation, please apply some common sense while using this guide.

1. Install Mocha

Before starting with Mocha setup, be sure to complete the preliminary sections of the Getting Started guide.

npm install mocha --save-dev --no-package-lock

2. Set up Test-code Scaffolds

detox init -r mocha

Note: errors occurring in the process may appear in red.

If things go well, you should to have this set up:

  • An e2e/ folder in your project root
  • An e2e/.mocharc.json file; example
  • An e2e/init.js file; example
  • An e2e/firstTest.spec.js file with content similar to this.
- - + + \ No newline at end of file diff --git a/docs/19.x/guide/mocking/index.html b/docs/19.x/guide/mocking/index.html index f48e731e3b..ca687d5d5c 100644 --- a/docs/19.x/guide/mocking/index.html +++ b/docs/19.x/guide/mocking/index.html @@ -11,8 +11,8 @@ - - + +
@@ -22,7 +22,7 @@ Let's start with the quicker way.

Quick flow

  1. Pick a module that you are going to mock, e.g.:

    // src/config.js

    export const SERVER_URL = 'https://production.mycompany.name/api';
    export const FETCH_TIMEOUT = 60000;
  2. Create a mock module alongside, with an arbitrary extension (e.g. .mock.js):

    // src/config.mock.js

    export * from './config.js';

    // override the url from the original file:
    export const SERVER_URL = 'http://localhost:3000/api';
  3. Stop your Metro bundler if it has been already running, and run it again with the corresponding file extension override, e.g.:

    npx react-native start --sourceExts mock.js,js,json,ts,tsx

    This command is already enough to start your application in an altered mode, and you can start running your tests. Now, if some module imports ./src/config, you tell Metro bundler to prefer ./src/config.mock.js over the plain ./src/config.js, which means the consumer gets the mocked implementation.

CAVEAT: whichever file extension you might take for the mock files – make sure you don’t accidentally "pick up" unforeseen file overrides from node_modules/**/*.your-extension.js! Metro bundler does not limit itself to your project files only – applying those --sourceExts also affects the resolution of the node_modules content!

Configuring Metro bundler

While the mentioned way is good enough for the debug mode, it falls short for the release builds. The problem is that the --sourceExts argument is supported only by react-native start command. Hence, you’d need a CLI-independent way to configure your Metro bundler, and that is patching your project's metro.config.js:

/**
* Metro configuration for React Native
* https://github.com/facebook/react-native
*
* @format
*/
+const defaultSourceExts = require('metro-config/src/defaults/defaults').sourceExts;

module.exports = {
+ resolver: {
+ sourceExts: process.env.MY_APP_MODE === 'mocked'
+ ? ['mock.js', ...defaultSourceExts]
+ : defaultSourceExts,
+ },
transformer: {
getTransformOptions: async () => ({
transform: {
experimentalImportSupport: false,
inlineRequires: true,
},
}),
},
};

This way, we are enforcing a custom convention that if the Metro bundler finds the MY_APP_MODE=mocked environment variable, it should apply our sourceExts override instead of the default values.

Therefore, to start the Metro bundler in the mocked mode, you would run something like:

MY_APP_MODE=mocked npx react-native start

This principle stays the same for the release mode, although the build commands might differ depending on the platform and a specific script:

export MY_APP_MODE=mocked
# from now on, even an implicit run of Metro bundler will use our override

# via React Native CLI
npx react-native run-ios --configuration Release
npx react-native run-android --variant=release

# via native tools
xcodebuild -workspace ... -configuration release -scheme ...
./gradlew assembleRelease

Please note that preparing React Native apps for the release mode requires groundwork for both iOS and Android, which is out of scope of this current article.

As you might have noticed, this tutorial has no direct connection to Detox itself, which is a correct observation. The suggested mocking techniques are a part of the React Native world itself, so please consult the further resources:

Happy Detoxing!

- - + + \ No newline at end of file diff --git a/docs/19.x/guide/parallel-test-execution/index.html b/docs/19.x/guide/parallel-test-execution/index.html index 99bcd8936d..60181808cb 100644 --- a/docs/19.x/guide/parallel-test-execution/index.html +++ b/docs/19.x/guide/parallel-test-execution/index.html @@ -11,14 +11,14 @@ - - + +
Version: 19.x

Parallel Test Execution

Parallel Test Execution

Detox can leverage multi worker support of JS test runners (Jest, AVA, etc.).

By default detox test will run the test runner with one worker (it will pass --maxWorkers=1 to Jest CLI, Mocha is unaffected). Worker count can be controlled by adding --workers n to detox test, read more in detox-cli section.

Device Creation

While running with multiple workers, Detox might not have an available simulator for every worker. If no simulator is available for that worker, the worker will create one with the name {name}-Detox.

Lock File

Simulators/emulators run on a different process, outside of node, and require some sort of lock mechanism to make sure only one process controls a simulator in a given time. Therefore, Detox 7.4.0 introduced device.registry.state.lock, a lock file controlled by Detox, that registers all in-use simulators.

Note: Each worker is responsible for removing the device ID from the list in device.registry.state.lock. Exiting a test runner abruptly (using Ctrl+C / ⌘+C) will not give the worker a chance to unregister the device from the lock file, resulting in an inconsistent state, which can result in creation of unnecessary new simulators.

  • detox-cli makes sure device.registry.state.lock is cleaned whenever it executes.

  • If you use Detox without detox-cli make sure you delete or reset the lock file before running tests.

    echo "[]" > ~/Library/Detox/device.registry.state.lock

The lock file location is determined by the OS, and defined here.

  • MacOS: ~/Library/Detox/device.registry.state.lock
  • Linux: ~/.local/share/Detox/device.registry.state.lock
  • Windows: %LOCALAPPDATA%/data/Detox/device.registry.state.lock or %USERPROFILE%/Application Data/Detox/device.registry.state.lock

Persisting the Lock File

By default, once all workers finish their test runs, Detox will delete the lock file. Under certain conditions, you may want to persist the lock file. Use the --keepLockFile flag to disable automatic deletion.

- - + + \ No newline at end of file diff --git a/docs/19.x/guide/running-locally/index.html b/docs/19.x/guide/running-locally/index.html index 85b9f35faf..5fe3ec7906 100644 --- a/docs/19.x/guide/running-locally/index.html +++ b/docs/19.x/guide/running-locally/index.html @@ -11,13 +11,13 @@ - - + +
Version: 19.x

Running Locally

Running Locally

If your app is ready and does not require any active development, you can write your tests using this workflow and run them locally on your machine. This is convenient for developing your test suite without actively developing your app.

This is the basic workflow. It takes your app executable and runs Detox tests against it.

Step 1: Build Your App

Detox is going to need the executable for your app. This means we need to build it first. We’re going to use the Detox command line tools to build the app. During the installation, we’ve specified the actual build command line inside package.json under the detox configuration section.

Build the app by typing in terminal inside your project root:

detox build

Step 2: Run Detox Tests

Type the following inside your project root:

detox test

This will use Detox to find the app executable we’ve built in step 1, install it on a simulator and run Detox tests against it.

Note: If you have multiple configurations, you will need to specify the configuration to test.

- - + + \ No newline at end of file diff --git a/docs/19.x/guide/running-on-ci/index.html b/docs/19.x/guide/running-on-ci/index.html index 46b5f692d9..c36335da71 100644 --- a/docs/19.x/guide/running-on-ci/index.html +++ b/docs/19.x/guide/running-on-ci/index.html @@ -11,13 +11,13 @@ - - + +
Version: 19.x

Running on CI

Running on CI

Disclaimer: This guide is focused on iOS (i.e. lacking info about Android) and is generally out of date.

When your test suite is finally ready, it should be set up to run automatically on your CI server on every git push. This will alert you if new changes to the app break existing functionality.

Running Detox on CI is not that different from running it locally. There are two main differences:

  • You should test a release build rather than a debug build
  • Tell Detox to shut down the simulator when test is over

Step 1: Prepare a Release Configuration for Your App

We will need to create a release device configuration for Detox inside package.json under the detox section.

Example:

"detox": {
"devices": {
"simulator": {
"type": "ios.simulator",
"device": {
"type": "iPhone 12 Pro Max"
}
}
},
"apps": {
"ios.release": {
"type": "ios.app",
"binaryPath": "ios/build/Build/Products/Release-iphonesimulator/example.app",
"build": "xcodebuild -project ios/example.xcodeproj -scheme example -configuration Release -sdk iphonesimulator -derivedDataPath ios/build",
}
},
"configurations": {
"ios.sim.release": {
"device": "simulator",
"app": "ios.release"
}
}
}

TIP: Notice that the name example above should be replaced with your actual project name.

Step 2: Add build and test Commands to Your CI Script

Assuming your CI is executing some sort of shell script, add the following commands that should run inside the project root:

detox build --configuration ios.sim.release
detox test --configuration ios.sim.release --cleanup

Tip: Adding --cleanup to the test command will make sure detox exits cleanly by shutting down the simulator when the test is over.

Running Android Tests on CI

Setting up a CI environment capable of running Android tests isn’t as trivial. Fortunately, we’ve written all about it in a blogpost on medium!

Appendix

• Running Detox on Travis CI

Detox’s own build is running on Travis, check out Detox’s .travis.yml file to see how it’s done.

This is a simple example configuration to get you started with Detox on Travis:

language: objective-c
osx_image: xcode8.3

branches:
only:
- master

env:
global:
- NODE_VERSION=stable

install:
- brew tap wix/brew
- brew install applesimutils
- curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash
- export NVM_DIR="$HOME/.nvm" && [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
- nvm install $NODE_VERSION
- nvm use $NODE_VERSION
- nvm alias default $NODE_VERSION

- npm install react-native-cli --global
- npm install detox-cli --global

script:
- detox build --configuration ios.sim.release
- detox test --configuration ios.sim.release --cleanup

• Running Detox on Bitrise

Bitrise is a popular CI service for automating React Native apps. If you are looking to get started with Bitrise, check out this guide.

You can run Detox on Bitrise by creating a new workflow. Below is an example of the Bitrise .yml file for a workflow called tests.

Additionally, you can use a webhook on Bitrise to post the build status directly into your Slack channel.

---
format_version: 1.1.0
default_step_lib_source: https://github.com/bitrise-io/bitrise-steplib.git
trigger_map:
- push_branch: "*"
workflow: tests
workflows:
_tests_setup:
steps:
- activate-ssh-key: {}
- git-clone:
inputs:
- clone_depth: ''
title: Git Clone Repo
- script:
inputs:
- content: |-
#!/bin/bash

npm cache verify

npm install
title: Install NPM Packages
before_run:
after_run:
_detox_tests:
before_run: []
after_run: []
steps:
- npm:
inputs:
- command: install -g detox-cli
title: Install Detox CLI
- npm:
inputs:
- command: install -g react-native-cli
title: Install React Native CLI
- script:
inputs:
- content: |-
#!/bin/bash

brew tap wix/brew
brew install applesimutils
title: Install Detox Utils
- script:
inputs:
- content: |-
#!/bin/bash

detox build --configuration ios.sim.release
title: Detox - Build Release App
- script:
inputs:
- content: |-
#!/bin/bash

detox test --configuration ios.sim.release --cleanup
title: Detox - Run E2E Tests
tests:
before_run:
- _tests_setup
- _detox_tests
after_run: []

• Running Detox on GitLab CI - Android Only

GitLab is also a popular git management service which also include a built-in CI system. They provide free runner up to 2000 minutes for private projects, however, the runners provided by them cannot be used to run Detox due to the lack of KVM support (in order to run Android Emulators). You can, instead, create your own runner with KVM support. Some example of cloud providers offering this are: Digital Ocean, AWS (with C5 instance types), Google Cloud and Azure

One example of such job can be:

detox_e2e:
stage: test
image: reactnativecommunity/react-native-android
variables:
before_script:
- npm install envinfo detox-cli --global && envinfo
# Increase file watcher limit, see more here: https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers#the-technical-details
- echo fs.inotify.max_user_watches=524288 | tee -a /etc/sysctl.conf && sysctl -p
- mkdir -p /root/.android && touch /root/.android/repositories.cfg
# The Dockerimage provides two paths for sdkmanager and avdmanager, which the defaults are from $ANDROID_HOME/cmdline-tools
# That is not compatible with the one that Detox is using ($ANDROID_HOME/tools/bin)
- echo yes | $ANDROID_HOME/tools/bin/sdkmanager --channel=0 --verbose "system-images;android-27;default;x86_64"
# Nexus 6P, API 27, XXXHDPI
- echo no | $ANDROID_HOME/tools/bin/avdmanager --verbose create avd --force --name "Nexus6P" --package "system-images;android-27;default;x86_64" --sdcard 200M --device 11
- adb start-server
script:
- npx detox build -c android.emu.release.ci
- npx detox test -c android.emu.release.ci --headless
- - + + \ No newline at end of file diff --git a/docs/19.x/guide/third-party-drivers/index.html b/docs/19.x/guide/third-party-drivers/index.html index 279caf905a..fc6fc276be 100644 --- a/docs/19.x/guide/third-party-drivers/index.html +++ b/docs/19.x/guide/third-party-drivers/index.html @@ -11,8 +11,8 @@ - - + +
@@ -23,7 +23,7 @@ websocket where it receives information from the serialized matchers, and expectations, and also sends responses back of whether each step of your test succeeds or fails. Typically, a device client will use an underlying library specific to the platform at hand to implement the expectations.

Implementation Details

In order to introduce a third-party Driver, there is a set of core classes you must implement - each responsible for a different Detox concern:

  • Allocation: The process of launching / selecting a device over which the tests would run.
  • Pre-validation: The checkup of the execution-environment (e.g. verifying the Android SDK is installed).
  • Artifact handlers registration: The process where platform-based artifacts generation handlers are registered (e.g. handlers for taking screenshots, which are different between the Android and iOS platforms).
  • Runtime: The de facto execution of test logic.
  • Matchers: The matching of visible elements and visibility assertion.

To understand the exact contract of these classes, refer to examples/demo-plugin/driver.js for a dummy implementation, or to detox-puppeteer for an actual implementation of such as driver.

Very roughly speaking, this is the expected skeletal implementation:

const DeviceDriverBase = require('detox/src/devices/runtime/drivers/DeviceDriverBase');

class Cookie {
constructor(id) {
this.id = id; // hold any info necessary in order to identify the associated device
}
}

class MyNewAllocationDriver {
constructor(deps) {
this.emitter = deps.eventEmitter;
}

async allocate(deviceConfig) {
// ...
return new Cookie(id); // This is where a cookie is formed once for the entire process
}

async free(cookie, options) {
// ...
}
}

class MyNewEnvValidator {
validate() {
// ...
}
}

class MyNewArtifactsProvider {
declareArtifactPlugins() {
// ...
}
}

class MyNewRuntimeDriver extends DeviceDriverBase {
constructor(deps, cookie) {
// ...
}

// ...
}

class MyExpect {
// ...
}


module.exports = MyNewDriver;

Existing Third-party Drivers

- - + + \ No newline at end of file diff --git a/docs/19.x/guide/uninstalling/index.html b/docs/19.x/guide/uninstalling/index.html index f96ba40e23..5ea458bfd4 100644 --- a/docs/19.x/guide/uninstalling/index.html +++ b/docs/19.x/guide/uninstalling/index.html @@ -11,15 +11,15 @@ - - + +
Version: 19.x

Uninstalling Detox

Uninstalling Detox

Installing and using Detox implies certain side effects: cloned devices, cache files, state files, temporary files, etc.

This checklist might come in handy whenever you have to make a clean uninstallation after using Detox.

Detox Framework Cache

Every install of Detox also triggers a postinstall script in its package.json, which builds (or unpacks) Detox.framework into ~/Library/Detox.

You can either delete the folder manually:

rm -rf ~/Library/Detox

or run:

detox clean-framework-cache

Test Session State

On every test run, Detox rewrites a few temporary files in DETOX_LIBRARY_ROOT_PATH, i.e.:

  1. The respective iOS and Android lockfiles to tell apart the busy and the available devices for use with multiple workers:
    • device.registry.state.lock
    • android-device.registry.state.lock.
  2. A plain text file with the line-separated list of last failed test files to rerun via -R <retries-count> CLI feature:
    • last-failed.txt.

The location of DETOX_LIBRARY_ROOT_PATH may vary depending on the operating system:

  • macOS:
    • ~/Library/Detox.
  • Linux:
    • $XDG_DATA_HOME/Detox, if $XDG_DATA_HOME is defined;
    • ~/.local/share/Detox, otherwise.
  • Windows:
    • %LOCALAPPDATA%\data\Detox, if %LOCALAPPDATA% is defined;
    • %USERPROFILE%\Application Data\Detox, otherwise.

Cloned Simulators (macOS)

To support the "multiple workers" feature on iOS, Detox clones simulator instances when there aren’t enough available ones. The autogenerated simulators have names with -Detox suffix appended, so you can easily spot them with:

xcrun simctl list | grep "-Detox"

To delete a simulator, you can use:

xcrun simctl delete <uuid>

Remnants of Artifacts

Forced exits may result in leaving some temporary files behind.

iOS

To ensure there are no temporary artifact files (logs, screenshots, etc.), you can run:

rm -rf $TMPDIR/*.detox.*

If you wish to clean up your iOS simulators from the installed apps and other customizations, just run the erase procedure for the relevant ones:

xcrun simctl erase <uuid>

Android

The advice for iOS applies to the Android virtual devices as well. To wipe user files on a specific AVD, run:

emulator -avd <your_AVD> -wipe-data

If you have to clean temporary Detox files from an individual booted device, look out for files like 11159175_0.log in /sdcard folder. You can try deleting them using a simple wildcard like below or use your own:

adb -s <emulator-port> shell rm -rf /sdcard/*_*.* 

Detox CLI

If you have installed the official CLI wrapper for Detox, then make sure to uninstall it as well:

npm uninstall detox-cli --global
- - + + \ No newline at end of file diff --git a/docs/19.x/index.html b/docs/19.x/index.html index 4f3633de0f..87bc20b55a 100644 --- a/docs/19.x/index.html +++ b/docs/19.x/index.html @@ -11,13 +11,13 @@ - - + + - - + + \ No newline at end of file diff --git a/docs/19.x/introduction/android-dev-env/index.html b/docs/19.x/introduction/android-dev-env/index.html index 5b32fa6081..19c707d43a 100644 --- a/docs/19.x/introduction/android-dev-env/index.html +++ b/docs/19.x/introduction/android-dev-env/index.html @@ -11,14 +11,14 @@ - - + +
Version: 19.x

Setting Up an Android Development & Testing Environment

Setting Up an Android Development & Testing Environment

This guide provides some core practices to follow in setting up a stable, reliable environment for running automated UI tests using Android emulators (using Detox, in particular) -- be it on a personal, local computer, or a powerful CI machine.

Note that running automated UI tests is not the same as developing Android apps. Hence, you may find yourself not 100% aligned with the recommendations here, and should consider being so.

Java Setup

This is the most basic step in the process, as without a proper Java SDK installed, nothing Android-ish works -- at least not from command-line, which is mandatory for executing Detox.

The bottom line is that Android needs Java installed. If you want to run with React Native 66 and Android 12 then it needs to be at least Java 11, otherwise you should have Java 8.

To check for your real java-executable’s version, in a command-line console, run:

java -version

What needs to be verified is that java is in-path and that the output contains something like this:

java version "11.x.x"
...

or, if you have openjdk installed:

openjdk version "11.0.2" 2019-01-1
...

Namely, that the version is 11.x.x.

Note: Do not be confused by the Java version potentially used by your browsers, etc. For Detox, what the command-line sees is what matters.


If java -version yields an error, it is likely that java is either not in your path or not even installed at all. To try to understand which of the two is true, use this guide.

If otherwise the version is simply wrong, try these course of actions:

Android SDK

If you have Android Studio installed - as most of us do, then the SDK should be available for you somewhere on your machine*. However, for CI agents -- possibly running with no GUI, or if you simply don’t want the somewhat bloated piece of software on your computer, it is possible to simply download the SDK and tool-set, purely. Both cases are covered in Google’s Android guide about Android Studio. For the pure-tools option, refer to the Command line tools only section at the bottom.

For more help on setting the SDK up, this guide might be helpful.

Whatever option you choose, and whichever platform you’re running on (Mac, Linux, Windows), we strongly recommend that eventually you would have 2 additional things set up:

  • The path to the SDK’s root directory is set into the ANDROID_SDK_ROOT environment variable.
  • The path to the SDK’s root directory is bundled into the global PATH on your computer.

* Inspect the content of your ANDROID_SDK_ROOT and ANDROID_HOME environment variables.

Android (AOSP) Emulators

Mobile-apps' automation needs an Android device to run on. If you haven’t already done so, you should set up an Emulator. But, wait - don’t go and install the default one: read through, first.

We’ve long proven that for automation - which requires a stable and deterministic environment, Google’s emulators running with Google APIs simply don’t deliver what’s needed. Be it the preinstalled Google play-services - which tend to take up a lot of CPU, or even Google’s gboard Keyboard - which is full-featured but overly bloated: These encourage flakiness in tests, which we are desperate to avoid in automation.

Fortunately, the Android team at Google offers a pretty decent alternative: AOSP emulators (Android Open-Source Project). While possibly lacking some of the extended Google services, and a bit less fancy overall, we strongly recommend to strictly use this flavor of emulators for running automation/Detox tests. They can be installed alongside regular emulators.

Here’s a visual comparison between the two - an SDK 28 (Android 9) AOSP emulator (left) vs. an emulator with Google APIs installed (right):

AOSP vs Google-API

Here’s how to install them using the command line

While it’s possible to do this using Android Studio, we’ll focus on the command line, as it is also good for headless CI machines.

  1. Locate your 'Android home' folder - typically set in the ANDROID_HOME environment variable, or in its successor - ANDROID_SDK_ROOT. If ANDROID_HOME isn’t set, either set it yourself or run the following commands after cd-ing into the home folder.

  2. Preliminary: Upgrade your emulator executable to the latest version. Note: It is OK if the emulator’s version is not aligned with the SDK or platform-tools' version you currently have installed (e.g. 30.x.x vs. SDK 29)

    $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --install emulator
note

In previous Android Studio versions, the SDK-Manager path was located at $ANDROID_HOME/tools/bin/sdkmanager. We highly recommend working with the latest version, however, in case you are working with an old version, and this command fails, try this path instead.

  1. Install an emulator image without Google APIs:

    $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager "system-images;android-28;default;x86_64"
    $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --licenses
    • With ;android-28;, we assumed SDK 28 here, but other APIs are supported just the same.
    • The ;default; part replaces ;google_apis;, which is the default, and is what matters here.
    • If you are running on a M1 you must install an arm64 architecture i.e. system-images;android-28;default;arm64-v8a
  2. Create an emulator (i.e. AVD - Android Virtual Device):

    $ANDROID_HOME/cmdline-tools/latest/bin/avdmanager create avd -n Pixel_API_28_AOSP -d pixel --package "system-images;android-28;default;x86_64"
    • Pixel_API_28_AOSP is just a suggestion for a name. Any name can work here, even Pixel_API_28 - but you might have to delete an existing non-AOSP emulator, first. In any case, the name used in Detox configuration (typically in package.json) should be identical to this one.
    • -d pixel will install an emulator with the specs of a Pixel-1 device. Other specs can be used.
    • --package is the most important argument: be sure to use the same value as you did in part 2, above, with ;default;.

    Run avdmanager create --help for the full list of options.

  3. Launch the emulator:

This isn’t mandatory, of course, but it’s always good to launch the emulator at least once before running automated tests. The section below will discuss optimizing emulators bootstrapping.

At this point, you should be able to launch the emulator from Android Studio, but that can also be done from a command line console, as explained in the cheatsheet below.

See this guide for full details on the emulator executable.

Installing from Android Studio

We won’t go into all the details but once the proper image is installed using the sdkmanager, the option becomes available in the AVD creation dialog (see Target column of the Virtual Device Configuration screen below):

SDK manager in AS

Install AOSP in AS

Also, be sure to upgrade your emulator executable to the latest version: If it isn’t up-to-date, you will get an "Update Available" message under the status column, instead of "Installed":

Upgrade emulator in AS

Note: It is OK if the emulator’s version is not aligned with the SDK or platform-tools' version you currently have installed (e.g. 30.x.x vs. SDK 29)

Emulator Quick-Boot

If the system allows saving a state (for example, in personal computers or a CI system that can start from prebaked images you can configure), we highly and strongly recommend setting up quick-boot snapshots for any emulator that is used for testing automation.

Quick-boot saves significant time otherwise wasted when emulators cold-boot from scratch. The concept becomes more prominent in environments capable of parallel-executing tests in multiple, concurrently running emulators (as when Detox is run with multiple Jest workers).

This is something that we actually recommend applying in the emulator itself rather than using command-line, but we’ll include both options.

In any case, the general principle we’re going to instruct is as follows:

  1. Enable auto-save for an installed / running emulator.
  2. Launch it, and, when stable, terminate -- a snapshot is saved as a result.
  3. Disable auto-save, so that future, test-tainted snapshots won’t be saved.

Setting up a quick-boot snapshot from the Emulator

Start by launching a freshly baked emulator. Wait for it to go stable.

When running, go to settings (3 dots in the sidebar) > Snapshots > Settings tab. If not already set, select Yes in the auto-save option. This should prompt for a restart -- choose Yes. The emulator should restart and save a snapshot.

Emulator auto-save menu

Do this again after the emulator is back up, but set No in the auto-save option. Allow it to restart yet again: it will immediately boot into the state saved as a snapshot earlier.

You can also try these as alternative sources for this:

Setting up a quick-boot snapshot from command-line

This is a bit more difficult, but is also applicable even for UI-less machines.

  1. Locate the AVD’s config.ini

  2. Using your favorite text editor, either change or add these key-value sets:

    fastboot.chosenSnapshotFile=
    fastboot.forceChosenSnapshotBoot=no
    fastboot.forceColdBoot=no
    fastboot.forceFastBoot=yes

Empirically, forceFastBoot=yes and forceColdBoot=no should be enough.

  1. Under the AVD’s home directory, either create or edit yet another ini file called quickbootChoice.ini with the following content:

    saveOnExit = true
  2. Now that everything is in place, launch your emulator once (in verbose mode) and wait for it to fully load. Then, shut it down, and make sure the state has been saved.

  3. Last but not least, go back to quickbootChoice.ini and now switch to:

    saveOnExit = false

Disclaimer

After upgrading the emulator’s binary to a newer version, it usually considers all existing snapshots invalid.

This can be addressed by deleting and recreating the snapshots as explained, or by recreating the AVD’s altogether.

Cheatsheet

Locating the AVD’s home directory

Each AVD generated by the Android tools gets its own directory where associated content is stored:

  • Configuration file (i.e. config.ini)
  • Snapshot images
  • SD-card content

to name a few.

On Mac machines, the AVD directory typically maps to:

$HOME/.android/avd/<AVD Name>.avd/

(for example: /Users/root/.android/avd/Pixel_API_28_AOSP.avd/)

The path should be similar on Linux machines, even though $HOME isn’t /Users/root but typically /home/root (for example: /home/root/.android/avd/Pixel_API_28_AOSP.avd/).

Booting an emulator via command-line

  • The following examples apply for both Mac and Linux, and should be similar on Windows.
  • They assume the emulator’s name is Pixel_API_28_AOSP. If it isn’t, adjust the names accordingly:

Shortcut for booting a verbose, visible emulator in a GUI supporting system

$ANDROID_HOME/emulator/emulator -verbose @Pixel_API_28_AOSP &

Shortcut for booting a verbose, headless emulator in a UI-less Linux system

$ANDROID_HOME/emulator/emulator -verbose -no-window -no-audio -gpu swiftshader_indirect @Pixel_API_28_AOSP &

Verifying the emulator’s quick-boot snapshot has been saved

If you’ve run your emulator in verbose mode from a shell, it’s easy to verify the state has been saved by following the logs. In particular, when shutting the emulator down, this log asserts the state has been saved:

emulator: Saving state on exit with session uptime 9423 ms

as a reference, when the state is not saved, the typical output is:

emulator: WARNING: Not saving state: RAM not mapped as shared

It can be a result of an improper configuration, or an emulator launch where the -read-only argument was provided.

- - + + \ No newline at end of file diff --git a/docs/19.x/introduction/android/index.html b/docs/19.x/introduction/android/index.html index f218b8237d..077d1ca1cd 100644 --- a/docs/19.x/introduction/android/index.html +++ b/docs/19.x/introduction/android/index.html @@ -11,8 +11,8 @@ - - + +
@@ -21,7 +21,7 @@ The avdName property accepts a regular expression pattern that allows to specify the pool of device candidates to which you wish to connect. Use this property to run tests in parallel on multiple attached devices.

For a complete, working example, refer to the Detox example app.

Using product flavors

If you are using custom productFlavors the config needs to be applied a bit differently. This example shows how a beta product flavor would look for both debug and release build types:

"detox" : {
"devices": {
"emulator": {
"type": "android.emulator",
"device": {
"avdName": "Pixel_API_28"
}
}
},
"apps": {
"android.beta.debug": {
"type": "android.apk",
"binaryPath": "android/app/build/outputs/apk/beta/debug/app-beta-debug.apk",
"build": "cd android && ./gradlew assembleBetaDebug assembleBetaDebugAndroidTest -DtestBuildType=debug && cd .."
},
"android.beta.release": {
"type": "android.apk",
"binaryPath": "android/app/build/outputs/apk/beta/release/app-beta-release.apk",
"build": "cd android && ./gradlew assembleBetaRelease assembleBetaReleaseAndroidTest -DtestBuildType=release && cd .."
}
},
"configurations": {
"android.emu.beta.debug": {
"device": "emulator",
"app": "android.beta.debug"
},
"android.emu.beta.release": {
"device": "emulator",
"app": "android.beta.release"
}
}
}

3. Add the Native Detox dependency

Starting Detox 12.5.0, Detox is shipped as a precompiled .aar. To configure Detox as a compiling dependency, nevertheless -- refer to the Setting Detox up as a compiling dependency section at the bottom.

In your root buildscript (i.e. android/build.gradle), register both google() and detox as repository lookup points in all projects:

// Note: add the 'allproject' section if it doesn’t exist
allprojects {
repositories {
// ...
google()
maven {
// All of Detox' artifacts are provided via the npm module
url "$rootDir/../node_modules/detox/Detox-android"
}
}
}

In your app’s buildscript (i.e. android/app/build.gradle) add this in dependencies section:

dependencies {
// ...
androidTestImplementation('com.wix:detox:+')
}

also ensure that this line appears in dependencies:

dependencies {
// ...
implementation 'androidx.appcompat:appcompat:1.1.0' // (check what the latest version is!)
}

... and add this to the defaultConfig subsection:

android {
// ...

defaultConfig {
// ...
testBuildType System.getProperty('testBuildType', 'debug') // This will later be used to control the test apk build type
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
}
}

Please be aware that the minSdkVersion needs to be at least 18.

4. Add Kotlin

If your project does not already support Kotlin, add the Kotlin Gradle-plugin to your classpath in the root build-script (i.e.android/build.gradle):

buildscript {
// ...
ext.kotlinVersion = '1.3.0' // (check what the latest version is!)
dependencies {
// ...
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
}
}

Note: most guides advise of defining a global kotlinVersion constant - as in this example, but that is not mandatory.

Note that Detox has been tested for version 1.1.0 of Kotlin, and higher!

5. Create a Detox-Test Class

Detox requires a dummy implementation of a single Android-native test.

  1. Add a new file to your project, under this path and name: android/app/src/androidTest/java/com/[your.package]/DetoxTest.java. Double-check that the path is correct!
  2. Copy & paste the content of the equivalent file from the detox example app for RN, into it. Don’t forget to change the package name to your project’s package name!

6. Enable clear-text (unencrypted) traffic for Detox

Starting from Android SDK API level 28, Google have disabled all clear-text network traffic by default. Namely, unless explicitly configured, all of your application’s outgoing unencrypted traffic (i.e. non-TLS using HTTP rather than HTTPS) is blocked by the device.

For Detox to work, Detox test code running on the device must connect to the test-running host through its virtual localhost interface(*) using simple HTTP traffic. Therefore, the following network-security exemption configuration must be applied --

In an XML resource file, e.g. android/app/src/main/res/xml/network_security_config.xml:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">10.0.2.2</domain>
<domain includeSubdomains="true">localhost</domain>
</domain-config>
</network-security-config>

In the app’s AndroidManifest.xml

<manifest>
<application
...
android:networkSecurityConfig="@xml/network_security_config">
</application>
</manifest>

Refer to the Detox example app for an example on how this is effectively implemented.

Note: if properly configured, this in no way compromises the security settings of your app.

For full details, refer to Android’s security-config guide, and the dedicated article in the Android developers blog.

(*) 10.0.2.2 for Google emulators, 10.0.3.2 for Genymotion emulators.

7. ProGuard (Minification, Obfuscation)

In apps running minification using ProGuard, in order for Detox to work well on release builds, please enable some Detox ProGuard configuration rules by applying the custom configuration file on top of your own. Typically, this is defined using the proguardFiles statement in the minification-enabled build-type in your app/build.gradle:

    buildTypes {
// 'release' is typically the default proguard-enabled build-type
release {
minifyEnabled true

// Typical pro-guard definitions
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
// Detox-specific additions to pro-guard
proguardFile "${rootProject.projectDir}/../node_modules/detox/android/detox/proguard-rules-app.pro"
}
}

⚠️ Note: In order for Detox to be able to work properly, in proguard-rules-app.pro, it effectively declares rules that retain most of React-Native’s code (i.e. keep it unminified, unobfuscated) in your production APK. Though generally speaking, this should not be an issue (as React-Native is an open-source project), there are ways around that, if it bothers you. For example, running your E2E over a build-type specifically designed to run E2E tests using Detox would do the trick -- roughly, like so (in app/build.gradle):

    buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

signingConfig signingConfigs.release
}
releaseE2E {
initWith release
setMatchingFallbacks('release')

proguardFile "${rootProject.projectDir}/../node_modules/detox/android/detox/proguard-rules-app.pro"
}
}

Here we utilize Gradle’s initWith to easily define releaseE2E in a way that is identical to the release build-type, with the exception of considering Detox' proguard-rules-app.pro in the minification process.

Following the example, you would then have to build your app using gradlew assembleReleaseE2E rather than gradlew assembleRelease before running Detox, and instruct Detox (i.e. via binaryPath in the Detox configuration file) to use the APK resulted specifically by that Gradle target (e.g. in app/build/apk/releaseE2E/app-releaseE2E.apk instead of the equivalent app/build/apk/release/app-release.apk).

Note: if your app contains flavors -- that makes things a bit trickier, but the approach can generally be adjusted to support that as well.

Last but not least: If you’re having issue with Detox' ProGuard rules, please report them here. A special thanks to @GEllickson-Hover for reporting issues related to obfuscation in #2431.

8. Test Butler Support (Optional)

If, when setting up your work environment, you’ve selected Google emulators with an AOSP image as the test target - as recommended, we strongly encourage you would also integrate Test Butler: in the very least - in order to suppress crash and ANR dialogs. They are a soft spot in UI testing on Android, all around, as - when displayed, they make the UI entirely inaccessible (and thus cause tests to fail in bulks).

Setting Test Butler up for working with Detox is a bit different than explained in their guides. The process, as a whole, is twofold:

  1. Preinstalling the test-butler-app APK onto the test device.
  2. Integrating the test-butler-lib into your own test APK, and initializing it in a custom test-runner (as explained).

The library part can be easily achieved as explained there (i.e. by using Gradle’s androidTestImplementation). Same goes for initialization. As for the APK, the suggested usage of Gradle’s androidTestUtil is scarce when running with Detox (i.e. non-native instrumentation tests). Here’s what to do instead.

For a complete and thorough coverage of the Test Butler integration with Detox, consider going over our blogpost on CI execution on medium.

Solution 1: Prebaked Images

If you have control over the emulators' snapshots, simply download (see test-butler’s guide) and install the test-butler APK once (e.g. use adb install -r -t path/to/test-butler-app.apk), and save an updated version of the snapshot. This is the best solution.

Note: you will have to reiterate this if you upgrade to a newer version of Test-Butler, in the future.

Solution 2: Dynamic Installation

Assuming you have the APK available in the system, you can dynamically have Detox automatically install it in all of the running target-emulators by utilizing utilBinaryPaths in your Detox configuration. Example:

{
"devices": {
"emulator.oss": {
"type": "android.emulator",
"device": "...",
"utilBinaryPaths": ["relative/path/to/test-butler-app-2.2.1.apk"],
}
}
}

Refer to our configuration guide for further details on utilBinaryPaths.

As per making the APK available - for that, we have no really good solution, for the time being (but it’s in the works). A few options might be:

a. In a custom script, have it predownloaded from Maven directly, as suggested in the Test Butler guide. For example (on a Mac / Linux):

curl -f -o ./temp/test-butler-app.apk https://repo1.maven.org/maven2/com/linkedin/testbutler/test-butler-app/2.2.1/test-butler-app-2.2.1.apk

Jests' global-setup is a recommend place for those kinds of things.

Should you decide to go this path, we recommend you add ./temp/test-butler-app.apk to the relevant .gitignore.

b. (Discouraged) Add it to your source control (e.g. git), as part of the repository.

Setting Detox up as a compiling dependency

This is an alternative to the setup process described under the previous section, on adding Detox as a dependency.

In your project’s settings.gradle add:

include ':detox'
project(':detox').projectDir = new File(rootProject.projectDir, '../node_modules/detox/android/detox')

In your root buildscript (i.e. android/build.gradle), register google() as a repository lookup point in all projects:

// Note: add the 'allproject' section if it doesn’t exist
allprojects {
repositories {
// ...
google()
}
}

In your app’s buildscript (i.e. android/app/build.gradle) add this in dependencies section:

dependencies {
// ...
androidTestImplementation(project(path: ":detox"))
}

In your app’s buildscript (i.e. android/app/build.gradle) add this to the defaultConfig subsection:

android {
// ...

defaultConfig {
// ...
testBuildType System.getProperty('testBuildType', 'debug') // This will later be used to control the test apk build type
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
missingDimensionStrategy 'detox', 'full'
}
}

Please be aware that the minSdkVersion needs to be at least 18.

Troubleshooting

Please refer to troubleshooting guide about build issues for assistance.

- - + + \ No newline at end of file diff --git a/docs/19.x/introduction/design-principles/index.html b/docs/19.x/introduction/design-principles/index.html index 5d8ea31912..9f43199a03 100644 --- a/docs/19.x/introduction/design-principles/index.html +++ b/docs/19.x/introduction/design-principles/index.html @@ -11,13 +11,13 @@ - - + +
Version: 19.x

Design Principles

Design Principles

Traditionally, end-to-end tests on mobile are riddled with inherent issues, making the testing process difficult and lowering ROI for developers. We believe that the only way to solve these issues at the core is by changing some of the basic principles of our approach.

  • Detox does not rely on WebDriver — Detox is built from the ground up to integrate with native layers of your mobile app directly. We try to avoid generic cross-platform interfaces that are often the lowest common denominator. We want to optimize per platform

  • Detox does gray box, not black box — Theoretically, it sounds better to test exactly what you ship as a black box. In practice, switching to gray box allows the test framework to monitor the app from the inside and delivers critical wins like fighting flakiness at the core

  • Detox synchronizes with your app’s activity — By being aware of what your app is doing and synchronizing with it, Detox times its actions, by default, to run only when your app is idle, meaning it has determined that your app has finished its work, such as animations, network requests, React Native load, etc. You can further read on this here

  • Built from the ground up for mobile apps, has first-class React Native support — Detox is built from the ground up for native mobile and has a first-class support for React Native apps

  • Expectations run on the app, not the tester process — Traditionally, test frameworks evaluate expectations in the test script, running on Node.js. Detox evaluates expectations directly in the tested app, running on device; this enables operations that were impossible before due to performance reasons

- - + + \ No newline at end of file diff --git a/docs/19.x/introduction/getting-started/index.html b/docs/19.x/introduction/getting-started/index.html index bd34a4e062..9789b5e2b2 100644 --- a/docs/19.x/introduction/getting-started/index.html +++ b/docs/19.x/introduction/getting-started/index.html @@ -11,13 +11,13 @@ - - + +
Version: 19.x

Getting Started

Getting Started

Welcome to Detox!

In this guide, we will walk you through setting Detox up in your project, one step at a time.

You will find that some steps are longer than the others: some are just one-paragraph long, while for others we have a dedicated multistep guide worked out. Bear with us - it is all necessary, and once set-up, it is easy to move forward with writing tests very rapidly.

Step 1: Environment Setup

Install Node.js

Node.js is the JavaScript runtime Detox will run on. Install Node.js v12.0 or above.

There’s more than one way to install Node.js:

The simplest way is to use Homebrew:

brew install node

Tip: Verify installation succeeded by typing in node -v in the terminal to output current node version.

Install Detox Command Line Tools (detox-cli)

This package makes it easier to operate Detox from the command line. detox-cli should be installed globally, enabling usage of the command line tools outside your npm scripts. detox-cli is merely a script that passes commands through to a command line tool shipped inside detox package (in node_modules/.bin/detox).

npm install detox-cli --global

Install Platform-specific Dependencies, Tools and SDKs

Depending on the platform/s you’re aiming at (iOS, Android), take the time to run through these environment setup guides:

Step 2: Add Detox to Your Project

Install the Detox Node-module

If you have a React Native project, go to its root folder (where package.json is found) and type the following command:

npm install detox --save-dev

If you have a project without Node integration (such as a native project), add the following package.json file to the root folder of your project:

{
"name": "<your_project_name>",
"version": "0.0.1"
}

Name your project in package.json and then run the following command:

npm install detox --save-dev --no-package-lock

You should now have Detox available in node_modules/detox

Tip: Remember to add the node_modules folder to your git ignore file (e.g. .gitignore).

Set Up a Test Runner

Detox delegates the actual JavaScript test-code execution to a dedicated test-runner. It supports the popular Jest and Mocha out of the box. You need to choose and set up one of them now, but it is possible to switch later on, should you change your mind.

  • Jest is the recommended test runner for use with Detox, since it provides parallel test execution and a complete lifecycle integration with Detox. To set up, follow our comprehensive guide for Jest.
  • Mocha, albeit its integration is less complete, is still lightweight, and a bit easier to set up. To set up, follow our guide for Mocha.

Note: Detox is coupled to neither Mocha or Jest, nor with a specific directory structure. Both runners are just a recommendation — with some effort, they can be replaced without touching the internal implementation of Detox itself.

Apply Detox Configuration

If you’ve completed the test-runner setup successfully using detox init, you should have a .detoxrc.json file containing a skeletal configuration for Detox to use. This configuration is only half-baked and needs to be set up properly. You now need to either create or edit that file, and apply the actual configuration suitable for your specific project.

Detox scans for a configuration through multiple files. It starts from the current working directory, and runs over the following options, in this order:

  1. .detoxrc.js
  2. .detoxrc.json
  3. .detoxrc
  4. detox.config.js
  5. detox.config.json
  6. package.json ("detox" section)

If you prefer to use something other than .detoxrc.json—for example, would like to keep all project configs in one place—you can create a detox section in your package.json. If you otherwise prefer separating configs, all of the other options are valid.

For specific configuration options for each supported platform, see:

Step 3: Build Your App and Run Detox Tests

1. Build Your App

Use a convenience method in Detox command line tools to build your project easily:

detox build --configuration <your configuration name>

Note: Detox executes the build command you specified in your Detox configuration. If your build fails, make sure to provide the correct build command.

2. Run the Tests

Use the Detox command line tools to test your project easily:

detox test --configuration <your configuration name>

That’s it. Your first failing Detox test is running!

Next, we’ll go over usage and how to make this test actually pass.

- - + + \ No newline at end of file diff --git a/docs/19.x/introduction/how-detox-works/index.html b/docs/19.x/introduction/how-detox-works/index.html index 4e2e0c110a..08218cdc35 100644 --- a/docs/19.x/introduction/how-detox-works/index.html +++ b/docs/19.x/introduction/how-detox-works/index.html @@ -11,13 +11,13 @@ - - + +
Version: 19.x

How Detox Works

How Detox Works

Detox is an end-to-end testing framework. This means it runs your app on an actual device/simulator and interacts with it just like a real user would. This type of testing can give a lot of confidence in your app and help automate a manual QA process.

When a Detox test executes, you actually have two different parts running side by side:

  • The mobile app itself, usually running on a simulator/emulator. A regular native build of your app is installed and executed on the device. Your app is usually built once before the tests start running.

  • The test suite, running on Node.js, using a test runner like Jest. The tests are normally written in JavaScript. Because the tests are asynchronous in nature (every test line requires to access the app and wait for a response), the tests rely heavily on async-await.

The two parts are usually running in separate processes on your machine. It is also possible to run the two parts on different machines. Communication between the two parts takes place over the network using a web socket.

In practice, to make the communication more resilient, both parts are implemented as clients and communicate with a Detox server that acts as proxy. This allows some nice behaviors like allowing one side to disconnect (during a simulator boot for example or app restart) without disconnecting the other side and losing its state.

How Detox Automatically Synchronizes With Your App

One of the key features of Detox is its ability to automatically synchronize the test execution with your app. The most annoying aspect of end-to-end tests is flakiness—tests sometimes fail without anything changing. Flakiness happens because tests are nondeterministic. Every time a test is running, things take place in a slightly different order inside your app.

Consider a scenario where the app is making multiple network requests at the same time. What is the order of execution? It depends on which request completes first. This is an external concern depending on network congestion and how busy the server is.

The traditional method of dealing with flakiness is adding various sleep()/waitFor() commands throughout the test in an attempt to force a certain execution order. This is a bad practice, riddled with fragile magic values that often change if the machine running the tests becomes faster or slower.

Detox tries to eliminate flakiness by automatically synchronizing your tests with the app. A test cannot continue to the next command until the app becomes idle. Detox monitors your app very closely in order to know when it’s idle. It tracks several asynchronous operations and waits until they complete. This includes:

  • Keeping track of all network requests that are currently in-flight and waiting until they complete
  • Keeping track of pending animations and waiting until they complete
  • Keeping track of timers and waiting until they expire or are cancelled
  • Keeping track of the React Native operations

Architecture

Detox comprises the following components:

  • Tester: The testing component, running in a Node.js process on the host computer, executing the test logic. The tester is also responsible for device management and artifact collection.
  • Detox native client (iOS & Android): A component that gets seamlessly integrated into the tested app on the tested device, right as Detox starts executing. It synchronizes with the app, matches user queries, executes user commands (e.g. taps, scrolls) and validates expectations.
  • Detox mediator server: A small web socket server, running in a Node.js process on the host computer, used to connect between the tester and the client. Normally, the tester starts a server on a randomized session id and an available port, and sends the session and port to the client app as a launch argument.
- - + + \ No newline at end of file diff --git a/docs/19.x/introduction/ios-dev-env/index.html b/docs/19.x/introduction/ios-dev-env/index.html index ec46ae783d..a1926b9c2e 100644 --- a/docs/19.x/introduction/ios-dev-env/index.html +++ b/docs/19.x/introduction/ios-dev-env/index.html @@ -11,13 +11,13 @@ - - + +
Version: 19.x

Setting Up an iOS Development & Testing Environment

Setting Up an iOS Development & Testing Environment

This guide sums up the tools required for an environment for running automated UI tests using iOS simulators (using Detox, in particular).

Prerequisites

Running Detox (on iOS) requires the following:

  • MacOS Catalina or newer

  • Xcode v12.x or newer (v13 support - see here), with Xcode command-line tools installed

    Xcode can be installed from the App Store, or downloaded directly from Apple Developer

Dependencies

Install the Latest Version of Homebrew

Homebrew is a package manager for macOS, used to install other command line tools.

To ensure everything needed for Homebrew tool installation is installed, run

xcode-select --install

Install applesimutils

A collection of utils for Apple simulators, Detox uses it to query and communicate with the simulator.

brew tap wix/brew
brew install applesimutils

Note: Make sure to periodically update your version of applesimutils to the latest version.

- - + + \ No newline at end of file diff --git a/docs/19.x/introduction/ios/index.html b/docs/19.x/introduction/ios/index.html index 4d63f3c587..0feb550340 100644 --- a/docs/19.x/introduction/ios/index.html +++ b/docs/19.x/introduction/ios/index.html @@ -11,13 +11,13 @@ - - + +
Version: 19.x

Detox for iOS

Detox for iOS

1. Preliminary

Run through the basic steps of the Getting Started guide, such as the environment and tools setup.

2. Apply Detox Configuration

Whether you’ve selected to apply the configuration in a .detoxrc.json or bundle it into your project’s package.json (under the detox section), this is what the configuration should roughly look like for iOS:

{
"devices": {
"simulator": {
"type": "ios.simulator",
"device": {
"type": "iPhone 12 Pro Max"
}
}
},
"apps": {
"ios.release": {
"name": "YourProject",
"type": "ios.app",
"binaryPath": "ios/build/Build/Products/Release-iphonesimulator/YourProject.app",
"build": "xcodebuild -project ios/YourProject.xcodeproj -scheme YourProject -sdk iphonesimulator -derivedDataPath ios/build"
}
},
"configurations": {
"ios.sim.release": {
"device": "simulator",
"app": "ios.release"
}
}
}
info

For a comprehensive explanation of Detox configuration, see our dedicated API-reference guide.

In the above configuration example, make sure to provide the correct information for your project/app. Under the key "binaryPath", you should provide the path of the .app bundle to use. Normally, this is the path where the "build” command would output this bundle. Under the key "build", specify the xcodebuild command for your project.

tip

If your app uses CocoaPods, pass -workspace in your xcodebuild command, for example:

"build": "xcodebuild -workspace ios/YourProject.xcworkspace -scheme YourProject -sdk iphonesimulator -derivedDataPath ios/build"
info

For more information on using the xcodebuild command, visit Apple Docs.

Also, make sure the simulator model specified under the key device.type (e.g. iPhone 12 Pro Max above) is actually available on your machine (it was installed by Xcode). Check this by typing applesimutils --list in Terminal to display all available simulators.

For a complete, working example, refer to the Detox example project configuration.

- - + + \ No newline at end of file diff --git a/docs/19.x/introduction/workflows/index.html b/docs/19.x/introduction/workflows/index.html index 8bc8fd4207..d34ced0efe 100644 --- a/docs/19.x/introduction/workflows/index.html +++ b/docs/19.x/introduction/workflows/index.html @@ -11,13 +11,13 @@ - - + +
Version: 19.x

Workflows

Workflows

There are multiple recommended ways to work with Detox and make it a part of your development process. Choose the best workflow for your needs:

  • Running Tests Locally on Your Machine — If your app is ready and does not require any active development, you can write your tests using this workflow and run them locally on your machine. This is convenient for developing your test suite without actively developing your app.

  • Developing Your App While Writing Tests — If your app requires active development, such as adding testID fields for tests, this is a good workflow. It allows you to work both on your app and your tests at the same time.

  • Running Tests on CI (like Travis) — When your test suite is finally ready, it should be set up to run automatically on your CI server on every git push. This will alert you if new changes to the app break existing functionality.

  • Debugging Apps in Xcode During a Test — Advanced users might need to natively debug their app inside Xcode during a Detox test. This is mostly useful for investigating weird crashes or when contributing to Detox itself.

- - + + \ No newline at end of file diff --git a/docs/19.x/introduction/writing-first-test/index.html b/docs/19.x/introduction/writing-first-test/index.html index 4ef31a2ded..66a561d282 100644 --- a/docs/19.x/introduction/writing-first-test/index.html +++ b/docs/19.x/introduction/writing-first-test/index.html @@ -11,13 +11,13 @@ - - + +
Version: 19.x

Writing Your First Test

Writing Your First Test

This tutorial assumes you’ve already installed Detox successfully on a working React Native project.

Detox Recorder

Check out Detox Recorder, our tool for recording tests directly from your device.

Step 1: Prepare a JavaScript File to Hold Your Scenario (Spec)

Every Detox test scenario is usually placed in its own JavaScript file. If you’ve followed the installation tutorial, these files are located in /e2e/*.spec.js under your React Native project root. Feel free to place these files wherever you like, this directory structure is just a recommendation.

If you’re using Mocha as your test runner, these files will simply be executed one by one when you run your tests.

If you’ve followed the installation tutorial, you should already have firstTest.spec.js as a placeholder to start from.

Step 2: Decide how to Reset Your App for the Beginning of the Scenario

In order to start the scenario from a predictable app state and reset the state from any previous scenarios that may have been running, it’s customary to start the scenario by restarting the app.

The fastest way to reset is by calling await device.reloadReactNative();. This is equivalent to pressing CMD+R in the simulator window - it will just reload the React Native bundle. You can find other alternatives that may be slower but more thorough here.

Our scenario is made from multiple different test cases (it() clauses). We usually want to reset before each one is running. This can be accomplished by placing the reset logic inside a beforeEach() clause.

Step 3: Add testIDs to Your App to Assist in Matching Elements

Most test cases start by finding a UI element on screen (matching) and performing some user interaction on it (action). To assist in finding the correct UI element, it’s recommended to mark it in some way. The best practice is to use the testID prop for this purpose. This means we’ll modify the app code and add these props to various elements.

Note that not all React components support this prop. Most of the built-in native components in React Native like View, Text, TextInput, Switch, ScrollView have support though. If you create your own composite components, you will have to propagate this prop manually to the correct native component.

<View>
<TouchableOpacity testID='MyUniqueId123'>
<Text>Some button</Text>
</TouchableOpacity>
</View>

Step 4: Match an Element and Perform an Action

Choose a method to match your element, the various alternatives are documented here. You will most likely be relying on testID which means our matching code will look like element(by.id('MyUniqueId123')).

Choose an action to perform on the element, the various alternatives are documented here. If we have a button, a tap is probably what you’re looking for, resulting in this code:

await element(by.id('MyUniqueId123')).tap();

Step 5: Set an Expectation on the Result

After performing the action, the app will most likely do something. The process might also take a little time - for example if we’re logging in, there would be a server request. The great thing about detox is that you’re not supposed to worry about synchronization and how much time actions take. Detox will monitor the app and continue to the next line in your test only when the app completes pending operations and becomes idle.

The most natural expectation is to verify that some UI element has eventually appeared on screen as a result. Like before, we’ll need to match this element first. We can keep using testID for this purpose with element(by.id('AnotherUniqueId456')).

The various available expectations are documented here. If we want to make sure an element is visible, we’ll get:

await expect(element(by.id('AnotherUniqueId456'))).toBeVisible();

Note that the visibility matcher makes sure the element is actually visible on screen (at least 75% of it to be exact). If it appears under the fold (e.g. the user has to scroll to see it), this specific matcher will fail.

Step 6: Rinse and Repeat

Create more complicated test cases by stringing actions and expectations one after the other. Explore the rest of the API to see what other things you can do in your tests.

Add more test cases to your file by adding it() clauses. Add new scenarios by adding new *.spec.js files.

Step 7: Run Your Tests and Make Sure They Pass

This is usually done by running detox test in terminal. If your test is failing, and you don’t understand why, take a look at the troubleshooting tutorial.

How do you continue from here? Read about the various recommended workflows with detox documented here. Hopefully you’ll find a workflow that makes sense moving forward and complements your development process.

- - + + \ No newline at end of file diff --git a/docs/19.x/troubleshooting/building-the-app/index.html b/docs/19.x/troubleshooting/building-the-app/index.html index 51895f7cdd..2334f919da 100644 --- a/docs/19.x/troubleshooting/building-the-app/index.html +++ b/docs/19.x/troubleshooting/building-the-app/index.html @@ -11,13 +11,13 @@ - - + +
Version: 19.x

Dealing With Problems With Building the App & Detox

Dealing With Problems With Building the App & Detox

This page is about issues related to building the app, typically triggered when running detox build (and not detox test, for example).

For troubleshooting of other issue, refer to our troubleshooting index.

Android

Problem: AAPT - resource linking failure

For build errors involving AAPT resource linking failure, such as this one:

Execution failed for task ':app:processReleaseAndroidTestResources'.
> A failure occurred while executing com.android.build.gradle.internal.res.LinkApplicationAndroidResourcesTask$TaskAction
> Android resource linking failed
ERROR:: AAPT: error: resource style/Widget.AppCompat.TextView ...

Ensure that the following line appears in your app's buildscript (android/app/build.gradle) in the dependencies section:

dependencies {
// ...
implementation 'androidx.appcompat:appcompat:1.1.0' // (check what the latest version is!)
}

Problem: minSdkVersion mismatch

For Gradle errors involving minSdkVersion mismatches resembling this one:

uses-sdk:minSdkVersion 18 cannot be smaller than version 21 declared in library [com.facebook.react:react-native:0.64.3] /Users/janedoe/.gradle/caches/transforms-3/6a9cd4eeeb285f80b9e6f413ecd78d0d/transformed/jetified-react-native-0.64.3/AndroidManifest.xml as the library might be using APIs not available in 18
Suggestion: use a compatible library with a minSdk of at most 18,
or increase this project's minSdk version to at least 21,
or use tools:overrideLibrary="com.facebook.react" to force usage (may lead to runtime failures)

Try applying the solution suggested in this Stack-overflow post, namely adding this to your root-project's build.gradle file (replace 21 those matching your app's build.gradle):

// build.gradle

allprojects {
afterEvaluate {
if (it.hasProperty('android')){
android {
defaultConfig {
minSdkVersion 21 // Replace '21' with whatever suites your case
}
}
}
}
}

Problem: Kotlin stdlib version conflicts

The problems and resolutions here are different depending on whether you’re using Detox as a precompiled dependency artifact (i.e. an .aar) - which is by far the common case, or compiling it yourself.

Resolving for a precompiled dependency (.aar)

Of all Kotlin implementation flavors, Detox assumes the most recent one, namely kotlin-stdlib-jdk8. If your Android build fails due to conflicts with implementations coming from other dependencies or even your own app, consider adding an exclusion to either the "other" dependencies or detox itself, for example:

dependencies {
- androidTestImplementation('com.wix:detox:+')
+ androidTestImplementation('com.wix:detox:+') {
+ exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib-jdk8'
+ }
}

Detox should work with kotlin-stdlib-jdk7, as well.

A typical error output formed by Gradle in this case is as provided, for example, in #1380:

Could not determine the dependencies of task ':detox:compileDebugAidl'.
> Could not resolve all task dependencies for configuration ':detox:debugCompileClasspath'.
> Could not resolve org.jetbrains.kotlin:kotlin-stdlib:1.3.0.
Required by:
project :detox
> Cannot find a version of 'org.jetbrains.kotlin:kotlin-stdlib' that satisfies the version constraints:
Dependency path 'OurApp:detox:unspecified' --> 'com.squareup.okhttp3:okhttp:4.0.0-alpha01' --> 'org.jetbrains.kotlin:kotlin-stdlib:1.3.30'
Dependency path 'OurApp:detox:unspecified' --> 'com.squareup.okio:okio:2.2.2' --> 'org.jetbrains.kotlin:kotlin-stdlib:1.2.60'
Dependency path 'OurApp:detox:unspecified' --> 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.0' --> 'org.jetbrains.kotlin:kotlin-stdlib:1.3.0'
Dependency path 'OurApp:detox:unspecified' --> 'com.facebook.react:react-native:0.59.5' --> 'com.squareup.okhttp3:okhttp:4.0.0-alpha01' --> 'org.jetbrains.kotlin:kotlin-stdlib:1.3.30'
Dependency path 'OurApp:detox:unspecified' --> 'com.facebook.react:react-native:0.59.5' --> 'com.squareup.okio:okio:2.2.2' --> 'org.jetbrains.kotlin:kotlin-stdlib:1.2.60'
Dependency path 'OurApp:detox:unspecified' --> 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.0' --> 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.0' --> 'org.jetbrains.kotlin:kotlin-stdlib:1.3.0'
Constraint path 'OurApp:detox:unspecified' --> 'org.jetbrains.kotlin:kotlin-stdlib' strictly '1.3.0' because of the following reason: debugRuntimeClasspath uses version 1.3.0
Constraint path 'OurApp:detox:unspecified' --> 'org.jetbrains.kotlin:kotlin-stdlib' strictly '1.3.0' because of the following reason: debugRuntimeClasspath uses version 1.3.0

> Could not resolve org.jetbrains.kotlin:kotlin-stdlib-common:1.3.0.
Required by:
project :detox
> Cannot find a version of 'org.jetbrains.kotlin:kotlin-stdlib-common' that satisfies the version constraints:
Dependency path 'OurApp:detox:unspecified' --> 'com.squareup.okhttp3:okhttp:4.0.0-alpha01' --> 'org.jetbrains.kotlin:kotlin-stdlib:1.3.30' --> 'org.jetbrains.kotlin:kotlin-stdlib-common:1.3.30'
Constraint path 'OurApp:detox:unspecified' --> 'org.jetbrains.kotlin:kotlin-stdlib-common' strictly '1.3.0' because of the following reason: debugRuntimeClasspath uses version 1.3.0

(i.e. the project indirectly depends on different versions of kotlin-stdlib, such as 1.3.0, 1.3.30, 1.2.60)

Resolving for a compiling subproject

Detox requires the Kotlin standard-library as its own dependency. Due to the many flavors by which Kotlin has been released, multiple dependencies often create a conflict.

For that, Detox allows for the exact specification of the standard library to use using two Gradle globals: detoxKotlinVersion and detoxKotlinStdlib. You can define both in your root build-script file (i.e.android/build.gradle):

buildscript {
// ...
ext.detoxKotlinVersion = '1.3.0' // Detox' default is 1.2.0
ext.detoxKotlinStdlib = 'kotlin-stdlib-jdk7' // Detox' default is kotlin-stdlib-jdk8
}

Problem: Duplicate files copied in ...

If you get an error like this:

Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'.
> com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/LICENSE

You need to add this to the android section of your android/app/build.gradle:

packagingOptions {
exclude 'META-INF/LICENSE'
}
- - + + \ No newline at end of file diff --git a/docs/19.x/troubleshooting/flakiness/index.html b/docs/19.x/troubleshooting/flakiness/index.html index b863648352..1e0fd5376b 100644 --- a/docs/19.x/troubleshooting/flakiness/index.html +++ b/docs/19.x/troubleshooting/flakiness/index.html @@ -11,13 +11,13 @@ - - + +
Version: 19.x

Dealing With Flakiness in Tests

Dealing With Flakiness in Tests

What is a flaky test?

A flaky test is a test that passes most of the time, and sometimes without any apparent reason and without any changes to your app - it fails. This can even happen only on certain machines. For example, on your own machine it always passes, but on a different slower machine, like the CI, it fails.

1. We Feel Your Pain

Flakiness is the greatest challenge in E2E. The good news is that Detox was designed with this mission in mind: dealing with flakiness head on.

Assume you have a suite of 100 tests and each test is flaky in 0.5% of executions (failing without an actual bug in your app). The total flakiness of your entire suite is about 40% (the exact formula is 1 - (1 - 0.005)^100). This means that there’s 40% chance your suite will fail without an actual bug! This makes your entire suite useless.

2. Sources of Flakiness

It’s important to identify the various sources of flakiness in Detox tests.

  • Control of the device / simulator - in order to run your tests, Detox must communicate with a simulator and instruct it to install the app, restart it, etc. Simulators don’t always behave and controlling them might occasionally fail. Detox’s underlying simulator control is AppleSimulatorUtils, it is a tool that supports both basic and advanced simulator and device interaction options, it uses some core simulator features which are not always stable and may need time to "warm up" (booting, shutting down, etc.). Detox is set to have a few retries on any of these actions before failing. It will also print all the exec commands when using verbose log level, and with trace level it will print everything.

  • Asynchronous operations inside your app - every time an E2E test runs, operations might take place in a different order inside your app. This makes E2E tests nondeterministic. Consider an HTTP request made to a server, this request may take a variable time to complete due to external concerns like network congestion and server load. Detox takes this into account by monitoring all asynchronous operations that take place in your app from the inside. Detox knows which network requests are currently in-flight. Detox knows how busy the React Native bridge is. Tests are automatically synchronized to the app and only move forward when the app is idle.

3. Get More Data About the Problem

In order to identify the source of flakiness you’re suffering from you need more data. If you catch a failing test that should be passing, you need to record as much information as possible in order to investigate.

  • Enable trace mode in Detox. This will output a lot of information about what happening during the test:
    1. exec commands
    2. All communication going over the websocket, both from tester and app

To enable trace mode run your tests in trace log mode:

detox test --loglevel trace
- - + + \ No newline at end of file diff --git a/docs/19.x/troubleshooting/running-tests/index.html b/docs/19.x/troubleshooting/running-tests/index.html index b8122a2d55..5f14429fc1 100644 --- a/docs/19.x/troubleshooting/running-tests/index.html +++ b/docs/19.x/troubleshooting/running-tests/index.html @@ -11,8 +11,8 @@ - - + +
@@ -24,7 +24,7 @@ attach to process
  • Press the Debug View Hierarchy button debug view hierarchy
  • This will open the hierarchy viewer, and will show a breakdown of your app’s native view hierarchy. Here you can browse through the views
  • React Native testIDs are manifested as accessibility identifiers in the native view hierarchy
  • Let’s see an example. We will find the following view in the native hierarchy:

    <TouchableOpacity onPress={this.onButtonPress.bind(this, 'ID Working')}>
    <Text testID='UniqueId345' style={{color: 'blue', marginBottom: 20}}>ID</Text>
    </TouchableOpacity>

    This is the hierarchy viewer, pointing to the native view just mentioned:

    hierarchy viewer

    Compare to a Working Setup

    If you feel lost, try starting from a working example for sanity.

    There are multiple working examples included in this repo, such as demo-react-native.

    First, install, build and make sure the tests are indeed passing. If they are, try comparing this setup with what you have.

    Take a Look at Past Issues

    Before opening a new issue, search the list of issues on GitHub. There’s a good chance somebody faced the same problem you are having.

    How to Open a New Issue

    Before opening a new issue, please follow the entire troubleshooting guide and go over past issues.

    General usage questions should be opened on Stack Overflow, where the core Detox team is active and responds to questions: https://stackoverflow.com/questions/tagged/detox

    If you believe you are seeing a Detox issue, select the correct template from the options, and make sure to fill all requested information in the template. Omitting important information will likely result in a closed issue.

    - - + + \ No newline at end of file diff --git a/docs/19.x/troubleshooting/synchronization/index.html b/docs/19.x/troubleshooting/synchronization/index.html index 3139fb04af..f00db95048 100644 --- a/docs/19.x/troubleshooting/synchronization/index.html +++ b/docs/19.x/troubleshooting/synchronization/index.html @@ -11,15 +11,15 @@ - - + +
    Version: 19.x

    Dealing With Synchronization Issues in Tests

    Dealing With Synchronization Issues in Tests

    Traditionally, one of the most difficult aspects of E2E testing is synchronizing the test scenario with the app. Complex operations inside the app (like accessing servers or performing animations) often take variable amount of time to complete. We can’t continue the test until they’ve completed. How can we synchronize the test with these operations?

    Synchronizing manually with sleep() commands is a bad idea. It’s flaky, complicates the tests, behaves differently on different machines and makes tests needlessly slow.

    Instead, Detox tries to synchronize the test with the app completely automatically.

    When this works it’s like magic. You simply execute actions one after the other without worrying about timing, and Detox waits for the app to stabilize before moving to the next test line. If there’s an in-flight request to a server, for example, the test will not move forward until the request completes.

    What operations do we try to synchronize with automatically

    • Network requests - Detox monitors in-flight requests over the network.

    • Main thread (native) - Detox monitors pending native operations on the main thread (main dispatch queue and main NSOperationQueue).

    • Layout of UI - Detox monitors UI layout operations. There’s also special support for React Native layout which includes the Shadow Queue where yoga runs.

    • Timers - Detox monitors timers (explicit asynchronous delays). There’s special support for JavaScript timers like setTimeout and setInterval.

    • Animations - Detox monitors active animations and transitions. There’s special support for React Native animations with the Animated library.

    • React Native JavaScript thread - Detox monitors pending operations on the JavaScript thread in RN apps.

    • React Native bridge - Detox monitors the React Native bridge and asynchronous messages sent on it.

    Automatic synchronization works most of the time

    It’s difficult for an automatic mechanism to be correct in 100% of the cases. There are always exceptions. We are optimizing for the common case so most of your scenarios will not have to deal with synchronization issues.

    For the rest of this tutorial, we’ll assume the test is having some sort of synchronization issue.

    Are we waiting too much or not waiting enough?

    When the automatic synchronization mechanism doesn’t work, we have 2 potential problems:

    • We are waiting too much - The test will appear to hang and fail with timeout. This happens because Detox thinks an asynchronous operation is currently taking place and is waiting for it endlessly.

    • We are not waiting enough - The test will appear to fail at some point because an element isn’t found according to an expectation or isn’t found when attempting to perform an action on it. This happens because Detox didn’t take some asynchronous operation into account and isn’t waiting until it completes.

    Identifying which synchronization mechanism causes us to wait too much

    Interactions with the application are synchronized, meaning that they will not execute unless the app is idle. You may encounter situations where the tests just hang. When an action/expectation takes a significant amount of time use this option to print device synchronization status. The status will be printed if the action takes more than [value] (in ms) to complete

    detox test --debug-synchronization 500

    Then, reproduce your issue, and you should see output similar to the following:

    detox[9733] INFO:  [APP_STATUS] The app is busy with the following tasks:
    • There are 1 work items pending on the dispatch queue: "Main Queue (<OS_dispatch_queue_main: com.apple.main-thread>)".
    • Run loop "Main Run Loop" is awake.
    • 1 enqueued native timers:
    - Timer #1:
    + Fire date: 2021-11-11 14:19:57 +0200.
    + Time until fire: 0.072.
    + Repeat interval: 0.
    + Is recurring: NO.

    See this document for documentation of the debug synchronization output.

    Lower-level Idling Resources Debug (iOS Only)

    If --debug-synchronization does not provide the necessary information, on iOS you can add the following launch argument to your app (using launchArgs in your launchApp() call) to enable a very verbose logging of the idling resource system to the system log:

    -DTXEnableVerboseSyncSystem YES -DTXEnableVerboseSyncResources YES

    You can then obtain this log by running the following command:

    xcrun simctl spawn booted log stream --level debug --style compact --predicate "category=='SyncManager'"

    For example, change your /e2e/init.js like so:

    await detox.init(undefined, { launchApp: false });
    await device.launchApp({
    newInstance: true,
    launchArgs: { 'DTXEnableVerboseSyncSystem': 'YES', 'DTXEnableVerboseSyncResources': 'YES' }
    });

    Switching to manual synchronization as a workaround

    We always have the fail-safe of turning off automatic synchronization and waiting manually by ourselves. This isn’t the recommended approach, but sometimes we don’t have a choice.

    How do we turn off automatic synchronization?

    This makes sense only if we’re waiting too much.

    Controlling the entire synchronization mechanism

    The synchronization mechanism can be shut down using

    await device.disableSynchronization();

    to turn it on again use

    await device.enableSynchronization();
    Controlling network synchronization

    You can skip over synchronizing on certain URLs (for long polling tasks, or websocket connections)

    await device.setURLBlacklist(['.*127.0.0.1.*']);

    In order to gain sync back on an endpoint, just remove it from the blacklist:

    await device.setURLBlacklist([]);

    Alternatively, you can launch your app already with the URL blacklist defined — that can help with a network sync issue at the very beginning:

    await device.launchApp({
    launchArgs: {
    detoxURLBlacklistRegex: '(".*example.com/some-url/.*")',
    },
    });

    How do we wait manually?

    This makes sense only if we’re not waiting enough (or if we’ve disabled automatic synchronization). Use the withTimeout() API to wait until an expectation is met. The API is documented here.

    Tweaking and fine-tuning the synchronization mechanisms

    This isn’t exposed yet, to be done...

    Modifying your app to avoid waiting too much

    When facing a synchronization issue and tweaking doesn’t help, consider modifying your app. When Detox is having trouble synchronizing due to intense non-stopping activity, it may be a sign that your app is abusing resources.

    You can also modify your app, for the sake of tests only, by using mocking. Read more here.

    setTimeout and setInterval

    By default, Detox is designed to ignore setInterval and will only wait for setTimeout of up to 1.5 seconds. If you have an endless polling loop with short intervals implemented with setTimeout, switch the implementation to setInterval. If possible, avoid aggressive polling in your app altogether, the poor single JavaScript thread we have doesn’t like it.

    Endless looping animations

    By default, Detox will wait until animations complete. If you have an endless looping animation, this may cause Detox to hang. In this case, consider turning off the animation synchronization or remove the endless loop in your E2E build with mocking.

    - - + + \ No newline at end of file diff --git a/docs/19.x/troubleshooting/troubleshooting/index.html b/docs/19.x/troubleshooting/troubleshooting/index.html index dfaceb4e99..bbe0f21c91 100644 --- a/docs/19.x/troubleshooting/troubleshooting/index.html +++ b/docs/19.x/troubleshooting/troubleshooting/index.html @@ -11,13 +11,13 @@ - - + + - - + + \ No newline at end of file diff --git a/docs/api/actions/index.html b/docs/api/actions/index.html index 54ce660b3b..7be936caf4 100644 --- a/docs/api/actions/index.html +++ b/docs/api/actions/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -30,7 +30,7 @@ dateFormat—The format of dateString. Should be either 'ISO8601', or an explicit date representation format, as supported by NSDateFormatter on iOS / DateTimeFormatter on Android (e.g. 'yyyy/MM/dd').

    The recommended dateFormat is ISO8601.

    Examples:

    const datePicker = element(by.id('datePicker'));

    // ISO8601:
    await datePicker.setDatePickerDate('2019-02-06T05:10:00-08:00', 'ISO8601');
    await datePicker.setDatePickerDate(new Date().toISOString(), 'ISO8601'); // toISOString returns an ISO8601 format with no timezone (UTC-0)

    // Explicit format:
    await datePicker.setDatePickerDate('2019/02/06', "yyyy/MM/dd");
    info

    As far as element-matching is concerned, on Android, older versions of the popular @react-native-community/datetimepicker package don’t allow for the specification of your own testID prop for the date-picker component. Therefore, you'd have to either upgrade your package to a newer version containing PR datetimepicker#705 inside, or use Detox's by.type matcher as a workaround. For example:

    const datePicker = device.getPlatform() === 'android'
    ? element(by.type('android.widget.DatePicker'))
    : element(by.id('datePicker'));

    adjustSliderToPosition(normalizedPosition)

    Manipulates the UI to change the displayed value of the slider element to a new value, based on a normalized position.

    normalizedPosition—The normalized position to adjust the slider element. (valid input: [0, 1], 0 corresponds to the minimum value of the slider, and 1 corresponds to the maximum value)

    await element(by.id('slider')).adjustSliderToPosition(0.75);

    getAttributes()

    Returns an object, representing various attributes of the element.

    Retrieved attributes are:

    • text: The text value of any textual element.
    • label: The label of the element. Matches accessibilityLabel for iOS, and contentDescription for android. Refer to the .toHaveLabel() API in order to learn about caveats associated with this attribute in React Native apps.
    • placeholder: The placeholder text value of the element. Matches hint on android.
    • enabled: Whether the element is enabled for user interaction.
    • identifier: The identifier of the element. Matches accessibilityIdentifier on iOS, and the main view tag, on Android - both commonly holding the component’s test ID in React Native apps.
    • visible: Whether the element is visible. On iOS, visibility is calculated for the activation point. On Android, the attribute directly holds the value returned by View.getLocalVisibleRect()).
    • value: The value of the element, where applicable. For example: the position of a slider, or whether a checkbox has been marked. Matches accessibilityValue, on iOS.
    • frame: The frame of the element, in screen coordinate space.

    iOS-Only

    • activationPoint: The activation point of the element, in element coordinate space.
    • normalizedActivationPoint: The activation point of the element, in normalized percentage ([0.0, 1.0]).
    • hittable: Whether the element is hittable at the activation point.
    • elementFrame: The frame of the element, in container coordinate space.
    • elementBounds: The bounds of the element, in element coordinate space.
    • safeAreaInsets: The safe area insets of the element, in element coordinate space.
    • elementSafeBounds: The safe area bounds of the element, in element coordinate space.
    • date: The date of the element (in case the element is a date picker).
    • normalizedSliderPosition: The normalized slider position (in case the element is a slider).
    • contentOffset: The content offset (in case the element is a scroll view).
    • contentInset: The content inset (in case the element is a scroll view).
    • adjustedContentInset: The adjusted content inset (in case the element is a scroll view).

    Android-Only

    • visibility: The OS visibility type associated with the element: visible, invisible or gone.
    • width: Width of the element, in pixels (deprecated).
    • height: Height of the element, in pixels (deprecated).
    • elevation: Elevation of the element.
    • alpha: Alpha value for the element.
    • focused: Whether the element is the one currently in focus.
    • textSize: The text size for the text element.
    • length: The length of the text element (character count).

    If the value for a given attribute is null or cannot be otherwise computed, the key will not be present, but empty strings may be found in the object.

    If the query matches multiple elements, the attributes of all matched elements is returned as an array of objects under the elements key.

    // import jestExpect from 'expect';
    const jestExpect = require('expect').default;

    // ...
    const attributes = await element(by.text('Tap Me')).getAttributes();
    jestExpect(attributes.text).toBe('Tap Me');

    const multipleMatchedElements = await element(by.text('Multiple')).getAttributes();
    jestExpect(multipleMatchedElements.elements.length).toBe(5);
    jestExpect(multipleMatchedElements.elements[0].identifier).toBe('FirstElement');

    takeScreenshot(name)

    Takes a screenshot of the matched element. For full details on taking screenshots with Detox, refer to the screenshots guide.

    name—the name of the screenshot

    performAccessibilityAction(actionName)

    Triggers an accessibility action.

    actionName—the name of the accessibility action

    await element(by.id('scrollView')).performAccessibilityAction("activate");

    Deprecated Methods

    tapAtPoint(point)

    Deprecated: Use .tap() instead.

    Simulates a tap at on the element at the specified point.

    point—a point in the element’s coordinate space

    await element(by.id('tappable')).tapAtPoint({x:5, y:10});

    pinchWithAngle(direction, speed, angle) iOS only

    Deprecated: Use .pinch() instead.

    Simulates a pinch on the element with the provided options.

    direction—the direction of the pinch gesture (valid input: "inward"/"outward")
    speed—the speed of the pinch (optional, valid input: "fast"/"slow" , default is "slow")
    angle—the angle of the pinch, in radians (optional, default is 0.0)

    await element(by.id('PinchableScrollView')).pinchWithAngle('outward', 'slow', 0);
    - - + + \ No newline at end of file diff --git a/docs/api/device/index.html b/docs/api/device/index.html index e5f71d6010..80884cdb39 100644 --- a/docs/api/device/index.html +++ b/docs/api/device/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -40,7 +40,7 @@ See Xcode 12 Release notes: #57933113 for more details.

    The name parameter is optional — by default, it equals to capture.

    test('Capture view hierarchy', async () => {
    const temporaryArtifactPath = await device.captureViewHierarchy('myElements');

    // The temporary path will remain valid until the test completion.
    // Afterwards, the artifact will be moved, e.g.:
    // * on success, to: <artifacts-location>/✓ Capture view hierarchy/myElements.viewhierarchy
    // * on failure, to: <artifacts-location>/✗ Capture view hierarchy/myElements.viewhierarchy
    });

    device.generateViewHierarchyXml([shouldInjectTestIds])

    Generates a view hierarchy XML of the currently opened application. The XML is returned as a string.

    The shouldInjectTestIds parameter is optional and defaults to false. When set to true, Detox will attempt to inject testID attributes into the XML for each element if undefined.

    const viewHierarchyXml = await device.generateViewHierarchyXml();

    device.shake() iOS Only

    Simulate shake

    device.setBiometricEnrollment(bool) iOS Only

    Toggles device enrollment in biometric authentication (Touch ID or Face ID).

    await device.setBiometricEnrollment(true);
    // or
    await device.setBiometricEnrollment(false);

    device.matchFace() iOS Only

    Simulates the success of a face match via Face ID

    device.unmatchFace() iOS Only

    Simulates the failure of face match via Face ID

    device.matchFinger() iOS Only

    Simulates the success of a finger match via Touch ID

    device.unmatchFinger() iOS Only

    Simulates the failure of a finger match via Touch ID

    device.clearKeychain() iOS Only

    Clears the device keychain

    device.setStatusBar() iOS Only

    Override simulator’s status bar. Available options:

    await device.setStatusBar({
    time: "12:34",
    // Set the date or time to a fixed value.
    // If the string is a valid ISO date string it will also set the date on relevant devices.
    dataNetwork: "wifi",
    // If specified must be one of 'hide', 'wifi', '3g', '4g', 'lte', 'lte-a', 'lte+', '5g', '5g+', '5g-uwb', or '5g-uc'.
    wifiMode: "failed",
    // If specified must be one of 'searching', 'failed', or 'active'.
    wifiBars: "2",
    // If specified must be 0-3.
    cellularMode: "searching",
    // If specified must be one of 'notSupported', 'searching', 'failed', or 'active'.
    cellularBars: "3",
    // If specified must be 0-4.
    operatorName: "A1",
    // Set the cellular operator/carrier name. Use '' for the empty string.
    batteryState: "charging",
    // If specified must be one of 'charging', 'charged', or 'discharging'.
    batteryLevel: "50",
    // If specified must be 0-100.
    });

    device.resetStatusBar() iOS Only

    Resets any override in simulator’s status bar.

    device.reverseTcpPort() Android Only

    Reverse a TCP port from the device (guest) back to the host-computer, as typically done with the adb reverse command. The end result would be that all network requests going from the device to the specified port will be forwarded to the computer.

    device.unreverseTcpPort() Android Only

    Clear a reversed TCP-port (e.g. previously set using device.reverseTcpPort()).

    device.pressBack() Android Only

    Simulate press back button.

    await device.pressBack();

    device.getUiDevice() Android Only

    Exposes UiAutomator’s UiDevice API. This is not a part of the official Detox API, it may break and change whenever an update to UiDevice or UiAutomator Gradle dependencies (androidx.test.uiautomator:uiautomator) is introduced.

    UiDevice’s autogenerated code

    - - + + \ No newline at end of file diff --git a/docs/api/expect/index.html b/docs/api/expect/index.html index ae110c2fd3..0fa10940da 100644 --- a/docs/api/expect/index.html +++ b/docs/api/expect/index.html @@ -11,15 +11,15 @@ - - + +
    Version: 20.x

    Expect

    Detox uses matchers to match UI elements in your app and expectations to verify those elements are in the expected state.

    Use actions to simulate use interaction with elements.

    Methods

    toBeVisible()

    Expects the view to be at least N% visible on the screen. Accepts an optional parameter of percent threshold of element visibility, integer ranging from 1 to 100, that determines whether the element is visible or not. If no number is provided then defaults to 75%.

    Negating this expectation with a not expression expects the view’s visible area to be lower than N%.

    On iOS, visibility is defined by having the view, or one of its subviews, be topmost at the view’s activation point on screen.

    await expect(element(by.id('subtitle'))).toBeVisible();
    await expect(element(by.id('mainTitle'))).toBeVisible(35);

    toExist()

    Expects the element to exist within the app’s current UI hierarchy.

    await expect(element(by.id('okButton'))).toExist();

    toBeFocused()

    Expects the element to be the focused element.

    await expect(element(by.id('emailInput'))).toBeFocused();

    toHaveText(text)

    Expects the element to have the specified text.

    await expect(element(by.id('mainTitle'))).toHaveText('Welcome back!');

    toHaveLabel(label)

    Expects the element to have the specified label as its accessibility label (iOS) or content description (Android). In React Native, this corresponds to the value in the accessibilityLabel prop.

    note

    Note that in React Native apps, the accessibilityLabel is computed in a non-standard way, which happens to differ between iOS and Android. Detox bridges over that gap by artificially aligning Android to iOS. Effectively, that means that in React Native apps, performing accessibility-label based matching for elements with no explicit label suggests that the matching will be performed against a concatenation of labels from the child-elements, if applicable. For example:

    <View testID='title-root'>
    <Text accessibilityLabel={'title'}>Goodbye!</Text>
    <Text accessibilityLabel={'subtitle'}>Thanks for all the fish.</Text>
    </View>

    In this case, where title-root has no accessibility label of its own, matching the label of title-root will be performed against the text: title subtitle.

    Also note that in iOS, accessibilityLabel for primitive elements such as text, automatically receives the text itself - even if the accessibilityLabel prop isn't explicitly specified.

    await expect(element(by.id('submitButton'))).toHaveLabel('Submit');

    toHaveId(id)

    Expects the element to have the specified accessibility identifier. In React Native, this corresponds to the value in the testID prop.

    await expect(element(by.text('Submit'))).toHaveId('submitButton');

    toHaveValue(value)

    Expects the element to have the specified accessibility value. In React Native, this corresponds to the value in the accessibilityValue prop.

    await expect(element(by.id('temperatureDial'))).toHaveValue('25');

    toHaveSliderPosition(normalizedPosition, tolerance)

    Expects the slider element to have the specified normalized position ([0, 1]), within the provided tolerance (optional).

    await expect(element(by.id('slider'))).toHaveSliderPosition(0.75);
    await expect(element(by.id('slider'))).toHaveSliderPosition(0.3113, 0.00001);

    toHaveToggleValue(value)

    Expects a toggle-able element (e.g. a Switch or a Check-Box) to be on/checked or off/unchecked. As a reference, in react-native, this is the equivalent switch component.

    await expect(element(by.id('switch'))).toHaveToggleValue(true);
    await expect(element(by.id('checkbox'))).toHaveToggleValue(false);

    withTimeout(timeout)

    Waits until the expectation is resolved for the specified amount of time. If timeout is reached before resolution, the expectation is failed.

    timeout—the timeout to wait, in ms

    await waitFor(element(by.id('bigButton'))).toBeVisible().withTimeout(2000);

    Properties

    not

    Negates the expectation, e.g.:

    await expect(element(by.id('tinyButton'))).not.toBeVisible();
    await expect(element(by.id('tinyButton'))).not.toExist();
    await expect(element(by.id('tinyButton'))).not.toBeFocused();
    await expect(element(by.id('tinyButton'))).not.toHaveText('');
    await expect(element(by.id('tinyButton'))).not.toHaveValue('');
    - - + + \ No newline at end of file diff --git a/docs/api/internals/index.html b/docs/api/internals/index.html index 03d9645655..065f938547 100644 --- a/docs/api/internals/index.html +++ b/docs/api/internals/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -43,7 +43,7 @@ After the secondary contexts connect to the IPC server hosted by the primary context, they register themselves and get the up-to-date session state. The IPC server broadcasts the updates to all the connected contexts on every action like installWorker() or reportTestResults().

    log [Logger]

    See Logger API for all the details.

    The only difference from the Client API here is that you don't have a predefined user category, i.e.:

    const { log: logClient } = require('detox');
    const { log: logInternal } = require('detox/internals');

    // oversimplified, it looks like:
    logClient == logInternal.child({ cat: 'user' })

    For example, we leverage this for adding more lifecycle events in our integration with Jest:

    detox/runners/jest/testEnvironment/index.js
    class DetoxCircusEnvironment extends NodeEnvironment {
    constructor(config, context) {
    super(/* ... */);
    log.trace.begin({ cat: 'lifecycle' }, context.testPath);
    // ...
    }
    }

    tracing

    An advanced API useful for creating reports based on logged Detox events.

    tracing.createEventStream()

    Creates a readable stream of the currently recorded events in Chrome Trace Event format.

    const { tracing } = require('detox/internals');

    async function processDetoxEvents() {
    await new Promise((resolve, reject) => {
    tracing
    .createEventStream()
    .on('end', resolve)
    .on('error', reject)
    .on('data', (event) => {
    if (event.ph === 'B') { /* duration event (begin) */ }
    if (event.ph === 'E') { /* duration event (end) */ }
    if (event.ph === 'i') { /* instant event */ }
    });
    });
    }

    Please mind that you'll be getting a snapshot of events aggregated from all the sibling and child processes, and it never will be complete until the very end of the test session.

    See also: DurationBeginEvent, DurationEndEvent, InstantEvent.

    worker [object]

    Not documented on purpose. Provides direct access to the object which holds the device driver, websocket client, matchers, expectations, etc.

    - - + + \ No newline at end of file diff --git a/docs/api/logger/index.html b/docs/api/logger/index.html index 4e0e519c16..0017e049c6 100644 --- a/docs/api/logger/index.html +++ b/docs/api/logger/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -26,7 +26,7 @@ the end event.

    Effectively, begin and end can even be called in two complete different places - such as beforeEach and afterEach, but that is discouraged.

    In fact, log.*.complete() is the recommended way of tracing things, e.g.:

    Event metadata

    All the log methods accept an optional first argument which can contain some custom metadata: numbers, strings and booleans:

    detox.log.info({ /* metadata */ }, message);
    detox.log.trace.begin({ /* metadata */ }, message);
    detox.log.trace.end({ /* metadata */ });

    Aside from custom user properties, there are a few meaningful properties that affect the timeline representation.

    id [string | number]

    Use arbitrary IDs when you have a risk of overlapping concurrent events, e.g.:

    await Promise.all([
    await detox.log.complete({ id: 1 }, 'Do this', async () => { /* … */ }),
    await detox.log.complete({ id: 2 }, 'Do that', async () => { /* … */ }),
    ]);

    Using IDs will prevent situations like this, where the nested event outlasts its parent:

    B               E
    |-- event 1 ----|
    B E
    |-- event 2 -----|

    In the example above, the actual sequence of calls will be:

    log.info.begin('event 1');
    log.info.begin('event 2');
    log.info.end(); // from event 1
    log.info.end(); // from event 2

    Therefore, it will be interpreted erroneously on the timeline, as if the second event has ended before the first one:

    B                   E
    |-- event 1 --------|
    B E
    |-- event 2 -|

    When you begin an event with a specific id while there's already some other duration event, the logger allocates another "lane" for that event by assigning a distinct tid (thread ID) to it:

    cat [string | string[]]

    Event category. Helpful for filtering specific events.

    Pass either a string of comma-separated values or a string array, e.g.:

    log.info({ cat: 'login,login-email' }, 'Starting e-mail login flow...');
    // is identical to:
    log.info({ cat: ['login', 'login-email'] }, 'Starting e-mail login flow...');

    cname [string]

    Custom event color. See the available color names here.

    * [string | number | boolean]

    Your custom properties, e.g.:

    detox.log.info({ login: 'test@example.com' }, 'Entering credentials...');

    Custom properties are not printed to the terminal logs, but there are a few reserved names which have an extra formatting due to our default logger.options.stringifiers — these are: args, data, error, stack, origin.

    Also, there are a few reserved properties which cannot be logged:

    • pid — process ID,
    • tid — thread ID,
    • ts — timestamp,
    • ph — phase: begin (B), end (E), instant (i) event.

    Artifacts

    The logger subsystem produces two artifacts when --record-logs CLI option is enabled or artifacts.plugins.log.enabled config is set to true.

    detox.log

    This file contains all the log messages you could see in the terminal window, except that there are messages of all the log levels, from fatal to trace.

    detox.trace.json

    JSON file, which, if loaded into Perfetto or chrome://tracing (internal address in Google Chrome browser), would look something like this:

    Timeline artifact example

    The tracing view provides a visual, hierarchical representation of the various processes that took place during the execution of the testing session, over the execution’s time-line. These processes appear as hierarchical sections – sometimes visually ordered in a parent-child way, depending on their formation time and context.

    - - + + \ No newline at end of file diff --git a/docs/api/matchers/index.html b/docs/api/matchers/index.html index d9b4ea5173..4b7b2d165d 100644 --- a/docs/api/matchers/index.html +++ b/docs/api/matchers/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -34,7 +34,7 @@ "allowsDirectInteraction" "causesPageTurn" "tabBar"

    element(by.traits(['button']));

    withAncestor(matcher)

    Matches elements with an ancestor that matches the specified matcher.

    element(by.id('child').withAncestor(by.id('parent')));

    withDescendant(matcher)

    Matches elements with at least one descendant that matches the specified matcher.

    element(by.id('parent').withDescendant(by.id('child')));

    and(matcher)

    Matches elements by combining several matchers together.

    element(by.id('uniqueId').and(by.text('some text')));

    atIndex(index)

    If a matcher resolves into multiple matched UI elements, you may specify which element to use by its index.

    On iOS, matched elements are sorted by their x and y axes.

    Note: Due to different underlying implementations of Detox on iOS and Android, as well as other differences in the OS implementations, as well as RN implementation differences on each OS, indices may not match between iOS and Android. Relying on indices may also introduce flakiness in your tests as your app’s user interface is updated. It is recommended to use unique identifier matchers for your elements.

    element(by.text('Product')).atIndex(2);

    Regex matching

    For supported matchers (id, label, text), you can also utilize regex (Regular Expressions) alongside certain flags. Here's a table with the supported flags:

    FlagNameModification
    iIgnore CasingMakes the expression search case-insensitively.
    sDot AllMakes the wild character . match newlines as well.
    mMultilineMakes the boundary characters (^ and $) match the beginning and ending of every single line instead of the beginning and ending of the whole string.
    Note

    Regular expression flags such as g (global) and y (sticky) that are not supported, as well as u (unicode) which is always implied, are ignored when parsing input.

    Pay attention that as of writing this note, Android supports lookbehind assertions in its regular expression implementation, while iOS does not. It's advisable to check the official platform-specific documentation for limitations.

    The following sample code snippet matches text starting with "Tap" followed by any number of alphabetic characters, case-insensitively:

    element(by.text(/Tap [A-Za-z]+/i));
    - - + + \ No newline at end of file diff --git a/docs/api/system/index.html b/docs/api/system/index.html index b1b042e02f..b1b686d825 100644 --- a/docs/api/system/index.html +++ b/docs/api/system/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -20,7 +20,7 @@ This means that the API is not yet final and may change over minor releases.

    note

    System APIs are only available on iOS. Android support is coming soon.

    At the moment, System APIs are limited to system dialogs (e.g. permissions, alerts, etc.). We plan to expand the System APIs to include more system-level interactions in the future, such as OS browser (Safari / Chrome), interactions with push notifications, photo library, etc.

    Matchers

    System matchers are used to find elements within the system:

    by.system.label(label)

    Match elements with the specified label.

    system.element(by.system.label('Dismiss'));

    by.system.type(type)

    Match elements with the specified type.

    The type value can be any of XCUIElement.ElementType values, such as 'button' or 'textField'.

    system.element(by.system.type('button'));

    Actions

    System actions are used to interact with elements within the system:

    tap()

    Tap on the element.

    system.element(by.system.label('Allow')).tap();

    Expectations

    System expectations are used to assert the state of elements within the system:

    toExist()

    Asserts that the element exists.

    await system.element(by.system.label('Allow')).toExist();

    not

    Negates the expectation.

    await system.element(by.system.label('Allow')).not.toExist();
    - - + + \ No newline at end of file diff --git a/docs/api/webviews/index.html b/docs/api/webviews/index.html index c6f7ae0998..2e5392677a 100644 --- a/docs/api/webviews/index.html +++ b/docs/api/webviews/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -22,7 +22,7 @@ Upon obtaining the element reference, you can utilize web view actions and expectations on the webView element.

    const innerElement = web.element(by.web.id('inner_element_identifier'));
    await expect(innerElement).toHaveText('Hello World!');

    In the example above, we locate an inner element by its id HTML attribute and verify its text content.

    web(nativeMatcher).element(matcher)

    If you have multiple web views on the screen, you must locate a specific web view first by using a native matcher, e.g.:

    const myWebView = web(by.id('webview_identifier'));

    Following that, you can locate the element within the identified web view:

    const innerElement = myWebView.element(by.web.id('inner_element_identifier'));
    await expect(innerElement).toHaveText('Hello World!');

    web(nativeMatcher).atIndex(index).element(matcher) (iOS only)

    note

    This matcher is available for iOS only. See this GitHub issue for more information.

    If you have multiple web views on the screen and you want to interact with a specific web view, you can use the atIndex() method to choose the web view at the specified index.

    const myWebView = web(by.id('webview_identifier')).atIndex(1);
    const innerElement = myWebView.element(by.web.id('inner_element_identifier'));
    await expect(innerElement).toHaveText('Hello World!');

    In the example above, we use atIndex() to select the second web view on the screen (that has the specified accessibility identifier) and then locate an HTML element inside that web view.

    Matchers

    Web view matchers are used to find elements within a web view:

    by.web.id(id)

    Match elements with the specified accessibility identifier.

    web.element(by.web.id('identifier'));

    by.web.className(className)

    Match elements with the specified CSS class name.

    web.element(by.web.className('className'));

    by.web.cssSelector(cssSelector)

    Match elements with the specified CSS selector.

    web.element(by.web.cssSelector('#cssSelector'));

    by.web.name(name)

    Match form input elements with the specified name attribute.

    web.element(by.web.name('name'));

    by.web.xpath(xpath)

    Match elements with the specified XPath.

    web.element(by.web.xpath('//*[@id="testingh1-1"]'));

    by.web.href(href)

    Match elements with the specified href.

    web.element(by.web.href('https://wix.com'));
    note

    You might face issues with this matcher on Android. Check this GitHub issue for more information.

    by.web.hrefContains(href)

    Match elements that contain the specified href.

    web.element(by.web.hrefContains('wix'));
    note

    You might face issues with this matcher on Android. Check this GitHub issue for more information.

    by.web.tag(tag)

    Match elements with the specified tag.

    web.element(by.web.tag('h1'));

    by.web.value(value)

    note

    This matcher is available for iOS only at the moment.

    Match elements with the specified value.

    web.element(by.web.value('value'));

    by.web.label(label)

    note

    This matcher is available for iOS only at the moment and supports asSecured().

    Match elements with the specified label.

    web.element(by.web.label('label'));

    Supports asSecured() on iOS only:

    web.element(by.web.label('label')).asSecured();

    by.web.type(accessibilityType)

    note

    This matcher is available for iOS only at the moment and supported with asSecured() only.

    Match elements with the specified type.

    web.element(by.web.type('textField')).asSecured();

    The type value can be any of XCUIElement.ElementType values, such as 'button' or 'textField'. See XCUIElement.ElementType.

    atIndex(index)

    Choose the element at the specified index.

    web.element(by.web.tag('h1')).atIndex(1);

    Use it sparingly for those rare cases when you cannot make your matcher less ambiguous, so it returns one element only.

    Actions

    Web view actions are used to interact with elements within a web view:

    tap()

    Tap the element.

    await web.element(by.web.id('identifier')).tap();

    Supports asSecured() on iOS only:

    await web.element(by.web.label('Submit')).asSecured().tap();

    typeText(text[, isContentEditable])

    Type the specified text into the element.

    isContentEditable is an optional parameter that indicates whether the element should be a content-editable (contenteditable) element, and defaults to false.

    await web.element(by.web.id('identifier')).typeText('Hello World!');

    Supports asSecured() on iOS only:

    await web.element(by.web.type('textField')).asSecured().typeText('Hello World!');
    note

    The isContentEditable parameter is currently necessary for content-editable elements only on Android.

    On iOS, Detox automatically detects content-editable elements regardless of this parameter.

    replaceText(text)

    Replace the text of the element with the specified text.

    await web.element(by.web.id('identifier')).replaceText('Hello World!');

    Supports asSecured() on iOS only:

    await web.element(by.web.type('textField')).asSecured().replaceText('Hello World!');
    note

    This action is currently not supported for content-editable elements on Android.

    On iOS, Detox automatically detects content-editable elements and replaces their text.

    clearText()

    Clear the text of the element.

    await web.element(by.web.id('identifier')).clearText();

    Supports asSecured() on iOS only:

    await web.element(by.web.type('textField')).asSecured().clearText();
    note

    This action is currently not supported for content-editable elements on Android.

    On iOS, Detox automatically detects content-editable elements and clears their text.

    selectAllText()

    Select all the text of the element.

    await web.element(by.web.id('identifier')).selectAllText();
    note

    This action is currently supported for content-editable elements only on Android.

    On iOS, Detox can select all the text of any element that supports it (for example, an input element).

    getText()

    Get the text of the element.

    const text = await web.element(by.web.id('identifier')).getText();

    scrollToView()

    Scroll to the element until its top is at the top of the viewport.

    await web.element(by.web.id('identifier')).scrollToView();

    focus()

    Focus on the element.

    await web.element(by.web.id('identifier')).focus();

    moveCursorToEnd()

    Move the input cursor to the end of the element's content.

    await web.element(by.web.id('identifier')).moveCursorToEnd();
    note

    This action is currently supported for content-editable elements only on Android.

    On iOS, Detox can move the cursor to the end of any element that supports it (for example, an input element).

    runScript(script[, args])

    Run the specified script on the element. The script should be a string that contains a valid JavaScript function. It will be called with that element as the first argument:

    const webElement = web.element(by.web.id('identifier'));
    await webElement.runScript('(el) => el.click()');

    For convenience, you can pass a function instead of a string, but please note that this will not work if the function uses any variables from the outer scope:

    The script can accept additional arguments and return a value. Make sure the values are primitive types or serializable objects, as they will be converted to JSON and back:

    const text = await webElement.runScript(function get(element, property) {
    return element[property];
    }, ['textContent']);

    getCurrentUrl()

    Get the current URL of the web view.

    const url = await web.element(by.web.id('identifier')).getCurrentUrl();
    note

    Although this action returns the URL of the presented web document, it can be called from an inner element only (for example, an iframe id or the HTML) and not from the root native web view element itself.

    You might face issues with this action on Android. Check this GitHub issue for more information.

    getTitle()

    Get the title of the web view.

    note

    Although this action returns the title of the presented web document, it can be called from an inner element only (for example, an iframe id or the HTML) and not from the root native web view element itself.

    const title = await web.element(by.web.id('identifier')).getTitle();

    Expectations

    Web view expectations are used to assert the state of elements within a web view:

    toHaveText(text)

    Assert that the element has the specified text.

    await expect(web.element(by.web.id('identifier'))).toHaveText('Hello World!');

    toExist()

    Assert that the element exists.

    await expect(web.element(by.web.id('identifier'))).toExist();

    Supports asSecured() on iOS only:

    await expect(web.element(by.web.label('Hello World!')).asSecured()).toExist();
    note

    You might face issues with this expectation on Android. Check this GitHub issue for more information.

    not

    Negate the expectation.

    await expect(web.element(by.web.id('identifier'))).not.toHaveText('Hello World!');

    Supports asSecured() on iOS only:

    await expect(web.element(by.web.label('Hello World!')).asSecured().atIndex(1)).not.toExist();

    asSecured()

    experimental

    This API is available only on iOS and is currently in the experimental phase. It is subject to changes in the near future.

    The asSecured() API is designed for interacting with web pages that use secured protocols, such as PCI DSS for payment pages. Use it when the regular API fails to interact with such pages. Detox uses system-level interactions with the webview in these scenarios. This approach is less performant and has fewer APIs.

    Example:

    await web.element(by.web.label('Submit')).asSecured().tap();

    Why use asSecured()?

    Use asSecured() for web pages with secured protocols when regular Detox interactions fail. For CORS issues, consider passing the detoxDisableWebKitSecurity launch argument to enable less strict security limitations for interacting with secured web views.

    - - + + \ No newline at end of file diff --git a/docs/articles/design-principles/index.html b/docs/articles/design-principles/index.html index d05b8a8a9b..f81712fb4a 100644 --- a/docs/articles/design-principles/index.html +++ b/docs/articles/design-principles/index.html @@ -11,13 +11,13 @@ - - + +
    Version: 20.x

    Design Principles

    Traditionally, end-to-end tests on mobile are riddled with inherent issues, making the testing process difficult and lowering ROI for developers. We believe that the only way to solve these issues at the core is by changing some of the basic principles of our approach.

    • Detox does not rely on WebDriver — Detox is built from the ground up to integrate with native layers of your mobile app directly. We try to avoid generic cross-platform interfaces that are often the lowest common denominator. We want to optimize per platform

    • Detox does gray box, not black box — Theoretically, it sounds better to test exactly what you ship as a black box. In practice, switching to gray box allows the test framework to monitor the app from the inside and delivers critical wins like fighting flakiness at the core

    • Detox synchronizes with your app’s activity — By being aware of what your app is doing and synchronizing with it, Detox times its actions, by default, to run only when your app is idle, meaning it has determined that your app has finished its work, such as animations, network requests, React Native load, etc. You can further read on this here

    • Built from the ground up for mobile apps, has first-class React Native support — Detox is built from the ground up for native mobile and has a first-class support for React Native apps

    • Expectations run on the app, not the tester process — Traditionally, test frameworks evaluate expectations in the test script, running on Node.js. Detox evaluates expectations directly in the tested app, running on device; this enables operations that were impossible before due to performance reasons

    - - + + \ No newline at end of file diff --git a/docs/articles/how-detox-works/index.html b/docs/articles/how-detox-works/index.html index 068108b7e0..bc56078861 100644 --- a/docs/articles/how-detox-works/index.html +++ b/docs/articles/how-detox-works/index.html @@ -11,13 +11,13 @@ - - + +
    Version: 20.x

    How Detox Works

    Detox is an end-to-end testing framework. This means it runs your app on an actual device/simulator and interacts with it just like a real user would. This type of testing can give a lot of confidence in your app and help automate a manual QA process.

    When a Detox test executes, you actually have two different parts running side by side:

    • The mobile app itself, usually running on a simulator/emulator. A regular native build of your app is installed and executed on the device. Your app is usually built once before the tests start running.

    • The test suite, running on Node.js, using a test runner like Jest. The tests are normally written in JavaScript. Because the tests are asynchronous in nature (every test line requires to access the app and wait for a response), the tests rely heavily on async-await.

    The two parts are usually running in separate processes on your machine. It is also possible to run the two parts on different machines. Communication between the two parts takes place over the network using a web socket.

    In practice, to make the communication more resilient, both parts are implemented as clients and communicate with a Detox server that acts as proxy. This allows some nice behaviors like allowing one side to disconnect (during a simulator boot for example or app restart) without disconnecting the other side and losing its state.

    How Detox Automatically Synchronizes With Your App

    One of the key features of Detox is its ability to automatically synchronize the test execution with your app. The most annoying aspect of end-to-end tests is flakiness—tests sometimes fail without anything changing. Flakiness happens because tests are nondeterministic. Every time a test is running, things take place in a slightly different order inside your app.

    Consider a scenario where the app is making multiple network requests at the same time. What is the order of execution? It depends on which request completes first. This is an external concern depending on network congestion and how busy the server is.

    The traditional method of dealing with flakiness is adding various sleep()/waitFor() commands throughout the test in an attempt to force a certain execution order. This is a bad practice, riddled with fragile magic values that often change if the machine running the tests becomes faster or slower.

    Detox tries to eliminate flakiness by automatically synchronizing your tests with the app. A test cannot continue to the next command until the app becomes idle. Detox monitors your app very closely in order to know when it’s idle. It tracks several asynchronous operations and waits until they complete. This includes:

    • Keeping track of all network requests that are currently in-flight and waiting until they complete
    • Keeping track of pending animations and waiting until they complete
    • Keeping track of timers and waiting until they expire or are cancelled
    • Keeping track of the React Native operations
    info

    In this synchronization process, session.debugSynchronization plays a significant role. This setting, enabled by default, keeps an eye on tasks that are keeping the app busy and logs the details if these actions take longer than the specified value to complete.

    Architecture

    Detox comprises the following components:

    • Tester: The testing component, running in a Node.js process on the host computer, executing the test logic. The tester is also responsible for device management and artifact collection.
    • Detox native client (iOS & Android): A component that gets seamlessly integrated into the tested app on the tested device, right as Detox starts executing. It synchronizes with the app, matches user queries, executes user commands (e.g. taps, scrolls) and validates expectations.
    • Detox mediator server: A small web socket server, running in a Node.js process on the host computer, used to connect between the tester and the client. Normally, the tester starts a server on a randomized session id and an available port, and sends the session and port to the client app as a launch argument.
    - - + + \ No newline at end of file diff --git a/docs/articles/third-party-drivers/index.html b/docs/articles/third-party-drivers/index.html index 8696103266..3ceea6d983 100644 --- a/docs/articles/third-party-drivers/index.html +++ b/docs/articles/third-party-drivers/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -23,7 +23,7 @@ websocket where it receives information from the serialized matchers, and expectations, and also sends responses back of whether each step of your test succeeds or fails. Typically, a device client will use an underlying library specific to the platform at hand to implement the expectations.

    Implementation Details

    In order to introduce a third-party Driver, there is a set of core classes you must implement - each responsible for a different Detox concern:

    • Allocation: The process of launching / selecting a device over which the tests would run.
    • Pre-validation: The checkup of the execution-environment (e.g. verifying the Android SDK is installed).
    • Artifact handlers registration: The process where platform-based artifacts generation handlers are registered (e.g. handlers for taking screenshots, which are different between the Android and iOS platforms).
    • Runtime: The de facto execution of test logic.
    • Matchers: The matching of visible elements and visibility assertion.

    To understand the exact contract of these classes, refer to examples/demo-plugin/driver.js for a dummy implementation, or to detox-puppeteer for an actual implementation of such as driver.

    Very roughly speaking, this is the expected skeletal implementation:

    const DeviceDriverBase = require('detox/src/devices/runtime/drivers/DeviceDriverBase');

    class Cookie {
    constructor(id) {
    this.id = id; // hold any info necessary in order to identify the associated device
    }
    }

    class MyNewAllocationDriver {
    constructor(deps) {
    this.emitter = deps.eventEmitter;
    }

    async allocate(deviceConfig) {
    // ...
    return new Cookie(id); // This is where a cookie is formed once for the entire process
    }

    async postAllocate(cookie) {
    // Optional method to handle operations after the device is allocated
    // like waiting until the boot animation is finished, configuring the device, etc.
    }

    async free(cookie, options) {
    // ...
    }
    }

    class MyNewEnvValidator {
    validate() {
    // ...
    }
    }

    class MyNewArtifactsProvider {
    declareArtifactPlugins() {
    // ...
    }
    }

    class MyNewRuntimeDriver extends DeviceDriverBase {
    constructor(deps, cookie) {
    // ...
    }

    // ...
    }

    class MyExpect {
    // ...
    }


    module.exports = MyNewDriver;

    Existing Third-party Drivers

    - - + + \ No newline at end of file diff --git a/docs/cli/build-framework-cache/index.html b/docs/cli/build-framework-cache/index.html index 6695e75a64..2d8ae58ec4 100644 --- a/docs/cli/build-framework-cache/index.html +++ b/docs/cli/build-framework-cache/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -20,7 +20,7 @@ Builds cached versions of the Detox framework and XCUITest-runner. This command uses the --detox and --xcuitest flags to selectively build components. By default, both components are built.

    Options

    • --detox - Builds only the Detox injected framework. Default is false (build both).
    • --xcuitest - Builds only the XCUITest runner. Default is false (build both).

    Detox stores a cached version of its framework and XCUITest-runner in ~/Library/Detox/ios/* in unique folders, where the folder name is a hash of Xcode and Detox version combination. This cache is used to speed up the build process and avoid unnecessary recompilations.

    Here is an example of the cache structure:

    ├── ios
    │  ├── framework
    │  │   ├── 197a0586bd006583562a5916c969d158133a8c50
    │  │   ├── …
    │  │   └── eddcc1edeffdb3533a977b73b667e1b7f106c38f
    │  ├── xcuitest-runner
    |  │   ├── 197a0586bd006583562a5916c969d158133a8c50
    │  │   ├── …
    │  │   └── eddcc1edeffdb3533a977b73b667e1b7f106c38f
    │…
    - - + + \ No newline at end of file diff --git a/docs/cli/build/index.html b/docs/cli/build/index.html index 0b30c6967b..9a9794aecf 100644 --- a/docs/cli/build/index.html +++ b/docs/cli/build/index.html @@ -11,14 +11,14 @@ - - + +
    Version: 20.x

    detox build

    detox build [options]

    Runs the build command of the app (or apps) from the specified configuration.

    OptionDescription
    -c, --configuration <device config>Select a device configuration from your defined configurations, if not supplied, and there’s only one configuration, detox will default to it
    -C, --config-path <configPath>Specify Detox config file path. If not supplied, detox searches for .detoxrc[.js] or "detox" section in package.json
    -i, --if-missingExecute the build command only if the app binary is missing.
    -s, --silentDo not fail with error if an app config has no build command.
    --helpShow help

    Examples

    If you have only one configuration, you can simply use:

    detox build

    To choose a specific configuration:

    detox build --configuration yourConfiguration

    To skip building an app if it already is built:

    detox build --configuration yourConfiguration --if-missing
    - - + + \ No newline at end of file diff --git a/docs/cli/clean-framework-cache/index.html b/docs/cli/clean-framework-cache/index.html index 4fe763cc31..2a39a60e2d 100644 --- a/docs/cli/clean-framework-cache/index.html +++ b/docs/cli/clean-framework-cache/index.html @@ -11,15 +11,15 @@ - - + +
    Version: 20.x

    detox clean-framework-cache

    detox clean-framework-cache

    MacOS only. Cleans cached versions of the Detox framework and XCUITest-runner. This command uses the --detox and --xcuitest flags to selectively remove components. By default, both components are cleaned.

    Options

    • --detox - Cleans only the Detox injected framework. Default is false (clean both).
    • --xcuitest - Cleans only the XCUITest runner. Default is false (clean both).

    See also: detox build-framework-cache

    - - + + \ No newline at end of file diff --git a/docs/cli/init/index.html b/docs/cli/init/index.html index 5f1042e560..4599f83c9c 100644 --- a/docs/cli/init/index.html +++ b/docs/cli/init/index.html @@ -11,13 +11,13 @@ - - + + - - + + \ No newline at end of file diff --git a/docs/cli/overview/index.html b/docs/cli/overview/index.html index c2d2cfb8ab..ae419addd9 100644 --- a/docs/cli/overview/index.html +++ b/docs/cli/overview/index.html @@ -11,13 +11,13 @@ - - + +
    Version: 20.x

    detox

    Detox CLI lets you operate Detox from command line.

    Installation

    Install detox-cli globally via npm:

    npm install detox-cli --global

    Usage

    detox <command> [options]

    Commands

    CommandDescription
    initCreate initial E2E tests folder for Detox.
    buildRun the command defined in 'build' property of the specified configuration.
    testInitiating your test suite.
    recorderStarts a Detox Recorder recording.
    build-framework-cacheMacOS only. Builds or rebuilds a cached Detox framework and/or XCUITest-runner in ~/Library/Detox. The cache is specific for each combination of Xcode and Detox versions.
    clean-framework-cacheMacOS only. Deletes all compiled framework and XCUITest-runner binaries from ~/Library/Detox, they will be rebuilt on 'npm install' or when running 'build-framework-cache'.
    rebuild-framework-cacheMacOS only. Cleans and builds a cached Detox framework and XCUITest-runner in ~/Library/Detox. The cache is specific for each combination of Xcode and Detox versions.
    reset-lock-fileResets Detox lock file completely - all devices are marked as available after that.
    run-serverStarts a standalone Detox server.

    Options

    OptionsDescription
    --versionShow version number
    --helpShow help
    - - + + \ No newline at end of file diff --git a/docs/cli/rebuild-framework-cache/index.html b/docs/cli/rebuild-framework-cache/index.html index 5d095167e9..90a2319616 100644 --- a/docs/cli/rebuild-framework-cache/index.html +++ b/docs/cli/rebuild-framework-cache/index.html @@ -11,15 +11,15 @@ - - + +
    Version: 20.x

    detox rebuild-framework-cache

    detox rebuild-framework-cache

    MacOS only. Rebuilds cached versions of the Detox framework and XCUITest-runner. This command uses the --detox and --xcuitest flags to selectively rebuild components. By default, both components are rebuilt.

    Options

    • --detox - Rebuilds only the Detox injected framework. Default is false (rebuild both).
    • --xcuitest - Rebuilds only the XCUITest runner. Default is false (rebuild both).

    See also: detox build-framework-cache

    - - + + \ No newline at end of file diff --git a/docs/cli/recorder/index.html b/docs/cli/recorder/index.html index 527fea30d9..ce08df1ade 100644 --- a/docs/cli/recorder/index.html +++ b/docs/cli/recorder/index.html @@ -11,14 +11,14 @@ - - + + - - + + \ No newline at end of file diff --git a/docs/cli/reset-lock-file/index.html b/docs/cli/reset-lock-file/index.html index b09c4c6fdf..c4101d4e7e 100644 --- a/docs/cli/reset-lock-file/index.html +++ b/docs/cli/reset-lock-file/index.html @@ -11,15 +11,15 @@ - - + +
    Version: 20.x

    detox reset-lock-file

    detox reset-lock-file

    Resets Detox lock file. The lock file contains information about busy and free devices, and this way we can ensure no device can be used simultaneously by multiple Detox test sessions.

    By default, detox test command cleans the lock file on start, but it targets only the devices assigned to dead and non-existent processes. This command, on contrary, cleans the lock file completely.

    - - + + \ No newline at end of file diff --git a/docs/cli/run-server/index.html b/docs/cli/run-server/index.html index 2b87aa05f7..38b3df853f 100644 --- a/docs/cli/run-server/index.html +++ b/docs/cli/run-server/index.html @@ -11,13 +11,13 @@ - - + +
    Version: 20.x

    detox run-server

    note

    This tool is useful mostly for contributing to the native codebase of Detox, not for the outside use.

    Starts a standalone Detox server.

    detox run-server [options]
    OptionDescription
    -p, --port [port]Port number (default: 8099)
    -l, --loglevel [value]Log level: fatal, error, warn, info, verbose, trace
    --no-colorDisable colorful logs
    --helpShow help
    - - + + \ No newline at end of file diff --git a/docs/cli/start/index.html b/docs/cli/start/index.html index c97bfaa209..ba678c19f3 100644 --- a/docs/cli/start/index.html +++ b/docs/cli/start/index.html @@ -11,14 +11,14 @@ - - + +
    Version: 20.x

    detox start

    detox start [options]

    Runs the start command of the app (or apps) from the specified configuration.

    OptionDescription
    -C, --config-path <configPath>Specify Detox config file path. If not supplied, Detox searches for .detoxrc[.js] or "detox" section in package.json.
    -c, --configuration <device config>Select a local configuration from your defined configurations to extract the app "start" scripts from it. If not supplied, and there’s only one configuration, Detox will default to it.
    -f, --forceIgnore errors from the "start" scripts and continue.
    --helpShow help

    Examples

    If you have only one configuration, you can simply use:

    detox start

    To choose a specific configuration:

    # long alias:
    detox start --configuration yourConfiguration
    # short alias:
    detox start -c yourConfiguration

    To forward extra arguments to the "start" script, e.g.:

    detox start -c yourConfiguration -- --port 8082

    To ignore errors from the "start" scripts and continue:

    detox start -c yourConfiguration --force
    - - + + \ No newline at end of file diff --git a/docs/cli/test/index.html b/docs/cli/test/index.html index 46e715601f..85ef5e56d0 100644 --- a/docs/cli/test/index.html +++ b/docs/cli/test/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -31,7 +31,7 @@ In other words, the path with a slash at the end assumes you do not want a subdirectory inside. For more details, please check the Enabling artifacts. The default value is artifacts (plus a subdirectory).
    - - + + \ No newline at end of file diff --git a/docs/config/apps/index.html b/docs/config/apps/index.html index 09a183c505..de6dbe847f 100644 --- a/docs/config/apps/index.html +++ b/docs/config/apps/index.html @@ -11,14 +11,14 @@ - - + +
    Version: 20.x

    Apps

    The format of Detox config allows you to define inside it multiple app configs in a key-value manner, i.e.:

    Location

    You can define the app config in two ways: aliased and inlined (per a configuration):

    .detoxrc.js
    /** @type {Detox.DetoxConfig} */
    module.exports = {
    apps: {
    appKey: {
    /* … app config … */
    }
    },
    /* … */
    configurations: {
    'example.aliased': {
    /* … */
    app: 'appKey', // (1)
    },
    'example.inlined': {
    /* … */
    app: { // (2)
    /* … app config … */
    },
    },
    },
    };

    Examples

    {
    "type": "ios.app",
    "binaryPath": "ios/build/Build/Products/Debug-iphonesimulator/example.app",
    "build": "xcodebuild -project ios/example.xcodeproj -scheme example -configuration Debug -sdk iphonesimulator -derivedDataPath ios/build"
    }

    Properties

    An app config can have the following params:

    Configuration ParamsDetails
    typeMandatory property to discern app types: ios.app, android.apk.
    nameUse only when working with multiple apps within the same configuration. See an example below.
    binaryPathRelative path to the ipa/app/apk due to be tested (make sure you build the app in a project relative path)
    build[optional] Build command, which can be called using detox build CLI as a convenience.
    start[optional] Start command, which will be called before detox test CLI starts, or explicitly via detox start command.
    testBinaryPath(optional, Android only): relative path to the test app (apk)
    launchArgs[optional] An object specifying arguments (key-values pairs) to pass through into the app, upon launching on the device. For more info, refer to the dedicated launch-arguments guide.
    reversePorts(optional, Android only) An array of TCP ports to reverse, so that the network requests to localhost:{port} on Android device are going to be forwarded to the host machine.

    Multiple apps

    To work with multiple apps within the same configuration you should be giving each app its name, e.g.:

    {
    "apps": {
    "driver.ios.release": {
    "type": "ios.app",
    "name": "driver",
    "binaryPath": "path/to/driver.app"
    },
    "passenger.ios.release": {
    "type": "ios.app",
    "name": "passenger",
    "binaryPath": "path/to/passenger.app"
    }
    },
    "configurations": {
    "ios.release": {
    "device": "simulator",
    "apps": ["driver", "passenger"],
    "build": "scripts/build-both-apps.sh",
    "start": "scripts/start-both-apps.sh"
    }
    }
    }

    After that, you can change the current app in your tests via device API:

    await device.selectApp('driver');
    await device.launchApp();
    // ... run tests ...
    await device.selectApp('passenger');
    await device.launchApp();
    // ... run tests ...

    As shown in the example above, you can override app build and start commands with a single, configuration-scoped one. This may be useful when you have smart scripts for building and starting multiple apps at once.

    - - + + \ No newline at end of file diff --git a/docs/config/artifacts/index.html b/docs/config/artifacts/index.html index 04e045c55a..49ff388f1b 100644 --- a/docs/config/artifacts/index.html +++ b/docs/config/artifacts/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -22,7 +22,7 @@ Alternatively, you might leverage the device.takeScreenshot() API for manual control.

    Artifacts root directory

    • To change artifacts root directory location (by default it is ./artifacts), add --artifacts-location <path>.\ NOTE: There is a slightly obscure convention. If you want to create automatically a subdirectory with timestamp and configuration name (to avoid file overwrites upon consequent reruns), specify a path to directory that does not end with a slash. Otherwise, if you want to put artifacts straight to the specified directory (in a case where you make a single run only, e.g. on CI), add a slash (or a backslash) to the end.
    detox test --artifacts-location /tmp/detox_artifacts  # will also append /android.emu.release.2018-06-14 08:54:11Z
    detox test --artifacts-location /tmp/detox_artifacts/ # won’t append anything, hereby treating it as a root

    Configuration Object

    Detox artifacts can be configured in a more advanced way with the artifacts configuration in package.json (or .detoxrc):

    {
    "artifacts": {},
    "configurations": {
    "some.device": {
    "artifacts": {},
    },
    },
    }

    NOTE: As you can see, there is a global and a local (per-configuration) configuration of the artifacts. Detox merges those configurations, and the per-device artifacts configuration has a higher priority over the general one.

    The artifacts object has the following properties:

    PropertyExample valuesDefault valueDescription
    rootDir".artifacts/"./artifactsA directory, where all the recorded artifacts will be placed in. Please note that there is a trailing slash convention described above.
    pathBuilder"./e2e/config/pathbuilder.js"undefinedPath to a module that exports a custom PathBuilder
    plugins{ ... }... see below... see below

    Path builder

    PathBuilder should be either an object with a method buildPathForTestArtifact or a class — see the corresponding interfaces below:

    interface PathBuilder {
    buildPathForTestArtifact(artifactPath: string, testSummary?: TestSummary): string;
    }

    interface PathBuilderClass {
    new(opts: { rootDir: string; }): PathBuilder;
    }

    As one can see, if a custom implementation of PathBuilder exports a class instead of an object, then the class constructor can also get and save rootDir location:

    class MyPathBuilder {
    constructor({ rootDir }) {
    this._rootDir = rootDir;
    }

    buildPathForTestArtifact(artifactName, testSummary) {
    /* ... use this._rootDir ... */
    }
    }

    module.exports = MyPathBuilder;

    Its main method, buildPathForTestArtifact should return a full path to the custom artifact location, when called with a suggested artifact name (e.g., testDone.png, device.log) and the current TestSummary, where TestSummary is:

    interface TestSummary {
    /**
    * Name of the current test, e.g., for:
    * describe('that screen', () =>
    * it('should have a menu', () =>
    * The expected string would be: "should have a menu".
    */
    title: string;
    /**
    * Full name of the current test, usually preceded by a suite name, e.g.:
    * describe('that screen', () =>
    * it('should have a menu', () =>
    * The expected string would be: "that screen should have a menu".
    */
    fullName: string;
    /**
    * Status of the current test. Free-form strings are not allowed.
    */
    status: 'running' | 'passed' | 'failed';
    /**
    * Clarifies the reason for why the test has failed.
    * Expected to coincide only with status: 'failed'.
    */
    timedOut?: boolean;
    /**
    * If the test runner is capable of retrying failed tests, then
    * this property indicates for which time this test is running.
    * When the property is undefined, its value is considered to be 1.
    * */
    invocations?: number;
    }

    For more technical details, search for ArtifactPathBuilder.js in Detox source code.

    The further subsections describe the plugins object structure.

    Screenshot Plugin

    Below is a default screenshot plugin object configuration, which is loaded implicitly and corresponds to the manual preset:

    {
    "plugins": {
    "screenshot": {
    "enabled": true,
    "shouldTakeAutomaticSnapshots": false,
    "keepOnlyFailedTestsArtifacts": false,
    "takeWhen": {
    "testStart": true,
    "testDone": true,
    "appNotReady": true,
    },
    }
    }
    }

    The other string presets override the following properties compared to the default configuration:

    • none => { enabled: false }.
    • failing => { shouldTakeAutomaticSnapshots: true, keepOnlyFailedTestsArtifacts: true }.
    • all => { shouldTakeAutomaticSnapshots: true, keepOnlyFailedTestsArtifacts: false }

    The individual property behavior is the following:

    • If enabled is false, then the screenshots will never be saved to the artifacts' folder.
    • If shouldTakeAutomaticSnapshots is false, then no one of the events described in takeWhen object is going to trigger a screenshot.
    • If keepOnlyFailedTestsArtifacts is true, then only screenshots from a failed test will be saved to the artifacts folder.
    • If takeWhen is undefined, it is going to have the default value described above (all props are true).
    • If takeWhen is set to be an empty object {}, that is equivalent to:
    {
    "testStart": false,
    "testDone": false,
    "appNotReady": true,
    }

    Hence, for example, if you wish to enable only testDone screenshots and leave taking appNotReady screenshots as-is, you have to pass:

    {
    "artifacts": {
    "plugins": {
    "screenshot": {
    "takeWhen": { "testDone": true }
    }
    }
    }
    }

    Video Plugin

    To be done. See meanwhile the example above.

    Log Plugin

    To be done. See meanwhile the example above.

    Instruments Plugin

    To be done. See meanwhile the example above.

    UI hierarchy Plugin

    To be done. See meanwhile the example above.

    Artifacts Structure

    1. Artifacts root folder is created per detox test run. If, for instance,--artifacts-location /tmp is used with --configuration ios.sim.release configuration on 14th June 2018 at 11:02:11 GMT+02, then the folder /tmp/ios.sim.release.2018-06-14 09:02:11Z is created.

    2. Test folder is created per test inside the root folder. The folder name consists of the test number, and the test’s full name provided to detox.afterEach(testSummary) as explained above and in detox object documentation. For instance, for the above example, the following folders will be created inside /tmp/ios.sim.release.2018-06-14 09:02:11Z:

      ✗ Assertions should assert an element has (accessibility)
      ✓ Network Synchronization Sync with short network requests - 100ms
    3. Artifacts files are created inside the test folders. The files suffixes stand for the files types (currently there are .err.log and .out.log), and the files prefixes are the launch numbers of the application per test (if the app was executed more than once per test, you will have several artifacts of each type - one per launch). For instance, a test folder may contain the following artifacts files:

      test.log
      test.mp4
      test.dtxrec/
      beforeEach.png
      afterEach.png

    Example of the structure

    artifacts/android.emu.release.2018-06-12 06:36:18Z/startup.log
    artifacts/android.emu.release.2018-06-12 06:36:18Z/✗ Assertions should assert an element has (accessibility) id/beforeEach.png
    artifacts/android.emu.release.2018-06-12 06:36:18Z/✗ Assertions should assert an element has (accessibility) id/test.log
    artifacts/android.emu.release.2018-06-12 06:36:18Z/✗ Assertions should assert an element has (accessibility) id/test.mp4
    artifacts/android.emu.release.2018-06-12 06:36:18Z/✗ Assertions should assert an element has (accessibility) id/afterEach.png
    - - + + \ No newline at end of file diff --git a/docs/config/behavior/index.html b/docs/config/behavior/index.html index 03ba378f18..2c54526941 100644 --- a/docs/config/behavior/index.html +++ b/docs/config/behavior/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -22,7 +22,7 @@ as global variables.

    When false, you should import them explicitly instead:

    const { by, device, expect, element } = require('detox');

    or, in TypeScript:

    import { by, device, expect, element } from 'detox';

    behavior.launchApp [enum]

    Default: auto.

    Possible values: auto, manual.

    When set to manual, Detox won't be launching your app automatically. Instead, it will be waiting until you launch it manually from IDE and press any key to resume the test execution. This is useful when you want to debug the native codebase when running Detox tests.

    Also, setting it to manual resets behavior.reinstallApp to false.

    behavior.cleanup.shutdownDevice [boolean]

    Default: false.

    When set to true, Detox will shut down the device after the tests finish.

    - - + + \ No newline at end of file diff --git a/docs/config/devices/index.html b/docs/config/devices/index.html index 3e2f494de2..0927a70d8a 100644 --- a/docs/config/devices/index.html +++ b/docs/config/devices/index.html @@ -11,13 +11,13 @@ - - + +
    Version: 20.x

    Devices

    The format of Detox config allows you to define inside it multiple device configs in a key-value manner, i.e.:

    Location

    You can define the device config in two ways: aliased and inlined (per a configuration):

    .detoxrc.js
    /** @type {Detox.DetoxConfig} */
    module.exports = {
    devices: {
    deviceKey: {
    /* … device config … */
    }
    },
    /* … */
    configurations: {
    'example.aliased': {
    /* … */
    device: 'deviceKey', // (1)
    },
    'example.inlined': {
    /* … */
    device: { // (2)
    /* … device config … */
    },
    },
    },
    };

    Examples

    {
    "type": "ios.simulator",
    "device": {
    // one of these or a combination of them
    "id": "D53474CF-7DD1-4673-8517-E75DAD6C34D6",
    "type": "iPhone 11 Pro",
    "name": "MySim",
    "os": "iOS 13.0"
    },
    }

    Properties

    A device config can have the following params:

    Configuration ParamsDetails
    typeRequired. String Literal. Mandatory property to discern device types: ios.simulator, android.emulator, android.attached, android.genycloud etc.
    deviceRequired. Object. Device query, e.g. { "byType": "iPhone 11 Pro" } for iOS simulator, { "avdName": "Pixel_2_API_29" } for Android emulator or { "adbName": "<pattern>" } for attached Android device with name matching the regex.
    bootArgsOptional. String. Supported by ios.simulator and android.emulator only.
    Supply an extra String of arguments to xcrun simctl boot ... or emulator -verbose ... @AVD_Name.
    forceAdbInstallOptional. Boolean. Supported for Android devices only.
    A Boolean value, false by default. When set to true, it tells device.installApp() to use adb install. Otherwise, it would use the combination of adb push <app.apk> and adb shell pm install.
    utilBinaryPathsOptional. Array of strings. Supported for Android devices only.
    An array of relative paths of utility app (APK) binary-files to preinstall on the tested devices - once before the test execution begins.
    Note: these are not affected by various install-lifecycle events, such as launching an app with device.launchApp({delete: true}), which reinstalls the app. A good example of why this might come in handy is Test Butler.
    gpuModeOptional. String Literal (auto | host | swiftshader_indirect | angle_indirect | guest). Supported by android.emulator only.
    A fixed string , which tells in which GPU mode the emulator should be booted.
    headlessOptional. Boolean. false by default. When set to true, it tells Detox to boot an Android emulator with -no-window option, or to not open the iOS Simulator app when running with Android or iOS respectively.
    readonlyOptional. Boolean. Supported by android.emulator only.
    false by default. When set to true, it forces Detox to boot even a single emulator with -read-only option.
    Note: when used with multiple workers, this setting has no effect — emulators will be booted always with -read-only.
    - - + + \ No newline at end of file diff --git a/docs/config/logger/index.html b/docs/config/logger/index.html index 6ea137b047..dfaf0b6dbb 100644 --- a/docs/config/logger/index.html +++ b/docs/config/logger/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -20,7 +20,7 @@ printed via them are formatted and saved as Detox logs.

    logger.options [BunyanDebugStreamOptions]

    Default: varies according to the logger.level.

    Since Detox is using bunyan-debug-stream for printing logs, we decided just to expose all its options for sake of simplicity of customization:

    export interface BunyanDebugStreamOptions {
    colors?: { [key: number]: string | string[] } | false | null;
    forceColor?: boolean;
    basepath?: string;
    basepathReplacement?: string;
    showProcess?: boolean;
    showDate?: boolean | ((time: Date, entry: any) => string);
    showPrefixes?: boolean | ((prefixes: string[]) => string);
    processName?: string;
    maxExceptionLines?: number | 'auto';
    stringifiers?: { [key: string]: Stringifier | null };
    prefixers?: { [key: string]: Stringifier | null };
    indent?: string;
    showLoggerName?: boolean;
    showPid?: boolean;
    showLevel?: boolean;
    showMetadata?: boolean;
    }

    There's one caveat inside logger.options, however – all the custom functions must not use closures! That's because they get eval()-ed every time the test runner spawns a new child worker process. In other words:

    const dontDoThis = date => date.toISOString();

    module.exports = {
    logger: {
    level: 'debug',
    options: {
    // showDate: (date) => dontDoThis(date),
    showDate: (date) => date.toISOString(), /* do this instead */
    },
    },
    // ...
    };
    - - + + \ No newline at end of file diff --git a/docs/config/overview/index.html b/docs/config/overview/index.html index e3074e59ae..ab58c31bbd 100644 --- a/docs/config/overview/index.html +++ b/docs/config/overview/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -41,7 +41,7 @@ That helps if you ever need to share certain settings across multiple mobile projects, e.g.:

    {
    "extends": "@my-org/detox-preset",
    "configurations": {
    // …
    },
    }

    Please note that extends has to be a valid Node module path. Relative module paths will be resolved relatively to the Detox config file which contains that specific extends property, e.g.:

    ~/Projects/my-project/e2e/detox.config.js
    module.exports = { extends: "../base.detox.config.js" };
    // the path resolves to: ~/Projects/my-project/base.detox.config.js

    module.exports = { extends: "./ci.detox.config.js" };
    // the path resolves to: ~/Projects/my-project/e2e/ci.detox.config.js

    The extension chain can have an arbitrary length. All the configs are going to be deep-merged in the logical order: grandparent ← parent ← child.

    Default configuration

    As you might have noticed, you always have to pass -c <configuration name> argument when running Detox tests:

    detox test -c ios.sim.debug

    Technically this is not true. You can omit the configuration name if:

    • there is only one configuration in configurations dictionary;

    • you set some configuration as a default choice via selectedConfiguration property:

      /* @type {Detox.DetoxConfig} */
      module.exports = {
      selectedConfiguration: 'device1+app1',
      devices: {
      device1: { /* ... */ },
      device2: { /* ... */ },
      },
      apps: {
      app1: { /* ... */ },
      app2: { /* ... */ },
      },
      configurations: {
      'device1+app1': {
      device: 'device1',
      app: 'app1',
      },
      /* ... */
      },
      };

    The next articles will be describing each configuration section in detail.

    - - + + \ No newline at end of file diff --git a/docs/config/session/index.html b/docs/config/session/index.html index 20eab20cb9..c68d5f53cd 100644 --- a/docs/config/session/index.html +++ b/docs/config/session/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -21,7 +21,7 @@ it needs to understand which connection belongs to which app.

    Detox forwards sessionId to the app as a launch argument, so the app immediately knows where to connect to.

    caution

    Defining an explicit sessionId means you cannot use multiple workers, since the specified session will become busy for any test worker next to the first one to occupy it.

    {
    "session": {
    "server": "ws://localhost:8099",
    "sessionId": "YourProjectSessionId"
    }
    }

    session.autoStart [boolean]

    Default: true for undefined session.server, and false for defined.

    Controls whether Detox web socket server will be starting automatically. If false, it is assumed that you will be running it independently via detox run-server CLI command.

       "session": {
    + "autoStart": true,
    "server": "ws://localhost:8099",
    "sessionId": "YourProjectSessionId"

    session.debugSynchronization [number]

    Default: 10000.

    Tells Detox how long (in milliseconds) to wait for the app to become idle until it starts querying it for more details.

    {
    "session": {
    "debugSynchronization": 20000
    }
    }

    Detox will be printing the list of busy idling resources every time an action takes more than the specified period, e.g.:

    15:13:07.309 detox[17005] i The app is busy with the following tasks:
    • There are 10 work items pending on the dispatch queue: "Main Queue (<OS_dispatch_queue_main: com.apple.main-thread>)".
    • UI elements are busy:
    - Layers pending animations: 96.
    - Layers needs layout: 173.
    - View needs layout: 74.
    - View needs display: 98.
    - Layers needs display: 90.
    • Run loop "Main Run Loop" is awake.

    To disable this behavior (i.e. querying the app periodically), set the value to 0.

    Seeing logs like these usually indicates certain issues in your application, as mentioned in the Troubleshooting Guide.

    For the most detailed information, refer to the DetoxSync (iOS) Status Documentation.

    - - + + \ No newline at end of file diff --git a/docs/config/testRunner/index.html b/docs/config/testRunner/index.html index 77ff25b55a..5f661a0bae 100644 --- a/docs/config/testRunner/index.html +++ b/docs/config/testRunner/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -24,7 +24,7 @@ When Detox detects the use of this API, it suppresses its own CLI retry mechanism controlled via detox test … --retries <N> or testRunner.retries. The motivation is simple – activating the both mechanisms is apt to increase your test duration dramatically, if your tests are flaky.

    If you wish nevertheless to use both the mechanisms simultaneously, set it to true.

    Jest config

    Jest config generated by detox init is helpful for understanding how Detox integrates with Jest:

    e2e/jest.config.js
    /** @type {import('@jest/types').Config.InitialOptions} */
    module.exports = {
    rootDir: '..',
    testMatch: ['<rootDir>/e2e/**/*.test.js'],
    testTimeout: 120000,
    maxWorkers: 1,
    globalSetup: 'detox/runners/jest/globalSetup',
    globalTeardown: 'detox/runners/jest/globalTeardown',
    reporters: ['detox/runners/jest/reporter'],
    testEnvironment: 'detox/runners/jest/testEnvironment',
    verbose: true,
    };

    All the listed properties vary from mandatory to strongly recommended, and below we'll be explaining why (and, more importantly, how to customize them correctly). If you need to add extra properties, please consult the Configuring Jest article on its official website.

    1. rootDir and testMatch enforce the convention that your tests have .test.js extension and reside somewhere in e2e folder together with the Jest config:

      ├── …
      ├── e2e
      │   ├── feature1.test.js
      │   ├── feature2
      │   │   ├── subfeature1.test.js
      │   │   └── subfeature2.test.js
      │   ├── …
      │   └── jest.config.js
      ├── …
      ├── .detoxrc.js
      └── package.json
    2. testTimeout: 120000 overrides the default value (5 seconds), which is usually too short to complete a single end-to-end test. Two minutes should be safe enough, but you’re welcome to increase or decrease depending on your needs.

    3. maxWorkers: 1 prevents potential over-allocation of mobile devices according to the default Jest strategy. By default, Jest picks cpusCount — 1 which is too much (e.g. 6-core laptop would spawn 11 devices). Note that casually you can override it via forwarding command-line argument --maxWorkers <N>:

      detox test … --maxWorkers 2
      # … jest … --maxWorkers 2

      Change it only if you want to change the default value. For instance, you could use different number of workers depending on the environment, e.g.:

      /** @type {import('@jest/types').Config.InitialOptions} */
      module.exports = {
      // …
      maxWorkers: process.env.CI ? 2 : 1,
      };
    4. globalSetup file is essential as it integrates with Detox Internals API. If you need to set up something in addition, you should wrap it like this:

      module.exports = async () => {
      await require('detox/runners/jest').globalSetup();
      await yourGlobalSetupFunction();
      };
    5. globalTeardown file is essential as it integrates with Detox Internals API. If you need to tear down something in addition, you should wrap it like this:

      module.exports = async () => {
      try {
      await yourGlobalTeardownFunction();
      } finally {
      await require('detox/runners/jest').globalTeardown();
      }
      };
    6. reporters array should always include a reporter from Detox. We reserve right to add anytime some integration code there. Although currently it is rather empty, not having it puts you under risk every time you upgrade Detox versions.

    7. testEnvironment is the most important part of the integration. If you need to add something on top of it, please inherit like shown below:

      e2e/testEnvironment.js
      const { DetoxCircusEnvironment } = require('detox/runners/jest');

      class CustomDetoxEnvironment extends DetoxCircusEnvironment {
      constructor(config, context) {
      super(config, context);
      // custom code
      }

      async setup(config, context) {
      await super.setup(config, context);
      // custom code
      }

      async handleTestEvent(event, state) {
      await super.handleTestEvent(event, state);
      // custom code
      }

      async teardown(config, context) {
      try {
      // custom code
      } finally {
      await super.teardown(config, context);
      }
      }
      }

      module.exports = CustomDetoxEnvironment;
    8. verbose: true disables batching of Jest logs and ensures you see the logs in real time.

    Globals

    Unless behavior.init.exposeGlobals is set to false, Detox exposes its primitives (expect, device, ...) globally, and it will override Jest’s global expect object. If you need to use it nevertheless, import it explicitly:

    import jestExpect from 'expect';

    Mocking

    Don’t use jest.mock() or any other similar mocking mechanism. Follow our Mocking guide instead.

    Parallel Test Execution

    Detox relies on test runners to execute tests in parallel.

    If you’re using Jest under the hood, the easiest way is to specify -w, --maxWorkers, e.g.:

    detox test … --maxWorkers 2

    In the other cases, consult your test runner documentation.

    Forwarding CLI arguments

    If Detox does not recognize CLI arguments you pass, it forwards them as-is to the underlying test runner, e.g.:

    detox test -c ios.sim.debug --key1 value1 --key2
    # DETOX_CONFIGURATION=ios.sim.debug jest --key1 value1 --key2
    #
    # ● Unrecognized CLI Parameters:
    #
    # Following options were not recognized:
    # ["key1", "key2"]
    #
    # CLI Options Documentation:
    # https://jestjs.io/docs/cli

    Therefore, if test runner rejects such arguments, it is your responsibility to fix that.

    Since there might be argument clashes between Detox and a test runner, you can use -- (double dash) to forward the arguments as-is, e.g.:

    detox test -c ios.sim.debug -- --help
    # DETOX_CONFIGURATION=ios.sim.debug jest --help
    # Usage: jest [--config=<pathToConfigFile>] [TestPathPattern]
    #
    # Options:
    # …

    1. Detox has a few hard-coded default values for Jest: testRunner.args.$0 and testRunner.inspectBrk hook. Also detox test CLI is aware of Jest boolean arguments (e.g. -i, --runInBand, --bail, etc.), and it can auto-fix ambiguous commands like detox test --runInBand e2e/starter.test.js --bail. We're looking forward to make the code even more agnostic, but currently these caveats are worth mentioning for the developers of third-party test runner integrations.
    - - + + \ No newline at end of file diff --git a/docs/contributing/code-of-conduct/index.html b/docs/contributing/code-of-conduct/index.html index 775e015d8b..9a3b9c8725 100644 --- a/docs/contributing/code-of-conduct/index.html +++ b/docs/contributing/code-of-conduct/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -68,7 +68,7 @@ standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals.

    Consequence: A permanent ban from any sort of public interaction within the community.

    - - + + \ No newline at end of file diff --git a/docs/contributing/code/building-and-testing/index.html b/docs/contributing/code/building-and-testing/index.html index 375a9c284b..b1d0e0fc72 100644 --- a/docs/contributing/code/building-and-testing/index.html +++ b/docs/contributing/code/building-and-testing/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -24,7 +24,7 @@ List of available configurations can be found under detox/test/e2e/detox.config.js.

    For example, to build the Detox test app for iOS in release mode, run:

    cd detox/test
    detox build --configuration ios.sim.release

    End-to-End Tests

    To run the end-to-end tests (after building the app), use the test command of the Detox CLI.

    For example, to run the end-to-end tests for iOS in release mode, run:

    cd detox/test
    detox test --configuration ios.sim.release

    To run in Android release mode, run:

    cd detox/test
    detox test --configuration android.emu.release
    note

    Mind that on Android, Detox expects a specific AVD with a specific name to be available on your computer. Be sure to install such an AVD, beforehand.

    Integration Tests

    Besides unit tests and end-to-end tests, we have some middle ground integration tests, which typically run Detox in a custom headless-like mode (i.e. stubs replace devices). Those tests typically execute Detox from a command line in that mode, and then do some post-processing of the results. We use Jest for running our integration tests.

    The integration reside under a dedicated directory alongside Detox's the self-test app's code.

    Run the following command to run the integration tests:

    cd detox/test
    npm run integration

    Linting

    We use ESLint for linting our JavaScript code.

    You can run the linter locally using the following command (under detox/test):

    npm run lint

    We also test our types using the following command:

    npm run test:types

    Running the CI Scripts Locally

    On our CI, we test our changes on both iOS and Android, and we lint-check our code. You can run the same scripts we run on our CI locally, to ensure your changes are passing the tests (under the project's root directory):

    npm run ci.ios
    npm run ci.android

    Refer to the scripts scripts/ci.ios.sh and scripts/ci.android.sh to see how we run the tests on our CI.

    - - + + \ No newline at end of file diff --git a/docs/contributing/code/example-projects/index.html b/docs/contributing/code/example-projects/index.html index 1ddc0d4684..62dc88f2b4 100644 --- a/docs/contributing/code/example-projects/index.html +++ b/docs/contributing/code/example-projects/index.html @@ -11,13 +11,13 @@ - - + +
    Version: 20.x

    Example Projects

    Explore various example projects hosted in this monorepo to understand real-world usage and testing with Detox.

    • examples/demo-react-native-jest: Demonstrates Detox usage in a React Native app project.
    • examples/demo-native-ios: Illustrates Detox usage in a native (non-React Native) iOS app.
    • examples/demo-native-android (broken): Illustrates Detox usage in a native (non-React Native) Android app.
    • examples/demo-pure-native-android: Illustrates the subsidiary Detox-Native project.

    To run end-to-end tests associated with these projects, refer to the project-specific READMEs.

    - - + + \ No newline at end of file diff --git a/docs/contributing/code/overview/index.html b/docs/contributing/code/overview/index.html index 88caef34da..e68903dfe9 100644 --- a/docs/contributing/code/overview/index.html +++ b/docs/contributing/code/overview/index.html @@ -11,15 +11,15 @@ - - + +
    Version: 20.x

    Code Changes Overview

    Welcome to the code changes section! As a contributor, it's essential to understand the project's goals and adhere to its code of conduct. Before contributing, please review any existing issues related to your work, ensure your code is well-documented, and has adequate test coverage. It's also important that your code is compatible with the project's supported platforms and their versions.

    Our collaborative workflow is simple:

    1. Identify an Issue: If not exists already, create an issue for new features or bug reports, outlining your proposal or the identified problem.
    2. Propose a Solution: Open a pull request with a proposed solution to the issue. On complex issues, it's recommended to discuss your approach with the community and maintainers before submitting a PR.
    3. Engage in Review: A collaborator will review your pull request. Reviews from other contributors are also encouraged.
    4. Merge and Release: After the review, a collaborator will merge your contribution, typically releasing it in the next version of the project.

    We use GitHub for managing pull requests, conducting code reviews, and tracking issues.

    The code review process is central to our collaboration. Every contribution must go through a review before merging to maintain the quality of our codebase. As a contributor, being willing to discuss your work, respond to feedback, and work with the community is key to improving the project and creating a positive environment for all contributors.

    Repository Structure

    Our GitHub repository is a monorepo, which means it contains multiple Detox-related projects and packages.

    The main package is the Detox framework, which is the core of the project. It contains the native code for iOS and Android, as well as the JavaScript code. The other projects are the Detox CLI, the Detox test app, example apps, and the Detox documentation website.

    Here's a high-level overview of the repository structure:

    • 📁 detox-cli - The CLI for Detox (e.g., detox init, detox test, read more about our CLI docs)
    • 📁 detox-copilot - Detox plugin that leverages large language models (LLM) to seamlessly invoke Detox actions (work in progress)
    • 📁 detox - The Detox framework
      • 📁 android - The Android native code, alongside native unit tests
      • 📁 ios - The iOS native code, including its native submodules (e.g., DetoxSync)
      • 📁 test - The Detox self-test app: A full-feature React Native app for end-to-end testing Detox itself
        • 📁 src - The app's JavaScript code
        • 📁 e2e - The Detox self-tests
        • 📁 integration - Detox integration self-tests
      • 📁 local-cli - Local CLI commands for Detox development (e.g., detox rebuild-framework-cache, which rebuilds the iOS framework)
      • 📁 runners - The Detox runners, which are used to run the tests
      • 📁 scripts - Scripts for building the framework for publishing
      • 📁 src - The JavaScript source code of Detox. The include bundled JavaScript unit tests
    • 📁 website - The documentation website of Detox (read more about our documentation site docs)
    • 📁 docs - The documentation of Detox, written in Markdown and published on the website
    • 📁 examples - Example apps for Detox (for more information, check the list of example projects)
    • 📁 scripts - Scripts for building and testing Detox
    - - + + \ No newline at end of file diff --git a/docs/contributing/code/reviewing-pull-requests/index.html b/docs/contributing/code/reviewing-pull-requests/index.html index 2337790e03..cb2ba46d15 100644 --- a/docs/contributing/code/reviewing-pull-requests/index.html +++ b/docs/contributing/code/reviewing-pull-requests/index.html @@ -11,13 +11,13 @@ - - + +
    Version: 20.x

    Review a Pull Request

    Reviewing a PR is an important part of the contribution process. It ensures the quality of the codebase and provides an opportunity for the community to collaborate and learn from each other.

    note

    Reviewers should refer to the Submitting Pull Requests page to understand the guidelines the contributor followed when creating the PR. This will provide context and ensure a thorough review process.

    Understand the Changes

    • Ensure alignment with the project’s coding standards and overall architecture.
    • Read the provided description and any linked issues for context.

    Provide Constructive Feedback

    Community members can provide valuable feedback on PRs, especially if they have experience with the feature or area of the codebase.

    • Be respectful and courteous.
    • Offer code snippet suggestions if something could be done better.
    • Request changes if necessary and provide clear, constructive feedback.

    Review the Code

    Experienced developers are encouraged to review PRs and provide feedback. This is a great way to learn more about the project and collaborate with the community.

    You can review the code by following these requirements:

    • Alignment with coding standards and architectural guidelines.
    • Adequate test coverage (unit, integration, and e2e).
    • Ensure the documentation reflects the changes in the PR, if necessary. Refer to the Documentation Changes page for guidelines.
    • Meaningful and semantically correct commit messages.

    Merging Pull Requests

    Every PR requires approval from a maintainer before it can be merged.

    However, we encourage the community to review and provide feedback on PRs. Helping with the review process not only improves the quality of the code changes, but also helps the maintainers by reducing the workload.

    - - + + \ No newline at end of file diff --git a/docs/contributing/code/setting-up-the-dev-environment/index.html b/docs/contributing/code/setting-up-the-dev-environment/index.html index ad29c18d2e..dccc3d2dea 100644 --- a/docs/contributing/code/setting-up-the-dev-environment/index.html +++ b/docs/contributing/code/setting-up-the-dev-environment/index.html @@ -11,13 +11,13 @@ - - + +
    Version: 20.x

    Setting up the Development Environment

    This document guides you through setting up your development environment to start contributing to our codebase.

    Prerequisites

    Please complete our Introductory environment setup guide before proceeding. This ensures you have the necessary tools and dependencies installed in order to run Detox tests, which is a fundamental step before being able to contribute to the project itself.

    Node.js

    We recommend using nvm or nvm-windows to manage your Node.js versions. However, you can find our required Node.js version in the .nvmrc file and install it using your preferred method or from the official download page.

    Currently, we require lts/iron (Node.js 20.x) for our development environment.

    tip

    The exhaustive list of LTS codenames (e.g. lts/iron) can be found at CODENAMES.md in the Node.js repository.

    Setting Up The Monorepo Management

    Our repository is a monorepo, which means it contains multiple Detox-related projects and packages. Read more about our repository structure.

    To set up the monorepo locally, follow these steps:

    Install the monorepo management tool, lerna:

    npm install lerna@6.x.x --global

    Clone the repository and navigate to the project directory:

    git clone git@github.com:wix/Detox.git
    cd detox
    git submodule update --init --recursive

    From the project's root directory, install and link the internal projects:

    lerna bootstrap

    Installing Common Dependencies

    React-Native CLI

    react-native-cli is a command line interface for React Native.

    npm install react-native-cli --global

    Watchman

    Watchman is a tool by Facebook for watching changes in the filesystem.

    brew install watchman

    xcpretty

    xcpretty is a fast and flexible formatter for xcodebuild.

    gem install xcpretty
    - - + + \ No newline at end of file diff --git a/docs/contributing/code/submitting-pull-requests/index.html b/docs/contributing/code/submitting-pull-requests/index.html index 294e096793..c0d7327c45 100644 --- a/docs/contributing/code/submitting-pull-requests/index.html +++ b/docs/contributing/code/submitting-pull-requests/index.html @@ -11,14 +11,14 @@ - - + +
    Version: 20.x

    Submitting Pull Requests

    note

    Before creating a PR, it's recommended to consult with the Detox collaborators. Request a design review or assistance with planning the tests to ensure alignment with project goals.

    Contact us on our Discord Server or open an issue on GitHub.

    Fork the Repository

    • Fork the repository to your own GitHub account.
    • Create a new branch from the master branch for your work.

    Test Your Changes

    Being a testing framework, Detox is a highly self-tested project. Be sure to add/fix test coverage over your work, by running the various test flavors associated with your changes. You can review them, here.

    Modify Documentation

    If your changes affect the public API, update the documentation accordingly to reflect your changes. Refer to the Documentation Changes page for guidelines.

    Commit Message Guidelines

    Write descriptive, meaningful commit messages that follow the Conventional Commits format, specifying the type of change, the scope, and a concise description. For example:

    fix(ios): resolve crash on scrolling in iOS 17.0
    feat(android): add new API for setting the device locale
    test: update unit tests for new utility function

    More details on good commit messages can be found here.

    Open the Pull Request

    • Fill in the provided PR template fields on GitHub.
    • Provide a clear description of your changes and any necessary context.
    - - + + \ No newline at end of file diff --git a/docs/contributing/documentation/index.html b/docs/contributing/documentation/index.html index 8c1c8e918d..2d4975a236 100644 --- a/docs/contributing/documentation/index.html +++ b/docs/contributing/documentation/index.html @@ -11,14 +11,14 @@ - - + +
    Version: 20.x

    Documentation Site

    Contributions towards enhancing our documentation are highly valued in the Detox community. Clear, concise, and comprehensive documentation enables users to understand and utilize the project more effectively.

    We appreciate all contributions, from correcting typos to creating new documentation pages.

    Getting Started

    Our documentation website is developed using Docusaurus. To set up a local version of the website for editing, follow these steps:

    cd website
    npm install
    npm start

    Making Updates

    To modify an existing page, find the associated markdown file in the docs/ directory and make the required changes. To introduce a new page, create a markdown file in docs/ and link to it in website/sidebars.json.

    Deploying Changes

    Automatic updates to the website occur with each commit to the master branch, with these changes reflected under the Next version. The process of tagging and locking documentation to a specific version is automated and coincides with each Detox release.

    If there's a need to update the documentation of a particular version, modify the associated files and code located under website/versioned_docs/version-<version>/ and website/versioned_sidebars/version-<version>-sidebars.json.

    Modifying Old Versions

    To update an older version with the latest changes:

    1. Remove the desired version from versions.json.
    2. Execute npm run docusaurus docs:version <version>.

    Reviewing Style Modifications

    If you're making changes to the stylesheets, use this demo page to visually inspect the impact of your changes and avoid unintentional visual regressions.

    - - + + \ No newline at end of file diff --git a/docs/contributing/feature-requests/index.html b/docs/contributing/feature-requests/index.html index ea023db1ef..49cda7628d 100644 --- a/docs/contributing/feature-requests/index.html +++ b/docs/contributing/feature-requests/index.html @@ -11,13 +11,13 @@ - - + +
    Version: 20.x

    Feedback and Suggestions

    Open dialogue and feedback, particularly feature requests, play an invaluable role in open-source communities like Detox. They provide insights into user preferences and requirements, aiding in the refinement and enhancement of the project.

    Detox project provides various platforms for feedback: GitHub Issues, Twitter, and Discord.

    Keep in mind that feedback is varied, including feature suggestions, improvements, identification of missing functionality, and support requests. Each type of feedback has a preferred method of submission.

    Giving Feedback

    Follow these tips to deliver clear, actionable feedback:

    • Constructive Criticism: Frame your feedback in a positive light, understanding the perspective of the project maintainers.
    • Comprehensive Details: Include as much relevant information as possible to help maintainers understand the context and use case.
    • Clarity and Respect: Make your feedback specific, clear, and respectful, ensuring it is actionable for the maintainers.
    • Guidelines: Adhere to the below suggestions for each type of feedback.

    Suggesting Features

    When suggesting a new feature, remember to provide thorough information, such as examples, screenshots, and code snippets, to communicate your idea effectively.

    Just as in general feedback, make sure your feature request is:

    • Specific: Clearly describe the feature you wish to see implemented.
    • Detailed: Offer as much context as possible, including use cases, examples, and why this addition would benefit the community.
    • Respectful: Remember, the project maintainers or contributors are not obligated to implement your request. Be polite and respectful in your request.

    By making your feedback as clear and detailed as possible, you'll greatly assist the maintainers in understanding and potentially implementing your suggestion.

    - - + + \ No newline at end of file diff --git a/docs/contributing/index.html b/docs/contributing/index.html index 738e41e1dd..7db7eda5a8 100644 --- a/docs/contributing/index.html +++ b/docs/contributing/index.html @@ -11,13 +11,13 @@ - - + +
    Version: 20.x

    Contributing to Detox

    Detox, an open-source project, greatly values community involvement. Whether you're a mobile developer, QA specialist, or an open source enthusiast, your contribution could significantly enhance the reliability, user experience, and development process of mobile applications.

    Our Code of Conduct

    To ensure an inclusive, safe environment for all contributors, we adhere to the Contributor Covenant code of conduct. This well-recognized code provides clear guidelines for respectful behavior.

    Ways to Contribute

    All contributions, regardless of size, can help shape Detox. We welcome:

    • Questions: Your inquiries can help identify gaps in our documentation and benefit all users.
    • Answers: Assisting other Detox users by providing guidance or responses to their questions.
    • Bug Reports: Help us identify and resolve Detox issues.
    • Feature Suggestions: Your ideas for new features can help us improve Detox according to user needs.
    • Code Contributions: Directly contribute by fixing bugs, adding features, or improving our codebase.
    • Code Reviews: Help maintain the quality of our codebase by reviewing others' contributions.
    • Documentation Enhancements: Improve Detox documentation from user guides to API references.
    • Content Creation: Share your knowledge of Detox through blog posts, tutorials, videos, and more. We're always excited to share your content on our Twitter account and Discord server.

    Your active participation helps build a vibrant community dedicated to improving mobile development.

    Engaging in the Community

    Join our Discord server to discuss Detox, ask questions, and provide help. Follow our Twitter account for updates on the project.

    Becoming an active community member is a great way to start contributing to Detox. It provides familiarity with the project, helps identify opportunities to contribute, and allows guidance from other contributors. The more you engage, the more recognition your contributions receive and the greater impact you can make on the project's direction.

    Appreciation and Recognition

    All our contributors deserve recognition. We express our gratitude by featuring them in our Release Notes.

    Core Contributors Program

    We plan to launch a "Core Contributor" program for individuals who have significantly contributed to Detox and shown deep understanding of the project while being active in the community. Core contributors will be invited to a private Discord channel for exclusive discussions and will receive a distinguished role on our Discord server.

    - - + + \ No newline at end of file diff --git a/docs/contributing/questions/answering-questions/index.html b/docs/contributing/questions/answering-questions/index.html index c15023062d..744d70373a 100644 --- a/docs/contributing/questions/answering-questions/index.html +++ b/docs/contributing/questions/answering-questions/index.html @@ -11,14 +11,14 @@ - - + +
    Version: 20.x

    Answering Questions

    Contributing answers is an invaluable part of supporting the Detox community. By sharing your knowledge and experience, you help others learn and grow, and you also contribute to enhancing Detox for the entire community.

    Different Ways to Answer

    Answering a question is not limited to providing a solution in the comments. Sometimes, you may not have a solution, but you can still contribute by:

    • Guide towards a solution: If unsure about an answer, provide guidance on where to look, including relevant documentation or resources.
    • Request more information: Ask for more detail if required to better address the question. For example, you may ask for code snippets, screenshots, or reproducible examples.
    • Refer to existing answers: Link an already answered question if applicable.

    Guidelines for Writing Clear Answers

    When answering questions, follow these guidelines to ensure your answers are clear and actionable:

    • Be specific: Try to pinpoint what exact information you need to effectively answer the question. General requests such as "Please share more details" are not very helpful.
    • Maintain respect: Ensure your communication is always polite and contextual. When asking for more information, it's better to explain why it's needed so that the person asking understands the relevance.
    • Completeness: Make sure to provide a detailed answer that includes all relevant information, such as code snippets, screenshots, and examples. This practice helps others understand your answer and apply it to their use case.
    In a Nutshell

    When you're answering a question, remember to be specific, clear, and respectful. By providing detailed and well-thought out response, you will play an important role in contributing to and enhancing the knowledge of our community.

    - - + + \ No newline at end of file diff --git a/docs/contributing/questions/asking-questions/index.html b/docs/contributing/questions/asking-questions/index.html index 548e2efb75..93d38770d9 100644 --- a/docs/contributing/questions/asking-questions/index.html +++ b/docs/contributing/questions/asking-questions/index.html @@ -11,13 +11,13 @@ - - + +
    Version: 20.x

    Asking Questions

    Posting queries on public forums increases visibility and chances of getting an answer, and it also helps others with similar issues. However, it's essential to ask questions the right way to get the right answers.

    In case you were able to resolve your issue, consider sharing your solution with the community. By doing so, you contribute to enhancing Detox for the entire community.

    Before Asking

    In case you're facing an issue, consider the following steps before posting a question:

    • Suspect a bug? Refer to our Reporting Bugs guide to determine if you've encountered a Detox bug and how to report it.
    • Search for existing answers that may have addressed your question already. Below, we've listed the right platforms to ask (and search) questions.
    • Review our documentation thoroughly for any related information. Use the search bar in the top right corner to streamline your search.

    If an existing answer doesn't fully address your question, feel free to ask a follow-up in the same thread if comment-enabled or create a new question, linking back to the original one if possible.

    Where to Ask

    If you can't find an answer to your question, you can ask it in the following ways:

    Pro Tip

    When posting a question, ensure to include all relevant information, such as code snippets, screenshots, and examples. This practice helps others understand your query and provide comprehensive answers.

    - - + + \ No newline at end of file diff --git a/docs/contributing/reporting-bugs/index.html b/docs/contributing/reporting-bugs/index.html index 7567ddbf56..4f7e448b3f 100644 --- a/docs/contributing/reporting-bugs/index.html +++ b/docs/contributing/reporting-bugs/index.html @@ -11,15 +11,15 @@ - - + +
    Version: 20.x

    Reporting Bugs

    Encountering a bug? Your detailed report is key for us to identify and rectify the issue.

    Before reporting a bug, please review the following guidelines.

    Search for Existing Issues

    Before creating a new issue, search for existing issues to see if the bug has already been reported. If you find an existing issue, add a comment to it with any additional information you have.

    Create a Bug Report

    If you can’t find an existing issue, create a new one. When creating a bug report, follow these guidelines:

    1. Follow the Template: While creating a bug report on GitHub, adhere to the provided template for creating a clear and concise report.
    2. Reproduction Steps: Providing a reproduction example is essential.
    3. Artifacts: Include screenshots, logs, visibility artifacts, and any other relevant information. Be ready to provide more information upon request.
    4. Detailed Description: Avoid creating issues with brief descriptions or general error messages. Providing a thorough description and context is vital.
    Tip

    Creating a minimal code reproduction is crucial as it helps other contributors and maintainers understand and investigate the issue better. Issues without a reproduction are less likely to be addressed.

    - - + + \ No newline at end of file diff --git a/docs/demo/index.html b/docs/demo/index.html index 6ada59e04a..3ec113a5b3 100644 --- a/docs/demo/index.html +++ b/docs/demo/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -23,7 +23,7 @@ Fusce tempor nisl euismod rhoncus magna eget, pellentesque auguerhoncus magna eget, pellentesque augue Fusce tempor nisl euismod, rhoncus pellentesques magna tempus augue mollis.

    Donec in nulla AUCTOR_SED_MALESUADA (or AMALESUADA_MASSA) eros posuere Curabitur elementum mi massa, non molestie ipsum velit vel:

    $ANDACISUS_SED_EGET/rhoncus/tempus -augue-mollis

    Syntax highlighting section

    npm

    npm install "dummy_package" --save

    Shell

    # Check the exit status of the last command
    if [ $? -eq 0 ]; then
    echo "dummy_command succeeded"
    else
    echo "dummy_command failed"
    fi

    JSX

    src/DummyExample.jsx
    import { DummyButton } from 'dummy-react-library';

    // A dummy component
    function DummyExample() {
    const [dummyState, setDummyState] = React.useState(false);

    return (
    <DummyContainer>
    <DummyButton onClick={() => setDummyState(!dummyState)}>
    Click me
    </DummyButton>
    </DummyContainer>
    );
    }

    Java

    package com.dummy;

    @Test
    public class DummyClass {
    // A dummy comment
    public static void main(String[] args) {
    int dummyVariable = 5;
    for (int i = 0; i < 10; i++) {
    dummyVariable += i;
    System.out.println("The dummy value is " + dummyVariable);
    }
    }
    }

    diff

       apps: {
    'dummy.debug': {
    type: 'dummy.app',
    - binaryPath: 'dummy/build/Products/${conf}-dummyplatform/YOUR_APP.dummy',
    + binaryPath: 'dummy/build/Products/${conf}-dummyplatform/YOUR_APP.dummy',
    - build: 'dummy_command -workspace dummy/YOUR_APP.dummyworkspace -scheme YOUR_APP -configuration ${conf} -sdk dummyplatform -derivedDataPath dummy/build'
    + build: 'dummy_command -workspace dummy/example.dummyworkspace -scheme example -configuration ${conf} -sdk dummyplatform -derivedDataPath dummy/build'

    JSON

    {
    "items": {
    "object1": {
    "property1": "dummy_type",
    "property2": "dummy_device",
    "property3": ["dummy_path/to/dummy_file.dummy"]
    }
    }
    }

    YAML

    actions:
    - dummy install example
    - push_dummytext: "*"

    - dummy install example --save global
    # Lorem ipsum dolor sit amet, consectetur SampleCo is using ($DUMMY/lorem-text)

    Thanks for checking with this visual regression suite!

    - - + + \ No newline at end of file diff --git a/docs/guide/android-dev-env/index.html b/docs/guide/android-dev-env/index.html index 3902b40ab6..48427326cc 100644 --- a/docs/guide/android-dev-env/index.html +++ b/docs/guide/android-dev-env/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -21,7 +21,7 @@ We highly recommend working with the latest version, however, in case you are working with an old version, and this command fails, try this path instead.

    The command might also fail if the command-line tools aren’t installed. To install the tools using Android Studio, click Tools > SDK Manager and select the SDK Tools tab. Ensure that Android SDK Command-line Tools (latest) is checked and applied.

  • Install an emulator image without Google APIs:

    $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager "system-images;android-28;default;x86_64"
    $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --licenses
    • With ;android-28;, we assumed SDK 28 here, but other APIs are supported just the same.
    • The ;default; part replaces ;google_apis;, which is the default, and is what matters here.
    • If you are running on a M1 you must install an arm64 architecture i.e. system-images;android-28;default;arm64-v8a
    • To get a list of available images, run $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --list
  • Create an emulator (i.e. AVD - Android Virtual Device):

    $ANDROID_HOME/cmdline-tools/latest/bin/avdmanager create avd -n Pixel_API_28_AOSP -d pixel --package "system-images;android-28;default;x86_64"
    • Pixel_API_28_AOSP is just a suggestion for a name. Any name can work here, even Pixel_API_28 - but you might have to delete an existing non-AOSP emulator, first. In any case, the name used in Detox configuration (typically in package.json) should be identical to this one.
    • -d pixel will install an emulator with the specs of a Pixel-1 device. Other specs can be used. Running $ANDROID_HOME/cmdline-tools/latest/bin/avdmanager list devices will list all available device specs.
    • --package is the most important argument: be sure to use the same value as you did in part 2, above, with ;default;.

    Run avdmanager create --help for the full list of options.

  • Launch the emulator:

  • This isn’t mandatory, of course, but it’s always good to launch the emulator at least once before running automated tests. The section below will discuss optimizing emulators bootstrapping.

    At this point, you should be able to launch the emulator from Android Studio, but that can also be done from a command line console, as explained in the cheatsheet below.

    See this guide for full details on the emulator executable.

    Installing from Android Studio

    We won’t go into all the details but once the proper image is installed using the sdkmanager, the option becomes available in the AVD creation dialog (see Target column of the Virtual Device Configuration screen below):

    SDK manager in AS

    Install AOSP in AS

    Also, be sure to upgrade your emulator executable to the latest version: If it isn’t up-to-date, you will get an "Update Available" message under the status column, instead of "Installed":

    Upgrade emulator in AS

    Note: It is OK if the emulator’s version is not aligned with the SDK or platform-tools’ version you currently have installed (e.g. 30.x.x vs. SDK 29)

    Emulator Quick-Boot

    If the system allows saving a state (for example, in personal computers or a CI system that can start from prebaked images you can configure), we highly and strongly recommend setting up quick-boot snapshots for any emulator that is used for testing automation.

    Quick-boot saves significant time otherwise wasted when emulators cold-boot from scratch. The concept becomes more prominent in environments capable of parallel-executing tests in multiple, concurrently running emulators (as when Detox is run with multiple Jest workers).

    This is something that we actually recommend applying in the emulator itself rather than using command-line, but we’ll include both options.

    In any case, the general principle we’re going to instruct is as follows:

    1. Enable auto-save for an installed / running emulator.
    2. Launch it, and, when stable, terminate – a snapshot is saved as a result.
    3. Disable auto-save, so that future, test-tainted snapshots won’t be saved.

    Setting up a quick-boot snapshot from the Emulator

    Start by launching a freshly baked emulator. Wait for it to go stable.

    When running, go to settings (3 dots in the sidebar) > Snapshots > Settings tab. If not already set, select Yes in the auto-save option. This should prompt for a restart – choose Yes. The emulator should restart and save a snapshot.

    Emulator auto-save menu

    Do this again after the emulator is back up, but set No in the auto-save option. Allow it to restart yet again: it will immediately boot into the state saved as a snapshot earlier.

    You can also try these as alternative sources for this:

    Setting up a quick-boot snapshot from command-line

    This is a bit more difficult, but is also applicable even for UI-less machines.

    1. Locate the AVD’s config.ini

    2. Using your favorite text editor, either change or add these key-value sets:

      fastboot.chosenSnapshotFile=
      fastboot.forceChosenSnapshotBoot=no
      fastboot.forceColdBoot=no
      fastboot.forceFastBoot=yes

    Empirically, forceFastBoot=yes and forceColdBoot=no should be enough.

    1. Under the AVD’s home directory, either create or edit yet another ini file called quickbootChoice.ini with the following content:

      saveOnExit = true
    2. Now that everything is in place, launch your emulator once (in verbose mode) and wait for it to fully load. Then, shut it down, and make sure the state has been saved.

    3. Last but not least, go back to quickbootChoice.ini and now switch to:

      saveOnExit = false

    Test Butler Support (Optional)

    If, when setting up your work environment, you’ve selected Google emulators with an AOSP image as the test target - as recommended, we strongly encourage you would also integrate Test Butler: in the very least - in order to suppress crash and ANR dialogs. They are a soft spot in UI testing on Android, all around, as - when displayed,they make the UI entirely inaccessible (and thus cause tests to fail in bulks).

    Setting Test Butler up for working with Detox is a bit different than explained in their guides. The process, as a whole, is twofold:

    1. Preinstalling the test-butler-app APK onto the test device.
    2. Integrating the test-butler-lib into your own test APK, and initializing it in a custom test runner (as explained).

    The library part can be easily achieved as explained there (i.e. by using Gradle’s androidTestImplementation). Same goes for initialization. As for the APK, the suggested usage of Gradle’s androidTestUtil is scarce when running with Detox (i.e. non-native instrumentation tests). Here’s what to do instead.

    For a complete and thorough coverage of the Test Butler integration with Detox, consider going over our blogpost on CI execution on medium.

    Solution 1: Prebaked Images

    If you have control over the emulators’ snapshots, simply download (see test-butler’s guide) and install the test-butler APK once (e.g. use adb install -r -t path/to/test-butler-app.apk), and save an updated version of the snapshot. This is the best solution.

    Note: you will have to reiterate this if you upgrade to a newer version of Test-Butler, in the future.

    Solution 2: Dynamic Installation

    Assuming you have the APK available in the system, you can dynamically have Detox automatically install it in all of the running target-emulators by utilizing utilBinaryPaths in your Detox configuration. Example:

    {
    "devices": {
    "emulator.oss": {
    "type": "android.emulator",
    "device": "...",
    "utilBinaryPaths": ["relative/path/to/test-butler-app-2.2.1.apk"]
    }
    }
    }

    Refer to our configuration guide for further details on utilBinaryPaths.

    As per making the APK available - for that, we have no really good solution, for the time being (but it’s in the works). A few options might be:

    a. In a custom script, have it predownloaded from Maven directly, as suggested in the Test Butler guide. For example (on a Mac / Linux):

    curl -f -o ./temp/test-butler-app.apk https://repo1.maven.org/maven2/com/linkedin/testbutler/test-butler-app/2.2.1/test-butler-app-2.2.1.apk

    Should you decide to go this path, we recommend you add ./temp/test-butler-app.apk to the relevant .gitignore.

    b. (Discouraged) Add it to your source control (e.g. git), as part of the repository.

    Disclaimer

    After upgrading the emulator’s binary to a newer version, it usually considers all existing snapshots invalid.

    This can be addressed by deleting and recreating the snapshots as explained, or by recreating the AVD’s altogether.

    Cheatsheet

    Locating the AVD’s home directory

    Each AVD generated by the Android tools gets its own directory where associated content is stored:

    • Configuration file (i.e. config.ini)
    • Snapshot images
    • SD-card content

    to name a few.

    On Mac machines, the AVD directory typically maps to:

    $HOME/.android/avd/<AVD Name>.avd/

    (for example: /Users/root/.android/avd/Pixel_API_28_AOSP.avd/)

    The path should be similar on Linux machines, even though $HOME isn’t /Users/root but typically /home/root (for example: /home/root/.android/avd/Pixel_API_28_AOSP.avd/).

    Booting an emulator via command-line

    • The following examples apply for both Mac and Linux, and should be similar on Windows.
    • They assume the emulator’s name is Pixel_API_28_AOSP. If it isn’t, adjust the names accordingly:

    Shortcut for booting a verbose, visible emulator in a GUI supporting system

    $ANDROID_HOME/emulator/emulator -verbose @Pixel_API_28_AOSP &

    Shortcut for booting a verbose, headless emulator in a UI-less Linux system

    $ANDROID_HOME/emulator/emulator -verbose -no-window -no-audio -gpu swiftshader_indirect @Pixel_API_28_AOSP &

    Verifying the emulator’s quick-boot snapshot has been saved

    If you’ve run your emulator in verbose mode from a shell, it’s easy to verify the state has been saved by following the logs. In particular, when shutting the emulator down, this log asserts the state has been saved:

    emulator: Saving state on exit with session uptime 9423 ms

    as a reference, when the state is not saved, the typical output is:

    emulator: WARNING: Not saving state: RAM not mapped as shared

    It can be a result of an improper configuration, or an emulator launch where the -read-only argument was provided.

    - - + + \ No newline at end of file diff --git a/docs/guide/cucumber-js-integration/index.html b/docs/guide/cucumber-js-integration/index.html index b3a37d6542..4558acf108 100644 --- a/docs/guide/cucumber-js-integration/index.html +++ b/docs/guide/cucumber-js-integration/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -24,7 +24,7 @@ if you manage Detox Internals API from Cucumber.js hooks.

    In your init.js or init.ts file, please import detox/internals on top of the file:

    import detox from 'detox/internals'

    Also import the hooks we'll be using just a bit later:

    import { Before, BeforeAll, AfterAll, After,  ITestCaseHookParameter } from '@cucumber/cucumber'

    Define the earliest Cucumber.js hook, BeforeAll, where you’ll initialize Detox and launch the app:

    BeforeAll({ timeout: 120 * 1000 }, async () => {
    await detox.init()
    await device.launchApp()
    })

    You must also tell Detox explicitly when Cucumber.js starts a test via calling detox.onTestStart() inside Before hook. Otherwise, Detox won't be able to start recording logs, screenshots, videos, and other artifacts:

    Before(async (message: ITestCaseHookParameter) => {
    const { pickle } = message
    await detox.onTestStart({
    title: pickle.uri,
    fullName: pickle.name,
    status: 'running',
    })
    })

    The symmetrical step is to inform Detox that the current test is over via calling detox.onTestDone() inside After hook. Otherwise, Detox won't be able to save logs, screenshots, videos, and other artifacts:

    After(async (message: ITestCaseHookParameter) => {
    const { pickle, result } = message
    await detox.onTestDone({
    title: pickle.uri,
    fullName: pickle.name,
    status: result ? 'passed' : 'failed',
    })
    })

    After the tests are over, you should call detox.cleanup() inside AfterAll hook so that Detox can clean up all the resources it has allocated:

    AfterAll(async () => {
    await detox.cleanup();
    })

    For more information on Cucumber.js please check out this documentation.

    - - + + \ No newline at end of file diff --git a/docs/guide/developing-while-writing-tests/index.html b/docs/guide/developing-while-writing-tests/index.html index 4fdc0a5759..4370ef4c93 100644 --- a/docs/guide/developing-while-writing-tests/index.html +++ b/docs/guide/developing-while-writing-tests/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -24,7 +24,7 @@ we recommend adding --reuse flag to save your time when running the tests.

    detox test -c ios.sim.debug --reuse # or android.emu.debug

    By default, Detox re-installs the app before picking every next test suite which is redundant in this situation since your app code changes are delivered via network with React Native packager, and the app binary itself does not change.

    You should not use this option if you made native code changes or if your app relies on local ("disk") storage.

    - - + + \ No newline at end of file diff --git a/docs/guide/genymotion-saas/index.html b/docs/guide/genymotion-saas/index.html index 08410af137..e7510e1272 100644 --- a/docs/guide/genymotion-saas/index.html +++ b/docs/guide/genymotion-saas/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -51,7 +51,7 @@ that reduces your chances to forget a running device. On the other hand, that doesn't allow you to keep a pool of immediately ready devices – a kind of strategy that could be more efficient for busier CI pipelines. There are plans to improve this in the future, but currently you have to bare with this caveat.

    - - + + \ No newline at end of file diff --git a/docs/guide/investigating-test-failure/index.html b/docs/guide/investigating-test-failure/index.html index 59fe497a68..ff4379dfef 100644 --- a/docs/guide/investigating-test-failure/index.html +++ b/docs/guide/investigating-test-failure/index.html @@ -11,14 +11,14 @@ - - + +
    Version: 20.x

    Investigating Failures

    There are a few tricks and tools that can help you to understand the reason for test failures, even before you resort to debugging.

    Using Detox test artifacts

    Artifacts are very powerful tool to understand your test failure, you can easily make a screenshot, video or even hierarchy of your app under test, e.g.:

    detox test -c <configuration> --take-screenshots failing --record-videos failing

    Learn more about configuration of Detox test artifacts and available CLI options.

    Switch to verbose log levels

    You can get detailed information about the test execution if you use debug or trace log level:

    detox test -c <configuration> -l trace
    tip

    In most cases we recommend using debug log level to understand the failed test better.

    Missing elements

    If your tests are failing due to non-existent or invisible elements, you can inspect the native view hierarchy to understand better the failure reason.

    More recipes

    See Dealing With Problems With Running Tests guide for more recipes.

    Debugging

    If debugging still seems a viable option, please follow our debugging guide.

    - - + + \ No newline at end of file diff --git a/docs/guide/launch-args/index.html b/docs/guide/launch-args/index.html index 52df0bd775..351bd62d21 100644 --- a/docs/guide/launch-args/index.html +++ b/docs/guide/launch-args/index.html @@ -11,14 +11,14 @@ - - + +
    Version: 20.x

    Using Launch Arguments

    In Detox, the app under test is launched via an explicit call to device.launchApp(). Through various means, Detox enables specifying a set of user-defined arguments (key-value pairs) to be passed on to the app when launched, so as to make them available inside the launched app itself at runtime (both on the native side, and - if applicable, on the JavaScript side).

    Motivation

    If this is clear to you first hand, you can skip right to the section about arguments setup.

    In particular, the common use case of using launch argument (although not distinctly), is for mocking external entities such as servers - replacing them with equivalent mock servers, sporting equivalent (yet fake) API-endpoints that run alongside the testing host (i.e. the one running Detox). These mock servers can typically be configured during the test, to return deterministic responses to network requests coming from the app.

    Typically, the process of setting up such servers - especially in a parallel test-execution environment, involves three major steps (within the context of a test set-up):

    1. Allocating a port for a mock server, dynamically.
    2. Bringing up a mock server instance bound to that port (e.g. at localhost:1234).
    3. Launching the app with a predefined argument that holds the port, for example mockServerPort=1234. (It is assumed here that there’s designated mocked code inside the app that can read mockServerPort and rewire all connections to localhost:1234 instead of to the real production server).

    In this context, launch argument are useful for implementing step #3.

    Arguments Setup

    User-defined launch arguments specification is very flexible, and can be defined on 4 levels:

    LevelDescription
    1. Static ConfigurationAs a part of a static Detox configuration, using the launchArgs property.
    This is can sufficient, for example, if you only require one mock server instance, and can use the same static port throughout the entire testing execution session.
    2. Static via CLIAs arguments specified explicitly in the command-line execution of detox test, using --app-launch-args.
    3.device.appLaunchArgsDynamically, using the device.appLaunchArgs API, which initially holds the static configuration, and then allows for the modification of it before applied through device.launchApp().
    Mostly required in complex test environments, where the servers and ports are dynamic, and are determined via distinct software components (e.g. separate test kits).
    4. device.launchApp() with launchArgsDynamically and explicitly, using on-site arguments specified in calls to device.launchApp() through the launchArgs parameter.
    Ideal for fairly simple test environments, where the ports are dynamic but are in complete control of the user.

    Important: Arguments specified in each level take precedence over equivalent underlying levels.

    Examples:

    1. In an environment where mockServerPort is statically pre-set to 1001 in Detox configuration, and then set to 1003 using device.appLaunchArgs inside a test, the app would eventually be launched with 1003 as its value, in calls to device.launchApp() in that test.
    2. (Scenario continues) In subsequent calls to device.launchApp() with this parameter: device.launchApp({ launchArgs: {mockServerPort: 1004} }), the app will be (re-)launched with 1004 as the value for mockServerPort.

    In-App Arguments Access

    Our official recommendation for getting the arguments inside the app is by integrating the react-native-launch-arguments project, which provides that seamlessly. For those who are interested, here are the underlying details:

    • On iOS, the specified launch arguments are passed as the process launch arguments and available through normal means, such as accessing [[NSProcessInfo processInfo] arguments].
    • On Android, the launch arguments are set as bundle-extra’s into the activity’s intent. They are therefore accessible on the native side via the current activity as: currentActivity.getIntent().getBundleExtra("launchArgs").
    - - + + \ No newline at end of file diff --git a/docs/guide/migration/index.html b/docs/guide/migration/index.html index 513bf4cc21..0403bff9a8 100644 --- a/docs/guide/migration/index.html +++ b/docs/guide/migration/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -42,7 +42,7 @@ You’ll need to find those places and apply trivial fixes like shown below:

       await screenDriver.performSomeAction();
    - expect(screenDriver.get.myElement()).toBeNotVisible();
    + await expect(screenDriver.get.myElement()).toBeNotVisible();

    19.0

    Version 19 is not really a breaking change!

    We decided to bump Detox into a major version release, nonetheless, because it is breaking for projects that sport custom Detox drivers, such as detox-puppeteer.

    If you are a maintainer of such a project, and you wish to upgrade your Detox dependency to 19 (kudos! 👏), follow this step-by-step migration guide; You can refer to this pull-request, which does that for the detox-puppeteer project.

    Migrating Custom Drivers

    The core of the change is that Detox' drivers framework is no longer a single monolith, responsible for everything platform-specific. Rather, it’s been broken down to these subresponsibilies:

    • Allocation: The process of launching / selecting a device over which the tests would run in the current execution.
    • Validation: Execution environment checkups.
    • Artifacts: Platform-based selection of build-artifacts implementation (e.g. screenshots).
    • Runtime

    You can find a visual explanation, here.

    In addition, the runtime driver is no longer state-less – basically, allowing implementation to hold any state that is required in identifying and managing the associated device.

    How to migrate

    Everything here will be based on the changes made in the detox-puppeteer example - names included (please don’t use them as-is in your own implementation!).

    Allocation:

    • Create a new class, called PuppeteerDeviceAllocation (change name to something that would make sense in your project).
    • Move everything currently in PuppeteerDriver.acquireFreeDevice() and .shutdown() onto PuppeteerDeviceAllocation.allocate() and .free(), respectively.
    • Create a POJO class called PuppeteerAllocCookie. This class should hold anything that would later be required in order to specify the specifically associated device (example: UDID for iOS simulators, adb names for Android devices).
    • Make .allocate() return an instance of your cookie class. Puppeteer example: here.
    • Delete PuppeteerDriver.acquireFreeDevice() and PuppeteerDriver.shutdown().

    For a precise class c'tor and method signatures, see here.

    Add the new allocation class to the module.exports list, under the name: DeviceAllocationDriverClass.

    Validation:

    • If you have any validations implemented in PuppeteerDriver.prepare(), create a class called PuppeteerEnvironmentValidator.
    • Move anything inside PuppeteerDriver.prepare() to PuppeteerEnvironmentValidator.validate().
    • Delete PupeteerDriver.prepare().

    For a precise class c'tor and method signatures, see here.

    Add the new (optional) class to the module.exports list, under the name: EnvironmentValidatorClass.

    Artifacts:

    • Move your implementation of PuppeteerDriver.declareArtifactPlugins() to the same method in a new class, called PuppeteerArtifactPluginsProvider.declareArtifactPlugins() (change name to something that would make sense in your project).

    There are no changes in method signature in this case.

    Add the new class to the module.exports list, under the name: ArtifactPluginsProviderClass.

    Runtime:

    • Optionally rename your class from PuppeteerDriver to PuppeteerRuntimeDriver.
    • In the methods remaining in the class accepting the deviceId arg: remove the deviceId arg entirely. This might break your implementation - don’t worry, continue reading.
    • If applicable, change the signature of the class' c'tor to accept the cookie as its 2nd argument (instance previously allocated in PuppeteerAllocationDriver.allocate()). Save data from the cookie as part of the driver’s state, in order to unbreak your implementation, following the previous step.
    • Add two methods: getExternalId() and getDeviceName(). Implement them such that they would comply with the device.id and device.name API contracts, respectively.

    Export the runtime driver class in the module.exports list as RuntimeDriverClass, instead of DriverClass.

    Troubleshooting

    For issue related to these migrations, approach us by submitting an issue on GitHub. Please apply the Detox19 label.

    18.6.0

    Detox has normalized the configuration format, so that along with the combined configurations object you now can define your devices and apps separately. Please refer to the configuration doc to obtain more details. This change is backward-compatible, although the new format is now the recommended option.

    18.0

    Detox now uses a custom synchronization system on iOS, developed in-house; this is the second step in phasing out our Earl Grey usage. We have tested this system extensively internally, and are confident that it should work as expected. There are no known limitations with the new system.

    If you are seeing issues with the new sync system, please open an issue.

    Breaking:

    • iOS. Detox now requires iOS 13.0 and above iOS simulator runtimes, and iOS 12.x and below are no longer supported. This does not require that you drop support for iOS 12.x in your apps, just that tests will no longer work on iOS 12 and below. Please make sure your tests are running on iOS 13 or above
    • JS. ⚠️ Detox no longer launches the app automatically (even if asked to do so in configuration) — you have to launch your app explicitly:
    +  beforeAll(async () => {
    + await device.launchApp();
    + });
    • JS (jest-circus). The DetoxCircusEnvironment provided from detox/runners/jest-circus package now requires two arguments in its constructor, so you have to update your descendant class signature:
    class CustomDetoxEnvironment extends DetoxCircusEnvironment {
    - constructor(config) {
    - super(config);
    + constructor(config, context) {
    + super(config, context);
    • JS (iOS). device.launchApp({ launchArgs: { ... }) argument escaping has been improved. If you use complex launch args such as regular expressions, make sure you remove manual escaping from now on to avoid erroneous double escaping, e.g.:
     await device.launchApp({
    launchArgs: {
    - detoxURLBlacklistRegex: '(\\".*example.com/some-url/.*\\")' }`,
    + detoxURLBlacklistRegex: '(".*example.com/some-url/.*")' }`,
    },
    });
    • JS (internal). There is a breaking change for people writing custom Detox integrations. Environment variable naming schema has changed – now Detox uses prefix to distinguish its own environment variables (usually passed from detox test CLI), e.g.: recordLogs=all becomes DETOX_RECORD_LOGS=all, loglevel=trace becomes DETOX_LOGLEVEL=trace, and so on.

    17.5.2

    Fixes the issue from 17.4.7 (see below) - now the migration guide for 17.4.7 can be safely ignored.

    17.4.7

    This release was not meant to be breaking in any sense, but unfortunately there are two minor caveats that leaked in.

    jest-cli

    From now on, Detox explicitly depends on jest-cli package (marked as a peer dependency), that’s why if you see an error like the one below:

    Cannot find module 'jest-cli/build/cli/args'

    You should add jest-cli to your package.json’s devDependencies and rerun npm install, e.g.:

    UPD: since detox@17.5.2 you can ignore this advice. The problem should go away without these edits:

     "devDependencies": {
    "jest": "26.x.x",
    + "jest-cli": "26.x.x",

    detox-cli

    If you were using detox-cli global package, make sure to upgrade it before proceeding to detox@17.4.7.

    npm install detox-cli --global

    If you have an older version of detox-cli, then you might see the following error on an attempt to run detox test <...args>:

    'jest' is not recognized as an internal or external command,
    operable program or batch file.
    detox[43764] ERROR: [cli.js] Error: Command failed: jest --config e2e/config.json --testNamePattern "^((?!:android:).)*$" --maxWorkers 1 e2e

    17.3.0

    In the context of introducing the element screenshots feature (#2012), we decided to slightly change the contract between Detox and externally-implemented drivers. These should be modified according to the follow diff-snippet:

    class Expect {
    - constructor(invocationManager) {
    + constructor({ invocationManager }) {
    this._invocationManager = invocationManager;
    }
    }

    class PluginDriver {
    constructor() {
    - this.matchers = new Expect(new invocationManager());
    }
    }

    -module.exports = PluginDriver;
    +module.exports = {
    + DriverClass: PluginDriver,
    + ExpectClass: Expect,
    +}

    17.0.0

    Detox for iOS now uses an entirely new, custom-built matcher, action and expectation infrastructure. This is the first step in our roadmap of removing Earl Grey as a dependency.

    While the new system has been designed to be as compatible as possible with the existing system, some changes we made to existing APIs that may or may not require your attention.

    New API

    • pinch()—new API for pinching elements, replacing the deprecated pinchWithAngle() (iOS)
    • getAttributes()—new API for obtaining element properties (iOS)
    • not—new API for inverting expectation logic (iOS, Android)

    Modified API (Potentially Breaking Changes)

    The following APIs have changed and require attention

    • by.text()—matching elements by text actually uses the element’s text value instead of using the accessibility label (iOS)
    • by.traits()—the supported trait values have changed (iOS)
    • atIndex()—matched elements are now sorted by x and y axes to allow for stability between tests; indices will most likely change after upgrading to this version of Detox (iOS)
    • tap()—this method now accepts an optional point to tap (iOS, Android)
    • setColumnToValue()—this method no longer supports date pickers; use setDatePickerDate() to change picker dates (iOS)
    • setDatePickerDate()—in addition to normal date formats, a new special case is introduced for ISO 8601 formatted date strings: "ISO8601" (iOS)

    Deprecated API

    The following APIs have been deprecated, but is still available

    • tapAtPoint()—the API has been consolidated with tap(point) (iOS, Android)
    • pinchWithAngle()—this API has been replaced with pinch() (iOS)
    • toBeNotVisible()—deprecated in favor of not.toBeVisible() (iOS, Android)
    • toNotExist()—deprecated in favor of not.toExist() (iOS, Android)

    Make sure to read the API reference for matchers, actions and expectations.

    If you see unexpected results, make sure to open an issue.

    16.0.0

    Detox now comes as a prebuilt framework on iOS, thus lowering npm install times and saving some build issues that happen due to unexpected Xcode setups.

    To support this, Detox needs Swift 5 support, so the iOS requirements have changed slightly:

    • Xcode: 10.2 or higher
      • iOS Simulator Runtime: iOS 12.2 or higher

    This does not require that your app require iOS 12.2, only that you build and run your app on Xcode 10.2 or above, and use an iOS 12.2 or above simulator.

    - - + + \ No newline at end of file diff --git a/docs/guide/mocking-open-with-url/index.html b/docs/guide/mocking-open-with-url/index.html index 0b5a88facc..f010db60bf 100644 --- a/docs/guide/mocking-open-with-url/index.html +++ b/docs/guide/mocking-open-with-url/index.html @@ -11,13 +11,13 @@ - - + +
    Version: 20.x

    Mocking Open With URL (Deep Links)

    You can mock opening the app from URL to test your app’s deep link handling mechanism.

    Mocking App Launch With a URL

    await device.launchApp({newInstance: true, url, sourceApp: bundleId}); // sourceApp is an optional iOS-only argument

    Example

    describe('launch app from URL', () => {
    it('should handle URL successfully', async () => {
    await device.launchApp({
    newInstance: true,
    url: 'scheme://some.url',
    sourceApp: 'com.apple.mobilesafari'
    });
    await expect(element(by.text('a label'))).toBeVisible();
    });
    });

    Mocking Opening With a URL On a Launched App

    iOS-only

    await device.openURL({url: 'scheme://some.url', sourceApp: 'com.apple.mobilesafari'});
    - - + + \ No newline at end of file diff --git a/docs/guide/mocking-user-activity/index.html b/docs/guide/mocking-user-activity/index.html index 622476872f..40728ff2f2 100644 --- a/docs/guide/mocking-user-activity/index.html +++ b/docs/guide/mocking-user-activity/index.html @@ -11,13 +11,13 @@ - - + +
    Version: 20.x

    Mocking User Activity

    Detox supports mocking user activity for iOS apps.

    The user activity API is used to mock an external user activity state. The app normally uses this state to continue the activity inside the app. This API is also used for associated domains, Spotlight search handling and Siri intents.

    Mocking App Launch with a User Activity

    Using launchApp() with custom params will trigger the mocking mechanism.

    await device.launchApp({userActivity: activity});

    Example:

    describe('Background user activity', () => {
    it('Launch with user activity', async () => {
    await device.launchApp({userActivity: activity})
    await expect(element(by.text('From user activity'))).toBeVisible();
    });
    });

    Sending User Activity to a Running App

    Use the sendUserActivity() method.

    await device.sendUserActivity(activity)

    Example:


    describe('Foreground user activity', () => {

    beforeEach(async () => {
    await device.launchApp({newInstance: true});
    });

    it('User activity from inside the app', async () => {
    await device.sendUserActivity(activity);
    await expect(element(by.text('From user activity'))).toBeVisible();
    });
    });

    User Activity JSON Format

    User activities are passed as JSON objects to Detox, which then parses them and creates native objects representing the passed information.

    The JSON object passed to Detox needs to provide some required data, but can also provide additional, optional data.

    KeyRequiredValue TypeDescription
    activityTypeYesStringThe activity type. Either a custom user string or a predefined constant as provided by Detox. See the Activity Types section below.
    webpageURLNoStringUsed when simulating an associated domain link opening. This is the URL that the user browsed to.
    referrerURLNoStringUsed when simulating an associated domain link opening. This is the URL that the user browsed from.
    userInfoNoObjectAn additional key-value pair storage, used for general purpose data passing to the app.

    Activity Types

    Activities can be both developer-generated user activity state, such as actions from another system—another iOS device, macOS, Safari, etc., and system-generated user activities, such as user browsed an associated domain, Spotlight search tapped, Siri intent activity, etc., where the app should handle such an activity.

    Detox supports mocking both types.

    For developer-generated user activities, use a custom activityType that is expected by the application.

    For system-generated user activities, use set the activityType to a predefined constant in Detox, like so:

    const DetoxConstants = require('detox/index').DetoxConstants;

    const userActivityBrowsingWeb = {
    "activityType": DetoxConstants.userActivityTypes.browsingWeb,
    "webpageURL": "https://my.deeplink.dtx",
    "referrerURL": "https://google.com/"
    };

    Currently supported system-generated activity types:

    • DetoxConstants.userActivityTypes.browsingWeb - Used for associated domains (deep links)
    • DetoxConstants.userActivityTypes.searchableItem - Used for Spotlight search results

    Spotlight Search Results

    In addition to DetoxConstants.userActivityTypes.searchableItem, Detox also provides an additional constant, used to provide the item identifier, which was selected in Spotlight. The app uses this identifier to display the item on screen.

    An example on a Spotlight search user activity:

    const DetoxConstants = require('detox').DetoxConstants;

    let userActivitySearchableItem = {
    "activityType": DetoxConstants.userActivityTypes.searchableItem,
    "userInfo": {"customKey": "value"}
    };
    userActivitySearchableItem.userInfo[DetoxConstants.searchableItemActivityIdentifier] = "com.test.itemId"
    - - + + \ No newline at end of file diff --git a/docs/guide/mocking-user-notifications/index.html b/docs/guide/mocking-user-notifications/index.html index 656438828b..be9824ef08 100644 --- a/docs/guide/mocking-user-notifications/index.html +++ b/docs/guide/mocking-user-notifications/index.html @@ -11,13 +11,13 @@ - - + +
    Version: 20.x

    Mocking User Notifications

    Detox supports mocking user notifications.

    Note: The mocking mechanism will not mimic the UI of a user notification. Instead, it will only simulate a user interaction with the notification - namely, the "opening" of it (equivalent to a user’s tap/swipe on it in the notification center).

    Mocking App Launch With a Notification

    launchApp() with custom parameters (i.e. userNotification) will trigger the mocking mechanism.

    await device.launchApp({newInstance: true, userNotification: notification});

    Example

    describe('Launch with push notification', () => {
    it('should handle the notification', async () => {
    await device.launchApp({
    newInstance: true,
    userNotification: userNotificationPushTrigger,
    });
    await expect(element(by.text('From push'))).toBeVisible();
    });
    });

    Mocking Notification Reception on a Running App

    Use the sendUserNotification() method to send notification to running app. Notifications can be sent to an active or a background app.

    Note: while the name sendUserNotification() is not very idiomatic on Android, as notification data is not "sent" to apps (rather, it is bundled into an Activity/Service launch Intent as Intent-extras), this unified API is used, for the time being, for both platforms equivalently. With plans of a more extensive support for Android, we estimate it would be deprecated when the time comes.

    await device.sendUserNotification(notification);

    Example:

    describe('Foreground user notifications', () => {
    it('should handle the local notification from inside the app', async () => {
    await device.launchApp();
    await device.sendUserNotification(localNotification);
    await expect(element(by.text('from local notification'))).toBeVisible();
    });
    });

    Notification JSON Format

    User notifications are passed as JSON objects to Detox. The JSON object needs to provide some required data, but can also provide an additional, optional payload.

    Mind the major difference here between the two platforms. While on iOS many types of data fields are applicable, Android is very loosely defined - with support for just free-form user data in the payload field.

    KeyRequiredValue TypePlatformDescription
    triggerYesObjectiOSThe conditions that trigger the delivery of the notification. See the Triggers section below.
    titleNoStringiOSA short description of the reason for the alert.
    subtitleNoStringiOSA secondary description of the reason for the alert.
    bodyNoStringiOSThe body of the notification.
    badgeNoIntegeriOSThe number to display as the app’s icon badge.
    payloadiOS: No
    Android: Yes
    ObjectiOS & AndroidAn object of custom information associated with the notification.
    Android: see full description below
    categoryNoStringiOSThe identifier of the app-defined category object.
    content-availableNoIntegeriOSInclude this key with a value of 1 to configure a silent notification.
    user-textNoStringiOSThe text response provided by the user.
    action-identifierNoStringiOSThe identifier for the action that the user selected.

    Triggers (iOS-only)

    Triggers are objects representing the trigger.

    KeyRequiredValue TypeDescription
    typeYesStringThe conditions that trigger the delivery of the notification. See the Trigger Types section below.
    repeatsNoBooleanIndicates whether the event repeats. Only used for calendar, timeInterval and location trigger types.
    timeIntervalYes for timeInterval trigger typeNumberThe time interval used to create the trigger.
    date-componentsYes for calendar trigger typeObjectThe date components used to construct this object. See the Date Components section below.
    regionYes for location trigger typeObjectThe region used to determine when the notification is sent. See the Region section below.
    Trigger Types

    There are four types of triggers supported by Detox at this time:

    • push
    • calendar
    • timeInterval
    • location

    For convenience, these trigger types are provided as constants in DetoxConstants:

    const DetoxConstants = require('detox/index').DetoxConstants;

    const userNotification = {
    "trigger": {
    "type": DetoxConstants.userNotificationTriggers.push
    },
    // ...
    }

    Date Components (iOS-only)

    KeyRequiredValue TypeDescription
    eraNoIntegerThe number of era units for the receiver.
    yearNoIntegerThe number of year units for the receiver.
    monthNoIntegerThe number of month units for the receiver.
    dayNoIntegerThe number of day units for the receiver.
    hourNoIntegerThe number of hour units for the receiver.
    minuteNoIntegerThe number of minute units for the receiver.
    secondNoIntegerThe number of second units for the receiver.
    weekdayNoIntegerThe number of the weekday unit for the receiver.
    weekdayOrdinalNoIntegerThe ordinal number of weekday units for the receiver.
    quarterNoIntegerThe number of quarters for the receiver.
    weekOfMonthNoIntegerThe week number of the month for the receiver.
    leapMonthNoBooleanIndicates whether the month is a leap month.

    Region (iOS-only)

    KeyRequiredValue TypeDescription
    centerYesObjectThe center point of the geographic area. See the Coordinate section below.
    radiusYesNumberThe radius (measured in meters) that defines the geographic area’s outer boundary.
    notifyOnEntryNoBooleanIndicates that notifications are generated upon entry into the region.
    notifyOnExitNoBooleanIndicates that notifications are generated upon exit from the region.

    Coordinate (iOS-only)

    KeyRequiredValue TypeDescription
    latitudeYesNumberThe latitude in degrees. Positive values indicate latitudes north of the equator. Negative values indicate latitudes south of the equator.
    longitudeYesNumberThe longitude in degrees. Measurements are relative to the zero meridian, with positive values extending east of the meridian and negative values extending west of the meridian.

    Payload

    On Android, the content will be available via the activity’s getIntent() API, inside the intent’s extra bundle. Under some limitations, that includes data-cascading so as to provide comprehensive support for JavaScript’s advanced object-hierarchy capabilities as much as possible. As an example, consider this payload:

    const userNotification = {
    payload: {
    userData: 'userDataValue',
    userDataNum: 111.2,
    userDataFlag: true,
    userDataArray: ['rock', 'paper', 'scissors'],
    userDataObj: {
    cascadedKey: 'cascadedValue'
    },
    },
    };

    The outcome on the native side will be such that all of these conditions evaluate to true:

    activity.getIntent().getStringExtra("userData") == "userDataValue";
    activity.getIntent().getDoubleExtra("userDataNum") == 111.2;
    activity.getIntent().getBooleanExtra("userDataFlag") == true;
    activity.getIntent().getStringArrayExtra("userDataArray")[0] == "rock";
    activity.getIntent().getBundleExtra("userDataObj").getString("cascadedKey") == "cascadedValue";
    Handling at Runtime

    Note that on Android, data delivered through an intent at runtime, is typically received in your activity’s onNewIntent callback. Be sure to consider what should be done in order to handle this type of a use case in your app: Namely, that setIntent() should be called in order for the data to be later available in your app through getIntent(), as explained earlier.

    This isn’t related to Detox in particular, and is set here simply to help you consider all the use cases in your app so that tests coverage would be optimal.

    Examples

    1. Calendar Trigger
    2. Location Trigger
    3. Time Interval Trigger
    4. Push Trigger
    - - + + \ No newline at end of file diff --git a/docs/guide/mocking/index.html b/docs/guide/mocking/index.html index 8c2e575d0f..9543db3925 100644 --- a/docs/guide/mocking/index.html +++ b/docs/guide/mocking/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -22,7 +22,7 @@ Let's start with the quicker way.

    Quick flow

    1. Pick a module that you are going to mock, e.g.:

      // src/config.js

      export const SERVER_URL = 'https://production.mycompany.name/api';
      export const FETCH_TIMEOUT = 60000;
    2. Create a mock module alongside, with an arbitrary extension (e.g. .mock.js):

      // src/config.mock.js

      export * from './config.js';

      // override the url from the original file:
      export const SERVER_URL = 'http://localhost:3000/api';
    3. Stop your Metro bundler if it has been already running, and run it again with the corresponding file extension override, e.g.:

      npx react-native start --sourceExts mock.js,js,json,ts,tsx

      This command is already enough to start your application in an altered mode, and you can start running your tests. Now, if some module imports ./src/config, you tell Metro bundler to prefer ./src/config.mock.js over the plain ./src/config.js, which means the consumer gets the mocked implementation.

    CAVEAT: whichever file extension you might take for the mock files – make sure you don’t accidentally "pick up" unforeseen file overrides from node_modules/**/*.your-extension.js! Metro bundler does not limit itself to your project files only – applying those --sourceExts also affects the resolution of the node_modules content!

    Configuring Metro bundler

    While the mentioned way is good enough for the debug mode, it falls short for the release builds. The problem is that the --sourceExts argument is supported only by react-native start command. Hence, you’d need a CLI-independent way to configure your Metro bundler, and that is patching your project's metro.config.js:

    metro.config.js
     /**
    * Metro configuration for React Native
    * https://github.com/facebook/react-native
    *
    * @format
    */
    +const defaultSourceExts = require('metro-config/src/defaults/defaults').sourceExts;

    module.exports = {
    + resolver: {
    + sourceExts: process.env.MY_APP_MODE === 'mocked'
    + ? ['mock.js', ...defaultSourceExts]
    + : defaultSourceExts,
    + },
    transformer: {
    getTransformOptions: async () => ({
    transform: {
    experimentalImportSupport: false,
    inlineRequires: true,
    },
    }),
    },
    };

    This way, we are enforcing a custom convention that if the Metro bundler finds the MY_APP_MODE=mocked environment variable, it should apply our sourceExts override instead of the default values.

    Therefore, to start the Metro bundler in the mocked mode, you would run something like:

    MY_APP_MODE=mocked npx react-native start

    This principle stays the same for the release mode, although the build commands might differ depending on the platform and a specific script:

    export MY_APP_MODE=mocked
    # from now on, even an implicit run of Metro bundler will use our override

    # via React Native CLI
    npx react-native run-ios --configuration Release
    npx react-native run-android --variant=release

    # via native tools
    xcodebuild -workspace ... -configuration release -scheme ...
    ./gradlew assembleRelease

    Please note that preparing React Native apps for the release mode requires groundwork for both iOS and Android, which is out of scope of this current article.

    As you might have noticed, this tutorial has no direct connection to Detox itself, which is a correct observation. The suggested mocking techniques are a part of the React Native world itself, so please consult the further resources:

    Happy Detoxing!

    - - + + \ No newline at end of file diff --git a/docs/guide/parallel-test-execution/index.html b/docs/guide/parallel-test-execution/index.html index 60722991d4..a57b16bded 100644 --- a/docs/guide/parallel-test-execution/index.html +++ b/docs/guide/parallel-test-execution/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -20,7 +20,7 @@ If no simulator is available for that worker, the worker will create one with the name {name}-Detox.

    Lock File

    Since any attached device can potentially be used simultaneously by multiple workers, Detox needs to maintain a lock file to make sure that doesn't happen. Therefore, Detox maintains device.registry.json, a file with exclusive access based on proper-lockfile, controlled by Detox, that registers all simulators and emulators currently in use by Detox instances.

    The lock file location is determined by the OS, and defined here.

    • MacOS: ~/Library/Detox/device.registry.json
    • Linux: ~/.local/share/Detox/device.registry.json
    • Windows: %LOCALAPPDATA%/data/Detox/device.registry.json or %USERPROFILE%/Application Data/Detox/device.registry.json
    - - + + \ No newline at end of file diff --git a/docs/guide/proguard-configuration/index.html b/docs/guide/proguard-configuration/index.html index ee21e098c4..ce8ba8fa3b 100644 --- a/docs/guide/proguard-configuration/index.html +++ b/docs/guide/proguard-configuration/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -23,7 +23,7 @@ but this should not be an issue for you, because React Native is an open-source project per se.

    If it nevertheless bothers you, there are workarounds such as defining multiple build flavors: one for running end-to-end tests with Detox, and the other one for publishing to the marketplaces:

    app/build.gradle
        buildTypes {
    release {
    minifyEnabled true
    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

    signingConfig signingConfigs.release
    }
    releaseE2E {
    initWith release
    setMatchingFallbacks('release')

    proguardFile "${rootProject.projectDir}/../node_modules/detox/android/detox/proguard-rules-app.pro"
    }
    }

    As can be seen above, we use initWith and setMatchingFallbacks to extend the new releaseE2E build type from the existing one, and then we add an override to it, i.e. proguardFile.

    Following the example, you would then have to adjust your build and binaryPath properties accordingly:

    {
    apps: {
    'android.release': {
    type: 'android.apk',
    - binaryPath: 'android/app/build/outputs/apk/release/app-release.apk',
    + binaryPath: 'android/app/build/outputs/apk/releaseE2E/app-releaseE2E.apk',
    - build: 'cd android && ./gradlew assembleRelease assembleAndroidTest -DtestBuildType=release'
    + build: 'cd android && ./gradlew assembleReleaseE2E assembleAndroidTest -DtestBuildType=release'
    },`
    note

    If your app already contains flavors – that makes things a bit trickier, but the approach can generally be adjusted to support that as well.

    Last but not least: If you’re having issue with Detox' ProGuard rules, please report them here.

    A special thanks to @GEllickson-Hover for reporting issues related to obfuscation in #2431.

    - - + + \ No newline at end of file diff --git a/docs/guide/taking-screenshots/index.html b/docs/guide/taking-screenshots/index.html index 7c024edee8..744172bb70 100644 --- a/docs/guide/taking-screenshots/index.html +++ b/docs/guide/taking-screenshots/index.html @@ -11,13 +11,13 @@ - - + +
    Version: 20.x

    Taking Screenshots

    Detox supports taking in-test screenshots of the device, making the result immediately available in the form of an image file.

    Screenshots can be taken in two levels:

    • Device-level: taking a screenshot of the entire screen.
    • Element-level: taking a screenshot of a specific element (and the view-hierarchy associated with it), currently appearing on the screen.

    In both cases, the concept is mainly useful for verifying the proper visual structure and layout of elements appearing on the device’s screen, in the form of a snapshot-test. Namely, by following these conceptual steps:

    1. Taking a screenshot, once, and manually verifying it, visually.
    2. Storing it as an E2E test asset (i.e. the snapshot).
    3. Using it as the point-of-reference for comparison against screenshots taken in consequent tests, from that point on.
    const fs = require('fs');

    describe('Members area', () => {
    const snapshottedImagePath = './e2e/assets/snapshotted-image.png';

    it('should greet the member with an announcement', async () => {
    const imagePath = (take screenshot from the device); // Discussed below
    expectBitmapsToBeEqual(imagePath, snapshottedImagePath);
    });
    });

    function expectBitmapsToBeEqual(imagePath, expectedImagePath) {
    const bitmapBuffer = fs.readFileSync(imagePath);
    const expectedBitmapBuffer = fs.readFileSync(expectedImagePath);
    if (!bitmapBuffer.equals(expectedBitmapBuffer)) {
    throw new Error(`Expected image at ${imagePath} to be equal to image at ${expectedImagePath}, but it was different!`);
    }
    }

    Important: The recommended, more practical way of doing this, is by utilizing more advanced 3rd-party image snapshotting & comparison tools such as Applitools.

    Device-level Screenshots

    Taking a screenshot of the entire screen can be done using a device-level API:

    const imagePath = await device.takeScreenshot('opened general section');

    The API immediately returns the path of a temporary, readable image file where the screenshot is stored, all-the-while scheduling the transferring of it to the artifacts folder upon completion of the currently running test.

    Returns:

    The path of a temporary file containing the resulted .png image.

    Important: The returned path is guaranteed to be valid only during the test execution. Later on, the screenshot will be moved to the artifacts' folder, and will not be available.

    Parameters:

    name (optional) - Name of the final image-file to store as the artifact. For example, setting name to opened general section would result in an artifact file named opened general section.png. In case the name isn’t provided, Detox would self-generate a random, distinct name, instead (though not a very descriptive one).

    Artifacts Management

    Means of creation of the final image as an artifact is tightly connected to the --take-screenshots argument to Detox CLI:

    • If --take-screenshots none is set, the screenshot will be taken, but it won’t be saved to <artifacts-location> after the test ends.
    • If --take-screenshots failing is set, and the test passes, the screenshot won’t be saved to <artifacts-location> after the test ends.
    • In the other modes (manual and all), if the test passes, the screenshot will be put to <artifacts-location>/✓ Members area should greet the member with an announcement/opened general section.png.
    • In the other modes (manual and all), if the test fails, the screenshot will be put to <artifacts-location>/✗ Members area should greet the member with an announcement/opened general section.png.

    Caveats

    This API well-captures all elements, although alongside surrounding "visual noise" such as the navigation bar, as can be seen in the image below:

    device-screenshot

    As the image includes, for example, the current time (in the top-left corner), running the test in any different time would unnecessarily result in an utter comparison failure, making the test downright useless. Fortunately, this can be resolved, by putting the device into "demo mode" (i.e. freezing the irrelevant, volatile elements) . For example (credits - Miki):

    async function setDemoMode() {
    if (device.getPlatform() === 'ios') {
    execSync(
    'xcrun simctl status_bar "iPhone 11" override --time "12:00" --batteryState charged --batteryLevel 100 --wifiBars 3 --cellularMode active --cellularBars 4'
    );
    } else {
    // enter demo mode
    execSync('adb shell settings put global sysui_demo_allowed 1');
    // display time 12:00
    execSync('adb shell am broadcast -a com.android.systemui.demo -e command clock -e hhmm 1200');
    // Display full mobile data with 4g type and no wifi
    execSync(
    'adb shell am broadcast -a com.android.systemui.demo -e command network -e mobile show -e level 4 -e datatype 4g -e wifi false'
    );
    // Hide notifications
    execSync('adb shell am broadcast -a com.android.systemui.demo -e command notifications -e visible false');
    // Show full battery but not in charging state
    execSync('adb shell am broadcast -a com.android.systemui.demo -e command battery -e plugged false -e level 100');
    }
    }

    Note: This script implicitly assumes only one device is used, as device ID isn’t specified anywhere (e.g. with adb -s <id>).

    Element-level Screenshots

    Taking a screenshot of a specific element can be simply done using an API similar to other element-interaction Detox APIs:

    const imagePath = await element(by.id('announcementsRoot')).takeScreenshot('welcome announcement');

    The API works in the exact same way as device.takeScreenshot() does in terms of return value, arguments, and artifacts management.

    In this example, the image-file specified by imagePath will hold the visual content of a native view whose test ID is announcementsRoot, alongside all of the views in the view-hierarchy formed by it as the root-view. Visually, this can be, for example:

    Announcements view

    Meaning, assuming announcementsRoot has been specified over some ancestor view which has both the Announcement title and the card as its direct or indirect children, the result would include both. That, in turns, also includes the card’s children, such as the avatar, welcome text, etc.

    Caveats of this approach

    Focusing on specific elements, this approach is key to more stable comparisons, and hence more stable tests, over time. However, inspecting less content evidently means protecting against less bugs. For example, In a screen where the element in question is partly obstructed by other elements drawn on the screen, the image created by takeScreenshot() will successfully hold all of it’s content, nonetheless.

    Consider this situation in one of the app’s screens, where the upcoming schedule overlaps the top-hand announcement card:

    overlap

    Taking an element-screenshot of the announcement part alone, would yield a proper result, leaving this bug overlooked:

    announcement element

    Only by taking the element-screenshot of a common ancestor, will this bug be surfaced. However, in turn, that can affect stability, as the result is now sensitive to more details such as padding and background color.

    As a bottom line, this API is mostly suited for testing UI components rather than complete screens.

    - - + + \ No newline at end of file diff --git a/docs/guide/test-id/index.html b/docs/guide/test-id/index.html index 900cf6d758..53778c9387 100644 --- a/docs/guide/test-id/index.html +++ b/docs/guide/test-id/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -22,7 +22,7 @@ If your test can't find your testID and you can't see it either using tools described below, that usually means you haven't passed it down to this component. Make sure you keep forwarding it down until it reaches a native component.

    To make sure your testID is indeed rendered in your app, you can use such tools as MacOS' built-in accessibility inspector for iOS, and Detox Layout-inspector (setup required) for Android.

    Test ID naming - Best practices

    Test ID's work best when they are unique, simple and concise. Here are our recommendations regarding what rules to follow in terms of naming.

    Use a consistent naming system

    Decide upon a system by which test ID's are named, and stick with it.

    1. Use a consistent naming convention. An ITEM_NAME_ALL_CAPS convention and an ItemNameUpperCamelCase are both ok, but don't use them either intermittently nor in conjunction:

      • SITE_LIST_ROOT & SITE_LIST_ITEM_1 - :white_check_mark:
      • SITE_LIST_ROOT & SiteList_Item1 - ❌
      • SITE_LIST_Item1 - ❌
    2. Consistently apply notations for special items. For example:

      • A _ROOT postfix for screen-root or list-root items (e.g. SITE_LIST_ROOT)
      • A _BTN for buttons / touchable CTA elements
    3. Apply consistent prefixes as categories in order to introduce a top-level context to the test ID, distinguishing it from similar ones in various places in the app. The name of the associated screen can be useful in that sense. For example: EDIT_PROFILE_SCREEN.DONE_BTN is better than just DONE_BTN for a button that is inside a user profile editing screen. Also, things such as NAV_TABS., TOP_TABS. and SIDE_MENU. can be used as good context providers.

    4. As explained in the section on passing test ID's to child elements, drill down to the details of elements via a chain of contexts. Given the parent element-group of an element (for example, a card in a feed), use its own test ID as a prefix for the sub-items (e.g. an options "meatballs" / "kebab" CTA or an edit button). For example:

      • SITE_LIST_ITEM1
        • SITE_LIST_ITEM1.OPTIONS
        • SITE_LIST_ITEM1.EDIT_BTN
        • SITE_LIST_ITEM1.TITLE
    5. In a large-scale, multi-module environment, apply a consistent module identifier as the module's test ID's prefix. For example:

      • AUTH.LOGIN_SCREEN.EDIT_PASSWORD - the AUTH. prefix suggests that were are under the context of a module handling Authentication matters.
    tip

    Don't hesitate to articulate a well defined conventions manifest that all teams should adhere to.

    Use simple names

    Stick to simple alpha-numeric characters, and simple separators. When it comes to test ID's, there's usually no reason to use special characters or emojis.

    In addition, use test ID that clearly describe the associated element, but are also concise. For example:

    • SITE_LIST_ROOT - :white_check_mark:
    • MAIN_SITE_LIST_WRAPPER_ELEMENT - ❌
    • SITE_LIST@ITEM$1 - ❌

    Dissociate test ID names

    Make sure the names you give test ID's are completely decoupled and dissociated from everything else in the system. In particular -

    Attention

    By all means, never utilize the element's text / label in the naming of a test ID! Namely, a test ID should never use text or label props passed to a React Native component.

    There are at least 2 reasons why this is a very important rule:

    1. Alternation of test ID's can lead to broken tests (test-ID based matchers become obsolete), and on-screen text can change frequently.
    2. In apps supporting multiple languages, the on-screen text is likely to be different in each language. You want the same test code to be compatible with any language set into the test device, and you therefore need it have as little awareness to it as possible. Using test ID's is the best means to keep it that way.

    Examples

    Based on the ALL_CAPS convention, here is an example of a screen which test ID's illustrate the principles of this discussion:

    Test ID: Naming example

    - - + + \ No newline at end of file diff --git a/docs/guide/testing-webviews/index.html b/docs/guide/testing-webviews/index.html index d98bd82378..b61eab1c02 100644 --- a/docs/guide/testing-webviews/index.html +++ b/docs/guide/testing-webviews/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -21,7 +21,7 @@ Use a native matcher to do this, same as you would for native elements.

    const myWebView = web(by.id('webview_identifier'));

    After locating the web view, you can then use the myWebView.element() method with web view matchers to locate elements within it. See next step in this guide for further details.

    Using atIndex

    It is also possible to locate the web view by applying at-index to the web view matcher in case there are multiple matching web views for the same matcher.

    const myWebView = web(by.id('webview_identifier').atIndex(1));
    note

    atIndex() API for WebView matching is currently supported for iOS only. Check our API documentation for updates.

    Step 2: Finding Inner Elements

    Element matchers are used to find elements within a web view. The Detox WebView APIs provide various matchers for locating elements within a web view (e.g. by.web.id(id), by.web.className(className), by.web.tag(tag), atIndex(index) etc.).

    Here are examples of using some of the matchers:

    // Match by ID attribute
    const elementByID = web.element(by.web.id('identifier'));

    // Match by CSS class name attribute
    const elementByClassName = web.element(by.web.className('className'));

    // Match by CSS selector
    const elementByCSSSelector = web.element(by.web.cssSelector('#cssSelector'));

    // Match with index in case of multiple matching elements
    const elementAtIndex = web.element(by.web.id('identifier').atIndex(1));

    Bypass CORS Restrictions (iOS Only)

    When testing web views, you may encounter Cross-Origin Resource Sharing (CORS) restrictions that prevent you from interacting with elements inside the web view.

    At the moment, Detox is able to bypass CORS restrictions and other browser security features only on iOS, allowing you to interact with inner elements in cases of CORS restrictions (in most cases).

    To bypass CORS restrictions on iOS, you can pass the detoxDisableWebKitSecurity launch argument. This argument will disable the WebKit security features, allowing Detox to interact with the WebView in a "Sandbox" environment.

    await device.launchApp({ launchArgs: { detoxDisableWebKitSecurity: true } });

    Step 3: Perform Actions

    Actions allow you to interact with elements within a web view. The Detox WebView APIs provide various actions that can be invoked on inner elements.

    For example, here's a simple example for filling a login form and press on login button:


    // Fill username and password
    await web.element(by.web.id('username')).typeText('John Doe');
    await web.element(by.web.id('password')).typeText('123456789');

    // Press the login button
    await web.element(by.web.id('login')).tap();

    Perform Custom Actions (runScript)

    You can also execute custom JavaScript code on the web view using the runScript action (see API docs). This is useful for scenarios where you need to interact with the web view in a way that isn't covered by the built-in actions, for fetching data, or for triggering custom events.

    For example, you can use runScript to get the font size of a text element:

    // Define the matcher for the inner text element
    const textElement = web(by.id('webview_identifier')).element(by.web.id('text_element'));

    // Get the font size of a text element
    const fontSize = await textElement.runScript(function get(element) {
    return element.style.fontSize;
    });

    // Use jestExpect to assert the font size
    jestExpect(fontSize).toBe('16px');
    note

    Using jest-expectations in Detox tests is possible by importing expect API from jest package and using it with a separate jestExpect variable (as shown in the example below). This is due to the fact that Detox uses its own expect API, which is not compatible with jest-expectations.

    const jestExpect = require('expect').default;

    Step 4: Assert on Expected Behaviour

    Expectations are assertions on the state of elements within a WebView.

    For instance, to verify an element has specific text:

    await expect(web.element(by.web.id('identifier'))).toHaveText('Hello World!');

    Or to assert an element does not exist:

    await expect(web.element(by.web.id('invalid_identifier'))).not.toExist();

    Full Example

    Here's a full example of a test that interacts with a WebView:

    it('should login successfully', async () => {
    // Assert the welcome message is not visible before login
    await expect(web.element(by.web.id('welcome_message'))).not.toExist();

    // Fill username and password
    await web.element(by.web.id('username')).typeText('John Doe');
    await web.element(by.web.id('password')).typeText('123456789');

    // Press the login button
    await web.element(by.web.id('login')).tap();

    // Assert the login was successful
    await expect(web.element(by.web.id('welcome_message'))).toHaveText('Welcome, John Doe!');
    });
    - - + + \ No newline at end of file diff --git a/docs/guide/typescript/index.html b/docs/guide/typescript/index.html index 01f80c903c..6043c6b498 100644 --- a/docs/guide/typescript/index.html +++ b/docs/guide/typescript/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -22,7 +22,7 @@ so a question arises: how to use Detox with TypeScript? Since Detox by default bases on Jest, the question can be rephrased as: how to use Jest with TypeScript?.

    Nevertheless, since many people ask about it, we decided to provide a guide on how to use Detox with TypeScript.

    Prerequisites

    • A working Detox setup with Jest as your test runner.
    • TypeScript installed in your project.

    Since React Native 0.71, the default React Native project template comes with TypeScript support out of the box. However, if you have no TypeScript project, now's the time:

    npm install --save-dev typescript
    tsc --init

    The latter command will generate a default tsconfig.json file, so that you can modify it to suit your needs.

    tip

    If you get an error like:

    command not found: tsc

    You can try to:

    1. export PATH=$PATH:./node_modules/.bin if you are using bash or zsh.
    2. set PATH=%PATH%;./node_modules/.bin if you are using Windows Command Prompt.
    3. run npx tsc --init instead of tsc --init.
    4. or any other solution to run an executable from node_modules/.bin directory.

    Make sure your TypeScript compiles without errors before proceeding:

    tsc # or tsc --noEmit if you don't want to generate output files

    Setting up Jest with TypeScript

    Jest requires a few extra packages to work seamlessly with TypeScript, so let's install them:

    npm install --save-dev ts-jest @types/jest @types/node

    Your Jest config file at e2e/jest.config.js (or wherever you keep your Jest configuration) also needs a couple of tweaks:

    /** @type {import('@jest/types').Config.InitialOptions} */
    module.exports = {
    preset: 'ts-jest', // (1)
    rootDir: '..',
    testMatch: ['<rootDir>/e2e/**/*.test.ts'], // (2)
    testTimeout: 120000,
    maxWorkers: 1,
    globalSetup: 'detox/runners/jest/globalSetup',
    globalTeardown: 'detox/runners/jest/globalTeardown',
    reporters: ['detox/runners/jest/reporter'],
    testEnvironment: 'detox/runners/jest/testEnvironment',
    verbose: true,
    };
    1. The preset option tells Jest to use ts-jest to compile TypeScript files. This is the most important part of the setup.

    2. Make sure you update your testMatch to include TypeScript files. Otherwise, you are likely to get an error like this:

      No tests found, exiting with code 1
      Run with `--passWithNoTests` to exit with code 0
      In /path/to/your/project
      60 files checked.
      testMatch: /path/to/your/project/e2e/**/*.test.js - 0 matches
      testPathIgnorePatterns: /node_modules/ - 60 matches
      testRegex: - 0 matches
      Pattern: - 0 matches

    Writing Detox Tests in TypeScript

    With the setup ready, you can now write Detox tests in TypeScript. Change file extensions from .js to .ts where appropriate, and you’re good to go.

    import { expect } from 'detox';

    describe('Login Screen', () => {
    it('should login with correct credentials', async () => {
    const email: string = 'test@example.com';
    const password: string = 'password123';

    await element(by.id('emailInput')).typeText(email);
    await element(by.id('passwordInput')).typeText(password);
    await element(by.id('loginButton')).tap();

    expect(await element(by.id('welcomeMessage'))).toBeVisible();
    });
    });
    info

    Pay attention at the highlighted line above, where we import expect from Detox. Unfortunately, there is an unresolved clash between Jest's expect and Detox's expect when using TypeScript. This will be fixed in the future, but for now, you need to import Detox's expect explicitly in case you see errors like this:

    error TS2339: Property 'toBeVisible' does not exist on type 'JestMatchers<IndexableNativeElement>'.

    Conclusion

    Using Detox with TypeScript largely boils down to setting up Jest to understand TypeScript. With the power of static typing, your Detox tests can now become more robust, easier to understand, and less error-prone. Happy testing!

    - - + + \ No newline at end of file diff --git a/docs/guide/uninstalling/index.html b/docs/guide/uninstalling/index.html index dd6f7232e0..404eda153a 100644 --- a/docs/guide/uninstalling/index.html +++ b/docs/guide/uninstalling/index.html @@ -11,15 +11,15 @@ - - + +
    Version: 20.x

    Uninstalling Detox

    Installing and using Detox implies certain side effects: cloned devices, cache files, state files, temporary files, etc.

    This checklist might come in handy whenever you have to make a clean uninstallation after using Detox.

    Detox Framework Cache

    Every install of Detox also triggers a postinstall script in its package.json, which builds (or unpacks) Detox.framework into ~/Library/Detox.

    You can either delete the folder manually:

    rm -rf ~/Library/Detox

    or run:

    detox clean-framework-cache

    Test Session State

    On every test run, Detox rewrites a few temporary files in DETOX_LIBRARY_ROOT_PATH, i.e.:

    1. device.registry.json, to tell apart the busy and the available devices for use with multiple workers.
    2. global-context.json.lock, to detect multiple concurrent instances of Detox.

    The location of DETOX_LIBRARY_ROOT_PATH may vary depending on the operating system:

    • macOS:
      • ~/Library/Detox.
    • Linux:
      • $XDG_DATA_HOME/Detox, if $XDG_DATA_HOME is defined;
      • ~/.local/share/Detox, otherwise.
    • Windows:
      • %LOCALAPPDATA%\data\Detox, if %LOCALAPPDATA% is defined;
      • %USERPROFILE%\Application Data\Detox, otherwise.

    Cloned Simulators (macOS)

    To support the "multiple workers" feature on iOS, Detox clones simulator instances when there aren’t enough available ones. The autogenerated simulators have names with -Detox suffix appended, so you can easily spot them with:

    xcrun simctl list | grep "-Detox"

    To delete a simulator, you can use:

    xcrun simctl delete <uuid>

    Remnants of Artifacts

    Forced exits may result in leaving some temporary files behind.

    iOS

    To ensure there are no temporary artifact files (logs, screenshots, etc.), you can run:

    rm -rf $TMPDIR/*.detox.*

    If you wish to clean up your iOS simulators from the installed apps and other customizations, just run the erase procedure for the relevant ones:

    xcrun simctl erase <uuid>

    Android

    The advice for iOS applies to the Android virtual devices as well. To wipe user files on a specific AVD, run:

    emulator -avd <your_AVD> -wipe-data

    If you have to clean temporary Detox files from an individual booted device, look out for files like 11159175_0.log in /sdcard folder. You can try deleting them using a simple wildcard like below or use your own:

    adb -s <emulator-port> shell rm -rf /sdcard/*_*.*

    Detox CLI

    If you have installed the official CLI wrapper for Detox, then make sure to uninstall it as well:

    npm uninstall detox-cli --global
    - - + + \ No newline at end of file diff --git a/docs/introduction/debugging/index.html b/docs/introduction/debugging/index.html index dce48d0739..afdcbf7ad6 100644 --- a/docs/introduction/debugging/index.html +++ b/docs/introduction/debugging/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -43,7 +43,7 @@ that your port is not reversed. Assuming you're following the tutorial and detoxServer address is ws://localhost:8099 (if not – check what Detox prints you), reverse the port on your device using ADB:

    adb reverse tcp:8099 tcp:8099
  • Waited for the new RN-context for too long!

    Waited for the new RN-context for too long! (60 seconds)
    If you think that’s not long enough, consider applying a custom Detox runtime-config in DetoxTest.runTests().

    If you see an error like above, you can patch Detox code to disable the timeout here:

    detox/android/detox/src/main/java/com/wix/detox/config/DetoxConfig.kt
     package com.wix.detox.config

    class DetoxConfig {
    @JvmField var idlePolicyConfig: DetoxIdlePolicyConfig = DetoxIdlePolicyConfig()
    - @JvmField var rnContextLoadTimeoutSec = 60
    + @JvmField var rnContextLoadTimeoutSec = Int.MAX_VALUE

    fun apply() {
    idlePolicyConfig.apply()
  • - - + + \ No newline at end of file diff --git a/docs/introduction/environment-setup/index.html b/docs/introduction/environment-setup/index.html index eb7f75b9e7..f16df68d3a 100644 --- a/docs/introduction/environment-setup/index.html +++ b/docs/introduction/environment-setup/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -26,7 +26,7 @@ a local Detox executable located at node_modules/.bin/detox, making it easier to operate Detox from the command line, e.g. detox test -c ios.sim.debug.

    It should be installed globally, enabling usage of the command line tools outside your npm scripts:

    npm install detox-cli --global

    On the other hand, if you are fine with running Detox commands with npx detox ..., you may skip installing detox-cli.

    2. [MacOS Only] applesimutils

    This tool is required by Detox to work with iOS simulators. The recommended way to install applesimutils is via Homebrew:

    brew tap wix/brew
    brew install applesimutils
    Note

    Make sure to periodically update your version of applesimutils to the latest version.

    Now, when your environment is ready, let's move to the next section, Project Setup.

    - - + + \ No newline at end of file diff --git a/docs/introduction/getting-started/index.html b/docs/introduction/getting-started/index.html index 32be1fe72d..92a397f990 100644 --- a/docs/introduction/getting-started/index.html +++ b/docs/introduction/getting-started/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -26,7 +26,7 @@ By contributing to Detox, you'll be helping to improve the reliability and user experience of mobile apps, and you'll be part of a team that is dedicated to making mobile development faster and more efficient. We welcome all types of contributions, from code and documentation, to bug reports, questions and feature requests.

    So, if you're interested to be part of the community, we encourage you to get involved by reading our contributing guidelines, and join our Discord server. We also have a Twitter account where we share updates about the project.

    - - + + \ No newline at end of file diff --git a/docs/introduction/preparing-for-ci/index.html b/docs/introduction/preparing-for-ci/index.html index 27d0d63711..e860ebfff8 100644 --- a/docs/introduction/preparing-for-ci/index.html +++ b/docs/introduction/preparing-for-ci/index.html @@ -11,14 +11,14 @@ - - + +
    Version: 20.x

    Preparing for CI

    Disclaimer

    This guide is outdated.

    When your test suite is finally ready, it should be set up to run automatically on your CI server on every git push. This will alert you if new changes to the app break existing functionality.

    Running Detox on CI is not that different from running it locally. There are two main differences:

    • You should test a release build rather than a debug build
    • Tell Detox to shut down the simulator when test is over

    Step 1: Prepare a Release Configuration for Your App

    We will need to create a release app configuration for Detox – follow the previous tutorial if you haven’t completed it already.

    Step 2: Add build and test Commands to Your CI Script

    Assuming your CI is executing some sort of shell script, add the following commands that should run inside the project root:

    detox build --configuration ios.sim.release
    detox test --configuration ios.sim.release
    tip

    Make sure to shut down the simulator when your tests are over.

    Running Android Tests on CI

    Setting up a CI environment capable of running Android tests isn’t as trivial.

    Fortunately, we’ve written all about it in a blogpost on medium!

    Also, check out the guide on how to prepare Android emulators for CI.

    Appendix

    • Running Detox on Travis CI

    Detox’s own build is running on Travis, check out Detox’s .travis.yml file to see how it’s done.

    This is a simple example configuration to get you started with Detox on Travis:

    language: objective-c
    osx_image: xcode8.3

    branches:
    only:
    - master

    env:
    global:
    - NODE_VERSION=stable

    install:
    - brew tap wix/brew
    - brew install applesimutils
    - curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash
    - export NVM_DIR="$HOME/.nvm" && [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
    - nvm install $NODE_VERSION
    - nvm use $NODE_VERSION
    - nvm alias default $NODE_VERSION

    - npm install react-native-cli --global
    - npm install detox-cli --global

    script:
    - detox build --configuration ios.sim.release
    - detox test --configuration ios.sim.release --cleanup

    • Running Detox on Bitrise

    Bitrise is a popular CI service for automating React Native apps. If you are looking to get started with Bitrise, check out this guide.

    You can run Detox on Bitrise by creating a new workflow. Below is an example of the Bitrise .yml file for a workflow called tests.

    Additionally, you can use a webhook on Bitrise to post the build status directly into your Slack channel.

    ---
    format_version: 1.1.0
    default_step_lib_source: https://github.com/bitrise-io/bitrise-steplib.git
    trigger_map:
    - push_branch: "*"
    workflow: tests
    workflows:
    _tests_setup:
    steps:
    - activate-ssh-key: {}
    - git-clone:
    inputs:
    - clone_depth: ''
    title: Git Clone Repo
    - script:
    inputs:
    - content: |-
    #!/bin/bash

    npm cache verify

    npm install
    title: Install NPM Packages
    before_run:
    after_run:
    _detox_tests:
    before_run: []
    after_run: []
    steps:
    - npm:
    inputs:
    - command: install -g detox-cli
    title: Install Detox CLI
    - npm:
    inputs:
    - command: install -g react-native-cli
    title: Install React Native CLI
    - script:
    inputs:
    - content: |-
    #!/bin/bash

    brew tap wix/brew
    brew install applesimutils
    title: Install Detox Utils
    - script:
    inputs:
    - content: |-
    #!/bin/bash

    detox build --configuration ios.sim.release
    title: Detox - Build Release App
    - script:
    inputs:
    - content: |-
    #!/bin/bash

    detox test --configuration ios.sim.release --cleanup
    title: Detox - Run E2E Tests
    tests:
    before_run:
    - _tests_setup
    - _detox_tests
    after_run: []

    • Running Detox on GitLab CI - Android Only

    GitLab is also a popular git management service which also include a built-in CI system. They provide free runner up to 2000 minutes for private projects, however, the runners provided by them cannot be used to run Detox due to the lack of KVM support (in order to run Android Emulators). You can, instead, create your own runner with KVM support. Some example of cloud providers offering this are: Digital Ocean, AWS (with C5 instance types), Google Cloud and Azure

    One example of such job can be:

    detox_e2e:
    stage: test
    image: reactnativecommunity/react-native-android
    variables:
    before_script:
    - npm install envinfo detox-cli --global && envinfo
    # Increase file watcher limit, see more here: https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers#the-technical-details
    - echo fs.inotify.max_user_watches=524288 | tee -a /etc/sysctl.conf && sysctl -p
    - mkdir -p /root/.android && touch /root/.android/repositories.cfg
    # The Dockerimage provides two paths for sdkmanager and avdmanager, which the defaults are from $ANDROID_HOME/cmdline-tools
    # That is not compatible with the one that Detox is using ($ANDROID_HOME/tools/bin)
    - echo yes | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --channel=0 --verbose "system-images;android-27;default;x86_64" "emulator"
    # Nexus 6P, API 27, XXXHDPI
    - echo no | $ANDROID_HOME/cmdline-tools/latest/bin/avdmanager --verbose create avd --force --name "Nexus6P" --package "system-images;android-27;default;x86_64" --sdcard 200M --device 11
    - adb start-server
    script:
    - npx detox build -c android.emu.release.ci
    - npx detox test -c android.emu.release.ci --headless
    - - + + \ No newline at end of file diff --git a/docs/introduction/project-setup/index.html b/docs/introduction/project-setup/index.html index da7223b1cd..9dc03b1848 100644 --- a/docs/introduction/project-setup/index.html +++ b/docs/introduction/project-setup/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -69,7 +69,7 @@ in the Android developers blog.

    Create a new network security config file for Android (or patch it if you have one):

    android/app/src/main/res/xml/network_security_config.xml
    <?xml version="1.0" encoding="utf-8"?>
    <network-security-config>
    <domain-config cleartextTrafficPermitted="true">
    <domain includeSubdomains="true">10.0.2.2</domain>
    <domain includeSubdomains="true">localhost</domain>
    </domain-config>
    </network-security-config>

    If you had no network security config before, it means you also have to register it after creation:

    android/app/src/main/AndroidManifest.xml
     <manifest>
    <application

    + android:networkSecurityConfig="@xml/network_security_config">
    </application>
    </manifest>

    🏆 Pat yourself on the back! The hardest part is over, now your Android app is ready to be used with Detox.

    Step 5: Build the app

    detox build --configuration ios.sim.debug
    tip

    If the build is failing, try out our Troubleshooting section.

    Note that Detox CLI just executes the build command you specified in your Detox config (.detoxrc.js) for a specific configuration. In the other words, it has no extra logic – it just takes the command and runs it, nothing more and nothing less.

    Once your build is ready to use, please proceed to the next article.

    - - + + \ No newline at end of file diff --git a/docs/introduction/your-first-test/index.html b/docs/introduction/your-first-test/index.html index 56cbbdc507..c7631d764d 100644 --- a/docs/introduction/your-first-test/index.html +++ b/docs/introduction/your-first-test/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -28,7 +28,7 @@ Detox tests:

    npm start

    > react-native start

    # #######
    # ################
    # ######### #########
    # ######### ##########
    # ######### ###### #########
    # ##########################################
    # ##### ##################### #####
    # ##### ############## #####
    # ##### ### ###### ### #####
    # ##### ####### ####### #####
    # ##### ########### ########### #####
    # ##### ########################## #####
    # ##### ########################## #####
    # ##### ###################### ######
    # ###### ############# #######
    # ######### #### #########
    # ######### #########
    # ######### #########
    # #########
    #
    #
    # Welcome to Metro!
    # Fast - Scalable - Integrated

    Now you can run your first test:

    detox test --configuration ios.sim.debug

    If you haven't changed the generated e2e/starter.test.js, you are likely to see errors like this:

     FAIL  e2e/starter.test.js (25.916 s)
    Example
    ✕ should have welcome screen (662 ms)
    ✕ should show hello screen after tap (236 ms)
    ✕ should show world screen after tap (236 ms)

    ● Example › should have welcome screen

    Test Failed: No elements found for “MATCHER(id == “welcome”)”

    HINT: To print view hierarchy on failed actions/matches, use log-level verbose or higher.

    9 |
    10 | it('should have welcome screen', async () => {
    > 11 | await expect(element(by.id('welcome'))).toBeVisible();
    | ^
    12 | });
    13 |
    14 | it('should show hello screen after tap', async () => {

    at Object.toBeVisible (e2e/starter.test.js:11:45)


    If you have created your own test, and it is failing, examine the error message, check out our Investigating Failures and Debugging guides, and run your tests again after you fix the issue.

    - - + + \ No newline at end of file diff --git a/docs/next/api/actions/index.html b/docs/next/api/actions/index.html index 79d5e7bed1..ba36b038c1 100644 --- a/docs/next/api/actions/index.html +++ b/docs/next/api/actions/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -30,7 +30,7 @@ dateFormat—The format of dateString. Should be either 'ISO8601', or an explicit date representation format, as supported by NSDateFormatter on iOS / DateTimeFormatter on Android (e.g. 'yyyy/MM/dd').

    The recommended dateFormat is ISO8601.

    Examples:

    const datePicker = element(by.id('datePicker'));

    // ISO8601:
    await datePicker.setDatePickerDate('2019-02-06T05:10:00-08:00', 'ISO8601');
    await datePicker.setDatePickerDate(new Date().toISOString(), 'ISO8601'); // toISOString returns an ISO8601 format with no timezone (UTC-0)

    // Explicit format:
    await datePicker.setDatePickerDate('2019/02/06', "yyyy/MM/dd");
    info

    As far as element-matching is concerned, on Android, older versions of the popular @react-native-community/datetimepicker package don’t allow for the specification of your own testID prop for the date-picker component. Therefore, you'd have to either upgrade your package to a newer version containing PR datetimepicker#705 inside, or use Detox's by.type matcher as a workaround. For example:

    const datePicker = device.getPlatform() === 'android'
    ? element(by.type('android.widget.DatePicker'))
    : element(by.id('datePicker'));

    adjustSliderToPosition(normalizedPosition)

    Manipulates the UI to change the displayed value of the slider element to a new value, based on a normalized position.

    normalizedPosition—The normalized position to adjust the slider element. (valid input: [0, 1], 0 corresponds to the minimum value of the slider, and 1 corresponds to the maximum value)

    await element(by.id('slider')).adjustSliderToPosition(0.75);

    getAttributes()

    Returns an object, representing various attributes of the element.

    Retrieved attributes are:

    • text: The text value of any textual element.
    • label: The label of the element. Matches accessibilityLabel for iOS, and contentDescription for android. Refer to the .toHaveLabel() API in order to learn about caveats associated with this attribute in React Native apps.
    • placeholder: The placeholder text value of the element. Matches hint on android.
    • enabled: Whether the element is enabled for user interaction.
    • identifier: The identifier of the element. Matches accessibilityIdentifier on iOS, and the main view tag, on Android - both commonly holding the component’s test ID in React Native apps.
    • visible: Whether the element is visible. On iOS, visibility is calculated for the activation point. On Android, the attribute directly holds the value returned by View.getLocalVisibleRect()).
    • value: The value of the element, where applicable. For example: the position of a slider, or whether a checkbox has been marked. Matches accessibilityValue, on iOS.
    • frame: The frame of the element, in screen coordinate space.

    iOS-Only

    • activationPoint: The activation point of the element, in element coordinate space.
    • normalizedActivationPoint: The activation point of the element, in normalized percentage ([0.0, 1.0]).
    • hittable: Whether the element is hittable at the activation point.
    • elementFrame: The frame of the element, in container coordinate space.
    • elementBounds: The bounds of the element, in element coordinate space.
    • safeAreaInsets: The safe area insets of the element, in element coordinate space.
    • elementSafeBounds: The safe area bounds of the element, in element coordinate space.
    • date: The date of the element (in case the element is a date picker).
    • normalizedSliderPosition: The normalized slider position (in case the element is a slider).
    • contentOffset: The content offset (in case the element is a scroll view).
    • contentInset: The content inset (in case the element is a scroll view).
    • adjustedContentInset: The adjusted content inset (in case the element is a scroll view).

    Android-Only

    • visibility: The OS visibility type associated with the element: visible, invisible or gone.
    • width: Width of the element, in pixels (deprecated).
    • height: Height of the element, in pixels (deprecated).
    • elevation: Elevation of the element.
    • alpha: Alpha value for the element.
    • focused: Whether the element is the one currently in focus.
    • textSize: The text size for the text element.
    • length: The length of the text element (character count).

    If the value for a given attribute is null or cannot be otherwise computed, the key will not be present, but empty strings may be found in the object.

    If the query matches multiple elements, the attributes of all matched elements is returned as an array of objects under the elements key.

    // import jestExpect from 'expect';
    const jestExpect = require('expect').default;

    // ...
    const attributes = await element(by.text('Tap Me')).getAttributes();
    jestExpect(attributes.text).toBe('Tap Me');

    const multipleMatchedElements = await element(by.text('Multiple')).getAttributes();
    jestExpect(multipleMatchedElements.elements.length).toBe(5);
    jestExpect(multipleMatchedElements.elements[0].identifier).toBe('FirstElement');

    takeScreenshot(name)

    Takes a screenshot of the matched element. For full details on taking screenshots with Detox, refer to the screenshots guide.

    name—the name of the screenshot

    performAccessibilityAction(actionName)

    Triggers an accessibility action.

    actionName—the name of the accessibility action

    await element(by.id('scrollView')).performAccessibilityAction("activate");

    Deprecated Methods

    tapAtPoint(point)

    Deprecated: Use .tap() instead.

    Simulates a tap at on the element at the specified point.

    point—a point in the element’s coordinate space

    await element(by.id('tappable')).tapAtPoint({x:5, y:10});

    pinchWithAngle(direction, speed, angle) iOS only

    Deprecated: Use .pinch() instead.

    Simulates a pinch on the element with the provided options.

    direction—the direction of the pinch gesture (valid input: "inward"/"outward")
    speed—the speed of the pinch (optional, valid input: "fast"/"slow" , default is "slow")
    angle—the angle of the pinch, in radians (optional, default is 0.0)

    await element(by.id('PinchableScrollView')).pinchWithAngle('outward', 'slow', 0);
    - - + + \ No newline at end of file diff --git a/docs/next/api/copilot/index.html b/docs/next/api/copilot/index.html index 2ae75873a9..3b8f746a58 100644 --- a/docs/next/api/copilot/index.html +++ b/docs/next/api/copilot/index.html @@ -11,13 +11,13 @@ - - + +
    -
    Version: Next

    Detox Copilot

    Detox Copilot is an AI-powered plugin that allows you to write Detox tests using natural language commands, powered by large language models (LLMs). It simplifies the process of writing end-to-end tests by translating human-readable instructions into Detox actions and assertions.

    note

    Detox Copilot is based on a core library called detox-copilot, which is designed for Detox but can be extended to work with other testing frameworks.

    Work in Progress

    Detox Copilot is in active development, and APIs are subject to change in future releases.

    Overview

    Detox Copilot exposes a simple API that integrates seamlessly with your Detox tests. It requires minimal setup and allows you to perform complex testing operations by simply describing them in natural language.

    For a more detailed guide on integrating Detox Copilot in your tests, refer to the Detox Copilot Guide.

    Methods

    copilot.init(promptHandler)

    Initializes Detox Copilot with the given prompt handler. Must be called before any other Copilot methods.

    Parameters:

    • promptHandler (PromptHandler): An object implementing the PromptHandler interface.

    Example:

    const { copilot } = require('detox');
    const OpenAIPromptHandler = require('./OpenAIPromptHandler');

    beforeAll(() => {
    const promptHandler = new OpenAIPromptHandler('YOUR_OPENAI_API_KEY');
    copilot.init(promptHandler);
    });

    copilot.perform(...steps)

    Performs a testing operation or series of operations based on the given steps.

    Parameters:

    • steps (string[]): One or more natural language instructions specifying the actions or assertions to perform.

    Returns:

    • A promise that resolves when all steps have been executed.

    Example:

    await copilot.perform(
    'Start the application',
    'Tap on the "Login" button',
    'Enter "user@example.com" into the email field',
    'Enter "password123" into the password field',
    'Press the "Submit" button',
    'The welcome message "Hello, User!" should be displayed'
    );

    PromptHandler Interface

    The PromptHandler interface defines how Detox Copilot communicates with the LLM service.

    interface PromptHandler {
    /**
    * Sends a prompt to the LLM service and returns the response.
    * @param prompt The prompt to send.
    * @param image Optional path to an image capturing the current UI state.
    * @returns A promise resolving to the LLM's response.
    */
    runPrompt(prompt: string, image?: string): Promise<string>;

    /**
    * Indicates whether the LLM service supports snapshot images.
    * @returns A boolean value.
    */
    isSnapshotImageSupported(): boolean;
    }

    You can refer to the Detox Copilot Guide for an example of implementing a PromptHandler for OpenAI's service.

    - - +
    Version: Next

    Detox Copilot

    Detox Copilot is an AI-powered plugin that allows you to write Detox tests using natural language commands, powered by large language models (LLMs). It simplifies the process of writing end-to-end tests by translating human-readable instructions into Detox actions and assertions.

    note

    Detox Copilot is based on a core library called detox-copilot, which is designed for Detox but can be extended to work with other testing frameworks.

    Work in Progress

    Detox Copilot is in active development, and APIs are subject to change in future releases.

    Overview

    Detox Copilot exposes a simple API that integrates seamlessly with your Detox tests. It requires minimal setup and allows you to perform complex testing operations by simply describing them in natural language.

    For a more detailed guide on integrating Detox Copilot in your tests, refer to the Detox Copilot Guide.

    Methods

    copilot.init(promptHandler)

    Initializes Detox Copilot with the given prompt handler. Must be called before any other Copilot methods.

    Parameters:

    • promptHandler (PromptHandler): An object implementing the PromptHandler interface.

    Example:

    const { copilot } = require('detox');
    const OpenAIPromptHandler = require('./OpenAIPromptHandler');

    beforeAll(() => {
    const promptHandler = new OpenAIPromptHandler('YOUR_OPENAI_API_KEY');
    copilot.init(promptHandler);
    });

    copilot.perform(...steps)

    Performs a testing operation or series of operations based on the given steps.

    Parameters:

    • steps (string[]): One or more natural language instructions specifying the actions or assertions to perform.

    Returns:

    • A promise that resolves when all steps have been executed.

    Example:

    await copilot.perform(
    'Start the application',
    'Tap on the "Login" button',
    'Enter "user@example.com" into the email field',
    'Enter "password123" into the password field',
    'Press the "Submit" button',
    'The welcome message "Hello, User!" should be displayed'
    );

    PromptHandler Interface

    The PromptHandler interface defines how Detox Copilot communicates with the LLM service.

    interface PromptHandler {
    /**
    * Sends a prompt to the LLM service and returns the response.
    * @param prompt The prompt to send.
    * @param image Optional path to an image capturing the current UI state.
    * @returns A promise resolving to the LLM's response.
    */
    runPrompt(prompt: string, image?: string): Promise<string>;

    /**
    * Indicates whether the LLM service supports snapshot images.
    * @returns A boolean value.
    */
    isSnapshotImageSupported(): boolean;
    }

    You can refer to the Detox Copilot Guide for an example of implementing a PromptHandler for OpenAI's service.

    + + \ No newline at end of file diff --git a/docs/next/api/device/index.html b/docs/next/api/device/index.html index 0150f2a5ca..63c83a5b5b 100644 --- a/docs/next/api/device/index.html +++ b/docs/next/api/device/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -40,7 +40,7 @@ See Xcode 12 Release notes: #57933113 for more details.

    The name parameter is optional — by default, it equals to capture.

    test('Capture view hierarchy', async () => {
    const temporaryArtifactPath = await device.captureViewHierarchy('myElements');

    // The temporary path will remain valid until the test completion.
    // Afterwards, the artifact will be moved, e.g.:
    // * on success, to: <artifacts-location>/✓ Capture view hierarchy/myElements.viewhierarchy
    // * on failure, to: <artifacts-location>/✗ Capture view hierarchy/myElements.viewhierarchy
    });

    device.generateViewHierarchyXml([shouldInjectTestIds])

    Generates a view hierarchy XML of the currently opened application. The XML is returned as a string.

    The shouldInjectTestIds parameter is optional and defaults to false. When set to true, Detox will attempt to inject testID attributes into the XML for each element if undefined.

    const viewHierarchyXml = await device.generateViewHierarchyXml();

    device.shake() iOS Only

    Simulate shake

    device.setBiometricEnrollment(bool) iOS Only

    Toggles device enrollment in biometric authentication (Touch ID or Face ID).

    await device.setBiometricEnrollment(true);
    // or
    await device.setBiometricEnrollment(false);

    device.matchFace() iOS Only

    Simulates the success of a face match via Face ID

    device.unmatchFace() iOS Only

    Simulates the failure of face match via Face ID

    device.matchFinger() iOS Only

    Simulates the success of a finger match via Touch ID

    device.unmatchFinger() iOS Only

    Simulates the failure of a finger match via Touch ID

    device.clearKeychain() iOS Only

    Clears the device keychain

    device.setStatusBar() iOS Only

    Override simulator’s status bar. Available options:

    await device.setStatusBar({
    time: "12:34",
    // Set the date or time to a fixed value.
    // If the string is a valid ISO date string it will also set the date on relevant devices.
    dataNetwork: "wifi",
    // If specified must be one of 'hide', 'wifi', '3g', '4g', 'lte', 'lte-a', 'lte+', '5g', '5g+', '5g-uwb', or '5g-uc'.
    wifiMode: "failed",
    // If specified must be one of 'searching', 'failed', or 'active'.
    wifiBars: "2",
    // If specified must be 0-3.
    cellularMode: "searching",
    // If specified must be one of 'notSupported', 'searching', 'failed', or 'active'.
    cellularBars: "3",
    // If specified must be 0-4.
    operatorName: "A1",
    // Set the cellular operator/carrier name. Use '' for the empty string.
    batteryState: "charging",
    // If specified must be one of 'charging', 'charged', or 'discharging'.
    batteryLevel: "50",
    // If specified must be 0-100.
    });

    device.resetStatusBar() iOS Only

    Resets any override in simulator’s status bar.

    device.reverseTcpPort() Android Only

    Reverse a TCP port from the device (guest) back to the host-computer, as typically done with the adb reverse command. The end result would be that all network requests going from the device to the specified port will be forwarded to the computer.

    device.unreverseTcpPort() Android Only

    Clear a reversed TCP-port (e.g. previously set using device.reverseTcpPort()).

    device.pressBack() Android Only

    Simulate press back button.

    await device.pressBack();

    device.getUiDevice() Android Only

    Exposes UiAutomator’s UiDevice API. This is not a part of the official Detox API, it may break and change whenever an update to UiDevice or UiAutomator Gradle dependencies (androidx.test.uiautomator:uiautomator) is introduced.

    UiDevice’s autogenerated code

    - - + + \ No newline at end of file diff --git a/docs/next/api/expect/index.html b/docs/next/api/expect/index.html index 84ae7f14df..a0b6ae8de6 100644 --- a/docs/next/api/expect/index.html +++ b/docs/next/api/expect/index.html @@ -11,15 +11,15 @@ - - + +
    Version: Next

    Expect

    Detox uses matchers to match UI elements in your app and expectations to verify those elements are in the expected state.

    Use actions to simulate use interaction with elements.

    Methods

    toBeVisible()

    Expects the view to be at least N% visible on the screen. Accepts an optional parameter of percent threshold of element visibility, integer ranging from 1 to 100, that determines whether the element is visible or not. If no number is provided then defaults to 75%.

    Negating this expectation with a not expression expects the view’s visible area to be lower than N%.

    On iOS, visibility is defined by having the view, or one of its subviews, be topmost at the view’s activation point on screen.

    await expect(element(by.id('subtitle'))).toBeVisible();
    await expect(element(by.id('mainTitle'))).toBeVisible(35);

    toExist()

    Expects the element to exist within the app’s current UI hierarchy.

    await expect(element(by.id('okButton'))).toExist();

    toBeFocused()

    Expects the element to be the focused element.

    await expect(element(by.id('emailInput'))).toBeFocused();

    toHaveText(text)

    Expects the element to have the specified text.

    await expect(element(by.id('mainTitle'))).toHaveText('Welcome back!');

    toHaveLabel(label)

    Expects the element to have the specified label as its accessibility label (iOS) or content description (Android). In React Native, this corresponds to the value in the accessibilityLabel prop.

    note

    Note that in React Native apps, the accessibilityLabel is computed in a non-standard way, which happens to differ between iOS and Android. Detox bridges over that gap by artificially aligning Android to iOS. Effectively, that means that in React Native apps, performing accessibility-label based matching for elements with no explicit label suggests that the matching will be performed against a concatenation of labels from the child-elements, if applicable. For example:

    <View testID='title-root'>
    <Text accessibilityLabel={'title'}>Goodbye!</Text>
    <Text accessibilityLabel={'subtitle'}>Thanks for all the fish.</Text>
    </View>

    In this case, where title-root has no accessibility label of its own, matching the label of title-root will be performed against the text: title subtitle.

    Also note that in iOS, accessibilityLabel for primitive elements such as text, automatically receives the text itself - even if the accessibilityLabel prop isn't explicitly specified.

    await expect(element(by.id('submitButton'))).toHaveLabel('Submit');

    toHaveId(id)

    Expects the element to have the specified accessibility identifier. In React Native, this corresponds to the value in the testID prop.

    await expect(element(by.text('Submit'))).toHaveId('submitButton');

    toHaveValue(value)

    Expects the element to have the specified accessibility value. In React Native, this corresponds to the value in the accessibilityValue prop.

    await expect(element(by.id('temperatureDial'))).toHaveValue('25');

    toHaveSliderPosition(normalizedPosition, tolerance)

    Expects the slider element to have the specified normalized position ([0, 1]), within the provided tolerance (optional).

    await expect(element(by.id('slider'))).toHaveSliderPosition(0.75);
    await expect(element(by.id('slider'))).toHaveSliderPosition(0.3113, 0.00001);

    toHaveToggleValue(value)

    Expects a toggle-able element (e.g. a Switch or a Check-Box) to be on/checked or off/unchecked. As a reference, in react-native, this is the equivalent switch component.

    await expect(element(by.id('switch'))).toHaveToggleValue(true);
    await expect(element(by.id('checkbox'))).toHaveToggleValue(false);

    withTimeout(timeout)

    Waits until the expectation is resolved for the specified amount of time. If timeout is reached before resolution, the expectation is failed.

    timeout—the timeout to wait, in ms

    await waitFor(element(by.id('bigButton'))).toBeVisible().withTimeout(2000);

    Properties

    not

    Negates the expectation, e.g.:

    await expect(element(by.id('tinyButton'))).not.toBeVisible();
    await expect(element(by.id('tinyButton'))).not.toExist();
    await expect(element(by.id('tinyButton'))).not.toBeFocused();
    await expect(element(by.id('tinyButton'))).not.toHaveText('');
    await expect(element(by.id('tinyButton'))).not.toHaveValue('');
    - - + + \ No newline at end of file diff --git a/docs/next/api/internals/index.html b/docs/next/api/internals/index.html index 8631d28de1..851ecb7f0c 100644 --- a/docs/next/api/internals/index.html +++ b/docs/next/api/internals/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -43,7 +43,7 @@ After the secondary contexts connect to the IPC server hosted by the primary context, they register themselves and get the up-to-date session state. The IPC server broadcasts the updates to all the connected contexts on every action like installWorker() or reportTestResults().

    log [Logger]

    See Logger API for all the details.

    The only difference from the Client API here is that you don't have a predefined user category, i.e.:

    const { log: logClient } = require('detox');
    const { log: logInternal } = require('detox/internals');

    // oversimplified, it looks like:
    logClient == logInternal.child({ cat: 'user' })

    For example, we leverage this for adding more lifecycle events in our integration with Jest:

    detox/runners/jest/testEnvironment/index.js
    class DetoxCircusEnvironment extends NodeEnvironment {
    constructor(config, context) {
    super(/* ... */);
    log.trace.begin({ cat: 'lifecycle' }, context.testPath);
    // ...
    }
    }

    tracing

    An advanced API useful for creating reports based on logged Detox events.

    tracing.createEventStream()

    Creates a readable stream of the currently recorded events in Chrome Trace Event format.

    const { tracing } = require('detox/internals');

    async function processDetoxEvents() {
    await new Promise((resolve, reject) => {
    tracing
    .createEventStream()
    .on('end', resolve)
    .on('error', reject)
    .on('data', (event) => {
    if (event.ph === 'B') { /* duration event (begin) */ }
    if (event.ph === 'E') { /* duration event (end) */ }
    if (event.ph === 'i') { /* instant event */ }
    });
    });
    }

    Please mind that you'll be getting a snapshot of events aggregated from all the sibling and child processes, and it never will be complete until the very end of the test session.

    See also: DurationBeginEvent, DurationEndEvent, InstantEvent.

    worker [object]

    Not documented on purpose. Provides direct access to the object which holds the device driver, websocket client, matchers, expectations, etc.

    - - + + \ No newline at end of file diff --git a/docs/next/api/logger/index.html b/docs/next/api/logger/index.html index d37e2d158d..22eb8e9068 100644 --- a/docs/next/api/logger/index.html +++ b/docs/next/api/logger/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -26,7 +26,7 @@ the end event.

    Effectively, begin and end can even be called in two complete different places - such as beforeEach and afterEach, but that is discouraged.

    In fact, log.*.complete() is the recommended way of tracing things, e.g.:

    Event metadata

    All the log methods accept an optional first argument which can contain some custom metadata: numbers, strings and booleans:

    detox.log.info({ /* metadata */ }, message);
    detox.log.trace.begin({ /* metadata */ }, message);
    detox.log.trace.end({ /* metadata */ });

    Aside from custom user properties, there are a few meaningful properties that affect the timeline representation.

    id [string | number]

    Use arbitrary IDs when you have a risk of overlapping concurrent events, e.g.:

    await Promise.all([
    await detox.log.complete({ id: 1 }, 'Do this', async () => { /* … */ }),
    await detox.log.complete({ id: 2 }, 'Do that', async () => { /* … */ }),
    ]);

    Using IDs will prevent situations like this, where the nested event outlasts its parent:

    B               E
    |-- event 1 ----|
    B E
    |-- event 2 -----|

    In the example above, the actual sequence of calls will be:

    log.info.begin('event 1');
    log.info.begin('event 2');
    log.info.end(); // from event 1
    log.info.end(); // from event 2

    Therefore, it will be interpreted erroneously on the timeline, as if the second event has ended before the first one:

    B                   E
    |-- event 1 --------|
    B E
    |-- event 2 -|

    When you begin an event with a specific id while there's already some other duration event, the logger allocates another "lane" for that event by assigning a distinct tid (thread ID) to it:

    cat [string | string[]]

    Event category. Helpful for filtering specific events.

    Pass either a string of comma-separated values or a string array, e.g.:

    log.info({ cat: 'login,login-email' }, 'Starting e-mail login flow...');
    // is identical to:
    log.info({ cat: ['login', 'login-email'] }, 'Starting e-mail login flow...');

    cname [string]

    Custom event color. See the available color names here.

    * [string | number | boolean]

    Your custom properties, e.g.:

    detox.log.info({ login: 'test@example.com' }, 'Entering credentials...');

    Custom properties are not printed to the terminal logs, but there are a few reserved names which have an extra formatting due to our default logger.options.stringifiers — these are: args, data, error, stack, origin.

    Also, there are a few reserved properties which cannot be logged:

    • pid — process ID,
    • tid — thread ID,
    • ts — timestamp,
    • ph — phase: begin (B), end (E), instant (i) event.

    Artifacts

    The logger subsystem produces two artifacts when --record-logs CLI option is enabled or artifacts.plugins.log.enabled config is set to true.

    detox.log

    This file contains all the log messages you could see in the terminal window, except that there are messages of all the log levels, from fatal to trace.

    detox.trace.json

    JSON file, which, if loaded into Perfetto or chrome://tracing (internal address in Google Chrome browser), would look something like this:

    Timeline artifact example

    The tracing view provides a visual, hierarchical representation of the various processes that took place during the execution of the testing session, over the execution’s time-line. These processes appear as hierarchical sections – sometimes visually ordered in a parent-child way, depending on their formation time and context.

    - - + + \ No newline at end of file diff --git a/docs/next/api/matchers/index.html b/docs/next/api/matchers/index.html index ff49fd81f0..59c95875ce 100644 --- a/docs/next/api/matchers/index.html +++ b/docs/next/api/matchers/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -34,7 +34,7 @@ "allowsDirectInteraction" "causesPageTurn" "tabBar"

    element(by.traits(['button']));

    withAncestor(matcher)

    Matches elements with an ancestor that matches the specified matcher.

    element(by.id('child').withAncestor(by.id('parent')));

    withDescendant(matcher)

    Matches elements with at least one descendant that matches the specified matcher.

    element(by.id('parent').withDescendant(by.id('child')));

    and(matcher)

    Matches elements by combining several matchers together.

    element(by.id('uniqueId').and(by.text('some text')));

    atIndex(index)

    If a matcher resolves into multiple matched UI elements, you may specify which element to use by its index.

    On iOS, matched elements are sorted by their x and y axes.

    Note: Due to different underlying implementations of Detox on iOS and Android, as well as other differences in the OS implementations, as well as RN implementation differences on each OS, indices may not match between iOS and Android. Relying on indices may also introduce flakiness in your tests as your app’s user interface is updated. It is recommended to use unique identifier matchers for your elements.

    element(by.text('Product')).atIndex(2);

    Regex matching

    For supported matchers (id, label, text), you can also utilize regex (Regular Expressions) alongside certain flags. Here's a table with the supported flags:

    FlagNameModification
    iIgnore CasingMakes the expression search case-insensitively.
    sDot AllMakes the wild character . match newlines as well.
    mMultilineMakes the boundary characters (^ and $) match the beginning and ending of every single line instead of the beginning and ending of the whole string.
    Note

    Regular expression flags such as g (global) and y (sticky) that are not supported, as well as u (unicode) which is always implied, are ignored when parsing input.

    Pay attention that as of writing this note, Android supports lookbehind assertions in its regular expression implementation, while iOS does not. It's advisable to check the official platform-specific documentation for limitations.

    The following sample code snippet matches text starting with "Tap" followed by any number of alphabetic characters, case-insensitively:

    element(by.text(/Tap [A-Za-z]+/i));
    - - + + \ No newline at end of file diff --git a/docs/next/api/system/index.html b/docs/next/api/system/index.html index f91728cda2..b61d1921f4 100644 --- a/docs/next/api/system/index.html +++ b/docs/next/api/system/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -20,7 +20,7 @@ This means that the API is not yet final and may change over minor releases.

    note

    System APIs are only available on iOS. Android support is coming soon.

    At the moment, System APIs are limited to system dialogs (e.g. permissions, alerts, etc.). We plan to expand the System APIs to include more system-level interactions in the future, such as OS browser (Safari / Chrome), interactions with push notifications, photo library, etc.

    Matchers

    System matchers are used to find elements within the system:

    by.system.label(label)

    Match elements with the specified label.

    system.element(by.system.label('Dismiss'));

    by.system.type(type)

    Match elements with the specified type.

    The type value can be any of XCUIElement.ElementType values, such as 'button' or 'textField'.

    system.element(by.system.type('button'));

    Actions

    System actions are used to interact with elements within the system:

    tap()

    Tap on the element.

    system.element(by.system.label('Allow')).tap();

    Expectations

    System expectations are used to assert the state of elements within the system:

    toExist()

    Asserts that the element exists.

    await system.element(by.system.label('Allow')).toExist();

    not

    Negates the expectation.

    await system.element(by.system.label('Allow')).not.toExist();
    - - + + \ No newline at end of file diff --git a/docs/next/api/webviews/index.html b/docs/next/api/webviews/index.html index 2cb48d5fa5..9fcf160f3f 100644 --- a/docs/next/api/webviews/index.html +++ b/docs/next/api/webviews/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -22,7 +22,7 @@ Upon obtaining the element reference, you can utilize web view actions and expectations on the webView element.

    const innerElement = web.element(by.web.id('inner_element_identifier'));
    await expect(innerElement).toHaveText('Hello World!');

    In the example above, we locate an inner element by its id HTML attribute and verify its text content.

    web(nativeMatcher).element(matcher)

    If you have multiple web views on the screen, you must locate a specific web view first by using a native matcher, e.g.:

    const myWebView = web(by.id('webview_identifier'));

    Following that, you can locate the element within the identified web view:

    const innerElement = myWebView.element(by.web.id('inner_element_identifier'));
    await expect(innerElement).toHaveText('Hello World!');

    web(nativeMatcher).atIndex(index).element(matcher) (iOS only)

    note

    This matcher is available for iOS only. See this GitHub issue for more information.

    If you have multiple web views on the screen and you want to interact with a specific web view, you can use the atIndex() method to choose the web view at the specified index.

    const myWebView = web(by.id('webview_identifier')).atIndex(1);
    const innerElement = myWebView.element(by.web.id('inner_element_identifier'));
    await expect(innerElement).toHaveText('Hello World!');

    In the example above, we use atIndex() to select the second web view on the screen (that has the specified accessibility identifier) and then locate an HTML element inside that web view.

    Matchers

    Web view matchers are used to find elements within a web view:

    by.web.id(id)

    Match elements with the specified accessibility identifier.

    web.element(by.web.id('identifier'));

    by.web.className(className)

    Match elements with the specified CSS class name.

    web.element(by.web.className('className'));

    by.web.cssSelector(cssSelector)

    Match elements with the specified CSS selector.

    web.element(by.web.cssSelector('#cssSelector'));

    by.web.name(name)

    Match form input elements with the specified name attribute.

    web.element(by.web.name('name'));

    by.web.xpath(xpath)

    Match elements with the specified XPath.

    web.element(by.web.xpath('//*[@id="testingh1-1"]'));

    by.web.href(href)

    Match elements with the specified href.

    web.element(by.web.href('https://wix.com'));
    note

    You might face issues with this matcher on Android. Check this GitHub issue for more information.

    by.web.hrefContains(href)

    Match elements that contain the specified href.

    web.element(by.web.hrefContains('wix'));
    note

    You might face issues with this matcher on Android. Check this GitHub issue for more information.

    by.web.tag(tag)

    Match elements with the specified tag.

    web.element(by.web.tag('h1'));

    by.web.value(value)

    note

    This matcher is available for iOS only at the moment.

    Match elements with the specified value.

    web.element(by.web.value('value'));

    by.web.label(label)

    note

    This matcher is available for iOS only at the moment and supports asSecured().

    Match elements with the specified label.

    web.element(by.web.label('label'));

    Supports asSecured() on iOS only:

    web.element(by.web.label('label')).asSecured();

    by.web.type(accessibilityType)

    note

    This matcher is available for iOS only at the moment and supported with asSecured() only.

    Match elements with the specified type.

    web.element(by.web.type('textField')).asSecured();

    The type value can be any of XCUIElement.ElementType values, such as 'button' or 'textField'. See XCUIElement.ElementType.

    atIndex(index)

    Choose the element at the specified index.

    web.element(by.web.tag('h1')).atIndex(1);

    Use it sparingly for those rare cases when you cannot make your matcher less ambiguous, so it returns one element only.

    Actions

    Web view actions are used to interact with elements within a web view:

    tap()

    Tap the element.

    await web.element(by.web.id('identifier')).tap();

    Supports asSecured() on iOS only:

    await web.element(by.web.label('Submit')).asSecured().tap();

    typeText(text[, isContentEditable])

    Type the specified text into the element.

    isContentEditable is an optional parameter that indicates whether the element should be a content-editable (contenteditable) element, and defaults to false.

    await web.element(by.web.id('identifier')).typeText('Hello World!');

    Supports asSecured() on iOS only:

    await web.element(by.web.type('textField')).asSecured().typeText('Hello World!');
    note

    The isContentEditable parameter is currently necessary for content-editable elements only on Android.

    On iOS, Detox automatically detects content-editable elements regardless of this parameter.

    replaceText(text)

    Replace the text of the element with the specified text.

    await web.element(by.web.id('identifier')).replaceText('Hello World!');

    Supports asSecured() on iOS only:

    await web.element(by.web.type('textField')).asSecured().replaceText('Hello World!');
    note

    This action is currently not supported for content-editable elements on Android.

    On iOS, Detox automatically detects content-editable elements and replaces their text.

    clearText()

    Clear the text of the element.

    await web.element(by.web.id('identifier')).clearText();

    Supports asSecured() on iOS only:

    await web.element(by.web.type('textField')).asSecured().clearText();
    note

    This action is currently not supported for content-editable elements on Android.

    On iOS, Detox automatically detects content-editable elements and clears their text.

    selectAllText()

    Select all the text of the element.

    await web.element(by.web.id('identifier')).selectAllText();
    note

    This action is currently supported for content-editable elements only on Android.

    On iOS, Detox can select all the text of any element that supports it (for example, an input element).

    getText()

    Get the text of the element.

    const text = await web.element(by.web.id('identifier')).getText();

    scrollToView()

    Scroll to the element until its top is at the top of the viewport.

    await web.element(by.web.id('identifier')).scrollToView();

    focus()

    Focus on the element.

    await web.element(by.web.id('identifier')).focus();

    moveCursorToEnd()

    Move the input cursor to the end of the element's content.

    await web.element(by.web.id('identifier')).moveCursorToEnd();
    note

    This action is currently supported for content-editable elements only on Android.

    On iOS, Detox can move the cursor to the end of any element that supports it (for example, an input element).

    runScript(script[, args])

    Run the specified script on the element. The script should be a string that contains a valid JavaScript function. It will be called with that element as the first argument:

    const webElement = web.element(by.web.id('identifier'));
    await webElement.runScript('(el) => el.click()');

    For convenience, you can pass a function instead of a string, but please note that this will not work if the function uses any variables from the outer scope:

    The script can accept additional arguments and return a value. Make sure the values are primitive types or serializable objects, as they will be converted to JSON and back:

    const text = await webElement.runScript(function get(element, property) {
    return element[property];
    }, ['textContent']);

    getCurrentUrl()

    Get the current URL of the web view.

    const url = await web.element(by.web.id('identifier')).getCurrentUrl();
    note

    Although this action returns the URL of the presented web document, it can be called from an inner element only (for example, an iframe id or the HTML) and not from the root native web view element itself.

    You might face issues with this action on Android. Check this GitHub issue for more information.

    getTitle()

    Get the title of the web view.

    note

    Although this action returns the title of the presented web document, it can be called from an inner element only (for example, an iframe id or the HTML) and not from the root native web view element itself.

    const title = await web.element(by.web.id('identifier')).getTitle();

    Expectations

    Web view expectations are used to assert the state of elements within a web view:

    toHaveText(text)

    Assert that the element has the specified text.

    await expect(web.element(by.web.id('identifier'))).toHaveText('Hello World!');

    toExist()

    Assert that the element exists.

    await expect(web.element(by.web.id('identifier'))).toExist();

    Supports asSecured() on iOS only:

    await expect(web.element(by.web.label('Hello World!')).asSecured()).toExist();
    note

    You might face issues with this expectation on Android. Check this GitHub issue for more information.

    not

    Negate the expectation.

    await expect(web.element(by.web.id('identifier'))).not.toHaveText('Hello World!');

    Supports asSecured() on iOS only:

    await expect(web.element(by.web.label('Hello World!')).asSecured().atIndex(1)).not.toExist();

    asSecured()

    experimental

    This API is available only on iOS and is currently in the experimental phase. It is subject to changes in the near future.

    The asSecured() API is designed for interacting with web pages that use secured protocols, such as PCI DSS for payment pages. Use it when the regular API fails to interact with such pages. Detox uses system-level interactions with the webview in these scenarios. This approach is less performant and has fewer APIs.

    Example:

    await web.element(by.web.label('Submit')).asSecured().tap();

    Why use asSecured()?

    Use asSecured() for web pages with secured protocols when regular Detox interactions fail. For CORS issues, consider passing the detoxDisableWebKitSecurity launch argument to enable less strict security limitations for interacting with secured web views.

    - - + + \ No newline at end of file diff --git a/docs/next/articles/design-principles/index.html b/docs/next/articles/design-principles/index.html index d52fda4168..dda202a02e 100644 --- a/docs/next/articles/design-principles/index.html +++ b/docs/next/articles/design-principles/index.html @@ -11,13 +11,13 @@ - - + +
    Version: Next

    Design Principles

    Traditionally, end-to-end tests on mobile are riddled with inherent issues, making the testing process difficult and lowering ROI for developers. We believe that the only way to solve these issues at the core is by changing some of the basic principles of our approach.

    • Detox does not rely on WebDriver — Detox is built from the ground up to integrate with native layers of your mobile app directly. We try to avoid generic cross-platform interfaces that are often the lowest common denominator. We want to optimize per platform

    • Detox does gray box, not black box — Theoretically, it sounds better to test exactly what you ship as a black box. In practice, switching to gray box allows the test framework to monitor the app from the inside and delivers critical wins like fighting flakiness at the core

    • Detox synchronizes with your app’s activity — By being aware of what your app is doing and synchronizing with it, Detox times its actions, by default, to run only when your app is idle, meaning it has determined that your app has finished its work, such as animations, network requests, React Native load, etc. You can further read on this here

    • Built from the ground up for mobile apps, has first-class React Native support — Detox is built from the ground up for native mobile and has a first-class support for React Native apps

    • Expectations run on the app, not the tester process — Traditionally, test frameworks evaluate expectations in the test script, running on Node.js. Detox evaluates expectations directly in the tested app, running on device; this enables operations that were impossible before due to performance reasons

    - - + + \ No newline at end of file diff --git a/docs/next/articles/how-detox-works/index.html b/docs/next/articles/how-detox-works/index.html index c149c9646d..f0bba01d22 100644 --- a/docs/next/articles/how-detox-works/index.html +++ b/docs/next/articles/how-detox-works/index.html @@ -11,13 +11,13 @@ - - + +
    Version: Next

    How Detox Works

    Detox is an end-to-end testing framework. This means it runs your app on an actual device/simulator and interacts with it just like a real user would. This type of testing can give a lot of confidence in your app and help automate a manual QA process.

    When a Detox test executes, you actually have two different parts running side by side:

    • The mobile app itself, usually running on a simulator/emulator. A regular native build of your app is installed and executed on the device. Your app is usually built once before the tests start running.

    • The test suite, running on Node.js, using a test runner like Jest. The tests are normally written in JavaScript. Because the tests are asynchronous in nature (every test line requires to access the app and wait for a response), the tests rely heavily on async-await.

    The two parts are usually running in separate processes on your machine. It is also possible to run the two parts on different machines. Communication between the two parts takes place over the network using a web socket.

    In practice, to make the communication more resilient, both parts are implemented as clients and communicate with a Detox server that acts as proxy. This allows some nice behaviors like allowing one side to disconnect (during a simulator boot for example or app restart) without disconnecting the other side and losing its state.

    How Detox Automatically Synchronizes With Your App

    One of the key features of Detox is its ability to automatically synchronize the test execution with your app. The most annoying aspect of end-to-end tests is flakiness—tests sometimes fail without anything changing. Flakiness happens because tests are nondeterministic. Every time a test is running, things take place in a slightly different order inside your app.

    Consider a scenario where the app is making multiple network requests at the same time. What is the order of execution? It depends on which request completes first. This is an external concern depending on network congestion and how busy the server is.

    The traditional method of dealing with flakiness is adding various sleep()/waitFor() commands throughout the test in an attempt to force a certain execution order. This is a bad practice, riddled with fragile magic values that often change if the machine running the tests becomes faster or slower.

    Detox tries to eliminate flakiness by automatically synchronizing your tests with the app. A test cannot continue to the next command until the app becomes idle. Detox monitors your app very closely in order to know when it’s idle. It tracks several asynchronous operations and waits until they complete. This includes:

    • Keeping track of all network requests that are currently in-flight and waiting until they complete
    • Keeping track of pending animations and waiting until they complete
    • Keeping track of timers and waiting until they expire or are cancelled
    • Keeping track of the React Native operations
    info

    In this synchronization process, session.debugSynchronization plays a significant role. This setting, enabled by default, keeps an eye on tasks that are keeping the app busy and logs the details if these actions take longer than the specified value to complete.

    Architecture

    Detox comprises the following components:

    • Tester: The testing component, running in a Node.js process on the host computer, executing the test logic. The tester is also responsible for device management and artifact collection.
    • Detox native client (iOS & Android): A component that gets seamlessly integrated into the tested app on the tested device, right as Detox starts executing. It synchronizes with the app, matches user queries, executes user commands (e.g. taps, scrolls) and validates expectations.
    • Detox mediator server: A small web socket server, running in a Node.js process on the host computer, used to connect between the tester and the client. Normally, the tester starts a server on a randomized session id and an available port, and sends the session and port to the client app as a launch argument.
    - - + + \ No newline at end of file diff --git a/docs/next/articles/third-party-drivers/index.html b/docs/next/articles/third-party-drivers/index.html index 43097a272d..d6f8207189 100644 --- a/docs/next/articles/third-party-drivers/index.html +++ b/docs/next/articles/third-party-drivers/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -23,7 +23,7 @@ websocket where it receives information from the serialized matchers, and expectations, and also sends responses back of whether each step of your test succeeds or fails. Typically, a device client will use an underlying library specific to the platform at hand to implement the expectations.

    Implementation Details

    In order to introduce a third-party Driver, there is a set of core classes you must implement - each responsible for a different Detox concern:

    • Allocation: The process of launching / selecting a device over which the tests would run.
    • Pre-validation: The checkup of the execution-environment (e.g. verifying the Android SDK is installed).
    • Artifact handlers registration: The process where platform-based artifacts generation handlers are registered (e.g. handlers for taking screenshots, which are different between the Android and iOS platforms).
    • Runtime: The de facto execution of test logic.
    • Matchers: The matching of visible elements and visibility assertion.

    To understand the exact contract of these classes, refer to examples/demo-plugin/driver.js for a dummy implementation, or to detox-puppeteer for an actual implementation of such as driver.

    Very roughly speaking, this is the expected skeletal implementation:

    const DeviceDriverBase = require('detox/src/devices/runtime/drivers/DeviceDriverBase');

    class Cookie {
    constructor(id) {
    this.id = id; // hold any info necessary in order to identify the associated device
    }
    }

    class MyNewAllocationDriver {
    constructor(deps) {
    this.emitter = deps.eventEmitter;
    }

    async allocate(deviceConfig) {
    // ...
    return new Cookie(id); // This is where a cookie is formed once for the entire process
    }

    async postAllocate(cookie) {
    // Optional method to handle operations after the device is allocated
    // like waiting until the boot animation is finished, configuring the device, etc.
    }

    async free(cookie, options) {
    // ...
    }
    }

    class MyNewEnvValidator {
    validate() {
    // ...
    }
    }

    class MyNewArtifactsProvider {
    declareArtifactPlugins() {
    // ...
    }
    }

    class MyNewRuntimeDriver extends DeviceDriverBase {
    constructor(deps, cookie) {
    // ...
    }

    // ...
    }

    class MyExpect {
    // ...
    }


    module.exports = MyNewDriver;

    Existing Third-party Drivers

    - - + + \ No newline at end of file diff --git a/docs/next/cli/build-framework-cache/index.html b/docs/next/cli/build-framework-cache/index.html index 93717dda02..665ce398cb 100644 --- a/docs/next/cli/build-framework-cache/index.html +++ b/docs/next/cli/build-framework-cache/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -20,7 +20,7 @@ Builds cached versions of the Detox framework and XCUITest-runner. This command uses the --detox and --xcuitest flags to selectively build components. By default, both components are built.

    Options

    • --detox - Builds only the Detox injected framework. Default is false (build both).
    • --xcuitest - Builds only the XCUITest runner. Default is false (build both).

    Detox stores a cached version of its framework and XCUITest-runner in ~/Library/Detox/ios/* in unique folders, where the folder name is a hash of Xcode and Detox version combination. This cache is used to speed up the build process and avoid unnecessary recompilations.

    Here is an example of the cache structure:

    ├── ios
    │  ├── framework
    │  │   ├── 197a0586bd006583562a5916c969d158133a8c50
    │  │   ├── …
    │  │   └── eddcc1edeffdb3533a977b73b667e1b7f106c38f
    │  ├── xcuitest-runner
    |  │   ├── 197a0586bd006583562a5916c969d158133a8c50
    │  │   ├── …
    │  │   └── eddcc1edeffdb3533a977b73b667e1b7f106c38f
    │…
    - - + + \ No newline at end of file diff --git a/docs/next/cli/build/index.html b/docs/next/cli/build/index.html index 77b69eb857..86568b905b 100644 --- a/docs/next/cli/build/index.html +++ b/docs/next/cli/build/index.html @@ -11,14 +11,14 @@ - - + +
    Version: Next

    detox build

    detox build [options]

    Runs the build command of the app (or apps) from the specified configuration.

    OptionDescription
    -c, --configuration <device config>Select a device configuration from your defined configurations, if not supplied, and there’s only one configuration, detox will default to it
    -C, --config-path <configPath>Specify Detox config file path. If not supplied, detox searches for .detoxrc[.js] or "detox" section in package.json
    -i, --if-missingExecute the build command only if the app binary is missing.
    -s, --silentDo not fail with error if an app config has no build command.
    --helpShow help

    Examples

    If you have only one configuration, you can simply use:

    detox build

    To choose a specific configuration:

    detox build --configuration yourConfiguration

    To skip building an app if it already is built:

    detox build --configuration yourConfiguration --if-missing
    - - + + \ No newline at end of file diff --git a/docs/next/cli/clean-framework-cache/index.html b/docs/next/cli/clean-framework-cache/index.html index e71d2cb277..dfee6a06b7 100644 --- a/docs/next/cli/clean-framework-cache/index.html +++ b/docs/next/cli/clean-framework-cache/index.html @@ -11,15 +11,15 @@ - - + +
    Version: Next

    detox clean-framework-cache

    detox clean-framework-cache

    MacOS only. Cleans cached versions of the Detox framework and XCUITest-runner. This command uses the --detox and --xcuitest flags to selectively remove components. By default, both components are cleaned.

    Options

    • --detox - Cleans only the Detox injected framework. Default is false (clean both).
    • --xcuitest - Cleans only the XCUITest runner. Default is false (clean both).

    See also: detox build-framework-cache

    - - + + \ No newline at end of file diff --git a/docs/next/cli/init/index.html b/docs/next/cli/init/index.html index 3e2b51bf53..e33f9932ac 100644 --- a/docs/next/cli/init/index.html +++ b/docs/next/cli/init/index.html @@ -11,13 +11,13 @@ - - + + - - + + \ No newline at end of file diff --git a/docs/next/cli/overview/index.html b/docs/next/cli/overview/index.html index 9888d8d967..1fede4bf49 100644 --- a/docs/next/cli/overview/index.html +++ b/docs/next/cli/overview/index.html @@ -11,13 +11,13 @@ - - + +
    Version: Next

    detox

    Detox CLI lets you operate Detox from command line.

    Installation

    Install detox-cli globally via npm:

    npm install detox-cli --global

    Usage

    detox <command> [options]

    Commands

    CommandDescription
    initCreate initial E2E tests folder for Detox.
    buildRun the command defined in 'build' property of the specified configuration.
    testInitiating your test suite.
    recorderStarts a Detox Recorder recording.
    build-framework-cacheMacOS only. Builds or rebuilds a cached Detox framework and/or XCUITest-runner in ~/Library/Detox. The cache is specific for each combination of Xcode and Detox versions.
    clean-framework-cacheMacOS only. Deletes all compiled framework and XCUITest-runner binaries from ~/Library/Detox, they will be rebuilt on 'npm install' or when running 'build-framework-cache'.
    rebuild-framework-cacheMacOS only. Cleans and builds a cached Detox framework and XCUITest-runner in ~/Library/Detox. The cache is specific for each combination of Xcode and Detox versions.
    reset-lock-fileResets Detox lock file completely - all devices are marked as available after that.
    run-serverStarts a standalone Detox server.

    Options

    OptionsDescription
    --versionShow version number
    --helpShow help
    - - + + \ No newline at end of file diff --git a/docs/next/cli/rebuild-framework-cache/index.html b/docs/next/cli/rebuild-framework-cache/index.html index 8a4b1fdd02..8284b8bea0 100644 --- a/docs/next/cli/rebuild-framework-cache/index.html +++ b/docs/next/cli/rebuild-framework-cache/index.html @@ -11,15 +11,15 @@ - - + +
    Version: Next

    detox rebuild-framework-cache

    detox rebuild-framework-cache

    MacOS only. Rebuilds cached versions of the Detox framework and XCUITest-runner. This command uses the --detox and --xcuitest flags to selectively rebuild components. By default, both components are rebuilt.

    Options

    • --detox - Rebuilds only the Detox injected framework. Default is false (rebuild both).
    • --xcuitest - Rebuilds only the XCUITest runner. Default is false (rebuild both).

    See also: detox build-framework-cache

    - - + + \ No newline at end of file diff --git a/docs/next/cli/recorder/index.html b/docs/next/cli/recorder/index.html index 4ff60f2551..e3f096236b 100644 --- a/docs/next/cli/recorder/index.html +++ b/docs/next/cli/recorder/index.html @@ -11,14 +11,14 @@ - - + + - - + + \ No newline at end of file diff --git a/docs/next/cli/reset-lock-file/index.html b/docs/next/cli/reset-lock-file/index.html index fa17eef583..6fb4b829f7 100644 --- a/docs/next/cli/reset-lock-file/index.html +++ b/docs/next/cli/reset-lock-file/index.html @@ -11,15 +11,15 @@ - - + +
    Version: Next

    detox reset-lock-file

    detox reset-lock-file

    Resets Detox lock file. The lock file contains information about busy and free devices, and this way we can ensure no device can be used simultaneously by multiple Detox test sessions.

    By default, detox test command cleans the lock file on start, but it targets only the devices assigned to dead and non-existent processes. This command, on contrary, cleans the lock file completely.

    - - + + \ No newline at end of file diff --git a/docs/next/cli/run-server/index.html b/docs/next/cli/run-server/index.html index c72b677d3d..ae48943b1d 100644 --- a/docs/next/cli/run-server/index.html +++ b/docs/next/cli/run-server/index.html @@ -11,13 +11,13 @@ - - + +
    Version: Next

    detox run-server

    note

    This tool is useful mostly for contributing to the native codebase of Detox, not for the outside use.

    Starts a standalone Detox server.

    detox run-server [options]
    OptionDescription
    -p, --port [port]Port number (default: 8099)
    -l, --loglevel [value]Log level: fatal, error, warn, info, verbose, trace
    --no-colorDisable colorful logs
    --helpShow help
    - - + + \ No newline at end of file diff --git a/docs/next/cli/start/index.html b/docs/next/cli/start/index.html index c328c5c913..143fa28156 100644 --- a/docs/next/cli/start/index.html +++ b/docs/next/cli/start/index.html @@ -11,14 +11,14 @@ - - + +
    Version: Next

    detox start

    detox start [options]

    Runs the start command of the app (or apps) from the specified configuration.

    OptionDescription
    -C, --config-path <configPath>Specify Detox config file path. If not supplied, Detox searches for .detoxrc[.js] or "detox" section in package.json.
    -c, --configuration <device config>Select a local configuration from your defined configurations to extract the app "start" scripts from it. If not supplied, and there’s only one configuration, Detox will default to it.
    -f, --forceIgnore errors from the "start" scripts and continue.
    --helpShow help

    Examples

    If you have only one configuration, you can simply use:

    detox start

    To choose a specific configuration:

    # long alias:
    detox start --configuration yourConfiguration
    # short alias:
    detox start -c yourConfiguration

    To forward extra arguments to the "start" script, e.g.:

    detox start -c yourConfiguration -- --port 8082

    To ignore errors from the "start" scripts and continue:

    detox start -c yourConfiguration --force
    - - + + \ No newline at end of file diff --git a/docs/next/cli/test/index.html b/docs/next/cli/test/index.html index 17187b8148..319be51625 100644 --- a/docs/next/cli/test/index.html +++ b/docs/next/cli/test/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -31,7 +31,7 @@ In other words, the path with a slash at the end assumes you do not want a subdirectory inside. For more details, please check the Enabling artifacts. The default value is artifacts (plus a subdirectory).
    - - + + \ No newline at end of file diff --git a/docs/next/config/apps/index.html b/docs/next/config/apps/index.html index fb2823038b..063c9e7a83 100644 --- a/docs/next/config/apps/index.html +++ b/docs/next/config/apps/index.html @@ -11,14 +11,14 @@ - - + +
    Version: Next

    Apps

    The format of Detox config allows you to define inside it multiple app configs in a key-value manner, i.e.:

    Location

    You can define the app config in two ways: aliased and inlined (per a configuration):

    .detoxrc.js
    /** @type {Detox.DetoxConfig} */
    module.exports = {
    apps: {
    appKey: {
    /* … app config … */
    }
    },
    /* … */
    configurations: {
    'example.aliased': {
    /* … */
    app: 'appKey', // (1)
    },
    'example.inlined': {
    /* … */
    app: { // (2)
    /* … app config … */
    },
    },
    },
    };

    Examples

    {
    "type": "ios.app",
    "binaryPath": "ios/build/Build/Products/Debug-iphonesimulator/example.app",
    "build": "xcodebuild -project ios/example.xcodeproj -scheme example -configuration Debug -sdk iphonesimulator -derivedDataPath ios/build"
    }

    Properties

    An app config can have the following params:

    Configuration ParamsDetails
    typeMandatory property to discern app types: ios.app, android.apk.
    nameUse only when working with multiple apps within the same configuration. See an example below.
    binaryPathRelative path to the ipa/app/apk due to be tested (make sure you build the app in a project relative path)
    build[optional] Build command, which can be called using detox build CLI as a convenience.
    start[optional] Start command, which will be called before detox test CLI starts, or explicitly via detox start command.
    testBinaryPath(optional, Android only): relative path to the test app (apk)
    launchArgs[optional] An object specifying arguments (key-values pairs) to pass through into the app, upon launching on the device. For more info, refer to the dedicated launch-arguments guide.
    reversePorts(optional, Android only) An array of TCP ports to reverse, so that the network requests to localhost:{port} on Android device are going to be forwarded to the host machine.

    Multiple apps

    To work with multiple apps within the same configuration you should be giving each app its name, e.g.:

    {
    "apps": {
    "driver.ios.release": {
    "type": "ios.app",
    "name": "driver",
    "binaryPath": "path/to/driver.app"
    },
    "passenger.ios.release": {
    "type": "ios.app",
    "name": "passenger",
    "binaryPath": "path/to/passenger.app"
    }
    },
    "configurations": {
    "ios.release": {
    "device": "simulator",
    "apps": ["driver", "passenger"],
    "build": "scripts/build-both-apps.sh",
    "start": "scripts/start-both-apps.sh"
    }
    }
    }

    After that, you can change the current app in your tests via device API:

    await device.selectApp('driver');
    await device.launchApp();
    // ... run tests ...
    await device.selectApp('passenger');
    await device.launchApp();
    // ... run tests ...

    As shown in the example above, you can override app build and start commands with a single, configuration-scoped one. This may be useful when you have smart scripts for building and starting multiple apps at once.

    - - + + \ No newline at end of file diff --git a/docs/next/config/artifacts/index.html b/docs/next/config/artifacts/index.html index b4f27f389f..539f320f14 100644 --- a/docs/next/config/artifacts/index.html +++ b/docs/next/config/artifacts/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -22,7 +22,7 @@ Alternatively, you might leverage the device.takeScreenshot() API for manual control.

    Artifacts root directory

    • To change artifacts root directory location (by default it is ./artifacts), add --artifacts-location <path>.\ NOTE: There is a slightly obscure convention. If you want to create automatically a subdirectory with timestamp and configuration name (to avoid file overwrites upon consequent reruns), specify a path to directory that does not end with a slash. Otherwise, if you want to put artifacts straight to the specified directory (in a case where you make a single run only, e.g. on CI), add a slash (or a backslash) to the end.
    detox test --artifacts-location /tmp/detox_artifacts  # will also append /android.emu.release.2018-06-14 08:54:11Z
    detox test --artifacts-location /tmp/detox_artifacts/ # won’t append anything, hereby treating it as a root

    Configuration Object

    Detox artifacts can be configured in a more advanced way with the artifacts configuration in package.json (or .detoxrc):

    {
    "artifacts": {},
    "configurations": {
    "some.device": {
    "artifacts": {},
    },
    },
    }

    NOTE: As you can see, there is a global and a local (per-configuration) configuration of the artifacts. Detox merges those configurations, and the per-device artifacts configuration has a higher priority over the general one.

    The artifacts object has the following properties:

    PropertyExample valuesDefault valueDescription
    rootDir".artifacts/"./artifactsA directory, where all the recorded artifacts will be placed in. Please note that there is a trailing slash convention described above.
    pathBuilder"./e2e/config/pathbuilder.js"undefinedPath to a module that exports a custom PathBuilder
    plugins{ ... }... see below... see below

    Path builder

    PathBuilder should be either an object with a method buildPathForTestArtifact or a class — see the corresponding interfaces below:

    interface PathBuilder {
    buildPathForTestArtifact(artifactPath: string, testSummary?: TestSummary): string;
    }

    interface PathBuilderClass {
    new(opts: { rootDir: string; }): PathBuilder;
    }

    As one can see, if a custom implementation of PathBuilder exports a class instead of an object, then the class constructor can also get and save rootDir location:

    class MyPathBuilder {
    constructor({ rootDir }) {
    this._rootDir = rootDir;
    }

    buildPathForTestArtifact(artifactName, testSummary) {
    /* ... use this._rootDir ... */
    }
    }

    module.exports = MyPathBuilder;

    Its main method, buildPathForTestArtifact should return a full path to the custom artifact location, when called with a suggested artifact name (e.g., testDone.png, device.log) and the current TestSummary, where TestSummary is:

    interface TestSummary {
    /**
    * Name of the current test, e.g., for:
    * describe('that screen', () =>
    * it('should have a menu', () =>
    * The expected string would be: "should have a menu".
    */
    title: string;
    /**
    * Full name of the current test, usually preceded by a suite name, e.g.:
    * describe('that screen', () =>
    * it('should have a menu', () =>
    * The expected string would be: "that screen should have a menu".
    */
    fullName: string;
    /**
    * Status of the current test. Free-form strings are not allowed.
    */
    status: 'running' | 'passed' | 'failed';
    /**
    * Clarifies the reason for why the test has failed.
    * Expected to coincide only with status: 'failed'.
    */
    timedOut?: boolean;
    /**
    * If the test runner is capable of retrying failed tests, then
    * this property indicates for which time this test is running.
    * When the property is undefined, its value is considered to be 1.
    * */
    invocations?: number;
    }

    For more technical details, search for ArtifactPathBuilder.js in Detox source code.

    The further subsections describe the plugins object structure.

    Screenshot Plugin

    Below is a default screenshot plugin object configuration, which is loaded implicitly and corresponds to the manual preset:

    {
    "plugins": {
    "screenshot": {
    "enabled": true,
    "shouldTakeAutomaticSnapshots": false,
    "keepOnlyFailedTestsArtifacts": false,
    "takeWhen": {
    "testStart": true,
    "testDone": true,
    "appNotReady": true,
    },
    }
    }
    }

    The other string presets override the following properties compared to the default configuration:

    • none => { enabled: false }.
    • failing => { shouldTakeAutomaticSnapshots: true, keepOnlyFailedTestsArtifacts: true }.
    • all => { shouldTakeAutomaticSnapshots: true, keepOnlyFailedTestsArtifacts: false }

    The individual property behavior is the following:

    • If enabled is false, then the screenshots will never be saved to the artifacts' folder.
    • If shouldTakeAutomaticSnapshots is false, then no one of the events described in takeWhen object is going to trigger a screenshot.
    • If keepOnlyFailedTestsArtifacts is true, then only screenshots from a failed test will be saved to the artifacts folder.
    • If takeWhen is undefined, it is going to have the default value described above (all props are true).
    • If takeWhen is set to be an empty object {}, that is equivalent to:
    {
    "testStart": false,
    "testDone": false,
    "appNotReady": true,
    }

    Hence, for example, if you wish to enable only testDone screenshots and leave taking appNotReady screenshots as-is, you have to pass:

    {
    "artifacts": {
    "plugins": {
    "screenshot": {
    "takeWhen": { "testDone": true }
    }
    }
    }
    }

    Video Plugin

    To be done. See meanwhile the example above.

    Log Plugin

    To be done. See meanwhile the example above.

    Instruments Plugin

    To be done. See meanwhile the example above.

    UI hierarchy Plugin

    To be done. See meanwhile the example above.

    Artifacts Structure

    1. Artifacts root folder is created per detox test run. If, for instance,--artifacts-location /tmp is used with --configuration ios.sim.release configuration on 14th June 2018 at 11:02:11 GMT+02, then the folder /tmp/ios.sim.release.2018-06-14 09:02:11Z is created.

    2. Test folder is created per test inside the root folder. The folder name consists of the test number, and the test’s full name provided to detox.afterEach(testSummary) as explained above and in detox object documentation. For instance, for the above example, the following folders will be created inside /tmp/ios.sim.release.2018-06-14 09:02:11Z:

      ✗ Assertions should assert an element has (accessibility)
      ✓ Network Synchronization Sync with short network requests - 100ms
    3. Artifacts files are created inside the test folders. The files suffixes stand for the files types (currently there are .err.log and .out.log), and the files prefixes are the launch numbers of the application per test (if the app was executed more than once per test, you will have several artifacts of each type - one per launch). For instance, a test folder may contain the following artifacts files:

      test.log
      test.mp4
      test.dtxrec/
      beforeEach.png
      afterEach.png

    Example of the structure

    artifacts/android.emu.release.2018-06-12 06:36:18Z/startup.log
    artifacts/android.emu.release.2018-06-12 06:36:18Z/✗ Assertions should assert an element has (accessibility) id/beforeEach.png
    artifacts/android.emu.release.2018-06-12 06:36:18Z/✗ Assertions should assert an element has (accessibility) id/test.log
    artifacts/android.emu.release.2018-06-12 06:36:18Z/✗ Assertions should assert an element has (accessibility) id/test.mp4
    artifacts/android.emu.release.2018-06-12 06:36:18Z/✗ Assertions should assert an element has (accessibility) id/afterEach.png
    - - + + \ No newline at end of file diff --git a/docs/next/config/behavior/index.html b/docs/next/config/behavior/index.html index 0dd533fa13..82fecc9d14 100644 --- a/docs/next/config/behavior/index.html +++ b/docs/next/config/behavior/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -22,7 +22,7 @@ as global variables.

    When false, you should import them explicitly instead:

    const { by, device, expect, element } = require('detox');

    or, in TypeScript:

    import { by, device, expect, element } from 'detox';

    behavior.launchApp [enum]

    Default: auto.

    Possible values: auto, manual.

    When set to manual, Detox won't be launching your app automatically. Instead, it will be waiting until you launch it manually from IDE and press any key to resume the test execution. This is useful when you want to debug the native codebase when running Detox tests.

    Also, setting it to manual resets behavior.reinstallApp to false.

    behavior.cleanup.shutdownDevice [boolean]

    Default: false.

    When set to true, Detox will shut down the device after the tests finish.

    - - + + \ No newline at end of file diff --git a/docs/next/config/devices/index.html b/docs/next/config/devices/index.html index 17d7d984ad..db911c8ea5 100644 --- a/docs/next/config/devices/index.html +++ b/docs/next/config/devices/index.html @@ -11,13 +11,13 @@ - - + +
    Version: Next

    Devices

    The format of Detox config allows you to define inside it multiple device configs in a key-value manner, i.e.:

    Location

    You can define the device config in two ways: aliased and inlined (per a configuration):

    .detoxrc.js
    /** @type {Detox.DetoxConfig} */
    module.exports = {
    devices: {
    deviceKey: {
    /* … device config … */
    }
    },
    /* … */
    configurations: {
    'example.aliased': {
    /* … */
    device: 'deviceKey', // (1)
    },
    'example.inlined': {
    /* … */
    device: { // (2)
    /* … device config … */
    },
    },
    },
    };

    Examples

    {
    "type": "ios.simulator",
    "device": {
    // one of these or a combination of them
    "id": "D53474CF-7DD1-4673-8517-E75DAD6C34D6",
    "type": "iPhone 11 Pro",
    "name": "MySim",
    "os": "iOS 13.0"
    },
    }

    Properties

    A device config can have the following params:

    Configuration ParamsDetails
    typeRequired. String Literal. Mandatory property to discern device types: ios.simulator, android.emulator, android.attached, android.genycloud etc.
    deviceRequired. Object. Device query, e.g. { "byType": "iPhone 11 Pro" } for iOS simulator, { "avdName": "Pixel_2_API_29" } for Android emulator or { "adbName": "<pattern>" } for attached Android device with name matching the regex.
    bootArgsOptional. String. Supported by ios.simulator and android.emulator only.
    Supply an extra String of arguments to xcrun simctl boot ... or emulator -verbose ... @AVD_Name.
    forceAdbInstallOptional. Boolean. Supported for Android devices only.
    A Boolean value, false by default. When set to true, it tells device.installApp() to use adb install. Otherwise, it would use the combination of adb push <app.apk> and adb shell pm install.
    utilBinaryPathsOptional. Array of strings. Supported for Android devices only.
    An array of relative paths of utility app (APK) binary-files to preinstall on the tested devices - once before the test execution begins.
    Note: these are not affected by various install-lifecycle events, such as launching an app with device.launchApp({delete: true}), which reinstalls the app. A good example of why this might come in handy is Test Butler.
    gpuModeOptional. String Literal (auto | host | swiftshader_indirect | angle_indirect | guest). Supported by android.emulator only.
    A fixed string , which tells in which GPU mode the emulator should be booted.
    headlessOptional. Boolean. false by default. When set to true, it tells Detox to boot an Android emulator with -no-window option, or to not open the iOS Simulator app when running with Android or iOS respectively.
    readonlyOptional. Boolean. Supported by android.emulator only.
    false by default. When set to true, it forces Detox to boot even a single emulator with -read-only option.
    Note: when used with multiple workers, this setting has no effect — emulators will be booted always with -read-only.
    - - + + \ No newline at end of file diff --git a/docs/next/config/logger/index.html b/docs/next/config/logger/index.html index 26319afb1f..d5b25c0147 100644 --- a/docs/next/config/logger/index.html +++ b/docs/next/config/logger/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -20,7 +20,7 @@ printed via them are formatted and saved as Detox logs.

    logger.options [BunyanDebugStreamOptions]

    Default: varies according to the logger.level.

    Since Detox is using bunyan-debug-stream for printing logs, we decided just to expose all its options for sake of simplicity of customization:

    export interface BunyanDebugStreamOptions {
    colors?: { [key: number]: string | string[] } | false | null;
    forceColor?: boolean;
    basepath?: string;
    basepathReplacement?: string;
    showProcess?: boolean;
    showDate?: boolean | ((time: Date, entry: any) => string);
    showPrefixes?: boolean | ((prefixes: string[]) => string);
    processName?: string;
    maxExceptionLines?: number | 'auto';
    stringifiers?: { [key: string]: Stringifier | null };
    prefixers?: { [key: string]: Stringifier | null };
    indent?: string;
    showLoggerName?: boolean;
    showPid?: boolean;
    showLevel?: boolean;
    showMetadata?: boolean;
    }

    There's one caveat inside logger.options, however – all the custom functions must not use closures! That's because they get eval()-ed every time the test runner spawns a new child worker process. In other words:

    const dontDoThis = date => date.toISOString();

    module.exports = {
    logger: {
    level: 'debug',
    options: {
    // showDate: (date) => dontDoThis(date),
    showDate: (date) => date.toISOString(), /* do this instead */
    },
    },
    // ...
    };
    - - + + \ No newline at end of file diff --git a/docs/next/config/overview/index.html b/docs/next/config/overview/index.html index 76bbef1a85..519dadebe5 100644 --- a/docs/next/config/overview/index.html +++ b/docs/next/config/overview/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -41,7 +41,7 @@ That helps if you ever need to share certain settings across multiple mobile projects, e.g.:

    {
    "extends": "@my-org/detox-preset",
    "configurations": {
    // …
    },
    }

    Please note that extends has to be a valid Node module path. Relative module paths will be resolved relatively to the Detox config file which contains that specific extends property, e.g.:

    ~/Projects/my-project/e2e/detox.config.js
    module.exports = { extends: "../base.detox.config.js" };
    // the path resolves to: ~/Projects/my-project/base.detox.config.js

    module.exports = { extends: "./ci.detox.config.js" };
    // the path resolves to: ~/Projects/my-project/e2e/ci.detox.config.js

    The extension chain can have an arbitrary length. All the configs are going to be deep-merged in the logical order: grandparent ← parent ← child.

    Default configuration

    As you might have noticed, you always have to pass -c <configuration name> argument when running Detox tests:

    detox test -c ios.sim.debug

    Technically this is not true. You can omit the configuration name if:

    • there is only one configuration in configurations dictionary;

    • you set some configuration as a default choice via selectedConfiguration property:

      /* @type {Detox.DetoxConfig} */
      module.exports = {
      selectedConfiguration: 'device1+app1',
      devices: {
      device1: { /* ... */ },
      device2: { /* ... */ },
      },
      apps: {
      app1: { /* ... */ },
      app2: { /* ... */ },
      },
      configurations: {
      'device1+app1': {
      device: 'device1',
      app: 'app1',
      },
      /* ... */
      },
      };

    The next articles will be describing each configuration section in detail.

    - - + + \ No newline at end of file diff --git a/docs/next/config/session/index.html b/docs/next/config/session/index.html index 1a46c3664c..1937059036 100644 --- a/docs/next/config/session/index.html +++ b/docs/next/config/session/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -21,7 +21,7 @@ it needs to understand which connection belongs to which app.

    Detox forwards sessionId to the app as a launch argument, so the app immediately knows where to connect to.

    caution

    Defining an explicit sessionId means you cannot use multiple workers, since the specified session will become busy for any test worker next to the first one to occupy it.

    {
    "session": {
    "server": "ws://localhost:8099",
    "sessionId": "YourProjectSessionId"
    }
    }

    session.autoStart [boolean]

    Default: true for undefined session.server, and false for defined.

    Controls whether Detox web socket server will be starting automatically. If false, it is assumed that you will be running it independently via detox run-server CLI command.

       "session": {
    + "autoStart": true,
    "server": "ws://localhost:8099",
    "sessionId": "YourProjectSessionId"

    session.debugSynchronization [number]

    Default: 10000.

    Tells Detox how long (in milliseconds) to wait for the app to become idle until it starts querying it for more details.

    {
    "session": {
    "debugSynchronization": 20000
    }
    }

    Detox will be printing the list of busy idling resources every time an action takes more than the specified period, e.g.:

    15:13:07.309 detox[17005] i The app is busy with the following tasks:
    • There are 10 work items pending on the dispatch queue: "Main Queue (<OS_dispatch_queue_main: com.apple.main-thread>)".
    • UI elements are busy:
    - Layers pending animations: 96.
    - Layers needs layout: 173.
    - View needs layout: 74.
    - View needs display: 98.
    - Layers needs display: 90.
    • Run loop "Main Run Loop" is awake.

    To disable this behavior (i.e. querying the app periodically), set the value to 0.

    Seeing logs like these usually indicates certain issues in your application, as mentioned in the Troubleshooting Guide.

    For the most detailed information, refer to the DetoxSync (iOS) Status Documentation.

    - - + + \ No newline at end of file diff --git a/docs/next/config/testRunner/index.html b/docs/next/config/testRunner/index.html index 8b65768b00..57ee77530f 100644 --- a/docs/next/config/testRunner/index.html +++ b/docs/next/config/testRunner/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -24,7 +24,7 @@ When Detox detects the use of this API, it suppresses its own CLI retry mechanism controlled via detox test … --retries <N> or testRunner.retries. The motivation is simple – activating the both mechanisms is apt to increase your test duration dramatically, if your tests are flaky.

    If you wish nevertheless to use both the mechanisms simultaneously, set it to true.

    Jest config

    Jest config generated by detox init is helpful for understanding how Detox integrates with Jest:

    e2e/jest.config.js
    /** @type {import('@jest/types').Config.InitialOptions} */
    module.exports = {
    rootDir: '..',
    testMatch: ['<rootDir>/e2e/**/*.test.js'],
    testTimeout: 120000,
    maxWorkers: 1,
    globalSetup: 'detox/runners/jest/globalSetup',
    globalTeardown: 'detox/runners/jest/globalTeardown',
    reporters: ['detox/runners/jest/reporter'],
    testEnvironment: 'detox/runners/jest/testEnvironment',
    verbose: true,
    };

    All the listed properties vary from mandatory to strongly recommended, and below we'll be explaining why (and, more importantly, how to customize them correctly). If you need to add extra properties, please consult the Configuring Jest article on its official website.

    1. rootDir and testMatch enforce the convention that your tests have .test.js extension and reside somewhere in e2e folder together with the Jest config:

      ├── …
      ├── e2e
      │   ├── feature1.test.js
      │   ├── feature2
      │   │   ├── subfeature1.test.js
      │   │   └── subfeature2.test.js
      │   ├── …
      │   └── jest.config.js
      ├── …
      ├── .detoxrc.js
      └── package.json
    2. testTimeout: 120000 overrides the default value (5 seconds), which is usually too short to complete a single end-to-end test. Two minutes should be safe enough, but you’re welcome to increase or decrease depending on your needs.

    3. maxWorkers: 1 prevents potential over-allocation of mobile devices according to the default Jest strategy. By default, Jest picks cpusCount — 1 which is too much (e.g. 6-core laptop would spawn 11 devices). Note that casually you can override it via forwarding command-line argument --maxWorkers <N>:

      detox test … --maxWorkers 2
      # … jest … --maxWorkers 2

      Change it only if you want to change the default value. For instance, you could use different number of workers depending on the environment, e.g.:

      /** @type {import('@jest/types').Config.InitialOptions} */
      module.exports = {
      // …
      maxWorkers: process.env.CI ? 2 : 1,
      };
    4. globalSetup file is essential as it integrates with Detox Internals API. If you need to set up something in addition, you should wrap it like this:

      module.exports = async () => {
      await require('detox/runners/jest').globalSetup();
      await yourGlobalSetupFunction();
      };
    5. globalTeardown file is essential as it integrates with Detox Internals API. If you need to tear down something in addition, you should wrap it like this:

      module.exports = async () => {
      try {
      await yourGlobalTeardownFunction();
      } finally {
      await require('detox/runners/jest').globalTeardown();
      }
      };
    6. reporters array should always include a reporter from Detox. We reserve right to add anytime some integration code there. Although currently it is rather empty, not having it puts you under risk every time you upgrade Detox versions.

    7. testEnvironment is the most important part of the integration. If you need to add something on top of it, please inherit like shown below:

      e2e/testEnvironment.js
      const { DetoxCircusEnvironment } = require('detox/runners/jest');

      class CustomDetoxEnvironment extends DetoxCircusEnvironment {
      constructor(config, context) {
      super(config, context);
      // custom code
      }

      async setup(config, context) {
      await super.setup(config, context);
      // custom code
      }

      async handleTestEvent(event, state) {
      await super.handleTestEvent(event, state);
      // custom code
      }

      async teardown(config, context) {
      try {
      // custom code
      } finally {
      await super.teardown(config, context);
      }
      }
      }

      module.exports = CustomDetoxEnvironment;
    8. verbose: true disables batching of Jest logs and ensures you see the logs in real time.

    Globals

    Unless behavior.init.exposeGlobals is set to false, Detox exposes its primitives (expect, device, ...) globally, and it will override Jest’s global expect object. If you need to use it nevertheless, import it explicitly:

    import jestExpect from 'expect';

    Mocking

    Don’t use jest.mock() or any other similar mocking mechanism. Follow our Mocking guide instead.

    Parallel Test Execution

    Detox relies on test runners to execute tests in parallel.

    If you’re using Jest under the hood, the easiest way is to specify -w, --maxWorkers, e.g.:

    detox test … --maxWorkers 2

    In the other cases, consult your test runner documentation.

    Forwarding CLI arguments

    If Detox does not recognize CLI arguments you pass, it forwards them as-is to the underlying test runner, e.g.:

    detox test -c ios.sim.debug --key1 value1 --key2
    # DETOX_CONFIGURATION=ios.sim.debug jest --key1 value1 --key2
    #
    # ● Unrecognized CLI Parameters:
    #
    # Following options were not recognized:
    # ["key1", "key2"]
    #
    # CLI Options Documentation:
    # https://jestjs.io/docs/cli

    Therefore, if test runner rejects such arguments, it is your responsibility to fix that.

    Since there might be argument clashes between Detox and a test runner, you can use -- (double dash) to forward the arguments as-is, e.g.:

    detox test -c ios.sim.debug -- --help
    # DETOX_CONFIGURATION=ios.sim.debug jest --help
    # Usage: jest [--config=<pathToConfigFile>] [TestPathPattern]
    #
    # Options:
    # …

    1. Detox has a few hard-coded default values for Jest: testRunner.args.$0 and testRunner.inspectBrk hook. Also detox test CLI is aware of Jest boolean arguments (e.g. -i, --runInBand, --bail, etc.), and it can auto-fix ambiguous commands like detox test --runInBand e2e/starter.test.js --bail. We're looking forward to make the code even more agnostic, but currently these caveats are worth mentioning for the developers of third-party test runner integrations.
    - - + + \ No newline at end of file diff --git a/docs/next/contributing/code-of-conduct/index.html b/docs/next/contributing/code-of-conduct/index.html index 7a550fb40a..3a9474df7d 100644 --- a/docs/next/contributing/code-of-conduct/index.html +++ b/docs/next/contributing/code-of-conduct/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -68,7 +68,7 @@ standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals.

    Consequence: A permanent ban from any sort of public interaction within the community.

    - - + + \ No newline at end of file diff --git a/docs/next/contributing/code/building-and-testing/index.html b/docs/next/contributing/code/building-and-testing/index.html index f359adb595..3ee228adae 100644 --- a/docs/next/contributing/code/building-and-testing/index.html +++ b/docs/next/contributing/code/building-and-testing/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -24,7 +24,7 @@ List of available configurations can be found under detox/test/e2e/detox.config.js.

    For example, to build the Detox test app for iOS in release mode, run:

    cd detox/test
    detox build --configuration ios.sim.release

    End-to-End Tests

    To run the end-to-end tests (after building the app), use the test command of the Detox CLI.

    For example, to run the end-to-end tests for iOS in release mode, run:

    cd detox/test
    detox test --configuration ios.sim.release

    To run in Android release mode, run:

    cd detox/test
    detox test --configuration android.emu.release
    note

    Mind that on Android, Detox expects a specific AVD with a specific name to be available on your computer. Be sure to install such an AVD, beforehand.

    Integration Tests

    Besides unit tests and end-to-end tests, we have some middle ground integration tests, which typically run Detox in a custom headless-like mode (i.e. stubs replace devices). Those tests typically execute Detox from a command line in that mode, and then do some post-processing of the results. We use Jest for running our integration tests.

    The integration reside under a dedicated directory alongside Detox's the self-test app's code.

    Run the following command to run the integration tests:

    cd detox/test
    npm run integration

    Linting

    We use ESLint for linting our JavaScript code.

    You can run the linter locally using the following command (under detox/test):

    npm run lint

    We also test our types using the following command:

    npm run test:types

    Running the CI Scripts Locally

    On our CI, we test our changes on both iOS and Android, and we lint-check our code. You can run the same scripts we run on our CI locally, to ensure your changes are passing the tests (under the project's root directory):

    npm run ci.ios
    npm run ci.android

    Refer to the scripts scripts/ci.ios.sh and scripts/ci.android.sh to see how we run the tests on our CI.

    - - + + \ No newline at end of file diff --git a/docs/next/contributing/code/example-projects/index.html b/docs/next/contributing/code/example-projects/index.html index 1de328523b..672750f9d5 100644 --- a/docs/next/contributing/code/example-projects/index.html +++ b/docs/next/contributing/code/example-projects/index.html @@ -11,13 +11,13 @@ - - + +
    Version: Next

    Example Projects

    Explore various example projects hosted in this monorepo to understand real-world usage and testing with Detox.

    • examples/demo-react-native-jest: Demonstrates Detox usage in a React Native app project.
    • examples/demo-native-ios: Illustrates Detox usage in a native (non-React Native) iOS app.
    • examples/demo-native-android (broken): Illustrates Detox usage in a native (non-React Native) Android app.
    • examples/demo-pure-native-android: Illustrates the subsidiary Detox-Native project.

    To run end-to-end tests associated with these projects, refer to the project-specific READMEs.

    - - + + \ No newline at end of file diff --git a/docs/next/contributing/code/overview/index.html b/docs/next/contributing/code/overview/index.html index 08e769a76e..a923b8390b 100644 --- a/docs/next/contributing/code/overview/index.html +++ b/docs/next/contributing/code/overview/index.html @@ -11,15 +11,15 @@ - - + +
    Version: Next

    Code Changes Overview

    Welcome to the code changes section! As a contributor, it's essential to understand the project's goals and adhere to its code of conduct. Before contributing, please review any existing issues related to your work, ensure your code is well-documented, and has adequate test coverage. It's also important that your code is compatible with the project's supported platforms and their versions.

    Our collaborative workflow is simple:

    1. Identify an Issue: If not exists already, create an issue for new features or bug reports, outlining your proposal or the identified problem.
    2. Propose a Solution: Open a pull request with a proposed solution to the issue. On complex issues, it's recommended to discuss your approach with the community and maintainers before submitting a PR.
    3. Engage in Review: A collaborator will review your pull request. Reviews from other contributors are also encouraged.
    4. Merge and Release: After the review, a collaborator will merge your contribution, typically releasing it in the next version of the project.

    We use GitHub for managing pull requests, conducting code reviews, and tracking issues.

    The code review process is central to our collaboration. Every contribution must go through a review before merging to maintain the quality of our codebase. As a contributor, being willing to discuss your work, respond to feedback, and work with the community is key to improving the project and creating a positive environment for all contributors.

    Repository Structure

    Our GitHub repository is a monorepo, which means it contains multiple Detox-related projects and packages.

    The main package is the Detox framework, which is the core of the project. It contains the native code for iOS and Android, as well as the JavaScript code. -The other projects are the Detox CLI, the Detox test app, example apps, and the Detox documentation website.

    Here's a high-level overview of the repository structure:

    • 📁 detox-cli - The CLI for Detox (e.g., detox init, detox test, read more about our CLI docs)
    • 📁 detox-copilot - Detox plugin that leverages large language models (LLM) to seamlessly invoke Detox actions (work in progress)
    • 📁 detox - The Detox framework
      • 📁 android - The Android native code, alongside native unit tests
      • 📁 ios - The iOS native code, including its native submodules (e.g., DetoxSync)
      • 📁 test - The Detox self-test app: A full-feature React Native app for end-to-end testing Detox itself
        • 📁 src - The app's JavaScript code
        • 📁 e2e - The Detox self-tests
        • 📁 integration - Detox integration self-tests
      • 📁 local-cli - Local CLI commands for Detox development (e.g., detox rebuild-framework-cache, which rebuilds the iOS framework)
      • 📁 runners - The Detox runners, which are used to run the tests
      • 📁 scripts - Scripts for building the framework for publishing
      • 📁 src - The JavaScript source code of Detox. The include bundled JavaScript unit tests
    • 📁 website - The documentation website of Detox (read more about our documentation site docs)
    • 📁 docs - The documentation of Detox, written in Markdown and published on the website
    • 📁 examples - Example apps for Detox (for more information, check the list of example projects)
    • 📁 scripts - Scripts for building and testing Detox
    - - +The other projects are the Detox CLI, the Detox test app, example apps, and the Detox documentation website.

    Here's a high-level overview of the repository structure:

    • 📁 detox-cli - The CLI for Detox (e.g., detox init, detox test, read more about our CLI docs)
    • 📁 detox - The Detox framework
      • 📁 android - The Android native code, alongside native unit tests
      • 📁 ios - The iOS native code, including its native submodules (e.g., DetoxSync)
      • 📁 test - The Detox self-test app: A full-feature React Native app for end-to-end testing Detox itself
        • 📁 src - The app's JavaScript code
        • 📁 e2e - The Detox self-tests
        • 📁 integration - Detox integration self-tests
      • 📁 local-cli - Local CLI commands for Detox development (e.g., detox rebuild-framework-cache, which rebuilds the iOS framework)
      • 📁 runners - The Detox runners, which are used to run the tests
      • 📁 scripts - Scripts for building the framework for publishing
      • 📁 src - The JavaScript source code of Detox. The include bundled JavaScript unit tests
    • 📁 website - The documentation website of Detox (read more about our documentation site docs)
    • 📁 docs - The documentation of Detox, written in Markdown and published on the website
    • 📁 examples - Example apps for Detox (for more information, check the list of example projects)
    • 📁 scripts - Scripts for building and testing Detox
    + + \ No newline at end of file diff --git a/docs/next/contributing/code/reviewing-pull-requests/index.html b/docs/next/contributing/code/reviewing-pull-requests/index.html index 557ff72f39..4631f22207 100644 --- a/docs/next/contributing/code/reviewing-pull-requests/index.html +++ b/docs/next/contributing/code/reviewing-pull-requests/index.html @@ -11,13 +11,13 @@ - - + +
    Version: Next

    Review a Pull Request

    Reviewing a PR is an important part of the contribution process. It ensures the quality of the codebase and provides an opportunity for the community to collaborate and learn from each other.

    note

    Reviewers should refer to the Submitting Pull Requests page to understand the guidelines the contributor followed when creating the PR. This will provide context and ensure a thorough review process.

    Understand the Changes

    • Ensure alignment with the project’s coding standards and overall architecture.
    • Read the provided description and any linked issues for context.

    Provide Constructive Feedback

    Community members can provide valuable feedback on PRs, especially if they have experience with the feature or area of the codebase.

    • Be respectful and courteous.
    • Offer code snippet suggestions if something could be done better.
    • Request changes if necessary and provide clear, constructive feedback.

    Review the Code

    Experienced developers are encouraged to review PRs and provide feedback. This is a great way to learn more about the project and collaborate with the community.

    You can review the code by following these requirements:

    • Alignment with coding standards and architectural guidelines.
    • Adequate test coverage (unit, integration, and e2e).
    • Ensure the documentation reflects the changes in the PR, if necessary. Refer to the Documentation Changes page for guidelines.
    • Meaningful and semantically correct commit messages.

    Merging Pull Requests

    Every PR requires approval from a maintainer before it can be merged.

    However, we encourage the community to review and provide feedback on PRs. Helping with the review process not only improves the quality of the code changes, but also helps the maintainers by reducing the workload.

    - - + + \ No newline at end of file diff --git a/docs/next/contributing/code/setting-up-the-dev-environment/index.html b/docs/next/contributing/code/setting-up-the-dev-environment/index.html index de7e78499a..cb1668a760 100644 --- a/docs/next/contributing/code/setting-up-the-dev-environment/index.html +++ b/docs/next/contributing/code/setting-up-the-dev-environment/index.html @@ -11,13 +11,13 @@ - - + +
    Version: Next

    Setting up the Development Environment

    This document guides you through setting up your development environment to start contributing to our codebase.

    Prerequisites

    Please complete our Introductory environment setup guide before proceeding. This ensures you have the necessary tools and dependencies installed in order to run Detox tests, which is a fundamental step before being able to contribute to the project itself.

    Node.js

    We recommend using nvm or nvm-windows to manage your Node.js versions. However, you can find our required Node.js version in the .nvmrc file and install it using your preferred method or from the official download page.

    Currently, we require lts/iron (Node.js 20.x) for our development environment.

    tip

    The exhaustive list of LTS codenames (e.g. lts/iron) can be found at CODENAMES.md in the Node.js repository.

    Setting Up The Monorepo Management

    Our repository is a monorepo, which means it contains multiple Detox-related projects and packages. Read more about our repository structure.

    To set up the monorepo locally, follow these steps:

    Install the monorepo management tool, lerna:

    npm install lerna@6.x.x --global

    Clone the repository and navigate to the project directory:

    git clone git@github.com:wix/Detox.git
    cd detox
    git submodule update --init --recursive

    From the project's root directory, install and link the internal projects:

    lerna bootstrap

    Installing Common Dependencies

    React-Native CLI

    react-native-cli is a command line interface for React Native.

    npm install react-native-cli --global

    Watchman

    Watchman is a tool by Facebook for watching changes in the filesystem.

    brew install watchman

    xcpretty

    xcpretty is a fast and flexible formatter for xcodebuild.

    gem install xcpretty
    - - + + \ No newline at end of file diff --git a/docs/next/contributing/code/submitting-pull-requests/index.html b/docs/next/contributing/code/submitting-pull-requests/index.html index 7b77d2274d..ca5be0419d 100644 --- a/docs/next/contributing/code/submitting-pull-requests/index.html +++ b/docs/next/contributing/code/submitting-pull-requests/index.html @@ -11,14 +11,14 @@ - - + +
    Version: Next

    Submitting Pull Requests

    note

    Before creating a PR, it's recommended to consult with the Detox collaborators. Request a design review or assistance with planning the tests to ensure alignment with project goals.

    Contact us on our Discord Server or open an issue on GitHub.

    Fork the Repository

    • Fork the repository to your own GitHub account.
    • Create a new branch from the master branch for your work.

    Test Your Changes

    Being a testing framework, Detox is a highly self-tested project. Be sure to add/fix test coverage over your work, by running the various test flavors associated with your changes. You can review them, here.

    Modify Documentation

    If your changes affect the public API, update the documentation accordingly to reflect your changes. Refer to the Documentation Changes page for guidelines.

    Commit Message Guidelines

    Write descriptive, meaningful commit messages that follow the Conventional Commits format, specifying the type of change, the scope, and a concise description. For example:

    fix(ios): resolve crash on scrolling in iOS 17.0
    feat(android): add new API for setting the device locale
    test: update unit tests for new utility function

    More details on good commit messages can be found here.

    Open the Pull Request

    • Fill in the provided PR template fields on GitHub.
    • Provide a clear description of your changes and any necessary context.
    - - + + \ No newline at end of file diff --git a/docs/next/contributing/documentation/index.html b/docs/next/contributing/documentation/index.html index 438aaa8e16..6290307fa1 100644 --- a/docs/next/contributing/documentation/index.html +++ b/docs/next/contributing/documentation/index.html @@ -11,14 +11,14 @@ - - + +
    Version: Next

    Documentation Site

    Contributions towards enhancing our documentation are highly valued in the Detox community. Clear, concise, and comprehensive documentation enables users to understand and utilize the project more effectively.

    We appreciate all contributions, from correcting typos to creating new documentation pages.

    Getting Started

    Our documentation website is developed using Docusaurus. To set up a local version of the website for editing, follow these steps:

    cd website
    npm install
    npm start

    Making Updates

    To modify an existing page, find the associated markdown file in the docs/ directory and make the required changes. To introduce a new page, create a markdown file in docs/ and link to it in website/sidebars.json.

    Deploying Changes

    Automatic updates to the website occur with each commit to the master branch, with these changes reflected under the Next version. The process of tagging and locking documentation to a specific version is automated and coincides with each Detox release.

    If there's a need to update the documentation of a particular version, modify the associated files and code located under website/versioned_docs/version-<version>/ and website/versioned_sidebars/version-<version>-sidebars.json.

    Modifying Old Versions

    To update an older version with the latest changes:

    1. Remove the desired version from versions.json.
    2. Execute npm run docusaurus docs:version <version>.

    Reviewing Style Modifications

    If you're making changes to the stylesheets, use this demo page to visually inspect the impact of your changes and avoid unintentional visual regressions.

    - - + + \ No newline at end of file diff --git a/docs/next/contributing/feature-requests/index.html b/docs/next/contributing/feature-requests/index.html index ccb2b0a2a4..9d9743c1dc 100644 --- a/docs/next/contributing/feature-requests/index.html +++ b/docs/next/contributing/feature-requests/index.html @@ -11,13 +11,13 @@ - - + +
    Version: Next

    Feedback and Suggestions

    Open dialogue and feedback, particularly feature requests, play an invaluable role in open-source communities like Detox. They provide insights into user preferences and requirements, aiding in the refinement and enhancement of the project.

    Detox project provides various platforms for feedback: GitHub Issues, Twitter, and Discord.

    Keep in mind that feedback is varied, including feature suggestions, improvements, identification of missing functionality, and support requests. Each type of feedback has a preferred method of submission.

    Giving Feedback

    Follow these tips to deliver clear, actionable feedback:

    • Constructive Criticism: Frame your feedback in a positive light, understanding the perspective of the project maintainers.
    • Comprehensive Details: Include as much relevant information as possible to help maintainers understand the context and use case.
    • Clarity and Respect: Make your feedback specific, clear, and respectful, ensuring it is actionable for the maintainers.
    • Guidelines: Adhere to the below suggestions for each type of feedback.

    Suggesting Features

    When suggesting a new feature, remember to provide thorough information, such as examples, screenshots, and code snippets, to communicate your idea effectively.

    Just as in general feedback, make sure your feature request is:

    • Specific: Clearly describe the feature you wish to see implemented.
    • Detailed: Offer as much context as possible, including use cases, examples, and why this addition would benefit the community.
    • Respectful: Remember, the project maintainers or contributors are not obligated to implement your request. Be polite and respectful in your request.

    By making your feedback as clear and detailed as possible, you'll greatly assist the maintainers in understanding and potentially implementing your suggestion.

    - - + + \ No newline at end of file diff --git a/docs/next/contributing/index.html b/docs/next/contributing/index.html index aade34dc94..d5cc089f7f 100644 --- a/docs/next/contributing/index.html +++ b/docs/next/contributing/index.html @@ -11,13 +11,13 @@ - - + +
    Version: Next

    Contributing to Detox

    Detox, an open-source project, greatly values community involvement. Whether you're a mobile developer, QA specialist, or an open source enthusiast, your contribution could significantly enhance the reliability, user experience, and development process of mobile applications.

    Our Code of Conduct

    To ensure an inclusive, safe environment for all contributors, we adhere to the Contributor Covenant code of conduct. This well-recognized code provides clear guidelines for respectful behavior.

    Ways to Contribute

    All contributions, regardless of size, can help shape Detox. We welcome:

    • Questions: Your inquiries can help identify gaps in our documentation and benefit all users.
    • Answers: Assisting other Detox users by providing guidance or responses to their questions.
    • Bug Reports: Help us identify and resolve Detox issues.
    • Feature Suggestions: Your ideas for new features can help us improve Detox according to user needs.
    • Code Contributions: Directly contribute by fixing bugs, adding features, or improving our codebase.
    • Code Reviews: Help maintain the quality of our codebase by reviewing others' contributions.
    • Documentation Enhancements: Improve Detox documentation from user guides to API references.
    • Content Creation: Share your knowledge of Detox through blog posts, tutorials, videos, and more. We're always excited to share your content on our Twitter account and Discord server.

    Your active participation helps build a vibrant community dedicated to improving mobile development.

    Engaging in the Community

    Join our Discord server to discuss Detox, ask questions, and provide help. Follow our Twitter account for updates on the project.

    Becoming an active community member is a great way to start contributing to Detox. It provides familiarity with the project, helps identify opportunities to contribute, and allows guidance from other contributors. The more you engage, the more recognition your contributions receive and the greater impact you can make on the project's direction.

    Appreciation and Recognition

    All our contributors deserve recognition. We express our gratitude by featuring them in our Release Notes.

    Core Contributors Program

    We plan to launch a "Core Contributor" program for individuals who have significantly contributed to Detox and shown deep understanding of the project while being active in the community. Core contributors will be invited to a private Discord channel for exclusive discussions and will receive a distinguished role on our Discord server.

    - - + + \ No newline at end of file diff --git a/docs/next/contributing/questions/answering-questions/index.html b/docs/next/contributing/questions/answering-questions/index.html index e7c029dafc..638a7341ba 100644 --- a/docs/next/contributing/questions/answering-questions/index.html +++ b/docs/next/contributing/questions/answering-questions/index.html @@ -11,14 +11,14 @@ - - + +
    Version: Next

    Answering Questions

    Contributing answers is an invaluable part of supporting the Detox community. By sharing your knowledge and experience, you help others learn and grow, and you also contribute to enhancing Detox for the entire community.

    Different Ways to Answer

    Answering a question is not limited to providing a solution in the comments. Sometimes, you may not have a solution, but you can still contribute by:

    • Guide towards a solution: If unsure about an answer, provide guidance on where to look, including relevant documentation or resources.
    • Request more information: Ask for more detail if required to better address the question. For example, you may ask for code snippets, screenshots, or reproducible examples.
    • Refer to existing answers: Link an already answered question if applicable.

    Guidelines for Writing Clear Answers

    When answering questions, follow these guidelines to ensure your answers are clear and actionable:

    • Be specific: Try to pinpoint what exact information you need to effectively answer the question. General requests such as "Please share more details" are not very helpful.
    • Maintain respect: Ensure your communication is always polite and contextual. When asking for more information, it's better to explain why it's needed so that the person asking understands the relevance.
    • Completeness: Make sure to provide a detailed answer that includes all relevant information, such as code snippets, screenshots, and examples. This practice helps others understand your answer and apply it to their use case.
    In a Nutshell

    When you're answering a question, remember to be specific, clear, and respectful. By providing detailed and well-thought out response, you will play an important role in contributing to and enhancing the knowledge of our community.

    - - + + \ No newline at end of file diff --git a/docs/next/contributing/questions/asking-questions/index.html b/docs/next/contributing/questions/asking-questions/index.html index 660c309561..6293f4854f 100644 --- a/docs/next/contributing/questions/asking-questions/index.html +++ b/docs/next/contributing/questions/asking-questions/index.html @@ -11,13 +11,13 @@ - - + +
    Version: Next

    Asking Questions

    Posting queries on public forums increases visibility and chances of getting an answer, and it also helps others with similar issues. However, it's essential to ask questions the right way to get the right answers.

    In case you were able to resolve your issue, consider sharing your solution with the community. By doing so, you contribute to enhancing Detox for the entire community.

    Before Asking

    In case you're facing an issue, consider the following steps before posting a question:

    • Suspect a bug? Refer to our Reporting Bugs guide to determine if you've encountered a Detox bug and how to report it.
    • Search for existing answers that may have addressed your question already. Below, we've listed the right platforms to ask (and search) questions.
    • Review our documentation thoroughly for any related information. Use the search bar in the top right corner to streamline your search.

    If an existing answer doesn't fully address your question, feel free to ask a follow-up in the same thread if comment-enabled or create a new question, linking back to the original one if possible.

    Where to Ask

    If you can't find an answer to your question, you can ask it in the following ways:

    Pro Tip

    When posting a question, ensure to include all relevant information, such as code snippets, screenshots, and examples. This practice helps others understand your query and provide comprehensive answers.

    - - + + \ No newline at end of file diff --git a/docs/next/contributing/reporting-bugs/index.html b/docs/next/contributing/reporting-bugs/index.html index ed587df798..cc6920e19e 100644 --- a/docs/next/contributing/reporting-bugs/index.html +++ b/docs/next/contributing/reporting-bugs/index.html @@ -11,15 +11,15 @@ - - + +
    Version: Next

    Reporting Bugs

    Encountering a bug? Your detailed report is key for us to identify and rectify the issue.

    Before reporting a bug, please review the following guidelines.

    Search for Existing Issues

    Before creating a new issue, search for existing issues to see if the bug has already been reported. If you find an existing issue, add a comment to it with any additional information you have.

    Create a Bug Report

    If you can’t find an existing issue, create a new one. When creating a bug report, follow these guidelines:

    1. Follow the Template: While creating a bug report on GitHub, adhere to the provided template for creating a clear and concise report.
    2. Reproduction Steps: Providing a reproduction example is essential.
    3. Artifacts: Include screenshots, logs, visibility artifacts, and any other relevant information. Be ready to provide more information upon request.
    4. Detailed Description: Avoid creating issues with brief descriptions or general error messages. Providing a thorough description and context is vital.
    Tip

    Creating a minimal code reproduction is crucial as it helps other contributors and maintainers understand and investigate the issue better. Issues without a reproduction are less likely to be addressed.

    - - + + \ No newline at end of file diff --git a/docs/next/copilot/best-practices/index.html b/docs/next/copilot/best-practices/index.html new file mode 100644 index 0000000000..d93ae94e97 --- /dev/null +++ b/docs/next/copilot/best-practices/index.html @@ -0,0 +1,23 @@ + + + + + +Detox Copilot Best Practices | Detox + + + + + + + + + + + +
    +
    Version: Next

    Detox Copilot Best Practices

    Detox Copilot allows you to write tests using natural language commands. Each step corresponds to a specific action or assertion within your app. In case you're wondering how to make the most out of this feature, here are some best practices to follow when writing your Copilot intents.

    Step-by-Step Instructions

    • Write Sequential Steps: Describe your test steps in a clear and sequential manner.
    • Example:
    it('should navigate and add a product to the cart', async () => {
    await copilot.perform(
    'Navigate to the "Products" page',
    'Tap on the "Add to Cart" button for the first product',
    'Verify that the "Added to Cart" pop-up is displayed'
    );
    });

    Be Specific and Clear

    • Provide Clear Instructions: The clearer your instructions, the better Copilot can interpret them.
    • Example:
      • Good: 'Tap on the "Login" button'
      • Better: 'Tap on the "Login" button located at the top right corner'

    One Action per Step

    • Avoid Combining Multiple Actions: Keep each step focused on a single action or assertion.

    • Example:

      • Avoid: 'Tap on the "Login" button and enter credentials'
      • Prefer:
      'Tap on the "Login" button',
      'Enter "user@example.com" into the "Email" field'

    Use Exact Labels

    • Refer to UI Elements Precisely: Use the exact text or identifiers as they appear in the app.
    • Example:
      • Good: 'Enter "password123" into the "Password" field'
      • Avoid: 'Enter password into its field'

    Keep Assertions Simple

    • Focus on Specific Outcomes: Make assertions straightforward and specific.
    • Example:
      • Good: 'Verify that the "Welcome" message is displayed'
      • Avoid: 'Check if the welcome message appears correctly on the screen'

    Leverage Visual Context

    • Utilize Visual Descriptions: If your LLM supports image snapshots, include visual context in your intents.
    • Example: 'Ensure the profile picture is visible at the top of the screen'

    Avoid Ambiguity

    • Specify Elements Precisely: If multiple elements could match, provide additional details.
    • Example:
      • Ambiguous: 'Tap on the "Submit" button'
      • Specific: 'Tap on the "Submit" button in the registration form'

    General Recommendations

    • Flexibility: While it's best to provide clear instructions, Copilot is designed to interpret a variety of phrasing. Different approaches can work, and you are encouraged to experiment.
    • Feedback Loop: Observe how Copilot interprets your instructions and adjust accordingly.
    • Model Selection: Choose an LLM model that best suits your application's complexity and language requirements. We recommend advanced models like Sonnet 3.5 or GPT-4o for better performance.
    + + + + \ No newline at end of file diff --git a/docs/next/copilot/technical-overview/index.html b/docs/next/copilot/technical-overview/index.html new file mode 100644 index 0000000000..88d5d40b7a --- /dev/null +++ b/docs/next/copilot/technical-overview/index.html @@ -0,0 +1,26 @@ + + + + + +Technical Overview | Detox + + + + + + + + + + + +
    +
    Version: Next

    Technical Overview

    Detox Copilot integrates seamlessly with your testing environment by combining natural language processing with Detox's robust testing capabilities.

    Building Blocks of Detox Copilot

    To enable Detox Copilot to work harmoniously with Detox and your app, it relies on several building blocks:

    • Dynamic Code Generation: Copilot generates Detox code on-the-fly to perform actions or assertions based on your instructions.
    • Visual Analysis: Copilot can analyze the app's screen to verify the presence of specific elements or text, enabling assertions beyond standard UI checks.
    • App View Hierarchy: Detox generates an XML representation of the app's view hierarchy, helping Copilot interact with all UI elements, even those not directly visible.
    • Snapshot Images: Optional snapshot images provide Copilot with visual context for more precise understanding and analysis.
    • Injected Test IDs: When necessary, Detox injects unique test IDs to ensure reliable access to UI elements.
    • Caching Mechanism: Copilot caches execution results to optimize performance and reduce unnecessary LLM calls (see Performance Optimization).
    • Test Context Awareness: Copilot maintains awareness of previously executed steps, ensuring continuity and readability in the test flow.

    Copilot's Execution Flow

    StartGather Context(App's UI State)Check Cache(Based on intent)Result in Cache?Retrieve Result(From Cache)Execute CachedDetox CodeProvide Feedback(Error / Result)Create LLM Prompt(Based on Context and Intent)Generate Detox Code(Using LLM)Execute GeneratedDetox CodeCache Generated CodeProvide Feedback(Error / Result)Next Step?EndYesNoNoYes

    The execution flow of Detox Copilot can be broken down into six main steps:

    1. Gather Context: Collect relevant app state, view hierarchy, and previous step results.
    2. Interpret Intent: Use the LLM to interpret the natural language instruction.
    3. Generate Code: Create the appropriate Detox commands.
    4. Execute Action: Run the generated Detox code.
    5. Cache Results: Store execution results to optimize future runs.
    6. Provide Feedback: Return values or confirm actions for subsequent steps.

    By combining these steps, Detox Copilot effectively bridges the gap between natural language instructions and concrete test actions.

    Performance Optimization

    Detox Copilot is designed to avoid unnecessary calls to the LLM service and optimize performance using static cache that is based on the current state of the app. +This minimizes the number of calls to the LLM service and reduces latency. +However, you can optimize your PromptHandler implementation to reduce latency and improve response times (e.g., by reducing the image size or implementing a server-side cache). +We have plans to optimize even further by introducing more advanced caching mechanisms for better performance.

    + + + + \ No newline at end of file diff --git a/docs/next/copilot/testing-with-copilot/index.html b/docs/next/copilot/testing-with-copilot/index.html new file mode 100644 index 0000000000..30b6459aec --- /dev/null +++ b/docs/next/copilot/testing-with-copilot/index.html @@ -0,0 +1,28 @@ + + + + + +Natural Language Testing with Detox Copilot | Detox + + + + + + + + + + + +
    +
    Version: Next

    Natural Language Testing with Detox Copilot

    In this tutorial, we'll explore how to use Detox Copilot to write end-to-end tests using natural language commands. Detox Copilot leverages large language models (LLMs) to translate human-readable instructions into Detox actions and assertions, making test writing more intuitive and accessible.

    note

    Detox Copilot is integrated into Detox and requires no additional installation. For complete API details, refer to our Detox Copilot API documentation.

    Work in Progress

    Note: Detox Copilot is in active development. APIs are subject to change in future releases.

    Introduction

    Detox Copilot simplifies the process of writing tests by allowing you to describe test steps in natural language. +It interprets these instructions and translates them into Detox commands. This guide will help you integrate Detox Copilot into your testing workflow and provide best practices for writing effective intents.

    Demo

    Setting Up Detox

    Before you begin, ensure that your Detox environment is properly set up. +If you need assistance with the setup, refer to the Detox Getting Started Guide.

    Implementing a PromptHandler

    The PromptHandler is a crucial component that interfaces with your LLM service. +Below is an example of how to implement a PromptHandler using OpenAI's GPT-4 API.

    You can adapt this code to work with other LLMs or services as needed. You may also find pre-built PromptHandler implementations for popular LLMs in the detox-copilot repository on GitHub.

    Open for Contributions

    If you have implemented a PromptHandler for a specific LLM or service, consider contributing it to the Detox Copilot repository to help the community.

    Example of a PromptHandler for OpenAI's GPT-4

    const { Configuration, OpenAIApi } = require('openai');
    const path = require('path');

    class OpenAIPromptHandler {
    constructor(apiKey) {
    const configuration = new Configuration({ apiKey });
    this.openai = new OpenAIApi(configuration);
    }

    async runPrompt(prompt, imagePath) {
    const messages = [
    { role: 'system', content: 'You are a test automation assistant.' },
    { role: 'user', content: prompt },
    ];

    // If an image is provided, "upload" it and include the URL in the prompt
    if (imagePath && this.isSnapshotImageSupported()) {
    try {
    const imageUrl = await this.uploadImage(imagePath);
    messages.push({
    role: 'user',
    content: `Here is an image for reference: ${imageUrl}`,
    });
    } catch (error) {
    console.error('Error uploading image:', error);
    throw new Error('Failed to upload image');
    }
    }

    const response = await this.openai.createChatCompletion({
    model: 'gpt-4',
    messages,
    });

    return response.data.choices[0].message.content;
    }

    async uploadImage(imagePath) {
    // Uploads the image and returns the URL
    }

    isSnapshotImageSupported() {
    return true; // Set to true to handle image uploads
    }
    }

    module.exports = OpenAIPromptHandler;

    Explanation:

    • runPrompt: Sends the prompt to the LLM and returns the response.
    • isSnapshotImageSupported: Indicates whether the LLM can handle snapshot images. If set to true, the handler will include image URLs in the prompt and will include them when instructing Detox Copilot.

    Initializing Detox Copilot

    Initialize Detox Copilot with your PromptHandler before running any tests. +This is typically done in the beforeAll hook or a setup file.

    Example:

    const {copilot} = require('detox/index');
    const OpenAIPromptHandler = require('./OpenAIPromptHandler');

    beforeAll(() => {
    const promptHandler = new OpenAIPromptHandler('YOUR_OPENAI_API_KEY');
    copilot.init(promptHandler);
    });

    Writing Tests with Detox Copilot

    With Detox Copilot initialized, you can now write tests using the copilot.perform method.

    Writing Step-by-Step Tests

    Detox Copilot allows you to write tests by providing a sequence of natural language instructions. Each instruction corresponds to a single action or assertion.

    it('should verify element sizes and button states', async () => {
    await copilot.perform(
    'Launch the app with notification permissions enabled',
    'Navigate to the "Settings" page',
    'Verify that the "Save" button is disabled',
    'Locate the profile picture element',
    'Verify that the profile picture size is 100 x 100 pixels and that the image is available and rendered',
    'Tap on the "Edit Profile" button',
    'Verify that the "Save" button is now enabled',
    'Verify that the "Username" field text is bold'
    );
    });

    In the example above, Copilot can perform checks that go beyond traditional UI testing, such as verifying element sizes, button states (enabled/disabled), or text styles (e.g., bold). This is thanks to the combination of Detox code-generation and multimodal LLMs that can analyze the snapshots.

    • Step-by-Step Instructions: Each step is a separate string, representing a single action or assertion.
    • Sequential Execution: Steps are executed in order, allowing you to describe complex interactions intuitively.

    Hybrid Tests with Copilot and Detox APIs

    You can also combine Copilot commands with traditional Detox APIs for more control.

    it('should add an item to the cart', async () => {
    await copilot.perform(
    'Launch the app',
    'Navigate to the "Products" page',
    'Tap on the "Add to Cart" button for the first product'
    );

    const cartBadge = element(by.id('cart-badge'));
    await expect(cartBadge).toHaveText('1');

    await copilot.perform(
    'Navigate to the "Cart" page',
    'Verify that the product is listed in the cart'
    );
    });

    Locating Elements with Copilot

    You can also use Copilot to retrieve values, locate elements, or perform advanced checks such as verifying element sizes or button states.

    it('should display the correct page title', async () => {
    const pageTitleElement = await copilot.perform(
    'Launch the app',
    'Navigate to the "Profile" page',
    'Locate the page title element'
    );

    await expect(pageTitleElement).toHaveText('Profile');
    });

    Contributing to Detox Copilot

    Contributions are welcome! +Visit the Detox Copilot GitHub Repository to open issues or pull requests if they are relevant to the core-library functionality or open a it under Detox repository if it is related to Detox-Copilot integration or if you are not sure where the issue should be opened.

    + + + + \ No newline at end of file diff --git a/docs/next/demo/index.html b/docs/next/demo/index.html index 3c4de168cd..9173aea33e 100644 --- a/docs/next/demo/index.html +++ b/docs/next/demo/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -23,7 +23,7 @@ Fusce tempor nisl euismod rhoncus magna eget, pellentesque auguerhoncus magna eget, pellentesque augue Fusce tempor nisl euismod, rhoncus pellentesques magna tempus augue mollis.

    Donec in nulla AUCTOR_SED_MALESUADA (or AMALESUADA_MASSA) eros posuere Curabitur elementum mi massa, non molestie ipsum velit vel:

    $ANDACISUS_SED_EGET/rhoncus/tempus -augue-mollis

    Syntax highlighting section

    npm

    npm install "dummy_package" --save

    Shell

    # Check the exit status of the last command
    if [ $? -eq 0 ]; then
    echo "dummy_command succeeded"
    else
    echo "dummy_command failed"
    fi

    JSX

    src/DummyExample.jsx
    import { DummyButton } from 'dummy-react-library';

    // A dummy component
    function DummyExample() {
    const [dummyState, setDummyState] = React.useState(false);

    return (
    <DummyContainer>
    <DummyButton onClick={() => setDummyState(!dummyState)}>
    Click me
    </DummyButton>
    </DummyContainer>
    );
    }

    Java

    package com.dummy;

    @Test
    public class DummyClass {
    // A dummy comment
    public static void main(String[] args) {
    int dummyVariable = 5;
    for (int i = 0; i < 10; i++) {
    dummyVariable += i;
    System.out.println("The dummy value is " + dummyVariable);
    }
    }
    }

    diff

       apps: {
    'dummy.debug': {
    type: 'dummy.app',
    - binaryPath: 'dummy/build/Products/${conf}-dummyplatform/YOUR_APP.dummy',
    + binaryPath: 'dummy/build/Products/${conf}-dummyplatform/YOUR_APP.dummy',
    - build: 'dummy_command -workspace dummy/YOUR_APP.dummyworkspace -scheme YOUR_APP -configuration ${conf} -sdk dummyplatform -derivedDataPath dummy/build'
    + build: 'dummy_command -workspace dummy/example.dummyworkspace -scheme example -configuration ${conf} -sdk dummyplatform -derivedDataPath dummy/build'

    JSON

    {
    "items": {
    "object1": {
    "property1": "dummy_type",
    "property2": "dummy_device",
    "property3": ["dummy_path/to/dummy_file.dummy"]
    }
    }
    }

    YAML

    actions:
    - dummy install example
    - push_dummytext: "*"

    - dummy install example --save global
    # Lorem ipsum dolor sit amet, consectetur SampleCo is using ($DUMMY/lorem-text)

    Thanks for checking with this visual regression suite!

    - - + + \ No newline at end of file diff --git a/docs/next/guide/android-dev-env/index.html b/docs/next/guide/android-dev-env/index.html index d36d889e27..76ebacfdfe 100644 --- a/docs/next/guide/android-dev-env/index.html +++ b/docs/next/guide/android-dev-env/index.html @@ -11,17 +11,17 @@ - - + +
    -
    Version: Next

    Setting Up an Android Development & Testing Environment

    This guide provides some core practices to follow in setting up a stable, reliable environment for running automated UI tests using Android emulators (using Detox, in particular) – be it on a personal, local computer, or a powerful CI machine.

    Note that running automated UI tests is not the same as developing Android apps. Hence, you may find yourself not 100% aligned with the recommendations here, and should consider being so.

    Java Setup

    This is the most basic step in the process, as without a proper Java SDK installed, nothing Android-ish works – at least not from command-line, which is mandatory for executing Detox.

    The bottom line is that Android needs Java installed. If you want to run with React Native 73 and Android 14 then it needs to be at least Java 17, otherwise you should have Java 11.

    To check for your real java-executable’s version, in a command-line console, run:

    java -version

    What needs to be verified is that java is in-path and that the output contains something like this:

    java version "17.x.x"
    ...

    Note: Do not be confused by the Java version potentially used by your browsers, etc. For Detox, what the command-line sees is what matters.


    If java -version yields an error, it is likely that java is either not in your path or not even installed at all. To try to understand which of the two is true, use this guide.

    If otherwise the version is simply wrong, try these course of actions:

    Android SDK

    If you have Android Studio installed - as most of us do, then the SDK should be available for you somewhere on your machine*. However, for CI agents – possibly running with no GUI, or if you simply don’t want the somewhat bloated piece of software on your computer, it is possible to simply download the SDK and tool-set, purely. Both cases are covered in Google’s Android guide about Android Studio. For the pure-tools option, refer to the Command line tools only section at the bottom.

    For more help on setting the SDK up, this guide might be helpful.

    Whatever option you choose, and whichever platform you’re running on (Mac, Linux, Windows), we strongly recommend that eventually you would have 2 additional things set up:

    • The path to the SDK’s root directory is set into the ANDROID_SDK_ROOT environment variable.
    • The path to the SDK’s root directory is bundled into the global PATH on your computer.

    * Inspect the content of your ANDROID_SDK_ROOT and ANDROID_HOME environment variables.

    Android (AOSP) Emulators

    Mobile-apps’ automation needs an Android device to run on. If you haven’t already done so, you should set up an Emulator. But, wait - don’t go and install the default one: read through, first.

    We’ve long proven that for automation - which requires a stable and deterministic environment, Google’s emulators running with Google APIs simply don’t deliver what’s needed. Be it the preinstalled Google play-services - which tend to take up a lot of CPU, or even Google’s gboard Keyboard - which is full-featured but overly bloated: These encourage flakiness in tests, which we are desperate to avoid in automation.

    Fortunately, the Android team at Google offers a pretty decent alternative: AOSP emulators (Android Open-Source Project). While possibly lacking some of the extended Google services, and a bit less fancy overall, we strongly recommend to strictly use this flavor of emulators for running automation/Detox tests. They can be installed alongside regular emulators.

    Here’s a visual comparison between the two - an SDK 28 (Android 9) AOSP emulator (left) vs. an emulator with Google APIs installed (right):

    AOSP vs Google-API

    Here’s how to install them using the command line

    While it’s possible to do this using Android Studio, we’ll focus on the command line, as it is also good for headless CI machines.

    1. Locate your 'Android home' folder - typically set in the ANDROID_HOME environment variable, or in its predecessor - ANDROID_SDK_ROOT. If ANDROID_HOME isn’t set, either set it yourself or run the following commands after cd-ing into the home folder.

    2. Preliminary: Upgrade your emulator executable to the latest version. +

      Version: Next

      Setting Up an Android Development & Testing Environment

      This guide provides some core practices to follow in setting up a stable, reliable environment for running automated UI tests using Android emulators (using Detox, in particular) – be it on a personal, local computer, or a powerful CI machine.

      Note that running automated UI tests is not the same as developing Android apps. Hence, you may find yourself not 100% aligned with the recommendations here, and should consider being so.

      Java Setup

      This is the most basic step in the process, as without a proper Java SDK installed, nothing Android-ish works – at least not from command-line, which is mandatory for executing Detox.

      The bottom line is that Android needs Java installed. If you want to run with React Native 73 and Android 14 then it needs to be at least Java 17, otherwise you should have Java 11.

      To check for your real java-executable’s version, in a command-line console, run:

      java -version

      What needs to be verified is that java is in-path and that the output contains something like this:

      java version "17.x.x"
      ...

      Note: Do not be confused by the Java version potentially used by your browsers, etc. For Detox, what the command-line sees is what matters.


      If java -version yields an error, it is likely that java is either not in your path or not even installed at all. To try to understand which of the two is true, use this guide.

      If otherwise the version is simply wrong, try these course of actions:

      Android SDK

      If you have Android Studio installed - as most of us do, then the SDK should be available for you somewhere on your machine*. However, for CI agents – possibly running with no GUI, or if you simply don’t want the somewhat bloated piece of software on your computer, it is possible to simply download the SDK and tool-set, purely. Both cases are covered in Google’s Android guide about Android Studio. For the pure-tools option, refer to the Command line tools only section at the bottom.

      For more help on setting the SDK up, this guide might be helpful.

      Whatever option you choose, and whichever platform you’re running on (Mac, Linux, Windows), we strongly recommend that eventually you would have 2 additional things set up:

      • The path to the SDK’s root directory is set into the ANDROID_SDK_ROOT environment variable.
      • The path to the SDK’s root directory is bundled into the global PATH on your computer.

      * Inspect the content of your ANDROID_SDK_ROOT and ANDROID_HOME environment variables.

      Android (AOSP) Emulators

      Mobile-apps’ automation needs an Android device to run on. If you haven’t already done so, you should set up an Emulator. But, wait - don’t go and install the default one: read through, first.

      We’ve long proven that for automation - which requires a stable and deterministic environment, Google’s emulators running with Google APIs simply don’t deliver what’s needed. Be it the preinstalled Google play-services - which tend to take up a lot of CPU, or even Google’s gboard Keyboard - which is full-featured but overly bloated: These encourage flakiness in tests, which we are desperate to avoid in automation.

      Fortunately, the Android team at Google offers a pretty decent alternative: AOSP emulators (Android Open-Source Project). While possibly lacking some of the extended Google services, and a bit less fancy overall, we strongly recommend to strictly use this flavor of emulators for running automation/Detox tests. They can be installed alongside regular emulators.

      Here’s a visual comparison between the two - an SDK 28 (Android 9) AOSP emulator (left) vs. an emulator with Google APIs installed (right):

      AOSP vs Google-API

      Here’s how to install them using the command line

      While it’s possible to do this using Android Studio, we’ll focus on the command line, as it is also good for headless CI machines.

      1. Locate your 'Android home' folder - typically set in the ANDROID_HOME environment variable, or in its predecessor - ANDROID_SDK_ROOT. If ANDROID_HOME isn’t set, either set it yourself or run the following commands after cd-ing into the home folder.

      2. Preliminary: Upgrade your emulator executable to the latest version. Note: It is OK if the emulator’s version is not aligned with the SDK or platform-tools’ version you currently have installed (e.g. 30.x.x vs. SDK 29)

        $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --install emulator
        note

        In previous Android Studio versions, the SDK-Manager path was located at $ANDROID_HOME/tools/bin/sdkmanager. We highly recommend working with the latest version, however, in case you are working with an old version, and this command fails, try this path instead.

        The command might also fail if the command-line tools aren’t installed. To install the tools using Android Studio, click Tools > SDK Manager and select the SDK Tools tab. Ensure that Android SDK Command-line Tools (latest) is checked and applied.

      3. Install an emulator image without Google APIs:

        $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager "system-images;android-28;default;x86_64"
        $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --licenses
        • With ;android-28;, we assumed SDK 28 here, but other APIs are supported just the same.
        • The ;default; part replaces ;google_apis;, which is the default, and is what matters here.
        • If you are running on a M1 you must install an arm64 architecture i.e. system-images;android-28;default;arm64-v8a
        • To get a list of available images, run $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --list
      4. Create an emulator (i.e. AVD - Android Virtual Device):

        $ANDROID_HOME/cmdline-tools/latest/bin/avdmanager create avd -n Pixel_API_28_AOSP -d pixel --package "system-images;android-28;default;x86_64"
        • Pixel_API_28_AOSP is just a suggestion for a name. Any name can work here, even Pixel_API_28 - but you might have to delete an existing non-AOSP emulator, first. In any case, the name used in Detox configuration (typically in package.json) should be identical to this one.
        • -d pixel will install an emulator with the specs of a Pixel-1 device. Other specs can be used. Running $ANDROID_HOME/cmdline-tools/latest/bin/avdmanager list devices will list all available device specs.
        • --package is the most important argument: be sure to use the same value as you did in part 2, above, with ;default;.

        Run avdmanager create --help for the full list of options.

      5. Launch the emulator:

      This isn’t mandatory, of course, but it’s always good to launch the emulator at least once before running automated tests. The section below will discuss optimizing emulators bootstrapping.

      At this point, you should be able to launch the emulator from Android Studio, but that can also be done from a command line console, as explained in the cheatsheet below.

      See this guide for full details on the emulator executable.

      Installing from Android Studio

      We won’t go into all the details but once the proper image is installed using the sdkmanager, the option becomes available in the AVD creation dialog (see Target column of the Virtual Device Configuration screen below):

      SDK manager in AS

      Install AOSP in AS

      Also, be sure to upgrade your emulator executable to the latest version: If it isn’t up-to-date, you will get an "Update Available" message under the status column, instead of "Installed":

      Upgrade emulator in AS

      Note: It is OK if the emulator’s version is not aligned with the SDK or platform-tools’ version you currently have installed (e.g. 30.x.x vs. SDK 29)

      Emulator Quick-Boot

      If the system allows saving a state (for example, in personal computers or a CI system that can start from prebaked images you can configure), we highly and strongly recommend setting up quick-boot snapshots for any emulator that is used for testing automation.

      Quick-boot saves significant time otherwise wasted when emulators cold-boot from scratch. The concept becomes more prominent in environments capable of parallel-executing tests in multiple, concurrently running emulators (as when Detox is run with multiple Jest workers).

      This is something that we actually recommend applying in the emulator itself rather than using command-line, but we’ll include both options.

      In any case, the general principle we’re going to instruct is as follows:

      1. Enable auto-save for an installed / running emulator.
      2. Launch it, and, when stable, terminate – a snapshot is saved as a result.
      3. Disable auto-save, so that future, test-tainted snapshots won’t be saved.

      Setting up a quick-boot snapshot from the Emulator

      Start by launching a freshly baked emulator. Wait for it to go stable.

      When running, go to settings (3 dots in the sidebar) > Snapshots > Settings tab. If not already set, select Yes in the auto-save option. This should prompt for a restart – choose Yes. The emulator should restart and save a snapshot.

      Emulator auto-save menu

      Do this again after the emulator is back up, but set No in the auto-save option. Allow it to restart yet again: it will immediately boot into the state saved as a snapshot earlier.

      You can also try these as alternative sources for this:

      Setting up a quick-boot snapshot from command-line

      This is a bit more difficult, but is also applicable even for UI-less machines.

      1. Locate the AVD’s config.ini

      2. Using your favorite text editor, either change or add these key-value sets:

        fastboot.chosenSnapshotFile=
        fastboot.forceChosenSnapshotBoot=no
        fastboot.forceColdBoot=no
        fastboot.forceFastBoot=yes

      Empirically, forceFastBoot=yes and forceColdBoot=no should be enough.

      1. Under the AVD’s home directory, either create or edit yet another ini file called quickbootChoice.ini with the following content:

        saveOnExit = true
      2. Now that everything is in place, launch your emulator once (in verbose mode) and wait for it to fully load. Then, shut it down, and make sure the state has been saved.

      3. Last but not least, go back to quickbootChoice.ini and now switch to:

        saveOnExit = false

      Test Butler Support (Optional)

      If, when setting up your work environment, you’ve selected Google emulators with an AOSP image as the test target - as recommended, we strongly encourage you would also integrate Test Butler: in the very least - in order to suppress crash and ANR dialogs. They are a soft spot in UI testing on Android, all around, as - when displayed,they make the UI entirely inaccessible (and thus cause tests to fail in bulks).

      Setting Test Butler up for working with Detox is a bit different than explained in their guides. The process, as a whole, is twofold:

      1. Preinstalling the test-butler-app APK onto the test device.
      2. Integrating the test-butler-lib into your own test APK, and initializing it in a custom test runner (as explained).

      The library part can be easily achieved as explained there (i.e. by using Gradle’s androidTestImplementation). Same goes for initialization. As for the APK, the suggested usage of Gradle’s androidTestUtil is scarce when running with Detox (i.e. non-native instrumentation tests). Here’s what to do instead.

      For a complete and thorough coverage of the Test Butler integration with Detox, consider going over our blogpost on CI execution on medium.

      Solution 1: Prebaked Images

      If you have control over the emulators’ snapshots, simply download (see test-butler’s guide) and install the test-butler APK once (e.g. use adb install -r -t path/to/test-butler-app.apk), and save an updated version of the snapshot. This is the best solution.

      Note: you will have to reiterate this if you upgrade to a newer version of Test-Butler, in the future.

      Solution 2: Dynamic Installation

      Assuming you have the APK available in the system, you can dynamically have Detox automatically install it in all of the running target-emulators by utilizing utilBinaryPaths in your Detox configuration. Example:

      {
      "devices": {
      "emulator.oss": {
      "type": "android.emulator",
      "device": "...",
      "utilBinaryPaths": ["relative/path/to/test-butler-app-2.2.1.apk"]
      }
      }
      }

      Refer to our configuration guide for further details on utilBinaryPaths.

      As per making the APK available - for that, we have no really good solution, for the time being (but it’s in the works). A few options might be:

      a. In a custom script, have it predownloaded from Maven directly, as suggested in the Test Butler guide. For example (on a Mac / Linux):

      curl -f -o ./temp/test-butler-app.apk https://repo1.maven.org/maven2/com/linkedin/testbutler/test-butler-app/2.2.1/test-butler-app-2.2.1.apk

      Should you decide to go this path, we recommend you add ./temp/test-butler-app.apk to the relevant .gitignore.

      b. (Discouraged) Add it to your source control (e.g. git), as part of the repository.

      Disclaimer

      After upgrading the emulator’s binary to a newer version, it usually considers all existing snapshots invalid.

      This can be addressed by deleting and recreating the snapshots as explained, or by recreating the AVD’s altogether.

      Cheatsheet

      Locating the AVD’s home directory

      Each AVD generated by the Android tools gets its own directory where associated content is stored:

      • Configuration file (i.e. config.ini)
      • Snapshot images
      • SD-card content

      to name a few.

      On Mac machines, the AVD directory typically maps to:

      $HOME/.android/avd/<AVD Name>.avd/

      (for example: /Users/root/.android/avd/Pixel_API_28_AOSP.avd/)

      The path should be similar on Linux machines, even though $HOME isn’t /Users/root but typically /home/root (for example: /home/root/.android/avd/Pixel_API_28_AOSP.avd/).

      Booting an emulator via command-line

      • The following examples apply for both Mac and Linux, and should be similar on Windows.
      • They assume the emulator’s name is Pixel_API_28_AOSP. If it isn’t, adjust the names accordingly:

      Shortcut for booting a verbose, visible emulator in a GUI supporting system

      $ANDROID_HOME/emulator/emulator -verbose @Pixel_API_28_AOSP &

      Shortcut for booting a verbose, headless emulator in a UI-less Linux system

      $ANDROID_HOME/emulator/emulator -verbose -no-window -no-audio -gpu swiftshader_indirect @Pixel_API_28_AOSP &

      Verifying the emulator’s quick-boot snapshot has been saved

      If you’ve run your emulator in verbose mode from a shell, it’s easy to verify the state has been saved by following the logs. In particular, when shutting the emulator down, this log asserts the state has been saved:

      emulator: Saving state on exit with session uptime 9423 ms

      as a reference, when the state is not saved, the typical output is:

      emulator: WARNING: Not saving state: RAM not mapped as shared

      It can be a result of an improper configuration, or an emulator launch where the -read-only argument was provided.

    - - + + \ No newline at end of file diff --git a/docs/next/guide/cucumber-js-integration/index.html b/docs/next/guide/cucumber-js-integration/index.html index e0f57f9c2c..a2b080f288 100644 --- a/docs/next/guide/cucumber-js-integration/index.html +++ b/docs/next/guide/cucumber-js-integration/index.html @@ -11,12 +11,12 @@ - - + +
    -
    Version: Next

    Cucumber.js Integration

    Community resource

    This is an article generously contributed by the community. +

    Version: Next

    Cucumber.js Integration

    Community resource

    This is an article generously contributed by the community. Feel free to contribute to it by submitting a pull request if you find any errors or have suggestions for improvements. If you have any questions, please get in touch with the author directly.

    Cucumber is a tool for running automated tests written in plain language. @@ -24,7 +24,7 @@ if you manage Detox Internals API from Cucumber.js hooks.

    In your init.js or init.ts file, please import detox/internals on top of the file:

    import detox from 'detox/internals'

    Also import the hooks we'll be using just a bit later:

    import { Before, BeforeAll, AfterAll, After,  ITestCaseHookParameter } from '@cucumber/cucumber'

    Define the earliest Cucumber.js hook, BeforeAll, where you’ll initialize Detox and launch the app:

    BeforeAll({ timeout: 120 * 1000 }, async () => {
    await detox.init()
    await device.launchApp()
    })

    You must also tell Detox explicitly when Cucumber.js starts a test via calling detox.onTestStart() inside Before hook. Otherwise, Detox won't be able to start recording logs, screenshots, videos, and other artifacts:

    Before(async (message: ITestCaseHookParameter) => {
    const { pickle } = message
    await detox.onTestStart({
    title: pickle.uri,
    fullName: pickle.name,
    status: 'running',
    })
    })

    The symmetrical step is to inform Detox that the current test is over via calling detox.onTestDone() inside After hook. Otherwise, Detox won't be able to save logs, screenshots, videos, and other artifacts:

    After(async (message: ITestCaseHookParameter) => {
    const { pickle, result } = message
    await detox.onTestDone({
    title: pickle.uri,
    fullName: pickle.name,
    status: result ? 'passed' : 'failed',
    })
    })

    After the tests are over, you should call detox.cleanup() inside AfterAll hook so that Detox can clean up all the resources it has allocated:

    AfterAll(async () => {
    await detox.cleanup();
    })

    For more information on Cucumber.js please check out this documentation.

    - - + + \ No newline at end of file diff --git a/docs/next/guide/developing-while-writing-tests/index.html b/docs/next/guide/developing-while-writing-tests/index.html index 27aa425599..2473a856c9 100644 --- a/docs/next/guide/developing-while-writing-tests/index.html +++ b/docs/next/guide/developing-while-writing-tests/index.html @@ -11,12 +11,12 @@ - - + +
    -
    Version: Next

    Developing Your App While Writing Tests

    If your app requires active development, such as adding testID fields for tests, this is a good workflow. It allows you to work both on your app and your tests at the same time.

    The main idea behind this workflow is to run your app in debug with Detox on a simulator. Once the app is up and running, it will still be connected to the React Native packager. This means that you’ll be able to do JavaScript code modifications in your app codebase and press CMD+R to reload the bundle inside the Detox simulator.

    Step 1: Build Your App in Debug

    Detox is going to need the executable for your app. This means we need to build it first. +

    Version: Next

    Developing Your App While Writing Tests

    If your app requires active development, such as adding testID fields for tests, this is a good workflow. It allows you to work both on your app and your tests at the same time.

    The main idea behind this workflow is to run your app in debug with Detox on a simulator. Once the app is up and running, it will still be connected to the React Native packager. This means that you’ll be able to do JavaScript code modifications in your app codebase and press CMD+R to reload the bundle inside the Detox simulator.

    Step 1: Build Your App in Debug

    Detox is going to need the executable for your app. This means we need to build it first. Since we want a build that’s connected to the live React Native packager (to update bundle changes), we’re going to need a debug build:

    detox build -c ios.sim.debug # or android.emu.debug

    Check out Introduction > Building with Detox for more details.

    Step 2: Make Sure Your React-Native Packager is Running

    If you can’t see a React Native packager instance running in a terminal, you can run it manually by typing:

    npx react-native start

    The packager instance will reload the JavaScript bundle of your app when you press CMD+R in the simulator window. This will allow you to make modifications in your app codebase.

    Step 3: Run Detox Tests

    Type the following inside your project root:

    detox test -c ios.sim.debug # or android.emu.debug

    This will use Detox to find the app executable we’ve built in step 1, install it on the device and run Detox tests against it.

    Step 4: Make Changes to Your App’s Codebase as Usual

    You can keep working on the JavaScript codebase of your app as usual. @@ -24,7 +24,7 @@ we recommend adding --reuse flag to save your time when running the tests.

    detox test -c ios.sim.debug --reuse # or android.emu.debug

    By default, Detox re-installs the app before picking every next test suite which is redundant in this situation since your app code changes are delivered via network with React Native packager, and the app binary itself does not change.

    You should not use this option if you made native code changes or if your app relies on local ("disk") storage.

    - - + + \ No newline at end of file diff --git a/docs/next/guide/genymotion-saas/index.html b/docs/next/guide/genymotion-saas/index.html index d69fda4a92..5008237b92 100644 --- a/docs/next/guide/genymotion-saas/index.html +++ b/docs/next/guide/genymotion-saas/index.html @@ -11,12 +11,12 @@ - - + +
    -
    Version: Next

    Using Genymotion SaaS

    As the number of your end-to-end tests grows, the overall test session duration might easily surpass an hour or two. +

    Version: Next

    Using Genymotion SaaS

    As the number of your end-to-end tests grows, the overall test session duration might easily surpass an hour or two. A good idea first would be to parallelize the test execution using your test runner (e.g. for Jest that would be forwarding --maxWorkers <N>), but this approach has its limitations. Indeed, an average build agent would handle running a few virtual devices at once, but running a dozen devices at once would make it slow and unreliable.

    In other words, if you're experiencing scaling issues or struggling with managing local Android emulators, @@ -51,7 +51,7 @@ that reduces your chances to forget a running device. On the other hand, that doesn't allow you to keep a pool of immediately ready devices – a kind of strategy that could be more efficient for busier CI pipelines. There are plans to improve this in the future, but currently you have to bare with this caveat.

    - - + + \ No newline at end of file diff --git a/docs/next/guide/investigating-test-failure/index.html b/docs/next/guide/investigating-test-failure/index.html index f2f2a4292c..053b70c981 100644 --- a/docs/next/guide/investigating-test-failure/index.html +++ b/docs/next/guide/investigating-test-failure/index.html @@ -11,14 +11,14 @@ - - + +
    -
    Version: Next

    Investigating Failures

    There are a few tricks and tools that can help you to understand the reason for test failures, even before you resort to debugging.

    Using Detox test artifacts

    Artifacts are very powerful tool to understand your test failure, you can easily make a screenshot, video or even hierarchy of your app under test, +

    Version: Next

    Investigating Failures

    There are a few tricks and tools that can help you to understand the reason for test failures, even before you resort to debugging.

    Using Detox test artifacts

    Artifacts are very powerful tool to understand your test failure, you can easily make a screenshot, video or even hierarchy of your app under test, e.g.:

    detox test -c <configuration> --take-screenshots failing --record-videos failing

    Learn more about configuration of Detox test artifacts and available CLI options.

    Switch to verbose log levels

    You can get detailed information about the test execution if you use debug or trace log level:

    detox test -c <configuration> -l trace
    tip

    In most cases we recommend using debug log level to understand the failed test better.

    Missing elements

    If your tests are failing due to non-existent or invisible elements, you can inspect the native view hierarchy to understand better the failure reason.

    More recipes

    See Dealing With Problems With Running Tests guide for more recipes.

    Debugging

    If debugging still seems a viable option, please follow our debugging guide.

    - - + + \ No newline at end of file diff --git a/docs/next/guide/launch-args/index.html b/docs/next/guide/launch-args/index.html index 2e1abf0f9c..8b324a6cf7 100644 --- a/docs/next/guide/launch-args/index.html +++ b/docs/next/guide/launch-args/index.html @@ -11,14 +11,14 @@ - - + +
    -
    Version: Next

    Using Launch Arguments

    In Detox, the app under test is launched via an explicit call to device.launchApp(). Through various means, Detox enables specifying a set of user-defined arguments (key-value pairs) to be passed on to the app when launched, so as to make them available inside the launched app itself at runtime (both on the native side, and - if applicable, on the JavaScript side).

    Motivation

    If this is clear to you first hand, you can skip right to the section about arguments setup.

    In particular, the common use case of using launch argument (although not distinctly), is for mocking external entities such as servers - replacing them with equivalent mock servers, sporting equivalent (yet fake) API-endpoints that run alongside the testing host (i.e. the one running Detox). These mock servers can typically be configured during the test, to return deterministic responses to network requests coming from the app.

    Typically, the process of setting up such servers - especially in a parallel test-execution environment, involves three major steps (within the context of a test set-up):

    1. Allocating a port for a mock server, dynamically.
    2. Bringing up a mock server instance bound to that port (e.g. at localhost:1234).
    3. Launching the app with a predefined argument that holds the port, for example mockServerPort=1234. +
      Version: Next

      Using Launch Arguments

      In Detox, the app under test is launched via an explicit call to device.launchApp(). Through various means, Detox enables specifying a set of user-defined arguments (key-value pairs) to be passed on to the app when launched, so as to make them available inside the launched app itself at runtime (both on the native side, and - if applicable, on the JavaScript side).

      Motivation

      If this is clear to you first hand, you can skip right to the section about arguments setup.

      In particular, the common use case of using launch argument (although not distinctly), is for mocking external entities such as servers - replacing them with equivalent mock servers, sporting equivalent (yet fake) API-endpoints that run alongside the testing host (i.e. the one running Detox). These mock servers can typically be configured during the test, to return deterministic responses to network requests coming from the app.

      Typically, the process of setting up such servers - especially in a parallel test-execution environment, involves three major steps (within the context of a test set-up):

      1. Allocating a port for a mock server, dynamically.
      2. Bringing up a mock server instance bound to that port (e.g. at localhost:1234).
      3. Launching the app with a predefined argument that holds the port, for example mockServerPort=1234. (It is assumed here that there’s designated mocked code inside the app that can read mockServerPort and rewire all connections to localhost:1234 instead of to the real production server).

      In this context, launch argument are useful for implementing step #3.

      Arguments Setup

      User-defined launch arguments specification is very flexible, and can be defined on 4 levels:

      LevelDescription
      1. Static ConfigurationAs a part of a static Detox configuration, using the launchArgs property.
      This is can sufficient, for example, if you only require one mock server instance, and can use the same static port throughout the entire testing execution session.
      2. Static via CLIAs arguments specified explicitly in the command-line execution of detox test, using --app-launch-args.
      3.device.appLaunchArgsDynamically, using the device.appLaunchArgs API, which initially holds the static configuration, and then allows for the modification of it before applied through device.launchApp().
      Mostly required in complex test environments, where the servers and ports are dynamic, and are determined via distinct software components (e.g. separate test kits).
      4. device.launchApp() with launchArgsDynamically and explicitly, using on-site arguments specified in calls to device.launchApp() through the launchArgs parameter.
      Ideal for fairly simple test environments, where the ports are dynamic but are in complete control of the user.

      Important: Arguments specified in each level take precedence over equivalent underlying levels.

      Examples:

      1. In an environment where mockServerPort is statically pre-set to 1001 in Detox configuration, and then set to 1003 using device.appLaunchArgs inside a test, the app would eventually be launched with 1003 as its value, in calls to device.launchApp() in that test.
      2. (Scenario continues) In subsequent calls to device.launchApp() with this parameter: device.launchApp({ launchArgs: {mockServerPort: 1004} }), the app will be (re-)launched with 1004 as the value for mockServerPort.

      In-App Arguments Access

      Our official recommendation for getting the arguments inside the app is by integrating the react-native-launch-arguments project, which provides that seamlessly. For those who are interested, here are the underlying details:

      • On iOS, the specified launch arguments are passed as the process launch arguments and available through normal means, such as accessing [[NSProcessInfo processInfo] arguments].
      • On Android, the launch arguments are set as bundle-extra’s into the activity’s intent. They are therefore accessible on the native side via the current activity as: currentActivity.getIntent().getBundleExtra("launchArgs").
    - - + + \ No newline at end of file diff --git a/docs/next/guide/migration/index.html b/docs/next/guide/migration/index.html index 4eb0028184..429e61c4aa 100644 --- a/docs/next/guide/migration/index.html +++ b/docs/next/guide/migration/index.html @@ -11,12 +11,12 @@ - - + +
    -
    Version: Next

    Migration Guide

    We are improving Detox API as we go along, sometimes these changes require us to break the API in order for it to make more sense. These migration guides refer to breaking changes. If a newer version has no entries in this document, it means it does not require special migration steps. Refer to the release notes of the latter builds to learn about their improvements and changes.

    20.0

    No Mocha support

    If you were using Mocha, now you have two options:

    Jest 27.2.5 and higher

    You have to upgrade your Jest version to at least 27.2.5 or higher. The recommended choice is 28.x or 29.x.

    All-in-one configs

    If you see an error like this:

    DetoxConfigError: Configuration "legacy" uses a deprecated all-in-one schema,
    which is not supported by Detox.

    You have to extract device and app configs from your configuration, as shown in the example below:

    Legacy schemaModern schema
    {
    "configurations": {
    "ios.sim.debug": {
    "type": "ios.simulator",
    "device": "iPhone 12",
    "binaryPath": "/some/path/ios.app",
    "build": "..."
    },
    "android.emu.debug": {
    "type": "android.emulator",
    "device": "Pixel_30_API",
    "binaryPath": "/some/path/android.apk",
    "build": "...",
    "launchArgs": {}
    }
    }
    }
    {
    "apps": {
    "ios.debug": {
    "type": "ios.app",
    "binaryPath": "/some/path/ios.app",
    "build": "..."
    },
    "android.debug": {
    "type": "android.apk",
    "binaryPath": "/some/path/android.apk",
    "build": "...",
    "launchArgs": {}
    }
    },
    "devices": {
    "ios.simulator": {
    "type": "ios.simulator",
    "device": { "type": "iPhone 12" }
    },
    "android.emulator": {
    "type": "android.apk",
    "device": { "avdName": "Pixel_30_API" }
    }
    },
    "configurations": {
    "ios.sim.debug": {
    "device": "ios.simulator",
    "app": "ios.debug"
    },
    "android.emu.debug": {
    "device": "android.emulator",
    "app": "android.debug"
    }
    }
    }

    For more details refer to the Config > Devices and Config > Apps sections.

    testRunner config section

    Three top-level string properties (testRunner, runnerConfig, specs) have been unified into a complex +

    Version: Next

    Migration Guide

    We are improving Detox API as we go along, sometimes these changes require us to break the API in order for it to make more sense. These migration guides refer to breaking changes. If a newer version has no entries in this document, it means it does not require special migration steps. Refer to the release notes of the latter builds to learn about their improvements and changes.

    20.0

    No Mocha support

    If you were using Mocha, now you have two options:

    Jest 27.2.5 and higher

    You have to upgrade your Jest version to at least 27.2.5 or higher. The recommended choice is 28.x or 29.x.

    All-in-one configs

    If you see an error like this:

    DetoxConfigError: Configuration "legacy" uses a deprecated all-in-one schema,
    which is not supported by Detox.

    You have to extract device and app configs from your configuration, as shown in the example below:

    Legacy schemaModern schema
    {
    "configurations": {
    "ios.sim.debug": {
    "type": "ios.simulator",
    "device": "iPhone 12",
    "binaryPath": "/some/path/ios.app",
    "build": "..."
    },
    "android.emu.debug": {
    "type": "android.emulator",
    "device": "Pixel_30_API",
    "binaryPath": "/some/path/android.apk",
    "build": "...",
    "launchArgs": {}
    }
    }
    }
    {
    "apps": {
    "ios.debug": {
    "type": "ios.app",
    "binaryPath": "/some/path/ios.app",
    "build": "..."
    },
    "android.debug": {
    "type": "android.apk",
    "binaryPath": "/some/path/android.apk",
    "build": "...",
    "launchArgs": {}
    }
    },
    "devices": {
    "ios.simulator": {
    "type": "ios.simulator",
    "device": { "type": "iPhone 12" }
    },
    "android.emulator": {
    "type": "android.apk",
    "device": { "avdName": "Pixel_30_API" }
    }
    },
    "configurations": {
    "ios.sim.debug": {
    "device": "ios.simulator",
    "app": "ios.debug"
    },
    "android.emu.debug": {
    "device": "android.emulator",
    "app": "android.debug"
    }
    }
    }

    For more details refer to the Config > Devices and Config > Apps sections.

    testRunner config section

    Three top-level string properties (testRunner, runnerConfig, specs) have been unified into a complex testRunner section which strives to be as agnostic as possible:

    .detoxrc.js
    -  testRunner: 'jest',
    - runnerConfig: 'e2e/jest.config.js',
    - specs: 'e2e',
    - skipLegacyWorkersInjection: true,
    + testRunner: {
    + $0: 'jest',
    + args: {
    + config: 'e2e/jest.config.js',
    + _: ['e2e']
    + },
    + },

    Also, skipLegacyWorkersInjection migration option no longer has meaning, so you can remove it safely.

    If you didn’t have runnerConfig previously, use e2e/config.json (because that was an implicit default in Detox 19 and earlier):

      testRunner: {
    $0: 'jest',
    args: {
    + config: 'e2e/config.json',
    },
    },

    Custom Jest environment

    You no longer need to have an autogenerated environment file if you haven’t been customizing it, and if it looks like below:

    e2e/environment.js
    const {
    DetoxCircusEnvironment,
    SpecReporter,
    WorkerAssignReporter,
    } = require('detox/runners/jest-circus');

    class CustomDetoxEnvironment extends DetoxCircusEnvironment {
    constructor(config, context) {
    super(config, context);

    // Can be safely removed, if you are content with the default value (=300000ms)
    this.initTimeout = 300000;

    // This takes care of generating status logs on a per-spec basis. By default, Jest only reports at file-level.
    // This is strictly optional.
    this.registerListeners({
    SpecReporter,
    WorkerAssignReporter,
    });
    }
    }

    module.exports = CustomDetoxEnvironment;

    If you want, for example:

    • to reduce the init timeout to 120 seconds,
    • remove SpecReporter output,
    • remove WorkerAssignReporter output,

    then you can express this intent via config:

    .detoxrc.js
    /** @type {Detox.DetoxConfig} */
    module.exports = {
    testRunner: {
    $0: 'jest',
    args: {
    config: 'e2e/jest.config.js',
    _: ['e2e']
    },
    jest: {
    setupTimeout: 120000,
    reportSpecs: false,
    reportWorkerAssign: false,
    },
    },
    // …
    };

    If you have some customizations beyond that, make sure to remove the boilerplate code:

    e2e/environment.js
    const { DetoxCircusEnvironment } = require('detox/runners/jest');

    class CustomDetoxEnvironment extends DetoxCircusEnvironment {
    constructor(config, context) {
    super(config, context);

    // leave your custom code
    }
    }

    module.exports = CustomDetoxEnvironment;

    Pay attention that the import has been changed to detox/runners/jest (previously it was detox/runners/jest-circus), @@ -42,7 +42,7 @@ You’ll need to find those places and apply trivial fixes like shown below:

       await screenDriver.performSomeAction();
    - expect(screenDriver.get.myElement()).toBeNotVisible();
    + await expect(screenDriver.get.myElement()).toBeNotVisible();

    19.0

    Version 19 is not really a breaking change!

    We decided to bump Detox into a major version release, nonetheless, because it is breaking for projects that sport custom Detox drivers, such as detox-puppeteer.

    If you are a maintainer of such a project, and you wish to upgrade your Detox dependency to 19 (kudos! 👏), follow this step-by-step migration guide; You can refer to this pull-request, which does that for the detox-puppeteer project.

    Migrating Custom Drivers

    The core of the change is that Detox' drivers framework is no longer a single monolith, responsible for everything platform-specific. Rather, it’s been broken down to these subresponsibilies:

    • Allocation: The process of launching / selecting a device over which the tests would run in the current execution.
    • Validation: Execution environment checkups.
    • Artifacts: Platform-based selection of build-artifacts implementation (e.g. screenshots).
    • Runtime

    You can find a visual explanation, here.

    In addition, the runtime driver is no longer state-less – basically, allowing implementation to hold any state that is required in identifying and managing the associated device.

    How to migrate

    Everything here will be based on the changes made in the detox-puppeteer example - names included (please don’t use them as-is in your own implementation!).

    Allocation:

    • Create a new class, called PuppeteerDeviceAllocation (change name to something that would make sense in your project).
    • Move everything currently in PuppeteerDriver.acquireFreeDevice() and .shutdown() onto PuppeteerDeviceAllocation.allocate() and .free(), respectively.
    • Create a POJO class called PuppeteerAllocCookie. This class should hold anything that would later be required in order to specify the specifically associated device (example: UDID for iOS simulators, adb names for Android devices).
    • Make .allocate() return an instance of your cookie class. Puppeteer example: here.
    • Delete PuppeteerDriver.acquireFreeDevice() and PuppeteerDriver.shutdown().

    For a precise class c'tor and method signatures, see here.

    Add the new allocation class to the module.exports list, under the name: DeviceAllocationDriverClass.

    Validation:

    • If you have any validations implemented in PuppeteerDriver.prepare(), create a class called PuppeteerEnvironmentValidator.
    • Move anything inside PuppeteerDriver.prepare() to PuppeteerEnvironmentValidator.validate().
    • Delete PupeteerDriver.prepare().

    For a precise class c'tor and method signatures, see here.

    Add the new (optional) class to the module.exports list, under the name: EnvironmentValidatorClass.

    Artifacts:

    • Move your implementation of PuppeteerDriver.declareArtifactPlugins() to the same method in a new class, called PuppeteerArtifactPluginsProvider.declareArtifactPlugins() (change name to something that would make sense in your project).

    There are no changes in method signature in this case.

    Add the new class to the module.exports list, under the name: ArtifactPluginsProviderClass.

    Runtime:

    • Optionally rename your class from PuppeteerDriver to PuppeteerRuntimeDriver.
    • In the methods remaining in the class accepting the deviceId arg: remove the deviceId arg entirely. This might break your implementation - don’t worry, continue reading.
    • If applicable, change the signature of the class' c'tor to accept the cookie as its 2nd argument (instance previously allocated in PuppeteerAllocationDriver.allocate()). Save data from the cookie as part of the driver’s state, in order to unbreak your implementation, following the previous step.
    • Add two methods: getExternalId() and getDeviceName(). Implement them such that they would comply with the device.id and device.name API contracts, respectively.

    Export the runtime driver class in the module.exports list as RuntimeDriverClass, instead of DriverClass.

    Troubleshooting

    For issue related to these migrations, approach us by submitting an issue on GitHub. Please apply the Detox19 label.

    18.6.0

    Detox has normalized the configuration format, so that along with the combined configurations object you now can define your devices and apps separately. Please refer to the configuration doc to obtain more details. This change is backward-compatible, although the new format is now the recommended option.

    18.0

    Detox now uses a custom synchronization system on iOS, developed in-house; this is the second step in phasing out our Earl Grey usage. We have tested this system extensively internally, and are confident that it should work as expected. There are no known limitations with the new system.

    If you are seeing issues with the new sync system, please open an issue.

    Breaking:

    • iOS. Detox now requires iOS 13.0 and above iOS simulator runtimes, and iOS 12.x and below are no longer supported. This does not require that you drop support for iOS 12.x in your apps, just that tests will no longer work on iOS 12 and below. Please make sure your tests are running on iOS 13 or above
    • JS. ⚠️ Detox no longer launches the app automatically (even if asked to do so in configuration) — you have to launch your app explicitly:
    +  beforeAll(async () => {
    + await device.launchApp();
    + });
    • JS (jest-circus). The DetoxCircusEnvironment provided from detox/runners/jest-circus package now requires two arguments in its constructor, so you have to update your descendant class signature:
    class CustomDetoxEnvironment extends DetoxCircusEnvironment {
    - constructor(config) {
    - super(config);
    + constructor(config, context) {
    + super(config, context);
    • JS (iOS). device.launchApp({ launchArgs: { ... }) argument escaping has been improved. If you use complex launch args such as regular expressions, make sure you remove manual escaping from now on to avoid erroneous double escaping, e.g.:
     await device.launchApp({
    launchArgs: {
    - detoxURLBlacklistRegex: '(\\".*example.com/some-url/.*\\")' }`,
    + detoxURLBlacklistRegex: '(".*example.com/some-url/.*")' }`,
    },
    });
    • JS (internal). There is a breaking change for people writing custom Detox integrations. Environment variable naming schema has changed – now Detox uses prefix to distinguish its own environment variables (usually passed from detox test CLI), e.g.: recordLogs=all becomes DETOX_RECORD_LOGS=all, loglevel=trace becomes DETOX_LOGLEVEL=trace, and so on.

    17.5.2

    Fixes the issue from 17.4.7 (see below) - now the migration guide for 17.4.7 can be safely ignored.

    17.4.7

    This release was not meant to be breaking in any sense, but unfortunately there are two minor caveats that leaked in.

    jest-cli

    From now on, Detox explicitly depends on jest-cli package (marked as a peer dependency), that’s why if you see an error like the one below:

    Cannot find module 'jest-cli/build/cli/args'

    You should add jest-cli to your package.json’s devDependencies and rerun npm install, e.g.:

    UPD: since detox@17.5.2 you can ignore this advice. The problem should go away without these edits:

     "devDependencies": {
    "jest": "26.x.x",
    + "jest-cli": "26.x.x",

    detox-cli

    If you were using detox-cli global package, make sure to upgrade it before proceeding to detox@17.4.7.

    npm install detox-cli --global

    If you have an older version of detox-cli, then you might see the following error on an attempt to run detox test <...args>:

    'jest' is not recognized as an internal or external command,
    operable program or batch file.
    detox[43764] ERROR: [cli.js] Error: Command failed: jest --config e2e/config.json --testNamePattern "^((?!:android:).)*$" --maxWorkers 1 e2e

    17.3.0

    In the context of introducing the element screenshots feature (#2012), we decided to slightly change the contract between Detox and externally-implemented drivers. These should be modified according to the follow diff-snippet:

    class Expect {
    - constructor(invocationManager) {
    + constructor({ invocationManager }) {
    this._invocationManager = invocationManager;
    }
    }

    class PluginDriver {
    constructor() {
    - this.matchers = new Expect(new invocationManager());
    }
    }

    -module.exports = PluginDriver;
    +module.exports = {
    + DriverClass: PluginDriver,
    + ExpectClass: Expect,
    +}

    17.0.0

    Detox for iOS now uses an entirely new, custom-built matcher, action and expectation infrastructure. This is the first step in our roadmap of removing Earl Grey as a dependency.

    While the new system has been designed to be as compatible as possible with the existing system, some changes we made to existing APIs that may or may not require your attention.

    New API

    • pinch()—new API for pinching elements, replacing the deprecated pinchWithAngle() (iOS)
    • getAttributes()—new API for obtaining element properties (iOS)
    • not—new API for inverting expectation logic (iOS, Android)

    Modified API (Potentially Breaking Changes)

    The following APIs have changed and require attention

    • by.text()—matching elements by text actually uses the element’s text value instead of using the accessibility label (iOS)
    • by.traits()—the supported trait values have changed (iOS)
    • atIndex()—matched elements are now sorted by x and y axes to allow for stability between tests; indices will most likely change after upgrading to this version of Detox (iOS)
    • tap()—this method now accepts an optional point to tap (iOS, Android)
    • setColumnToValue()—this method no longer supports date pickers; use setDatePickerDate() to change picker dates (iOS)
    • setDatePickerDate()—in addition to normal date formats, a new special case is introduced for ISO 8601 formatted date strings: "ISO8601" (iOS)

    Deprecated API

    The following APIs have been deprecated, but is still available

    • tapAtPoint()—the API has been consolidated with tap(point) (iOS, Android)
    • pinchWithAngle()—this API has been replaced with pinch() (iOS)
    • toBeNotVisible()—deprecated in favor of not.toBeVisible() (iOS, Android)
    • toNotExist()—deprecated in favor of not.toExist() (iOS, Android)

    Make sure to read the API reference for matchers, actions and expectations.

    If you see unexpected results, make sure to open an issue.

    16.0.0

    Detox now comes as a prebuilt framework on iOS, thus lowering npm install times and saving some build issues that happen due to unexpected Xcode setups.

    To support this, Detox needs Swift 5 support, so the iOS requirements have changed slightly:

    • Xcode: 10.2 or higher
      • iOS Simulator Runtime: iOS 12.2 or higher

    This does not require that your app require iOS 12.2, only that you build and run your app on Xcode 10.2 or above, and use an iOS 12.2 or above simulator.

    - - + + \ No newline at end of file diff --git a/docs/next/guide/mocking-open-with-url/index.html b/docs/next/guide/mocking-open-with-url/index.html index 09d66288a9..a46ff20dc5 100644 --- a/docs/next/guide/mocking-open-with-url/index.html +++ b/docs/next/guide/mocking-open-with-url/index.html @@ -11,13 +11,13 @@ - - + +
    -
    Version: Next

    Mocking Open With URL (Deep Links)

    You can mock opening the app from URL to test your app’s deep link handling mechanism.

    Mocking App Launch With a URL

    await device.launchApp({newInstance: true, url, sourceApp: bundleId}); // sourceApp is an optional iOS-only argument

    Example

    describe('launch app from URL', () => {
    it('should handle URL successfully', async () => {
    await device.launchApp({
    newInstance: true,
    url: 'scheme://some.url',
    sourceApp: 'com.apple.mobilesafari'
    });
    await expect(element(by.text('a label'))).toBeVisible();
    });
    });

    Mocking Opening With a URL On a Launched App

    iOS-only

    await device.openURL({url: 'scheme://some.url', sourceApp: 'com.apple.mobilesafari'});
    - - +
    Version: Next

    Mocking Open With URL (Deep Links)

    You can mock opening the app from URL to test your app’s deep link handling mechanism.

    Mocking App Launch With a URL

    await device.launchApp({newInstance: true, url, sourceApp: bundleId}); // sourceApp is an optional iOS-only argument

    Example

    describe('launch app from URL', () => {
    it('should handle URL successfully', async () => {
    await device.launchApp({
    newInstance: true,
    url: 'scheme://some.url',
    sourceApp: 'com.apple.mobilesafari'
    });
    await expect(element(by.text('a label'))).toBeVisible();
    });
    });

    Mocking Opening With a URL On a Launched App

    iOS-only

    await device.openURL({url: 'scheme://some.url', sourceApp: 'com.apple.mobilesafari'});
    + + \ No newline at end of file diff --git a/docs/next/guide/mocking-user-activity/index.html b/docs/next/guide/mocking-user-activity/index.html index 8df5c9d299..885dd36528 100644 --- a/docs/next/guide/mocking-user-activity/index.html +++ b/docs/next/guide/mocking-user-activity/index.html @@ -11,13 +11,13 @@ - - + +
    -
    Version: Next

    Mocking User Activity

    Detox supports mocking user activity for iOS apps.

    The user activity API is used to mock an external user activity state. The app normally uses this state to continue the activity inside the app. This API is also used for associated domains, Spotlight search handling and Siri intents.

    Mocking App Launch with a User Activity

    Using launchApp() with custom params will trigger the mocking mechanism.

    await device.launchApp({userActivity: activity});

    Example:

    describe('Background user activity', () => {
    it('Launch with user activity', async () => {
    await device.launchApp({userActivity: activity})
    await expect(element(by.text('From user activity'))).toBeVisible();
    });
    });

    Sending User Activity to a Running App

    Use the sendUserActivity() method.

    await device.sendUserActivity(activity)

    Example:


    describe('Foreground user activity', () => {

    beforeEach(async () => {
    await device.launchApp({newInstance: true});
    });

    it('User activity from inside the app', async () => {
    await device.sendUserActivity(activity);
    await expect(element(by.text('From user activity'))).toBeVisible();
    });
    });

    User Activity JSON Format

    User activities are passed as JSON objects to Detox, which then parses them and creates native objects representing the passed information.

    The JSON object passed to Detox needs to provide some required data, but can also provide additional, optional data.

    KeyRequiredValue TypeDescription
    activityTypeYesStringThe activity type. Either a custom user string or a predefined constant as provided by Detox. See the Activity Types section below.
    webpageURLNoStringUsed when simulating an associated domain link opening. This is the URL that the user browsed to.
    referrerURLNoStringUsed when simulating an associated domain link opening. This is the URL that the user browsed from.
    userInfoNoObjectAn additional key-value pair storage, used for general purpose data passing to the app.

    Activity Types

    Activities can be both developer-generated user activity state, such as actions from another system—another iOS device, macOS, Safari, etc., and system-generated user activities, such as user browsed an associated domain, Spotlight search tapped, Siri intent activity, etc., where the app should handle such an activity.

    Detox supports mocking both types.

    For developer-generated user activities, use a custom activityType that is expected by the application.

    For system-generated user activities, use set the activityType to a predefined constant in Detox, like so:

    const DetoxConstants = require('detox/index').DetoxConstants;

    const userActivityBrowsingWeb = {
    "activityType": DetoxConstants.userActivityTypes.browsingWeb,
    "webpageURL": "https://my.deeplink.dtx",
    "referrerURL": "https://google.com/"
    };

    Currently supported system-generated activity types:

    • DetoxConstants.userActivityTypes.browsingWeb - Used for associated domains (deep links)
    • DetoxConstants.userActivityTypes.searchableItem - Used for Spotlight search results

    Spotlight Search Results

    In addition to DetoxConstants.userActivityTypes.searchableItem, Detox also provides an additional constant, used to provide the item identifier, which was selected in Spotlight. The app uses this identifier to display the item on screen.

    An example on a Spotlight search user activity:

    const DetoxConstants = require('detox').DetoxConstants;

    let userActivitySearchableItem = {
    "activityType": DetoxConstants.userActivityTypes.searchableItem,
    "userInfo": {"customKey": "value"}
    };
    userActivitySearchableItem.userInfo[DetoxConstants.searchableItemActivityIdentifier] = "com.test.itemId"
    - - +
    Version: Next

    Mocking User Activity

    Detox supports mocking user activity for iOS apps.

    The user activity API is used to mock an external user activity state. The app normally uses this state to continue the activity inside the app. This API is also used for associated domains, Spotlight search handling and Siri intents.

    Mocking App Launch with a User Activity

    Using launchApp() with custom params will trigger the mocking mechanism.

    await device.launchApp({userActivity: activity});

    Example:

    describe('Background user activity', () => {
    it('Launch with user activity', async () => {
    await device.launchApp({userActivity: activity})
    await expect(element(by.text('From user activity'))).toBeVisible();
    });
    });

    Sending User Activity to a Running App

    Use the sendUserActivity() method.

    await device.sendUserActivity(activity)

    Example:


    describe('Foreground user activity', () => {

    beforeEach(async () => {
    await device.launchApp({newInstance: true});
    });

    it('User activity from inside the app', async () => {
    await device.sendUserActivity(activity);
    await expect(element(by.text('From user activity'))).toBeVisible();
    });
    });

    User Activity JSON Format

    User activities are passed as JSON objects to Detox, which then parses them and creates native objects representing the passed information.

    The JSON object passed to Detox needs to provide some required data, but can also provide additional, optional data.

    KeyRequiredValue TypeDescription
    activityTypeYesStringThe activity type. Either a custom user string or a predefined constant as provided by Detox. See the Activity Types section below.
    webpageURLNoStringUsed when simulating an associated domain link opening. This is the URL that the user browsed to.
    referrerURLNoStringUsed when simulating an associated domain link opening. This is the URL that the user browsed from.
    userInfoNoObjectAn additional key-value pair storage, used for general purpose data passing to the app.

    Activity Types

    Activities can be both developer-generated user activity state, such as actions from another system—another iOS device, macOS, Safari, etc., and system-generated user activities, such as user browsed an associated domain, Spotlight search tapped, Siri intent activity, etc., where the app should handle such an activity.

    Detox supports mocking both types.

    For developer-generated user activities, use a custom activityType that is expected by the application.

    For system-generated user activities, use set the activityType to a predefined constant in Detox, like so:

    const DetoxConstants = require('detox/index').DetoxConstants;

    const userActivityBrowsingWeb = {
    "activityType": DetoxConstants.userActivityTypes.browsingWeb,
    "webpageURL": "https://my.deeplink.dtx",
    "referrerURL": "https://google.com/"
    };

    Currently supported system-generated activity types:

    • DetoxConstants.userActivityTypes.browsingWeb - Used for associated domains (deep links)
    • DetoxConstants.userActivityTypes.searchableItem - Used for Spotlight search results

    Spotlight Search Results

    In addition to DetoxConstants.userActivityTypes.searchableItem, Detox also provides an additional constant, used to provide the item identifier, which was selected in Spotlight. The app uses this identifier to display the item on screen.

    An example on a Spotlight search user activity:

    const DetoxConstants = require('detox').DetoxConstants;

    let userActivitySearchableItem = {
    "activityType": DetoxConstants.userActivityTypes.searchableItem,
    "userInfo": {"customKey": "value"}
    };
    userActivitySearchableItem.userInfo[DetoxConstants.searchableItemActivityIdentifier] = "com.test.itemId"
    + + \ No newline at end of file diff --git a/docs/next/guide/mocking-user-notifications/index.html b/docs/next/guide/mocking-user-notifications/index.html index 4dbf93ce70..9818c34696 100644 --- a/docs/next/guide/mocking-user-notifications/index.html +++ b/docs/next/guide/mocking-user-notifications/index.html @@ -11,13 +11,13 @@ - - + +
    -
    Version: Next

    Mocking User Notifications

    Detox supports mocking user notifications.

    Note: The mocking mechanism will not mimic the UI of a user notification. Instead, it will only simulate a user interaction with the notification - namely, the "opening" of it (equivalent to a user’s tap/swipe on it in the notification center).

    Mocking App Launch With a Notification

    launchApp() with custom parameters (i.e. userNotification) will trigger the mocking mechanism.

    await device.launchApp({newInstance: true, userNotification: notification});

    Example

    describe('Launch with push notification', () => {
    it('should handle the notification', async () => {
    await device.launchApp({
    newInstance: true,
    userNotification: userNotificationPushTrigger,
    });
    await expect(element(by.text('From push'))).toBeVisible();
    });
    });

    Mocking Notification Reception on a Running App

    Use the sendUserNotification() method to send notification to running app. Notifications can be sent to an active or a background app.

    Note: while the name sendUserNotification() is not very idiomatic on Android, as notification data is not "sent" to apps (rather, it is bundled into an Activity/Service launch Intent as Intent-extras), this unified API is used, for the time being, for both platforms equivalently. With plans of a more extensive support for Android, we estimate it would be deprecated when the time comes.

    await device.sendUserNotification(notification);

    Example:

    describe('Foreground user notifications', () => {
    it('should handle the local notification from inside the app', async () => {
    await device.launchApp();
    await device.sendUserNotification(localNotification);
    await expect(element(by.text('from local notification'))).toBeVisible();
    });
    });

    Notification JSON Format

    User notifications are passed as JSON objects to Detox. The JSON object needs to provide some required data, but can also provide an additional, optional payload.

    Mind the major difference here between the two platforms. While on iOS many types of data fields are applicable, Android is very loosely defined - with support for just free-form user data in the payload field.

    KeyRequiredValue TypePlatformDescription
    triggerYesObjectiOSThe conditions that trigger the delivery of the notification. See the Triggers section below.
    titleNoStringiOSA short description of the reason for the alert.
    subtitleNoStringiOSA secondary description of the reason for the alert.
    bodyNoStringiOSThe body of the notification.
    badgeNoIntegeriOSThe number to display as the app’s icon badge.
    payloadiOS: No
    Android: Yes
    ObjectiOS & AndroidAn object of custom information associated with the notification.
    Android: see full description below
    categoryNoStringiOSThe identifier of the app-defined category object.
    content-availableNoIntegeriOSInclude this key with a value of 1 to configure a silent notification.
    user-textNoStringiOSThe text response provided by the user.
    action-identifierNoStringiOSThe identifier for the action that the user selected.

    Triggers (iOS-only)

    Triggers are objects representing the trigger.

    KeyRequiredValue TypeDescription
    typeYesStringThe conditions that trigger the delivery of the notification. See the Trigger Types section below.
    repeatsNoBooleanIndicates whether the event repeats. Only used for calendar, timeInterval and location trigger types.
    timeIntervalYes for timeInterval trigger typeNumberThe time interval used to create the trigger.
    date-componentsYes for calendar trigger typeObjectThe date components used to construct this object. See the Date Components section below.
    regionYes for location trigger typeObjectThe region used to determine when the notification is sent. See the Region section below.
    Trigger Types

    There are four types of triggers supported by Detox at this time:

    • push
    • calendar
    • timeInterval
    • location

    For convenience, these trigger types are provided as constants in DetoxConstants:

    const DetoxConstants = require('detox/index').DetoxConstants;

    const userNotification = {
    "trigger": {
    "type": DetoxConstants.userNotificationTriggers.push
    },
    // ...
    }

    Date Components (iOS-only)

    KeyRequiredValue TypeDescription
    eraNoIntegerThe number of era units for the receiver.
    yearNoIntegerThe number of year units for the receiver.
    monthNoIntegerThe number of month units for the receiver.
    dayNoIntegerThe number of day units for the receiver.
    hourNoIntegerThe number of hour units for the receiver.
    minuteNoIntegerThe number of minute units for the receiver.
    secondNoIntegerThe number of second units for the receiver.
    weekdayNoIntegerThe number of the weekday unit for the receiver.
    weekdayOrdinalNoIntegerThe ordinal number of weekday units for the receiver.
    quarterNoIntegerThe number of quarters for the receiver.
    weekOfMonthNoIntegerThe week number of the month for the receiver.
    leapMonthNoBooleanIndicates whether the month is a leap month.

    Region (iOS-only)

    KeyRequiredValue TypeDescription
    centerYesObjectThe center point of the geographic area. See the Coordinate section below.
    radiusYesNumberThe radius (measured in meters) that defines the geographic area’s outer boundary.
    notifyOnEntryNoBooleanIndicates that notifications are generated upon entry into the region.
    notifyOnExitNoBooleanIndicates that notifications are generated upon exit from the region.

    Coordinate (iOS-only)

    KeyRequiredValue TypeDescription
    latitudeYesNumberThe latitude in degrees. Positive values indicate latitudes north of the equator. Negative values indicate latitudes south of the equator.
    longitudeYesNumberThe longitude in degrees. Measurements are relative to the zero meridian, with positive values extending east of the meridian and negative values extending west of the meridian.

    Payload

    On Android, the content will be available via the activity’s getIntent() API, inside the intent’s extra bundle. Under some limitations, that includes data-cascading so as to provide comprehensive support for JavaScript’s advanced object-hierarchy capabilities as much as possible. As an example, consider this payload:

    const userNotification = {
    payload: {
    userData: 'userDataValue',
    userDataNum: 111.2,
    userDataFlag: true,
    userDataArray: ['rock', 'paper', 'scissors'],
    userDataObj: {
    cascadedKey: 'cascadedValue'
    },
    },
    };

    The outcome on the native side will be such that all of these conditions evaluate to true:

    activity.getIntent().getStringExtra("userData") == "userDataValue";
    activity.getIntent().getDoubleExtra("userDataNum") == 111.2;
    activity.getIntent().getBooleanExtra("userDataFlag") == true;
    activity.getIntent().getStringArrayExtra("userDataArray")[0] == "rock";
    activity.getIntent().getBundleExtra("userDataObj").getString("cascadedKey") == "cascadedValue";
    Handling at Runtime

    Note that on Android, data delivered through an intent at runtime, is typically received in your activity’s onNewIntent callback. Be sure to consider what should be done in order to handle this type of a use case in your app: Namely, that setIntent() should be called in order for the data to be later available in your app through getIntent(), as explained earlier.

    This isn’t related to Detox in particular, and is set here simply to help you consider all the use cases in your app so that tests coverage would be optimal.

    Examples

    1. Calendar Trigger
    2. Location Trigger
    3. Time Interval Trigger
    4. Push Trigger
    - - +
    Version: Next

    Mocking User Notifications

    Detox supports mocking user notifications.

    Note: The mocking mechanism will not mimic the UI of a user notification. Instead, it will only simulate a user interaction with the notification - namely, the "opening" of it (equivalent to a user’s tap/swipe on it in the notification center).

    Mocking App Launch With a Notification

    launchApp() with custom parameters (i.e. userNotification) will trigger the mocking mechanism.

    await device.launchApp({newInstance: true, userNotification: notification});

    Example

    describe('Launch with push notification', () => {
    it('should handle the notification', async () => {
    await device.launchApp({
    newInstance: true,
    userNotification: userNotificationPushTrigger,
    });
    await expect(element(by.text('From push'))).toBeVisible();
    });
    });

    Mocking Notification Reception on a Running App

    Use the sendUserNotification() method to send notification to running app. Notifications can be sent to an active or a background app.

    Note: while the name sendUserNotification() is not very idiomatic on Android, as notification data is not "sent" to apps (rather, it is bundled into an Activity/Service launch Intent as Intent-extras), this unified API is used, for the time being, for both platforms equivalently. With plans of a more extensive support for Android, we estimate it would be deprecated when the time comes.

    await device.sendUserNotification(notification);

    Example:

    describe('Foreground user notifications', () => {
    it('should handle the local notification from inside the app', async () => {
    await device.launchApp();
    await device.sendUserNotification(localNotification);
    await expect(element(by.text('from local notification'))).toBeVisible();
    });
    });

    Notification JSON Format

    User notifications are passed as JSON objects to Detox. The JSON object needs to provide some required data, but can also provide an additional, optional payload.

    Mind the major difference here between the two platforms. While on iOS many types of data fields are applicable, Android is very loosely defined - with support for just free-form user data in the payload field.

    KeyRequiredValue TypePlatformDescription
    triggerYesObjectiOSThe conditions that trigger the delivery of the notification. See the Triggers section below.
    titleNoStringiOSA short description of the reason for the alert.
    subtitleNoStringiOSA secondary description of the reason for the alert.
    bodyNoStringiOSThe body of the notification.
    badgeNoIntegeriOSThe number to display as the app’s icon badge.
    payloadiOS: No
    Android: Yes
    ObjectiOS & AndroidAn object of custom information associated with the notification.
    Android: see full description below
    categoryNoStringiOSThe identifier of the app-defined category object.
    content-availableNoIntegeriOSInclude this key with a value of 1 to configure a silent notification.
    user-textNoStringiOSThe text response provided by the user.
    action-identifierNoStringiOSThe identifier for the action that the user selected.

    Triggers (iOS-only)

    Triggers are objects representing the trigger.

    KeyRequiredValue TypeDescription
    typeYesStringThe conditions that trigger the delivery of the notification. See the Trigger Types section below.
    repeatsNoBooleanIndicates whether the event repeats. Only used for calendar, timeInterval and location trigger types.
    timeIntervalYes for timeInterval trigger typeNumberThe time interval used to create the trigger.
    date-componentsYes for calendar trigger typeObjectThe date components used to construct this object. See the Date Components section below.
    regionYes for location trigger typeObjectThe region used to determine when the notification is sent. See the Region section below.
    Trigger Types

    There are four types of triggers supported by Detox at this time:

    • push
    • calendar
    • timeInterval
    • location

    For convenience, these trigger types are provided as constants in DetoxConstants:

    const DetoxConstants = require('detox/index').DetoxConstants;

    const userNotification = {
    "trigger": {
    "type": DetoxConstants.userNotificationTriggers.push
    },
    // ...
    }

    Date Components (iOS-only)

    KeyRequiredValue TypeDescription
    eraNoIntegerThe number of era units for the receiver.
    yearNoIntegerThe number of year units for the receiver.
    monthNoIntegerThe number of month units for the receiver.
    dayNoIntegerThe number of day units for the receiver.
    hourNoIntegerThe number of hour units for the receiver.
    minuteNoIntegerThe number of minute units for the receiver.
    secondNoIntegerThe number of second units for the receiver.
    weekdayNoIntegerThe number of the weekday unit for the receiver.
    weekdayOrdinalNoIntegerThe ordinal number of weekday units for the receiver.
    quarterNoIntegerThe number of quarters for the receiver.
    weekOfMonthNoIntegerThe week number of the month for the receiver.
    leapMonthNoBooleanIndicates whether the month is a leap month.

    Region (iOS-only)

    KeyRequiredValue TypeDescription
    centerYesObjectThe center point of the geographic area. See the Coordinate section below.
    radiusYesNumberThe radius (measured in meters) that defines the geographic area’s outer boundary.
    notifyOnEntryNoBooleanIndicates that notifications are generated upon entry into the region.
    notifyOnExitNoBooleanIndicates that notifications are generated upon exit from the region.

    Coordinate (iOS-only)

    KeyRequiredValue TypeDescription
    latitudeYesNumberThe latitude in degrees. Positive values indicate latitudes north of the equator. Negative values indicate latitudes south of the equator.
    longitudeYesNumberThe longitude in degrees. Measurements are relative to the zero meridian, with positive values extending east of the meridian and negative values extending west of the meridian.

    Payload

    On Android, the content will be available via the activity’s getIntent() API, inside the intent’s extra bundle. Under some limitations, that includes data-cascading so as to provide comprehensive support for JavaScript’s advanced object-hierarchy capabilities as much as possible. As an example, consider this payload:

    const userNotification = {
    payload: {
    userData: 'userDataValue',
    userDataNum: 111.2,
    userDataFlag: true,
    userDataArray: ['rock', 'paper', 'scissors'],
    userDataObj: {
    cascadedKey: 'cascadedValue'
    },
    },
    };

    The outcome on the native side will be such that all of these conditions evaluate to true:

    activity.getIntent().getStringExtra("userData") == "userDataValue";
    activity.getIntent().getDoubleExtra("userDataNum") == 111.2;
    activity.getIntent().getBooleanExtra("userDataFlag") == true;
    activity.getIntent().getStringArrayExtra("userDataArray")[0] == "rock";
    activity.getIntent().getBundleExtra("userDataObj").getString("cascadedKey") == "cascadedValue";
    Handling at Runtime

    Note that on Android, data delivered through an intent at runtime, is typically received in your activity’s onNewIntent callback. Be sure to consider what should be done in order to handle this type of a use case in your app: Namely, that setIntent() should be called in order for the data to be later available in your app through getIntent(), as explained earlier.

    This isn’t related to Detox in particular, and is set here simply to help you consider all the use cases in your app so that tests coverage would be optimal.

    Examples

    1. Calendar Trigger
    2. Location Trigger
    3. Time Interval Trigger
    4. Push Trigger
    + + \ No newline at end of file diff --git a/docs/next/guide/mocking/index.html b/docs/next/guide/mocking/index.html index 8499051eb3..a9e1dd3ce8 100644 --- a/docs/next/guide/mocking/index.html +++ b/docs/next/guide/mocking/index.html @@ -11,18 +11,18 @@ - - + +
    -
    Version: Next

    Mocking

    info

    This article previously focused on the older React Native versions (<0.59), so if you need to access it, follow this Git history link.

    Mocking is an integral part of testing. +

    Version: Next

    Mocking

    info

    This article previously focused on the older React Native versions (<0.59), so if you need to access it, follow this Git history link.

    Mocking is an integral part of testing. You may want to use mocks to alter specific behavior of your app during tests, e.g., to:

    • change server endpoints to point to a mock/staging server instead of the regular production server;
    • stub a feature the simulator doesn’t support;
    • prepare mock environment data such as GPS position, Contacts/Photos found on the device, etc.

    This guide assumes you are testing a React Native app with Detox.

    Please note that you cannot apply mocking techniques familiar from the prior Jest experience, even though Detox runs on top of Jest, e.g.:

    jest.mock('./src/myModule'); // NO, THIS WON'T WORK

    All the mocking must be conducted with the help of Metro bundler, which powers React Native under the hood. Thanks to Metro bundler, there are two modes your React Native application can run in:

    1. Debug mode. Running npx react-native start spawns the Metro bundler on port 8081 (by default). It serves JavaScript files of your app over HTTP, expecting that the native code will request it right upon the launch on the mobile device. Thus, the native app keeps re-downloading and executing the new code every time you change the code locally.

    2. Release mode. In contrast to the debug mode, Metro bundler does not need to run as a server on the side. It bundles your JavaScript code once into the native app binary file. Hence, every edit to the source code requires rebuilding the entire app binary and reinstalling it on the device before you can see the effect.

    There are two ways to configure the Metro bundler to use your mocks: quick (debug mode only) and universal. Let's start with the quicker way.

    Quick flow

    1. Pick a module that you are going to mock, e.g.:

      // src/config.js

      export const SERVER_URL = 'https://production.mycompany.name/api';
      export const FETCH_TIMEOUT = 60000;
    2. Create a mock module alongside, with an arbitrary extension (e.g. .mock.js):

      // src/config.mock.js

      export * from './config.js';

      // override the url from the original file:
      export const SERVER_URL = 'http://localhost:3000/api';
    3. Stop your Metro bundler if it has been already running, and run it again with the corresponding file extension override, e.g.:

      npx react-native start --sourceExts mock.js,js,json,ts,tsx

      This command is already enough to start your application in an altered mode, and you can start running your tests. Now, if some module imports ./src/config, you tell Metro bundler to prefer ./src/config.mock.js over the plain ./src/config.js, which means the consumer gets the mocked implementation.

    CAVEAT: whichever file extension you might take for the mock files – make sure you don’t accidentally "pick up" unforeseen file overrides from node_modules/**/*.your-extension.js! Metro bundler does not limit itself to your project files only – applying those --sourceExts also affects the resolution of the node_modules content!

    Configuring Metro bundler

    While the mentioned way is good enough for the debug mode, it falls short for the release builds. The problem is that the --sourceExts argument is supported only by react-native start command. Hence, you’d need a CLI-independent way to configure your Metro bundler, and that is patching your project's metro.config.js:

    metro.config.js
     /**
    * Metro configuration for React Native
    * https://github.com/facebook/react-native
    *
    * @format
    */
    +const defaultSourceExts = require('metro-config/src/defaults/defaults').sourceExts;

    module.exports = {
    + resolver: {
    + sourceExts: process.env.MY_APP_MODE === 'mocked'
    + ? ['mock.js', ...defaultSourceExts]
    + : defaultSourceExts,
    + },
    transformer: {
    getTransformOptions: async () => ({
    transform: {
    experimentalImportSupport: false,
    inlineRequires: true,
    },
    }),
    },
    };

    This way, we are enforcing a custom convention that if the Metro bundler finds the MY_APP_MODE=mocked environment variable, it should apply our sourceExts override instead of the default values.

    Therefore, to start the Metro bundler in the mocked mode, you would run something like:

    MY_APP_MODE=mocked npx react-native start

    This principle stays the same for the release mode, although the build commands might differ depending on the platform and a specific script:

    export MY_APP_MODE=mocked
    # from now on, even an implicit run of Metro bundler will use our override

    # via React Native CLI
    npx react-native run-ios --configuration Release
    npx react-native run-android --variant=release

    # via native tools
    xcodebuild -workspace ... -configuration release -scheme ...
    ./gradlew assembleRelease

    Please note that preparing React Native apps for the release mode requires groundwork for both iOS and Android, which is out of scope of this current article.

    As you might have noticed, this tutorial has no direct connection to Detox itself, which is a correct observation. The suggested mocking techniques are a part of the React Native world itself, so please consult the further resources:

    Happy Detoxing!

    - - + + \ No newline at end of file diff --git a/docs/next/guide/parallel-test-execution/index.html b/docs/next/guide/parallel-test-execution/index.html index 995f98cb83..8bc34d05c8 100644 --- a/docs/next/guide/parallel-test-execution/index.html +++ b/docs/next/guide/parallel-test-execution/index.html @@ -11,16 +11,16 @@ - - + +
    -
    Version: Next

    Parallel Test Execution

    Detox comes out of the box with multi-worker support thanks to (Jest's feature, etc.).

    By default detox test will run the test runner with one worker. Worker count can be controlled by forwarding --maxWorkers <N> to Jest via detox test.

    Device Creation

    While running with multiple workers, Detox might not have an available simulator for every worker. +

    Version: Next

    Parallel Test Execution

    Detox comes out of the box with multi-worker support thanks to (Jest's feature, etc.).

    By default detox test will run the test runner with one worker. Worker count can be controlled by forwarding --maxWorkers <N> to Jest via detox test.

    Device Creation

    While running with multiple workers, Detox might not have an available simulator for every worker. If no simulator is available for that worker, the worker will create one with the name {name}-Detox.

    Lock File

    Since any attached device can potentially be used simultaneously by multiple workers, Detox needs to maintain a lock file to make sure that doesn't happen. Therefore, Detox maintains device.registry.json, a file with exclusive access based on proper-lockfile, controlled by Detox, that registers all simulators and emulators currently in use by Detox instances.

    The lock file location is determined by the OS, and defined here.

    • MacOS: ~/Library/Detox/device.registry.json
    • Linux: ~/.local/share/Detox/device.registry.json
    • Windows: %LOCALAPPDATA%/data/Detox/device.registry.json or %USERPROFILE%/Application Data/Detox/device.registry.json
    - - + + \ No newline at end of file diff --git a/docs/next/guide/proguard-configuration/index.html b/docs/next/guide/proguard-configuration/index.html index a54e52ddc8..575e213290 100644 --- a/docs/next/guide/proguard-configuration/index.html +++ b/docs/next/guide/proguard-configuration/index.html @@ -11,19 +11,19 @@ - - + +
    -
    Version: Next

    ProGuard configuration

    tip

    You can skip this guide if you are working solely with debug builds (android.emu.debug, etc.), +

    Version: Next

    ProGuard configuration

    tip

    You can skip this guide if you are working solely with debug builds (android.emu.debug, etc.), but as soon as you move to the release builds, where the native code gets minified and obfuscated, you are going to have problems with Detox if you leave your ProGuard rules not configured.

    Since Detox relies on Android Reflection API to integrate with React Native on Android, you should keep ProGuard minification under tight control. Otherwise, you’ll be seeing Detox crashing or hanging up infinitely upon an attempt to run tests with your app built in release mode.

    To fix that, you’d need to return to your app build script:

    app/build.gradle
         buildTypes {

    release { /* (1) */
    minifyEnabled true

    /* (2) */ proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
    + /* (3) */ proguardFile "${rootProject.projectDir}/../node_modules/detox/android/detox/proguard-rules-app.pro"
    }
    }
    1. release build type is typically the one to have ProGuard enabled.
    2. ProGuard files present by default in React Native projects. Check out Android docs to get to know more.
    3. Detox-specific exclude list for ProGuard.
    info

    In order for Detox to be able to work properly, in proguard-rules-app.pro, it effectively declares rules that retain most of React-Native’s code (i.e. keep it unminified, unobfuscated) in your production APK.

    Obfuscation

    Exempting source files from the obfuscation means that their contents might be restored by unauthorized people, but this should not be an issue for you, because React Native is an open-source project per se.

    If it nevertheless bothers you, there are workarounds such as defining multiple build flavors: one for running end-to-end tests with Detox, and the other one for publishing to the marketplaces:

    app/build.gradle
        buildTypes {
    release {
    minifyEnabled true
    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

    signingConfig signingConfigs.release
    }
    releaseE2E {
    initWith release
    setMatchingFallbacks('release')

    proguardFile "${rootProject.projectDir}/../node_modules/detox/android/detox/proguard-rules-app.pro"
    }
    }

    As can be seen above, we use initWith and setMatchingFallbacks to extend the new releaseE2E build type from the existing one, and then we add an override to it, i.e. proguardFile.

    Following the example, you would then have to adjust your build and binaryPath properties accordingly:

    {
    apps: {
    'android.release': {
    type: 'android.apk',
    - binaryPath: 'android/app/build/outputs/apk/release/app-release.apk',
    + binaryPath: 'android/app/build/outputs/apk/releaseE2E/app-releaseE2E.apk',
    - build: 'cd android && ./gradlew assembleRelease assembleAndroidTest -DtestBuildType=release'
    + build: 'cd android && ./gradlew assembleReleaseE2E assembleAndroidTest -DtestBuildType=release'
    },`
    note

    If your app already contains flavors – that makes things a bit trickier, but the approach can generally be adjusted to support that as well.

    Last but not least: If you’re having issue with Detox' ProGuard rules, please report them here.

    A special thanks to @GEllickson-Hover for reporting issues related to obfuscation in #2431.

    - - + + \ No newline at end of file diff --git a/docs/next/guide/taking-screenshots/index.html b/docs/next/guide/taking-screenshots/index.html index 679446f586..49654ed595 100644 --- a/docs/next/guide/taking-screenshots/index.html +++ b/docs/next/guide/taking-screenshots/index.html @@ -11,13 +11,13 @@ - - + +
    -
    Version: Next

    Taking Screenshots

    Detox supports taking in-test screenshots of the device, making the result immediately available in the form of an image file.

    Screenshots can be taken in two levels:

    • Device-level: taking a screenshot of the entire screen.
    • Element-level: taking a screenshot of a specific element (and the view-hierarchy associated with it), currently appearing on the screen.

    In both cases, the concept is mainly useful for verifying the proper visual structure and layout of elements appearing on the device’s screen, in the form of a snapshot-test. Namely, by following these conceptual steps:

    1. Taking a screenshot, once, and manually verifying it, visually.
    2. Storing it as an E2E test asset (i.e. the snapshot).
    3. Using it as the point-of-reference for comparison against screenshots taken in consequent tests, from that point on.
    const fs = require('fs');

    describe('Members area', () => {
    const snapshottedImagePath = './e2e/assets/snapshotted-image.png';

    it('should greet the member with an announcement', async () => {
    const imagePath = (take screenshot from the device); // Discussed below
    expectBitmapsToBeEqual(imagePath, snapshottedImagePath);
    });
    });

    function expectBitmapsToBeEqual(imagePath, expectedImagePath) {
    const bitmapBuffer = fs.readFileSync(imagePath);
    const expectedBitmapBuffer = fs.readFileSync(expectedImagePath);
    if (!bitmapBuffer.equals(expectedBitmapBuffer)) {
    throw new Error(`Expected image at ${imagePath} to be equal to image at ${expectedImagePath}, but it was different!`);
    }
    }

    Important: The recommended, more practical way of doing this, is by utilizing more advanced 3rd-party image snapshotting & comparison tools such as Applitools.

    Device-level Screenshots

    Taking a screenshot of the entire screen can be done using a device-level API:

    const imagePath = await device.takeScreenshot('opened general section');

    The API immediately returns the path of a temporary, readable image file where the screenshot is stored, all-the-while scheduling the transferring of it to the artifacts folder upon completion of the currently running test.

    Returns:

    The path of a temporary file containing the resulted .png image.

    Important: The returned path is guaranteed to be valid only during the test execution. Later on, the screenshot will be moved to the artifacts' folder, and will not be available.

    Parameters:

    name (optional) - Name of the final image-file to store as the artifact. For example, setting name to opened general section would result in an artifact file named opened general section.png. In case the name isn’t provided, Detox would self-generate a random, distinct name, instead (though not a very descriptive one).

    Artifacts Management

    Means of creation of the final image as an artifact is tightly connected to the --take-screenshots argument to Detox CLI:

    • If --take-screenshots none is set, the screenshot will be taken, but it won’t be saved to <artifacts-location> after the test ends.
    • If --take-screenshots failing is set, and the test passes, the screenshot won’t be saved to <artifacts-location> after the test ends.
    • In the other modes (manual and all), if the test passes, the screenshot will be put to <artifacts-location>/✓ Members area should greet the member with an announcement/opened general section.png.
    • In the other modes (manual and all), if the test fails, the screenshot will be put to <artifacts-location>/✗ Members area should greet the member with an announcement/opened general section.png.

    Caveats

    This API well-captures all elements, although alongside surrounding "visual noise" such as the navigation bar, as can be seen in the image below:

    device-screenshot

    As the image includes, for example, the current time (in the top-left corner), running the test in any different time would unnecessarily result in an utter comparison failure, making the test downright useless. Fortunately, this can be resolved, by putting the device into "demo mode" (i.e. freezing the irrelevant, volatile elements) . For example (credits - Miki):

    async function setDemoMode() {
    if (device.getPlatform() === 'ios') {
    execSync(
    'xcrun simctl status_bar "iPhone 11" override --time "12:00" --batteryState charged --batteryLevel 100 --wifiBars 3 --cellularMode active --cellularBars 4'
    );
    } else {
    // enter demo mode
    execSync('adb shell settings put global sysui_demo_allowed 1');
    // display time 12:00
    execSync('adb shell am broadcast -a com.android.systemui.demo -e command clock -e hhmm 1200');
    // Display full mobile data with 4g type and no wifi
    execSync(
    'adb shell am broadcast -a com.android.systemui.demo -e command network -e mobile show -e level 4 -e datatype 4g -e wifi false'
    );
    // Hide notifications
    execSync('adb shell am broadcast -a com.android.systemui.demo -e command notifications -e visible false');
    // Show full battery but not in charging state
    execSync('adb shell am broadcast -a com.android.systemui.demo -e command battery -e plugged false -e level 100');
    }
    }

    Note: This script implicitly assumes only one device is used, as device ID isn’t specified anywhere (e.g. with adb -s <id>).

    Element-level Screenshots

    Taking a screenshot of a specific element can be simply done using an API similar to other element-interaction Detox APIs:

    const imagePath = await element(by.id('announcementsRoot')).takeScreenshot('welcome announcement');

    The API works in the exact same way as device.takeScreenshot() does in terms of return value, arguments, and artifacts management.

    In this example, the image-file specified by imagePath will hold the visual content of a native view whose test ID is announcementsRoot, alongside all of the views in the view-hierarchy formed by it as the root-view. Visually, this can be, for example:

    Announcements view

    Meaning, assuming announcementsRoot has been specified over some ancestor view which has both the Announcement title and the card as its direct or indirect children, the result would include both. That, in turns, also includes the card’s children, such as the avatar, welcome text, etc.

    Caveats of this approach

    Focusing on specific elements, this approach is key to more stable comparisons, and hence more stable tests, over time. However, inspecting less content evidently means protecting against less bugs. For example, In a screen where the element in question is partly obstructed by other elements drawn on the screen, the image created by takeScreenshot() will successfully hold all of it’s content, nonetheless.

    Consider this situation in one of the app’s screens, where the upcoming schedule overlaps the top-hand announcement card:

    overlap

    Taking an element-screenshot of the announcement part alone, would yield a proper result, leaving this bug overlooked:

    announcement element

    Only by taking the element-screenshot of a common ancestor, will this bug be surfaced. However, in turn, that can affect stability, as the result is now sensitive to more details such as padding and background color.

    As a bottom line, this API is mostly suited for testing UI components rather than complete screens.

    - - +
    Version: Next

    Taking Screenshots

    Detox supports taking in-test screenshots of the device, making the result immediately available in the form of an image file.

    Screenshots can be taken in two levels:

    • Device-level: taking a screenshot of the entire screen.
    • Element-level: taking a screenshot of a specific element (and the view-hierarchy associated with it), currently appearing on the screen.

    In both cases, the concept is mainly useful for verifying the proper visual structure and layout of elements appearing on the device’s screen, in the form of a snapshot-test. Namely, by following these conceptual steps:

    1. Taking a screenshot, once, and manually verifying it, visually.
    2. Storing it as an E2E test asset (i.e. the snapshot).
    3. Using it as the point-of-reference for comparison against screenshots taken in consequent tests, from that point on.
    const fs = require('fs');

    describe('Members area', () => {
    const snapshottedImagePath = './e2e/assets/snapshotted-image.png';

    it('should greet the member with an announcement', async () => {
    const imagePath = (take screenshot from the device); // Discussed below
    expectBitmapsToBeEqual(imagePath, snapshottedImagePath);
    });
    });

    function expectBitmapsToBeEqual(imagePath, expectedImagePath) {
    const bitmapBuffer = fs.readFileSync(imagePath);
    const expectedBitmapBuffer = fs.readFileSync(expectedImagePath);
    if (!bitmapBuffer.equals(expectedBitmapBuffer)) {
    throw new Error(`Expected image at ${imagePath} to be equal to image at ${expectedImagePath}, but it was different!`);
    }
    }

    Important: The recommended, more practical way of doing this, is by utilizing more advanced 3rd-party image snapshotting & comparison tools such as Applitools.

    Device-level Screenshots

    Taking a screenshot of the entire screen can be done using a device-level API:

    const imagePath = await device.takeScreenshot('opened general section');

    The API immediately returns the path of a temporary, readable image file where the screenshot is stored, all-the-while scheduling the transferring of it to the artifacts folder upon completion of the currently running test.

    Returns:

    The path of a temporary file containing the resulted .png image.

    Important: The returned path is guaranteed to be valid only during the test execution. Later on, the screenshot will be moved to the artifacts' folder, and will not be available.

    Parameters:

    name (optional) - Name of the final image-file to store as the artifact. For example, setting name to opened general section would result in an artifact file named opened general section.png. In case the name isn’t provided, Detox would self-generate a random, distinct name, instead (though not a very descriptive one).

    Artifacts Management

    Means of creation of the final image as an artifact is tightly connected to the --take-screenshots argument to Detox CLI:

    • If --take-screenshots none is set, the screenshot will be taken, but it won’t be saved to <artifacts-location> after the test ends.
    • If --take-screenshots failing is set, and the test passes, the screenshot won’t be saved to <artifacts-location> after the test ends.
    • In the other modes (manual and all), if the test passes, the screenshot will be put to <artifacts-location>/✓ Members area should greet the member with an announcement/opened general section.png.
    • In the other modes (manual and all), if the test fails, the screenshot will be put to <artifacts-location>/✗ Members area should greet the member with an announcement/opened general section.png.

    Caveats

    This API well-captures all elements, although alongside surrounding "visual noise" such as the navigation bar, as can be seen in the image below:

    device-screenshot

    As the image includes, for example, the current time (in the top-left corner), running the test in any different time would unnecessarily result in an utter comparison failure, making the test downright useless. Fortunately, this can be resolved, by putting the device into "demo mode" (i.e. freezing the irrelevant, volatile elements) . For example (credits - Miki):

    async function setDemoMode() {
    if (device.getPlatform() === 'ios') {
    execSync(
    'xcrun simctl status_bar "iPhone 11" override --time "12:00" --batteryState charged --batteryLevel 100 --wifiBars 3 --cellularMode active --cellularBars 4'
    );
    } else {
    // enter demo mode
    execSync('adb shell settings put global sysui_demo_allowed 1');
    // display time 12:00
    execSync('adb shell am broadcast -a com.android.systemui.demo -e command clock -e hhmm 1200');
    // Display full mobile data with 4g type and no wifi
    execSync(
    'adb shell am broadcast -a com.android.systemui.demo -e command network -e mobile show -e level 4 -e datatype 4g -e wifi false'
    );
    // Hide notifications
    execSync('adb shell am broadcast -a com.android.systemui.demo -e command notifications -e visible false');
    // Show full battery but not in charging state
    execSync('adb shell am broadcast -a com.android.systemui.demo -e command battery -e plugged false -e level 100');
    }
    }

    Note: This script implicitly assumes only one device is used, as device ID isn’t specified anywhere (e.g. with adb -s <id>).

    Element-level Screenshots

    Taking a screenshot of a specific element can be simply done using an API similar to other element-interaction Detox APIs:

    const imagePath = await element(by.id('announcementsRoot')).takeScreenshot('welcome announcement');

    The API works in the exact same way as device.takeScreenshot() does in terms of return value, arguments, and artifacts management.

    In this example, the image-file specified by imagePath will hold the visual content of a native view whose test ID is announcementsRoot, alongside all of the views in the view-hierarchy formed by it as the root-view. Visually, this can be, for example:

    Announcements view

    Meaning, assuming announcementsRoot has been specified over some ancestor view which has both the Announcement title and the card as its direct or indirect children, the result would include both. That, in turns, also includes the card’s children, such as the avatar, welcome text, etc.

    Caveats of this approach

    Focusing on specific elements, this approach is key to more stable comparisons, and hence more stable tests, over time. However, inspecting less content evidently means protecting against less bugs. For example, In a screen where the element in question is partly obstructed by other elements drawn on the screen, the image created by takeScreenshot() will successfully hold all of it’s content, nonetheless.

    Consider this situation in one of the app’s screens, where the upcoming schedule overlaps the top-hand announcement card:

    overlap

    Taking an element-screenshot of the announcement part alone, would yield a proper result, leaving this bug overlooked:

    announcement element

    Only by taking the element-screenshot of a common ancestor, will this bug be surfaced. However, in turn, that can affect stability, as the result is now sensitive to more details such as padding and background color.

    As a bottom line, this API is mostly suited for testing UI components rather than complete screens.

    + + \ No newline at end of file diff --git a/docs/next/guide/test-id/index.html b/docs/next/guide/test-id/index.html index e39dbf251b..02c4ec454c 100644 --- a/docs/next/guide/test-id/index.html +++ b/docs/next/guide/test-id/index.html @@ -11,18 +11,18 @@ - - + +
    -
    Version: Next

    Adding test ID's to your components

    Note

    This guide was written primarily for React Native apps, but it can be generalized for testing any app, including native apps.

    While view-element matching can be done in numerous ways, it is always the best idea to match based on something unique and decoupled, as it ensures that the test code is clear, stable and sustainable over time.

    We recommend assigning unique test ID's to the elements you're aiming to interact with in your tests, and preferring matching based on those rather than on anything else. Test ID's are the least likely to change over time (compared with raw text, for example), and are locale-agnostic. Furthermore, utilizing unique test ID's across the app not only simplifies the identification and interaction with specific elements but also enhances code navigability, making it easier to locate elements when traversing the codebase.

    In React Native applications, View components have a dedicated test ID property that can be utilized:

    <View>
    <TouchableOpacity testID="Onboarding.Next_button">
    <Text>Next</Text>
    </TouchableOpacity>
    </View>

    For native apps, test ID's can be assigned by setting a value for the following properties:

    Pass testID to your native components

    Passing a testID to your custom component props has no effect until you forward it down to a native component like <View /> or <TouchableOpacity /> +

    Version: Next

    Adding test ID's to your components

    Note

    This guide was written primarily for React Native apps, but it can be generalized for testing any app, including native apps.

    While view-element matching can be done in numerous ways, it is always the best idea to match based on something unique and decoupled, as it ensures that the test code is clear, stable and sustainable over time.

    We recommend assigning unique test ID's to the elements you're aiming to interact with in your tests, and preferring matching based on those rather than on anything else. Test ID's are the least likely to change over time (compared with raw text, for example), and are locale-agnostic. Furthermore, utilizing unique test ID's across the app not only simplifies the identification and interaction with specific elements but also enhances code navigability, making it easier to locate elements when traversing the codebase.

    In React Native applications, View components have a dedicated test ID property that can be utilized:

    <View>
    <TouchableOpacity testID="Onboarding.Next_button">
    <Text>Next</Text>
    </TouchableOpacity>
    </View>

    For native apps, test ID's can be assigned by setting a value for the following properties:

    Pass testID to your native components

    Passing a testID to your custom component props has no effect until you forward it down to a native component like <View /> or <TouchableOpacity /> that implements rendering it as an accessibility identifier in the native component hierarchy:

    Pass testID to native component

    For example, you have <YourCustomComponent /> and you pass a testID to it:

    YourScreen.jsx
    function YourScreen() {
    return (
    <YourCustomComponent testID="YourCustomComponent" />
    );
    }

    Make sure that your implementation passes testID to some React Native component that supports it:

    YourCustomComponent.jsx
    function YourCustomComponent(props) {
    return (
    <View testID={props.testID}>
    <Text>Some text</Text>
    </View>
    );
    }

    Child elements

    If your component has several useful child elements, it is even a better idea to assign them some derived test IDs, e.g.:

    YourCustomComponent.jsx
    function YourCustomComponent(props) {
    return (
    <View testID={props.testID}>
    <Text testID={`${props.testID}.label`}>Some text</Text>
    </View>
    );
    }

    That way, you could refer to specific elements in Detox tests via the most basic and least ambiguous by.id matchers, e.g.:

    expect(element(by.id('YourCustomComponent'))).toBeVisible();
    expect(element(by.id('YourCustomComponent.label'))).toHaveText('Some text');

    Repetitive components

    It is highly not recommended to use non-unique testID, e.g. when your components get rendered in any sort of repeater or virtualized list:

    YourScreen.jsx
    const ITEMS = [
    { title: 'First Item' },
    { title: 'Second Item' },
    { title: 'Third Item' },
    ];

    function YourScreen() {
    const renderItem = ({ item }) => (
    <YourCustomComponent testID={'listItem'} label={item.title} />
    );

    return (
    <FlatList
    data={ITEMS}
    renderItem={renderItem}
    />
    );
    }

    This would be a violation of accessibility guidelines and unnecessary complication for your test matchers. You’d also have to use extra matchers and .atIndex clarification:

    expect(element(by.id('listItem')).atIndex(2)).toHaveText('Third Item');

    Instead, you could generate a unique testID for every list item with the index property:

      const renderItem = ({ item, index }) => (
    <YourCustomComponent testID={`listItem.${index + 1}`} label={item.title} />
    );

    That way, your assertion would become simpler and more deterministic:

    expect(element(by.id('listItem.3'))).toHaveText('Third Item');

    testID for repetitive components

    Finding your test ID

    note

    Incorrect or absent testID is a common cause for test failure. If your test can't find your testID and you can't see it either using tools described below, that usually means you haven't passed it down to this component. Make sure you keep forwarding it down until it reaches a native component.

    To make sure your testID is indeed rendered in your app, you can use such tools as MacOS' built-in accessibility inspector for iOS, and Detox Layout-inspector (setup required) for Android.

    Test ID naming - Best practices

    Test ID's work best when they are unique, simple and concise. Here are our recommendations regarding what rules to follow in terms of naming.

    Use a consistent naming system

    Decide upon a system by which test ID's are named, and stick with it.

    1. Use a consistent naming convention. An ITEM_NAME_ALL_CAPS convention and an ItemNameUpperCamelCase are both ok, but don't use them either intermittently nor in conjunction:

      • SITE_LIST_ROOT & SITE_LIST_ITEM_1 - :white_check_mark:
      • SITE_LIST_ROOT & SiteList_Item1 - ❌
      • SITE_LIST_Item1 - ❌
    2. Consistently apply notations for special items. For example:

      • A _ROOT postfix for screen-root or list-root items (e.g. SITE_LIST_ROOT)
      • A _BTN for buttons / touchable CTA elements
    3. Apply consistent prefixes as categories in order to introduce a top-level context to the test ID, distinguishing it from similar ones in various places in the app. The name of the associated screen can be useful in that sense. For example: EDIT_PROFILE_SCREEN.DONE_BTN is better than just DONE_BTN for a button that is inside a user profile editing screen. Also, things such as NAV_TABS., TOP_TABS. and SIDE_MENU. can be used as good context providers.

    4. As explained in the section on passing test ID's to child elements, drill down to the details of elements via a chain of contexts. Given the parent element-group of an element (for example, a card in a feed), use its own test ID as a prefix for the sub-items (e.g. an options "meatballs" / "kebab" CTA or an edit button). For example:

      • SITE_LIST_ITEM1
        • SITE_LIST_ITEM1.OPTIONS
        • SITE_LIST_ITEM1.EDIT_BTN
        • SITE_LIST_ITEM1.TITLE
    5. In a large-scale, multi-module environment, apply a consistent module identifier as the module's test ID's prefix. For example:

      • AUTH.LOGIN_SCREEN.EDIT_PASSWORD - the AUTH. prefix suggests that were are under the context of a module handling Authentication matters.
    tip

    Don't hesitate to articulate a well defined conventions manifest that all teams should adhere to.

    Use simple names

    Stick to simple alpha-numeric characters, and simple separators. When it comes to test ID's, there's usually no reason to use special characters or emojis.

    In addition, use test ID that clearly describe the associated element, but are also concise. For example:

    • SITE_LIST_ROOT - :white_check_mark:
    • MAIN_SITE_LIST_WRAPPER_ELEMENT - ❌
    • SITE_LIST@ITEM$1 - ❌

    Dissociate test ID names

    Make sure the names you give test ID's are completely decoupled and dissociated from everything else in the system. In particular -

    Attention

    By all means, never utilize the element's text / label in the naming of a test ID! Namely, a test ID should never use text or label props passed to a React Native component.

    There are at least 2 reasons why this is a very important rule:

    1. Alternation of test ID's can lead to broken tests (test-ID based matchers become obsolete), and on-screen text can change frequently.
    2. In apps supporting multiple languages, the on-screen text is likely to be different in each language. You want the same test code to be compatible with any language set into the test device, and you therefore need it have as little awareness to it as possible. Using test ID's is the best means to keep it that way.

    Examples

    Based on the ALL_CAPS convention, here is an example of a screen which test ID's illustrate the principles of this discussion:

    Test ID: Naming example

    - - + + \ No newline at end of file diff --git a/docs/next/guide/testing-webviews/index.html b/docs/next/guide/testing-webviews/index.html index ceb736510e..1da5a7bca5 100644 --- a/docs/next/guide/testing-webviews/index.html +++ b/docs/next/guide/testing-webviews/index.html @@ -11,17 +11,17 @@ - - + +
    -
    Version: Next

    Testing WebViews

    In this tutorial, we'll go over how you can test a WebView in React Native applications using Detox. We will cover how to engage with web elements in both single and multi WebView scenarios, apply matchers, and execute actions.

    WebViews are crucial parts in a lot of mobile applications, rendering content like web pages or PDF documents within the native environment. However, because the content inside WebViews is web content and not native, it isn't straightforward to interact with using Detox. But fear not, Detox has got you covered with its suite of Web View methods.

    note

    This guide provides an overview of testing web views within React Native apps with Detox. For complete API details, refer to our WebView API documentation.

    Step 0: Setting Up Detox

    The first thing you'll need is to have your Detox environment properly set up. If you need a hand with that, you can follow the set-up guide here.

    Step 1: Locating the WebView

    Detox provides two approaches for locating the host web view and its inner elements, depending on the number of WebViews on the screen.

    Single WebView Scenario

    The case of a single WebView on the screen is the most common scenario, and it's the simplest to handle.

    Detox will automatically locate the web view for you, so you don't need to do anything special to find it. +

    Version: Next

    Testing WebViews

    In this tutorial, we'll go over how you can test a WebView in React Native applications using Detox. We will cover how to engage with web elements in both single and multi WebView scenarios, apply matchers, and execute actions.

    WebViews are crucial parts in a lot of mobile applications, rendering content like web pages or PDF documents within the native environment. However, because the content inside WebViews is web content and not native, it isn't straightforward to interact with using Detox. But fear not, Detox has got you covered with its suite of Web View methods.

    note

    This guide provides an overview of testing web views within React Native apps with Detox. For complete API details, refer to our WebView API documentation.

    Step 0: Setting Up Detox

    The first thing you'll need is to have your Detox environment properly set up. If you need a hand with that, you can follow the set-up guide here.

    Step 1: Locating the WebView

    Detox provides two approaches for locating the host web view and its inner elements, depending on the number of WebViews on the screen.

    Single WebView Scenario

    The case of a single WebView on the screen is the most common scenario, and it's the simplest to handle.

    Detox will automatically locate the web view for you, so you don't need to do anything special to find it. In this case, you can use the web.element() function with web element matchers to reference elements inside it, see next step in this guide for further details.

    Multiple Web Views Scenario

    In scenarios where there are multiple WebViews displayed on the screen, you will have to identify a particular WebView first. Use a native matcher to do this, same as you would for native elements.

    const myWebView = web(by.id('webview_identifier'));

    After locating the web view, you can then use the myWebView.element() method with web view matchers to locate elements within it. See next step in this guide for further details.

    Using atIndex

    It is also possible to locate the web view by applying at-index to the web view matcher in case there are multiple matching web views for the same matcher.

    const myWebView = web(by.id('webview_identifier').atIndex(1));
    note

    atIndex() API for WebView matching is currently supported for iOS only. Check our API documentation for updates.

    Step 2: Finding Inner Elements

    Element matchers are used to find elements within a web view. The Detox WebView APIs provide various matchers for locating elements within a web view (e.g. by.web.id(id), by.web.className(className), by.web.tag(tag), atIndex(index) etc.).

    Here are examples of using some of the matchers:

    // Match by ID attribute
    const elementByID = web.element(by.web.id('identifier'));

    // Match by CSS class name attribute
    const elementByClassName = web.element(by.web.className('className'));

    // Match by CSS selector
    const elementByCSSSelector = web.element(by.web.cssSelector('#cssSelector'));

    // Match with index in case of multiple matching elements
    const elementAtIndex = web.element(by.web.id('identifier').atIndex(1));

    Bypass CORS Restrictions (iOS Only)

    When testing web views, you may encounter Cross-Origin Resource Sharing (CORS) restrictions that prevent you from interacting with elements inside the web view.

    At the moment, Detox is able to bypass CORS restrictions and other browser security features only on iOS, allowing you to interact with inner elements in cases of CORS restrictions (in most cases).

    To bypass CORS restrictions on iOS, you can pass the detoxDisableWebKitSecurity launch argument. This argument will disable the WebKit security features, allowing Detox to interact with the WebView in a "Sandbox" environment.

    await device.launchApp({ launchArgs: { detoxDisableWebKitSecurity: true } });

    Step 3: Perform Actions

    Actions allow you to interact with elements within a web view. The Detox WebView APIs provide various actions that can be invoked on inner elements.

    For example, here's a simple example for filling a login form and press on login button:


    // Fill username and password
    await web.element(by.web.id('username')).typeText('John Doe');
    await web.element(by.web.id('password')).typeText('123456789');

    // Press the login button
    await web.element(by.web.id('login')).tap();

    Perform Custom Actions (runScript)

    You can also execute custom JavaScript code on the web view using the runScript action (see API docs). This is useful for scenarios where you need to interact with the web view in a way that isn't covered by the built-in actions, for fetching data, or for triggering custom events.

    For example, you can use runScript to get the font size of a text element:

    // Define the matcher for the inner text element
    const textElement = web(by.id('webview_identifier')).element(by.web.id('text_element'));

    // Get the font size of a text element
    const fontSize = await textElement.runScript(function get(element) {
    return element.style.fontSize;
    });

    // Use jestExpect to assert the font size
    jestExpect(fontSize).toBe('16px');
    note

    Using jest-expectations in Detox tests is possible by importing expect API from jest package and using it with a separate jestExpect variable (as shown in the example below). -This is due to the fact that Detox uses its own expect API, which is not compatible with jest-expectations.

    const jestExpect = require('expect').default;

    Step 4: Assert on Expected Behaviour

    Expectations are assertions on the state of elements within a WebView.

    For instance, to verify an element has specific text:

    await expect(web.element(by.web.id('identifier'))).toHaveText('Hello World!');

    Or to assert an element does not exist:

    await expect(web.element(by.web.id('invalid_identifier'))).not.toExist();

    Full Example

    Here's a full example of a test that interacts with a WebView:

    it('should login successfully', async () => {
    // Assert the welcome message is not visible before login
    await expect(web.element(by.web.id('welcome_message'))).not.toExist();

    // Fill username and password
    await web.element(by.web.id('username')).typeText('John Doe');
    await web.element(by.web.id('password')).typeText('123456789');

    // Press the login button
    await web.element(by.web.id('login')).tap();

    // Assert the login was successful
    await expect(web.element(by.web.id('welcome_message'))).toHaveText('Welcome, John Doe!');
    });
    - - +This is due to the fact that Detox uses its own expect API, which is not compatible with jest-expectations.

    const jestExpect = require('expect').default;

    Step 4: Assert on Expected Behaviour

    Expectations are assertions on the state of elements within a WebView.

    For instance, to verify an element has specific text:

    await expect(web.element(by.web.id('identifier'))).toHaveText('Hello World!');

    Or to assert an element does not exist:

    await expect(web.element(by.web.id('invalid_identifier'))).not.toExist();

    Full Example

    Here's a full example of a test that interacts with a WebView:

    it('should login successfully', async () => {
    // Assert the welcome message is not visible before login
    await expect(web.element(by.web.id('welcome_message'))).not.toExist();

    // Fill username and password
    await web.element(by.web.id('username')).typeText('John Doe');
    await web.element(by.web.id('password')).typeText('123456789');

    // Press the login button
    await web.element(by.web.id('login')).tap();

    // Assert the login was successful
    await expect(web.element(by.web.id('welcome_message'))).toHaveText('Welcome, John Doe!');
    });
    + + \ No newline at end of file diff --git a/docs/next/guide/testing-with-copilot/index.html b/docs/next/guide/testing-with-copilot/index.html deleted file mode 100644 index 424500b1b7..0000000000 --- a/docs/next/guide/testing-with-copilot/index.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - -Testing with Detox Copilot | Detox - - - - - - - - - - - -
    -
    Version: Next

    Testing with Detox Copilot

    In this tutorial, we'll explore how to use Detox Copilot to write end-to-end tests using natural language commands. Detox Copilot leverages large language models (LLMs) to translate human-readable instructions into Detox actions and assertions, making test writing more intuitive and accessible.

    note

    Detox Copilot is integrated into Detox and requires no additional installation. For complete API details, refer to our Detox Copilot API documentation.

    Work in Progress

    Note: Detox Copilot is in active development. APIs are subject to change in future releases.

    Introduction

    Detox Copilot simplifies the process of writing tests by allowing you to describe test steps in natural language. -It interprets these instructions and translates them into Detox commands. This guide will help you integrate Detox Copilot into your testing workflow and provide best practices for writing effective intents.

    Demo

    Step 0: Setting Up Detox

    Before you begin, ensure that your Detox environment is properly set up. -If you need assistance with the setup, refer to the Detox Getting Started Guide.

    Step 1: Implementing a PromptHandler

    The PromptHandler is a crucial component that interfaces with your LLM service. -Below is an example of how to implement a PromptHandler using OpenAI's GPT-4 API.

    You can adapt this code to work with other LLMs or services as needed.

    Implementing OpenAIPromptHandler

    const { Configuration, OpenAIApi } = require('openai');
    const path = require('path');

    class OpenAIPromptHandler {
    constructor(apiKey) {
    const configuration = new Configuration({ apiKey });
    this.openai = new OpenAIApi(configuration);
    }

    async runPrompt(prompt, imagePath) {
    const messages = [
    { role: 'system', content: 'You are a test automation assistant.' },
    { role: 'user', content: prompt },
    ];

    // If an image is provided, "upload" it and include the URL in the prompt
    if (imagePath && this.isSnapshotImageSupported()) {
    try {
    const imageUrl = await this.uploadImage(imagePath);
    messages.push({
    role: 'user',
    content: `Here is an image for reference: ${imageUrl}`,
    });
    } catch (error) {
    console.error('Error uploading image:', error);
    throw new Error('Failed to upload image');
    }
    }

    const response = await this.openai.createChatCompletion({
    model: 'gpt-4',
    messages,
    });

    return response.data.choices[0].message.content;
    }

    async uploadImage(imagePath) {
    // Uploads the image and returns the URL
    }

    isSnapshotImageSupported() {
    return true; // Set to true to handle image uploads
    }
    }

    module.exports = OpenAIPromptHandler;

    Explanation:

    • runPrompt: Sends the prompt to the LLM and returns the response.
    • isSnapshotImageSupported: Indicates whether the LLM can handle snapshot images. If set to true, the handler will include image URLs in the prompt and will include them when instructing Detox Copilot.

    Step 2: Initializing Detox Copilot

    Initialize Detox Copilot with your PromptHandler before running any tests. -This is typically done in the beforeAll hook or a setup file.

    Example:

    const { copilot } = require('detox');
    const OpenAIPromptHandler = require('./OpenAIPromptHandler');

    beforeAll(() => {
    const promptHandler = new OpenAIPromptHandler('YOUR_OPENAI_API_KEY');
    copilot.init(promptHandler);
    });

    Step 3: Writing Tests with Detox Copilot

    With Detox Copilot initialized, you can now write tests using the copilot.perform method.

    Writing Step-by-Step Tests

    Detox Copilot allows you to write tests by providing a sequence of natural language instructions. Each instruction corresponds to a single action or assertion.

    Example:

    it('should log in successfully', async () => {
    await copilot.perform(
    'Launch the app',
    'Tap on the "Login" button',
    'Enter "user@example.com" into the "Email" field',
    'Enter "password123" into the "Password" field',
    'Tap on the "Submit" button',
    'Verify that the "Welcome" message is displayed'
    );
    });

    Explanation:

    • Step-by-Step Instructions: Each step is a separate string, representing a single action or assertion.
    • Sequential Execution: Steps are executed in order, allowing you to describe complex interactions intuitively.

    Best Practices for Writing Intents

    To make the most out of Detox Copilot, consider the following best practices when writing your intents:

    Be Specific and Clear

    • Provide Clear Instructions: The clearer your instructions, the better Copilot can interpret them.
    • Example:
      • Good: 'Tap on the "Login" button'
      • Better: 'Tap on the "Login" button located at the top right corner'

    One Action per Step

    • Avoid Combining Multiple Actions: Keep each step focused on a single action or assertion.

    • Example:

      • Avoid: 'Tap on the "Login" button and enter credentials'
      • Prefer:
      'Tap on the "Login" button',
      'Enter "user@example.com" into the "Email" field'

    Use Exact Labels

    • Refer to UI Elements Precisely: Use the exact text or identifiers as they appear in the app.
    • Example:
      • Good: 'Enter "password123" into the "Password" field'
      • Avoid: 'Enter password into its field'

    Keep Assertions Simple

    • Focus on Specific Outcomes: Make assertions straightforward and specific.
    • Example:
      • Good: 'Verify that the "Welcome" message is displayed'
      • Avoid: 'Check if the welcome message appears correctly on the screen'

    Leverage Visual Context

    • Utilize Visual Descriptions: If your LLM supports image snapshots, include visual context in your intents.
    • Example: 'Ensure the profile picture is visible at the top of the screen'

    Avoid Ambiguity

    • Specify Elements Precisely: If multiple elements could match, provide additional details.
    • Example:
      • Ambiguous: 'Tap on the "Submit" button'
      • Specific: 'Tap on the "Submit" button in the registration form'

    General Recommendations

    • Flexibility: While it's best to provide clear instructions, Copilot is designed to interpret a variety of phrasing. Different approaches can work, and you are encouraged to experiment.
    • Feedback Loop: Observe how Copilot interprets your instructions and adjust accordingly.

    FAQs

    Q: Do I need to install Detox Copilot separately?

    A: No, Detox Copilot is integrated into Detox and requires no additional installation.


    Q: Which LLMs are recommended for use with Detox Copilot?

    A: We recommend using advanced models like Sonnet 3.5 or GPT-4o for better performance and understanding of complex instructions.


    Q: How can I provide feedback or contribute to Detox Copilot?

    A: Contributions are welcome! Visit the Detox Copilot GitHub Repository to open issues or pull requests if they are relevant to the core-library functionality or open a it under Detox repository if it is related to Detox-Copilot integration or if you are not sure where the issue should be opened.


    Q: These are heavy operations for a test (uploading images, calling an LLM). Do you optimize it in any way?

    A: Detox Copilot is designed to avoid unnecessary calls to the LLM service and optimize performance using static cache that is based on the current state of the app. -This minimizes the number of calls to the LLM service and reduces latency. -However, you can optimize your PromptHandler implementation to reduce latency and improve response times (e.g., by reducing the image size or implementing a server-side cache). -We have plans to optimize even further by introducing more advanced caching mechanisms for better performance.

    - - - - \ No newline at end of file diff --git a/docs/next/guide/typescript/index.html b/docs/next/guide/typescript/index.html index 1e943ff2e2..62916fc6a3 100644 --- a/docs/next/guide/typescript/index.html +++ b/docs/next/guide/typescript/index.html @@ -11,18 +11,18 @@ - - + +
    -
    Version: Next

    Using TypeScript

    info

    This guide assumes you are using Detox's default test runner integration with Jest. +

    Version: Next

    Using TypeScript

    info

    This guide assumes you are using Detox's default test runner integration with Jest. If you have a custom integration, you need to consult your test runner's documentation on how to use TypeScript with it.

    It is very common among JavaScript developers to use TypeScript in their projects, so a question arises: how to use Detox with TypeScript? Since Detox by default bases on Jest, the question can be rephrased as: how to use Jest with TypeScript?.

    Nevertheless, since many people ask about it, we decided to provide a guide on how to use Detox with TypeScript.

    Prerequisites

    • A working Detox setup with Jest as your test runner.
    • TypeScript installed in your project.

    Since React Native 0.71, the default React Native project template comes with TypeScript support out of the box. However, if you have no TypeScript project, now's the time:

    npm install --save-dev typescript
    tsc --init

    The latter command will generate a default tsconfig.json file, so that you can modify it to suit your needs.

    tip

    If you get an error like:

    command not found: tsc

    You can try to:

    1. export PATH=$PATH:./node_modules/.bin if you are using bash or zsh.
    2. set PATH=%PATH%;./node_modules/.bin if you are using Windows Command Prompt.
    3. run npx tsc --init instead of tsc --init.
    4. or any other solution to run an executable from node_modules/.bin directory.

    Make sure your TypeScript compiles without errors before proceeding:

    tsc # or tsc --noEmit if you don't want to generate output files

    Setting up Jest with TypeScript

    Jest requires a few extra packages to work seamlessly with TypeScript, so let's install them:

    npm install --save-dev ts-jest @types/jest @types/node

    Your Jest config file at e2e/jest.config.js (or wherever you keep your Jest configuration) also needs a couple of tweaks:

    /** @type {import('@jest/types').Config.InitialOptions} */
    module.exports = {
    preset: 'ts-jest', // (1)
    rootDir: '..',
    testMatch: ['<rootDir>/e2e/**/*.test.ts'], // (2)
    testTimeout: 120000,
    maxWorkers: 1,
    globalSetup: 'detox/runners/jest/globalSetup',
    globalTeardown: 'detox/runners/jest/globalTeardown',
    reporters: ['detox/runners/jest/reporter'],
    testEnvironment: 'detox/runners/jest/testEnvironment',
    verbose: true,
    };
    1. The preset option tells Jest to use ts-jest to compile TypeScript files. This is the most important part of the setup.

    2. Make sure you update your testMatch to include TypeScript files. Otherwise, you are likely to get an error like this:

      No tests found, exiting with code 1
      Run with `--passWithNoTests` to exit with code 0
      In /path/to/your/project
      60 files checked.
      testMatch: /path/to/your/project/e2e/**/*.test.js - 0 matches
      testPathIgnorePatterns: /node_modules/ - 60 matches
      testRegex: - 0 matches
      Pattern: - 0 matches

    Writing Detox Tests in TypeScript

    With the setup ready, you can now write Detox tests in TypeScript. -Change file extensions from .js to .ts where appropriate, and you’re good to go.

    import { expect } from 'detox';

    describe('Login Screen', () => {
    it('should login with correct credentials', async () => {
    const email: string = 'test@example.com';
    const password: string = 'password123';

    await element(by.id('emailInput')).typeText(email);
    await element(by.id('passwordInput')).typeText(password);
    await element(by.id('loginButton')).tap();

    expect(await element(by.id('welcomeMessage'))).toBeVisible();
    });
    });
    info

    Pay attention at the highlighted line above, where we import expect from Detox. Unfortunately, there is an unresolved clash between Jest's expect and Detox's expect when using TypeScript. This will be fixed in the future, but for now, you need to import Detox's expect explicitly in case you see errors like this:

    error TS2339: Property 'toBeVisible' does not exist on type 'JestMatchers<IndexableNativeElement>'.

    Conclusion

    Using Detox with TypeScript largely boils down to setting up Jest to understand TypeScript. With the power of static typing, your Detox tests can now become more robust, easier to understand, and less error-prone. Happy testing!

    - - +Change file extensions from .js to .ts where appropriate, and you’re good to go.

    import { expect } from 'detox';

    describe('Login Screen', () => {
    it('should login with correct credentials', async () => {
    const email: string = 'test@example.com';
    const password: string = 'password123';

    await element(by.id('emailInput')).typeText(email);
    await element(by.id('passwordInput')).typeText(password);
    await element(by.id('loginButton')).tap();

    expect(await element(by.id('welcomeMessage'))).toBeVisible();
    });
    });
    info

    Pay attention at the highlighted line above, where we import expect from Detox. Unfortunately, there is an unresolved clash between Jest's expect and Detox's expect when using TypeScript. This will be fixed in the future, but for now, you need to import Detox's expect explicitly in case you see errors like this:

    error TS2339: Property 'toBeVisible' does not exist on type 'JestMatchers<IndexableNativeElement>'.

    Conclusion

    Using Detox with TypeScript largely boils down to setting up Jest to understand TypeScript. With the power of static typing, your Detox tests can now become more robust, easier to understand, and less error-prone. Happy testing!

    + + \ No newline at end of file diff --git a/docs/next/guide/uninstalling/index.html b/docs/next/guide/uninstalling/index.html index 3a1cd4f4c5..b3f029c024 100644 --- a/docs/next/guide/uninstalling/index.html +++ b/docs/next/guide/uninstalling/index.html @@ -11,15 +11,15 @@ - - + +
    -
    Version: Next

    Uninstalling Detox

    Installing and using Detox implies certain side effects: cloned devices, cache files, state files, temporary files, etc.

    This checklist might come in handy whenever you have to make a clean uninstallation after using Detox.

    Detox Framework Cache

    Every install of Detox also triggers a postinstall script in its package.json, which builds (or unpacks) Detox.framework into ~/Library/Detox.

    You can either delete the folder manually:

    rm -rf ~/Library/Detox

    or run:

    detox clean-framework-cache

    Test Session State

    On every test run, Detox rewrites a few temporary files in DETOX_LIBRARY_ROOT_PATH, i.e.:

    1. device.registry.json, to tell apart the busy and the available devices for use with multiple workers.
    2. global-context.json.lock, to detect multiple concurrent instances of Detox.

    The location of DETOX_LIBRARY_ROOT_PATH may vary depending on the operating system:

    • macOS:
      • ~/Library/Detox.
    • Linux:
      • $XDG_DATA_HOME/Detox, if $XDG_DATA_HOME is defined;
      • ~/.local/share/Detox, otherwise.
    • Windows:
      • %LOCALAPPDATA%\data\Detox, if %LOCALAPPDATA% is defined;
      • %USERPROFILE%\Application Data\Detox, otherwise.

    Cloned Simulators (macOS)

    To support the "multiple workers" feature on iOS, Detox clones simulator instances when there aren’t enough available ones. +

    Version: Next

    Uninstalling Detox

    Installing and using Detox implies certain side effects: cloned devices, cache files, state files, temporary files, etc.

    This checklist might come in handy whenever you have to make a clean uninstallation after using Detox.

    Detox Framework Cache

    Every install of Detox also triggers a postinstall script in its package.json, which builds (or unpacks) Detox.framework into ~/Library/Detox.

    You can either delete the folder manually:

    rm -rf ~/Library/Detox

    or run:

    detox clean-framework-cache

    Test Session State

    On every test run, Detox rewrites a few temporary files in DETOX_LIBRARY_ROOT_PATH, i.e.:

    1. device.registry.json, to tell apart the busy and the available devices for use with multiple workers.
    2. global-context.json.lock, to detect multiple concurrent instances of Detox.

    The location of DETOX_LIBRARY_ROOT_PATH may vary depending on the operating system:

    • macOS:
      • ~/Library/Detox.
    • Linux:
      • $XDG_DATA_HOME/Detox, if $XDG_DATA_HOME is defined;
      • ~/.local/share/Detox, otherwise.
    • Windows:
      • %LOCALAPPDATA%\data\Detox, if %LOCALAPPDATA% is defined;
      • %USERPROFILE%\Application Data\Detox, otherwise.

    Cloned Simulators (macOS)

    To support the "multiple workers" feature on iOS, Detox clones simulator instances when there aren’t enough available ones. The autogenerated simulators have names with -Detox suffix appended, so you can easily spot them with:

    xcrun simctl list | grep "-Detox"

    To delete a simulator, you can use:

    xcrun simctl delete <uuid>

    Remnants of Artifacts

    Forced exits may result in leaving some temporary files behind.

    iOS

    To ensure there are no temporary artifact files (logs, screenshots, etc.), you can run:

    rm -rf $TMPDIR/*.detox.*

    If you wish to clean up your iOS simulators from the installed apps and other customizations, just run the erase procedure for the relevant ones:

    xcrun simctl erase <uuid>

    Android

    The advice for iOS applies to the Android virtual devices as well. To wipe user files on a specific AVD, run:

    emulator -avd <your_AVD> -wipe-data

    If you have to clean temporary Detox files from an individual booted device, look out for files like 11159175_0.log in /sdcard folder. -You can try deleting them using a simple wildcard like below or use your own:

    adb -s <emulator-port> shell rm -rf /sdcard/*_*.*

    Detox CLI

    If you have installed the official CLI wrapper for Detox, then make sure to uninstall it as well:

    npm uninstall detox-cli --global
    - - +You can try deleting them using a simple wildcard like below or use your own:

    adb -s <emulator-port> shell rm -rf /sdcard/*_*.*

    Detox CLI

    If you have installed the official CLI wrapper for Detox, then make sure to uninstall it as well:

    npm uninstall detox-cli --global
    + + \ No newline at end of file diff --git a/docs/next/introduction/debugging/index.html b/docs/next/introduction/debugging/index.html index 8625cab3e1..cd76995764 100644 --- a/docs/next/introduction/debugging/index.html +++ b/docs/next/introduction/debugging/index.html @@ -11,12 +11,12 @@ - - + +
    -
    Version: Next

    How to Debug

    Detox Tests

    If you need to walk through your Detox tests step by step, add a debugger statement +

    Version: Next

    How to Debug

    Detox Tests

    If you need to walk through your Detox tests step by step, add a debugger statement inside your test to mark a starting point, e.g.:

    e2e/starter.test.js
     describe('Example', () => {
    beforeAll(async () => {
    await device.launchApp();
    + debugger;
    });

    Now run Detox with that specific test and --inspect-brk flag, e.g.:

    detox test --inspect-brk -c android.emu.debug e2e/starter.test.js

    Assuming you're using Jest, you'll see something like:

    DETOX_CONFIGURATION="android.emu.debug" node --inspect-brk ./node_modules/.bin/jest --config e2e/jest.config.js --runInBand e2e/starter.test.js
    Debugger listening on ws://127.0.0.1:9229/3dedd03b-8896-4ab8-a0a8-1b647abb9c98
    For help, see: https://nodejs.org/en/docs/inspector
    info

    To learn more about debugging with --inspect-brk, refer to Debugging — Getting Started on the official Node.js website. This tutorial suggests using Google Chrome for debugging, @@ -43,7 +43,7 @@ that your port is not reversed. Assuming you're following the tutorial and detoxServer address is ws://localhost:8099 (if not – check what Detox prints you), reverse the port on your device using ADB:

    adb reverse tcp:8099 tcp:8099
  • Waited for the new RN-context for too long!

    Waited for the new RN-context for too long! (60 seconds)
    If you think that’s not long enough, consider applying a custom Detox runtime-config in DetoxTest.runTests().

    If you see an error like above, you can patch Detox code to disable the timeout here:

    detox/android/detox/src/main/java/com/wix/detox/config/DetoxConfig.kt
     package com.wix.detox.config

    class DetoxConfig {
    @JvmField var idlePolicyConfig: DetoxIdlePolicyConfig = DetoxIdlePolicyConfig()
    - @JvmField var rnContextLoadTimeoutSec = 60
    + @JvmField var rnContextLoadTimeoutSec = Int.MAX_VALUE

    fun apply() {
    idlePolicyConfig.apply()
  • - - + + \ No newline at end of file diff --git a/docs/next/introduction/environment-setup/index.html b/docs/next/introduction/environment-setup/index.html index 3dc5393e35..702d0b95fe 100644 --- a/docs/next/introduction/environment-setup/index.html +++ b/docs/next/introduction/environment-setup/index.html @@ -11,12 +11,12 @@ - - + +
    -
    Version: Next

    Environment Setup

    The Introduction section walks you through setting up Detox in your project, one step at a time.

    You will find that some steps are longer than the others: some are a couple of paragraphs, while the others look like a dedicated multistep guide. +

    Version: Next

    Environment Setup

    The Introduction section walks you through setting up Detox in your project, one step at a time.

    You will find that some steps are longer than the others: some are a couple of paragraphs, while the others look like a dedicated multistep guide. Bear with us - it is all necessary, and once set up, it is easy to move forward with writing tests at a high pace.

    Please select type of your mobile application before you start the tutorial:

    Detox was built from the ground up to support "classic" React Native projects.

    Note

    While Detox should work out of the box with almost any React Native version from the past few minor releases, official support is provided for React Native versions 0.71.x, 0.72.x and 0.73.x without React Native's "New Architecture".

    Newer versions, as well as React Native's "New Architecture", may work with Detox, but have not been tested out yet by the Detox team.

    Although we do not officially support older React Native versions, we do our best to keep Detox compatible with them.

    Also, in case of a problem with an unsupported version of React Native, please submit an issue or write us in our Discord server and we will do our best to help out.

    React Native CLI Quickstart

    Your first step would be to complete the 📚 React Native CLI Quickstart Guide for iOS/Android/both (depending @@ -26,7 +26,7 @@ a local Detox executable located at node_modules/.bin/detox, making it easier to operate Detox from the command line, e.g. detox test -c ios.sim.debug.

    It should be installed globally, enabling usage of the command line tools outside your npm scripts:

    npm install detox-cli --global

    On the other hand, if you are fine with running Detox commands with npx detox ..., you may skip installing detox-cli.

    2. [MacOS Only] applesimutils

    This tool is required by Detox to work with iOS simulators. The recommended way to install applesimutils is via Homebrew:

    brew tap wix/brew
    brew install applesimutils
    Note

    Make sure to periodically update your version of applesimutils to the latest version.

    Now, when your environment is ready, let's move to the next section, Project Setup.

    - - + + \ No newline at end of file diff --git a/docs/next/introduction/getting-started/index.html b/docs/next/introduction/getting-started/index.html index 8ec60d0a78..eee93e6f03 100644 --- a/docs/next/introduction/getting-started/index.html +++ b/docs/next/introduction/getting-started/index.html @@ -11,12 +11,12 @@ - - + +
    -
    Version: Next

    Getting Started

    Before You Start

    Overview of Detox

    Detox is an open-source end-to-end (E2E) testing framework for React Native mobile applications. +

    Version: Next

    Getting Started

    Before You Start

    Overview of Detox

    Detox is an open-source end-to-end (E2E) testing framework for React Native mobile applications. Our main goal is to enable the testing of any end-to-end flow in the app, with maximum velocity and zero flakiness. Detox tests your mobile app while it's running on a real device or simulator, simulating a real user's interactions.

    Detox overview

    What Does a Detox Test Look Like?

    This is a test for a login screen, it runs on a device or simulator like an actual user:

    describe('Login flow', () => {
    beforeEach(async () => {
    await device.reloadReactNative();
    });

    it('should login successfully', async () => {
    await element(by.id('email')).typeText('john@example.com');
    await element(by.id('password')).typeText('123456');

    const loginButton = element(by.text('Login'));
    await loginButton.tap();

    await expect(loginButton).not.toExist();
    await expect(element(by.label('Welcome'))).toBeVisible();
    });
    });

    Gray box testing

    One of the most challenging aspects of automated testing on mobile is end-to-end testing. UI testing frameworks are often not fully-deterministic, since they are built with a "black box" approach, where the test runner has no access to the internals of the app under test, and is unaware of asynchronous operations that take place in the app (such as network requests, animations, etc.). @@ -26,7 +26,7 @@ By contributing to Detox, you'll be helping to improve the reliability and user experience of mobile apps, and you'll be part of a team that is dedicated to making mobile development faster and more efficient. We welcome all types of contributions, from code and documentation, to bug reports, questions and feature requests.

    So, if you're interested to be part of the community, we encourage you to get involved by reading our contributing guidelines, and join our Discord server. We also have a Twitter account where we share updates about the project.

    - - + + \ No newline at end of file diff --git a/docs/next/introduction/preparing-for-ci/index.html b/docs/next/introduction/preparing-for-ci/index.html index afc8e41cd4..5205a398c7 100644 --- a/docs/next/introduction/preparing-for-ci/index.html +++ b/docs/next/introduction/preparing-for-ci/index.html @@ -11,14 +11,14 @@ - - + +
    -
    Version: Next

    Preparing for CI

    Disclaimer

    This guide is outdated.

    When your test suite is finally ready, it should be set up to run automatically on your CI server on every git push. This will alert you if new changes to the app break existing functionality.

    Running Detox on CI is not that different from running it locally. There are two main differences:

    • You should test a release build rather than a debug build
    • Tell Detox to shut down the simulator when test is over

    Step 1: Prepare a Release Configuration for Your App

    We will need to create a release app configuration for Detox – follow the previous tutorial +

    Version: Next

    Preparing for CI

    Disclaimer

    This guide is outdated.

    When your test suite is finally ready, it should be set up to run automatically on your CI server on every git push. This will alert you if new changes to the app break existing functionality.

    Running Detox on CI is not that different from running it locally. There are two main differences:

    • You should test a release build rather than a debug build
    • Tell Detox to shut down the simulator when test is over

    Step 1: Prepare a Release Configuration for Your App

    We will need to create a release app configuration for Detox – follow the previous tutorial if you haven’t completed it already.

    Step 2: Add build and test Commands to Your CI Script

    Assuming your CI is executing some sort of shell script, add the following commands that should run inside the project root:

    detox build --configuration ios.sim.release
    detox test --configuration ios.sim.release
    tip

    Make sure to shut down the simulator when your tests are over.

    Running Android Tests on CI

    Setting up a CI environment capable of running Android tests isn’t as trivial.

    Fortunately, we’ve written all about it in a blogpost on medium!

    Also, check out the guide on how to prepare Android emulators for CI.

    Appendix

    • Running Detox on Travis CI

    Detox’s own build is running on Travis, check out Detox’s .travis.yml file to see how it’s done.

    This is a simple example configuration to get you started with Detox on Travis:

    language: objective-c
    osx_image: xcode8.3

    branches:
    only:
    - master

    env:
    global:
    - NODE_VERSION=stable

    install:
    - brew tap wix/brew
    - brew install applesimutils
    - curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash
    - export NVM_DIR="$HOME/.nvm" && [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
    - nvm install $NODE_VERSION
    - nvm use $NODE_VERSION
    - nvm alias default $NODE_VERSION

    - npm install react-native-cli --global
    - npm install detox-cli --global

    script:
    - detox build --configuration ios.sim.release
    - detox test --configuration ios.sim.release --cleanup

    • Running Detox on Bitrise

    Bitrise is a popular CI service for automating React Native apps. If you are looking to get started with Bitrise, check out this guide.

    You can run Detox on Bitrise by creating a new workflow. Below is an example of the Bitrise .yml file for a workflow called tests.

    Additionally, you can use a webhook on Bitrise to post the build status directly into your Slack channel.

    ---
    format_version: 1.1.0
    default_step_lib_source: https://github.com/bitrise-io/bitrise-steplib.git
    trigger_map:
    - push_branch: "*"
    workflow: tests
    workflows:
    _tests_setup:
    steps:
    - activate-ssh-key: {}
    - git-clone:
    inputs:
    - clone_depth: ''
    title: Git Clone Repo
    - script:
    inputs:
    - content: |-
    #!/bin/bash

    npm cache verify

    npm install
    title: Install NPM Packages
    before_run:
    after_run:
    _detox_tests:
    before_run: []
    after_run: []
    steps:
    - npm:
    inputs:
    - command: install -g detox-cli
    title: Install Detox CLI
    - npm:
    inputs:
    - command: install -g react-native-cli
    title: Install React Native CLI
    - script:
    inputs:
    - content: |-
    #!/bin/bash

    brew tap wix/brew
    brew install applesimutils
    title: Install Detox Utils
    - script:
    inputs:
    - content: |-
    #!/bin/bash

    detox build --configuration ios.sim.release
    title: Detox - Build Release App
    - script:
    inputs:
    - content: |-
    #!/bin/bash

    detox test --configuration ios.sim.release --cleanup
    title: Detox - Run E2E Tests
    tests:
    before_run:
    - _tests_setup
    - _detox_tests
    after_run: []

    • Running Detox on GitLab CI - Android Only

    GitLab is also a popular git management service which also include a built-in CI system. They provide free runner up to 2000 minutes for private projects, however, the runners provided by them cannot be used to run Detox due to the lack of KVM support (in order to run Android Emulators). You can, instead, create your own runner with KVM support. Some example of cloud providers offering this are: Digital Ocean, AWS (with C5 instance types), Google Cloud and Azure

    One example of such job can be:

    detox_e2e:
    stage: test
    image: reactnativecommunity/react-native-android
    variables:
    before_script:
    - npm install envinfo detox-cli --global && envinfo
    # Increase file watcher limit, see more here: https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers#the-technical-details
    - echo fs.inotify.max_user_watches=524288 | tee -a /etc/sysctl.conf && sysctl -p
    - mkdir -p /root/.android && touch /root/.android/repositories.cfg
    # The Dockerimage provides two paths for sdkmanager and avdmanager, which the defaults are from $ANDROID_HOME/cmdline-tools
    # That is not compatible with the one that Detox is using ($ANDROID_HOME/tools/bin)
    - echo yes | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --channel=0 --verbose "system-images;android-27;default;x86_64" "emulator"
    # Nexus 6P, API 27, XXXHDPI
    - echo no | $ANDROID_HOME/cmdline-tools/latest/bin/avdmanager --verbose create avd --force --name "Nexus6P" --package "system-images;android-27;default;x86_64" --sdcard 200M --device 11
    - adb start-server
    script:
    - npx detox build -c android.emu.release.ci
    - npx detox test -c android.emu.release.ci --headless
    - - + + \ No newline at end of file diff --git a/docs/next/introduction/project-setup/index.html b/docs/next/introduction/project-setup/index.html index 46061e883c..8aae411e1f 100644 --- a/docs/next/introduction/project-setup/index.html +++ b/docs/next/introduction/project-setup/index.html @@ -11,12 +11,12 @@ - - + +
    -
    Version: Next

    Project Setup

    info

    This article mainly covers standard React Native projects. +

    Version: Next

    Project Setup

    info

    This article mainly covers standard React Native projects. If some steps don't look applicable to your project, please adapt them accordingly, relying on the common sense – look for other file locations, use custom build commands and so on.

    If you're using Expo, please refer to the setup guide from their documentation website instead. The setup for Expo projects is different and is not covered in this article.

    Step 1: Bootstrap

    Out of the box, Detox offers you a first-class integration with Jest, the most popular testing framework for React Native. That's why your first step will be to install or update Jest in your project.

    Go to your project's root folder, i.e., where package.json is found, and run:

    npm install "jest@^29" --save-dev
    Info

    The command above will install the latest supported Jest version. The @^29 override is recommended in the first place to prevent you from getting an outdated Jest version unknowingly, under the influence of package lock files. For example, in React Native boilerplate projects, the package-lock.json is apt to restrict npm install jest to installing an older, unsupported version 26.x.

    Now it's time to install Detox itself:

    npm install detox --save-dev

    Create a new network security config file for Android (or patch it if you have one):

    android/app/src/main/res/xml/network_security_config.xml
    <?xml version="1.0" encoding="utf-8"?>
    <network-security-config>
    <domain-config cleartextTrafficPermitted="true">
    <domain includeSubdomains="true">10.0.2.2</domain>
    <domain includeSubdomains="true">localhost</domain>
    </domain-config>
    </network-security-config>

    If you had no network security config before, it means you also have to register it after creation:

    android/app/src/main/AndroidManifest.xml
     <manifest>
    <application

    + android:networkSecurityConfig="@xml/network_security_config">
    </application>
    </manifest>

    🏆 Pat yourself on the back! The hardest part is over, now your Android app is ready to be used with Detox.

    Step 5: Build the app

    detox build --configuration ios.sim.debug
    tip

    If the build is failing, try out our Troubleshooting section.

    Note that Detox CLI just executes the build command you specified in your Detox config (.detoxrc.js) for a specific configuration. In the other words, it has no extra logic – it just takes the command and runs it, nothing more and nothing less.

    Once your build is ready to use, please proceed to the next article.

    - - + + \ No newline at end of file diff --git a/docs/next/introduction/your-first-test/index.html b/docs/next/introduction/your-first-test/index.html index 0212628b2f..c1b84548d7 100644 --- a/docs/next/introduction/your-first-test/index.html +++ b/docs/next/introduction/your-first-test/index.html @@ -11,12 +11,12 @@ - - + +
    -
    Version: Next

    Your First Test

    The previous articles have addressed the environment and project setup, and now it is time for writing +

    Version: Next

    Your First Test

    The previous articles have addressed the environment and project setup, and now it is time for writing and running the tests.

    If you are eager to check first whether your build configuration was correct, you can skip writing a test for now and try running tests instead, to identify potential late issues caused by incorrect project configuration.

    Writing a test

    This subsection shows how to write a test which can:

    • launch the application,
    • tap on a button,
    • and assert that some text appears as a result.

    Also, it will familiarize you with commonly used Detox actions, assertions and matchers along the way.

    1. Create a test suite

    Note

    You can also duplicate and modify a e2e/starter.test.js file that was generated automatically by detox init command.

    Create a new test file under your e2e folder and add a similar test suite skeleton:

    e2e/yourTestName.test.js
    describe('Example', () => {
    beforeAll(async () => {});

    beforeEach(async () => {});

    it('should test something', async () => {});
    });

    2. Launch the application

    When your test starts, the application is not running yet. You need to call device.launchApp() at least once, e.g. in the beforeAll hook:

    describe('Example', () => {
    beforeAll(async () => {
    await device.launchApp();
    });

    // …
    });

    If your app supports deep links, you can configure it to start from a specific screen.

    tip

    It is a good idea to start every test from a fresh state, since the preceding ones might leave your application in an unpredictable state if they fail.

    One way to do it is to launch the app as a new instance in beforeEach hook instead:

    beforeEach(async () => {
    await device.launchApp({ newInstance: true });
    });

    The other way is to reload React Native without restarting the app. Like any live reloading, it is apt to cause glitches for more complex apps, but for simpler apps it proves to be a quicker way to reset the state between the tests:

    beforeEach(async () => {
    await device.reloadReactNative();
    });

    So, pick your favorite one wisely, on the basis of speed vs stability considerations.

    3. Match an element

    The next step is to match an element you want to interact with.

    Detox provides many options to match an element by.id(), by.label(), by.text() and more. @@ -28,7 +28,7 @@ Detox tests:

    npm start

    > react-native start

    # #######
    # ################
    # ######### #########
    # ######### ##########
    # ######### ###### #########
    # ##########################################
    # ##### ##################### #####
    # ##### ############## #####
    # ##### ### ###### ### #####
    # ##### ####### ####### #####
    # ##### ########### ########### #####
    # ##### ########################## #####
    # ##### ########################## #####
    # ##### ###################### ######
    # ###### ############# #######
    # ######### #### #########
    # ######### #########
    # ######### #########
    # #########
    #
    #
    # Welcome to Metro!
    # Fast - Scalable - Integrated

    Now you can run your first test:

    detox test --configuration ios.sim.debug

    If you haven't changed the generated e2e/starter.test.js, you are likely to see errors like this:

     FAIL  e2e/starter.test.js (25.916 s)
    Example
    ✕ should have welcome screen (662 ms)
    ✕ should show hello screen after tap (236 ms)
    ✕ should show world screen after tap (236 ms)

    ● Example › should have welcome screen

    Test Failed: No elements found for “MATCHER(id == “welcome”)”

    HINT: To print view hierarchy on failed actions/matches, use log-level verbose or higher.

    9 |
    10 | it('should have welcome screen', async () => {
    > 11 | await expect(element(by.id('welcome'))).toBeVisible();
    | ^
    12 | });
    13 |
    14 | it('should show hello screen after tap', async () => {

    at Object.toBeVisible (e2e/starter.test.js:11:45)


    If you have created your own test, and it is failing, examine the error message, check out our Investigating Failures and Debugging guides, and run your tests again after you fix the issue.

    - - + + \ No newline at end of file diff --git a/docs/next/troubleshooting/artifacts/index.html b/docs/next/troubleshooting/artifacts/index.html index e21d2d5c11..8d972782ee 100644 --- a/docs/next/troubleshooting/artifacts/index.html +++ b/docs/next/troubleshooting/artifacts/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -21,7 +21,7 @@ It cannot be solved on behalf of Detox itself, because the problem has to do with how Jest runner terminates its puppet processes. The issue is on our radar, but the ETA for the fix stays unknown. If you feel able to contribute the fix to Jest, you are very welcome.

    - - + + \ No newline at end of file diff --git a/docs/next/troubleshooting/building-the-app/index.html b/docs/next/troubleshooting/building-the-app/index.html index 87cf67b32c..e1880a1723 100644 --- a/docs/next/troubleshooting/building-the-app/index.html +++ b/docs/next/troubleshooting/building-the-app/index.html @@ -11,13 +11,13 @@ - - + +
    -
    Version: Next

    Dealing With Problems With Building the App & Detox

    This page is about issues related to building the app, typically triggered when running detox build (and not detox test, for example).

    Android

    Problem: AAPT - resource linking failure

    For build errors involving AAPT resource linking failure, such as this one:

    Execution failed for task ':app:processReleaseAndroidTestResources'.
    > A failure occurred while executing com.android.build.gradle.internal.res.LinkApplicationAndroidResourcesTask$TaskAction
    > Android resource linking failed
    ERROR:: AAPT: error: resource style/Widget.AppCompat.TextView ...

    Ensure that the following line appears in your app build script in the dependencies section:

    android/app/build.gradle
    dependencies {
    // ...
    implementation 'androidx.appcompat:appcompat:1.1.0' // (check what the latest version is!)
    }

    Problem: minSdkVersion mismatch

    For Gradle errors involving minSdkVersion mismatches resembling this one:

    uses-sdk:minSdkVersion 18 cannot be smaller than version 21 declared in library [com.facebook.react:react-native:0.64.3] /Users/janedoe/.gradle/caches/transforms-3/6a9cd4eeeb285f80b9e6f413ecd78d0d/transformed/jetified-react-native-0.64.3/AndroidManifest.xml as the library might be using APIs not available in 18
    Suggestion: use a compatible library with a minSdk of at most 18,
    or increase this project's minSdk version to at least 21,
    or use tools:overrideLibrary="com.facebook.react" to force usage (may lead to runtime failures)

    Try applying the solution suggested in this Stack-overflow post, namely adding this to your root-project's build.gradle file (replace 21 those matching your app's build.gradle):

    android/build.gradle
    allprojects {
    afterEvaluate {
    if (it.hasProperty('android')){
    android {
    defaultConfig {
    minSdkVersion 21 // Replace '21' with whatever suites your case
    }
    }
    }
    }
    }

    Problem: Kotlin stdlib version conflicts

    The problems and resolutions here are different depending on whether you’re using Detox as a precompiled dependency artifact (i.e. an .aar) - which is by far the common case, or compiling it yourself.

    Resolving for a precompiled dependency (.aar)

    Of all Kotlin implementation flavors, Detox assumes the most recent one, namely kotlin-stdlib-jdk8. If your Android build fails due to conflicts with implementations coming from other dependencies or even your own app, consider adding an exclusion to either the "other" dependencies or detox itself, for example:

    dependencies {
    - androidTestImplementation('com.wix:detox:+')
    + androidTestImplementation('com.wix:detox:+') {
    + exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib-jdk8'
    + }
    }

    Detox should work with kotlin-stdlib-jdk7, as well.

    A typical error output formed by Gradle in this case is as provided, for example, in #1380:

    Could not determine the dependencies of task ':detox:compileDebugAidl'.
    > Could not resolve all task dependencies for configuration ':detox:debugCompileClasspath'.
    > Could not resolve org.jetbrains.kotlin:kotlin-stdlib:1.3.0.
    Required by:
    project :detox
    > Cannot find a version of 'org.jetbrains.kotlin:kotlin-stdlib' that satisfies the version constraints:
    Dependency path 'OurApp:detox:unspecified' --> 'com.squareup.okhttp3:okhttp:4.0.0-alpha01' --> 'org.jetbrains.kotlin:kotlin-stdlib:1.3.30'
    Dependency path 'OurApp:detox:unspecified' --> 'com.squareup.okio:okio:2.2.2' --> 'org.jetbrains.kotlin:kotlin-stdlib:1.2.60'
    Dependency path 'OurApp:detox:unspecified' --> 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.0' --> 'org.jetbrains.kotlin:kotlin-stdlib:1.3.0'
    Dependency path 'OurApp:detox:unspecified' --> 'com.facebook.react:react-native:0.59.5' --> 'com.squareup.okhttp3:okhttp:4.0.0-alpha01' --> 'org.jetbrains.kotlin:kotlin-stdlib:1.3.30'
    Dependency path 'OurApp:detox:unspecified' --> 'com.facebook.react:react-native:0.59.5' --> 'com.squareup.okio:okio:2.2.2' --> 'org.jetbrains.kotlin:kotlin-stdlib:1.2.60'
    Dependency path 'OurApp:detox:unspecified' --> 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.0' --> 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.0' --> 'org.jetbrains.kotlin:kotlin-stdlib:1.3.0'
    Constraint path 'OurApp:detox:unspecified' --> 'org.jetbrains.kotlin:kotlin-stdlib' strictly '1.3.0' because of the following reason: debugRuntimeClasspath uses version 1.3.0
    Constraint path 'OurApp:detox:unspecified' --> 'org.jetbrains.kotlin:kotlin-stdlib' strictly '1.3.0' because of the following reason: debugRuntimeClasspath uses version 1.3.0

    > Could not resolve org.jetbrains.kotlin:kotlin-stdlib-common:1.3.0.
    Required by:
    project :detox
    > Cannot find a version of 'org.jetbrains.kotlin:kotlin-stdlib-common' that satisfies the version constraints:
    Dependency path 'OurApp:detox:unspecified' --> 'com.squareup.okhttp3:okhttp:4.0.0-alpha01' --> 'org.jetbrains.kotlin:kotlin-stdlib:1.3.30' --> 'org.jetbrains.kotlin:kotlin-stdlib-common:1.3.30'
    Constraint path 'OurApp:detox:unspecified' --> 'org.jetbrains.kotlin:kotlin-stdlib-common' strictly '1.3.0' because of the following reason: debugRuntimeClasspath uses version 1.3.0

    (i.e. the project indirectly depends on different versions of kotlin-stdlib, such as 1.3.0, 1.3.30, 1.2.60)

    Resolving for a compiling subproject

    Detox requires the Kotlin standard-library as its own dependency. Due to the many flavors by which Kotlin has been released, multiple dependencies often create a conflict.

    For that, Detox allows for the exact specification of the standard library to use using two Gradle globals: detoxKotlinVersion and detoxKotlinStdlib. You can define both in your root build script file:

    android/build.gradle
    buildscript {
    // ...
    ext.detoxKotlinVersion = '1.3.0' // Detox' default is 1.2.0
    ext.detoxKotlinStdlib = 'kotlin-stdlib-jdk7' // Detox' default is kotlin-stdlib-jdk8
    }

    Problem: Duplicate files copied in ...

    If you get an error like this:

    Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'.
    > com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/LICENSE

    You need to add this to the android section of your app build script:

    android/app/build.gradle
    packagingOptions {
    exclude 'META-INF/LICENSE'
    }
    - - +
    Version: Next

    Dealing With Problems With Building the App & Detox

    This page is about issues related to building the app, typically triggered when running detox build (and not detox test, for example).

    Android

    Problem: AAPT - resource linking failure

    For build errors involving AAPT resource linking failure, such as this one:

    Execution failed for task ':app:processReleaseAndroidTestResources'.
    > A failure occurred while executing com.android.build.gradle.internal.res.LinkApplicationAndroidResourcesTask$TaskAction
    > Android resource linking failed
    ERROR:: AAPT: error: resource style/Widget.AppCompat.TextView ...

    Ensure that the following line appears in your app build script in the dependencies section:

    android/app/build.gradle
    dependencies {
    // ...
    implementation 'androidx.appcompat:appcompat:1.1.0' // (check what the latest version is!)
    }

    Problem: minSdkVersion mismatch

    For Gradle errors involving minSdkVersion mismatches resembling this one:

    uses-sdk:minSdkVersion 18 cannot be smaller than version 21 declared in library [com.facebook.react:react-native:0.64.3] /Users/janedoe/.gradle/caches/transforms-3/6a9cd4eeeb285f80b9e6f413ecd78d0d/transformed/jetified-react-native-0.64.3/AndroidManifest.xml as the library might be using APIs not available in 18
    Suggestion: use a compatible library with a minSdk of at most 18,
    or increase this project's minSdk version to at least 21,
    or use tools:overrideLibrary="com.facebook.react" to force usage (may lead to runtime failures)

    Try applying the solution suggested in this Stack-overflow post, namely adding this to your root-project's build.gradle file (replace 21 those matching your app's build.gradle):

    android/build.gradle
    allprojects {
    afterEvaluate {
    if (it.hasProperty('android')){
    android {
    defaultConfig {
    minSdkVersion 21 // Replace '21' with whatever suites your case
    }
    }
    }
    }
    }

    Problem: Kotlin stdlib version conflicts

    The problems and resolutions here are different depending on whether you’re using Detox as a precompiled dependency artifact (i.e. an .aar) - which is by far the common case, or compiling it yourself.

    Resolving for a precompiled dependency (.aar)

    Of all Kotlin implementation flavors, Detox assumes the most recent one, namely kotlin-stdlib-jdk8. If your Android build fails due to conflicts with implementations coming from other dependencies or even your own app, consider adding an exclusion to either the "other" dependencies or detox itself, for example:

    dependencies {
    - androidTestImplementation('com.wix:detox:+')
    + androidTestImplementation('com.wix:detox:+') {
    + exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib-jdk8'
    + }
    }

    Detox should work with kotlin-stdlib-jdk7, as well.

    A typical error output formed by Gradle in this case is as provided, for example, in #1380:

    Could not determine the dependencies of task ':detox:compileDebugAidl'.
    > Could not resolve all task dependencies for configuration ':detox:debugCompileClasspath'.
    > Could not resolve org.jetbrains.kotlin:kotlin-stdlib:1.3.0.
    Required by:
    project :detox
    > Cannot find a version of 'org.jetbrains.kotlin:kotlin-stdlib' that satisfies the version constraints:
    Dependency path 'OurApp:detox:unspecified' --> 'com.squareup.okhttp3:okhttp:4.0.0-alpha01' --> 'org.jetbrains.kotlin:kotlin-stdlib:1.3.30'
    Dependency path 'OurApp:detox:unspecified' --> 'com.squareup.okio:okio:2.2.2' --> 'org.jetbrains.kotlin:kotlin-stdlib:1.2.60'
    Dependency path 'OurApp:detox:unspecified' --> 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.0' --> 'org.jetbrains.kotlin:kotlin-stdlib:1.3.0'
    Dependency path 'OurApp:detox:unspecified' --> 'com.facebook.react:react-native:0.59.5' --> 'com.squareup.okhttp3:okhttp:4.0.0-alpha01' --> 'org.jetbrains.kotlin:kotlin-stdlib:1.3.30'
    Dependency path 'OurApp:detox:unspecified' --> 'com.facebook.react:react-native:0.59.5' --> 'com.squareup.okio:okio:2.2.2' --> 'org.jetbrains.kotlin:kotlin-stdlib:1.2.60'
    Dependency path 'OurApp:detox:unspecified' --> 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.0' --> 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.0' --> 'org.jetbrains.kotlin:kotlin-stdlib:1.3.0'
    Constraint path 'OurApp:detox:unspecified' --> 'org.jetbrains.kotlin:kotlin-stdlib' strictly '1.3.0' because of the following reason: debugRuntimeClasspath uses version 1.3.0
    Constraint path 'OurApp:detox:unspecified' --> 'org.jetbrains.kotlin:kotlin-stdlib' strictly '1.3.0' because of the following reason: debugRuntimeClasspath uses version 1.3.0

    > Could not resolve org.jetbrains.kotlin:kotlin-stdlib-common:1.3.0.
    Required by:
    project :detox
    > Cannot find a version of 'org.jetbrains.kotlin:kotlin-stdlib-common' that satisfies the version constraints:
    Dependency path 'OurApp:detox:unspecified' --> 'com.squareup.okhttp3:okhttp:4.0.0-alpha01' --> 'org.jetbrains.kotlin:kotlin-stdlib:1.3.30' --> 'org.jetbrains.kotlin:kotlin-stdlib-common:1.3.30'
    Constraint path 'OurApp:detox:unspecified' --> 'org.jetbrains.kotlin:kotlin-stdlib-common' strictly '1.3.0' because of the following reason: debugRuntimeClasspath uses version 1.3.0

    (i.e. the project indirectly depends on different versions of kotlin-stdlib, such as 1.3.0, 1.3.30, 1.2.60)

    Resolving for a compiling subproject

    Detox requires the Kotlin standard-library as its own dependency. Due to the many flavors by which Kotlin has been released, multiple dependencies often create a conflict.

    For that, Detox allows for the exact specification of the standard library to use using two Gradle globals: detoxKotlinVersion and detoxKotlinStdlib. You can define both in your root build script file:

    android/build.gradle
    buildscript {
    // ...
    ext.detoxKotlinVersion = '1.3.0' // Detox' default is 1.2.0
    ext.detoxKotlinStdlib = 'kotlin-stdlib-jdk7' // Detox' default is kotlin-stdlib-jdk8
    }

    Problem: Duplicate files copied in ...

    If you get an error like this:

    Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'.
    > com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/LICENSE

    You need to add this to the android section of your app build script:

    android/app/build.gradle
    packagingOptions {
    exclude 'META-INF/LICENSE'
    }
    + + \ No newline at end of file diff --git a/docs/next/troubleshooting/flakiness/index.html b/docs/next/troubleshooting/flakiness/index.html index f797e2db92..863e38543e 100644 --- a/docs/next/troubleshooting/flakiness/index.html +++ b/docs/next/troubleshooting/flakiness/index.html @@ -11,13 +11,13 @@ - - + +
    -
    Version: Next

    Dealing With Flakiness in Tests

    What is a flaky test?

    A flaky test is a test that passes most of the time, and sometimes without any apparent reason and without any changes to your app - it fails. This can even happen only on certain machines. For example, on your own machine it always passes, but on a different slower machine, like the CI, it fails.

    1. We Feel Your Pain

    Flakiness is the greatest challenge in E2E. The good news is that Detox was designed with this mission in mind: dealing with flakiness head on.

    Assume you have a suite of 100 tests and each test is flaky in 0.5% of executions (failing without an actual bug in your app). The total flakiness of your entire suite is about 40% (the exact formula is 1 - (1 - 0.005)^100). This means that there’s 40% chance your suite will fail without an actual bug! This makes your entire suite useless.

    2. Sources of Flakiness

    It’s important to identify the various sources of flakiness in Detox tests.

    • Control of the device / simulator - in order to run your tests, Detox must communicate with a simulator and instruct it to install the app, restart it, etc. Simulators don’t always behave and controlling them might occasionally fail. Detox’s underlying simulator control is AppleSimulatorUtils, it is a tool that supports both basic and advanced simulator and device interaction options, it uses some core simulator features which are not always stable and may need time to "warm up" (booting, shutting down, etc.). Detox is set to have a few retries on any of these actions before failing. It will also print all the exec commands when using verbose log level, and with trace level it will print everything.

    • Asynchronous operations inside your app - every time an E2E test runs, operations might take place in a different order inside your app. This makes E2E tests nondeterministic. Consider an HTTP request made to a server, this request may take a variable time to complete due to external concerns like network congestion and server load. Detox takes this into account by monitoring all asynchronous operations that take place in your app from the inside. Detox knows which network requests are currently in-flight. Detox knows how busy the React Native bridge is. Tests are automatically synchronized to the app and only move forward when the app is idle.

    3. Get More Data About the Problem

    In order to identify the source of flakiness you’re suffering from you need more data. If you catch a failing test that should be passing, you need to record as much information as possible in order to investigate.

    • Enable trace mode in Detox. This will output a lot of information about what happening during the test:
      1. exec commands
      2. All communication going over the websocket, both from tester and app

    To enable trace mode run your tests in trace log mode:

    detox test --loglevel trace
    - - +
    Version: Next

    Dealing With Flakiness in Tests

    What is a flaky test?

    A flaky test is a test that passes most of the time, and sometimes without any apparent reason and without any changes to your app - it fails. This can even happen only on certain machines. For example, on your own machine it always passes, but on a different slower machine, like the CI, it fails.

    1. We Feel Your Pain

    Flakiness is the greatest challenge in E2E. The good news is that Detox was designed with this mission in mind: dealing with flakiness head on.

    Assume you have a suite of 100 tests and each test is flaky in 0.5% of executions (failing without an actual bug in your app). The total flakiness of your entire suite is about 40% (the exact formula is 1 - (1 - 0.005)^100). This means that there’s 40% chance your suite will fail without an actual bug! This makes your entire suite useless.

    2. Sources of Flakiness

    It’s important to identify the various sources of flakiness in Detox tests.

    • Control of the device / simulator - in order to run your tests, Detox must communicate with a simulator and instruct it to install the app, restart it, etc. Simulators don’t always behave and controlling them might occasionally fail. Detox’s underlying simulator control is AppleSimulatorUtils, it is a tool that supports both basic and advanced simulator and device interaction options, it uses some core simulator features which are not always stable and may need time to "warm up" (booting, shutting down, etc.). Detox is set to have a few retries on any of these actions before failing. It will also print all the exec commands when using verbose log level, and with trace level it will print everything.

    • Asynchronous operations inside your app - every time an E2E test runs, operations might take place in a different order inside your app. This makes E2E tests nondeterministic. Consider an HTTP request made to a server, this request may take a variable time to complete due to external concerns like network congestion and server load. Detox takes this into account by monitoring all asynchronous operations that take place in your app from the inside. Detox knows which network requests are currently in-flight. Detox knows how busy the React Native bridge is. Tests are automatically synchronized to the app and only move forward when the app is idle.

    3. Get More Data About the Problem

    In order to identify the source of flakiness you’re suffering from you need more data. If you catch a failing test that should be passing, you need to record as much information as possible in order to investigate.

    • Enable trace mode in Detox. This will output a lot of information about what happening during the test:
      1. exec commands
      2. All communication going over the websocket, both from tester and app

    To enable trace mode run your tests in trace log mode:

    detox test --loglevel trace
    + + \ No newline at end of file diff --git a/docs/next/troubleshooting/running-tests/index.html b/docs/next/troubleshooting/running-tests/index.html index b3401455a7..e2e7d0777e 100644 --- a/docs/next/troubleshooting/running-tests/index.html +++ b/docs/next/troubleshooting/running-tests/index.html @@ -11,19 +11,19 @@ - - + +
    -
    Version: Next

    Dealing With Problems With Running Tests

    This page is about issues related to executing your Detox tests, typically triggered when running detox test (and not detox build, for example).

    Trace Mode

    It’s a good idea to get as much information as possible about what’s going on. We can enable trace mode during tests by running our tests with:

    detox test --loglevel trace

    No simulators found (iOS)

    In order to run tests on a simulator, you need to have simulator images installed on your machine. This process is performed by Xcode itself. You can list all available simulators using simctl by typing xcrun simctl list in terminal.

    If you’re missing a simulator, make sure Xcode is installed and use it to download the simulator. Take a look at the Preferences screen, some screenshots can be seen here.

    Once the desired simulator is installed and returned by xcrun simctl list, double check its name in the list and make sure this name is found in the detox configuration entry in package.json. The reference for the configuration options is available here.

    Tests execution hangs

    Issue: A while after running Detox, you get a message about failure to connect to the running app, in the logs:

    Detox can’t seem to connect to the test app(s)!

    This can be a result of various reasons. It is generally up to you to debug and find the root cause. In any case, below are the common ones.

    If you do not see your app running on the device

    • You might have forgotten to run device.launchApp() in the beginning of your test.
    • The app might have crashed before Detox has had a chance to connect to it. To get the crash details, you can run Detox tests with --record-logs all CLI option and then inspect the device logs in the artifacts' folder.
    • On Android, there might be a problem with the native test code in the DetoxTest.java file. Revisit the associated section in the setup guide.
    • On Android, your Network Security Config may not be recognized. Revisit the associated section in the setup guide.

    If you do see your app running on the device

    • On Android with SDK≥28, the app’s connection to the Detox test server is blocked due to clear-traffic blockage (as reported in issue #1450). +
      Version: Next

      Dealing With Problems With Running Tests

      This page is about issues related to executing your Detox tests, typically triggered when running detox test (and not detox build, for example).

      Trace Mode

      It’s a good idea to get as much information as possible about what’s going on. We can enable trace mode during tests by running our tests with:

      detox test --loglevel trace

      No simulators found (iOS)

      In order to run tests on a simulator, you need to have simulator images installed on your machine. This process is performed by Xcode itself. You can list all available simulators using simctl by typing xcrun simctl list in terminal.

      If you’re missing a simulator, make sure Xcode is installed and use it to download the simulator. Take a look at the Preferences screen, some screenshots can be seen here.

      Once the desired simulator is installed and returned by xcrun simctl list, double check its name in the list and make sure this name is found in the detox configuration entry in package.json. The reference for the configuration options is available here.

      Tests execution hangs

      Issue: A while after running Detox, you get a message about failure to connect to the running app, in the logs:

      Detox can’t seem to connect to the test app(s)!

      This can be a result of various reasons. It is generally up to you to debug and find the root cause. In any case, below are the common ones.

      If you do not see your app running on the device

      • You might have forgotten to run device.launchApp() in the beginning of your test.
      • The app might have crashed before Detox has had a chance to connect to it. To get the crash details, you can run Detox tests with --record-logs all CLI option and then inspect the device logs in the artifacts' folder.
      • On Android, there might be a problem with the native test code in the DetoxTest.java file. Revisit the associated section in the setup guide.
      • On Android, your Network Security Config may not be recognized. Revisit the associated section in the setup guide.

      If you do see your app running on the device

      • On Android with SDK≥28, the app’s connection to the Detox test server is blocked due to clear-traffic blockage (as reported in issue #1450). The main step for getting this fixed is to revisit the associated section in the setup guide, which discusses network-security. Alternatively, the android:usesCleartextTraffic="true" attribute can be configured in the <application> tag of the app’s AndroidManifest.xml, but that is highly discouraged.
      • If you’ve applied the above suggestion but the app fails to connect to the Detox test server, nonetheless: Refer to the device’s logs, which should contain messages about failed connection attempts (get them using the --record-logs all argument)
      • The app could be running without Detox native code injected. In this case, first, make sure you’re not trying to run in manual launch mode (where this behavior is valid). If so, examine the logs from the device (get them using the --record-logs all argument). If you see a crash related to Detox’s native code, you are welcome to report it on our GitHub tracker.
      • If you are in fact debugging your native code integration with Detox, our Debugging tutorial may prove helpful.

      Syntax Error: Unexpected Token

      Issue: Running tests immediately throws the following error:

      beforeEach(async () => {
      ^
      SyntaxError: Unexpected token (
      at Object.exports.runInThisContext (vm.js:76:16)
      at Module._compile (module.js:545:28)
      at loader (/Users/builduser/buildAgent/work/34eee2d16ef6c34b/node_modules/babel-register/lib/node.js:144:5)
      at Object.require.extensions.(anonymous function) [as .js] (/Users/builduser/buildAgent/work/34eee2d16ef6c34b/node_modules/babel-register/lib/node.js:154:7)
      ...
      child_process.js:531
      throw err;

      Solution: This error means that your version of Node does not support async-await syntax. You should do the following:

      1. Update Node to a version 8.3.0 or higher.

      Can’t Find My Component Even Though I Added a testID to Its Props

      Issue: Detox fails to match a component even though it has a testID. Detox will throw the following error:

      Error: Cannot find UI Element.
      Exception with Assertion: {
      "Assertion Criteria" : "assertWithMatcher: matcherForSufficientlyVisible(>=0.750000)",
      "Element Matcher" : "(((respondsToSelector(accessibilityIdentifier) && accessibilityID('Welcome')) && !kindOfClass('RCTScrollView')) || (kindOfClass('UIScrollView') && ((kindOfClass('UIView') || respondsToSelector(accessibilityContainer)) && ancestorThatMatches(((respondsToSelector(accessibilityIdentifier) && accessibilityID('Welcome')) && kindOfClass('RCTScrollView'))))))",
      "Recovery Suggestion" : "Check if element exists in the UI, modify assert criteria, or adjust the matcher"
      }

      Error Trace: [
      {
      "Description" : "Interaction cannot continue because the desired element was not found.",
      "Domain" : "com.google.earlgrey.ElementInteractionErrorDomain",
      "Code" : "0",
      "File Name" : "GREYElementInteraction.m",
      "Function Name" : "-[GREYElementInteraction matchedElementsWithTimeout:error:]",
      "Line" : "119"
      }
      ]

      Solution: React Native only supports the testID prop on the native built-in components. If you’ve created a custom composite component, you will have to support this prop yourself. You should probably propagate the testID prop to one of your rendered children (a built-in component):

      export class MyCompositeComponent extends Component {
      render() {
      return (
      <TouchableOpacity testID={this.props.testID}>
      <View>
      <Text>Something something</Text>
      </View>
      </TouchableOpacity>
      );
      }
      }

      Now, adding testID to your composite component should work:

      render() {
      return <MyCompositeComponent testID='MyUniqueId123' />;
      }

      Test Tries to Find My Component Before It’s Created

      Issue: Due to a synchronization issue, the test tries to perform an expectation and fails because it runs the expectation too soon. Consider this example:

      await element(by.text('Login')).tap();
      await expect(element(by.text('Welcome'))).toBeVisible();

      In the test above, after tapping the Login button, the app performs several complex asynchronous operations until the Welcome message is displayed post-login. These can include querying a server, waiting for a response and then running an animated transition to the Welcome screen. Detox attempts to simplify your test code by synchronizing automatically with these asynchronous operations. What happens if for some reason the automatic synchronization doesn’t work? As a result, Detox will not wait correctly until the Welcome screen appears and instead will continue immediately to the next line and try to run the expectation. Since the screen is not there yet, the test will fail.

      Solution: When you suspect that automatic synchronization didn’t work, you have a fail-safe by synchronizing manually with waitFor. Using waitFor will poll until the expectation is met. This isn’t a recommended approach so please use it as a workaround and open and issue to resolve the synchronization issue.

      This is what the fixed test would look like:

      await element(by.text('Login')).tap();
      await waitFor(element(by.text('Welcome'))).toBeVisible().withTimeout(2000);

      Can’t synchronize the test with my app

      If you suspect that the test is failing because Detox fails to synchronize the test steps with your app, take a look at this in-depth synchronization troubleshooting tutorial.

      An Element is Not Visible

      On iOS, you may run in a situation, when one of the interactions (tap, scroll, etc.) on an element fails with an error like:

      Test Failed: View "<RCTScrollView: 0x7f8d32296d70>" is not visible: view does not pass visibility threshold (0% visible of 75% required)
      1. Try retrieving ui.viewhierarchy artifact — sometimes examining the hierarchy visually can give you insights. Add a line "uiHierarchy": "enabled" to your artifacts' configuration in .detoxrc.js, like in an example here: Artifacts Configuration. After a rerun, you should find a ui.viewhierarchy in a folder of your failing test. Please mind that you need Xcode 12 at least to open *.viewhierarchy files.

      2. Besides, you can rerun your iOS app tests with --take-screenshots failing. What will happen is, for each view that fails visibility, two images will be saved at artifacts/<configuration-timestamp-dir>/<test name>/DETOX_VISIBILITY_<viewType>__<viewID>__SCREEN.png (and .../DETOX_VISIBILITY_<viewType>__<viewID>__TEST.png folder aside) with autogenerated names, e.g. DETOX_VISIBILITY_RCTTextView__0x7fab7660f3e0__TEST.png:

      in DETOX_*_SCREEN.pngin DETOX_*_TEST.png
      visibleinternals

      The first is supposed to show what is seen on screen. The second shows the internal buffer that Detox tests for visibility; if the pixels aren’t transparent enough and less than 75% of tested region is not transparent, the view is not considered visible.

      If you are developing a React Native app, then the following applies. If, for instance, you see that tapping fails due to a view with pointerEvents="none" obscuring your target — well, the only solutions are: either to make the obscurer a descendant of your target (instead of being a sibling), or to tap on the parent container.

      If you see that your issue cannot be solved via testID replacement or a simple hierarchy rearrangement, then there’s a chance this is a bug in Detox. Make sure to provide your ui.viewhierarchy artifact, the generated DETOX_VISIBILITY_* pictures and a comprehensive description of the issue backed up with sound arguments.

      Debug View Hierarchy

      Issue: I added the testID prop, but I still can’t find the view by id in my tests.

      Solution: You can investigate the app’s native view hierarchy, this might shed some light on how the app’s view hierarchy is laid out.

      Do the following:

      1. Start a debuggable app (not a release build) in your simulator
      2. Open Xcode
      3. Attach Xcode to your app’s process attach to process
      4. Press the Debug View Hierarchy button debug view hierarchy
      5. This will open the hierarchy viewer, and will show a breakdown of your app’s native view hierarchy. Here you can browse through the views
      6. React Native testIDs are manifested as accessibility identifiers in the native view hierarchy

      Let’s see an example. We will find the following view in the native hierarchy:

      <TouchableOpacity onPress={this.onButtonPress.bind(this, 'ID Working')}>
      <Text testID='UniqueId345' style={{color: 'blue', marginBottom: 20}}>ID</Text>
      </TouchableOpacity>

      This is the hierarchy viewer, pointing to the native view just mentioned:

      hierarchy viewer

      Compare to a Working Setup

      If you feel lost, try starting from a working example for sanity.

      There are multiple working examples included in this repo, such as demo-react-native.

      First, install, build and make sure the tests are indeed passing. If they are, try comparing this setup with what you have.

      Take a Look at Past Issues

      Before opening a new issue, search the list of issues on GitHub. There’s a good chance somebody faced the same problem you are having.

      How to Open a New Issue

      Before opening a new issue, please follow the entire troubleshooting guide and go over past issues.

      General usage questions should be opened on Stack Overflow, where the core Detox team is active and responds to questions: https://stackoverflow.com/questions/tagged/detox

      If you believe you are seeing a Detox issue, select the correct template from the options, and make sure to fill all requested information in the template. Omitting important information will likely result in a closed issue.

    - - + + \ No newline at end of file diff --git a/docs/next/troubleshooting/synchronization/index.html b/docs/next/troubleshooting/synchronization/index.html index ab912e155b..e1ed2c7157 100644 --- a/docs/next/troubleshooting/synchronization/index.html +++ b/docs/next/troubleshooting/synchronization/index.html @@ -11,15 +11,15 @@ - - + +
    -
    Version: Next

    Dealing With Synchronization Issues in Tests

    Traditionally, one of the most difficult aspects of E2E testing is synchronizing the test scenario with the app. Complex operations inside the app (like accessing servers or performing animations) often take variable amount of time to complete. We can’t continue the test until they’ve completed. How can we synchronize the test with these operations?

    Synchronizing manually with sleep() commands is a bad idea. It’s flaky, complicates the tests, behaves differently on different machines and makes tests needlessly slow.

    Instead, Detox tries to synchronize the test with the app completely automatically.

    When this works it’s like magic. You simply execute actions one after the other without worrying about timing, and Detox waits for the app to stabilize before moving to the next test line. If there’s an in-flight request to a server, for example, the test will not move forward until the request completes.

    What operations do we try to synchronize with automatically

    • Network requests - Detox monitors in-flight requests over the network.

    • Main thread (native) - Detox monitors pending native operations on the main thread (main dispatch queue and main NSOperationQueue).

    • Layout of UI - Detox monitors UI layout operations. There’s also special support for React Native layout which includes the Shadow Queue where yoga runs.

    • Timers - Detox monitors timers (explicit asynchronous delays). There’s special support for JavaScript timers like setTimeout and setInterval.

    • Animations - Detox monitors active animations and transitions. There’s special support for React Native animations with the Animated library.

    • React Native JavaScript thread - Detox monitors pending operations on the JavaScript thread in RN apps.

    • React Native bridge - Detox monitors the React Native bridge and asynchronous messages sent on it.

    Automatic synchronization works most of the time

    It’s difficult for an automatic mechanism to be correct in 100% of the cases. There are always exceptions. We are optimizing for the common case so most of your scenarios will not have to deal with synchronization issues.

    For the rest of this tutorial, we’ll assume the test is having some sort of synchronization issue.

    Are we waiting too much or not waiting enough?

    When the automatic synchronization mechanism doesn’t work, we have 2 potential problems:

    • We are waiting too much - The test will appear to hang and fail with timeout. This happens because Detox thinks an asynchronous operation is currently taking place and is waiting for it endlessly.

    • We are not waiting enough - The test will appear to fail at some point because an element isn’t found according to an expectation or isn’t found when attempting to perform an action on it. This happens because Detox didn’t take some asynchronous operation into account and isn’t waiting until it completes.

    Identifying which synchronization mechanism causes us to wait too much

    Interactions with the application are synchronized, meaning that they will not execute unless the app is idle. You may encounter situations where the tests just hang. +

    Version: Next

    Dealing With Synchronization Issues in Tests

    Traditionally, one of the most difficult aspects of E2E testing is synchronizing the test scenario with the app. Complex operations inside the app (like accessing servers or performing animations) often take variable amount of time to complete. We can’t continue the test until they’ve completed. How can we synchronize the test with these operations?

    Synchronizing manually with sleep() commands is a bad idea. It’s flaky, complicates the tests, behaves differently on different machines and makes tests needlessly slow.

    Instead, Detox tries to synchronize the test with the app completely automatically.

    When this works it’s like magic. You simply execute actions one after the other without worrying about timing, and Detox waits for the app to stabilize before moving to the next test line. If there’s an in-flight request to a server, for example, the test will not move forward until the request completes.

    What operations do we try to synchronize with automatically

    • Network requests - Detox monitors in-flight requests over the network.

    • Main thread (native) - Detox monitors pending native operations on the main thread (main dispatch queue and main NSOperationQueue).

    • Layout of UI - Detox monitors UI layout operations. There’s also special support for React Native layout which includes the Shadow Queue where yoga runs.

    • Timers - Detox monitors timers (explicit asynchronous delays). There’s special support for JavaScript timers like setTimeout and setInterval.

    • Animations - Detox monitors active animations and transitions. There’s special support for React Native animations with the Animated library.

    • React Native JavaScript thread - Detox monitors pending operations on the JavaScript thread in RN apps.

    • React Native bridge - Detox monitors the React Native bridge and asynchronous messages sent on it.

    Automatic synchronization works most of the time

    It’s difficult for an automatic mechanism to be correct in 100% of the cases. There are always exceptions. We are optimizing for the common case so most of your scenarios will not have to deal with synchronization issues.

    For the rest of this tutorial, we’ll assume the test is having some sort of synchronization issue.

    Are we waiting too much or not waiting enough?

    When the automatic synchronization mechanism doesn’t work, we have 2 potential problems:

    • We are waiting too much - The test will appear to hang and fail with timeout. This happens because Detox thinks an asynchronous operation is currently taking place and is waiting for it endlessly.

    • We are not waiting enough - The test will appear to fail at some point because an element isn’t found according to an expectation or isn’t found when attempting to perform an action on it. This happens because Detox didn’t take some asynchronous operation into account and isn’t waiting until it completes.

    Identifying which synchronization mechanism causes us to wait too much

    Interactions with the application are synchronized, meaning that they will not execute unless the app is idle. You may encounter situations where the tests just hang. When an action/expectation takes a significant amount of time use this option to print device synchronization status. The status will be printed if the action takes more than [value] (in ms) to complete

    detox test --debug-synchronization 500

    Then, reproduce your issue, and you should see output similar to the following:

    detox[9733] INFO:  [APP_STATUS] The app is busy with the following tasks:
    • There are 1 work items pending on the dispatch queue: "Main Queue (<OS_dispatch_queue_main: com.apple.main-thread>)".
    • Run loop "Main Run Loop" is awake.
    • 1 enqueued native timers:
    - Timer #1:
    + Fire date: 2021-11-11 14:19:57 +0200.
    + Time until fire: 0.072.
    + Repeat interval: 0.
    + Is recurring: NO.

    See this document for documentation of the debug synchronization output.

    Lower-level Idling Resources Debug (iOS Only)

    If --debug-synchronization does not provide the necessary information, on iOS you can add the following launch argument to your app (using launchArgs in your launchApp() call) to enable a very verbose logging of the idling resource system to the system log:

    -DTXEnableVerboseSyncSystem YES -DTXEnableVerboseSyncResources YES

    You can then obtain this log by running the following command:

    xcrun simctl spawn booted log stream --level debug --style compact --predicate "category=='SyncManager'"

    For example, change your device.launchApp() call like:

    await device.launchApp({
    newInstance: true,
    launchArgs: { 'DTXEnableVerboseSyncSystem': 'YES', 'DTXEnableVerboseSyncResources': 'YES' }
    });

    Switching to manual synchronization as a workaround

    We always have the fail-safe of turning off automatic synchronization and waiting manually by ourselves. This isn’t the recommended approach, but sometimes we don’t have a choice.

    How do we turn off automatic synchronization?

    This makes sense only if we’re waiting too much.

    Controlling the entire synchronization mechanism

    The synchronization mechanism can be shut down using

    await device.disableSynchronization();

    to turn it on again use

    await device.enableSynchronization();
    Controlling network synchronization

    You can skip over synchronizing on certain URLs (for long polling tasks, or websocket connections)

    await device.setURLBlacklist(['.*127.0.0.1.*']);

    In order to gain sync back on an endpoint, just remove it from the blacklist:

    await device.setURLBlacklist([]);

    Alternatively, you can launch your app already with the URL blacklist defined — that can help with a network sync issue at the very beginning:

    await device.launchApp({
    launchArgs: {
    detoxURLBlacklistRegex: '(".*example.com/some-url/.*")',
    },
    });

    How do we wait manually?

    This makes sense only if we’re not waiting enough (or if we’ve disabled automatic synchronization). Use the withTimeout() API to wait until an expectation is met. The API is documented here.

    Tweaking and fine-tuning the synchronization mechanisms

    This isn’t exposed yet, to be done...

    Modifying your app to avoid waiting too much

    When facing a synchronization issue and tweaking doesn’t help, consider modifying your app. When Detox is having trouble synchronizing due to intense non-stopping activity, it may be a sign that your app is abusing resources.

    You can also modify your app, for the sake of tests only, by using mocking. Read more here.

    setTimeout and setInterval

    By default, Detox is designed to ignore setInterval and will only wait for setTimeout of up to 1.5 seconds. If you have an endless polling loop with short intervals implemented with setTimeout, switch the implementation to setInterval. If possible, avoid aggressive polling in your app altogether, the poor single JavaScript thread we have doesn’t like it.

    Endless looping animations

    By default, Detox will wait until animations complete. If you have an endless looping animation, this may cause Detox to hang. In this case, consider turning off the animation synchronization or remove the endless loop in your E2E build with mocking.

    - - + + \ No newline at end of file diff --git a/docs/troubleshooting/artifacts/index.html b/docs/troubleshooting/artifacts/index.html index f7083b28a0..281f316692 100644 --- a/docs/troubleshooting/artifacts/index.html +++ b/docs/troubleshooting/artifacts/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -21,7 +21,7 @@ It cannot be solved on behalf of Detox itself, because the problem has to do with how Jest runner terminates its puppet processes. The issue is on our radar, but the ETA for the fix stays unknown. If you feel able to contribute the fix to Jest, you are very welcome.

    - - + + \ No newline at end of file diff --git a/docs/troubleshooting/building-the-app/index.html b/docs/troubleshooting/building-the-app/index.html index d7e84d644f..699c1866c8 100644 --- a/docs/troubleshooting/building-the-app/index.html +++ b/docs/troubleshooting/building-the-app/index.html @@ -11,13 +11,13 @@ - - + +
    Version: 20.x

    Dealing With Problems With Building the App & Detox

    This page is about issues related to building the app, typically triggered when running detox build (and not detox test, for example).

    Android

    Problem: AAPT - resource linking failure

    For build errors involving AAPT resource linking failure, such as this one:

    Execution failed for task ':app:processReleaseAndroidTestResources'.
    > A failure occurred while executing com.android.build.gradle.internal.res.LinkApplicationAndroidResourcesTask$TaskAction
    > Android resource linking failed
    ERROR:: AAPT: error: resource style/Widget.AppCompat.TextView ...

    Ensure that the following line appears in your app build script in the dependencies section:

    android/app/build.gradle
    dependencies {
    // ...
    implementation 'androidx.appcompat:appcompat:1.1.0' // (check what the latest version is!)
    }

    Problem: minSdkVersion mismatch

    For Gradle errors involving minSdkVersion mismatches resembling this one:

    uses-sdk:minSdkVersion 18 cannot be smaller than version 21 declared in library [com.facebook.react:react-native:0.64.3] /Users/janedoe/.gradle/caches/transforms-3/6a9cd4eeeb285f80b9e6f413ecd78d0d/transformed/jetified-react-native-0.64.3/AndroidManifest.xml as the library might be using APIs not available in 18
    Suggestion: use a compatible library with a minSdk of at most 18,
    or increase this project's minSdk version to at least 21,
    or use tools:overrideLibrary="com.facebook.react" to force usage (may lead to runtime failures)

    Try applying the solution suggested in this Stack-overflow post, namely adding this to your root-project's build.gradle file (replace 21 those matching your app's build.gradle):

    android/build.gradle
    allprojects {
    afterEvaluate {
    if (it.hasProperty('android')){
    android {
    defaultConfig {
    minSdkVersion 21 // Replace '21' with whatever suites your case
    }
    }
    }
    }
    }

    Problem: Kotlin stdlib version conflicts

    The problems and resolutions here are different depending on whether you’re using Detox as a precompiled dependency artifact (i.e. an .aar) - which is by far the common case, or compiling it yourself.

    Resolving for a precompiled dependency (.aar)

    Of all Kotlin implementation flavors, Detox assumes the most recent one, namely kotlin-stdlib-jdk8. If your Android build fails due to conflicts with implementations coming from other dependencies or even your own app, consider adding an exclusion to either the "other" dependencies or detox itself, for example:

    dependencies {
    - androidTestImplementation('com.wix:detox:+')
    + androidTestImplementation('com.wix:detox:+') {
    + exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib-jdk8'
    + }
    }

    Detox should work with kotlin-stdlib-jdk7, as well.

    A typical error output formed by Gradle in this case is as provided, for example, in #1380:

    Could not determine the dependencies of task ':detox:compileDebugAidl'.
    > Could not resolve all task dependencies for configuration ':detox:debugCompileClasspath'.
    > Could not resolve org.jetbrains.kotlin:kotlin-stdlib:1.3.0.
    Required by:
    project :detox
    > Cannot find a version of 'org.jetbrains.kotlin:kotlin-stdlib' that satisfies the version constraints:
    Dependency path 'OurApp:detox:unspecified' --> 'com.squareup.okhttp3:okhttp:4.0.0-alpha01' --> 'org.jetbrains.kotlin:kotlin-stdlib:1.3.30'
    Dependency path 'OurApp:detox:unspecified' --> 'com.squareup.okio:okio:2.2.2' --> 'org.jetbrains.kotlin:kotlin-stdlib:1.2.60'
    Dependency path 'OurApp:detox:unspecified' --> 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.0' --> 'org.jetbrains.kotlin:kotlin-stdlib:1.3.0'
    Dependency path 'OurApp:detox:unspecified' --> 'com.facebook.react:react-native:0.59.5' --> 'com.squareup.okhttp3:okhttp:4.0.0-alpha01' --> 'org.jetbrains.kotlin:kotlin-stdlib:1.3.30'
    Dependency path 'OurApp:detox:unspecified' --> 'com.facebook.react:react-native:0.59.5' --> 'com.squareup.okio:okio:2.2.2' --> 'org.jetbrains.kotlin:kotlin-stdlib:1.2.60'
    Dependency path 'OurApp:detox:unspecified' --> 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.0' --> 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.0' --> 'org.jetbrains.kotlin:kotlin-stdlib:1.3.0'
    Constraint path 'OurApp:detox:unspecified' --> 'org.jetbrains.kotlin:kotlin-stdlib' strictly '1.3.0' because of the following reason: debugRuntimeClasspath uses version 1.3.0
    Constraint path 'OurApp:detox:unspecified' --> 'org.jetbrains.kotlin:kotlin-stdlib' strictly '1.3.0' because of the following reason: debugRuntimeClasspath uses version 1.3.0

    > Could not resolve org.jetbrains.kotlin:kotlin-stdlib-common:1.3.0.
    Required by:
    project :detox
    > Cannot find a version of 'org.jetbrains.kotlin:kotlin-stdlib-common' that satisfies the version constraints:
    Dependency path 'OurApp:detox:unspecified' --> 'com.squareup.okhttp3:okhttp:4.0.0-alpha01' --> 'org.jetbrains.kotlin:kotlin-stdlib:1.3.30' --> 'org.jetbrains.kotlin:kotlin-stdlib-common:1.3.30'
    Constraint path 'OurApp:detox:unspecified' --> 'org.jetbrains.kotlin:kotlin-stdlib-common' strictly '1.3.0' because of the following reason: debugRuntimeClasspath uses version 1.3.0

    (i.e. the project indirectly depends on different versions of kotlin-stdlib, such as 1.3.0, 1.3.30, 1.2.60)

    Resolving for a compiling subproject

    Detox requires the Kotlin standard-library as its own dependency. Due to the many flavors by which Kotlin has been released, multiple dependencies often create a conflict.

    For that, Detox allows for the exact specification of the standard library to use using two Gradle globals: detoxKotlinVersion and detoxKotlinStdlib. You can define both in your root build script file:

    android/build.gradle
    buildscript {
    // ...
    ext.detoxKotlinVersion = '1.3.0' // Detox' default is 1.2.0
    ext.detoxKotlinStdlib = 'kotlin-stdlib-jdk7' // Detox' default is kotlin-stdlib-jdk8
    }

    Problem: Duplicate files copied in ...

    If you get an error like this:

    Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'.
    > com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/LICENSE

    You need to add this to the android section of your app build script:

    android/app/build.gradle
    packagingOptions {
    exclude 'META-INF/LICENSE'
    }
    - - + + \ No newline at end of file diff --git a/docs/troubleshooting/flakiness/index.html b/docs/troubleshooting/flakiness/index.html index b9f4354a50..efe10be3a9 100644 --- a/docs/troubleshooting/flakiness/index.html +++ b/docs/troubleshooting/flakiness/index.html @@ -11,13 +11,13 @@ - - + +
    Version: 20.x

    Dealing With Flakiness in Tests

    What is a flaky test?

    A flaky test is a test that passes most of the time, and sometimes without any apparent reason and without any changes to your app - it fails. This can even happen only on certain machines. For example, on your own machine it always passes, but on a different slower machine, like the CI, it fails.

    1. We Feel Your Pain

    Flakiness is the greatest challenge in E2E. The good news is that Detox was designed with this mission in mind: dealing with flakiness head on.

    Assume you have a suite of 100 tests and each test is flaky in 0.5% of executions (failing without an actual bug in your app). The total flakiness of your entire suite is about 40% (the exact formula is 1 - (1 - 0.005)^100). This means that there’s 40% chance your suite will fail without an actual bug! This makes your entire suite useless.

    2. Sources of Flakiness

    It’s important to identify the various sources of flakiness in Detox tests.

    • Control of the device / simulator - in order to run your tests, Detox must communicate with a simulator and instruct it to install the app, restart it, etc. Simulators don’t always behave and controlling them might occasionally fail. Detox’s underlying simulator control is AppleSimulatorUtils, it is a tool that supports both basic and advanced simulator and device interaction options, it uses some core simulator features which are not always stable and may need time to "warm up" (booting, shutting down, etc.). Detox is set to have a few retries on any of these actions before failing. It will also print all the exec commands when using verbose log level, and with trace level it will print everything.

    • Asynchronous operations inside your app - every time an E2E test runs, operations might take place in a different order inside your app. This makes E2E tests nondeterministic. Consider an HTTP request made to a server, this request may take a variable time to complete due to external concerns like network congestion and server load. Detox takes this into account by monitoring all asynchronous operations that take place in your app from the inside. Detox knows which network requests are currently in-flight. Detox knows how busy the React Native bridge is. Tests are automatically synchronized to the app and only move forward when the app is idle.

    3. Get More Data About the Problem

    In order to identify the source of flakiness you’re suffering from you need more data. If you catch a failing test that should be passing, you need to record as much information as possible in order to investigate.

    • Enable trace mode in Detox. This will output a lot of information about what happening during the test:
      1. exec commands
      2. All communication going over the websocket, both from tester and app

    To enable trace mode run your tests in trace log mode:

    detox test --loglevel trace
    - - + + \ No newline at end of file diff --git a/docs/troubleshooting/running-tests/index.html b/docs/troubleshooting/running-tests/index.html index be2eb2ebe1..737a48952e 100644 --- a/docs/troubleshooting/running-tests/index.html +++ b/docs/troubleshooting/running-tests/index.html @@ -11,8 +11,8 @@ - - + +
    @@ -23,7 +23,7 @@ attach to process
  • Press the Debug View Hierarchy button debug view hierarchy
  • This will open the hierarchy viewer, and will show a breakdown of your app’s native view hierarchy. Here you can browse through the views
  • React Native testIDs are manifested as accessibility identifiers in the native view hierarchy
  • Let’s see an example. We will find the following view in the native hierarchy:

    <TouchableOpacity onPress={this.onButtonPress.bind(this, 'ID Working')}>
    <Text testID='UniqueId345' style={{color: 'blue', marginBottom: 20}}>ID</Text>
    </TouchableOpacity>

    This is the hierarchy viewer, pointing to the native view just mentioned:

    hierarchy viewer

    Compare to a Working Setup

    If you feel lost, try starting from a working example for sanity.

    There are multiple working examples included in this repo, such as demo-react-native.

    First, install, build and make sure the tests are indeed passing. If they are, try comparing this setup with what you have.

    Take a Look at Past Issues

    Before opening a new issue, search the list of issues on GitHub. There’s a good chance somebody faced the same problem you are having.

    How to Open a New Issue

    Before opening a new issue, please follow the entire troubleshooting guide and go over past issues.

    General usage questions should be opened on Stack Overflow, where the core Detox team is active and responds to questions: https://stackoverflow.com/questions/tagged/detox

    If you believe you are seeing a Detox issue, select the correct template from the options, and make sure to fill all requested information in the template. Omitting important information will likely result in a closed issue.

    - - + + \ No newline at end of file diff --git a/docs/troubleshooting/synchronization/index.html b/docs/troubleshooting/synchronization/index.html index ba77bfa2c0..016eda6f02 100644 --- a/docs/troubleshooting/synchronization/index.html +++ b/docs/troubleshooting/synchronization/index.html @@ -11,15 +11,15 @@ - - + +
    Version: 20.x

    Dealing With Synchronization Issues in Tests

    Traditionally, one of the most difficult aspects of E2E testing is synchronizing the test scenario with the app. Complex operations inside the app (like accessing servers or performing animations) often take variable amount of time to complete. We can’t continue the test until they’ve completed. How can we synchronize the test with these operations?

    Synchronizing manually with sleep() commands is a bad idea. It’s flaky, complicates the tests, behaves differently on different machines and makes tests needlessly slow.

    Instead, Detox tries to synchronize the test with the app completely automatically.

    When this works it’s like magic. You simply execute actions one after the other without worrying about timing, and Detox waits for the app to stabilize before moving to the next test line. If there’s an in-flight request to a server, for example, the test will not move forward until the request completes.

    What operations do we try to synchronize with automatically

    • Network requests - Detox monitors in-flight requests over the network.

    • Main thread (native) - Detox monitors pending native operations on the main thread (main dispatch queue and main NSOperationQueue).

    • Layout of UI - Detox monitors UI layout operations. There’s also special support for React Native layout which includes the Shadow Queue where yoga runs.

    • Timers - Detox monitors timers (explicit asynchronous delays). There’s special support for JavaScript timers like setTimeout and setInterval.

    • Animations - Detox monitors active animations and transitions. There’s special support for React Native animations with the Animated library.

    • React Native JavaScript thread - Detox monitors pending operations on the JavaScript thread in RN apps.

    • React Native bridge - Detox monitors the React Native bridge and asynchronous messages sent on it.

    Automatic synchronization works most of the time

    It’s difficult for an automatic mechanism to be correct in 100% of the cases. There are always exceptions. We are optimizing for the common case so most of your scenarios will not have to deal with synchronization issues.

    For the rest of this tutorial, we’ll assume the test is having some sort of synchronization issue.

    Are we waiting too much or not waiting enough?

    When the automatic synchronization mechanism doesn’t work, we have 2 potential problems:

    • We are waiting too much - The test will appear to hang and fail with timeout. This happens because Detox thinks an asynchronous operation is currently taking place and is waiting for it endlessly.

    • We are not waiting enough - The test will appear to fail at some point because an element isn’t found according to an expectation or isn’t found when attempting to perform an action on it. This happens because Detox didn’t take some asynchronous operation into account and isn’t waiting until it completes.

    Identifying which synchronization mechanism causes us to wait too much

    Interactions with the application are synchronized, meaning that they will not execute unless the app is idle. You may encounter situations where the tests just hang. When an action/expectation takes a significant amount of time use this option to print device synchronization status. The status will be printed if the action takes more than [value] (in ms) to complete

    detox test --debug-synchronization 500

    Then, reproduce your issue, and you should see output similar to the following:

    detox[9733] INFO:  [APP_STATUS] The app is busy with the following tasks:
    • There are 1 work items pending on the dispatch queue: "Main Queue (<OS_dispatch_queue_main: com.apple.main-thread>)".
    • Run loop "Main Run Loop" is awake.
    • 1 enqueued native timers:
    - Timer #1:
    + Fire date: 2021-11-11 14:19:57 +0200.
    + Time until fire: 0.072.
    + Repeat interval: 0.
    + Is recurring: NO.

    See this document for documentation of the debug synchronization output.

    Lower-level Idling Resources Debug (iOS Only)

    If --debug-synchronization does not provide the necessary information, on iOS you can add the following launch argument to your app (using launchArgs in your launchApp() call) to enable a very verbose logging of the idling resource system to the system log:

    -DTXEnableVerboseSyncSystem YES -DTXEnableVerboseSyncResources YES

    You can then obtain this log by running the following command:

    xcrun simctl spawn booted log stream --level debug --style compact --predicate "category=='SyncManager'"

    For example, change your device.launchApp() call like:

    await device.launchApp({
    newInstance: true,
    launchArgs: { 'DTXEnableVerboseSyncSystem': 'YES', 'DTXEnableVerboseSyncResources': 'YES' }
    });

    Switching to manual synchronization as a workaround

    We always have the fail-safe of turning off automatic synchronization and waiting manually by ourselves. This isn’t the recommended approach, but sometimes we don’t have a choice.

    How do we turn off automatic synchronization?

    This makes sense only if we’re waiting too much.

    Controlling the entire synchronization mechanism

    The synchronization mechanism can be shut down using

    await device.disableSynchronization();

    to turn it on again use

    await device.enableSynchronization();
    Controlling network synchronization

    You can skip over synchronizing on certain URLs (for long polling tasks, or websocket connections)

    await device.setURLBlacklist(['.*127.0.0.1.*']);

    In order to gain sync back on an endpoint, just remove it from the blacklist:

    await device.setURLBlacklist([]);

    Alternatively, you can launch your app already with the URL blacklist defined — that can help with a network sync issue at the very beginning:

    await device.launchApp({
    launchArgs: {
    detoxURLBlacklistRegex: '(".*example.com/some-url/.*")',
    },
    });

    How do we wait manually?

    This makes sense only if we’re not waiting enough (or if we’ve disabled automatic synchronization). Use the withTimeout() API to wait until an expectation is met. The API is documented here.

    Tweaking and fine-tuning the synchronization mechanisms

    This isn’t exposed yet, to be done...

    Modifying your app to avoid waiting too much

    When facing a synchronization issue and tweaking doesn’t help, consider modifying your app. When Detox is having trouble synchronizing due to intense non-stopping activity, it may be a sign that your app is abusing resources.

    You can also modify your app, for the sake of tests only, by using mocking. Read more here.

    setTimeout and setInterval

    By default, Detox is designed to ignore setInterval and will only wait for setTimeout of up to 1.5 seconds. If you have an endless polling loop with short intervals implemented with setTimeout, switch the implementation to setInterval. If possible, avoid aggressive polling in your app altogether, the poor single JavaScript thread we have doesn’t like it.

    Endless looping animations

    By default, Detox will wait until animations complete. If you have an endless looping animation, this may cause Detox to hang. In this case, consider turning off the animation synchronization or remove the endless loop in your E2E build with mocking.

    - - + + \ No newline at end of file diff --git a/img/blog/copilot-demo.gif b/img/blog/copilot-demo.gif new file mode 100644 index 0000000000000000000000000000000000000000..6c74535b289b93c89072a13250200315ff325f8f GIT binary patch literal 1395433 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Νpe0x51Tb*4Umz>C9fAa%7JXWCB+VOV{UHtqDab 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�K{%2AG^ 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—J~ShWkwE7q`!WC7KHSLE2F`^-M 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
      ^vsf$+WUQnYAa)MB!s=3p|F<*Ae^TJgN67;5es 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�&d(hj(iNPchV1PN}D-A%;|ORG-%&c@~`VkqbXV9 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 >VuUF*Z;I?qk%2bRnTkM8h)U=M!|L>p*zHjWK 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%0AeAVL!1$yURg+kwa`E$B!GEA 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 z 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

      Detox

      Gray box end-to-end testing and automation framework for React Native apps

      Follow us on social networks:

      Detox benefits

      Cross Platform

      Write cross-platform end-to-end tests in JavaScript. Currently supports iOS and Android.

      Debuggable

      Modern async-await API allows breakpoints in asynchronous tests to work as expected.

      Automatically Synchronized

      Stops flakiness at the core by monitoring asynchronous operations in your app.

      Made For CI

      Execute your E2E tests on CI platforms like Travis CI, CircleCI or Jenkins without grief.

      Runs on Devices

      Gain confidence to ship by testing your app on a device/simulator just like a real user (not yet supported on iOS).

      Test Runner Agnostic

      Detox provides a set of APIs to use with any test runner or without it. It comes with Jest integration out of the box.

      - - + + \ No newline at end of file diff --git a/search/index.html b/search/index.html index 8725ee944a..da95701322 100644 --- a/search/index.html +++ b/search/index.html @@ -11,13 +11,13 @@ - - + + - - + + \ No newline at end of file diff --git a/showcase/index.html b/showcase/index.html index a78a3e79f3..91e4344bd2 100644 --- a/showcase/index.html +++ b/showcase/index.html @@ -11,13 +11,13 @@ - - + + - - + + \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml index a05db19aeb..1339394da9 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1 +1 @@ -https://wix.github.io/Detox/blogweekly0.5https://wix.github.io/Detox/blog/2022/11/10/detox-20-is-outweekly0.5https://wix.github.io/Detox/blog/archiveweekly0.5https://wix.github.io/Detox/blog/tagsweekly0.5https://wix.github.io/Detox/blog/tags/genymotionweekly0.5https://wix.github.io/Detox/blog/tags/major-releaseweekly0.5https://wix.github.io/Detox/searchweekly0.5https://wix.github.io/Detox/showcaseweekly0.5https://wix.github.io/Detox/docs/19.x/weekly0.5https://wix.github.io/Detox/docs/19.x/api/actions-on-elementweekly0.5https://wix.github.io/Detox/docs/19.x/api/artifactsweekly0.5https://wix.github.io/Detox/docs/19.x/api/detox-cliweekly0.5https://wix.github.io/Detox/docs/19.x/api/detox-object-apiweekly0.5https://wix.github.io/Detox/docs/19.x/api/device-object-apiweekly0.5https://wix.github.io/Detox/docs/19.x/api/expectweekly0.5https://wix.github.io/Detox/docs/19.x/api/launch-argsweekly0.5https://wix.github.io/Detox/docs/19.x/api/matchersweekly0.5https://wix.github.io/Detox/docs/19.x/api/mocking-open-with-urlweekly0.5https://wix.github.io/Detox/docs/19.x/api/mocking-user-activityweekly0.5https://wix.github.io/Detox/docs/19.x/api/mocking-user-notificationsweekly0.5https://wix.github.io/Detox/docs/19.x/api/screenshotsweekly0.5https://wix.github.io/Detox/docs/19.x/api/test-lifecycleweekly0.5https://wix.github.io/Detox/docs/19.x/config/overviewweekly0.5https://wix.github.io/Detox/docs/19.x/contributingweekly0.5https://wix.github.io/Detox/docs/19.x/guide/debugging-in-android-studioweekly0.5https://wix.github.io/Detox/docs/19.x/guide/debugging-in-xcodeweekly0.5https://wix.github.io/Detox/docs/19.x/guide/developing-while-writing-testsweekly0.5https://wix.github.io/Detox/docs/19.x/guide/expoweekly0.5https://wix.github.io/Detox/docs/19.x/guide/jestweekly0.5https://wix.github.io/Detox/docs/19.x/guide/migrationweekly0.5https://wix.github.io/Detox/docs/19.x/guide/mochaweekly0.5https://wix.github.io/Detox/docs/19.x/guide/mockingweekly0.5https://wix.github.io/Detox/docs/19.x/guide/parallel-test-executionweekly0.5https://wix.github.io/Detox/docs/19.x/guide/running-locallyweekly0.5https://wix.github.io/Detox/docs/19.x/guide/running-on-ciweekly0.5https://wix.github.io/Detox/docs/19.x/guide/third-party-driversweekly0.5https://wix.github.io/Detox/docs/19.x/guide/uninstallingweekly0.5https://wix.github.io/Detox/docs/19.x/introduction/androidweekly0.5https://wix.github.io/Detox/docs/19.x/introduction/android-dev-envweekly0.5https://wix.github.io/Detox/docs/19.x/introduction/design-principlesweekly0.5https://wix.github.io/Detox/docs/19.x/introduction/getting-startedweekly0.5https://wix.github.io/Detox/docs/19.x/introduction/how-detox-worksweekly0.5https://wix.github.io/Detox/docs/19.x/introduction/iosweekly0.5https://wix.github.io/Detox/docs/19.x/introduction/ios-dev-envweekly0.5https://wix.github.io/Detox/docs/19.x/introduction/workflowsweekly0.5https://wix.github.io/Detox/docs/19.x/introduction/writing-first-testweekly0.5https://wix.github.io/Detox/docs/19.x/troubleshooting/building-the-appweekly0.5https://wix.github.io/Detox/docs/19.x/troubleshooting/flakinessweekly0.5https://wix.github.io/Detox/docs/19.x/troubleshooting/running-testsweekly0.5https://wix.github.io/Detox/docs/19.x/troubleshooting/synchronizationweekly0.5https://wix.github.io/Detox/docs/19.x/troubleshooting/troubleshootingweekly0.5https://wix.github.io/Detox/docs/next/api/actionsweekly0.5https://wix.github.io/Detox/docs/next/api/copilotweekly0.5https://wix.github.io/Detox/docs/next/api/deviceweekly0.5https://wix.github.io/Detox/docs/next/api/expectweekly0.5https://wix.github.io/Detox/docs/next/api/internalsweekly0.5https://wix.github.io/Detox/docs/next/api/loggerweekly0.5https://wix.github.io/Detox/docs/next/api/matchersweekly0.5https://wix.github.io/Detox/docs/next/api/systemweekly0.5https://wix.github.io/Detox/docs/next/api/webviewsweekly0.5https://wix.github.io/Detox/docs/next/articles/design-principlesweekly0.5https://wix.github.io/Detox/docs/next/articles/how-detox-worksweekly0.5https://wix.github.io/Detox/docs/next/articles/third-party-driversweekly0.5https://wix.github.io/Detox/docs/next/cli/buildweekly0.5https://wix.github.io/Detox/docs/next/cli/build-framework-cacheweekly0.5https://wix.github.io/Detox/docs/next/cli/clean-framework-cacheweekly0.5https://wix.github.io/Detox/docs/next/cli/initweekly0.5https://wix.github.io/Detox/docs/next/cli/overviewweekly0.5https://wix.github.io/Detox/docs/next/cli/rebuild-framework-cacheweekly0.5https://wix.github.io/Detox/docs/next/cli/recorderweekly0.5https://wix.github.io/Detox/docs/next/cli/reset-lock-fileweekly0.5https://wix.github.io/Detox/docs/next/cli/run-serverweekly0.5https://wix.github.io/Detox/docs/next/cli/startweekly0.5https://wix.github.io/Detox/docs/next/cli/testweekly0.5https://wix.github.io/Detox/docs/next/config/appsweekly0.5https://wix.github.io/Detox/docs/next/config/artifactsweekly0.5https://wix.github.io/Detox/docs/next/config/behaviorweekly0.5https://wix.github.io/Detox/docs/next/config/devicesweekly0.5https://wix.github.io/Detox/docs/next/config/loggerweekly0.5https://wix.github.io/Detox/docs/next/config/overviewweekly0.5https://wix.github.io/Detox/docs/next/config/sessionweekly0.5https://wix.github.io/Detox/docs/next/config/testRunnerweekly0.5https://wix.github.io/Detox/docs/next/contributingweekly0.5https://wix.github.io/Detox/docs/next/contributing/code-of-conductweekly0.5https://wix.github.io/Detox/docs/next/contributing/code/building-and-testingweekly0.5https://wix.github.io/Detox/docs/next/contributing/code/example-projectsweekly0.5https://wix.github.io/Detox/docs/next/contributing/code/overviewweekly0.5https://wix.github.io/Detox/docs/next/contributing/code/reviewing-pull-requestsweekly0.5https://wix.github.io/Detox/docs/next/contributing/code/setting-up-the-dev-environmentweekly0.5https://wix.github.io/Detox/docs/next/contributing/code/submitting-pull-requestsweekly0.5https://wix.github.io/Detox/docs/next/contributing/documentationweekly0.5https://wix.github.io/Detox/docs/next/contributing/feature-requestsweekly0.5https://wix.github.io/Detox/docs/next/contributing/questions/answering-questionsweekly0.5https://wix.github.io/Detox/docs/next/contributing/questions/asking-questionsweekly0.5https://wix.github.io/Detox/docs/next/contributing/reporting-bugsweekly0.5https://wix.github.io/Detox/docs/next/guide/android-dev-envweekly0.5https://wix.github.io/Detox/docs/next/guide/cucumber-js-integrationweekly0.5https://wix.github.io/Detox/docs/next/guide/developing-while-writing-testsweekly0.5https://wix.github.io/Detox/docs/next/guide/genymotion-saasweekly0.5https://wix.github.io/Detox/docs/next/guide/investigating-test-failureweekly0.5https://wix.github.io/Detox/docs/next/guide/launch-argsweekly0.5https://wix.github.io/Detox/docs/next/guide/migrationweekly0.5https://wix.github.io/Detox/docs/next/guide/mockingweekly0.5https://wix.github.io/Detox/docs/next/guide/mocking-open-with-urlweekly0.5https://wix.github.io/Detox/docs/next/guide/mocking-user-activityweekly0.5https://wix.github.io/Detox/docs/next/guide/mocking-user-notificationsweekly0.5https://wix.github.io/Detox/docs/next/guide/parallel-test-executionweekly0.5https://wix.github.io/Detox/docs/next/guide/proguard-configurationweekly0.5https://wix.github.io/Detox/docs/next/guide/taking-screenshotsweekly0.5https://wix.github.io/Detox/docs/next/guide/test-idweekly0.5https://wix.github.io/Detox/docs/next/guide/testing-webviewsweekly0.5https://wix.github.io/Detox/docs/next/guide/testing-with-copilotweekly0.5https://wix.github.io/Detox/docs/next/guide/typescriptweekly0.5https://wix.github.io/Detox/docs/next/guide/uninstallingweekly0.5https://wix.github.io/Detox/docs/next/introduction/debuggingweekly0.5https://wix.github.io/Detox/docs/next/introduction/environment-setupweekly0.5https://wix.github.io/Detox/docs/next/introduction/getting-startedweekly0.5https://wix.github.io/Detox/docs/next/introduction/preparing-for-ciweekly0.5https://wix.github.io/Detox/docs/next/introduction/project-setupweekly0.5https://wix.github.io/Detox/docs/next/introduction/your-first-testweekly0.5https://wix.github.io/Detox/docs/next/troubleshooting/artifactsweekly0.5https://wix.github.io/Detox/docs/next/troubleshooting/building-the-appweekly0.5https://wix.github.io/Detox/docs/next/troubleshooting/flakinessweekly0.5https://wix.github.io/Detox/docs/next/troubleshooting/running-testsweekly0.5https://wix.github.io/Detox/docs/next/troubleshooting/synchronizationweekly0.5https://wix.github.io/Detox/docs/api/actionsweekly0.5https://wix.github.io/Detox/docs/api/deviceweekly0.5https://wix.github.io/Detox/docs/api/expectweekly0.5https://wix.github.io/Detox/docs/api/internalsweekly0.5https://wix.github.io/Detox/docs/api/loggerweekly0.5https://wix.github.io/Detox/docs/api/matchersweekly0.5https://wix.github.io/Detox/docs/api/systemweekly0.5https://wix.github.io/Detox/docs/api/webviewsweekly0.5https://wix.github.io/Detox/docs/articles/design-principlesweekly0.5https://wix.github.io/Detox/docs/articles/how-detox-worksweekly0.5https://wix.github.io/Detox/docs/articles/third-party-driversweekly0.5https://wix.github.io/Detox/docs/cli/buildweekly0.5https://wix.github.io/Detox/docs/cli/build-framework-cacheweekly0.5https://wix.github.io/Detox/docs/cli/clean-framework-cacheweekly0.5https://wix.github.io/Detox/docs/cli/initweekly0.5https://wix.github.io/Detox/docs/cli/overviewweekly0.5https://wix.github.io/Detox/docs/cli/rebuild-framework-cacheweekly0.5https://wix.github.io/Detox/docs/cli/recorderweekly0.5https://wix.github.io/Detox/docs/cli/reset-lock-fileweekly0.5https://wix.github.io/Detox/docs/cli/run-serverweekly0.5https://wix.github.io/Detox/docs/cli/startweekly0.5https://wix.github.io/Detox/docs/cli/testweekly0.5https://wix.github.io/Detox/docs/config/appsweekly0.5https://wix.github.io/Detox/docs/config/artifactsweekly0.5https://wix.github.io/Detox/docs/config/behaviorweekly0.5https://wix.github.io/Detox/docs/config/devicesweekly0.5https://wix.github.io/Detox/docs/config/loggerweekly0.5https://wix.github.io/Detox/docs/config/overviewweekly0.5https://wix.github.io/Detox/docs/config/sessionweekly0.5https://wix.github.io/Detox/docs/config/testRunnerweekly0.5https://wix.github.io/Detox/docs/contributingweekly0.5https://wix.github.io/Detox/docs/contributing/code-of-conductweekly0.5https://wix.github.io/Detox/docs/contributing/code/building-and-testingweekly0.5https://wix.github.io/Detox/docs/contributing/code/example-projectsweekly0.5https://wix.github.io/Detox/docs/contributing/code/overviewweekly0.5https://wix.github.io/Detox/docs/contributing/code/reviewing-pull-requestsweekly0.5https://wix.github.io/Detox/docs/contributing/code/setting-up-the-dev-environmentweekly0.5https://wix.github.io/Detox/docs/contributing/code/submitting-pull-requestsweekly0.5https://wix.github.io/Detox/docs/contributing/documentationweekly0.5https://wix.github.io/Detox/docs/contributing/feature-requestsweekly0.5https://wix.github.io/Detox/docs/contributing/questions/answering-questionsweekly0.5https://wix.github.io/Detox/docs/contributing/questions/asking-questionsweekly0.5https://wix.github.io/Detox/docs/contributing/reporting-bugsweekly0.5https://wix.github.io/Detox/docs/guide/android-dev-envweekly0.5https://wix.github.io/Detox/docs/guide/cucumber-js-integrationweekly0.5https://wix.github.io/Detox/docs/guide/developing-while-writing-testsweekly0.5https://wix.github.io/Detox/docs/guide/genymotion-saasweekly0.5https://wix.github.io/Detox/docs/guide/investigating-test-failureweekly0.5https://wix.github.io/Detox/docs/guide/launch-argsweekly0.5https://wix.github.io/Detox/docs/guide/migrationweekly0.5https://wix.github.io/Detox/docs/guide/mockingweekly0.5https://wix.github.io/Detox/docs/guide/mocking-open-with-urlweekly0.5https://wix.github.io/Detox/docs/guide/mocking-user-activityweekly0.5https://wix.github.io/Detox/docs/guide/mocking-user-notificationsweekly0.5https://wix.github.io/Detox/docs/guide/parallel-test-executionweekly0.5https://wix.github.io/Detox/docs/guide/proguard-configurationweekly0.5https://wix.github.io/Detox/docs/guide/taking-screenshotsweekly0.5https://wix.github.io/Detox/docs/guide/test-idweekly0.5https://wix.github.io/Detox/docs/guide/testing-webviewsweekly0.5https://wix.github.io/Detox/docs/guide/typescriptweekly0.5https://wix.github.io/Detox/docs/guide/uninstallingweekly0.5https://wix.github.io/Detox/docs/introduction/debuggingweekly0.5https://wix.github.io/Detox/docs/introduction/environment-setupweekly0.5https://wix.github.io/Detox/docs/introduction/getting-startedweekly0.5https://wix.github.io/Detox/docs/introduction/preparing-for-ciweekly0.5https://wix.github.io/Detox/docs/introduction/project-setupweekly0.5https://wix.github.io/Detox/docs/introduction/your-first-testweekly0.5https://wix.github.io/Detox/docs/troubleshooting/artifactsweekly0.5https://wix.github.io/Detox/docs/troubleshooting/building-the-appweekly0.5https://wix.github.io/Detox/docs/troubleshooting/flakinessweekly0.5https://wix.github.io/Detox/docs/troubleshooting/running-testsweekly0.5https://wix.github.io/Detox/docs/troubleshooting/synchronizationweekly0.5https://wix.github.io/Detox/weekly0.5 \ No newline at end of file +https://wix.github.io/Detox/blogweekly0.5https://wix.github.io/Detox/blog/2022/11/10/detox-20-is-outweekly0.5https://wix.github.io/Detox/blog/2024/09/30/detox-copilot-is-outweekly0.5https://wix.github.io/Detox/blog/archiveweekly0.5https://wix.github.io/Detox/blog/tagsweekly0.5https://wix.github.io/Detox/blog/tags/ai-integrationweekly0.5https://wix.github.io/Detox/blog/tags/detox-copilotweekly0.5https://wix.github.io/Detox/blog/tags/genymotionweekly0.5https://wix.github.io/Detox/blog/tags/major-releaseweekly0.5https://wix.github.io/Detox/blog/tags/minor-releaseweekly0.5https://wix.github.io/Detox/searchweekly0.5https://wix.github.io/Detox/showcaseweekly0.5https://wix.github.io/Detox/docs/19.x/weekly0.5https://wix.github.io/Detox/docs/19.x/api/actions-on-elementweekly0.5https://wix.github.io/Detox/docs/19.x/api/artifactsweekly0.5https://wix.github.io/Detox/docs/19.x/api/detox-cliweekly0.5https://wix.github.io/Detox/docs/19.x/api/detox-object-apiweekly0.5https://wix.github.io/Detox/docs/19.x/api/device-object-apiweekly0.5https://wix.github.io/Detox/docs/19.x/api/expectweekly0.5https://wix.github.io/Detox/docs/19.x/api/launch-argsweekly0.5https://wix.github.io/Detox/docs/19.x/api/matchersweekly0.5https://wix.github.io/Detox/docs/19.x/api/mocking-open-with-urlweekly0.5https://wix.github.io/Detox/docs/19.x/api/mocking-user-activityweekly0.5https://wix.github.io/Detox/docs/19.x/api/mocking-user-notificationsweekly0.5https://wix.github.io/Detox/docs/19.x/api/screenshotsweekly0.5https://wix.github.io/Detox/docs/19.x/api/test-lifecycleweekly0.5https://wix.github.io/Detox/docs/19.x/config/overviewweekly0.5https://wix.github.io/Detox/docs/19.x/contributingweekly0.5https://wix.github.io/Detox/docs/19.x/guide/debugging-in-android-studioweekly0.5https://wix.github.io/Detox/docs/19.x/guide/debugging-in-xcodeweekly0.5https://wix.github.io/Detox/docs/19.x/guide/developing-while-writing-testsweekly0.5https://wix.github.io/Detox/docs/19.x/guide/expoweekly0.5https://wix.github.io/Detox/docs/19.x/guide/jestweekly0.5https://wix.github.io/Detox/docs/19.x/guide/migrationweekly0.5https://wix.github.io/Detox/docs/19.x/guide/mochaweekly0.5https://wix.github.io/Detox/docs/19.x/guide/mockingweekly0.5https://wix.github.io/Detox/docs/19.x/guide/parallel-test-executionweekly0.5https://wix.github.io/Detox/docs/19.x/guide/running-locallyweekly0.5https://wix.github.io/Detox/docs/19.x/guide/running-on-ciweekly0.5https://wix.github.io/Detox/docs/19.x/guide/third-party-driversweekly0.5https://wix.github.io/Detox/docs/19.x/guide/uninstallingweekly0.5https://wix.github.io/Detox/docs/19.x/introduction/androidweekly0.5https://wix.github.io/Detox/docs/19.x/introduction/android-dev-envweekly0.5https://wix.github.io/Detox/docs/19.x/introduction/design-principlesweekly0.5https://wix.github.io/Detox/docs/19.x/introduction/getting-startedweekly0.5https://wix.github.io/Detox/docs/19.x/introduction/how-detox-worksweekly0.5https://wix.github.io/Detox/docs/19.x/introduction/iosweekly0.5https://wix.github.io/Detox/docs/19.x/introduction/ios-dev-envweekly0.5https://wix.github.io/Detox/docs/19.x/introduction/workflowsweekly0.5https://wix.github.io/Detox/docs/19.x/introduction/writing-first-testweekly0.5https://wix.github.io/Detox/docs/19.x/troubleshooting/building-the-appweekly0.5https://wix.github.io/Detox/docs/19.x/troubleshooting/flakinessweekly0.5https://wix.github.io/Detox/docs/19.x/troubleshooting/running-testsweekly0.5https://wix.github.io/Detox/docs/19.x/troubleshooting/synchronizationweekly0.5https://wix.github.io/Detox/docs/19.x/troubleshooting/troubleshootingweekly0.5https://wix.github.io/Detox/docs/next/api/actionsweekly0.5https://wix.github.io/Detox/docs/next/api/copilotweekly0.5https://wix.github.io/Detox/docs/next/api/deviceweekly0.5https://wix.github.io/Detox/docs/next/api/expectweekly0.5https://wix.github.io/Detox/docs/next/api/internalsweekly0.5https://wix.github.io/Detox/docs/next/api/loggerweekly0.5https://wix.github.io/Detox/docs/next/api/matchersweekly0.5https://wix.github.io/Detox/docs/next/api/systemweekly0.5https://wix.github.io/Detox/docs/next/api/webviewsweekly0.5https://wix.github.io/Detox/docs/next/articles/design-principlesweekly0.5https://wix.github.io/Detox/docs/next/articles/how-detox-worksweekly0.5https://wix.github.io/Detox/docs/next/articles/third-party-driversweekly0.5https://wix.github.io/Detox/docs/next/cli/buildweekly0.5https://wix.github.io/Detox/docs/next/cli/build-framework-cacheweekly0.5https://wix.github.io/Detox/docs/next/cli/clean-framework-cacheweekly0.5https://wix.github.io/Detox/docs/next/cli/initweekly0.5https://wix.github.io/Detox/docs/next/cli/overviewweekly0.5https://wix.github.io/Detox/docs/next/cli/rebuild-framework-cacheweekly0.5https://wix.github.io/Detox/docs/next/cli/recorderweekly0.5https://wix.github.io/Detox/docs/next/cli/reset-lock-fileweekly0.5https://wix.github.io/Detox/docs/next/cli/run-serverweekly0.5https://wix.github.io/Detox/docs/next/cli/startweekly0.5https://wix.github.io/Detox/docs/next/cli/testweekly0.5https://wix.github.io/Detox/docs/next/config/appsweekly0.5https://wix.github.io/Detox/docs/next/config/artifactsweekly0.5https://wix.github.io/Detox/docs/next/config/behaviorweekly0.5https://wix.github.io/Detox/docs/next/config/devicesweekly0.5https://wix.github.io/Detox/docs/next/config/loggerweekly0.5https://wix.github.io/Detox/docs/next/config/overviewweekly0.5https://wix.github.io/Detox/docs/next/config/sessionweekly0.5https://wix.github.io/Detox/docs/next/config/testRunnerweekly0.5https://wix.github.io/Detox/docs/next/contributingweekly0.5https://wix.github.io/Detox/docs/next/contributing/code-of-conductweekly0.5https://wix.github.io/Detox/docs/next/contributing/code/building-and-testingweekly0.5https://wix.github.io/Detox/docs/next/contributing/code/example-projectsweekly0.5https://wix.github.io/Detox/docs/next/contributing/code/overviewweekly0.5https://wix.github.io/Detox/docs/next/contributing/code/reviewing-pull-requestsweekly0.5https://wix.github.io/Detox/docs/next/contributing/code/setting-up-the-dev-environmentweekly0.5https://wix.github.io/Detox/docs/next/contributing/code/submitting-pull-requestsweekly0.5https://wix.github.io/Detox/docs/next/contributing/documentationweekly0.5https://wix.github.io/Detox/docs/next/contributing/feature-requestsweekly0.5https://wix.github.io/Detox/docs/next/contributing/questions/answering-questionsweekly0.5https://wix.github.io/Detox/docs/next/contributing/questions/asking-questionsweekly0.5https://wix.github.io/Detox/docs/next/contributing/reporting-bugsweekly0.5https://wix.github.io/Detox/docs/next/copilot/best-practicesweekly0.5https://wix.github.io/Detox/docs/next/copilot/technical-overviewweekly0.5https://wix.github.io/Detox/docs/next/copilot/testing-with-copilotweekly0.5https://wix.github.io/Detox/docs/next/guide/android-dev-envweekly0.5https://wix.github.io/Detox/docs/next/guide/cucumber-js-integrationweekly0.5https://wix.github.io/Detox/docs/next/guide/developing-while-writing-testsweekly0.5https://wix.github.io/Detox/docs/next/guide/genymotion-saasweekly0.5https://wix.github.io/Detox/docs/next/guide/investigating-test-failureweekly0.5https://wix.github.io/Detox/docs/next/guide/launch-argsweekly0.5https://wix.github.io/Detox/docs/next/guide/migrationweekly0.5https://wix.github.io/Detox/docs/next/guide/mockingweekly0.5https://wix.github.io/Detox/docs/next/guide/mocking-open-with-urlweekly0.5https://wix.github.io/Detox/docs/next/guide/mocking-user-activityweekly0.5https://wix.github.io/Detox/docs/next/guide/mocking-user-notificationsweekly0.5https://wix.github.io/Detox/docs/next/guide/parallel-test-executionweekly0.5https://wix.github.io/Detox/docs/next/guide/proguard-configurationweekly0.5https://wix.github.io/Detox/docs/next/guide/taking-screenshotsweekly0.5https://wix.github.io/Detox/docs/next/guide/test-idweekly0.5https://wix.github.io/Detox/docs/next/guide/testing-webviewsweekly0.5https://wix.github.io/Detox/docs/next/guide/typescriptweekly0.5https://wix.github.io/Detox/docs/next/guide/uninstallingweekly0.5https://wix.github.io/Detox/docs/next/introduction/debuggingweekly0.5https://wix.github.io/Detox/docs/next/introduction/environment-setupweekly0.5https://wix.github.io/Detox/docs/next/introduction/getting-startedweekly0.5https://wix.github.io/Detox/docs/next/introduction/preparing-for-ciweekly0.5https://wix.github.io/Detox/docs/next/introduction/project-setupweekly0.5https://wix.github.io/Detox/docs/next/introduction/your-first-testweekly0.5https://wix.github.io/Detox/docs/next/troubleshooting/artifactsweekly0.5https://wix.github.io/Detox/docs/next/troubleshooting/building-the-appweekly0.5https://wix.github.io/Detox/docs/next/troubleshooting/flakinessweekly0.5https://wix.github.io/Detox/docs/next/troubleshooting/running-testsweekly0.5https://wix.github.io/Detox/docs/next/troubleshooting/synchronizationweekly0.5https://wix.github.io/Detox/docs/api/actionsweekly0.5https://wix.github.io/Detox/docs/api/deviceweekly0.5https://wix.github.io/Detox/docs/api/expectweekly0.5https://wix.github.io/Detox/docs/api/internalsweekly0.5https://wix.github.io/Detox/docs/api/loggerweekly0.5https://wix.github.io/Detox/docs/api/matchersweekly0.5https://wix.github.io/Detox/docs/api/systemweekly0.5https://wix.github.io/Detox/docs/api/webviewsweekly0.5https://wix.github.io/Detox/docs/articles/design-principlesweekly0.5https://wix.github.io/Detox/docs/articles/how-detox-worksweekly0.5https://wix.github.io/Detox/docs/articles/third-party-driversweekly0.5https://wix.github.io/Detox/docs/cli/buildweekly0.5https://wix.github.io/Detox/docs/cli/build-framework-cacheweekly0.5https://wix.github.io/Detox/docs/cli/clean-framework-cacheweekly0.5https://wix.github.io/Detox/docs/cli/initweekly0.5https://wix.github.io/Detox/docs/cli/overviewweekly0.5https://wix.github.io/Detox/docs/cli/rebuild-framework-cacheweekly0.5https://wix.github.io/Detox/docs/cli/recorderweekly0.5https://wix.github.io/Detox/docs/cli/reset-lock-fileweekly0.5https://wix.github.io/Detox/docs/cli/run-serverweekly0.5https://wix.github.io/Detox/docs/cli/startweekly0.5https://wix.github.io/Detox/docs/cli/testweekly0.5https://wix.github.io/Detox/docs/config/appsweekly0.5https://wix.github.io/Detox/docs/config/artifactsweekly0.5https://wix.github.io/Detox/docs/config/behaviorweekly0.5https://wix.github.io/Detox/docs/config/devicesweekly0.5https://wix.github.io/Detox/docs/config/loggerweekly0.5https://wix.github.io/Detox/docs/config/overviewweekly0.5https://wix.github.io/Detox/docs/config/sessionweekly0.5https://wix.github.io/Detox/docs/config/testRunnerweekly0.5https://wix.github.io/Detox/docs/contributingweekly0.5https://wix.github.io/Detox/docs/contributing/code-of-conductweekly0.5https://wix.github.io/Detox/docs/contributing/code/building-and-testingweekly0.5https://wix.github.io/Detox/docs/contributing/code/example-projectsweekly0.5https://wix.github.io/Detox/docs/contributing/code/overviewweekly0.5https://wix.github.io/Detox/docs/contributing/code/reviewing-pull-requestsweekly0.5https://wix.github.io/Detox/docs/contributing/code/setting-up-the-dev-environmentweekly0.5https://wix.github.io/Detox/docs/contributing/code/submitting-pull-requestsweekly0.5https://wix.github.io/Detox/docs/contributing/documentationweekly0.5https://wix.github.io/Detox/docs/contributing/feature-requestsweekly0.5https://wix.github.io/Detox/docs/contributing/questions/answering-questionsweekly0.5https://wix.github.io/Detox/docs/contributing/questions/asking-questionsweekly0.5https://wix.github.io/Detox/docs/contributing/reporting-bugsweekly0.5https://wix.github.io/Detox/docs/guide/android-dev-envweekly0.5https://wix.github.io/Detox/docs/guide/cucumber-js-integrationweekly0.5https://wix.github.io/Detox/docs/guide/developing-while-writing-testsweekly0.5https://wix.github.io/Detox/docs/guide/genymotion-saasweekly0.5https://wix.github.io/Detox/docs/guide/investigating-test-failureweekly0.5https://wix.github.io/Detox/docs/guide/launch-argsweekly0.5https://wix.github.io/Detox/docs/guide/migrationweekly0.5https://wix.github.io/Detox/docs/guide/mockingweekly0.5https://wix.github.io/Detox/docs/guide/mocking-open-with-urlweekly0.5https://wix.github.io/Detox/docs/guide/mocking-user-activityweekly0.5https://wix.github.io/Detox/docs/guide/mocking-user-notificationsweekly0.5https://wix.github.io/Detox/docs/guide/parallel-test-executionweekly0.5https://wix.github.io/Detox/docs/guide/proguard-configurationweekly0.5https://wix.github.io/Detox/docs/guide/taking-screenshotsweekly0.5https://wix.github.io/Detox/docs/guide/test-idweekly0.5https://wix.github.io/Detox/docs/guide/testing-webviewsweekly0.5https://wix.github.io/Detox/docs/guide/typescriptweekly0.5https://wix.github.io/Detox/docs/guide/uninstallingweekly0.5https://wix.github.io/Detox/docs/introduction/debuggingweekly0.5https://wix.github.io/Detox/docs/introduction/environment-setupweekly0.5https://wix.github.io/Detox/docs/introduction/getting-startedweekly0.5https://wix.github.io/Detox/docs/introduction/preparing-for-ciweekly0.5https://wix.github.io/Detox/docs/introduction/project-setupweekly0.5https://wix.github.io/Detox/docs/introduction/your-first-testweekly0.5https://wix.github.io/Detox/docs/troubleshooting/artifactsweekly0.5https://wix.github.io/Detox/docs/troubleshooting/building-the-appweekly0.5https://wix.github.io/Detox/docs/troubleshooting/flakinessweekly0.5https://wix.github.io/Detox/docs/troubleshooting/running-testsweekly0.5https://wix.github.io/Detox/docs/troubleshooting/synchronizationweekly0.5https://wix.github.io/Detox/weekly0.5 \ No newline at end of file

      cT0MQ6nMlAfAOW%Y7z^ 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ⓈbR4T47DWJNc37T@(gY!W1zmd;$YmYXP#S{Q1giAB?x9lSU#{&WcfiX9lVT!gzG)Diti7BJzCS)6Gl9Z!vC<<3q7Zi+;b=OJw zWDX$0hc5Adhk>vZfUBfPFzK*g2o~c07t=~bG=;?l6tMk)PYWduU3hD{Vh=*KW{#M@ zePBVyJsUC79<5oTKZ|bk1XMadH3=>;6;{ee1Id_dLz*b#`oNK4l_<^v1smfyx71l` zuZ!C1z98?O;1h|6_9P*saCI)0QOiJD0u5g)I)ax3%9 z`o=%-eQ8npjvQ$1knxwlUcC z%@bB{sa&6xZNHqAb$gksOg+BKKfCTfhvH!|Y>GW0%8L=Mpg#U|Zds>7dyFFxPP}ol zdi1G2Fu40RabY|$D^J;4aMWl~L=AnK2>U}PUMkioEMBIf+*-4q`h~ifNzjMr%UpqH zvlrbjBz?`Ej$WL8R_3NtJ*#%sQ*$91RQUmKCXv;1G@QWcGM=t_kjs4AG8|pakFKbE z#r-(#xLM=v$;<8zaEqIWsplRq4#JL=7ppXijQia~6*Pn=*Clvmuhb`&qRj1IYErxLW8hxiJ7`Inn zneC>T!P=m_fL|?e+i{V{*(AceHe+33es)Wv{ztSz{3A$TBl7`F`L)`YWEd z$Arlj-%Cp@Pj~wLkWHOFJL#}sU}8p`^e@9+9UAP=&*;#br&A}6;uamitu=ZFf$+}) z-S^Fl+y|Q9ZMDA1f1Py45BJiD0z_^y_^w8`eL0LYg}w@6{lY2E^9JAd=*z;gq% zEQ~WzuRvqy+b(8pv**Q~J6~b>MKwtW+@CW)n2P+VdZvsa?Lem|8W?3}pL!qhpUqsP zr6%J2m!}koCR;YwlA?**dw!qqyHpnCgPiIo)eEPCX2~SOQT4H}U#ef7|H!1~CS%@B zZC_n&K4ysF8!p?cy~LACo0v6-5zyP(mnH`ow*9KV$0Ln_n!5~Vf6N+v;klnFG50cT zvTf^Xh|=tn*s+d07tt@-*A$hMn%nVA?0IN5oirJs`QGC12tcu*d+p$oHq&vUw1%OK zE9afzC8?T3x5mkUsK#&a2FB2O#&9GZJ+Tk1uvV|+l5}~?u6P_?!XoE!k-two&j1da zx@&Sl=`uyG&b~f>?{^Uno8C>qye?QC&;fEEEj4nZtVzvKwiy!#c%+tI+PF1-$Z(sb zN93*$qH^k##%pJ!gubh0X~G;ue;4?2%HW4RO(e6?h$i)b6a;zgwmue8X8d5M$895x zDtGsx<+yOBc2{$hW0$2@jmPCmzqBaW)?Q@z3T=+vyvUviB%fIs>8{0%zW`~38?)8W@5HI&pzuPN+L79t=*Q*<&~^EuWsgLF`GH7!b$TjRc>xX=7l*+e3_ z`>{G(ra#Dw*GWnJI;Zt3$T2UJy#6A7Yag|VwPMKdle;ka5s%i|`FI1tX9c+L4lnMa z0O55ka@*HPQtyV_a{X~PwOU})MQwb!n@6uBTiIUOo(h|&*oVGD-nK2f-4Z?lD9}Cf zse|7-x4bR{FAY6eWrYlQNns)Sh?vLP?$2Db7S>7srGps|Zs8eepxnIY5~_Tonv$m- z4&5Zx>`i;MtnOcfa6m137rOj`+A`Lol}uoL*Qoi{ob*{SxWeJ~#~%O-6+dQ~%1lC_ zUQhKeM?hW|XTxhdVZ)W?2cc~<2e#Em`8fZg478bTi$d?W0sS@@Wp&wAqz>#cq&0nQ zx^8qTGrRx6F9RrZrNaierE%iRC|Lc2ZDx`;W#TpS;ZMcUAvj4?k5TEhs6B5M&0FV8 z$B*Znivs(e*k9UeL}WSjUABC7&}zW_lhSg{m)~X&PfjQxt1;N!AP6DSp0-}}*EBil z{CCZWY5Q!QGw8Z!U^>U6r|mVjO?7#uVWwq2Z+u4zzkq0eE9=5{F@DnelJ#d;OHIZQ zCO^IZ`Odo;Sh&Ce`rS@%z)lZ-6O{eztOdG1m|1PxWaWwOk3L8D!VKrE^qM^*>~m_t z-jpn?*5z(8p<3@}ZO(TVO+_wKX}1_Gp;jS`^RY=YfB^$=8|y++`$|h;X8ZpESlmqK zwe!4xMhT|NB!xdN)g84EcmnPabO@ou0svQWGZ!YDAXG|5D?uTOszP+iZo}#7M3sq| z)!>BwTTZOw(A|qMOO}$A5qybPrKOe`YcRzyKhMUVvN?if>?Y91EVxFH z(zw1u^fHr}E2WA`_wuqI`^^>5IoooKpEgHQ>;@#^>Nl?p0hvf3F|-o|JU3j1Az$jq zGbP+?gb9jIfB5>r?IOLE2i09Vr-#ZcH{B?5x$ySh$(8&5jzqM~Jalw}R1G+^)SVu_ zG}O+^PXGwBU8(kOW#jJAur6L3B<=^xErycoDxjuU_`fvFoDJktsQHnS`bKiEvc@SL z;B)dXYUo8}{5__csxrJ7J6JuC1R1KL3vN_Ky~&?Frl9Mkf(N5X(Vt>+h>ib!7Xhd; zyHbFho2k@G0}~r$x#gZumcVX*J&V|NqojeQ=hQV7rbpD8+hmGcgr8mqlubcY*)*!J z$S?)j2X4No4J9H7T$X77mQw(?#{zv3zh4-Zz^>IajR*IallA;0TMA+;HYN|n9^ZO! zht7^DA5#<{v?5PazxuDJv!o*=1?fa@&k9eo(pY##`HT}i3B4Gv?z6U=olb^tPb{B#BP%L;wdD1d4LeMZC+ZfvvA|6(Oj*PhA;Sys>Go!w+BeC< z00uXjRpAA>*#K4Q9Xbfg#7o9}yImxZ_=XQ+lb&pI^%B_`|1)`{t04Kd}cE|x4M8OSX-!4yjNrBD4!A2t}&MI!%xkO(8pZ_ zcEFLZi5s42MLo$PttqS^X1+NgTZ`oEjn{+iu!7i0GaE-$LyO}(Q)K#WKWZ3APT>_; zK5R<|{LiL%cLaS-*9Tn&dqdr!(V~60oD&n;*?-Dx^n?)O$x4FF`I#gF@u@6-w041< zs;MovGc;|`H^Ds9#*VK2^S3x2_C6|||L*i5{N5S3<*K+UrQcy?XUZrxCL!@bv4hIw zbGQbPXqk+L`Q)mLTdQd}vQJ7tN$mK0*!x%y@V55vYdiB!uXwpOH(S#6TB&&Z41>9t z*$i}JCGh0v>BrZ%UMWbL_Q`#f|=K4FPt?#|Z{R9-w6;__BM{8uKC;HZ^I&jX|9^Vx9mWlzfXNDGfkk%5nvsyV6HjZoHmp#K z6l}O@Px0<{-rds(dY1^x1<&nUVv1IwK4xy4Z`{LufEu-=PV$fUd}^?{oa-^l6s74* zMRV(4QEOrz`m7-rog+LxKB(WHH$?V{w)^F{aIMt2>K4Bp3@&=T*7f(@{U6fKEVjlmOR&t?r8^kmlW(J2#~wsge78q^ZVYs~ zaDSK2g_=U|rgb)jK{|g!90<47UF~tf*0H9_dXweN-bvj-(CPFBtE6V%ZMa9whV**d zwr2lbg^y0orZze}ZVo(z8{tCa!#P?wR&U|hxNgf#@EP3WCZF=-{-;{PItm}R zqFP(FxStI%ee@{ZQB-@_EuMXIQm0c_z3qhU$L$j>Iu{dmw{I@?-fS4{-@OrKj4J=Q zS&5sF!7enb4QA`G0f=FeZJRjJ4+H4g{_4HUbj?}FzqSIam|i4u#=|5&qud}}R(ZyC zL!byyi&S?567xMDHYp|$F#-+R!X3Pkt=Le?Lo>xftID~DhF084kM2*=;r|{rXbtap zUlvEHRkd*~$k-rkafoAWq(xJV;b~=9{?dcYGNBc4^Ky_x|%X>RTY&Lc3{SfIZ~K==bK82Gn1pk zXxRd&8)_HxZt)LAjSbAyXs(=V^xRM?OtT(q+VEa<#^rea?sP8QsJ*@V&R25HB8vhy zzk`$~R0K(<4A?U$lKkU0)Se>9=SHDj}zq^U#_RV-=JVavCf_nuOND9&>HQBr)D8Ut#ci!V`~> z6eTxhV%~HMtvsc81ulkkSxVgd+SlG*K`~6F-X;*GdHz2H7xzUBnVB)q`0w8jlS;l{ zp@_eFVifQbVmOc?&kJILL#Yt}sN(eM04&Xt3B+B}`2t)ePZK@lZsY}iTa(zQ4zT*R ze^&P7x&8owwKHBWl4r$3^ELWLER5B_*FuB%ThBji@pc?9!66o&>Yr=#T5(Y2S7@r! zFQB`*UIk~lj9c`5O8RgOcx)iDv1`O`EkYp7@5Mdwl;i;8*+EW z+u<^)9u~iyyi68P9^ozmpGi#7;$uS~X(al52L-~stX4?CJ=z@z_75GlY6jV8C?Kr^oOo9O#D0M`fm=h$<#V@x7H@(HGfQ5WO z%~FiCTY@yepb-+Zikno&0y+ptQ90J=I8rqN@B1}74$3`1hfi+URvk|I?~;np3A~wu z!yjrasl>d602&>x3N#kTwgNJUTZu;<->70%zF}&Acf&sxBWWt?6R=CQG=c}A5;3Ne zqj7RxW!uq|O1377@fceXOhsxV96FN?Bn={zOih(Zs!WVma`>+~c;s1P>qUGW0G^ZL z`5b(t0^gy)AKk505dp)N;636|@o4ab6h93K6ldxz8Z6U zzxQLFt`-)#UQ-22{Lru+fTD+io#+}5r94y37Vn8R|HzNTd<7TQx9l2^=^Wkyp*a`F=FE3zydN+em!omZr{mo+BX_=aZfG{n# z?v&yX+#?@lY00)EH8IW^1-#(EVL^D9mil`D?fIlUXiwC1#1Y}p#`j_zOsim?bLUYlRKGJIFN8~&{V&zD9FOVGc! z_B>c8#U8taeV<(#M?lFP zl{l=qm@Vf0-6KH0&wb{U#SD)PZc^XP0Q#!nk7cNjVsC&CW-iOEr7 zwH1`>C^Z#2l??#Q7z6NwiW3!wS4#E(SBO{+NW7?o2eSbKKs6?uK1&ul z36ACJ?olbyO3rF&OL4L9&ULDQr3%WK@tqaN)~)Syx#C*9R*WnWi?8VJj0{2~@<}8a zBKbV9B#&@yT@xTJj>OPC151d*}a4~`U$6HLaYRxe|!Dr@SQ&!Ji693xh`n>iO&|LfV$(k zSQ$#bjt~iKP5H2YU3qxF31{o>Z6~9{AFm@Up{JTj{Bw9)kPktl74hXfKQ->zlLEk! z-AbX?xb@XrBn5^i*vY(YpN5l$s_z+r%RY}!_;om5MQ0u<=hFx#Yo>vv6g53 z%K_YXnv@cq9M#<#qN5 zm^ZLCVv~_H>Q4B6 z2XNN_mE=NDV2b`q{R># zg?}sd#>m^mX?}qJC71WW7E!c%i#c$bRsJe`6-I!VRNxDwz`OCtS%SJeOk+-j7-oWP zapkb{g*lVEx^(%;Zu|~N%|wbnV_Evtd>g<*TCBIn`=p$J5JWw!UY_`!Nw(kH2$S{O zgTZ5&*UF5zomCuRodw__g(0M6k*w1y&aPdi7^_p^gHGKi#%gyHO`Ufq?vK+ZV5M{L zxyR_jP=a+8R*pp3lxUvRl&&Y6bleUg183fRibF%_G1PfK+u{fw1) zX_;9H2{<+!D#rw6&#AI*~)`I5Pko-HAZg>^2ceniUWmftNCcc1s@D20i z-1t}rbTZZzZ_17;P~7++?V@K?b>E9No*8NV6&WcIT=g%>%0Kq*J@mmm6;MoMS^=pF zEE8ouKY?z}P#gQHd0LFyqnn11w49zxc^g@!KY{*mTYls=g2zOhCgcVirtXulS1(hR z)&Xipoa}2qNpXrZd*c;AzNpBSkWU30kL6DbCcY9sgZNzP5frt&)^riK*?lDV`q)gz(umCsaE)B%Jq+w;?p-AixB!v9&0`=aa*T*lrE&=5!Q56d9i(-AhDkwVMccfg zwwfH!kZe`y1*h2e#Ui$&&5KpR6aGK(-FfvxmmDdn9DZY>i0XNq4K3KNe>zih* zoIQkJw|-j7PA>>n1Lw#HJvGL@>8;~rN|s9UCD*N4bZD3O5-D6fg=S99X*vLnAd9QGz-{+lF zxfv*+;<)`DLLqA@@(08HAv~t{chC71 zeeO%#>sDVT2gJ&KP})mTk|igPUUcoK@_z%+S(vZq!RRSqd-|$p0?I`YKuc(FK(G5e zlb!-ZaWGLVtp&GV?~QOVJitdm&Q$zZ(&6lCi<&6$#Rj3aYI@*Vn4_JH@4=syvfpvp zHn9p^62Z6I7N80AD4I*Jq@SLsJ;Q(5aKVnSzK!a&UyC6s`(t{WYe0 z4SCo`{e4P(F+nW_0{r_Kif(sIcL(sxz294KjV0+MmnL?5uNIM^_XgZD zSuq1Jd8B^fj~y{}8MsvUmf*z3^w}Gq^%s_bLzweZ287zZp95KN?R1X2nq!xIlGwJq z#;MYR)!KMESXNGgQ;(!3xU<)7>;JGVxm$G|E#`b& zB-X;e1p(@4#xT1?OOo*IOa)QaUDi5ZZ+Wc|L%_N2w||AZaM-oX`@$fCUf(H>FfDjY zxzqRP&1(CV>Dy25oBzFCf(}ccndl#E5f3k%NN#9dbW~V(P>HuhvH!I8*L?=$F~ExN z_7or}PFQgB)s5E{?o*qqkJjL0jlItagGENIU>ETg@J<}}Q%ccPYqnLQbtQD<*_k*- z-MN?FhfNP7x_YH`u1Q0!z2sMyyPLXdXFm*gI&}a)tb3>)J?eCXS3E8BNN;4))%Q%0 z(9f=!aNK#<^gN534BU$$%FazVdY>zn%3G#gM2Xd#??TU{Bu2~WV0NAl;v}#v$FEbp z<+{q)o?|-0d$EGj?Gi5{txuR9XQKIPsjp_no4ya@3Mxy z!tL2xtA%k!3aGZVKZesFeT#mSNtvOxmeiwt=5|1WHxD37J5Cd{%s|Bm&i2u=e`JJc zAF5iJyNN|3K~WrdjgN0n2uR?fU>ss z{0@7)huEZ(ou&7zzMA{?mnDYR-Z@2=X!s1qn1@~QsW{(c=lX2Wyy1@TsbagzQ(t|b zdF{BpX=90f<#0orXUJ_i>sag=-dm=9sqZ7Pozq=?|6AeaCqh4XZom8|E|LF(oL9BI z@??R85lM!$iq_e``w_GH^Pa%{6{xbp(X$R!%Bt#^!qn=9-`m&ZnE7Y7e?K69ZnhY4 zMK^S|UqWh#U*~e=f#*dt3FS@v`qh7e#G=spPq*Tey!Hl{HHJ1=#_sT49TGg*9olH$ zu){xTZwRY5-O2gQj=%$dLR6rkvkLWupyIuu^=4u59_yNdPyGpP@^WnQOKJ&i+Z)yz z_qZRtr3*C65cFJ=a>Wks$oHEX3a4vp-#4+XlAPtVS|gODp|3jb z%3HmzDBuNcoyD%g`@C<+l?4NDJx^(!1un7f97=?oq5sf`+E--#&*}CU&dBM$$kP^A zM|s8ytn0R6Ee69A6U$Yt#Y>*;48_eCMbwMqr3Cx)-ax!0+-=9dTug`PoQ@9$kVwi= zNip7N`A8JmP6VT8Cg7n6nZ)kY^Xcu!;lthlH3cxu@2BgI<$Ar8kvF+8OqrAdU|5n1 z>a$1&AWNqL2HF}IuRaPA+g(1u9k|g3N2i{KF~%BpDVs$SXzIB zw66Hrp?YHC@x*k=_t00C-czJ3N78HHcBKhxcvrzJ|Fq%F>D7bfO?96S>>9RnG(idqL!FEK zfF6@EgSf#B-2R(O*B=kHoZ3}oQkQF2ABevC)Hh|AwYVOy!#~OW-$&%W1#1~lWK6St1P-|Ko?}J4w z?77wdyYXd8(iI`dI&{r2u=2cHMQvS!(b4tTok6VV#*oV{J166-XMb#* z&pqv>qhNA2Xx&L-^)KCboRFpWxOf%pOxbgWd6al6byZ=+JDzsICS+0pB-tu9P%D;g>*TxCLz0DQ7K(!)#}{$S-qXaGGEb1E$RqnO+MeHIHIP5X?T5( zIK9bjGWdqbedVTXv$(6KyGxr!n%rWm%|xY;Pp{cG4s#a9OtEN44QBrAYY>bUp!66q zg^cvVrj}7NlM%~J-+B|S_O6R|Tb}6Fnb2Z2(reUXlTBRyvgPtaS?k&q_n+@Ao-Fh& z-|x{Hd;{AAApr@VGCzB_}|5d663X_Q9xI z_XY*Dtd31BwGmw%=IRWf8`7MCf_={5^DUjOIDEsH=@i+=jMxs1=3pme(V-1^s5K_0 zspy(nVj)?yu@)KO`PRrZ*vB+A*Nxg`#NF$jVYSwR+7LHA@TkSce9j2au$#PRG) zwp!n{2@A{sK|PHrG1kD!JIT{tFig&mAxoM`1CpApvDtK2U)iD5LbX9pv!eV%m4FT( z4Bu>iNmr;s%7rfGr9jA2-azb(C|Q+Bnn9&81nd2TrJr)FIC;q`+6}e|mC6xKb_;{@ zZ2(AE^E+>Yit9H6`BU=}COp&RqNNkLrA4`j8By6usMG)K2R%Us+J}Rgo-VYa=cyo&IuUuN2J`(fqI^aJgA30Y!&*!r-VSH`F90gu z-x@9);KJ8T7qVsNU=u1h;+arxPH0gvVlaF4oE$0hju^>i4+;=$;pIiN6E#T1HC#QB zgOkIZCUX28a?Vn-X>GTzc*1}MaCL+kFp=v&hyXFD-4i*1t*9jC+Q=pmG6D+a1cGct z5)*zlI?(nrYPk?XG>H<}fW4w$9+Q*6$!9c){?A$agqrR@XHD~kwV@(8DA-I+>O`&z zQyIa?Gavx5N|_M5Td=zuxkL_6Z4!lYe3LjL>;z)=Q-APAV8s@|3=+OUs0eD0u#WJb zh}-Kg-rCfJGII>GCxopgJoG?9L8>#od*JNJ*5Iqiq`}*va*@2OcvJT%OfGV~{@|>M zkJgOn5c4*}5e#fYwTlDoX{tAlZOXsB=@bOt@<5FrQczTk#h{YJgF$kU!9rff3k1N< zP2hM(u!Uy{U{XZj>MUXMV0P^o3i|?7spK6rP@GnjbTO~8C|9jA)T9YY$QnJAk2pq# zwiE|g%;g3xc)YH+0HtHA!UC&uAtDncWasXg5s821r80Gd@|=_iv=c*cC?d~Ksmjx2 z3H9ys!sMbg{E_r5;e4pbfce;yjRqKbyCLBrG4k|sFmpzf&de$G%VQ5_SNW^HANr7L zHbySm%|R8jky3}jz%I|H6Y$llqxZpFB2`FKAkC;kd?m2|O`*T+9GeNZr#=j2=PsR) zrMGQrd=8J80qh|mb1)kT2|XjAo3!kjGNEB?PLPVwm=9xy6$G(!*D!M!69_Y@oW=~P z?J`{@6vE<1_L_Ph_k{LB!UQfXvm2Qy8EjvkXE?KQg%BCrjhqw;Cqp-Sp1QevCMTKo zqKJcDaUFRg-TNd7O5o(Bv%S-#u-y!>bw6tL%-!^EkR+Z=$D}m+bz|1V+ z<~EzAHc=2iuW?cEY87gL9`XDSbBGjHE z+D(PMOvOdch&&h2&P`|^cHT{kqmPqb{BwK5d!gIX;JYbwD3zJB2NI^_BSK=c)#RcL z{Ef=6yc7m_$P}VApC>Juh*XNl4oz}^U?Z#o(g=F1@it!*1(*?HEn z*?aSIHNy);7T&8qp^`YmuGBn+^XqT^2#}><%sfDCMgLm8wZp@l{j9*Bk+(^L#<0;n z)$$fow3c&dIvHZK^YBl>OvcgOz!+Z1oKBcPs92Ce%tyzOQ1S#Ej6fH?$iqcMmv094 zF68+)iBRJ{DAT;4aPDLZI?CZ0y3NQsnc<|^2oQpSK?GhK@)HXfTN?al`hz55c~S1A zf?~CNM9@;0{+s@R)uz@I$R7f;K8LpFXEXCdpz;mz6v$8}=a)ShPBp#Q`lx~Si1}IM zKapcFcbBmx&vS6ox=>Ua3rc3GD6zuSO0QHgGS6{qr+;oLYv|Iwd}yg~YZEHnEACi{ zFf2i%FBePHOG|C;i#o=l!#D=FifiSUD|vu z+xgMNAnc|C+MfG#{diFO92aEf#Z2UeDMG{lLz`qhEezXOe&4oqBzuEwQf9?*{|~$| zmVew7K*qw8x{>xxKt(YkjX7NTfgQ`p8+SwnVzT$f9!rj|1=~ZW{QLvO;~Ov|;u!Nw zlZegiJU?d6xAJi-&Lj?lsto|F0`k^0-LH9$*vife;%4`Si|`mxUq(av3~Fx^{Aj>K z#q4n^cz64>h}@X^EpoWAs`!B z^fDJIf!R07gTzlB{)?&p<(0$SJG5 z(21OMb_$H0yBm{(jX*!Yf8VrlIGrI_gNgc)h?^=Ga=Tw!nyK#6*NdM};FA{#SyOA+ z_frR9$WwV%S&^|+pVJXzsZ?ZOmJlf!k-fz{ZTf^=Dm+!6y_zjdRSa7@qG|U+9^Hu2 z$%>4IW`iQoim@V3CVIz~oEiPRfFl~{^&%W2Z>vKN9WSTufB&p8&j^$3q1?J77Ne>< z0TIy44NW3k`~yR=Af@U4G9~)Y7Wp2U@QexgWFA56MsDVy5#7Qtex6l!^aonBGe@*0 zAC`FlnbZ{XllTF9#9N=1y*n%I!*X=s0(vz+@3J3ykF~(BW5UinI6q+7p2YEoQ1JDRf9Yi0_`E7G;Od1$M26u;K(D0x%cW zt^uCmX8bRo+9%J=;Tj!I`3KzdZtmOQZzO-u{yUquwrg~Dt7@5WcqIE58Mt=y8BX@g z{qvS#n|+pnc^8U`Z*O>gsA-d@%8WB;G(y{aDl7P`bJUUu=u#kb>kKE}=)h{)qkj+H z4;2rp&{FpP&}!gW@14x+XRNBTyDa_MLQ>gGCAseujd}fEiB{Hdk?`71O#`E4hWG3OBbKa8G7bo&;j-N z%sSQ)lsP3dYp&Ka&onSxpWRv4e-vhXDRG8b3mjeQ78Tl*W_Ul>HTJJBv(V(;={38; za*+0K`bzY6wU0b~X!0Q2^7xJZgmlX%?OSgKl$&Q*MV<&<8|>&^4y=O(ts}NZK8}5! zpV%9B`&_2Ywj%n2TJ;@aa~|Ex9S4@5?0)^MH~SwL^y#?i-6k8gZRMDdb8#c|6-&bp zkEgID@GpJZTdGoD=K2;?^fXn}d*82r->1CMdd=p`%WZdIntyk>XCG2K*hG#Hcn=wL zZczRUJx?DHktm+0b+5&EKF}3?gj}^+_GV@c1R(}1s7<6tRSQI|!Nk7(wM>pa0~*ZX+MN0z&9>*9A5jz z)6UKHwalFZ8!oH6w|2Plkp{@xEe>ERV`}_edI65Vt8B<_EU+2#OVjFYkGs3c+faKq zvg2Q=x9gk4Z-FbUtoaRgE>?TgJm9gmg7qaaeW*NGRZ29a*=mlUofwuG;So8sWA*pUq+{P7Xg*#{ zizdIXw8ew(6Ny?tP<)665a(rgM1?p?dmX6#yz{;pz{pVp;=1jJ@xb8!IJy@{Cg1;m z;MeY*ZDtrb+Z>it8aY$#ggHhzmTC@3LJ}%EY|ey666r9fa!Mmbs&{h;Ns=fjeTd4T zgG!~6efRtQ4fn45zV^@5y?KC^T4adK7A@F+@xUbn{LDMjiOrO4A}|3uF|*Y=;vgT+dttSWA2_f>!HV zXC1^WrIV1cmH)MxrMR=@sk837kSm=(3I^>0eGa+V&bgCQ%q=B9%uZX?cbY#jhF%9K zs*hWc9@rg+=z|c}s=LDKxZpg&q}wQ!Z8X6)pRt*@`Fj)dIX-p%?A%hYlimCXg=hDV z=1sR=P}#Q4C}h)*-RRIy-s>M$#*2^Ad}7})jN0Ge=z39U1tCV+HrDbmk*J^_$@wXN zU8_}+xS|Vyq(g|iaxhNNi){V$%#y55tpd&A^v?JOb1gf=R z!676|f3fWaos(ps9#c5(v6T!w>#zZb&|se1iC7xS^X^Mq z7uB{M*#m=#U_y=1Ii4NDOV)UT=?xh;d-R(%CtxI8rGF(n5LRA<9fE_h8tHtVptA1> zH4@$ucpihkGTGhZ=A9YrEDw)C_*-g_kXah_)~T}1yH>{=Jo5p{KD^XFI$w?T z_Am&y75RSz0$z6QK7-Gpeb-l;u)j*Cb}8{LdHV6_01r#j+3%}eBEW783q~WP6y}4P z%#+f^>eeBHdK8gCrD3MUG@H7%F%&Up`@e9j<#%WZseFNkW3q$bC;%r-nwX_6s5xaFcy2=TTe&PQWe?mRGt|e z=Zo+blp?;F=dIiOO94hq| zaJ<=E(c0JXy;&&YmmE?wz3~c(nH=;c@njFP14&uG)3XfRlIIodn5-*2vGPTj zP+Uh>?oTDQUie^lAxr`#Rt)iP{;NdjJocImvre7j1tg z)}Nfp44S1jn?3e*-(pj!Ins}?cT4Y%$4_pV8B zDr!boH?V;1X?{jh_Hkxya>PTgOXg?mquzB6Ecb7JV}35rAH) zZQJ9yq3qSi_f^+^KaRV!;Ua_d!EW02NfPSO#a|ykY=*Z#;b~cvzcZO->e@XG+0;^@ z{wcy}!?-b}=S!t=^c;5YOWF%iH*m7x8J=j6b^|6BjQ>DTcw!Yv`@(@2%0Qk9FL;(reQ^ zQh?w}ySg0oOP;xeAJ><1hS`43wx3d;ZG}+2_9xqpuPgAWVyV)&tUOau>cOIEbavbD z^%k>yKdT^BmY0*A0%7pExf2LAV5^g8JgdpIw;^JeiqRDBqsj6HG@q&7EIW9TCx$_` z^r!Xrf{?@ze5jxSU-bw{y1RAtI8xGu4-Kot3Kg?{n2wfYViXO=Hwz>M|=c?@KvmLeMYDjr$xmPC06i}pJ+jh*pvFXCk(RJjzNyly2a?i(imKbd92a7?7wB^( z8{gmqhMlm|wMT)aC+-h)=IOd7L=LQ_%q3SUzY*W7?R&M;pV=P%xPA z(c`J!eWukia59XqwfN|(P3EEn0(SRd|129#?$BE4C46KMvViy)?;79Fs}!c*@EGYS zMl6qxuZXp{y=)&bHGZe-=rg%02(gliai=4PUJ?5EbH@R;5Py%Sc%u)1kJA15^UPVk ziAOhDuM=$|Mh5wzkI_k7GVtO*B8lZh9W9vC^mw3^=O{tcJw%Hb2QlfYE18%j{<~QQ zsi9j5*jz2~>uqN>xlR-i|VgLJ2 zT?CTYptu6e3q4PQbDLCfo`EJ20qgp{g{+o#^I*jPmt1)iO|2dQ{V{R--j7*FAW0iDA?yeQurN0PpiHBU%@{jYb&K&**BDA4>!?S?Yj3GK`iwwBiRH=5h|M z5bPg^X^%WQ=EZQks0Ty9w_LhZC|$+La@2|SOwR4>pTutb;ig%YQYeD)iD`=(2nt^O zxaqP2A{~5$9U@m`OsbDnF>POWIxLB8f(Bg-1{Ge5sTy7>ud}rJ`VE2vby>ysxoRMY zXGi3j&*Yi+F?HBptRlD)e~7xwf{KQ))n2VNaE*^*Dkao*gm2}5Ws<=j8L9$ZDzjl3mmcvk zbe*7lcN6g!M<&*Ur@@O*7M@~u7XV=xqa&qHUM!c!&~YCi#!jYSc{p~8M(zVB>U8O1 z0Xu47Gn?PP;*E|zjT-9@DleMXMooq~;Xjcm7!)x(b&m zu^Z_{!g!d7u9sDvHVx2d6|^4jl2XgE7)jO8d(@5L*??!%Tox^!wg0UQOl8~nYo_%G zgBI0q%&RF;o4?2u&)~B`7}Lv08@!eev*Pt*Wuo-VcKHC)p-W8 zPy8jUDuFwq(+pEu>18@Hbrxq3M>^&39gb!&#dw~bW6C8xqWxJ-N$dNm&J-at$Y;52 zm>`AFt)=%ymN#*66G|2%0$y)vZ(pGskG@;Z%{7^?;>q@H*kqRY$4i6mw! zk2o7yxG=v$5AhPN@=0SAWYiNBCTG6L#RP=bWK-`j* z{ynb)wxWi~1wUQ1 zc{5Q9QxXGIc+l+7T#6V5goo95Dh3R|)1`PiO4PqydZG4Ype370kMhWkIN9bU=fXzL zD*lY!&qDaKXs`%Jn0jssp2$;;=asqx^;mfYqhb!i;{u7NTEc&Ga~x`0kA26};wdBg z7)P@*U!aDNvmJP88e|X;tnjpid91WAaK~V@9`8sETB8Ye?>OLPQv&+Cks{ca$2n2R zQJa4(bvx&u^AC6AL(;(odzAELR!`snC@O`N8}QU9FQ;0KD@N`$NoN%~?u>UH)znMC zf)N9_cF&@9PWKH8Lc!)u?wi=dQi~mYA%1u;n9T<#y8jq<96FNLHo;D$mt;lz$3K36 zdxG#AQgQs);nLWxa`NjC4IydEGvhHdGNaS~e1s*%n=u8vV;$#lueMy-Q^vIDbBbz8 zK0fU>D+3!C*n*3(^_uKlDh6eEOG{r-i zkK@dA51D^=T5o)4gZ+jpD=#*&t`tOY0|+Ucus z5@#nYZ12!KZzN9)I1>_>&;L|%#iTEn6Ju(V4cAz2VJneTVn@>8K40l$bSG`~!%_d+ zEM%~Zc_RspXgU89|z*v)D^6>Ilip|JlHKq3Q^L2Q;an9d=W;1!j}O z(2?Z@C`!j*_{1vH!GBZ9^Go}_lo)IC82GiD)~eVjL%#~vGP4-!v)W(A!4abl=^1$v z7b;Q5lWoFpt;&C3sq=n&d??QOaRUba%7;Y%t%J8{w-_;Cv=nHiE755}C3bgmSnFTg z_`inqL?am4Pb#v!IeO@@dKTZl_%LZd%0{dHFLE6vsxt6J3wgX+c1+)U*$6|@J9O)Z zo(K&yNP+1oL>k+icKo_zoAB3V)LH=?G1uHJNwtGO%KFA(Bp7y?xNi3X&^RM*AR2thsWY+R#WC(#GUkf2r7=EsZzMwPd}Hu{wVl zKKt9+?>3Cs=>~p14P+!Ht)+bYxfE=5^#1MZ`3y##k>ll1_Y&=791m)P;GW&E#k!iZ zpActf=Gs?D3Q2{3gFr+lhI>;~5m&nTh7NPDI^FJ*3{3EWrU>W3Mblt;Toj^>#E7Mj z6prEz&xrwv{zYbO3xSvQefJOFuMV4Zq2=Xe$De<)wZAP|PY-`)sEC8%;sqI=9Q(*& z1A5)2r~fJHV0;cA@NZ2rf(hirGa05k?z8W?Y5&OM@6hW57CZ?s;I3-2u_E11yPRhK zP=SlRzi5gLo{q%rP)Q9K_IF%s9ry6E)oIK9BX0k;pK8LRo%jclndBW8k1Xwt-SEWv zxUqfnv*;U6?wEnY+`!y(THuoljJbTa?;zOvi1 ze2rO6Cq4Qv!48)&SoiLWiS7t>y%Wyj*L1d277fs-b7j89Z1}Ot>g!y6aivz*`6}&O^T02Hb#2yyBIvB1zZ^5D1w? zSdf7~+9r0tj8I(l6x{j5^sTR4o{-VA7jKEtJXV3p;I4!cEOH>Fa08tr-Jk1=td8Iup4x){PfhsT$#I$Ff2)y$8lZ>ygTw zb-4dPRtg*SmkaR-KS7lAu920N!=|d}KS278=~bJU2Zx$GRDf~$n-Gh+IULNa?x{@~ zV`;8N%44zDJc#UX9H_ksO*{F#R}ItFj*T4Prj~oN;}b?t>+0uI+=ObM%;VJhw(aDkWKjVTj)r)Y_S=fIC4AItQIa+O&jSrOSm^{I#%Kqn||%?Y{m>Z82yLd-maUVQL* zpmS*qg43)0VpshY4OrNu#91|6u)J5}+I*8cjj{U<(l~%~%U%Ca%2=J2tGyD2;@OoQ zqkKg!($j9vK(=D{8GfG9Lc`5B=NB5yD$YKK7cKq(X5A{fz%1z+JNqI+F#IsR$-FB! zF>^Lm_J0ZwLrD8>a87NP_jG5=fLZFmj^NQhnLN&kF+R_OP7>$R>;lL#8yYXt5mtZ5 zlmeR5?O)MXt;`r+y_q4EUo@#GZsw5lX}uip60%87=O21;9)UW0{C|6Xxm3ZA5jj`Y z5BEL2dLiQdOT9wxS=FQ0;;BS>X_A#{h*q>y@bNRr+izVxAMI?|>wQQ$O<(Ec$^+Lj zpIecp7vlR%*N%L^bV@F3EsPg5p7>+jcWBm(kMK!d)A4N_QXQkCH+kuC%g!ovPXgjV zH;iEO>cok&3elw*k;|aLS{(A~j~=(#e|0K$lBqu&)lq`|m~Q)cA|(IW^OW5Y+%(h+@ibcpv& z<)%AXrIy26(P5OtiBs5S>cy%EZZ0A$SOX{Yu%(JpVj^@gr3RU1TiY_@svuA*+Kz7b z&chWoSQ_6J+nK{M0>$rbOA%Wb295&Q{1^L617XChf_xta@ocTnJEI%aj^92|aZ}MA zle1z8u}A5>&Q-)iPueh1)3rNQ{C1Di0I{}yV_1o{OSrjng#7oac^jisSKQQeJU|dv z?P6OP0|Q<9603OOH_myL=_o+V7M`8+`C#|*wwr%D0%0Y%D*M)D%h8@~u=%5pS^3!t zKgJYF6@S0;{Hf}d^>IT9@?J5dS$*b3&AZ6=MpJ4wpaNQK>N+ z?(8`KG>}KC)~beU4rUJ~{ztlEw)2Di&aEJ8`CBPL9uRF}`=?EOO5`mKHYX?)AT0_m zTUT>7pEcT+H?(xoZsVT4D$LOg+DzT(-T62bW>2yCXl=04LO>JBx40#ov?1>CXpNUF zUBWn1DpSOOI2xBPsXr!ARD=pOSE4Ne>q-4Fh((|f{scBB`++0O$aIXr11#^1w7~1$klgkO5 zO0-J6lm)h0$b%x%qW|=d@!J(j4$2mX96E3GzJ00b>DkZm_my83;e$2%`_pVMJEbYDgndvv{v>sw<*Y#X=X7Gxo-D%E}}95ky9+UK@g?b()_joZeA zc;zb4%Bm&;qXy$CKvy{rI)>C>)=7Si@DNJ6)nxdglTHVx{P51zCaW%e% zB5dSnlw4M-aiZ1i$yF-5qE`QKsik&jv_WXw0fmA(R)sJxW+}K_PU7u!q0p{in_ZDU zdt-Ro#ouB3@2kK08nZTozx_)F;igb#)XLj=)+@VTY4S6w=Fr5t1F6~?Q#&hvIbCWP zO4&Oz^r9Wc>qB78{d@by}i69&zov#^I< z|Klhq+NR|vPGk|zx;0$5>M-%5ACgCMm4ADsF{Et;t-*A?Hz?x|fn#voWBT2cFJy&; z(dFm2^WF24cY;ksYT;X*bxI9l3Tqh@%FxyTFUFASF8q+y3x11FHIwx_bB%FPA+$nX zzqRQRp(su1Zo`cBZDU*Px-;pcC9^e2uVM2cGiRz*(mw(7^2li!nFcwD<76EQ~ro%bxuHKRFuiv5KW&T-uK zM+CRBh=R$t??al#-aa|Q#jx*+skAomjBOj$KrK45VlH70~OqV$C&yhWW^<3mrnWo z)+j~6BzkMrs)k6;brP6=*bqs@)o&20MbrboV~);;bTkaZYt@r zAPjZ|;aWT+HsU5P#ayO^*<_HJyFwLbxUevZQ0^xgC*|XE=nGqQQC%AG7Pwn`) z5xZ;10fI@!&&dl;oWP1nv~-w8FbM%~;|y*%z91x#$1V{V3Q}VrH~kubee)iDYwvCY zc^92>IV%cUp}d5{ll@7?XK>+29@{SjBeT{LL6?am!yeO(6Pa=YZyj}DO7`G&(q6?X zI)N$-z7=vX#UqC}9}_UR+aztr5*ZiKhcEUn!Fa6;o7tXG6{N!;jHSaxW?N~g>)EE# z>O0n)CD+NzT7_XR#Sp$on#OGg2S{8zimZc3M=--+MGx>ny+LYJ*OZ9ee&nxCl)W11 z!dfGmaIvFkI~e!Rro^$HnWeC<0Z<#Aj|XX^NauMU;)q5L(fdr4trMOR^*DH`ar zVv6?Yw+x+nAA#mGNbN7?&t})1 zKQq8{>Gg5fQL49yTKsqDRo0#lLnwx${6IG$eR z%c{w3@R#VADIvh7$=@R8cWx$NPhPN)%l@WsDk;<-uLeV=#z?VcW;S+UvgXYLB!<2; zqXSb2Grh~q6zCB5uRjzfB-Ua8n=ZGMFH61=Qzx2jCV*Lei_3~S>`98sOcD|CGQab1 zObvWfcUlo*{flSA%Ac=@b0$`wPQRX`tP(fwtUKQ#+u&uo+0b;;p6YjqI-zjEA$!nr zFcf_vf8!d9{@33fAPc>|n*J-%r79!LcSDTzJ}m1ZR;WJ9p2TMPu(e0pokrMONRIYz zS=)*ncZ{(8M;t?aoYs+?_Kr9mAhFy?&WDSf?_GCFCUH`WmkJkxP2^(oq1Z=q9Maoy?3Ybt=*F`3BtOJcuv9F$BJBEcJ+@5)g#}C>sSDAR)eoj(`7^Qb$Lx2ICr0Kw2|POb{9Azzpc?Lf%f1 z0d$w}RRrxoDK}OJTLQzrsq0ck z*mZJ^wXvDgEF{d*AD;w>NgzW3OEn-(EM4lr=}l@A=;*h4fXqcebU+0A<#x z5_wV1O?IPw{=MyJ!heKt}&I1NI^nrWFVLUPITZTls(UZ zdi>1sT*P?;(8Ap=-;e4R57bHMkcJ~VjRzpE0-h|%XToNGL>@m2=v)K<5D-Trg|c+A z{Aq9oMiRzBLfWjcw9#|N28ajSj$m}@V9hai_5UYHmrIi*ZSfycC}d4jvF0vH zmqU%(`*MtDhE{B?`Yza2Kn@=cmK*HV=#JGo<}Nj)AF%^ey^woD^)#=Pt7*x4RWGJo zm#o#CrO1%En*IEIqmsQrp%`w5jV~0b9zs2Wjb5FKGOrU5<+P1(5jkGgMwL3W1^v4vr?l>59vtV4UX%7s{?u{FV4cj{q>r z0wqHKC^9gb(jK#(0Agy~9{gt-PzmN~tE7$tK# z2}08I(z73qL`4a~;t@Q-KgAg8s;gCNnNogTPUxS4y4QC(9Qj)Z({L!i@zYZ^WeTlq z`6z{dgS|}?F{y-C^0IB;1EkS_lU-7zd4&=Xd&_X1A`{DBGZL)yho_u&qOi!F%O; zg!JTx<5xRS7?3hON73AK9wt6}-0{-*71?fKvf~KkB)bx(4^y{gO#> zbo{SPQNrZisui8*h!7dnwQH}Ry{1$SCM9Een&R5}Ur~7R08tJYspmg&!p}TB1QQL^O)`#fdR1SoIe^L;jmaiB|IH^6s+l!|eh z<>qgH@;;PAzT)u>$;nEe66@_#yQM#45%JrTn|J*BqRD+PRH*%`F$py#se6D0B~?cH zTA3`!w0!b~cKEEgSxM|?@>f>*uzt_vrnmd@zrKd)EEBX<{XhN$n2isQ{ynJqBFULM zaPsaDb~5k5BycFZKB3l}nefc^W$xOYr+1g-j*R=u1UJ5HOU4Ed_x6CG-+sMx-UD6~ z{~e%qBqEjl?e7t@&JvxDmaD3DsRe7~lsxaJkgCOD%Dg>A`o6k|%>Yx2IVM z&uXvIHtO42?xQ7X-zAM1N-0-AU-&l#7Lqr$y@D%1@ZhVn(LD_HzN|e^lX?%o70{KJ z{!y|W<=&4c;*LTQN-bv`K)=)InHOX5!$2BB@`M`jd%IVs&Guh*qO&{e@^vOgR{b2n=RI^Gx4#cQiM=RgH;k0S`aSx#LuEPUbr+!2} zX5EpLe0cS~sq*>URbQB2GB7YmL<>pu9rY=1P%4=zvA^b@{w=Zhe|qu1;{08(pgYli z6>~5kgXg9Ecl5yejsExiKs+6f0(|>BzyK3{$>ol$8p3qP$AQ$_*MbHg+__7Uo~+%6 z*W6!em#p65CmiTa{CfFZi3C>o=*#Bnk^bWS6GB7bF_*@S?5+IP>ASvr>J1ezms$zN zCGr1TsNwqX5mB$({1OJw2koxApyhwP2UhW~T&n`)Ti$X$Ae>R$mFjYVF}Z#6%p@ot z(cc&>xmH>-@|vg=@a_A##2>G<-Y!Jvl+uj;_xeZqt#yB^=Qe)-PKSB^sCP;I>=jt9 zL|(-%|B~Y|Qjjn`9|JD8E0c(2MrC_7XWiF-yqQEF#l(pIer{S3<$Y;f{W)Sy8SgdnHM zL3naEMqUQi8ErSq9YTbX;(T@~7Tw6-g3;fa?=D#?NC&toU5KH?{?@g*(r3dN$q|R2 zv(u;PC_}v+Gq;sdCcoRZc^q75+eSzJ#0Wjj%Vuw6g7KLfo<>naH$3fFA1h@|R;EHT zk~U(9E9)Nwnc9VBgi+G3>iPaJ_mrVBPo*ac$7nx!VXWK-+N_ngf=E1{>& zAidbr$DfXL^-$eEdgpD%xqIc|=V3&87VM(|?|fv2L54Beh6|@z+0Y=Gp}pu+^H~Hp zlkHe~XYiC#X~7^tvFcf-d4Hdp3p8r5Ezcf`V&)(C;}`v7G+?i$>izXUD0H2hng||d zu4-Ez=ntyv-P~Uky31(6#^1xPm18z&Gx%?E@YFg+)5i??%MKp^(xg5Oo*~C;hCR%C z+B^lhR}#FmjVe88C_j?BwSCc0o;emX?3YuKW}LL{AYm`x9;Vh{p(uK zxp{wGQr!ZI5}FkrJ+4>Uay;;C|9m9B$Ufv*$LE#rL(c2ZOFr)V)K|d5|F#h9v6~|m z`tW!DSo5XpJED9Uk@iMD$0cyL^1b2S^^%pP>+ItZKR#TStggH`c~VNy$sSx>b8Zsf zdt%p|`xk^joDRY4)nI7gFLCW*i+yEKRl}907r&AT^yqskf3W(1ri2S`?>Wdn z*>VcZWNjaAAA1;X_q`Op^1tkP?>spggP>kU*L4xBv01$yn||b!qnA~Nl~1P!!Atx| zdc#74(Cwj|54LkYJnM#QRPSX~=Vk#RdeiVe2~F*e;C=qdsLsM6_Zp^>T@PElUvqSF zt*x3>+R?>NMW*rDvc-E+GtxZqhwQ|CqVzU1gQ>tVJD!QA|5h_$wC24~7u`GFd8}Zz z>IAWa5Rp{F$<>v|(RL;!dJ$&UE!A+4(-M`-&5UhZuWZQL=i<~YL@d;%8^+E}c<7nu zc#yx6zeiqjDoJXnI{%|VJ81rg-OYQ5L49g5MQhugQ6iM4fAkr)pP96mTq{JFTD$Cq zh}q9O)%;FGUK{^Rcr@0NXx^lm4YhqMe|mV>up~xfZGzQ zc4Ev}r0b!+BinzqYid-!{AqSNfi|Tz!EsdnIYmeg3)Y+$qV@aB^*6rm)Ebp;c-Apa zzr6SWKQTLOoOboW(IS@I%8Ca5wS-{}i?38)pvl?Roti+|t29wGoNWuUPa71i!-Z!J z+x2_P!LLrEf6zm8-h1Z}X5-q{J-lk=*I{_spcz8trvYA|tgOr@?Qwypx%R-c7VALn z&GI=1S8+z<$54_cwQ1v|uu5h|7iTJ7bP!UdT>G3u*;o`+JNwo?c6m_0z+YP{P)_DV zTgxWT8|Pgtdv?TkX-SiR5@xLs(JC8oWdY9C1mC=bs1VXTITLjN=Kd`!U*p1Cj-GkM zK-`5n^gGUW%a((Ky_^m?@|sP77cU0gEmgimN=Tb%OIK~q5@^@xZc9?h ztg7oooxH7wi(0O0lxC;je29>Olq_p}bIKch1X6J_92ywn|Bf6YM~U`jH{VdUGMU%r zEH7_15~4R=$kL6%Gw`b%bn0jZ zb59sKG!+a;LXj7?I9l5=f7@}}mli)vsw{XDlF}GGdYscfAOCHBbFC6C65}!}WQn1u zy*fZ@f-Z*0=?e+^BGUyP;*~DgFogIFa21L{^TDWjUhvmj*d-D0;S#E>2>Z9miUcxu zhh!zqWSmzeKHM2vAST!o`Co*LSTmW~Z*s{(-quNi1`VFs1P`an8M33lo=bbW!D(U$ zRuZyTRA_rQ)itgh9exHpLdQTn9FfI%C&mFHeon}cDrR#}6=wZpFZs%zVfl-^2+fn~ zCN_$rUIgWMT&{&o(h$0ghIsEK+lt=jrhvUHl{>u%Pl+fciu*g7%q4hcq2snlKJN0F z1FlE1|0zcQcSaRqkxsIv6V2A#Im7nYLzH@wMSNAot5H*m+iH6vtACs*u{kyTY~Rg{ zsF_p+?mKz)mW_&6i63#u0*n;gOco@s4?*e1 zm#zUopLhD(15`4%P_Y*6EhtNhEii0BQ~h9FOfn__Hsqq1O@rwWk>S7`(y=Pz9>!+r zGg+W=2scW^U+T3oN8u8~UCN}*j96H-a~VFzGL)pv=|Fjl5%o9VKWt%LI#x*Tp>Q#3 z+y~&qsBii^_nH-GPGS{>Xvyqv9iEF~GL5;0h*bnI#9^kdS;6oFMBtEA2C`glM=leA z^{N+}U{b#EB9?~0|AvPXFPe{Tk#N)9>2k4v`Z*TYAxN<+JU)uXVYvh(sFu)oA}CPh z3t`0eGD-_Hf6ySDei}D~uGtE_mK4rnL-Vr_b%bek+}6hO<4*rP_u2x1f&3|U=0~EG(zvr)~yL3mivd) z(g>q;Y?%O)JZV}h(U~u~(k)};hV(skRZ&@Fo~er*#JIN_c5NKN(OPiapIDqi0BeD>PMe!Iy(ns3J&za{Pb zqUPavkl2y6=9n3gxkLmsh&Yt3;SGMb`!R=51o5@+?V_b;`<%@bkz^Q~4~VoNh1iSm zAr$>!k+OFaicyK8z*zF&Fo3iY%ynsCD`L}81`JjYdP0b6#7Pn_M=}j%q)#*?%Ogdm z`wtor7nNnrV0-&TP78LSVen}3)@T~guq0AKKw}M+Oa$anluYc6e7J$0k^ycj>YW~7 z3Y-Bg0E$JYdr3E(;7^B9D52Ka)|*BffO>+nD^ceoX{~%5dhDB=q>^g;rNGO83wWK*#XnTCLqc z%80#BC>+hZftcEw3V}yVWwOW>M#mrk6ln`VyjGWYbFA4pYXiX6 zi*nTOF;ZLs;MDz!F+T3TTL`O_sJ>sN7J4A8gRcu8Lwa7jNhoJUed&qY*a#+3N)c#XqmRr6e z*b{qu@6$UWi?_H7z+kkE|Mo8bEx2=Podo99iU#s0Zjga!oyj@kT9z-jqZQ4w@u;Up z69HjpE%lDKs~7O1D??s3tS~TEA-%IAi6$MM8b&pG4o45Fa4pxHm>Ia2Bdo~8yLXg* z@rki!&{xtylVMVn{{05hrc*Z~hyHfQXlRWr`=D$w}bljoTJscrwApMHWS`H~gG9Q=c{3Kfn3 z?z|5*z<%g5x(^6J8u>nxPAXWG>9CZkoix>IKZ*JZZ^Z)JIBgv-*|{ccn?MU8#`SyY zieI9Wc#0d7w3CE8g1K6fQsKegryI6&ffX6CuK`W~Q0sR&q7eSf46@Qa#guwvX5EdM z3cicC;FJvz7hsb6wjIfTYqV`#eEM@D5l7sv)nwSxBhM1pLaF_@HB4E4r}`){k4Ak* zL=@2EDgmI5DR2KZVOSsN6T@Yp}P3~2*p!&ofL95kAk>T%zgu!6BH6pM~Kk->~ z{_EFM7E^8N)l}41ldP^dxpK^tSN;GXLGIf9QwbpU;-&rfaXip#Zvgw-wA&GOxZ0kN z)Xa=S6X@NpCd5)V;sc)wacPgkhI|RR>9BQvO6_4A*qP#GcxH&HuZ7HCOJeLg2V;6{ z4=9o>@7pZ}6zM(?w8!y?XLPqh-zL*(>T7d-^k|j72=A9LhLc-J7 zf;rj=%N=ra0JM^E@e{K1BJ58dcp@M`AudotuSvljAih<7YA|3w*!5RA-wmkU`A^9l zdsEY(V!sXgV=MZC#sq$FIOKJX$OJjm|FoIjfagerH_^0pBO&0*E8=$?%b-Ck!MF_! z+@CB6ui%UOGPYCe+0{FlSxM*>M=O}^G7LwDWEDk(nMFKB7xh+so&JtjViv~X;*dTS?TUC3k$ zaK9s&-1l+i06ANTIJVUtfkjdMgrZ>GN?`&*vJ?sW_g{~jj7)X3ew&M%WlGy4cyNWfN0U%sgy;Wd=jIEvr=-CV) zsc~#+KHuR=WW`Qm^Zi0+wjP8);@f*?ykswOV=Q+`Ln8=fvFaEvcumC#lzcc*KyY6) zCfF!0aHWVhF!6i&-YWF-(6M`5{P-mHfj?o*qOqwrkj&}b-{_#Y!vRWRV8RMC;6f~1 z_~3g5=G)x|nLAL^3wP>UsG($#=Cw6B7tE2-+#}}aJHmeJ5kG@$S(fRLi*lkQuZw~^un2{n9*-n30uSdjx7C+j11Drsi zN6%?(4RfD6h)eO4zvxNyp+C8N!pFr8goru`$8Mm-xI1LcLzTKcv4-}s_I?3`Gl7I# zOz=N{0+BcV0DuQCWR-BZ7(F10O>P$M=m4PwvDE%WU;kYB5E>g=e>?D%Hy}UB|85dI zx;C1qk=g)%6au_WS%+~Bqs=pWhJH#uraeycz7su!66?zE+5DfeW9y@D%GPc${Ky1d zV>bH4^0fVb6B>XK^b5&_e|A{I5^y0hu7GIBd?wpLhbHLzEZqpnSJ3ao1_dI!0la%H z_p1iu96}!HsQw+Vl$RRPBkS$B!>sp7yK-^Ye5)C;L&dJHt#RvvXv=cqVkoh7cQ< z#V8sD^@+-*C0||F3!J7376Plx9Vro4bRwiB-;c9R|G(s07xYkC^34ucXg1sMefQ(i zsMV(_Ki3z=Pa3!fS7*th?nn1|aGaLAiVjvmLR8d~fACH z_f;S;t6~Sj23Jmh7e9tJF0`x!exJQry{_!@v84Eck}7{~y-(XLqn~nu7e3?d<6}k< zj54j5SJn$ty+>Q$KQ6uT`E7vX>A`Ofl&^2#H^%UuEAhX++$xWeD4*_rkl&dWypr0K zdhajaHnDs6ZW{X7@8#+HlEYdjj<5cd57R!eBwwY)`1J1FW%@T*&E#enbyn+yF){1S zZbi?C%ecVq%-t!rMBecJ@&qS!W+~%GarpS2-m>lgJ+!(QZgh)N8Q!GN-hL_&pwD^) zB9yj!#kP#8Ce+M@2e`arz*IuX70pVBP71-@N_p&G| z>S2#oG4iNJ_W1F@sxtSvBF;IJ3X3;KqVN<}%E}&tDPfAT>uh-jHD|UWy)pAL#=b<9 zf|E3O1rv-hX(c%GEP5>l3QU^YEO2#A!55xi+j;C#;h!gR=ldm#e0<9MubN|<`?$3@ zo%rn({Fzm+lxll{2x_q9*)8xtdH?B>)A5ObDo2bWqi>Gws^66%orI&{-)Be2=Or`G zIw~iN-##=-pt+paij9JLwIn0unW_n6W$9WMzuv*Bi~7nObuNxJIqQ90y@CGkSLdlJ zt;Nm`lz!RDnLZ=GaE6OsdBV}^yOP)T2kyCd+RNMtY}wzVmDH!6-Enc<$JqPw3*MP` zk4G_M3(U&;^zOMg2F;w?7%uP#~cc@;Vuy*tu5L-iihdqgb~H)sAI zMR)zs)cVH({5cC&Fh)A0Hp&s=5Jf^|gg6is5D*Y>q=4upy;#>Xx*Z{cgd?TY5ek?i zL`p@kAT0>!2odvwweP1WCu`hZ707eA2bh9bg)&E z?kamS8D5mlRC~W!xV6e?IN`zm8JCIBb~4ON^q1 zc=j8~z>o9)-f{6KKFl%V?0IvICR?)E4wc7}9$!09(q{7-2%Ksj3xPYQq4v1>TtN0> zqMqiDOE_f}VZ4H}22Foo%D>pJTD%%$hjTXmkhPzzko@@W?oXG{)d>0e(QaMYf;87k zHL21X)??Aa{~-`AQ^a6BR$IqE^%j?}70l?^IPr;gocOK3_VZbSRBPFAIi+F>QKq9a zMw{oySfOBqhHZFvYd^_zG(Si&*n;RLE?>d$!yNu}Np^3zjHFlMmO*Z^HA_t@h}*48 zWAl%^DpTwi2|_;E8K-{D$=fg6?5HctJnk~5I!wdpm1pk=3`T}8aLIbFMl+8G$6pF| zvDsOdoh5s=TrnNxrE-s*5nUOP?&-B}ygxhRC}&Q7ind>;j-rwJb=$u1;K@0}zIHde z)yoOnpA)_4waR1(oZe5q$~@noQg2(p+0m|dcMGs40;+Um+hMg%e$w7vSmKHOoBsKs zL2Ei&G!Gk39|KQ!Hd3X{do5(Ms_)XR**KJXhm?B64r2KY$@^y2EBYj~OpkuS;zSqC z?zM2228Shcmeuu0tr2I);hL{mrIrh>AVnB8*93cIKk<5b5ql`!-Q~5p54A(?ERXG4 ziNg4PlHBTysPIHlp6nK+9;LrX!Znm{p^0@e2RW5{^L$YrKNwlxXXUgL9_yk$GbHOy z$Y@wE(M$!-dOjId%WA<6ufJKacT2IeQ@G+z!3Kvo(Q@aTRj^%TagVQ-*|%sr`Ujq|z^j_RO5xu8ljm zF$F{E!qFQmUq$3m!H4#u0qafvM;zPOmx?TKwB7!#O}{!mKfF2k@m$+wwC~h5>C)Wb zeR_xWOM3fc&aQFg|5)IRDfY*OqBK0D8|Krry|1%14;q_Ey@k7ZMzr!y>meJ_U(^#( zH<0d+dMs+sX8N5g2>F4sfxS@uSLvF*nsp48zMV@3XCsAb3nV$@h#V7#;MKFs7-8`aCXkFt~>cTqzTtEd;Y# z<=GZ-gY887p=Vo5b>188q8r*9Ul%R!;W|tk_Zwt~WB#pf>yEhYbydMKF@RL3Ea-ok z`)r4$|2fWqbEb#$|1i)GTS}JWvSQjBZPlKoCPd|D#=Q3;%dE>i+`XUbu-_lC>(;$n zdr&`$&(5gG*g3`#qh}6@*6T~0d%Xt^SMoHiTiQY;f*umKh zbY(^V z3ONoN6Q@!DZz(f18inhckwIKjlc6{xchK~h)E-YF8z)!>C;Vb3ps2{a9$3D>?0rYV zPJV(5InI_w+QUx}gAzCOQk<9}d7bP7ZOA>`gk||86gz3BBhsfA7V?wavFyl#g!fKK zW*}L}i^IJ@?qnq)JCenq6ud!#-Kgq`HWHbc>=kUfi4mVATu%`pbDRR{99n9L5mZo+ zTF6w$9Zl62Ra|CL%Z<}2-P5W?k4r&XU0YhiXxh#7G#)v<$vC~mJ^fB>dRsyI-L~}m zqv;RV)A{6#PUDPj_l%y{jNXEb{e68b#x#X&+{d4HZwRXOT^y z?+}n%Lr%AWWT_%0BtTIL+S`E@M@rcdlHmX*CrjZI^7n?0GMu9|RBYOgxoC|*4A~>- zkQ@hlxea&3B(yR$TZ2Q)ahIs&$RO4ZnWpBP@{pJ&<7~Ob9t@Nj9n#=nm7Rzecoi$S zq8TiB`bE-;b(wUPXiiEKCgh|?6W$bLA?Q`EXD_2TM92?O#8B|QT39qz&2A(v0MM~U zbP~};9*A(yJ#0hCdWM1n9&F+exsinErOY#n#T~q?ig1FQ=z`Dm21xVFjWxW zxQlF>5!FeIuGC4G_2m*kk*Jv|>O!r~5Qkaf%Pd~~+ zQCLBjoFn1n!fU5^4Xo5Gnr%~|&{5RIAf~oA&2zBZe(u*bg;bZSt$%I`b0jWTGn3M? zXo|Sip}?IUoIMICE)CHGD!HS@w?HLg4Y^1GW<26J56`dzZ#%ac-zCOtTrXr9Fw-l* zj3kc&tVq|vOzu7oZ87O4j z^WD1oi5$jH9OeNY&^-~UJj~K<3_862>t>DUqUuySD&(`MUPs60mZy&G@!gDOL}!0$ z&wNurM3@nIlSE5e){4G=1f8kWjuVk(PgCor-HACgLg>-D_vEzGOSox4&ho^yRRUp(q88@a^5>rP zrlM>YBya&aGW3HY4Cy;p^vcQ9iq`pgb$b{H6;nRi>uU67nNy3IU-@~hby-uuZVq7T zYcYUN7!K#pwqLEgN|a;NabpR?eAF}p7hgoQfcXb_L=>s`S7E7cS_=|N<3-ib+7E61 zB&kWlIg@Z^JY0;n*t$8#JNi}I-A>prz5WR6;&Fnd78OYhwi3msHFK3R(7Yq|JK!YiYca_*W z(vA)x@)*j)U}uM;L?Mq^jVI_+Kuow~Dld02R{sm{!92fM$RXYs$JC#>5$Vydc<+Ht zd%v3ku72a1@ZNx42T!E;4O4hpX3s+ASJ7r0kWb;=7!wq4 zqhvm};C&-VZT*Y6123vyaU=5!g+Tn4b{=V0U zPT9R>dBpJeDzY?-=aeeIf zxl8_qmjx*!+sDR(yeDLxz&j>jkaN)7XQa?O6ExD@DJcYZLRgdeV5?eC`lOn3fe=id z_&u3)vXF%@%!RO}iOwXL;Wb|eJQJ%WvJyXkkGn+ZHbbs{S)PzLH3`u470WCWS z*lyzH>TI|nI9Sd4ajiND0#{kv>$S>&K}wbQbRR*HJo^4Op3shzE=q0An+fcxb@rsyyeo)r;b-q@&u1ilGEdNPfwOF&XfVe?{5?0(g@r-1O<`GuW~^F9B+sTa|t};9H(RomI`ALv2@6sOFVO@ zKZe&T0udHRp+cW5+!`{+z2J)pw7RsE^GtQU@7f~PTfqdSW_hnn0;s~dZ4=i}jAbX@ z0~Ckz$@A~^GtCI7W3d>R4M{oUs=mfT=4*v?(M6Qv*t$1gj)&7*D#W7Fep46Yw2>1N zDJcG?kUy)f*y|RH#F%zmPx|#K5t~Ue{>rJAGRj??x!gpT%+r27>?nERDshiuSI?Q6 zT+i%Oaa)mjw@e|R`L`B1VA6}oK2mqlMZ%2E9Ohwej!VRB;J>XIEr9L;o$j}7^+90h ztB{cPRJ{S0(EX&Yp#N_DNG=euWEW;`qHC2!9rkP<0?mC~5zcTn$(z-$l3|HqGNW2& zp38(ccoyCSyqguITUEulbM(-nwa0^=mvKXPtWtY}!QG$L`l}+k!Z^=74a7 zTu>j+ny33p07Xv;cMp(F8eVpEJC~W0I*59=j!du2J%7_CNKx#oKIrE?pp6wz@i6;M z@XKrXdBn6UpcrXfb2RYm{y3j zCx7;zk~|movJs+(rofTI0nxowmaGZnWCIDlNW%B1R$2`MmQq&$0N7v4TJ;mgdlqYW zQgHovoZgaMr6KZ!*Ik^37~aus>;87;oO~rA2ia$;vkDrPo7LIvu0SX6=O#A|n4ax^ zC#*27?-5$4W1SAMS}z}|R>)VX!2yTkPizTd>ePda7*(HNv7Z;7UVAd_z|e>sm*27^ z#K}(H$i77w2720})1gGZ7k0xYlZ4!kNTwL>0XVZ)f z{4r3|s78gVkq0+k^^YxX`=e)(`Z*3d6hjTQZ|j4?e!bHJ+oerZC#+zc+F}I|7^V8f zsp5H;dR0U>Cl{yvnzvmJAKJImbrGZxw`OzWpSikS2#_0b_x`;fc*iK8Xm#rvkI`#9 zpLr@S@-BPfh)M_=KEjG|tyVhO)a82DT7Erx)Z=#5voY7!s-32PokRb3jnI;@!)w)3 z`oyGfRLL`M*Y{PeKIc9@-u1@uIJ$MrXCK1&h|ie!<*Gw}WxC$IG9%&6bnn>8YKWJ( z_syI2S~K>jisYZxVb8=1M)M~lG~MAqwx*FOHZEh=#9!A>gm{P|U4}8_uQO3&GvDfioK_~`M#+BlpS0~AQ}rQkE{F;3eww`BLYq}J{$|JHu;{tyRJTH z^my}g8?%!i0;awL1M91N*lP^^I>}B6`+Z@`?-WB1fp6@96x}uRPZ`XQxI#NnWSFFh z0=^kum&tRVpj8@x5gL^9ZkX}luB3~0SjN#~|EW}vFn=OMDeV@)eX~YA!B)_V2^!_I zff$+1=~tC6eu7j&31rP$(86nR?(I|-Qw!zhe2b4bApN644 zuBImg7A<5!sxG%kiQ2GMw<9n}nFWwLqg$S2+2ROLQvQ=GD92PPf`1C_2qr6jF_!p#7l8Qh2pa9une87AL(iPail9rZYPk}r=aGth^&+Rql8+@9!cs|z zIB6^&A;$n~I9RGc2^RcuYQG5R*%x=ih$iv@&B>FeFDu5YzZpqVM*w^xg$iIN9EAOH zYMW51>p)r`ljLFvA&R^d*Nz~SWx0Sv?ljjTKSE@1rN!+5I_HkX*^z%s=W4sj{nwu( z-O8nr;mQ!v5r2evisiWWekKP8ur7XA>_C#P*KF@a%Fwm^yh$?I9h;xhA$J)}nqwI$ zQh-ZG(cb+ToH>*!Z^=UPk9NOvb9(w4N%rS?QH!Y!P3^{1zM7o!Non-JlR z|6UKLU6rg%e^sj~d?5xI)zgDcB7xnOk$|(`&YzQmX`&UDgR9RV)yzsEvYYYv7I8*( z1I75MAxhBH`>cvDH~}fW&)J?~aU@YePwnxLNB_oQaSTe{PIHT$gU?!N>*JHBDv)uX zH@F0%(?Zty=JPbw>0K}-{7)~el+tGqC6 zBE>@!OLtFHU_=v!+OD|BfsNfNN6}=1(TyE3Kkb7cY%?5(a0Ht_WS=IG!I}yydwBO6 z*uicc#IJ!5U;L?BZ4P}3ZFkCd_${5rO$*UAe&i5aO9w za)3tCJ(J!vpVI*SY8YB^dn+*I7UV~Rl!0B3Uk3jB@NWV<^-^d|S0t5d?p@>Y@eC6n z&dRonZ9JTUG65tz98oeN=s#``})LdJzh?{9c{%#Ch~a)pQ~eA?^r{z;|Sk0H$HUo?;akoTONP zw|w#bR2&0ZxKLx;h;Bn7SZqL!URc6rK!XQ0Tz0>qzBh(2g*xKs z!mP2ko1SxRN_33%dp2=jrH`tg@G#BvY$QeA6lGx&5g4Vl>{EdzcGvdw>VK5}%gv49 z7DWW(3iN9f3XuEsLDXjae!bUp^MD5P=gIir+HR2c zbfDUSA8%gSx^*3X=d@Di;Y4C=t8D&KU7^sf*!$rUM?dw{>2&SSH{Tt`RqggU``~@> zZ30)EvK4Il_}#(w?$_)WG0W2u;f&$-^Wbh2tg_D%AV&3@3nb)A{FOd*%g1GZi<+SR zH0cI;<=^E zW;Fi>z#q}=bl*w~GW#hceg@#h( z`+Vj34wbJRs;EwiY$sKtQ*B45x^<_9OQ&W)r&e_5mV{1PUZ-|tr%p?!Zg;2NtInCpYIn zd8jjNrVEgcaYl3vOiFXuWC>!uxV={H_}OAWj{69~66b?AUs903Xx(LHdCRCCoJjjMmpTlL|N8UF8HY9V20!=|M zEH+eT#3-B^g)LV=Muw7`cH`j&;ATyYKigAwzca|B((mkzi;k%NJ~^vS?X|wkn+B}w z;)|0H$MrY?OJ-x_e0$7b`;hIu9Dg(TZod@i`U%e`$zl0A{wRoE$>?wBZ)^bl%Hxao zmm}(~DFU06{_P~N&-k{tj&2$Xn8ohzh^XCLQBq-AnyX7e&?^W0N*;KY%;74}H?bd} zdd&FB5F;U=^YM27(#Hvuk_i*>$7s1M*nDDXAs+L+?Rr=Q?uHxE=rz4 zBAzOAwFt|`H4XSh0y~F~((xB_f$V^0@c5Qdk0&iw>6HnkRB6rrzN#mEdi~joqf&aY z^HNkE8#OxcJlm)kQPSAE<=gDt&`Ko%bmN;d6;0vZDOZ;JX(m^GSEmTosjYiZr~T{I zd$)HSI8tuAj|^k}y$l=^IJ&Be{OzA@EygMxwZi209-wlYN|{$%Fy|U~OQ)XJMe5zt z$6na)1||KamaxmNu@?bUW|aD0P{XtvQLz+<_0pb>mX=BK9_i~BnV_|!HW$g9{(*r# zw_=scm98eJO9NUP(wmJq5^Og7!s^hgidT(#s^^T0e>B@V?pW?9M}*d^nU*J?;~i3D z3op`Pxu+^v>`q%L&E5FhyF<(5ZX9rsIjro5YOht=j92atd7@G`Wa(h()(9oYIKQwh z?K)GO{6*i$N<$_0$4i6O=|KUTgF0SUHyVAaFZ^>NzvUdR#Z!LS z%wp58?RklXd5z>-9pr+(N4HEaMRvSiqgW`f6jnaoRIMyG@piQQ^7y8V@w(gNEo?Nz zMTjUKProZDGTNVs2EB-reB6<~xX>B2j8oF>rv=1bl)xQ4qSvxS7R*|~04EDy0DF5K zxC5s)JWUYkNMJPn)F?`%-~^HyWbEo4z zoJh4F%|>$(`7?>#CsXs*@VRPWGcy^_OONbj6B%*QQFG2jT z%W={ndu4)$3qvyHW^(WXuPcJ1h*2mE!rjNF6S3(u4l-S?_8}TZ^C$A%;fKm`-GMmu z?^kHr%+B>>CBf1BlpG#|m>*1do_Hye1KoO@FT|z9c`bVBXUpj@Q^5;~jnP~bS2Jwm zQu2A8*1B^Ho ztzyxr+6&4=BQ|~y1hm&PZ~`QCM1~^5$v^;tg;d`=Z?if_pUK9N<_XmzP&}zk6O574 zX?*$40&KEoF+DizVlT>{qz#2*nt>>>jChP1u-l34_vd+dc6P4RoDeka6O&U=XvS%jXUd^JiV8Vfe5VhHzVpCn1IE&Py zMl~U(8zRyWS-i@=$cS_4MKz}+Xljd(e<;>6@`Z-PehS2N=$Od1L^>(;)Y{DLhNQ@X zj8l%uXN=;bMV!=V0tQOoS&)ySCPx{OdkV6@Wd_F^%l}t(?*RpTn@O~;NfKFdObUqV z<($*Pxc8#|cEscrEa%e&iQKqoCT96$suB|u$dd#w!~iEBQ+UFi0(xU0NPv8hh1%nu zEQ}T%iEEPDyd@U{QeE1l95#|ulRgv_;A6PiLw}M(Xqc!1SgiKgl@#v0n^=@>vIw5L zKZO)`oc#CMJT+C|GKzZclWfgQj&Mxgh!wew>_`Dn6Ty3A#AZQI#GNcAIb|>RL~dEt z)`w{MAPy^B-1q-5e#}Uj#1V=__NXb;Cr!dKgJ;Axk zqbK*IGP9s_==G7-W5 zKy<RpL zg~WJMS%AcjroiSOldOm0Ls^QQ+7n(7E7l^N*|u5$0pCaHyID!0bTN0wotZq{Yp^vxbuXV~n3A`vV+tKBy`rVGn@!N2J*sAruE$R$V%O~*p*_qk+h%2` zACZZY$mpItk%c-uBmS=JUUD@CYC{JWz|koQB7X4 z{c?g6BSkjm5Hf}VOmJe$A3(zOW2oS7p)@vAKr$>~{nz|Ee>CB>(G)2#E{5mR#l&c> zLtad@2Pd)19JdEbi9pF?-CI{xI}`AmwucGUsNE^jTbvt$KdJRxoYS(lJCcQinRBQV z+LdRyzEF*tjl{4~I?# z;MNUpdd6LRcNRCKH8WC;69R03<3X>In~R+}X4;Ix_E1z_)xUS55hf7sN*&qNPn#uI zXe39@NqzZ9=uq(zks|HJ&vM#>T2Z*Xj}hmPjYYWK-w)W#q9j?Cl{`O-hCmgJwY)zj zFNKf~*!VOTndgLZ7K#GroyuKMsEn&%-Pq%;*_L4SD@;cFsbTpH@3ZwqcSK7x1$_bE z)e|auP~x_`be5i~!l}aLp2`!g4p9Rgmj8Iw{5-W(E(IL7dh38-!-L9aQ|{QxgS;>O z=5r@IlT@ZMx^kSIjBlrbrab>ab7xm1KW4ZF`0YaH(f^eU3(N7vj86HfvMQqIO5rJP z^nl&Gw<~}McwXNj;eBTd`S;pU9B1(BaHl7*AChpwX798+SEsxscT2XTbZW3Luesk` z1PvNyDL82xdf9~3wQCifyc?4317x`xmUcJpTrJ+Z=vrb~yj3&sKupiZ^Af^~S`Emb zZ6heTs3z;P>l<7C_{9K&G>;Mwh;rCOl6quI1vc^WP^k0EzM2ZcNlVhcDt(uw2!bo` ziApvXUy)N$DU;xHQ~t+wAN0x@-MWO;m=Nnkx9b|L^I9$kNoiS{HJ0DCH3qiM-|uN? ziPdsp#B{oy)4AQFe{Lx>)#%*&(wpUJTkc^qKid`0SJ#p5b$OZ!Le27!E1_tVA+i3i z&FATzxGlv3_oahHju*GO+HHY$yIo%`^R+zRP{!RJa3iOF>l)jgYBl)bVULz6gc5q# zTHmz9iW6QuxUhLr&&uo<{nXRE4{HWbB#xYWF(^N5PXlsa|BGxm*GKA;T+ONDz1Y#^ zbsV$r`q&Px46}rx;d6M8(O6*7h0~q;%_?_VJ6HTRnv8gJerHqU#D!hcXO=V9&M;ln z2f8D(qzBJcWmyl&;PW_O%h`*A8$|aQym0 zHfg_c!0_(ZPqsFtknDHqx!yxaOIQ@}ul;B9sTo`3#V0}fyAr;-Wj ztnZHj+q$vCE#0|a%D}&#{(+%)R%*aqi=r2)$w)aU{n}iq!eZN>+Nj4r_oHnZ_ifb) zj5QlY9U{HG|Mf*<*6I7|DqG%Wog%Shmgx>!LF>&&e^p2(H)HU_*;tz@f9yNKr0L5l znE~s!$G*g7ZFh@Sk}8-JRij^WCbNlkjKyOmOFbn0wQZ0#QXa)YFa87A!kC%P6CI+^ z+f#l?<}sn$WXOq^!IuM70t*8)vzzAJ7>}=fyUpI9%Y1vTXxNNW7y~x3B6+C}E);2# z?B`ly>ag7IWOX30TDPGp81{A+DRTzRlQ{UNfFe~$Mt^LoEyUAjRVxGx#Hs=ggf-ho zdopx>X*WBp=@Zg6-f5Ln5POWpGI3AUZ4B#PWKN%yIp0vJH{Sv@_fg4z9mG(mwMD@J>Uw(0xdvL*W=$and2wUC2LX?n0Vw^{DFKv?Wy*wxKyFy#D ztSkKyR#+R2%*L#P*({k=K|IhII&gR&6ftOb6@5IaboIBeLd;~c>l+}6eN6Ptu7DZx zd*h3piigClMy=$zqOk?{H4Jg37^p$%J9wb* zOIK%(x?ksWD9j^)hHiAJ|A1lFD`;QRto7psvBVs<0`p}~8-#6VE2!@k2# zu&Vfu@FGqZ`o7UE^e%ZFb9ips?Jvz2`G|Po-Nj36p>NXmeR)NLA+8pQ+mgBwQ5mbAufW-*L~@mfr_>Q9oPfsbcf`5 zr{^?cA;;u9Uf}N6v6M4ogn(ahN($oD^g_oHKfVso2{w9?yV#}GFT3EXd_5|=m%SkN zbATzLB>46#=0;s&4{c74IO#e=k=)HjvJ~lF@hOy86q^_p1&KIB$>$17a{*|Jt+Ud= z#c`$EGYH`!D3%UfoPb1+s*EdA8QDes|hK?9W$Ib{4t}- z=+c>cb1K5NX+h7YjFd^26FtV6+51fqnLuWNMwLeAvsZ$d7eJl6E zvoBukbD7KoLF7PtQO;;&+SiOZMf1`=#h3ckh8piJu1NPesL+y+Oa*JUZhA?7sb8u1 zU?u3f|NOyWpo!800lQv#TsjN`kOWQwwxtqX3{!b-R{vPqV1}!hCXFH5gW4qTAESg~ z4nPUv_sB|Xmvja%Aj2v)T7|15*#CkK)s!4B@yEwdF$1iAmtsKOT<{>pSDO+X@1r!7 z1hpMF82zMFG7tW5P5^(hr}3fDQjJ&XzF!>4eCIH_7!td7=$0x&(S~%Z`S7D3@BM#u zU&--;b}%qlsW`INu-2^kkpR?gTLgo#<2K4-62ginOS*KLx0UG9I?VGrAsA3OiLYC_(Y@k; z#pgTN0hrHa0G9C#PKTj6%3rl*#3;c~Ll0o`Lo@i$4twXxeN~QdgeM!J1 zIiV#$!6NYqp|Sq}{HBDK2~s-A-CU^%zB%1;*|if=f{8RVdT1JC@ZZVBAp;&m!Ly;^ zi~|e{O_%{0Gc>Ws?t5HQS)HA7=@cnaJm$sh>-Fu(EH>X%@fx zSeom;kT_*!&+K$2M9;8T%e1&i@}u&mW?VDWWIM?-Q|2K4|GJcH9Moc=c}I;tI4c6F zCN^MQ7fWg^7ySQDL)}vS77Dhc_EH3yY{bf2QMT7MA_jsPze3^=FkkhLm1YVAvC1LY zx6|#N<^f!3dKnP4ti)k0_qQcVz&H!7#`Oa!kPd<&$P{(}rV1AD(FN+_pZ$P1SGui) zB+e)qq!^tJrE< z{Y#IFl;uTF4n_4&<$?T6i4+U@({IT;{HY{(?naV*&o$Y6OZlvQngD5ir%a;FQa+BM z$+@N>YKLt0HStpipd7%AEkSc&1#O-Pic49?VY8nFywoVRfs=P{UHoA6zzqD4wdv)LVPYj`N`iEWkhSrd{&$Am9kmYxGZmQJRI5JdD8;WHUOD)3(%K z@yOmlM;$;Pr#g?r$mlA3TJ@=iRb+Dd_Rl5Kd=+Ok6n*5F{L-|!4lKd1!oBn~p+8At1%_*VOUfjheE*)MQN=ip2f*p9XsWfCn|V6z11j zXZUH1gW2E6-FJNHYGB)5L8y|Sj_LKCp)*QNB81B?pw1VNEVnhO9}azY`JdyV%0_{iN>n)A#YhA>JB_rmX5#1HUk_>-Bi;!E!u&f{V| z>vGoN3a-xqrE+r3{E68URW$3z{i*hk?W$gBe0K8kHmYjlsyz0+B)fFLUhVC}XC>ur z${t}VW#lcDpO_ECCqI^P~RtKOdgDdV4>cd;;6tYj?1oJkY$hVlGQ*uR7VEhU=ep?Ztv>E*R3|lg>9gxm)K?>AznU zmbI7QQ8nDLgZljqPhS4ee509w;9vVXBOXawHOI0g$grf6N-cf*zuppW1ZcdgEZY|N zK^|WCy>(C){<@(wTs+*RVGROmuXcYhXRx8s7YkYZhYwaiEukAfm$Z&zL~NGm%%cFO zixtm>HH6&ePS@%^7SS^QnWUkHe16FTS>yEO$JZo>X3TfMOOMlhn2b+-GZQhVPEq+G z#h1S@86W<{6B$sK22lhzmNK|>SIn=L4`=%OG-%Kl3DliC7J?gM^5}kNJ^o^(jiR7I zg9xzhK@}Qd2T-sYoe;Hf_`XHQr%=YWXF&o7OG2|ZA|b2KLe-*rK*?K(uMc-B*7#J0 zf(g<9hX<&dfj>Ath&?7>lJ-SJ7QWqz;BX^ocDEAVm&#^*QIhaz8?4m;9|eyUqKbV` zr4Q|gp6m4e$=ruv37YE$5ahMc`#uE?Niv}o*lW|O^4IM{Nk78Z0ngV6cu&?xquP`q0X#9q{wAG9(b?BWgE!~vP|34jrPl8J_SIdQUdrlNxox4~ zZeV+QB_a&;>*&O;hAgA~=$;izeQKCT)6Pl^#mN$YwaAxdDEy-8G}j{C{qYCNH>)j7 zYqRu!_$uzG2UvRPdeFSZo2i{A2>)tNTrjkXgB3jePOJ)*u|u=UdN+V5=5@Sc=SYYs zDOQ0Nr9)Ku*mS~h+QQ)`M)c9YcT%?=KmL1BQ2CPT7x!*Ou6~DfCuLkjf&KN#_H8p_ z$>1#IaCryF+UHQcRwB+<1`LI^h0@R^kEVL0vC3A}Crd%W<)K?KmjIS5%1aKrpTfqE z99L}9Wb5#^>%#X}7t*KMpkXzX)1tpCecpAyA{Md~pAL0_R#GPpHHWwSu@czs5NLCQ z;s%s6(3`FO@Y_4@J$zd=t^+b?V6wy#P_&wxbpJX^__(NyD8D{Z_S=F@M$MGiBfKAp zvYFqQe_k>cQCveR**+}mONsWY+IvjtR6C)c{Xstst-0Np`RUn!BduD$Z&$ArR^@OP zytw`ej_C()pL+BC)>%U>4H zDJ7+mXcpy;j3YuM)$8Mz--~-px0IWHuhnl3w7fRRET1p?J5+iaap$c$f5zXu^nT-) z(baFdul*fHbZ+5A@>geQFqC9CABq+Fo%Zo_?`NGTZ$i>`QrDC}cKTc`e;Vkc8-BnuTZOr@`<_n|cu{o%BS?Q0JLV$MLBr9hVv3ykLn0NZAyWFO$cTPH!P9!Tb>WF*|+3Q-r-q!4` zJNNo)3Ac$iui=+edi5FY&1L9{e$DEO_0Vp=U0Do8FTcHi`lhJ2ugWtDkEJQgUlSFK z>GEGF_7lSM_kH6!uOMGSh z4r#@|d}H-z$!c4jqvG3bf2h$fBa5Tj5K83=`lcX*!Pws{uC=tg_1&4$3PeEdXN6fE zU0a8^ZNO1ISgo(>gEO?%Ml`txE;Ye#ieW3tZoAym9P-|das5^c0m`Rr?{w2wn*MbPHi zXrEnw{rE`j7e5(wOY-QalYTt|e{*I)l$wfawK z7{v8&s+V7V6y@@QbfyNi;<4D5rGv}xFPSvJw_*A3acz^k@J7Cue)!$&@!O@TIDq17 z&V27TACd>C8?9|&p`}Z!mz28hX14A~c&6oa&;8=Rr&L&BQk{2H`MU@2yIy>S{_MP_ zTDdUbK0h7zQs^UV+%t=3U`cC|d_K~zTb5+Jb`2z=(SU-5%e#Sux-{ST)3wfvD09nS zZ9M<(v@MW;j6}c*21Y0fxuRR+@g+@%>HD}DKPwJ$lTV(p^GtW56oKLLG6>EwP#J)Y z>vBU~>yI=B4d1;iJaOdKv5q7;Gousx>LJ9dS0;INU8U|PJ$K$atj2B;$H1`zJN1VV z=w2Vq!rQ^Dl0=DHiM?z7fJDI#4u^2Vk7eacGWQL>jvVcX*1U@5u>uhMOqmlOlp@Oo zY-nY>3eP0w&%#-)@6~#sj=UiV6a5#E1qATLP-RZ2Njp*gqjf%<7 zr)iV21rQI2D z{92K9DiZ%W5;h8(IRtB+Ok*BMlTKlZBTM@2aXUZ6>%(T2X{r55Tyhx|i)V|&mg+hI z;+*JUD+(5y`bh(^o*PU_U{Io-rc!v4h)hyA_a*wE9js>11GwP2ep4A|Oo`Ubj?)?c zcQ5qz*YOOaac*$jMJ0+gFnIZjeIF5|D6)pbU`r}gTrS6Ei&46hfOxQ#ct)J{%Za}_ zB#wAZ`ZRS++B*f-Wo}22Svi(@oIExB>EBPpGza(mr4@Wk4I~(JGjB<2einwtbK}QZ zI24Vxb*_r_g!Ao-S!GUqIZ`p?E zzVaG@Ap0MI#)r%3cHMs>tvllu1TU<=+xA^0hjNWAaQ%Q0VF-d%@W+dOY*NN({C}L(3bgPbj;&dRi0CgZ9uJ3+8a(Nr>1k*YMU?V2 zj77HcmLNoI(zCI13rfu;lm3%LHoUj5#S39+yc0m$BLI@G`cUv5Hj}HOWS-6A(V7~s zwl`+rj&dasrypAeO8`9R8Mtawi0Z~`>7L7$@Y)alN71>*Gxh&*{BzFkbKB;A%Qlym zOU*q+&3)uD%(dGHNyxo>&M-sN+)C*(mxNS^lKOtXBMC_;(tWy8Dcz)-{r3C+JRW!e^Bzy7mI<${M-c6e~mL=ONj{aenp~kdFm{3OTTO?w|uhQ z2R3D+#dxaiFs*2W4C%%8S{AX~R?v=JUbM>lK4+fHX=wnC)8OO`BT@Zt?G~BFcd`M# zMKN^W206byxN*rcNA%S(j#kf&f81Ufkc#{N$qPK1*Xu#mBunrg22@2wZs%(PDz39r zHBr~m5CTciq}1}}dI3E-20x6>HWjhljC4i~Ihnm=pHaYGzEJ^zmIZ?Iw@5iJ6{r&za3(}MEAeBl9#%_*J zKEcDRsO(nCoXerU^AKtZU{_{Wt--}!c%OJ^eOk|eUM`GR&V;fGQX7BKfysC zr0P{#hrnb@ffHVgx;W|Vw@4POZ{eS-Y9WD|xx&pE4meqVs)4t-k{}9S`tvHOEGeK^ z4ii$ilHXH)%N#hx?Y3#jcd4`|7Z9%3=rrzgzHJHT)04Wo*&^T(6)zI8}eR&SlW2YeaD@604lstyhJ=fgUR% zI1I6#yjm_azh8o+`k*w87Ceo{0<-}aL7lmfsdfE6DY%UK6y1+LX)kA5yxR6}yNe~( zYP8SHIAp1H11mjvf0@Vi-#Bt4yC87!FrmowwR=)f)nY3yRe`7H`!>4SbCImW{%Np( z!4CM0pSt!j?mf9=RZLd!AsW+7+5MCM;fzv{*04{ue4J5eh43hWk>3s4rt=(z56%+q z*6IOqwgUq~e24zx-nU#{(*7B>FKo5`{y4nu*eE~sk67vv4_MmU91+O`z4>zjd^yN zJCvh$&3L~KyN$N8M1P*vWrS-9Ixd|kREXO{59H;zQ7nnpc%IrhW=^B2)pS5Q0!k)( zap;x;pUR(x+qb$tz)%(JXzG=cFOGaAn^_o$?|3+?JV{Wq;|F>~!hYGeha?N475elR zz5Yl&yi{YkA1JTZO_n!NU(}iRqswX#y`gT!A?dRszHl)T8ghOT*P>_j3D;Gvn@62E zCp6LYDa#cW zogdEg^rn45Qny||pP)e3Pi}#;BjH~>wRzr>_HM;GseZHyXz$kB#qFY~9J_|SRSc;ay0WaWO3rHtQrH7|jD;cEoiHsh_#T5$8iE5@2MYTlFHZgd} zQ=@bbZGuq!ObUgENm`+rDVKIlq4IdDlxlLFIeBsDw+2sjm2^H<1+0<|G0y2W(GspNPEcLnptXQRGMK_!ixj=jQ-byNgd4v>@w5>G2{}GyQdwR;Z6n z!TmJFF+S*z#Q8<(*L_xRpMvSt8uw_FRXk{{d#UHt_c8eZsYZ82-iAMsWX1`qn^bPQ zTv#`qr2kF2q*AQg{6Y0+&S<-{el}I#qZTb!qRvIa{d@{3ZN<%&IC_*`TY_;dO9fE1 z<`YzazvWJ3Njn5q`qR6dH8}nn@F61w*urUtJ|&VmIHisjqc4!-@S}1feFPhI`x|R; zl6U(TLKyxmds6aOgNL8ztyEJ1lR)3T8m98#<|4Y>y%tS{?Wb^)Qrsd9l55i3&Ocln z!eFQmGgURNf2Q>s-a?CYh%LGadGvR{;-Pq5V7ETUg7PHtZyd&^drWm-nqHFo=NIRJ zqe#=JRclD%&`MmXutO!{tAU-fc0@B{iiL5@A&fa|$UM6BYa*AlT(YI5Qz;i{fh)+F z7j>Ewo}k6LfzIToQ=yg7dW+S1^lDujp4#o%@GfV?NN3%TiENp(?!2`3kJXL))i|RR zz05RKqcmJH^I1DzZ`1#+D5g86K6y*%wj^K$X(}M7*$X;D)pK@`CSx6)9;rV>(@Ev( z?)xfhlFMM)b>*{!yxtnCVmf+HFNFVYY)ZpayiQiF`z#S^iqz|K{+?}ZbbzXE3XE%z zC7Ke&`NO~tf_-l)%8$Y#s`>^?)yoO+zn@f>)o||&ttPjDPQTy^U+{~k+Wf(Bt4OJV zO6*q*R^Z`dmy;>f(ZI-vK)%xYoVBthXZ?N}e!1ATwNAH)AGk#YDyr7$pSqintu#bZ zrgx8aLB?^wXeZ(oL?eq>YN}I4ZDO^T#RQ$t2C2YEGmvnnl}>lo?TS>B%H`M;FgHFp zU$OQfOTUYw9l}#dat526^@&tU9!Hl1d>(XP_q(k(rvCB`#pEpocvJ_Z-Pb!630HEp zCw6$-7r_b$p;81K&!ZnHIxdZxSwmMi6$3M@Z|(bL&=5#%__F3@O%OK;ACds8&DmdD zdTY7(`FsMD&7+N|f@sMsno6W^fv+El`Y-w4%;sAflGur8s@>FW6T185w}#Of*cFM1 z+BxvD?S|-{dqXc~Wyvwi-E9ze9-6SQ zVXp4c)TPIxq3p}B8fR@LHLiLK6sQa_?$L%ym!pxbp4o&X2tA$+IKI^7ViRuw>C~Xd ze1W-Uth=J|8YQ#nInxu$AFubUx=~2@#`;~f{Cdy(L4>X-H^d#f5t#jIGJg2#h3r4Q z!@C>LnNp|<9ObxE+wlit`kJ@c{wlrph|WH>9rBn`KQO#=Ce+sC?Z1b7_A9j>IQVMK z#L+C30A;{J^CInk_vqif2!~}X&jT96D&Sq~H30ZiAx3L2gda_WcpnW{z8{vlX(Y67 zkLh+;3p8XChn493AqrK!eFvWIJj!#vyJQyCaK-e1Wc!V#6$e=NQeC;Xs+4!KFEU(|pQgf^)<)DQ)AUa2fpL|Vg^>U|1o9W&1a8Uw}8M(&t@*rDI| z`RP9LlOm2CM)E!RE+;5-B}(~&QTCF@^DgtjDwz_xJzwcnsq!%u&FD+I+0Odd4xRET zTqV!<=q&6eHr=ECy3^Y#L^?^4zP@gcD=*$Pe&tbe;__V;G}Ej0nLT6aF6i9iy?HgT z9du80(Ha=yA{-8GyLuV_N%L0sV3*S5g!3Tv?l&}5zs5%Q9v^LY@oRh(ej>7Rb4t`b z8d*O78)?W3s3cJD%--f7fB~9g)jF{y!~+*mJ?%Qlk$-vJckt4KS3Y>1ma9U#wWKQF zCu-ofyDpuF=?&7~XqK{f2h8TdhS|hTE${F911p+(n?%>F2Hvy_UZn);5|qyrq2FW- z&mSwaj#Oh)6{4%}IVz7w?^Y{Rhf@+>eY<=5$EQ%b+#bVIv2xyE{37(*;d2XyxImq3 zYd$fWrNWdvGL_E9J2V^|_;mRy8H1oVWvcZ%vj?UO%*nS8orjzFPtkVsFWhc=&`7ls z{K?cMrr#gaU9>4zbw1i?IUc63mC$98dUQVi1MOK`h}N}Z>QDKa%TrbJwI@rgB9aWv zf52syoqBoi_tZ%`^+aOX4rh2RxfwfotT1+ ztf9)}Yxdn*{qm_=qK{Tu?{HhuC}7=aiF|+cV4h{AehKxi+IDlAMogOCU^!s7(I)sx z(J4M_Yjl&KvE#>==cNS(c5|hg4i!Oz^Ad+ktzpYj;2f&A8K+JbegSwyswLYJO(dgk zzYW5E8hAwFlXj>zd}&!0rBZ|3omlaZLC!IYQi~Q-J@~*)cllaf!kZQSntSvOQy=(b z4vKf%%c^rdyLHc$ceU!J-j5{Y9XkJ2MKcZH{t4H8WZN9Hs&xngwOM}H@Zg;vz$0GHLrUI@xu&?p;s4VRv z5y85GYWF?OtmpSHD%57KdPE)eidk~cf*3aLYVSPA3m)~0!UgW1-BYnMs5=xRg#)MV z&R-0_cewARbzf^*|1oNKf$kQv*!KW{&3GkFk+7ZZxa{jil_iy4k1noyxWm4dT5Cvw z8^x$09xi%4|B~aATgFd&eoQ8x3EEgjFsZSYlaFukBB*V6yj;1Y1TtB_nLRB-ngv-G z=rz<(Dm9HD#$n+_ycnM7)>77m@9+2R4K8uMrO2*@?RI;mv^qW0==4C1moKLes&*zn zFgZT4hA0&hUZgZeuX|+Yhv!8+sY@z8bbrl@9qW%-==CIN@@^hadd1!CDE-GrhyK<# zd#gV?>E_?*Zo%a@@3XR$Y{H6|y{Jk&O!y`p@r$$OTKwC?I?ONn*Y14Z1+9q?!+n3l zx@I+JMo&qG)>!s%TuPJz(hccrMfu2YHtBA<0GJBLPNA~r$MylNo>NpkJ zGzOlkC}*^O{swMaqHLULobeZ4g_OnO0IK*73vB5_z~_q`8pf_Ke`Y#>uf^M}&oymn z3pBQ*mIH=$wiv)W@fg62EIMb2{kSAuY*gc^YsZ>%*Zl#iEpck3HZ5M-fQbC597C1Q zMNrJNDMLEWA1IGmw%(*Mx@h3)W(*^~>DB2FV?i(I3~D$dg}tYjFhv{qIj_7~mHK58 zk4LD)jU63}ck^;kF?u5%)vV4^IL7>!-vO%Qqi(?xN}!88yY-JZjIf^_^`tU51W4to zJF@YddOJ5qc@16`nM?6wM+(-xepBL}_$Q5J3?^Cm0BX1FTZ z0!Czs8P&$tBLl{W-E_&V(GQBzSkZH5h)X$b;$KjmtL47rTcl4#djNrHeZah&8r)$RXfS=unVm@tR=BcgW5lLH6@I zH%FLH5n!gIeY6_h-u>+`s<7i*{TcnjDG8`@NZtYj(qmPd$)nu7!(f`zUly%CwryQ_ z1UJ55S26cFFqFhbUi^2Fm>`E4n{f|mAE?XSNGKxJ08TqC%o!bLLj_R~%W#kHWtuF{ zb3CT^$sR#&`FeKLY&q4}8{vJ_WTS@L4Xvr~qEc3v&><2)g_f4f8wrNbhY?mI5T$^3<=kvAY0jpW3 zPS}n&nGvshA^eGybz`?q=%?Re$p|d=6-O-Yi*utl*ZuZv7sCT8e!Z?j>+L3PUB>=l zw}c0qvXn9>qwYlqT)FB%-Cztcq#Gfnu-tk;z%${F=>4x!4*7*E_2iw5$Z1YkO&NI>K7jZ*i6N4I?{iGH)p4EF!KRpSw*dNvqBFX15c9&M>?R{;zrtKXe< z;Y@_e@Zl_4BAO%FYS(*RlUp6WL1Pq`5Oc#Bt}zy6PLbnETzbOoM8Np6+6H5Td%H%9 zxx2afH}`6Mx&Tm!~Mgeo0HrO7k(*k}aaXdBiN<4&n__Z}@VrO5@TZ8S<4J~k zXSszz1c0484w^WS35~VS{klR)fByL>aP1*)ZLA8QAU?xVR|ncQZ{b=`O7G;{=wkOo}NCE4b@wo^$lL)@X@MV|0L4 zdfEArX!=Up>s+dXx8K++kh1!Wk^VOD_WT`_8uY+h<*y`*9*$9hqmf}2VTea8%c@g5 z!`l}%c$|qZzhP5odK2p%Yf^S(b!({g#ezEt@o800KGfU)M;J~nOgr(){H(*>g5mV0 zw38na&aQq=xVvjG?bNsCvreB1?(Tb+cKXkUvukC95rmj7Mq4yE^LvJ5zL&~u3QR0c zZzEX`s@AAJdE;`DVOJO;w*%iHFl>nuk3)g7V^ps=PyfQP@-+-1+#oR-Vv#);5v2gY zlII(tfR9vFSJ8Tdd8D)~okt76qg3%ou1`6uOf6h4CWvz@>r^PkXbH^iAV7|e!oguI zldx52>-%b;Y8nBnNO|VwJhdzNXp0q8_(Z-GXIb26xRb-r;^NN+- z?+pXI$nD1?A?QyxV->YT{Tr>C8>YQ1_{-s|CQ64cqY-`slTT=a2zAS5);1uTo~x`V znw3(krSyS&*e&=|XH3dXyh^f+s0wGe7QSsfEJr85L$J4f4?uCgn)Gu-xFo~{KHi>rDe$DJl#EdBI)T+~Ylzhv? zE=3`u-L4{lA@ud=&U=hi2UcO8Ms0IB>HSeEXtwA2)zXb~A+tkzyl)H1&0|g$+!R7IID$`D329cb`h!r!^Yr&Q2 zJUxn7IhFU_;7z9hv)-Q z&N8JeyR3ku9;Tn&pWll{w+MaRTtL+>bI>L#0G`z< zwUv$k-eBIpen70ULS3G~-!JlcrDnXE?MBzqRZLZUC`UGBn$SxHsbLYiR`|YC#$&jh z=6h9V7`OUvw-#9DMeDb)5xcGuWu>Dz7gTvW?9t4^)aD!G)Ph{QCK}?y{%x=<6srql ztT=H^ozDBYuO^J4JcImwa0_Y0*wR$~22Xmw{mxzXl|G;2(+!Dcj9c|9jF+v6bZwHNbNQy|3PgD!ND?P*WpPbDet zR;9Ci>?gX>P+gSXmExI3%~EBFXSd$@Q|~OAN-&8ZBJ~Hua8Q41W{7>IQfvcmY%fQ- zfb_5Ktq=zX4bIOL5>{ z)|&kOW4GctwwsA~O)gj(rK;YE)EeAQHgTK!_r(F59hXEz%@zVlM8qROFiD1KwB^Z2 z=}9KwB2@v`N?0@oGd!%wc2nF=N;oS`E-oswQx1?Sx5(jro}|f+9WQx`gV@d4Ch%7g zzKyz##8Ebuy1eEoI|HlH7`gF)s81q%Bq_e1+X{ff4A?z(nXs3o919f2si`k{+m^Nh zIjS?934P^Zy^bh%yd{vFL%xb}7xkqPEG{m;Bcc#S46@0 zmXakHD@qA?o~M<41hYrFRgQ05@CcPtM!RFMWwtx`>fFQg^55QH0#N!)=(hBYL!VpfZPwW?!L5`5}nb;SH9cKYmR<7Ep(ziJQA)R!w zlIS|2Bu6mrArT0iP&PGj(hkZPDI6Rr@@a`voIdn}I$I6+e30sW7 z_y|s3PQTbf(ibbe zE9A{c@Sr#qO;XIpZXf3<+vU@JjwwH4ftO-M@+9sZPf=k+=`}|gKT`0TL?CezuD?zt z@OF>05(2~cYMD?UYu8C(bh`~2(&FCgz|BnVz?Tue${o2A%eiwoXc6Jpd}OT%Z_>Zx z+*SEs6Xnwa3UGismmaN7I5wv;%Z^W#?1xElGU}n7S3*jF0=|rBvXbZeI(1$6M%nx> zu|}mTM@f!+JZ6`{-nD5G3wn1dkakm4dArwglva=6eDV}#n2^@?&JnC$9?>`28KR)j%6TH2_npNF0yogV9`_*j>tI)eL%m+P()01un# zLE4W1+|(gh3U84o$w=q`5U$!%=PHFgD*$O3a7|A6^j(GB0)EOxXrlG5b4hLy06kZN zVM6+>wBH(8loV(`k2Ix8e)OZnVFWj8MYKJ><#kM`dU6aHfk;1tEscRHkBS*xjt1fA z(fXzH!KSTXbu#_>i*T$LtoGUC6s9CFV~3YDG|GsRN#jMil#OR_=iPxT2cosgP`?G} zNLD=UGla_IqY)+^1ybkomfAJd#nNZnz`qZJ3HKq_?^_k*$~pBq&)~DM9UwJ%2lc0o zLNXoOjjmb+VMO3a1|{}UaMy8zk&b2=56h*J(Q-`w*(_W))+rd;%jC9<2M3Ha$dY%s z^0s1Wu=(ZM?{&4guh(VVv^@~xe7x7I)QFd2u-^tbm+IXqbs@ht1EYCRi zpI5}{hvr2t(P=| z!No4G6gRNDgXAg+-nX5OyuVbY;4hcQM3NLAe&0$bMNa0W(TvE)M4R7X1l^JjbtLjr z^2XN7pu=NtPUJc^bAN&cZ(5T(e1s6&f_gKeP?k|xl?=U~+vx8VsgW1?d1tQBgG@cb zF}#dZwU1rR3sGef!8+CD*e&)Yz^gI#sV+}}_75v1V9A2F>J}|iV zbA`nwpmHfF_1N|lKtEY$lQbzLp7LotsE%c+J(g`IwJKLfC|BdWEN~gGdDtU_V>C-; za+s1nRl#)xx*4L>Mn%;etzA1(t}#y>3rSS5EI4j-d1*+I^fDp6>ySrYlIq#w_w&It zOQO%5C#8D-eo1@L_w-m+)YkDL1v$T%guS+V^X}iogL1AJ1{k#9j*&M0K8nBmyK3cY zzRK&nWf)R1=wsP4pllOB#(y3gY6 z>5pQi;-9C>`}ZxbPoD$<|*dfv@+q{B?Q3x|1h%A6zs{&FPJWe=W?&D z-$SleyiTG#MS^8VlpBAkyp*6T?1+t5cGOMcUa>$U1N>k*Ukp=j)l$4PiRx(B`%b#G zOp9;OGWe%sgJp0L#rdCy4Mq2#6zye&x<&LRNVoQXSGhr059U$o2&hFi>`ms@N-n&7 z6R0>HCTk(EspHG4aoj}N1)N>@*IksanWRJWkXN`|_ebC|iB6>b9$ct|1*+!C46c;J zqzU(kiZ*H7uc8Oi=&J=BrI(~5m5m&kVWR&bRi2aVctaIs%&BOK zQ`hdy*sz||C{{l5wz7LJx`bDaCka%U%E>I{`H+NI-tH@$*rgG0^`Eqr$Ca0n6j$!- zuRi8oySoXwoJ-*BVBJ9+ULU`&hXmVZbzD80)ra=zODK`X)ea!&7Os==c#D)@1r%&E zHjiq?DdTW|E`w9llU~Ou0V3kID$L&r=#9lQY|q~Htsx{_`hm;aYI%(t^f1P(phF>$ z&&da}V&Cd3vWbyAE%Tcv(wkO#>XNg5t5}f;|21tgL$rK&q^DgZx(LHfb|1h9!vPfe zu6Ee;5Uv`BpHs2xukTh+I5x4B0_BpY?vX8_at;ib=#@8Pk5zH>?d=fAA$Ur^If5!5rJ1i9Z6SvaFuW(kq>bb-GJLSg8e4O2>g>jYl?`tnq#%!> zNK^Z@yl{n-)62N8X|04B=eR?Ejh3qERl7dZp>gHu@-No|*QUznM0_fd*!^BN5u>+lgR`qeG5JGp#%t@EWS zW!bHJT$0?nR(3#@NJXEke%HYzDT`4M$pq!$eXZ1mM1{zoQLCtHR*5}bsE|q!X45Jy z3>i>(AhIps>UellE>NOEuV&vF2_GzDLE`nEx!>OPZJO=sXr7N)rjP;(ZqTT5V<86{_u{=m0JxzHsfnzD?gJN+ z%PNs4aRkU+b$!bLiHctOdrl?>tC)Z)nrZ&Gw#tZ78V!s;tE>T-Q7d;We@#6cbJ?aS z^UTU9#B}!ywP{T^53~u1hAu;Nc4u46q!~GUQGozvX%vW&%A25THSOd$Sd#nCEz|kI zqzJKQ1#|6&gLHwE=trX_j#8w2TU-h_&cRDY?3a+;4=&L6Q!HLu!%K4J?Zg_`T5_x< za}xxwtkcxAbU$Z}wJ2`_9L%#+Ltje}6M%0sJ=^{|yGPJ(Zp`pT^SVn)MaAd;Y0_UBSS!yN>MOqY?UVhSEW#D@T|hO~f^H8GjP zuF*P->Qf8kNH?E>WOlF?>ceJN%$DVgX_%VQQrHYr^fMIirmGu;Xt!AQVfkc9->YUk z&)J_O!~fB>?&}7jD70RK8qdcVhfyTypj?oe0{A1>Dq?_j(^PPT*y7buJPvy^yw4kT zASTATx*AQ( z*r$&&-d@}MuyAI50aEG$V@X}df+XuaaxHZ*ysz&clzC51M6dSPVQh&j=e6(p8fkn1 zt3#yncvEXVhHo;qU6O5NdB84-YAwe;pQDuYK%%#7^;|e~^JDId6&|c?^a0(MfG|CH zho7aEY;OGlJz``Ev_5}AT;gFsEQb*n0uIdp&2r=pk%_@F>dvCD92WwrTs(+JF}HkFc~SIu;l@W0s>f?&UaT>bUVyNj4Goo(UxxWD z9?}&6hd?H03YoPkKtI*`@X{N^?dMEucbST5q$8^&EzdXIOY>jz``cH47V2+M(ZO<~ zI3!R`*HnV1DO+lX*4PXV*bUX(aW}?Wa20jUtNaNC2db7E`l){@v;g$&>@t97xPvbV zj2+ixTqi|PiRxQ*7b?;-H8W@YQANn-6Xa)M^%$Ze3r9=G({=IN+7(Z2SSD`x`Y6t@ z?OR_<5t6?c0N2p3#J4f8(20J_)GJmZcA=axJ42M-F19H@*=Gj1v#RTUUX3Y)MdSK( z#ih@C7v_yIMYgT3VAq|v>OzyINr;qcCbg`3<3p_uEV78FeqCI)Wx^(Fdp;sY&m979 znZIxhhZ)D#fFbnw?yaZx&i{P7wxX+{sbN7^0);ZZ@Xw>Hh%MA}yiKJR(JNk*FBLdN z1X!J3xKm^|jqe;c7tptCkLBNDQq3YD1UYMoGbk&Yub0&MuQeGo+&<3*hT>aOXl_!P_qjRx6k=HShPE7J+=treF{P3887_eNAf&ORgJe^$30A#d$! zdI0Q7g1Rc-s8r7Qb+w+GHF?>uj-jLW?4N(UQ})+M_1Ds~fG8aUc~zIQ_7v0eNJC&6 zi(YnBenrtb;k0g9RHgg!40m*?-C?m|*8_Ur9hdIObYv zA8%P^+L*6s7)8Mb8b#SjAEw91DTgghT*}~VbZmK*fre{h}7NcHwTfv11J+PXGFR)1%rnG#q7F}8l0@&BQ&Rt^1) zwagkgw#l#TSktO$7mGasMX}sk-PduRPQL;~dE7cf<85BPdjiYrxo6B`wyoRvE3mSU zTW@`4n{VQtpc8MnXIH=8=D+_}kQf`>;A$KnP`rm*XA<1FE+#(cFZw@_yjis2U7;~~4$umo3%Ss=6a`fbLwlwlxGabC0G zT4UpGz|W6Uhi#423>k0Mijia3F}qxK^?2ILmq?Xy zRF*o4i$PsKNdG4huY+Y~>y`;=&LzBYZn-u(f1RQ-o~51KrlqTkxLw=EjTe9mIz>x? zAxm$C=e}}skq~IS@zd=Ljo}bvJcVE=`Q)t6$Vth7Y5cOlriF}SsorQq?Ss12y53Q> zlA&wz*4H&#ADfn_1EWzII+6R5U;0Y14^Z~0O??p5FP++8)w;o8gY7`y%Q zgRf4ex-EzBr>>x_x~jh2fpRAY3wnbp#JvMRXO>{WxcRldq$$t{Jg7kxz710u-mhXq(2AKFmFhc)EsZr^OQ{k!%Jfck?u|K5$}I;!6gbpy0BNHcGuF}^Jdi-(IfUR zH85yu+)3y>dYvY1-DBCGu0pM`drgo}%`&L-#*QyFmzNz|8tlT!^}Z~ndyrZm71b1K zeRPfJulV|Soot7D&6YE(wr!6+k$vL%+(VH?zT+06LN#m?xi%Cnx;z)|{mL8`gdbW5 z9gCVx$2v8+cRg{8$yX#;*>*inb$cv}3-#>7Agh63)W})&mw8*wr|fvDN6PQwBCG#$ zK7^_ohOKt)iz)9gED5;xxt29;Le>qtLiH;h7=$sx619utqUEd|o-sJf(s52R z7)*a+|9y?-{XvNBcUC8UDIkRnoLtr3>WL-6n6Nb0T*hs}9~0s9L^14S{eNEiGCJ4pg7ztBQY}tI*e3xx2{#5`#PvAk6VkuqF7wi|1}T zsiiliI2%`3HaI#r4?Hp%)H$owTdxs)<_hHucN_g-B+;E%tlMi6{H3VWxn5(RafKG- zK)FaWa*3xXp4g@v++`9PwKTb{yELUf)wD_#d=Y>?BjbA0==hbzHv z*YTSH**8s|^es(bSTr{$9xqfLar@rdYaQ)e(PJYY;2&2DRQ&;cE+sEgiB!r zmG(L1HW(@?kEfZVu~*S8tCAaX zrJhQ@d!@IK#zQ5tg=@qYmD$3i1}r>+O=SqvbOiBiq5dR4iz*CYdX+b0A(c*4Y@%J(=m}h!`|m736soa%!WlNWtxp1B z{Y6~1&ldPbz%Ia`+kvmr8mUDiTTcV5KI)eIO2X0 zx4$TW=OaiJHvUmGMa!wum>*k;v%S%F%-h+iLSLY?4L&pC==B$2DBY8)e!XzdNOy|f^XaJ9e`*UfX$XhiKBf(U3-j!F!Gp3QRT0&nc?$?RIG1{Gh zd%CVyFA1nA15)BRN@<=mm?=v#*E~75c1?C zHuK7$#b$HX)0`|VOicffa?3pf$KLe~d3Cu1tRb|V+!x%84QKg;a|)D4?q~5(VPV0& z_wzoTpxf)qk)OG|5$tV6Iqnx(gW<4e@4WRM^a(>4Jd}0ZggJFANhDZ1i?wS2F>>}B zJ3D|ep?xxl3=of)dxLOD{F!VXM*c}-V*sMU$&0T9)(u!Z2633Z#g&Y&p-z02j`yEH zHqHhow)C0HiJWYtG8&~K@W~nH0^URtKIich^va6HCN+>)DJ0wGtY6t1F9$u!7I29T zc`5RmR&jP#Cz4Vr)H{yb+fU;}AXVq{vN+fb1`gt7XRvYBj)%DnoOc7(E=(BB!J!-c zy|uE_^Rv^#*1c6j^pgiheT1j>3*^ryjOS%=1_I`A^#VaUTj>1(C_b%s%b%#926l=0 z0V2MyR(60m*NHI@(u}vB>ou6my?O#sE$+4U7Pw8LoOtq=9|KChKu(gJ_Vk~=PngUJ zKyo_t?lmSnG2ewT(h{KA0v&1)G>KyFKa)3&+L@onm_$o$gp_1l_%7Tpp8<2KunNN| z))MSSP>{StZzNpBc$_|oO4YhU))!9SRt)R+DQ07&GPKu=4B<<)$wpt{`URXn2fK-v zy@!p7o_rJ)CbTw1k}AjHFyZ;4+z2IXcqb+!F2ov*I5E~|w7`4%bJKa*DPfx;26A^V z3_FG4&KiR~h`>8t7|(#9{OpW=8o_virzLedFJv#=D4gVH@Uqhz)&-vlac`2w^I+*y z^i+m0l)3rWi$hikU;`e;y#O9~S>h zJ|Lj{8)22Z%uY*qbR;L87;~V3K_P%gM?|6UXxc7I6DJF_esfdd{YoQyYlTOPgtp!Y+bTNut;G@LXEc|{1h zY>WxV8#|HXgZLzdJmLDkE|AKW**?#5(?@c+;+f!Q z!|%$W#OXZr0tnM=W`LC?AYl0`_9!< z@7%mDFz7^5*}16wf}s!C#4t=4>BYed`AH4HX_p`=KUHQ zbE>>|{Crfq)A)xD-aq;=H;dj)*aat&ke&@=Sq<3KFtE;7NZ5tBeg<~#5?r^yHR}b* z*FX6uDj+b0TiH0gXyko{Su&KE?c^0Rja6Map2`AwNxW}dq0j{R_e>2V?oOb0E*qZ% z=jX2ZKTtIH_yxCuXQSqlJMs*OQ$HG}LS2r}M|^Y7arr*U?&%uF45cdpBRS#EHmJ{{ ztoyS|-8O2>-tn!x?Y2t*S~re+d`M;H1cW_LVGoD0;zHdxtAoetr*qEP=J`qmqks76 z{Rzz)R#j? z6|rL`xEB=y-vvH0oUb32dT01q@YCQh7W|8zYI}3A;$IM+{1`0~1jweNAhwVPkRV&3 zTc?0M2_;TK@_wb0NriCOmvk!MerN2jcX_%7f)lTwo$?i+C1<{NzT3?foc9sBg}usR z3mgyca8OS>9gJJQT&SLp-XNL!aCQwd>4=Z-Qeejx#!G{1 z71v$P6jB;KyLCpyP}BV<2QJR1%C{SmR~d5J!i5hgZ~wGx@c=4eaqr z5Y`#HLLJf&2tw7LsxKed=Pz(5K;O3Gg-Nz1dt@icAYl?7+DY`+VndyXKJtP+=cb{u z>&I<$t|qc%m!PgZC$zZA3)Lr;5NZQlTq_$)`m zs;t7(ci|sZ{TOf$oey7$K!SG`)@e#GS}@E;^nLeOOFlmr|I)dek2iqP2xogU5@n-nzM72cM(mQ3%*Rg0&lPPw6CfT#_P;E3fo=f5ZYnd zjErAVkTrcJD#w?N+==Z)Pol}wNTfNU&KbO_B68cn2LZp&-o+<%j2LJMSbv1UVt2bR z!S;#a#LSP+jQAJ^qTm0{w||0LFqdSIeJK|h7A2chx>M8$)P-r6;VSCDTcQWEm@o0 zj^{EBB)e-$fLM^L8D-n?6-{wegG4S;rHr;T8wX6jc?<=?VaKah3Acu`{A>Nr zKYIDLShSro?ZZnMctr1BE~_sHF?ruzFZ0-Fv9I%f@k!szkOH}n>dleAhYtAt*qK_Q zbMpD+q@VR^=O))3UsT?>$M@bX=RG?%>}p9Ik=AZ`oAj^K&u^cuZ2jZAZ*5ky0$PpP zi#E6Pl%Qo0v)5O{m~<0X+9-E0YFkKhcUn|;Ah|Vsc_c;vN%~A;)!Zm(XAAcS`Z)luwV#7)bfE7l zEocOyB)eOB(@moo6C^V{$JsR8CZs#`LPv*$v3K9DBktGjY;y6xS|2@v3qGj7MVEy2 z_A%UJjNo=&>f`fQo@eV`=zP|7PYJ3UqyybS#|}RXTxmIs{(0ZoR9&VojgDUMx_I7b%Z_XY6qQd z-Hfiwj)>TYeT*srwD+53w{i<901#YdLCzWl*C)GO(b;_-Myf_5I5!!mb-=`5p!5S> zH673Zs*HdH&aBlMP;oi8+SvJ}%aW_F%7QliOnxnSsN{6Lja&p&(=Qz|FY!6zX9^fW zTX1iNzTS;~-K@G4ysrD>?K~KrdchAASq+;$if%n*^^PhUURm``d`Nr7tz>W&^%JuR zJgwW}XL_;u|49G zXsnxY?+{(Veazd4PL{a;oki8=8-N2qjR5gfH7DJ)=wtyylC7jJ-KeHUKgfudx$yqD zj<6{-p|UwomD}=|#I4L%u5(d&Fg6HBmk0vb=Bk3*ZfYOi{72-9(Z@J)&FdT zdjtJw8%O!bw{AUjR{@wH6ZYQk);eqG?YybGeobACE(VnRY$_q%{7^u3J674&Zb{7G zz#4F;V1jOGYQ4C{U`8kVTVIL-RAi|0*ZY==$BRRZN<&{G3d><^97-)RCSKoDB=Mk| zL!3yJ0w7VQ(}2?}#5h)ZVu?I9ga4z*G;^Th^}AT$y&9*h4$BPQ4yQrJBk97G#g%OJe_o2{klWhzs^vhQFL>a z*adt&X&lmSIy4^0aJ^z2r6wOtOI+}Xt{)GsMQ(JsF^Se9Qda2i@tLH~f_np0b*nHR zdh+Kh?0p?jG|PR zdAsW$kY-C}eH&isnMW#YpETP|A=KV3K*>swfFj$_HmU59)JMEL{KPig6{^Nkr(=lQ zx5&T*ttfa%gufY?=dn2wHaEv2><#g7BLiAQ&+!e?dHMy^0QxZgVrT=tP4=_fg554$ zPj%i%-oFk;ziK$kY^sp;=Pn_&10zQUv-`TNwQlRat&5egF1nFEt98{~ zcgebkq^M9~t98FvDbj^?QwS>|@nu~k2^EptmXgr7Z*IAz{r39{_Id2_xt#Mpuh;Y0 z>om36+ieeeI0+h_XYaJ7_7I)3P&_Y@+<)c7i!viUeUa9E8n2TMSKT?$k(BQi+FP(U zI90v8_I~@>pZE63Ago4M@92$Pcl=O|El&@O_vQY&AC`5j-1&3P>azHx&0U=a1U;L3 z?m8{|B>kkQ-yEmAll9(dC_U|0`2&tGdWyD(-JDsMZ8IFHV_ubE5@UYM=E2Tz^O_g) zvsQgJ5BHujultnne#5lQqx9G2r~k~qw@2EJWa(Jc%kG|Y)UzEe47X_1{CCd9(RQr- zltuIE-5)kb**>m*ZPBvf-w)o|woe*#)}P(H`{R~I+wpVZ>(6if_hV3>?bD7^>o4ru z{b}oT`d*iTv5Wiu{j^=_J)$$BG}PIQ@&nFi_MQ4-pO`XTq|Aw@4vd6{d+@e*uqJHI ziom;S#YQ_%eOc?#bleEgbrtK9$kXX8B&2I0aDCA8xj;@ynQ$TF^~148$JahNfnJU? zfOj6hjCn1oEg^?l@B8J_>wCEw)!MS&BvLlFT0cu6*w0=2C;Sh$q&e9iR(MBtIpyKU zP3Ajlwwm8VOa4;K1|Or4FS4BPamzhF;Po zdnAgu#5-{2)v6tRWU0TdtF~!9jh+7#Y8>PIh~IkZ`C#U~ePt>MNo$Xd4H9P_R0{;n z|Kv5a^u8~bLEm$#v>V$#84WL9abb{l5y6{EBFBtKnU9^|t+Fd^-g~l1r&G;^$ndDyC+hs=A>xN7_~k{$YsyAS-Y{&oK1A(^gADn{LN7L`~&+GR?l&+ zOI5~ELVYEQ5>WEVEl+tu)keGKJ?%tn*>Ot693ku>QxY)-S|T?o4HN~y1c%H4o29_Y zMP6iP9a))!(4yR`;F8I3R#hF6BPH1|r2|T`^v|F(4JKf~;gF~pVFfq>xVBvFKZqShRT47G!;4jeBeG(FgAxRf%E7&AWc27zj=AA@ z>O_$Yj!G_^k`Dc}77KA6FxmsgE^~BDWKDMSaV%&uAqxlK9Rbfux`S&fhA)t6_zVBY^5USPD_JBh*%fVKzXU(#sd7-G4J!D_i zXLvKqHeowL^l+d!%id)AEAasu_Vbj!okeUW%%m#AsO~IzoJhZz2~PqB5FiS<0Imfn zz^Ky3bvsa(9bt?<&OeLnA5BHU5(6o%wUaB~7RfT^Aiho8gJ`%Aat!Q6tFoXJZM^i@ zVJ-?zs{?eV=FEMs6ww-D55k{gQpL4e<0FaA0>Uw|7MX&MOW+?PZH|C{4t57xSpeif zr#PDVNWb?81u|hd7#Ek6N!{F&V~7foj`h&YJI<hc=YdTYL!7#9@ z&o~Xct8bCItuLdl_tC$JZ0CDyqk9Z*Dryn$ z*wY}`Hr{{^_Xm$#XvEDuY zg6M?Tvo|yI^jlAhDNsz|AaSrK1uv`Q!$j?t_TV9ja$%rJn;agTao~U%&R^--fN9T4 zzXEHcvz}`{)c>BW1ztGBUu>Oi{F1loz?(Z}T&r;(v-u|q{*DI`qW8aw%;x2lv|hQr zT;tID(fELFdxC=nQO8Xmn9M=`LaynA-b15{u^&wST=DA+9i*eOGYqoK^m9$fj*(T& z_3PZYvnW;Aq3pEI(4 z2wTOB#EFPP?nXt9x<&Ac*F9xR7I|*!#$r<=Ziq+}-53c(Z}oT(&BUSu5L$yAK76?y zdX@rS7qGCnI^)Vf^77p+u5y6EJUy!b!7#BUP?d8A8O(-!q!%yc4?lZ7xaJ6W9?EjM zBaglso>TMzeGneV8s=rrJ4q5L@H&6Tg_OJQ7UIMMzQ%)h(yLg=xt7dabl*#s%3K_; zJNVXYQN{8^R{y;sPxMt0`f5jA2*16;0u%9V@|~yC*l@{FCpW(TmmMZy#}Aw|JmGYq zmZi`RE$ejX%$GMNw!6G!C45VknazFBZ&o~&cYHltCiITb=6MLY)@@`UoM+m{9Vq{% zX0m!<&$kzOyZ4^h;hdD;ajLzeKG|i}wT|lgkkFq47VEI+&FeM9Gtdj@u^Bl@#j-W`oFGocK zVuB_w8kSD09k|MuBcXiekEen_Yw(6Ef)-OCde&i8aHKn2eJ-wWy|l@r|4(oK0gHW( zK5%zV-W;`tOyR^!fv8RWB?oZ;2Q?T2Z>&gLNaN38Jc|L3#6k4OIp0_xUt5Q)-G(cL zwr;=V{k0`jndR~}>U!=OlC_9j45$F!c8v?w_LHTK!~}sVo#U|ZhFr{Aiqr?i95PY* zTKx}Vr+LT;iaxA;X(Yn6ty^#a3l3aDXPrXry8NFUlF20+y$9_85?VTc%WzQqrAWTz z=6s5T`h?Bobjn-9K$+`shI3p6Q2i0ow2<_doOM8w(kuK^3J&HjJru9hi?>E~dbu`n zY=O`F@AhQ)SnE@0iVqAtF1_G)6KN5dnWej^E#HCy?sxvt(0=~mZ0{j4Q9Y&J`O zbz(GA6+Uz%AG|!^$a7ez?nGMf_-em49p#<)&qDHfJ9MB9>2Xa&yHpgwm6N${OaR|( zIfm9&jFgm2)gR=U7S|I!xQROBvGat*(|DafD!Q#8DJ@HuqhJktVk~jWR@Bx53j?b^ zL1`D>TyNBZRp{L8!>@22RuaXw>wkWd;|1M~d*H~XA{!gYIGd~bB^>t~>R>@L)0oIz zo)`Z^1nNt9e4d!=myV`yvf@A+(-x}PIE}%>7??MRHV7)I3ov5lme~N6J+wD?!*RFp74a64r4{4&6 zUq;71DfXd%f5r{Y|K3hphb?fjd2#I@yZ!t5vIpPq--K(r)~B9V(2kw`Ix%;?j%>cq zDvm`xS`{bWw#&7fx)t+rjRAQCA}>2G{C7*T5XD+R9&r?}EFzCAWHTpYR$4Bsa`AWg zxmak{95|{M=gonlZ{ui%p@mA_Eky}tmDnu#qz*?07bN(1@E{yG69?Dfa{4s7%oqQ zQ153QK^pjiW>PGf6Z=60+y>5M(O zsy?LG{ZpH8`1f7yu2^a=xxH7th?98k*WI;uiZ_z(=~sr8-!rUBC~rSf!SUcCwa7>w zvY#I9ZeaX;zWve4a|uu0QkmCy6i;H(NMQ0)WA@i!0h7l%+{(`LSRyhxn>v2RWx4X_ zq9E_#{AdJ-R-(w-Ep_eSdPW!Z7k>p5e<>tx?vkJSw|thuzqEU;*&e?q>a$rWSA7Q? zTOb(Ta%3*M#AInA`q(DYgq|#9Onx^qJ0oSwxqi9F1F2s^;_6Hme#Pn7eN@Nl8os=) zih!#11hpAsZYn$fjXpTGx`rFqb8L>*7$Mim3R!nt0W8tPN_S6KOe22DupaL8O2J|f=>9T_%c*pBrD;krbg+QayOm}mZi;EF8&($?wB0Nf` zv1o}4*>6w}8}ova`{fcSJ%|o|zQQ*{MeR9GwO1#STuk%%`hq)YiQ}OB?(TqVfC){x z;LXcf-A30?Rf|frF{{VJ(b^k3lVpTg%hCHz$pcR#iZ{WDIv++{X!Gqd!7OS%g~YM3 zggDyEedLhVfsIK4SnrA`T|m#)TJ? zqJg)BtBi|mv)?Y(lgT%AbM$mByTYU~F8`x8sjR?%hNfuFH>FSM(l>-?R*Y1AG3tTd zZ3r>wP2sys?=fBRAaTv0C0QzVxeDMq0vk}N+2T%r9_-o2G^6(3EN zHJj7a)W=!mhIv+LTfaaV!=PjLs`bE?qu$$i<~8m;Wk{KuFf2sIN{5xts|}#VeOy`G zW#)J*OnZ1$X4D9|uZ(_o%`lJ!O$~%l50s;&X{jNmQ7h|ro~0Pp*zNDgnr3L243?n} z8c%byMxCt;L2f5K;pm#`QK!@j{!H1O)kkXY$Uo)c9nDD1Mgbq(&j;cD@kg97E%`u} zS_urbnvD+FoOMhqJW*@-t|fD-z%h-}dUL+BW&ejAE^k#kyLQhQY&>+1>RouOHvnzW zF~KX2Zem=bvz+a!6+>e6$Ycdgz3LN6j9bvi7$LFD`R7H9U_)4b%9_<>9tpkY`tCjVU1>*#w57JnJm*>tn#%kz#^1m@5696> z&S1Bb`_vDUwp^hPql>d-lJ&SIz?$n@94WCtld-qRy^v8;77F3&pv%aELiDMLdtL9+ zt@)rB2g`IYl$4YN)kH~DKZ~ENYu2M&I@r^5brd-*Ej1HbgZd5^EFLl{4?9N>>QFh8 zbo^dethoZ_{HrcE$gsOEMdY9@OUL>g-ooA6x^Rjg)wp4}7q#!EgSJw>v(@t166q9# zOm=lKrmsJm+!jfHMG>jRlo8b18Z|$}E4f&f5vV1G+G(3z){mK1o12gIwgi4Z7i6bZ z(R$L>mt4LP@+k>;!qK|c`n9eAS=21mS5EUUY(x`FwiaiDvlFasW@Uw2O>(G{e0<|M z=*nK4Ktsq+G4>nf&o1jd>ypH4<>v0pR zTxw>P7ySLBMiBWE;wNRe%yrc|6(hMOFR4W)ZH)>;qq%0i6pK`_@H%#)-i+km<&Rn? zQ=!+dPGfe$dcdjHA#X#cVs6X#Tox=(m+pTuuJ(03w4=yfWgO8vIts&)Nc z`%f;UpuJV@dtdonX}>I)wRv;!g{{JH_M1I^L$?&`s_nitORJ#rpAJ5|y>gKE*F|}; z@14a*$XMnc)0v~;j~HD0E&j$OhxAJ2PJE?xmfd0Hwd|@XNGPIxAXX%y5G+WD7sSQ}kUm@ei?IX0TI&H9%2r}nl@-4@Po*_Xh#&y9d%f2Weax+3~5)h|Jr8#*(By176%|=pjtQS z)4L&;W*Zg`EJ;nya7S5-FJBobn z#WGivx>oWoJim8Wp$|r9onI*;uT@IZWlQ@z70x&gjq3F_Iv}!`rV68s!R~}C(L8Ep zazx%`T@T@HRCTtVmb+naeykirHori+XADpUaT^DHXG*BU9FJk~E-Cmd7q%fqAR6F+ zjrsDV2yCpALI;d;t|zzxh@Jz~X^=BSu#BjlV9z>~R*~j>-8q57JikIOWku<03-%_* zD}4isrz7LN^c96kxRn|2B??LPGlF(8$ih^S6uH~NpyBNRp>Bs#AON|t$ zy!*Hz)_s&FY7B~ug|gmSqToGargCWs<*jjM>IkI_jh5I#CS$+#3W!#=}J za*wj*L$hT%%YbK@-$pZ;UKnEr;U`4Z!yJ@PWRQ$07RQm#l?w8JzIqmF-cT-~S;3Nu zWq(053H(|qvN*AV_gn0eI6ORZ!=&@oRuPSDkQhc$A}fNu0)+-Y(V1*2rHT4mY}893 z4ey0!0G=dWo46@73G{}=y5$r(lEByFt@T2w&Y$wH?6n328X)&b4L{r03Zy_l+CMw= zW#zn{D(uVUA8(6QCJLz&Y_uUTPEri10;;5D8BIwfPKsOAaoQ4?gHxph7z@zq4xX;S zQ748g7(gd|@kBUfOsu)Q2zdruTvV+?I^85vvZO(M!E8YmrRD}}+k_rg0Vyp6HB zhBz2ymb@E*L)1QuIfV)ILt42>n|feF$h?6%O)j_@Ap`%d(t~OZA$_z}?OBDf(HK5O z#_}CvF==^zV4dXa;{51;;>3z!j?B|2NQUFh&bR7d+mfB|_5#zB#!M#xwF@a&3 zChmmjtY`_o$7g#Vh|Dq+uh%L+-dZLC6<&`^h0)$Eliuruo2h{n@@e>UohFR$%Iyx9 zBFl|ie_BvANcOR^zkYhrUhnhzRN=RJTZ5 zYCre2gJ0xxP$jf+{MS#!x7O@#LjVme{K}8?D~r^xz2}RZ{)H2z*1iw9k`Pj#C-hs> zyy$QG^!vJp0iozdjU-8jRyValxmlx|sSYSg1JFL(NTtDgjo)W9yCFn^kLFN4M@q5v zYt=eO-FhMwK^Ugy3YKW|McqB8vU*N0?9l4oy}gndueGG>SFb4rh$eEi^#9clgm;~D zz@mDAhqGL@kDfm5*i~P>1XxZca>c7R?k)^jAY^cCl)h-KhB(Z|#K01!rm6m2prOOo z7)g(QbSjMr4iK&fLx_a*!5?P_S!Ygrt#|JVBu_V5$$bP$EyFVuZV`GhIOtHh>@6Sw z1F)PkLPk#f*%^V5iwytKt6ho&om6rzUhf$b!-CPGL7gfPNMji~lnBC^npvt4@YP01 zycEWm$O&(4dcCnR5ESaM&ofoYZ~HiBf}~JOTk+(=+3;<#T48a?(GqI9$r{RU(8#SW=b>=`fYG8!B>pKjkM zFY~oa8IYA>xwar#@Iw~|U5A_}F5-kA=Beq3RwyxCgkwnNQE>WBT zs@9S!0LO^%kzYZy6gDdCE;a=~q-M}jiSVn+IU)((bBIH@P^qZQmSY9`A_PE=jT%e^ z=P0|@SGg_+L4*cuifF};mLC;`aAp^srDa|ENWn27>5?ghlDKp&UREGO7f>g~_g9!l zwM7O)RXLI+-31Y5=t|OO#A6h!KFi$jyP)=ol;YT~u`xntBUAh^3enx84LDlAMdYW@ z!U|RKC6wwnrSp5-lSANcENK{HYIfEmUsAP`sE`yCJVrgnb;&yLFZ+u0?Hi%hIfWjF z=nMCB8mO*gQ!1@}4=vvI{TAK_K&CVhB#4>;TNZ^t6X;iI>KpxJ`v~`q&#hYO^ zZO?r%ivmpZ@px=@)Pd zngRx%1B#JZt^2W`L#OYG4G0d3sJA5{ZSt?JYjP&dY!6(JrAk$W@@A{z(OH*%2IC2E z#>VPB@74!>7e8DpR!w{sx-V9nwV)CXOS(ZpE;3n zVZ#9+V+(#30z+=|e=v;)%2Djt+p6d10?&JQXBKO0$JJMV+R57u%(~x~i>hJtWqDia zq>c)H4_(Ai>LoR&?!ds+uzvc+rPw@Mld7YKRKeRDLL7Aaes|KO2mm%IUlJ`BW=-vc z2LhJC+wS)CFz8E2HkzX-4(*oI%Y7`|rVv6s$5b~KOM@>DJJ`lU19DI6kso`+#st;g zJ~@vK>YYDyv$($97k(XvwagF?>=lBXV7cuStu0 zuiD9!>5k~I5ou*{r0WH3)wrvlL`Q^?8!~H*gXx!ZGb|1ZYLC6BlNV$zp7>{a(i8>i z^cqQLw&wh}N<61-{+fLInkK;g24VG?T8#(sP`XVoFpRLEfV%Td^6uU7mr&=tqe&gC z>KMC=Wv`y*gk_Z3^*j!eDxfmbwq+8?2Bd1LOm{0*6wBn48%rSIEXqQ&Q4eh)SMkkV zWSLtNnkTMhzW|rC+3RVJ5Jo^$o{YQjE7sHSkn9w=C8f3t@ahd<{wlF}TgH6I=B6e< z<~HN00K+Dw-)y>YvRB)8x!F9E5uE0)yH#Z8z}rRbAb#^jCJy znZ^aRuYNTC_xtzFO#P4R6={~fOM-B<8(JUP0fY4~NGI0XCni7VXt@T)fBcRlTopKT zwT_3Vo?~j#Pw24(n$cVm3dG#ljS$`R9)d&(tAcLD=d{#oR>L5vUQ5h|y1824VCKM- zD7r_B&86pxw6yLA(dZo~uE~*ruI`SEN^#pNiQ}s)GvWt7r72I6h+ zhD3K-X3lAe!CS-3m)GOB#PU|V9Z~vCu{d(a=$^p<7)rhgks{Ad{d4fjOy;K8jN(_& z%OL!%;J;{a5eW=%oLl(A-7Q)aIaJc3Hy2P5nEYfSJa}7rBuiJ1as;3VS&?s=B!Z+% zJcry)>Od|8=)UE0K5%grgn)e#&h|TVKum(N@PHxilCY&R2b-An>)i&4W?W5-cCZFtbuTbhv%^p`a zcp=<_T>UAqWPa?%;hvSprm@3NS=>P#=j&-_otoAnLE__C+N&e_cj-PakADd5K5TT! zvv!p6p`ZVz!IQ#itupn~D_SnHU6?u>_c(p&<&)g({=N3kJXgjWBCq{(C-C_Fz^(<+ z#%-l|k?O~k$K#4WzMr>f+i@xB>=uRLEC2lYu{eGI^nWR<-p%a2hl%S}vJdS-%waWy z)f7R{RuryP%e%5NR)<403<^I28NXNF8xrwzJHU3TltZuY1Wg{i0sYY4B0cTgo}qE^ z=aciNHh+n5l-7P=N9P@EDdRO5e z81l~gT?$7J*jG(yZHZ_)Mvw|0{3h&UDP=W#j&mu_N7Os6`)kU?<3y+-V!aj!nZFl< z^$vJkvMW$^=bTh%b8fDoxc7bO3H#y>4zO=3$AQTTi!AhonjVYD!p2gz;Av zNj2ufGDnqEHdraMB}4f65$c2f$lUe0Gv^n&=dWr8*noMax9z8Sfwxs-w5hk5l}2$X2NT#Y>{_Rhl~0U&^%YvHdXdwa<3pWd{;0$W=EYDn$H858lsV;`3_ z-=FwzUr&JEJ!u@a)#f)63{d{Z9$xwL>Z`kLW0k4*#B^K01N)3`QN2NM=H}`gS#R5m(8B0t%7Zo^w%uff|nipMkM~z zF*X4$7k__jyS6sQ7KMsZ&?=*}=b5b#lkRWy?Ggv*qw-IB*?fB92wVNR<>BB8BN)^tY$l+esotuEl+kh}le1I%t)i~}`?r;vr5DuRlUYK!B~5HpmLDw_&@ zN|9x3s~%W4UIjFtl;x*?bJGsrTZd2^6k%+IMvZXM#21Uw z8eo+OaW?Uzlu-E&wgX&_tK1&kIN8O@1Au-0QTD(G)}*wYNY|cOe5B0r@yT#em!mODE(yi-3)@aG509bQ~C|c85R;Y^;s0}fmA)gHnNQsBO zA9_kdMEi8cmksTX*KdB^zfT9N+{-v{tmwe}x1)w+r1Pb+p@P?ggU+^J$~+|Ei&7fwG_js&RCF-ex;f;@#PBH*OTTt|+*+#GYfYoRYkiv9CI5~fyJ>n61 zi0gD^IGeO@P(-tz%XX?Llj#=Ld#kzTJ?^+STAFU*z8Kkev+MZLf0na#zB63#PumGG zQfQL;u9#XsJuOH}5Va?nvzj$)eXL+gH`3?iuyWGl6KFUVyJl1pe62-9MWC{XBbo$al}7G~z>Lr1q~>lHfuoywsi!g)VjYtJj#tUMtXj z0`14+Fm@~<(#~gH@ufknpxMIX`S9jFd5;5rR)}Rxe{PA@W}f~%5!dm9DQGz42HUvO zkEgh%9PtIOq_jw2*%YOKQHE`Q^PYbUwQ4)tl|OOLl$XNSD<&?6s`NjV-`zaDdt2ow zMO)}-`fX9qY>NX_A+jbCeJxy-X?_C&9@65BJeKp;ag{`=Co$O6I)jXr!6LCBpTm&g zaxKG6Q4oFFQuyXu8jSlS}`Yt!D^I#AEy}a3-1g=`e3jX}qvL zeqNvN1p4nOU9vRI_caa`KT(ryo;5l~iYbllbh|e5dBCT%!{za214Fl8L&1byww92z z=Pb}Xn_j3crRN)(8$jbY_I4IL`%6B8RmQ-!b$GnD%}~KNPBL{nSsYiN2xu(>sbWIH z?|Oh#3jr4@w=>1xVY)%R4M*us`ytv?$;-X z13R@;Ur`inG%J}3yQ`3h?{m&~mOmHn|3=l#7M)2!P(r(ov?``+4~T)X+ctIC(5W9uLNetP3PK)c>A zwYP(`^-{_^u#eVFXK5kyr65>0&zxKjRfICf(sNTqDsLv@*@idcF5v{1nC0bu8~INLy`{NYu@gjbD|*+cU4MOoZ#k|m~rP{ z$KZrXsm5g zEB`g=puCkrfe@*FCr0Aw3l;c4u=AE!7(r*E(>dl*-xXwqSjR;Lv?w+X3w#BJAq={8 zHp-PxIt$h%N%^H>LajsAiDy`Y#r0lg$U{Cm@Lf5TDt@QGD7+FYEQu5v8H7&^1(jHZ zg&&7~dk$gDEQUs)*b%>mG$;4ZNPEWaZ%NFp$ZQW&(`y3k8$)eKEgo!Vc9?K&_Y8LV;ITqz(w|$3>YZcXEV3 z17^f(9{`BOnJOyD|Cx^Y>$HArVzY7^zg)6`xG5TY~k=SBOaSXsq>WhLQ$B3te3 z6hYG8g-zmEQp*ga(7hgF#QpCwT>{3W2<4Pda%em}E{bU*Y1Q-@v8#9iEe5AYw?*I0 zZLc~i^e@^zOOP-Kky7f#F_|igQzHf46y!0`r2JSQC(9-@^b%Vc)FQ_<%W{1+AQe1b}WrIJsE$0(%FCS;fMe;=q6&Kw3p{8meuYe}*L9DJjI z@V8;lo2;W}tb$_V2q7XA_+a43Ca{xbyT3sRY)3SZofgPlT$h(Yk+tGyy(>_X&~?kdUp$iJ|JIs}_5C*z#N0!^z`|81io6T~M zn~cTWHFDRBRMfnpd-hxH=_$(XWNK8s+qk+*eMPNU{Z!z9-jlm3!|JEzp2K!k$1^L? z_kQ1{w!e-7HW$)&ZWHsTTNTzyp}*T#^c`CQ$*Ednv97?b4mQT5dhp zp0j$hDRjsNGBQ?`6=%dV8*GS}2&fSVu-g1+<~3DKcVqKN#djlEDSgy;IxIQ3*Yh(2sGc#vNi~v_&xrRT>dOY?)6+hDfP3m&`woQyIWy zx+fvNWjH<(NNija;SYThFco495q$io zq_o)dwq45j&ol%IPE9ASYf3RPl(CW|)MK;Lozex61nlq~SraS7GA5usq1xgBrf<^0 z6ErwJqSU<|FC_r$CqZS4$ow8D-84RAF(Eay(cScn6p*i$1hJW^CWdR%1qjj=tZb4R zdSo|{-l#s<%rZP$nApRQ)%HP+KY^+nB<;5%LjX8Y zt{QC#of@%O(OAbjsJ5nvSq2~#82qx5`D^5BeT?+?B+fq$BTsIgNm1Q%uEjbOv}mCB zM_?R@XkSr_8gbW#MNU#5s{I-kEky3^Vb0>Lr0_xI8&SYV{uGfU#X7&WJZ!2gcUH<` z9zn(m7#l_`CC6Lj8rhlA2ENl{v4$C40b3xch{E*`QZ31JU5!Sp02|?xkwD4%rE#8K zja#>CL&!**+B>cKB^6x()^Ny3E$7G~!I5KW*-8{_#Z_b~8<n%*0QWisT6bAp{%yp z{QRW*@DJMG8j-C2t+jrq*7k~Iw0bT**=|D8!-1m@ZCv9Nk&aYLL}c9X z?aYe+@<4SrPy&mqlT4xZARHwLM2|vJ!64BGIPF@C5L}=#y^S&lN-T_QEijwv@g)&R zcL4S?SS1kf;cTK%Nt+fG+y!85l+xzUq~d9^lRr*I6z*UFihb_tnh)CQ19$#iDumA5 z2;NPD6(_|b>oK(rDC;QXhUk06(*2)U4ZF_JSUyMip zz+bfaEaJX$#KXl*b@QlurS$+};FpRYSw65$$x`mGRis6L-2(L&^WhXJ1i2mw$0!p- z+t>6Ad>9@;_}~Og(E1Y7E#)z*#lA*1(X^on1+p|=bP6~I(eT3o?=~B?MsT^8W z!8%P0dscpk?(ODoQ?B!es=w~3c27Ocy+@nF({MUZg{fPz|I$z*?eQI+_n&+Dw!7#x zG^+3$j%|zkvq85~F(|`N^n2IlGHru}lt%S@;LC2iQWDeC<3d-oF;)WfGL%qgo&aQp ze55wKP3}({y$n4*(#bMv?nsh#3+99nF`RC!4FImd!eNl9B*ezkWFO6W8Py}@+1uA8 zC}IT2!AK1UQNPC&vj0oXb|z#CtMz9c737f+S5(meJ>W7{i|FaRuDt#^r4>uRc~@CY zAYWGVawOgvF#@e#d?C48=ee%<$R@UKn3hsb5=d16C=v9r<*<@~kZmUOieI1pHQ)L& znC&De@#S6-cka22*JeBT`am^oLaYzrEQ6j7?FqS?^og@RD=U1c1n_)<1s3fFwZ`UuVE z?W)5uhR3$c)#EFDaNQ=GAQA4p9!AWM9i)Iq6h^P@Bv{N>EyFGP$qSSAvOilsl5sw} z*enUzg7P|+SHO|t+!am{503kXm-+0>)FJKL2zUU9=MCLIn^`jM@Q6xI77u51K9!Uy zmMAKgB!i`Zdp!OEi809Eh~WuG^X6tM z;@0Dje$J$hD^GwAZu23fN+3rOpl^2*Mg_|4v4-@|CnY0T`65z{K)yaox^MzMcUnJ5 z>ArU>8C#3okc3N=Yk>iKK8;NEZ9$%Gf3O$^<|~Px!j%v(uA0hn^IVWnlFhisK=Kh# zo%B!%0`<@jNs{#f;V$4md0+bk&))hcf!Kc2WHQ+-zU;p!p9fe5C?sZ}h!e+>G%W>0 zfO)vQ-h8l)=yphR>HFhtC8YWNir11N1}L(OOY(qx4M9XtQ;=01`(KURA^Kq5Kj&wT z6sMuYr)`AU-?&njCji{3tSQ8s%oz)pHWFJqlO71B~ zpAWUceeEz|n|mMSq{yP^pHyR9kM0Gi`~165Opy@vrs{tV7U!7Pha4 zgfDj>IZa`6ssto-mEc}pa$*eaK00SU%9>>E=J5} zyA?Mn(+6{_2|xdBZ+ZD;cd@Bt#TV`cT1fz93dn9;q<{h!Kx~bRM$KBAiM%&{8q&O| zzDXgtHowaeMy@FKao-D$jc|dy4`Q&H5Wo4H+`oN$v_eW>L?81QZq2Pt%$06RcSjQ` zRVhoZf|^7#rl_ijvUwGWbnc{xGH5YvlJ_VfTiU9B-*nk)!+-tekB(rL-#6Ca=p1l& z{?9xOGISM6K!zjPU{@M zY`VMgP71={zibbm;a!F>!c6h-$mOtokDRQwr9P|N;yJ3kM&5p8tqd(JmHA3}`wk>d zye-_bZ(VR5OkRAm_q)7&#BgiCzkacQJS@aH&+}#Z6#K-T~SBv1NVFI|Et&) zee`Imngt?s{q>j=+jDJVM-d1>{e?oy00}SwKn?^WQXzno00~~pRVe7m#wi(x4GQb~ z@`!rwwXW?AcZ!silwCRPjdzby91FGFI->g-h7W{_g9F32k7FW+Qf!Vj4;?YyMrynF z*yG{x)ycO^4(yxq&avA*_QXgSf43Q~!35Ztw>+q{x*U1I=E>VfjiJejDw{3ao*z&0 zAEJD|#KIm+njWhAG?G(vB;mtH1J|s686)(c?m3EBSF1cPr`m1T#Jh+y2=&crFH_i) z{nqL(X~WNxW*@LLqh^b3zQsJkuCj989rAg{B|*^r@Vbe2Zy#OTcl6@TpK1NCLoiE+ zJ+$^GzZ$Ul!~5#!T&n%3@jp&`P-5wk$CtO?zIe#Rae*NylAK5+E`Q@bQu0%HbU5?J zcl7B?gF2i35zX)a@5QA}KWvJ1Lk>I(KX9@+x$t#;;0@D7Ew&nkA8$@8WPG{bRJW>3BK%iYE8_1GBcz^Giu`h)Vzm{ei_ z)ypQbD_AvQK6!$lKsKt4vI(6icQ4TIigZ2E-kvS@L*DhxiSS(fY*plOx7m}iPp@U; zcP%8Hkfp(^5GRsX^m=6^qU*CV`qn?Z3HtMttW*2FTpaeTZWCt-HY|&01=*3$!qcDq z{n|q)dAI{{+N_F#NK2k&(9dvJ78T?U9i|{NTGra~S|{2iCk?ARAMV_Bp({5pj?;4H zT0A#cXNR+Dndt33<5<+MDxHJ`#9f`To_ZJl)ejKXpkf}9HQ4cQnG?TE-_J$=(aIJV z?J>eG%+U;e*}H}nRf+|x#$wwGx@yPU^DaM*ZNFP`(yeC55K%AdqFs=*IVsv5b23VM zqv0QKeQSdbeE-K40t>N1Eq{VUk8&aq_L|ER%A-7dARD* zMC9#QTI%a}=aw!cT=F!;Coha*ADhWhPo0fmnerNa4@j&~q!PjuLdixL@o_YkFZ|)| zYAutk9@fX{x3@P*93VK#_2lA{3W@J!w6&^ncWe?#Zn~*A1b5%0-5};Y(p5vnd1yPZG(ux#h+cFQu8 z|C1<|((mYm`x0;~jT)=6?+kS_d-ta3sUr$#-(qrIepm6Yj ze+@j6s|%=9nF2=Nwr|9Ov=35sJ=?K-hH_2+AHMv)V~(^L_GP=ldekAx40V01o}GRc zW`ppR{co_w<|Z$sjMzgw?409#GNN+b^BzNwlSrMIhIGlq^OrQmT!Nr!S4-5h56+{l zWieCOGr#kU&Z}Ma{_L`LD#TxP-oYe%i0w&h=X;yv-g3=XIP~hp8)Ik1f}odXDixgP zt0%08S)c!tmJse3N&~5oOjB?TIp_OIndD)PJnPiA$ER^t?YD#a*O9IfPcy&bMYyF$ z>7TyxPw05weG{u3|iC6D8r8Ql?b zyKgpV4z&)f>27}<#Me9X;egZn0f-RH?^9YWn`>EYN(jE`px!a(v<~w>itfdq$^ZQW z`1{^@V>8F*Jjdo#BMBW$l#!fLq0^LnkowA@P;#5YHaX1s7;_9oODfV~q(Y}9MWW=C zLrJAl$$tC&1$c0K?7pto^?G)`G~07uV^hEX+AvziN$r4VOKi5BwX!thTle`a@`IBej_{G?^^AzMaL zd_%7ANWMm4*eWi5C&_pQ9OAs)d(+HVcA$S`wsM2Q!{yNbG-W65L@%!K^157_C0=E8 z>CyV<7!SEis}gkDn=--T9>&STR3SdzlrUu+jneDL(EpW zGTgiP_m?<_N%*3n~nHa_m0wOrj^;HX2;Z+{^-3z$}yv+--|F9>W!LF*0)AMGr;ISNXNmG;KG=!F7eB((Hj2 z7`0LT$hf;^FG~`{>c_UU5!J0G@+MpATPYXa3szFU-Z@MNtN!UGnDRzE|1hKNAX$P5 z^VN0NyGPwp|8`()$*Xt&Fp6Azx)x_U%GSA!J|UTgWxcOIx|4#%3)&fzl&31i8#GVo zdvxqO<#tRVmpZ%gV-DdHMN7U;WTw5;e^w>$YqMg3YhUgwyM>lIxk8kE*rA>-ti@Ns zldlGvo$bS4*62KbeZk27>fd2A{TkHF=6Rf->xkL9)BUKsCcNNfk6F^`=Us6$PLXw# zYJ5zK>#-5~)%0{FBeQ4a;Xc@s@nN*g&i1H+jd%t6AG$z%y#Z5Xq@-DR4EyrEU{~RHqK7W)US!(-I z_ie9adCJ}H&%l+HpVuV+<})RW$`=wp7M9zJ3Yf$Yvb<~0sDzMU6ssI3+3WNx!6-5S zmZ{ha3dz9{WSkHA-3P>gQXJM3`S#-8zXRmuRdE~Pgtw34QSu4z29Ua3P3>qlZHa7b zO)hLsSfvB26vkWnBw9r$8kj?f3K(GyZQ&*|C`ntblN^1Lwnry13zJ-0lUxUr+?J9& zD9K*d$=*K6d!mzl3X}a>llKoMA6!aiQBn?Drv&(<1V*O>6{du=ri2croLEW;lQzm) zb0U2>r=mI0%w#|%BZM4@2L%BEHck3+&B1)B^mgLS^bCV>~9GwI%@&zY@#*Lrm z!iAjTR$l2K52wRL2|+SNKED-ccqZ|=N%hmb%Y&&>xFVdtUHbkw$&yXh;erLEG}l%| z1=1!W`-Jl?b+Xb~=QtxRjmF&wI|S09p@nTSLj1Upeg+3n(yk5ZgfxgJowTApa0YN7 zkWU(sPI6%f=^i?$3!@2J+$qFQ@NvLn*F!#XZ0}+Q3?I*<@;Njv`gdxaHQ|^6Q0gJKT0@>x?oFv;Rg^Z%mAO+#9v&pO z2FYqj{VP6?Z4LE`Wa7kGt&%#~wJ`?kd~-IAr!so9@dA?cJv`0>LJ3IfirFnRq%t2T zWyO9lxSW zflxX*0Zb~8t{>v+i1nX8^VMTX&DC12(dH#Jbx-$<0^JUl%;Khx>%UDkO*Ol zfF~cE?g^4kNbJZNC46KYtvId_=OxZ8cSf*rG{6Tke55Uf8D|Z}#1tqlAd@{IWj;`* zqoixccAHWMMmFAq3d9^CotR`}?o9>Cqlj;X=TEf(Wq4l#jhi(}92g{KQL$$v*1kOM zc?W$N1RoT6K(VT5FEOM@N1dTczXmBZ3#nm`Alc-U2r+}!<*~se)M(L!4dkMP&+RE+ zDbkPQq7W{E4Kr!3iyV93iii%(5Ci{xfq)Pb=SI^Hp#V=v8UnzxR`xrqXwC!DD8h|1 z0Ol46Ey^;qA>m>(xB;^DbUB<$Q5B0c6}EXwI?`cbzVk^XLWJcW5}HqH4s(A+quju^1~0! zaH|49m!I9kELRkjndC@^O~g4q>81xXQ77xgkSdI%w?$xLlr$s+3-Lojg;ok? zoL(hm&PEolJjR3DJ`_VFC>bTWzdE1W+9a-&nt0nJVq#3NZ0kae?gDa!S{i4>{Q}l$ z?IU{fNg6gs6vHfXBu2n@l+;;|4fu00^?HqATP;|yMTmA>Uxmli*Dtr?EvTR#fSWHf zQR4HlWQ>xERF^3D^ai^F4n|1BLQ=_*3LJoiNkWTmZ0QpP%-NnSi(nqPt&!qKjAaR$ z1*Dsdn1@&79A#%h600yaQN5xOub^{0;P|MrbK)gve-w>mj z5{&uDN6#^UbipPAz?_ia39>bf8>`lxpYuR;TrCuY$c6Gro(vvBba{^DF#>`R5=QlL zTau@cgz+Oy(9JywV3O|s!jI_fK~feXTYRu{vm{+I+C)g|R6V>$+IGIX>`Wm+QwX%d zjWRw`%A{2-sH6{ZOq0^%#K=2^&QZqPStCTG+9plD^x-d1%qj2`;+047cp+ZD4Y@%9 zBR$iYDRj{kV`~kt?(M+*cY4*W!dDC4MPlNw9Fi-HI_LmqMsKpMGd2oA+&*_d)LpcB zj!W=b2`nQNc!$B&FK=OMV`P3VsPqKg&tk}t7vyHb?jJ1$8${r+)L{-+Ls$+t6UPA3gh^`F* znQJt}<2L-1kPvSSqUh@)oE~wYPBZX+F;2_Ao)O_!@#NYw-8_#j}rx7~+~8FI09mv#0Uu zX1%dz`}CljIjt8^_Em;O0?ju5zb6lolHVLl0uL^H8IrnN>19t^P`1@^-bEX44Zmz- zJV1xpD|XZ>;^o(T&SG;>D%T#CbGd9EVq0)O`fGoFD>+@7T-XQBGK++K(rw?DkAJ_+ zDSYXt`Mju5V3pn%J|h3RH66vcjlLrv=L1d?h0HthQJ-(U{XLM@JrEZ?@W1xb0ZPC9 zh1aRArQF8@p=udude!T}XYppQPt0X08?`$G@svF-I%)RDZRTb#b)9_LCpkmDH2D1N zzrI|(A*3&b7kz&Hzkch|*Vh|gn`|Dq+nADXU8Rt49#2ob7dPCknR0fyrAYiJo&bI> z34vgH=&|f7coz^4w{IK_u|%OI9z-hxU`Lky+ru3gG~IF@wHWg1nQKN?Sca|)xXmE# z!@v8|-L`VM{bvwqsk_ftP#Q?!Teor0F?`zoTe35J)B3b34@CKroQQXRm9u;94Mx24S{Rn&WaWmxi2HHs|P~mNx zT!0v^Xq327S5*ADPWIWR0*MDHkX5U64V>;R!JK*3%;MWt^B=aN?C8+>H-&R_3p^FX zc{mw#@nj zVTSlP^`Q#wSch{qmGRM)-v!fi;wkB7dWum#M6G&7tNBhwYYIstB2@C%#zeDx`(m_% z?LntocuhV@8j!I^*SszyN!_&r-iT2Cl}~Soi>!iK4^o&Yi{e)+2$@PGGC7}XkGj#x zLS#|#j#}q?9oH^ak<-|PK4l(I`5$DQNF;+)%)iSyJG1l4ZTrJz^>ISGK>GD8LAoK2 z8B3nop@sgDgVyBZO#`y+s4~C%XEwyH<&+^uUqaGl4pfRRTKG_X_Z!pa?jM)5B-yKv zB}Kr^QHVJ&+!!}l{i){9lH-lKGHn7FfqM+wnxgmwr-_0|>PFoQq=ww)vu$_3(A|IZncEgVds68a|EDgl?#tkysaO*ugAuU1QMh8hBEvi* zQ!z^nv8OFAJpNX>HW?AtUIIh6(lT=m0M95rlqEO0QBYKTyQL^&h%AdZnPc-qZk{ha zovP3jkaES(-)^jI4%;<4cV*W;(ni+ZA^zQ26YdyTC!OK(DZ&G_`MQ74QmigFdc5zG#Dt`V`kfVaV26nk1##;)tPFG67+Y;3^nZ!pSIw zv|`~5r;MqHs?(SpJA~CoSZZx6_MY*o-Fab4vfA!h?}put2Okvgp4-!O;Esi|fKzG? zHFp~+di=}>R^z=yqhlEgFkym<^Qdhs!TF5m$}g=xc0BpS#Gp5AgIgxd8fnRkHlljA z?F&VD&*kG_)$sb>{3F+nG+rfVwLoNHRjCzcq?gxikujY4cuHagi33k4KXM#dQJti* znED)bo0Y*9Cy=+(6IDHwlvGu;1%>J=1+3?_1Q70LMH<~&?fB+RD|x|RQT^jat2jWe z&ny!1o&x^N5VE2_|);oGkJW9t)l>guqPf1ns^ETNy=q#Ff>-0IZ;A**+NrghyWKB;FEF)^JO@+79F*C20yY89fgTK^XlT8-tAU-f*sGSfufKm68g1p{ z&oQ_$sQRO8_R*oLZ&A+Ue7`*=#+hmPp2u<`f4)f1N56dL5O;fb{jNtl2|EK;nGFor zHyn3)6Oo?0;b6?iJF`yY(6AoqwddL3G;;*C`9KEQn&pHhoMiCWkI*7u9*crdkQxnz z0=;Ah81&M*FyO35XB{3BqzIcm401?_r?ECPBA0iICR}ob_LC-%wSbr_=TS+P#`-Jy z<^b+IM83R3CRIMI4@zxOkhW165Ihb`J|3_!b^vIcszVxrQRf3R&z`&4-4ZITsE8}N ze2a+01XZO25_O^+3fDp=fz}&?*k*%izquB?M`c310{Ltjw36TeL20iG<*_Jkv7Wlp zJvD&)X?A*FE*;yQ()Uw9X7gLfg}z{GXxM1^rxjlTyr5AyY=E=X5-Hz77Y4{ev3J{Hd5u-z z$lQu*2Y>|HRWO3!8x7aUShE0O6Bd4spo_d<0k|G9oV=Y5Lofp`@&GuE(NrYNI<3%R zZ;+A?x_I^yJc;V3t^rFkCt_tuVG$A|FzkiyL&~8J1{xkbSqz+VyWJNVDXsF76%h27 zos^~w?<*6Gl7|!>bXGh!#w&}U!*wVqdJi5N7K1I9P=gG{{o4s-a9}PM30GL5U8O08 zum`yC{uC)@30&&B#$x+1XKS`$GfZHVPf91>vq_;u;oY>`2If|kZ+lYf91T`ptgAon znTX+*$-$oZw$IZikMJvirH-BOcc^SrVKp+z3WILd&8kGDj0`QP1J_E0Be_F%mgeoF zX%%D*e?6kf$86*R0E#V;^xNiH1vM%(Efwg}>tUqdW!an-mO+AHIn3zath0*DYz%|@41PqReTWzFbi(>pK^-1%$VQ|Phxk}ab zsd9*gDpS9f(v64&BhEvdfvv^)!_ky69D^HfC=c2!0z8s!`)faCgzY{vdEc~7-eB?S zsSB~r(5*M-Ac!51>`}Qr@@FRHaCiztNklI8$Zuu3#=2M!&Kv(Sxb_dT$ME4B3D ze)#Hx)wRdrhHd^TKYs5ln=;`cmjc0IA3R#HGtp}oP%bBI3sw^W)rpTc@|XG=jvAXq zwuG+xUwilM12pLTegn_RjfegO?k!9G7Z8xgY^#X#JYGU@BVegRHNWSQ{XQ4Vwr%iD z;(Y^XpQC=$n0H810KG~6M*MH-8lpd) zr&g~C8cZzF43NB}dAsLthx-JE>f;MOUN%Zwc z)ox>Rsag*32`qT?x>)s<@be&a?B)>nYwPuUTaKtk4_=F3a1V;z&0e0a-G`o*jenJ= zl(1dU4Qa@}68{)@Olz|m4|;ws_Ork2tJk|F&+(%J3f|SkQ>(8dpM}0z(=j0qSGTV~ zGs=S%k3K?x2k{+W52+4!U%9?_T>*|2XLw<#fWUXuQppY2=1__yVNHEYJdY7{cvm`(Z?fYcVGlnwEo&^@q$<9_ ztIpg!=eBZLXwmVKylo}WT~w2a{i^26O$&%P$qX~>S^dl%?4zUJgLWeI-2fOj7I(D2t;-wb?$!5#lQq^7%AcAg&Z-s09)a2ULFZhbyp1IKYIA_!z)_#Hb z?4PTpOD2bvuESdu+p9?)%j02$UQ1a*k^P&7Dib5{OrBzYEU`uvnB!`_?TJ7D*BFV` zI@(E(Vz2zh?v2)~4{kPT7MQmrNR}E5l98~LN1^p)HMwgE2!3h6TeTKnqw*z6s^8U8 z-$r2r)l?q^8+91R;7$8A0*!Afb!S=l6!TQqWKdwDxX?Fd@in16T6gUS?%w_N@ige~ zSNcv>=%e#_j6jq=Q*{q{KVe0T9dlgm)?HMci_SgZhvRWlZ-kK~cqY^r=LWvfR; zX$9@sx5_(N+HcK)r}66I4#R72*{txoL&k=2UKFHHO|g7&xxM;v1$L7&g=h=VVifrn za;;MLgP{^igsJ4_*MijGoAEy8I~P_VsYw<>)01lJN3z%KYtSN&l^rfFKmTp*ovQ}s zG|IR@-PF=5UjF`NdBCyPunf`-DcOEZsrQR|!bVY1Q;6=&VMqIyRB54TX#3XtF1oL? z)?}1678jYR-74BLr$y${OA?y&Q;Xspiz`Y{zvT^hGezHQoeWBn9=}n~&T8Bp!IMXU zgOP&GyEKx!io6kEYaO*|wwR-eM1hJ27Of9Dw~q9xdxcYR>)NryS*ts1%m+=$t)c}{ zr<=cHdYGU^0Je!KJC{rzI8%TQ-Wt=9Kg!|GiC4i@lrq<|Oj`HsJW zf)RAs?9XK@ZfEr+wYddqi;<2wqZCt^1R0ws_c}bNgg1LVCDm-nX;0L$)f%>d&nB9o zzER9aSBHNpMhJvBTlm$ELO4flzvA`yrRP8WZ%(?H6+)L@hvS=Dvhu1JO}38|e-vVZ zs;jaD3db82C!2TQuPe9Fwi&jrzseY_yb(WWVh%Hgy)2&Amsq4y&`V~mL!wnr)Fo$g zD7Q|+dF`US9Yxtlcmw-V0n}7*l`>;|(Lf;)V?iJ6T`y2lG_ZX{5yUH&#A+ zZLc1mMw3E)KEC1<&1kOFTEp|vN4Y47k31eGZ6`|c<|l;EIBBg#rqghC5&U~}RR$~Z z6PGs@osaJJ@oFRg2F5x8NWuEfB?`K@G4*idP$UFwXdKgMl@zAphI-8K-z*w;sA)<5 zAjR+f%b|TAxTGaVAYiAFs|%P(Zw4| z6?U^wtDJ(45GR__6C)|;(_y@lbU9miBxvgh@koge zgIWQ6f{G|$!q&c>pQZ=gy)j3-6HwhrCn#+6V3H(~mG~Do9La>E>c|x%Nhey1QQeRr zd5A`SQ?ZnlLWa?Ukd`j&x&(QA%7`CK97xVZM=MF{Qm^Dr$m;Dx!TP-@PB>6V20MVzF+6 zl>pYJCiEnqN1Wrlr;fVS!|416bn+oZz(Oo!&eIdEXL89lZ?#+P73hiX`++e$az6}@ zbR$lVaxwF}UtfUBM$%5#DQ0vdWM8u~m@s`h;{-orFkMlfl!s?zu5$)9WM5F267z!; zJDp)@lv*+aT0K6X7kHBRpm*_<PbE0@B`W21CWFe(DORoQq zH;$tQ_os7FEo3+nCkstWjlX2{bYc_}JvW^aB^-#V!wfB9t(L~yA18SGykFq5-;Q#3 zvH}s5WMUDxvQ480jFO_K{z_dhf!t;FHf9Pkhc23tRl5`7=^QjYF+_}vU}9sfj=smqh1czsx@#wWuqU-RkxP)| zh=5HW^z&UvdmT017KOjVM?>7CaGb6_jUz=DALKlUNoT)gy@?D9QWdZxr!h9-{Skx6 zqhZ)6sbopvu*g8c2OB=x=SjgviIR@#&e$L2GjV zZjJ&S8PCnxS%=98!yar!7p)I&$Y6KE#|{||cIQD~luw-BiDJ18rlLUt8J=SOC)FY2 z2a`T69i#AZLzKZSVHxdu;CaxnD>KQp8=)%Po0X2z2t-bbcsmCZ@GQ2Y7`eFTf9>f> zrgiXU9I|Wk%>TCKv8Km2(>T(y!|?7YDGllpmHznv2i=UOCyr0gOFuZw8p0>&iBY2So??u)8%JRpK3Ru3vM`Rv1tIABAu(n%6N`vO zpE0ws8a)biha3^iM%Ja25Wi~FA5Y1U>rYOWaB0#f|EQT`$Wc1hTJZIxPx8L$Yz-r< zHA7=_9p=XxETGRs`T&)+3Uf^K=K1m6w4(ZVQ{~MO$E6A+4#T~ZJhVsJGKFsDA9bI` zXao+}8iF%SRKj&qKe3XwKmx2pDSLQkG^AXd_=~U~5q2Sd8guFy+jP`7LYSe<#G0Jq z#EVmicrAd(jmncJS62cmHnv=Ff!=Lwo6O$J%8NoSPXrzB4i3aN|e7L8@ zHf&4xp8oY|5V8sKSLjKSXmaI<)8ITS(UkQOMNT+jPLgtqMyolF(^8le?Mp#FnBVZD z5L;#lhYTj2q_FpmqH~q!r7&grxl`*3u?mC?IkEI~OnEHSxOOPQow}s0-xs(vo z%|77+-*WrrZi>xXHM8{!1~;9!<>TP%bX1fNV*JiVKTpoVr4ik3HfkDXg<;QXCdU-Q zZSy2ve$3I<=*hf<6Y$ZkHgC&00lw5&sVRzpGsAskd6ct8SP)St3&MVr+I+9e$R1@7 z6U=TdOvAQ?*vEsNA>tIBB`7g2nFXIP1mWuLGO7aXhb=?4wOOvxljYXr)jb(+iRUAk z*gthClE?)VVj8^5pX?m{63N9B2>&^|arPC$Bkza27s3yGO&a`?h@gDVaZ8Gv&Niz^ zQd=57K}+y(8jGZHWC}sJ^cUDY5y@4&GjQb2>GAJRzb1_&jWK3DJ@TD%_!P4x9F1&fB8E~`RR3|wP#ct7SSctdrC9?lhyWXTR zNSeGQFZ)d1YI*6~$Cp?BC)u*H{O8yA^5^n(QgeQy)ZG=@2Hd~g`6af)e_9l{OU${f z1nF_&TlZ%tb2Zgn3@irRHt8^ZAu^r;fTs76XX{Wu7qxbgVtyThPMXsOB0!4uDuBPe zM>~WqzWrn9%$GZM$GL0o{rmHGt!N&>cUa%~<3n-2vZ!;1 zK6>}H#QZq#bp)X8YFeW;q|e^JUK0ozhThMTb(POhxY^x8&lJ=?3A@+psT>ICBPz?> z?mQnB>iyEoP?FZ{uzoTu%0gLlp-rR}*!4)Dit^uKnuw1KdGBt*(tn?D6kmI4AsiV4$k{C05I+FW_BTI;?y_-p zUC5jWb>+Jm&X@|H8J3u`c5P5m5F-0Iwb>6yn|3ekLPV}vkTyG~=^{PQPkV3^wzFL*I1N+}~# zkDl5{MJU#Z(DNL9&pPa(fC>_Bxk~L7Rb=?OL-|M=Lgfd)V}8?~tC8IdP5acF{n1+8*?8k(jnfK7X|GD5nxtIrA?ZO?_}MM;m?C&?X^eI1FmqDr+1@%9bU*pJ=2 zPS4p^Sali7-|0QBGf&@6&($gP&JuKAwfpk>bZYd0Vgk8DHnVOi^j$2B|Zx(Yn zvi^!`yY$!?YqCIJ7c1eS6s7IUTSB`Si0B7;+k_mNekVF>Fu`cYn22?v6TQFZwH&K6 zYp3bjv&w@G6pGj5+OQhk{mw&-Sn7-Oj+G4NXs?=laDPgGj>3PJ+~}yu()yX^O9%fM z`xxZGXP8fTg(sC1TAaxDe@HsCRuzugJz=cwS*+6;qCBvxBqzs9Q>>3q4ov};jaj2! z%oW^2S!b_|KQ&v`iT-ID>w@(_^%0`KP+*EKyErt~EF z(pG3lcddPvs)cz1!ckZ8`6p3kgi`m{NNhD)bK4SXp4guJQo` zYuE#Wve09+M^#v}kZ{S6s&FHnn0u_@pitarW2G}M=R!x>d3|vDwb`;#@%YUnpOfMg zX5|l{U^peTd#eOKbjsRG_iu%Zvn)a3!a;*oYqnH7sBQF2IJ@3NG3u#J&Ymort=IH) zc*RcZ{gm@_7tMZ8t1;HbmZT7jIm~4yxl`PMSCn;s?0vO^*la!v{LOd zqt%S6*?VjM1BqN>;6T%{FCSM+an-KnYjeTZ+DGO|$F2`3|8Ec8Wc%|e_mcU4mp2ym zY`JyNFKxe4<^H+$VQbsgo8&EDPOrQD;nzPrjv>whDAxX0GB8hxfkS!^VUn!j=Bs8i zpIRUkDGa{Uuwmxg=a}-KpK;gL}8Lq=J@y98!sHQ0i zN!|*@gT=jWMH)K=hX( zmfv^TiyZpjLrO4lLCcX}{w_*@U6BE~_6Du*?a~qyXbH%)Q9DNg5eLhG#J{iJ#dGcd zslxaS2xJKUpDj`9{A;vTvW;c1>;RG36ER)5p%Dr!eT%0ubd=Z%gFto<0>@2Q4t|HT z6;S|^#AfJ3CQ;HxDTAWF<_KUbeRuo-(xkjqC&Yy`j3JyzK$L~mLyCz?FyzgaA{Pov z@24KTw-b!w$^<6f>_6!p`lc6X`u>DH2NSKi$W}H|iGk=Zml|x#Mi5Brpm3q*yE_4Z ziAtSzgAB~iLm-!p*GeU#;6#-6LwSaQC2$Hte8j_vG$6~al%#h+N^D}#0kJY0(N#fl zq$&Xz3hJb+Aa%%WKw%gK=s-%H&w~2qvFFqUFALOy36AL1siIBO5qq;0qD^EDL)i}_8>2iKHz_{+ z&&+>ar?$ZsJth9oW6&}09;;!(+OYUwmy#>?Np7*_D8ly+!- zJRYdyIK0}p!^2PnmJa>0KV+maYR5$=5@4x|W5*C-EFDc^D+~i!3wgTqgH&BDs_t#= zu(pecAhuQrTT|^_V65&2TiD1d6LXdD+8sHFq9r-I9dN!er4DnVX`{e$2k z?Xgk9p9)DM3q+5-lHQ?nCjp=K=r_DZQ8jmBV)4 zoiUx-bfp^2JvEZufthP`+!aLgcgk1ab#YoA(<1qULBU`2_>^iHQ6QKyvIpH-gxWD% zzaV8LT}WI(_bHw*`wto%P?x8t}Pq67gcxpS%|}uOQ;g# zb{o1x6Q+RF?ius_1?3k8%SD0GrC{UofR1>PoB6+o& zjy0_~!Hll7y9b0v4?5vi*M%0lt94&F*`>Ww-W-m4Kr~6@O3Giq=#3X)Yj*FijtkPE zh$@@3FNVKsQepDn3!$W zI1djqJN(llrso{20q*R+b10tdw;nqR{Al)(y9Q(1-Ake;CNTHVR32gY_Pf3hA?2G` zmqScnsF?Yf4R<>CiXY0rgAEV2ba(d|H&Q;^taRbh7(ePl+jeI*Ta0UpG$YgCSe0Sn zLkz)K1d)0Z!Y*6|+kS0MBIPD@=0gv@c1imTT9=ccX&_ooLX{r4sv)D)Ws1~Xjm+NZ z!~}ynEQ`ZW7wtQsA(6C^b#MzRy4fsov?136DA6RMo=^tw(?>(V<98Hp~N=MO*f7|NFJ7f3in&@pkW zX(Cxe$w(IwvQJZ z1_u;VN6afwi-)v&aYi>f-YOroSkbxBNB#JwBjR=WFl@hI)#_TbkQ z8xPLLoG|*3K8cf>QfCjRSi?kpk)~3^>boW&G@(pI?=k@ehg!z!nvsWVCBKMUTa-+}9Kg%ak96yf3afIK3Rz^6}uw79vR8?!T*e)Gn-w zkFf-o12=C)DK)iB1yAZ-F;pUqET2rm-T$N?rU8;V0~EA+?GwT?YWZ6$!VXtysDx-9 zsd;<-zW_`#BN6DW0(!Dh5@k`EEdvOJFGJLH$T~Xu4COMj{eGAH@7DX@jjYhB|JZE) z9S?h&EEbQw8?{Ffdq2|8=qPUeXhMKVTxlo={$w`eGj`Em?O>?44%_jd!?M3R*IvdA z@i5)M*vm>rTS9P(9$D}V+WS8yAR`do71|jVrIG8m-m`QsGqB9;0M3NVSbez5mE&%?^&a0D|oHhZ)p7R z&P=sg#gX$+ukwtxRxsgc+0h&mXD9U$UWnb4W%LcG0J9icEWC>wM;{CUly53>bq`Oj zpH=AAUs~(95e!%SPb|O0FB?@bhG&VDW;@1>0&i-B_#*)!sSDKsuYO3JR&lmAaO*&g!{86YfpLd+S8nM#{5G6R9Be%FLTJ zMx{x$NanagLtU7cO$xPp4R-vv_6?O{4Y}=xs<9*4+jZEu|BzJf&kM4l7CIlUvy#?o zVl0ye@($7#{l#}a6sNSB-MVOS|L9cA2WU7P&;n|09o6+0wArOI$8mBB6{xNgv2Xic z{x**;D_usn_>XUP6u_oct8wG;B%gzt-xTHvf|pvg)S0_&7gc)%; z_JQITuJkry9f1{^1~y6kJEcxqNaaZI{?9vs@bR*5>{z{uR_afE5HyTCOVc-+KOsPUC6?^43bJyycR50}fj7ly+94Q!UiyL%GO zqq|Oz*)!4!;e_6nqn{?$HLb;#*xV&KH_85`oaoss*K>3K@SZG}nweg1*oCQBe6q$C zF86=w>Qmxijhr(a2c`eG6qlY`2OIV6Dnh%<8JsQdKTFtS4)D#vk0X6Ij?c=^4}~@M z#SV=WnF2v*&68vOE6x>R`$n_JAFQO_6hD|ou->XL(&y9@O>30L_x=2j`E!*NG9Xh& z%S8!j!t$_-Ly<&Tw%hiiWEDFV%#E(j}6OvT0 zxxcN+BAkKt&feva7b%HIX^;8s!i5SyXmeDqJQ)xW=cSS0*1!2Ipm{RU&r#5o(p`pS zfTM#EGQ;v#7-J9idQ-oQ2t_0eIw9Zl3RYVgqJmmi8X}6)I>$&$=t+Ex5_%q;@_v6W z0lR8Tsr8N`KNI7{zwR9n`#3)7AVVntQS{Pmjn9HRF85P%C>ikK?-cTY-Sdgm17QdV z*~Q=89|$Xu37J2uJpyZC#0wLJD^}+j6bA^%(k83GeqI{YAh%T}$trd(cw)yk!EG-#pVM7s33owmox|6d*|&KAp8Ac$!NJn?h=QL zM$kStp~(yG*o2`laM_Cfczz9m03}G=}!OyV|fP%`;fx)*lv%zBHKz2sp7L+tDmRrJMJNP_SaGQ^7hLNnleBK{A)?K zOuwb~bOjZ3WF1IZG6!pvHCel`7{Rxu9ltld7R5J+UUYv)ksa_Ip zw0VaUcil5Y>75<;|DujL2;$$F0)iP{!pPOzuCerJGcpjxaBF&!<}=1Kl12;xuHOCm z)`uRQo`+v;DuCB)n8kzb5=aMjVR^rVj8)guUtL~O7r<#>iYNLajFd$wTTi`P)Ha}) zp>{uIs*eLeQD@?#^B!964wTs>0NYQg2%aGrch)}R=_6p5=uFw%tH`eDwUbr^igbc8 zw1&&yAvsCi!KS2>l9skp96lj5g1(sbmC!o`H8o~{&LvS zM^J0XeVhLvEj7Z!j`kOyrSG2?iRhK9Z^j1vGY_2lFeXdg0Uvq&DeR$X^ICIAbj=US zK(>0ELd}%{Mckw^m|tXnb7@a^#OJ`kV6SjEDf#?R@L4>p%(X% z)?kkE=$s}*Hh@i}Cd`p!w$?)eINbNL}B9 ztI#6P1s(0T_wqI!GFg{?J-hFvEWCF833sSWZ8w5JM}Yl=eZ^rJ0{Zm=moO5vL4kp= zax$y-7w>8?k@WpXeb~D19}b0{r8r@}>)kYK0=+JIx=vxHSPz+X(WU(@xVh0Z&vM9cvZ66 zEvNWZ+JV7V-NGhuvWbrk6PjoD#D|%c?Ek802#MM{QMD$}^a!QJ$xSvPKu^(A=0GJf z8y#M6KH9baNZ?^cQ|q-0n?0XfU+r9DE}nGz`#sZ7Ls!1dryA@-$=l0s^-M55p*tGT zeF1~8h6Go(0MJ##yC zrnjOgukm>Lh|hyu?;^%!1Lq4D923X(+?mh268B^75Tx$YLCO~!Sj;`{VO{xu1Zo<1{*!L zuU`Zbn0dPrIdJEJ9AWgp!pf+!bHIJWpW+0`c3n%?I#B>B2fb+PXy{q^j6BG{b=z1P z(G({hY0XA|d)TELIOw3w{FHr$z=FBw}WODeW%{T z7sTVPRLz&P@0QW#a+LqAQt4%8ZL9T6m>qnn8TamIaTC*DCu-# zm_k!3m1+)2sHBt5BZO2-l%zr`>7-~H|y!_v8>GT|_ z8}BX=F=$&4*H%J)XP4*IbZn}Lnz~(((zn)7(YEZ;-Pbd#m7;YzZ_>$;dco6_H8ClC z?J(ZC&vKFl=4IDbTlklOy?BI+Xn|HCieH~UjxM=s7A1vUrK)zYv5;9`+_@{>a3X!D z&TUcyHoP&nYA~wDF#X@cJtzJQ2d$7PQC^C%XekcV0t(G?NtUr!^>a(bE8GzWTUw3Msua0?QW`=WDg@L^qOZX` zH^wkP5-QyFT*YpV0|BbN`)c2$>laL3WA83bj%H47SoFp|>M*Sh)+d+ixn0S-keI17pSSI8=W4F%iw8~;sqR27p|4uE0-Cm(FzAW8ccEHWnVq#ztM9KS z8&*H)A2)EBucsKb(6|68Ymv%al>sM_ws3{=qXQLJ%~WPzu2zFkwq8Vw?x*%Ks;lnf zD5vjW8tnrNqwtq3NW$h@E(>UdK+}|^eqkeh^sRy6I1X(|!pm;h<*H6M8QGmy`)Z-? z#U}At8Y~3ZwnO(ocOV2kPQ~3U>o8nEvqCIp5v;QB!1>Tm9D}JbHILcUz-pa-p<8$>*4wj{P0>T%0K-neGM7frrwV)Xx?k;YsjWpZYTL{-tqrsd2G zxWwQ`qoAHBTA%CJf4Qmy?JAlq;z0Yo#;EH9Z1u+wG!Qj7clNv{FqoAwVslyl-Wyza zWxE6U?^C;8z?oSfWeOiM?4W5=nW!;J-&Dv99XHT;qjBuq33QAekm{}(hnrX`|Eih8 zpEb9Y(d?`Bh1EY6KEP}p!!hJEyb=npF))f^;>YOoqxG1nYSQFuZ&I%LAYbOJe%!QB zk4SlI7X`N&Qt4JyJXhmil-edMN2-w4R`YpSilz$j;!jrH{vh2KctydSYHtrjwVy>| zws2m*hpnXKSr*AjNT=uZn)VsqwALG!VpG^UMrYy1>VAdkn8unJ+e&q?fy?Me2ri$j zKGo=qT9R&_gNCAL(=y6dH&7$g!0csoI9s% z6Lm*1iLBx7cEXbq@LR}?DDUeYf8iw5BQ~RMrP2G@dM)2xRLT}QL+>_8fO5Gjbe{62 z(6gyV+0A?l9KWk6Wp+c_eB{r7E1KH=7TxS}o`s*brT#gq@y_y{k``Mv^EaKkcUVa8 zd2cw&q6sb4ZK`ce&e&ossm<rMAt&Bjn>pbD`yV7z`sHYHVm?EA^5< zbYCFx`=0k3D$wSLimmG>G!I=#y`3|$t$m#?)o{MO=rxM7u}T#y8QKOTtVJx9Z{WGY_(1|o46)QV@dm4 zJ6Hez5Pytt>9r_agg|rDclaNhv9LsIll1pM?oQK1dL;qyBZ!Qa>h`yH_axGs#+KaL zICp_PdTif$bUq<$J~79AF+LjKS_)KFa7zLgCWL@&q01hX;Cy<|sL!u}mYoF5ODE`dDt z6Yg9!y!qJ3-PL&Y!IDv-4_h!K-C^iynt&T-sfP_NO|7Z=*UlW{ovI`I9Hjt?@{jlc zA5gWUrg>zUyrKrBl2#Kd6FoNKq5+)aj-C2paNoaXCKhIC!kkO+u4cEknw#mdYQ|q* z48%bF7h_Bsv8K^Dim=K`b7_@rh|$KT*=2`S9-Hnm7iQ$uwDQzEkTZwxK6zulxF1nP zt9Au12ce-RT=c49zi!EV(qNgnP01b6oYO@8=%k_n2o~p2&q==$3 z1y-8UwA^!H`#37stQMvt;1SAECG<;$tM;VOH>w&2tTg3h$*housC$=weLpNk{PAVo&0K``jrd$vKL!9{6GBIRn1ArR2BFZ$zFdt zr+bx6>_FZme)>7F0(~Kupqk0-o-urIc6<=JfoHwDTBGsv?K@?$*QPpQ>%??VhsWjn z8n^r{E~P_PKjAc48UxAKexFgh+7$K_0h9jM`VpfHa9wCg@=b>5)}5`qnG1fOs#?^% zsyEXdY5c(oM;IIAdaaF&l4sLh=+8!dpN+MC_++b6DJ+5zqT3Vkp)1A1QdqIyACyQ4 z|CATkh7v~UWkZ^K&p--SwU&vmavG)u5e4(y^lXBU-Tt}2zzyh zbb91L(o;1Ojg@ZiN^U%3CX7-QMqv%xG2eN_S(XZ)r?xgsxlBakvVNP7z2~x=Y;w_U z(H~%IDjvLdg5A%Reqq{E#X@{PPi=$ak1#6@DocaN`qXyUY;}ZUjaL5wkAfq=n%1v} zK2@tFw==eXc`@rZ{U;5g`bYT|vb@izyClO_9$*t|$Nu)8iZPkqU}B}kz#Cz;&IKs3 z+<%-G2nO3feyDbaMlf+m*)_;&^LhNlN@k)YI;nM@MX>2_8DM*3x3zxWWkpIT+qCL) zX!%~ki7~;Q@AFbDG-`x6W!usCzJ-=d<*L7$Y-7B;6S0n}Ngaa|{JFcn8c?fYbDr8P zkN9F>p?Ua{hPr+;O+NT_tnRe;q=m;lBHmmTrn%ZkOFEt`&VvS90AU$${IHFE)`4 zkjx|g693{xyibzyPV4y1{oJv9!pBjgad^_Eo&5Sf$M1gD6)WaaA>1RM92(7}fO;^0lWh$&q@ZKJq z--g*1Y}2o{eo`6YFnxUld12=aEt$b-d^z zn*TZaf^e)0$RID!^|cdQWp0u_sY+*U?bEcB@~Y@OJG4}V>V>1a7;hk%aCSUX=z+Ps zTXwwDW1%T4h7DD2mx5+_M`qDu$XYs|{(wxhwnV6T&7xi0YwIt-g9T+h@D zZZ}+Eo}1<2;`|}rki%Pzm?dONub&`T>KIj3y^d8u14cFF&8dw)?5gNq(Mw}NqX#sR z|M>gepWGfFGq5!*GAF(0nf>`gdM zDN%%Wj@e*OP>4b_Fz^f9nSJ$`rC0s(5)T#2XqCunJNesHRvoh`aVh5UDxZ)^ZD{U_ zSGsB4+>Kbl{TKnL*$V+!`H#Qy=?9d8f7)~Q^#e;yqAN-umRB^eE--iGbj}>F1gt~^ z*mdWkge;851%_taV+6wf z{94fT_;lp8oWDf7=HYX(cMm)7wmUs?G4a{e?W8B~!Je4TKe|r!RvzMLfNogm+C zI_(VAK>g&pnMu}LC(6Fd8E<>9V?qy;R!_;nVHH*=ZxF%;4|GGCsvA&Tm0uMau9Scx z#Y0b?9(NxM0ypGa+zOuz3bwnboERi`dPWzU9ur6JGC$K(Q|v~Vd62SSiC(RzX<*dx zr`2Z`5``r*wxf6UKz1ccom_`{f#*u3xB(>Sl$TyA zTJQS`s6gDlHzkJ7<8Sd9ZYft45L1t=)-RkF1g+IvZ@eN`kBfNk)?)?a#efV1E|EG9!asE16#w%u%(z(n zXup-CAkrVR{Qxa9-p7QeYlI>c*d=JWUXIW1e5YTofl=8cDvZNV@#uSl3HI`0Dul zI7D4|2n8yBe%LT!eQKjSsxve>Cz?UfWy6#j*;;Rc2Cu^1QD(`l3kj@(&(IfD)L%a2 zO*y9e3m<4g6h19Pt<-if0jrqnLQDXYqHMrz;DefZ0S9zC8(*6YCSg=Kg&^baVmdwv zkq$N;Rps$z?5pOWz&q~yo^qrN%ZQl4J#~ zIih5CAOWg;VoeU=3-+Ta`=K*TN;;@%pG$hVL!p{ImPewz*@WReJ&b~kwDiYODj+6R zfzO_g7GUKmhtYI_1cllVCjpfPJF?zDK&}8u*n9mkG7M9|^M4*Sbh!7)n~M5)^q*Q; z^fl7PsE_B$d{bQ^Uh-l1oSJmo#y0z1Ln}%alwFDM&p0;p`q1ZO3WQRhG%LY&My&jK z+*bdE5Od?$zT@i(vvc}T=k`>6?-&_;bk*bIG4OSsf(}q~z0tg=0Z3GX<}6CuoVQVm zGQhXvqj#s|vq_(1)T+l6qJzld$&0r1(^yYm-kNIRO2Y%1(n`5#b=3IE$PEWJs+-0` zM&&Bjd7blRS6A8HL0 z_#PfHT_UoqW2+VSc$lY`mn7C184$de1*#XuR>xjSEoy7`P2bfKEo9sO@)CFnD#|Ti zhw&Y~%r#Hu)hC{?So`aAl}85}%(ECn*OT{!@gG8KLU zu#9aljJ#xuqcyDCxMK!7JC=<95(#N6DekKBU>}Oo-T?PgtJtx*)uQq@a5@#cYoe@L zb%K=+5K(mcj6!5|&#mR3dhrgQ2fhR;jK3F*_%V#PHV>MC->JKI*tF~p811vOkfEEy zY#g@AOiPl(g2bMNRM9;1l~pU5=9csWVl>bGg7TPfqMPQl5LV8K7iR{?&}sZ-_I+$O zP&c9ZjwR#dm6PkSC*f&U5!jR(vN@KmF~qoYvj6*@0FF_*WA72MmB>)5u8Z&FU+I{xbmjFItmo1EDtvl0SiDQs(3 zJnfAC>j>RyrEEULlP%Sxlo;rAs=OJ#jq!I3yq#R5quK9mSR+4Nl}>GbKgIL^Jr<&l zwL290(aYYAKjcb|Vq)6vnB$e}T-l2l@AN#K_$*|VtVV4PK{D6^id~(%xq`9Gm{mWN zJX);!yr$liK6J^gSU&jw2Os5Tzd(84^s~b5}XJh`Ml5F zICj^73tk9s@99hrDi^0m+Y=vVo>w{Wdk=HW?pQ!-#^R?Eg8pXKHA6b0(Ed#!Y)+_U z76aa*S(g6=oyo4g2A;jCR8^bzLF1F83tbXG&KPtB?Ni+e8LiJVeIGHOvzGmD`Bf1A zlzBs%9)Z!3b5=iC*S|* zs#`bT(F!_J;5=D}4l(c~2*03Wi9$LHYhm|OR!A%{tluvA_+PBLi0=_aD`sWj)||^v zEsItoDNAV+A3_~`7t)Rld$=rP5AeCwYVNG{m0FbG$1qR#EQjZGvHjIfWy1v)r{ees z60=e-`cPPr@5P6uzr3RL`UJQrl2GVOm+2MDvD`Xnk;t@E!+w?kifcn5wAH{Iq*86G27C}etPvzMtO6YsKAAg}+d zw*T5G#LixG2k#}DH3~e*i{&~$?qI*Q5biBfkcTM#>P387s#*n$bQweraoy49P}41h zpA_(hi&?v$Hc27W^42bPW0=$p;YBV^&17XEW(PES(BP5razjD7 zd@?yFHHoqhWZR*4JVud}tKR|&Xu&l7$@$D^Pn>0Td0p4UAdn|nNg%4I)Nk21=NluR}QUE_X4fFNnItW68zRTyR=LkUkm(?U5bQx7y=&*0i5VIQWPwFF-shhkb5V?ZJwyU z10;+v6t@Xd!k5QFRUe#4dOlX-F^hUGPf*fkqD|0HeYAF6*?TV0mrL%G5YV#FS~>Ji z5>7h>hiecXtc!Xr!-n(9k5RB2_7iE|Ya6gTPIqN>p1@@+i`?9eMN1-Pg16ZW6{HX0 zGB!h9mm>qX#N;-8+b!uwT5w9fFu859=TKxVvSA(u7$QYEVfz#Clv zpto0!YJ~uIxrsuC<+rRK$*N{v0B;Wg!Njo~Y2fEasNP`zx3B&A2y=K&ZD|V_rZGKx zUG?Ptg0y339{l!D=*2B-kT|UUVL;;f#cN>U>;U^dtQ>7k0yrP6hA&I`t&fH0)Y2vX zi+S1c7wg<~4o=Yhxl|0FS5^4kGw{0x=X-FxYhHBPVtltYoBq>v0V{3yY_^w=Zzzpg(!CFrmt3q$O5=+sL z5YJNl`LYUwvDJVTVAZnz-#j>+i&pBZXDQg#gF1@^b(HfcsB6{JkqW12%?u69@FRi3 zqopmzJ7UY4U&Js{ODTqRS~Pr&aJNZg>#`$1%RXn4R%5J-<>9AVz&Czm3s{*Pr;>)T zUdK&-KZELPi9d2u^_!#_wj&N;tk2BW2v2MjI*>2Vpq477R&MzI*U5)2hQFhvXi4xj zU6EhEul9MJEy9B{Llvi_@bB+x!83|Aaq3K((td4er169|Lh7X>5nH7#0kRnMLtJ+K ze%+O;H7zc0MPE?u7B6lo1F59Cw}f}8koKjhIWF`p#CKvc>2y@IJ|irD(Z#YU|4G(~ z?qJoY>tjYzA$Mua-PhZB*eqCn5C(a{4XWo%!1im~0=rkbEK5IK9VZTo;CV%IDeD}| zF>7`G%t9mo{ZiYwPKWXY!U(oyYBG0sVbw0KUzZwm1YFuOr)Dq~(lZoS^aOW`f`}+^!m`Wj57nP3FJvY?gQ8?;N6Ct|MVEi9TJ{UQ zRnwmQNw6wstZ*^+$|-ru5mQC>>WT93pK4zoU(k=IxJwRT%gGg>xia-*_N2b6(ORN^Oq#lB^CFC0~_ufRO&vUrUH>LeO8(TNZg^ zw$Gqq3)Z(=6AgIvvAzv74XosGHpLd*!a9Q%Ksbi9<_qeC54iX~j^}x9mednBiB#}f zxl|SU+)h}IVr)>ubIGDvm&&a5A+tNhB&pM|&NffbzL&;jsMrjvlGlg)br< zeD`N6C+kfF3b^Ht_!17-NXc0(qE9nN@0jej^$qr!bqTGc`AP~t6bA;&3zU19?8C7z z?_iEJVLz6X9|1zMk#KfD%)$wmV=_7Y3JH;r3T;Og`#vqA32-^W+FF(ybeOhA*Dt+= zfEMhoJb)V6vg$*x_>RY&Wkp3EzSk~G3vw;x)v>~N!WGj!$370@KI2KJHirVio~~fk zK8fkeC#p-{gttbM?_S0^9nct}Jox-7{#^@s@Y(sNn3aJ_Tq|IkF9+(xSYg&gn0=4o9Exf#we^{Y}ttQ zH4&qHA~C7Zi(QKySt!Scr)yhA+cxcK{d!H^>8U~vts+?)j;*zDxPHXlK~K15t*Qw= zbx+qhka`uI>~eg$JwAQEtDf{I+yV~|Lob}6r@up#s`f*@YHxFt(N*yDs-pK(=9(4H zhH*ESo$YJbo3RwZc!rBMvMaYVnR`zB@?VsAi86a9wc2g^{94M#)VTjNwM1hkWPb4X z)24YoabF6(_fK$+O^E2P=4E>8#l2!CPdJiOHEYK77r`nW4R5?SZ!R`MT$o}6-8Mq2 zvH)E+xfKf^M?p@qAoUmuMF>>6Rl3JQQ36Rr98z{9HtQ5G&6t5lEl)V}XP_H#UeQq8Zwr-Eo zCdz}5ML|QG-+6w~+0U~D$sb4Y2B~*?Rvfw|>#pQ>F?b2C5Ey{M8Eed~CEp-}y_W28*Uut~F-O zbPCiD+H1BfYra7GUJdhVJyq!rGHgFh7Z3rRMSJ!26~v;cFR=SmVSDS5W7au65n>;j zZ*C{kwwR&^lo>;*i#7%51W?s|-MMiy3g^}VZO15Moes)-Rm`Sn?Wzn=(qf5{5n`%CE$4oeAKGOMRs{?9&8ObTwy;}7Hl)yBd z>1fo7foangLs%U0E>o&WMGEr-z5@E*Ed_XmBvGf9X z(Z;OLZ=OH$$EFyHO4hQkK;!{w@lA~M2RC}ANFt{P4rA6&S6!3p4MbP7;xXfmvc zdAf=6g_`@6??hGl{u|+%Ak$}aAoB6C$ zUx)%PodtnX>Jf04$@jmpgxN$*mg~PnYt2~Mid$ff5 z1*r*Cp0U8!#xx*-{YFwc%p{d67qz1|^fYAeBFa981*^%_Jn6FYc3wa#MPG_N$I@Bf zq$+!Be(`&tukBD~kpE)6F=Jt(jPKlf%v^Stc!M5;6fD$zb?zHw?#_ILi20wH^A9G& z2y$cclTIGt@fU}{oq`G5Lg}Kti*cQt$>zQP9JMcayXnZ5XFC%2 z)LN7VyFDqq`brK1P#T@~j@DS5d`jhl)3TDwb|brTNZ`% ze8zWbAFMLZL9eq~k+Kah)i+ElAe8G8%J;by$Wujz#?>m@ zjh2`?sTZ97Eu`ksZmO?Q;}!n8zindn(8a1R-jV7LN4uZwJGUh+Kcg;2?_>5I)!(Uw z8!XGJXXcjiHth;r)*qeDfH`K^!1CR(u||4_dX{+w?%h`xYchX}x9_^ZeMcr^&76OE z3km}(YK`OO`EBtDt`FSb6dPx;`j<~wci@5Zb#e2Pwk(f)6L|32WZZ)7zm^NJL6x_S zmDWeRXN+mkp}UE7iCzFEG$@Z-aP&c-%)9^}kgS}?MSF>mDdntxd?dS;9S3Gy~4*~s3|$L;=rO$o?}>$7i-Usl0s0 zbD00OAf*w^ zoD4U0hC3n)i+_{1vSLxzOx{v!*T8ke+{-;>J*$->qT!1t*y~RrG+K^sx*&X#G<{-6 zT(+;jkuJlUyUm#(Y(ogs6e->pI(1PtEJ8p`UB8misu{Z@IheBHiY9L#(s0O>3M=>t(wUVeiSiPfvgF$rVvp zbgQk)1J_+z>u^UAZg13M&6 zF}LmT=O}+3g}jp@BXOQiUhlMBk0qPf_QdBIXuuKzeH zZr$en8J7>u12=sRrVuO73iP569&oMCwD2Ic2=~4k)ATUh=Yp8N(H+lwy<5FBrn6~w zpV@7PxpdPQzDDBMA$O|bTD%v(?4c2;zp_4LbRK`*+96t{WtruUk6HU3Pf&CoR`9Oo z>^c1mfBY|RDpv8f&-#m`Z+?5In~M6lnow?It?d5!EpO)^YQ`9N1~_lAgSE z)w|9~+s)uxDB55qeU0@4$GcmWq+Kc9X0+QBsyWF!{(DhWv*9XFru6!$SD$z6RbQWf z$vOFMDQ`N^mGx^|-sNnw zlyd=klkBtNpj&R@jI|dH*%>MSA)iv8o{r$;1w?kZyDVtDfUDh-ackLpQ+nK8FT<7l ziC#~N6hB6;E2Ljbhqo7b1{7`ER;EwN`O8jN+N{H@{;zANVlB)e;wkGjHMu>X!w_;9 zxLKU{rU|i3tx?*w7NV#d40R$6%|%PSZX0q-+%6F-^h?~Vzq8bL-E>Q+F@fFhs8?ee zWS@@QUPQmG@aCMD?pUN!!R9&GZM$uM-TbrI-L~0nB!l@GFH!x2Q@GbE0t{Ug!A4Hs zolPS+ZdD$+d_;|stK(s!+>l6P;gkklG9RbTF>~e@rSma>QKZDhs;**^7`XotaTJ^_ z&ohKsKo)ex@{xr9iED;nSR|yd0RzKSY4Q-@!o;vGwpP1C#@qvnEx7oTr_wSSoU0*D_hlrzBkd$nOXLFL#^M2yq&zfsD7iTNI}_zZs?yP z(H}$5fNYWEzQEVM#2?4-3(86g*($`6-)SQrLMoe;_trV>(}Nj$BY73*d{0{M#G{Ke-%b zH+73I&5Iq(@9NF-n^SgiU^}shAVk>>=c@@}M~YaFo6m0pK%D2tml64*mgr?CnFU$H zBDA1TIC)Qr#%U|~UNM!sE#-xL*(n3C0s;?`xiX==kld5&GKV{P9f?9Oj|(f}3kY4! z*d*4yfQCW?&dJ%%f`m4NGllK$hi`e@TP46|5oMW`-E0Ofj*nNT$VpTAtERBqRF40m z=Mwptq|`p{RN;@&dNx==sFGt?O1!Xel=*-^=dlY7Y^MrEVszvbR!gNYK?uh(3(|Y? z0-CYyqo$umm6M7Ob~7L7r5=N)3ehaYmxXxDx<6%bL%>i8+Uayx7aiC(6vp(6g#2<$Ltz3R;mq81p&(z3A6Y0&I9o*l zKvIw(k@-y(26GV7kEL;`LHb?600j14M*D^jf#AQ`7W$G`V353BkD8h_)7U*LPKGu0x3w4=VyrvGg%-<(nXao-#nbV zYY>~&07I3YK0oeyaB!)Ai!v+kr_YsTas>7v#mN+0_+)q$Mjkvhl*z|rAo*!>R9NNm z6$mDS(#`%w))wG2=R-NeBBd{x(KhJOCNRYa!hO-{N+?e%%4`EQi$?4Q3Nw51Y?LdM zr;9xJ0N+p)f&i#x6$n#Chw{^=P&fSwl<=wLj7n+$<4kd0PRlCO;ra_V3XUu)S~>jm zn8w}ouVsXpp@a=y(DnisCFeK{wbr3id~sQb&xb!{TabcuVSWO?kWlJk$B2Z*@MZ~S zGX-oG6f(h`bO$+E>I+R3u2e_|15%6p7)6){+zQz;&G^t{-v|g_n8qnen98kF&8JFM z*>sKe_QM$ssGA!7bw(%DHuQzeb^jD~@uKjiZ4p}~xyB*vLKe>X?<3)cn$HY)GvnB1 zPFNOSHWRLt?l4F7ft+ zd6uBZMb>XRf;y5|!ybOfnR~!jer8YQqf5|F2}5K~w*~;AvH8ZEI?$<)Jj8hc!u;$% z(B@dNv!KJdEdVbSDV{-zC3#Cuw`(@%JBO{_y}ft*5R%NGCe5wZ@Gs)`h%gNiKniab zi-H*edlgp-G8>SDo;+4%(9pu7;B3sPqifbZ&pmz`yL)Jaz<_ZYvAdIuPKhup5Kl-_ zu#yu}$idML=;jIvM~y?fI!BWmP)Qtw@6as=l2P9xzq#(@;e3xZv0QWDs|iJoqR;!H zm(K>J{K2WrJhYq%31IJJKclC|HWiI`yQ6yx9tjYgtIsVUUhr zo8i~Jidz`$&>y+2%MU473Hn80AmTda+J2w4g&-+y3E_7~KQ`R=GW58o3+I zK|&%i5C<3kLSAi&Xgq#ky(k~vzACQA6U>2i`y)U$#?TX4bBq)UBcvP80u;hkA4UaA z=2sBg@!{xhVsq7Ns)^G?QxM?!$hnB zo4Ly~vLAQ|3X|o_r{<@oiVAk@FKD>|4AvG!R(Qb@Ozo)Xh(D4(hpcMDjQqG6JeA@j zn+_h%C$v0HstP?>k*l5JS@kzJdFBb}MXz9QX)vE>m+e)6N7?ed<@bbPT-VA2M?H{& zkEOjHb7cFX3>!c2UQ_JH8otms>PN{XQGlI-fzfuT@ayq=Xo-~R-A9X+%q42c{fC^# zQv`9w((Ra|%4s>+{f<110}cBeKDpKF>N$g?@zAcJutdAhT4Aw&i+7$ z5Cd`EZaY`NmVK@SJyxu|a0D~fM^ouwMIZ$EN}JWl>J>Njrk+3-X63$^fh7Vd6Ek?d z(SQ*HadQLgBWz~|os~J+)O(|mx%>_7Nh7&_bG_r=XOq%p=Ebb}FmL`9NY;+Dp?y1B?Tu-19S{K87tLX|Q) zPHRR8GwA*o_1hz>3={y-EkT9=9KhZFiZjhOFROn3SdkD80UA?);k^CpZW$v2y!4Ea3M@pf8rBAeae%s!p4Y>Sh zs<}4dJp9D`se*j6x%%0%r4^@c>Ld+Re|NU8VDDs(ja+uO^4Y$yZ`+y!8CLUD_*Js*uR&gAe6Z|?$Dp?@}0YC6kEdI|mffXQx&!gR-y zr>Rlh2dvh1l+4Rm*T35l55g!XkoMgqQ%k@byK{RttwuOnju;~Z_sBJgS3wQ0$VmOo zhx74bgy3sR74K!4$@AT@_ePb7W1kPVhqiHjw#i8U1xF7N7k0s z-MB_^edwdHWyUM>u{8pJT|{l6=FrCTAB1_bAj;pWkrr+?`|dqxkq-^Z^3cAscX2!lm{>!FqL6&*fg*y9}}p zcrHTg{`WT@t*fQc;%$7)GtP@~tW>i`Y_vD5rr4~eGTPU;&Ioa?#aEPR51iOL;-G{T z`*nU9OL&X^E!t0}nuY9p;Q_=#Uq^-SkK0ZlaqoTd4-K%}=`vvLwjpJ<+_&K4r4e-6 zbwgkYJkpPV*T(6BMRE0BWDi=UySF2zIjGYEj;+4u9q_TGC^BF>_nGHXkMvMFO}YQa z@!I|;^`R)Jv~}6WGjSRiD0os-p-4hqw8Rg0sLuz@f zwIG=EJ#7HfMvU_^U)R#OY@51QD=v_hi09#Cg*v_HaK3e}Hu%7;-t{c~+3CwK^K?Hg zr9+_B#Ay>ZR!1k~T2lZ)R0;r;pV=e9HhgG}X#r}r`_z@E=U1D`(h zJ|FWpnUDMkpXQzxl}yv6_na;#1(ph?EB4*jZ#uNkhcMZUin0Hf7*b%yo*Ea!=!^s=7Nx z0mjt&NAB5y?fR!;%Vn?^sil{b_~Bvhz1pdq0Mqcyu?s4-JuP?i!`EB;7?%rw=UWC0 zX1ALvk9_}JYO*b-9S%?2TZ~u4TAX=vB;&=Ex5w2kxH;F>?JeQ;aWeJ-2Lh$QscE>@ z)iHRgFTip4=Kw!0fiMX5g9=&!SdtYa44%eIh?eRpt=aZL^Mckm*{F;^DAF^SB-5NT z-R~!^xOCHB^L0;)KSVoiJFagV(|G6g83NbCl;(LZ%GmbbdEAq7Ukpzfmg&Xx{#T@r z4z`D7hNN|T8RhUYi5kUfBan6!NH0|f7>~hD*YJvebo~|8eR1O?;5 zq_T?4BDziI)wyfG9*Z`9T#k4!dKo>v9)_^Cih0;WMgTwD$tiVry5ETv=Eb{0r)j3n z9_{g`(?|3Z8THPoscB!|yOZyw+K)=()&Bm99;TKT2U{iwrvJCh+*GnF8+x5|v11Qz z^9;myzDH||Uu8Vpf+#0%>HWJzmaR%0)nj~~LY*2ptn^h4F8GlLV&UiJtVX|<>MUJ1 z!^O|u-QT=vIUr?Y&V5fMMgNUaefI%a+T`xzjCL#~^mK+b^rArvn_&~{?zB^b;5d^& z+fLybD1$h)+0nS~)gu);2k&!+Ti~_ctBeP#i%u>n%{M#6TWZ!(xJqtDYi-~`!_uCi zs07HJLHD{~w8GZcM8lUsYK)!QFBS8$am8#)vxZYUeT9}$hmf6`V|vgZ9`@fm5I|ue z2AkEG%KHLDO6&Gny19@ zgWHC7=XPE64H32VPFs42De;P4C6GaDbU>Tk-|NYpDK77Od^(wVN@kH-?tduQ&K$$g z@Z}xRE}_?%)AL@EsSk^8NH4XX+1{J1_5RsQ*uKp(%6o&OTjV~ehsnX}o{+uohf9s^ zjl2KubIq}cEDZa3b>z9#=4;QMKX95g8T(VA|C_MC_51mPo&UXmsem11us%1JlsJYma%d;6;pXdp7{j?cbWo3R3oH`HNihz$ zbzX3b7JnF5%XjEB)VD5Po;X3Pb?7o*W4(LThY79Q4&64#tV^HjzIZs=*6sAd+7J02 zvX7-@gsHKDK(>UvDwefo$(d~mYO2eV1IDc&Y`!i(RYDSWB0HUIJ~P&1ZO80Rira%h z@K`>C=b;eqVGo@#6k+NPkKrcEBXe?@_PE|fQC|_$)SF-Wv>Wg0^;Ei}pFb2%T64WG z)Vv<8phoUG>Bw%!5bwo21VDKT*x$S_psY5Fqc_P3vhRm>UxiqV$tkbO=vN_6C_LSv zO0i8hq_<*o%)G?e^)A+aL;JhepglU=e6!?Bljo zajv*8^Ma_Zipvduc&iE=d*az7)4j1`w}5=gC7cyz$+s@E)@+GPaW1duGw*>hA;_pf z{@EHC0|ExZ&}k_M*)}!6KFo8{6z=gG>#P$*k8>u`NN_NU{8Q3DzdjJbG}Pkf2C$iB z-}4iC-od7NcVzVorM`72r&{DbdT^XT#j~hGVY!c_^x5y=YJW28AGNi{l2syQT; zN=iw1FC^)tQqkMTzWe?D^Ve=SyIs4k*Y$ip9`}2b@-C#$^DN|17EFa3gMRdHrTtn0 zI&jS2Z%Xnhm7sR)C~duI3PE#+F!`Y=K>9PiVyQo1fxk%?E%%T_fy~B&2dfJzjmT8> zxR3apficTLzCuI1QV=~0aYKmLG9+jSWLU%K_Z$*cC6#;9wg_ohS)kOKwKkn;IQrNj z#pzN+zl~srO=qUfXBTMF8{KopV$G>O1>QA*2Yy+d?|f`hoXn{iwjy-F3O7idAL|E) z@>Li^E;bSL3+DzY8#JL!J6yZgRTjpVZ9_x9PKvz|Zwtx3r&lD=Ga$O`we#uf`5B6$ z4k%{M!7TK42A~$vd;jO8O_*~K@k=+dr2Pi8f1iQ-W$M5hb^J4>bpaX6)}}V!+t1dv znxpi>P9F<~I_DNnW%Py>D)BQzBO$}0=jbAsOhl%*xF-eVIY1&jg!gLBBZDIE=L|Y! z0~AGMV)Hpoetv4TkaP-5BdvmXS%TOK>$o$Zy5aOMV?Z~eU$W0pD<2qqER%8eC3!!w zbAC}dN-%VLY*hT*GPmVrWtq}yhQR89?kXKRmAOTXza{#9IH5|Q$jn=q^Wn;LWQWVQ z=Bifa2?Zh8&iyc%%`6y(qcO>+n0VptbH$$y;a|cHJ4JG?#;=n|V(XypODEYB_~tdD z^~y6{zpRhqjH7E_?Uh*`jn5o<;BwP56>%^_KPPLuGJ;8-N#B4&tCLs{#{nbxdt=Zx z0+LB7S;eRl+u<_ekv5oFhfa7`=dFuNX1}q8-8HIk53wQ3Sq~g&p;f*O#Z@@QntH zw$BqeDyN=bYe0OLdQ6F+U%^bB9g~n=$~c-|2nhe!d|_%W_1oM+Avd#>1SH{At2}`^ zUWV7-MR>AN8jkL!OKuF#0h-z20gC9LFZ-_nBSY1L6I7S6!ouRzU$$!%GS9qn_T%F( zjctj{P#xjJHlFB?m4eZdK5JKv2JP5*nAnDse87V7UnaUQQ`Sxpq?LKO3HelIXwEZJ zyEp^Bk~h$_uov)crZbgY9MwwUGb4^y>iTs@rtk~iCp~D^YiN3#lWah~@^SAvKN__M zKHcu5(dqQxIY*n%&VEHs<~`n8OACycEQ_OoHqpvYP7T;JsJQz%nKN{(M;y(?p|M?A zN}YqeJ)FVz!RHZlrGatWok(JSKSR(cji9NA%sKRhs>{OW|EDUvsS>4yr)kP_bkl+( znl;pY=5*qlB}4>V{khuVm@~19VOS)C)V7=fV#?=kmT81|&CYz`$V8q}s^w1iNIzSG zwj!J}$M*KM`uYX1VAt-`e@~(Pvcx;_Ha9%gw8m6>o@^I?id_+xVLWk`J;md>Ylvr5 zMLMn@)14!5bjI|d=_j>gPgFxlZL1yEnXxY>#nW8w>mJp87SXRCkwJ=0NkYZ?A z3fz(71JDSpMAbwZe2Lb3T_b#Ruujhd(xpdGzqtOsAYnxlp*I(hqJs|z$8yGxe{se0 z0b%hhX6UPuXa*V#Rxd~^a== z&d&vV#AtZThdf!e1T8>pa7HE=bx33=rFrAF(1K+Dfq4KZ1YB5xthRuw|5MzUEp1cZvd{#X%@zbA@dpst{YtKt zL-+^v16+ca-ca}@yvrKzX4}f%?YrHUs8VmG5NCOp1FF;Z7`s(oIkE?t1qC@T)l0m1 zt+01mHhik7AW`|^ccJptMB?r5#KA<;$htCvd^ZEOMm+oX?W@=!2Bu%TcZDh&wYmO;(L1qovUvhmiTv+M>dKt3B-mlJ*;x)oNo}{xFiFromIqSBwgnj zNP-V?0}#(tujB_tHv>#+FNJAf#`g8${pEPvElCV@T6>QQugCtiuw@>k86%joYiS&ZIPx$469Pl z?r(@+ga`xbzr*McE&>E-ut>2Bo^^ZlQy!uEck>)BHIztQq}*T;0njwNCOx??IIkXP z8OqASFbIy$wsv;>C79oUbG^ms#^5c(7Y!b~4RfLFZLEiAT6#t79BLr9>3d-`t?@RR$tT@|P`b zQF|Eh5HnZ)Y#^*{`AgE$O!7f7el+^320Im+t`{M-!v|C!2bvT1&RWAcirhL^9N+mQ z9qMF#3v6Dr=D+WnM$Esrmw`QYj=DYbD{G1q?w;jdC;T z-^8ive!)a&oSMdL@o#7~S-tOPSu5%EtJFpNOHL>0+S4LC5eE)_0uh=W@KrDxnxAJu z90zVn`7>94>Lw%;+aIp>5VLZyPoH0Nv%e8E!x2DpCE0MRs*nJuRsNaDc+kjBRc-i| zv}F_iZbJ3l_3O)mb5ZV5pp__x1_h5l?bV@0Ji7Ye_nt>FlnE2Zux75|6|0l4yW-V2 z2rF|)m-C9!^Wy16D0&E^drKv777`A=QKs!U|HVNZFcrX`^4~OF(M@sxtiNh_d83OW zXR+$iqDn4Q+5ajD5%pD7Ch5Rr+pVw?-~vK-zFwWZU~=|H{kO2FKgyi&^egK6he5;s z9sf1LKA*Yabo=A2)v{>=h7}*uUH3ivW$rrh#gC6K8vpCN)BsjE8u4ANx4XjBnr{YE z|JO!MotcUB_TRJO6}SC0!;Kbm_kO=GFT(j}(4B9b1rs47`pf?wZRP)y&0gkTzwghW zq5gL8`sa_3A1AxC6OC_XFUOe0tOT;TZVFCEAAhT}40nk-NUA)Dn*WSc9D_tac@+ZU z*?&i${W(e}+!>QZsObJr$Mx^Xj>&)UjJ-dc8{H|*dZ?R6wdYp!X>EiR@FJa+qj%)MjZ3%uOY6GoE5s?fV?e66Uy<0t+UK*>ep?KtJMM2yZ2!G7 z&@mC-P2-4+Thgr^)sg*og5|4Fr0-FVRC$^3H7W=9I(4@5#DTrHf`-jjA-3faNJMv{_tqww!l@8&p5X;&mQ*Ia75!n-cOG> zis57gj9>chrEA^x)x>@nNFQbN0$TRC+OgGaDIQsB!rLj0(){DV0L7xfW+AUoOU9nU z9Vj}XL2oZPrSVXs968Afm(P4B(MZ9HgEN7Jk8P|D#T zUe)bAb8|BgZG3NGAaBdiLXc4BOu}Z&K98GxH-1qf7B2DB>U~4SQ=2b+GSBSjiY*pI z@k!qzfKT9-o~TTFaswJ_k1#XtT`tu!C3D3%_WDbDCk+u}E%4L7YX!7ydENNd6Zr0H z=Zp2VftY#w3CH8`s6%LQ}tNtKb|XOb3gMUr40-(7PDYgHo84E*@G zs1~TN_~ES0X5D$(G$7FGIADsYfGi+buiAQ!7S4?KCUtA7c2--1v z;}N1oJ$ZJt;(hg=<3gpy+DO#?XXEVu&YKZL%vPX1MHmFeBng_B3oa)7f_q+mM5dhX zDaR6Zt33&oV$$@vHuRnV4#zEt^P^w9Wl(>P|s%!o-m2bqzDjP$JaY0U3aPlx{Nj}pPI;cUXgC0 z6j_ok8kV)DG|nuj?kr{Qz0a_CqZJM<>g|;QlWuwEW0w+1)t(y}+HC_77ZzI*7S-RV znif1?8%_U;J+D$WGych=c&20TlU==mhZk4wtDW8W@#L(>wW%q^`Lo7D0^jH}|Guuf zK1JH2FJ)n~Cfu8`!&O-WM=XHJ;D2Q4rjRuQsaa_Zno1^uY8%*I?mQm8HCxsL0aI#F zqKv`6i{8fSIyfLVfrdz-0Xa?~rZLCLG@p~L`lcU&g#&mw8B!Q=yyIsAVOp7)`s(@O zh9>0*{+zs6`)Q@$%*>=dwhWBpZ0$lXaKi}Xje0oNnXJAf1_Vv$q7xr^OWccWBHbha z;)r@9LbruTEp@hLCEmCU$SU0!N1cJP;?H$@##hO?Y9Er?%IZFD8M2D7YNMV!m?k({ zR=J?17r6a&m!xUc*n%QHm*8oPI(jasNcTJ9?#N4mHIAt5IP0hHdpXJ2+^#l^u`YZx zC_79wKKxRpCR5RWF{ui}9CqMyC|gu=w?@we1ka9-eptW10j9M))Cl^2x`V-Vk?*gBN7)kNGsNS4P_ZQaZ;pIjPUW zMCe4((PancJkBt6>B2DPEwXGg;+&I?d?|>Hl4((zSaPw4d(;&zz%T(HRKBIbNtCuT zYn2bTNSTgT{`K)AhUpo|Ir&z0SGJhcf3Q7ZJ)Z9Wk-96r;(mTm7lOcND?It=Q#bXp zK_fy7;fB6v!>BEqPSR7Z&9yH5@Z!i+vR*$e)Bb${_uQ&_q1~}jpGjtMl2CT!g7Ll& zLAEU~duHXX95(-VdJYMci!>;rT#I3JZPxCP?`lzk*RD`$7PWOwbNk3p#sI)68TsLQ6yGh-YnYpD+&iWuK8YOV!>hZ;%WbtU1n!ImTIyN;~? zFiw5)C7~cV#OBE<5>YfPZ|lCjyA=+;QiqiZ&FK9pK9rg08WRe))p${=cQN0^W-^~@ zzY$KlpgU$qsRoN!zW7Hz(mH}x65HN_Fewuwy)Z5uZqvs3enCMA`=;-dkMqU+S2C@$ zLSS%~tlwX>p{N+FrIkr)p%xwNGBEyI+5%sgyt23yfN#@c3;7e#7caZ8*>y!4a(dePvdXCtZ~aUZ;q?Cq$!_G8oaQgYjzMPbHZ9Bkf~rj%KZmKJ1JFn3|p`7Ls_$qe(7PFzIL(8K935DDi5LaTM;#B$xawZQ3f%`iWY>xsnlX!H@9 zJmyKl1a;%Q9-mZ7mAx%=-p9X?UEMy~Nz$#h#Sg{viNp=I7+cBV2vWL351 zC!fss(5Gf2#|VkITJ@{P$r_!SM$+;~KKkg<2bU{2I-Qx=(PuYAuO`|WBsItTlmuzq zR6^kV8%R7tBU6npo9IENInOAmN___E)|@aQq?~ktWQb1mrrmmZ;aJ8+-w2pepx6WF z6KPT*Qi)ez$q{|JsFZ*k`+SV(iHu_p#K1`%!|D8k(N9z6)$W;$mOms`a`yjb=}H}2 zdw{P^m=zg=FbM7>zIPn`jV5;D_M43B2~`GzT7o{4H%^C1*VGhboh4)UK0D?51KO$B zuJifzAf=lO`)0KdJ*kP+g;`PfA`qQ)+CIBgr~ih&!52%qIv3R@$-#>PZ6EB-nkCEcIs#sO}Tk_%*9E2k@o`_w8yCZ8rL zqJH%m{l!W-4zMuo;DETJq}``D_sA0w&5~F?a@bw6n}b#SBq`zK_?IlrBLt zZd~{)fxRInsKXiZWJ#W;Q6~A#cAu^(o`2fT@s;ISN3dUHvL!4su)jI7?^!SrF-~_; zN+v9Oaag<*h_#Dm<11Nig1+WbViPq6umH9n;1`QIk+Ni#BuzsU=Z&5u1*R@N*Ga`5a^Q zSui)COl*#`TPW5C$~dx09T{tsbfOk1cPVGwecy}BLGb|*%a!}7+3Rxv6S5V+T;7qT z`wtY&qp?8l#MZnx>HSrSEnZAg_o=-g0*n6$mA1VpDKFG3`)Kc zy_Zi+vQ{>{wFL$g3`==COC!?>l=8(>xzes|Bz7-Mnj>K*nV2s6nik0VRA?Jt+$&S7 z-3dfQs=t=b)aSq=*_edya01XY&6arDV!WLNZ4;<1{#Ypmfm-Fc5!%ZC2#cv|0}qzp z!?*+D^3hQF(^sJdKRJ7p{Bd#7(e9zRiyPp<)oo~;xH0ke z!AuO-;b=5WJvv75vcdTZV%4`E3e0L*{OISx(*(nozMqvLh4ZCI5!KrE6kg$iul?(* zk7-eYdDrbF^@FEvB;h>r{%tEX<%|MQnfe4#yoY8Sj_pG4Xm~a3bT-Lsuj~kYgk>7W7LGo-k*F8Zzw0F_}R5p?#l*>Le{p`cwk zRrH{2>Li^H#g~{5vB2*k6pTBi5rrF%slsx_hq&vyUSJkj+?4>j-1-}2VCcq7_rr!a zL$R1M8gO+O4c1Cf*A=~tna41~5#mlTql1@RU|2lOS8p(X?!1%3Won9OoMPstGEe+h zN8mDNPUG;mxqIJE*3zXJW}BJFi*UhQ)xW@foc_1ld51Pf~a-2^R zjr)dHTZ}j&2ypL92p^#}Kb>I^dYQPIB7qko?ogiRnq&ZiAh4BB>s@Blc3v!&g&6_Z zI9+laf*Px|H~V{OWx@`D%Zce~hHd-bIVJaCwNpk3S>_WNBy-2~JnA66FL@t91xu zz!2_=hXXcN^p`(yOGONON2zcqU#g=N1fWvB4aUXV9Bk}J)r;M&7}=6g{HlJ4TLs8K zbl?kkeK67yqH&mFkayiL<4LY^bl$*7n2LOxYdTw{7lJawWIOs*YFS~==F#JHlA#NA z?VPp?Ony;)TW`N=(g(G8I#J79Zn&T11K~%TNIn@7CQ&lOyNg=gcM7kw$HSC+!(f-M z5%c-t-8ECwmWRgsNz!9sSBko9$Z|c;J_4Hfia%ft9(c32{*|i*wjT}nD8-x##inDS zPGTe$aLf?RfO5ma5!t(?5^hjkxYGD}^Vz)?aZdjGFo^UXiH_fUNkUqV1cxyD!6&&b zdRQRh`VsU~af;_8uq^Rc4?t`_P>uvsd&N_S&G6j(2cV(Q6)1+8;W^lIwdU+Oyeu$Y zlLyKiZ_x-jZV;;eRXmHRC=Jk~WO(NtI!5A3U^wi+K@^sTX0;sH&y}#cL=^|8pz9LS z9CjG|R27#nxi_+j1}bZhVOYmn6{o)f3lh1oN>Foc?HG!4Gq;9+e7IhgL#U)#V8V`V zh9Q)%=fY?*YuUxSl@QpBy>4{@XI>jO^HnO<~#XE8(iTEAFbBxaP3 zvqF$R(-q)AY6!#niPwKbkN&$vhtn$N;@KzuZB7x(-EdM8z!Ty z-gpthj5kqzG7gR3qUH*YR7D<_V@fV2W$DRV#&HQ23Jsxy)xsw6@q%2W;J|%;)Y}hg zvH(01P*MD2!-8BmIj>&=QOP}4NfRdwK(c&qyd;8C6Ftmt%kc+O9CJXEN>@g>SptrN zdZ<-HB^S6TgDG;+zu8r|7DBW#!f;(pT%h)qe=+6)JHVgW-D@7&Qg&YeQci=EH`J8F zS^+I3!3yfSuRy+XyX9dmf^~;0h^Yi|&nKfYrm7^rvB)g5I1ZrDLCU(?=p-uT&BZ}6 z?D0eGo(IoRsJ~ON8Uliwt8-Jr zFi>n@Ex+#YCB}IY!UU@PqGs`~@Hk8LLA$Derh+9yJ~%MS1&yD-U7Mg?j>g!qWFD!9 z>F`z3`6|nx_qmITMZZd1GqKYLEREOTAb%WJno`#;C&-Jd zW;)q+pPWPm&38WFgMl=?^mHw+qnGyn9r`D0ST9veRBgU<+FJ-=)7m7c8xgkKMHTG} zF+t{0LU_y+A9ds5+4v)!2Pwda!_=rZr@U!X7;ba0JZunFKT94tvc3HN_Ch%UFjGJ8 zteNB7lCQ$LG`PK7j_X^YP=k-MXip0;XsSnXa?hlfYX^d;sY>Ic^@jS8V$=C5L5@`5 zdu;g5!d#|pjOg|jC)RX+UjUTu5{-TL>_SjAjMJs^{(g!v%)#eJ5vzERNO2 zrv9(t2@R#|A#X#L?uD}Txx@}g-zE=UN_(}J2GYVvm)n&olhkPOxA9-Is^=c;6dpPb z_@|&<-fB1^f>ZQP zr+g#}!5)mi-9w!XnTOvu$C587?Yd9D_U=Hiw^z{hD$&iH2CHniiJ;+J?4mc-nFT@2 zvD$;XY~$pd#q!&-a9m&pC49Ive#L(d+HICOi(>4FPJVkO>uy)UpJ%_;S~j7*bn@XU zyVMK*5Qz`mcLQbGB{Ubix#5$cIK7$CelPX@LGF1*P>tBct4gjof`2MYH76Xt1nu_j zjd9LlRo?mgMUK<{KN&&F-BKQ0mMf@9CP3v*_4g)QAIQg731 zz9-{hVQ0h~d?-JyFShY-=q1;et4DU6vb7cL{Rm*HH5hTMhTMMEqehPcS93LRcl$bL zd*$69Q`o`J&nJIoS-R=n6Mfp6r{1Rz`>#GG7tt$MZ(Uk@v%Yepg7P-hscTDhp-yx* z<${sfr!)7`h8?E;^x1tcreZJry}93CO*T9K?zyRtvleQirzn{W`1ejAB{xmonD6Kr zK!m>MQs?f8%I{d+c4LkEg*d68)^_6sr+if$b7P5j&Z!z5)?0MTd*L30vhoox{TcqS zj+S+!C|at?Bag8MD@$c@9-nq>aX(X7sz1@}W9cZ@alP%8@C1Y>U3b6H`Q~c$i;g{y zZ(MqtN4_YE+xlOk-%4(Iwd=O|m4EMX;5b!}9^SjbeBoC`*QX)ZbLBL<*Wa14+fo*d z8W7z5mHpe~I;G{fL&KrnNVJDfff-vi5~rasGBD1roYc{vm){Pr(D3#aDQmo_C9 zw|uH)%U)lGDX$wO{Hf(TX8h+vuO;MgFbdv2zqkPh{9L43jKC80(JhXfh6|kIbD?}B zAA>LAu$U){VM2^C%*BR7<$!HP%rO|-PnypJ1m+W4lek=ljnw8~uBxaT=|UG{NFza9 zWmZk1Zd?0Yq2Z0CITq?t@=4I&Ghb{`u;lA0)F_)a-D%k+6^Xas0a(xQQabI@M3k8*(qAR{$pPJqydpk8wKfj-a||yOVfP>OvCpVLe2P zWM+dDQ^a_E$oD!r2o{?;F$bb{ZS%5)p@nxp!t_uWfE*OEqb-GYvf- z@2o9e{C0P1yxC53SnE|h@mNH^i_m5r(eRYe?Q)H#1$(L4Zv2O}@1a^k#C{T(xH=a>~i-qy`EU6)$GA;?`TzxAqLdu%&A zrqX-+$9qC44^61|=IGSZ+-7!r0%PCRY z!&hAp);_Ox3A@uBprw7L9#c2EaLcS9UOXpSMt9!q{0T*YS5<=hbCZShPcR+CYz?%v zOFt^TC|nLY;@A3BekAnokD3C#{PQ&JjuRn#zwy94V+|jC*q3KpTBJbtu+}A*8IDFS zt&WKU=Rs@CUfWOp9szP?@%blpb%!P$#&S3*7%p+!Q3Yt&_)7XOsoJ&C^V_l<%T6HU zSjX}Q`hP&2gGDU}hxV+INdO|5?;2@!q1m(x-6PvyL{fb-M`f8;>-A`RY02PYraVxO zo6A;ka~;2InvrttBC$o$*&0FJakolSCg8>C&fgDTH2yVf7E)0|?yP3-&+01kZb%_| z!W&Pi3@1(K(qPkxKKc5{kYZw%#JC%X|Lp;4;2Dcn=xcC}SBjTCE{l2ebZt!plAKur9q80?WL-v=(N`K~b`4GXZTM!IVs%Zod1I zcfj<6)a235aM?1xtGTXq;gQc~&C6R{Wv9KbtUEh;*Smdm=rx88c4{h{b-Y!@F!8tI z*B%8la%nzgC7!LC$^`*=Eo~j*hcE)wBhibhoi8(zN(WWHo_2*Te?PBYlV##-9B(ty zRgj)>kw`H`8G(d%yGAi^5gK+&gD?Ja$t#3_x0wb4ol@$k-^i2lg8VxUZoTnqM(4)NNH|!c&#u2TZoe0T<&7>YbXn z)qoJ2N%C7a+yCBF&lT0~;E3Cc@>4zu53DM^PZjouL5t)NG0MS{ZoDv+xk64DM(GlWZh;MXIaO~i6&X_1_UEfs za~dqaY$aSkZM7L=?vH@PIH&nmujoLoJxlsm+AqR%Q)Je!C8h{stJJtDsvO+f&-a}q2u0{121&HvU?^hICO0!^0iFuBAeHrFZWO@t7rd~?yJs|e* zQ#y5UivSHH`^xad(#O#CEUT#mTv9+p)R@GZXgmvLlq<7c1{5bomQIl^2T{A}plBei zjQ!&HEL^5gPH{WkuGTy;wA;a?$)SMew33|oSkrsU`4H#liK>=fhu+zh=Oii~uE1B) z>^{g*4=G-LA4F4^*=l)U$lPn_dT@$&CBjds;8(@Ba7QbpDjzWmH|r|@H#89%KadPl zTh)#uOGi;dhAI-=!w5cAiBjsY<=>K`2ZMYUu#F}@I!HY1PdLVp8`fZKcajw`$7IVe z!he*+Z=_abZ{POq9ZbjEd3QG9r;Dr%GtG$0FljZI(5{p6fmEMET^R@;T5`jZHnOP> zseXi!aYV`+a#)nYm4X}vgB+bBV#ZKsUTD{Kpj9eW6eCsgahvZo^Al@2Lu-0Q0z&Z6 z=~Rs}f=I9m%6MXf&a!?4rjUhdh(@U=HKZ$u`SIy-JhWCbx)g1+*&~+31O;R0bRMWn z_{Z@jI%ikf{;-Wc)E!`igEMxDyWt}5i89Kx}c{X!0ca#hKmAf`Hm z>dq|jplXm(8gPImygr#d9;z0(n{x~i-O12PC?W*#9BE4n}w0eKB7c%ZXY zj)wy`fY!_XC~bj~ z47si>cHhy%&K_gvp<7`8A4x}>@}TY#TNcWm+8UVP8Z~Al`2r#^!xX4k!r1YHvFAT2 zA)k6*giDE?E(7kXlG>B#*as*PMmVev>BOrMsyGr&czD}V0}D5+et^4BTDZN(za+yb zHCyc?6NXYhUDA8`uLdLV7Tl;56Ez0eQXw1%p;OivMuM_!##X^>VvxI`c?;72TUAmVH(1>L&rDVo>Du{RHG=YeZN2oo2J67dD0Y?g+xj6C*ID)G@EuLSeSjG;u@ONa zui^Zw5`gx`0AdWq?o#r#+k)U@teX&tfY%?lvc|87%YL8?XiUe5X-+GKRZ9n1gQ*ON6ay06o|>v>Iw?}NJv);=Rl5XMzw(CU#x5%SZ%=uZT+H|K+xHU*CW$h8 ze+dLk)bBFSL(=lUjYYq}?X6jc*@WWfV_Lg@7xYxx zrBn5UrQ+SR$i|hN?B9;riDBF2H_7? zBiU`4?=iTYcYWo%;A#S%2*=tGsS~d;WM~LZQ%$phC~+*ha>Yd>qN1_fPdu!UM|wY^ zyXkyFn^`JEs4pX4OPo)I2&FMmJp4m~_|%GIHWr#^;tP0KN;Q3I^W3*K2~AasqsM3@ z0PJ6qe)~ZM>&)TRA9+{p&8T5_jtLl98kQ!dWBA-k2 zGbQ?2;`(m*Pd<1%p8pJA)V%cTs&16+LLX{5b@s<{*QVoDuTNRm2h^_bA`7rn2=}{R z`Kbc~7Gn~zJnY9R{6S83nG?Vu!4VezRhO7z)}>EO*aD{{yBagkL-}zCeSDnoE^2Ro z0&cqc_4RQd??SJw;=|~%Pb*#%IfAE!7nR{u6qa|7n21(5x}}IK?MTpZ7@c98px}o7 z?+{>Ni_Hgvk=m^_G4?Z?4+LcndsPat8A`7GEj zMD01uowQ3Vhm3lE@>YH^1x>~c^VPFnNMJ<&=a@u_tQ0WT+G8C6>v*z5n_PbDgi6P` z7bx;5UtMT%SbAlv_mH0l;6M8DY?J~frI611Q9PAh2 zz7qCEK{YhJ(G);?=q2(*<%_WfITG5QViIG<8p|9DQ^|ZNSfKV8B9CTTQ5XM((4pbd z%8&r46JfM#QZ1}b0EAH@Rf1Cni|7vLqy_PZA((EUM!^jsfMg2%-uhw=Gqvtp0xN7 zNr>Jkp@C}QkiXh(Y1%OMO-9>BWBvQ&06}f5R;e`f&zE<*x~HF-+&Qr3(0_5kR`qu( z#3n^B9vXk=JwD*Tm1SylK1*==c;`#=pqImJu|_LF_cwnZVH-dcF4(UchFsbDArOj@+<4snER2kP$Ox}#Fpr?= z-r&~NeE+0^NVhxE)$*W(>{LkF-rdSDjk9VFSuZ(NS8cGTjj>+R_N2}v{8e0_%!en9 zwD4KkLepsPX0;fs-y^d~`Wcz3(9y%!I-Xy2c*1{Pn3RW+*09--3G4p<)9`It{WmV1 zEZ6dPGoE~9*l)q^LR}U8ylWrbrH^TvwWzhS2zTkdoD6#WGE%d#{^cx!lfR9$379jnp)*IECzFMfhZv~l&+9_-i3npotk z%DN~u{IHA4h5aK{v6`n-)$@WT%5pOGqiUxL3Ef?JJFv~N?|h60`sel}WJ9hRaS64W zv2L)oh;onLX!QQOAN|#i`FX`eRt1D!h^+3Z<7L&{yG0(@A9474R;@vUb(@$$DS0qK zD^0s?cg%oj^J7qCxhNT1xc=(+moF>*4%QpY0j!XF%ds(Pk(`M$`ApC`n~K#RJUTB? zmL(pOdF%c8z+CKd`>x`e`)M~1{t4bL<^wyabFo(FokvS}`DmDu@HuQ)Rcq5XPc`r* zl&5;gxf^X*7FXrQOJJ7gt3Lc%hP=}KSNEc7y5DUv?I_0FL!Jmpkk1oF1iPyAEWew( z618MZAYBmj?h8%-Ocx{dEZcnMIp3|^cfBl*?V?ftxok_`5yI-X&cUy(>=+M*&r^pP zEgw(IGHTPPeica$oZHCi8}B{pL@)7^R2RIpeh2&p6Y1!)W=_<<~V?G1eixWb|-Z ztD$y!9PFf0ecF#@hx#JeW8Fr~HEid@^WAoa7hC5Z>XLTcb6Mehv+GKm7H>RpXw{_q)>nqs$IyjOl(j63Sn(boh8KQ+h7g zd7YPc?^C2>+Qs%k)oM%Z@Acy2qcU$Cs8U7&BwR$jm9kYYbTXFtS?-apt7YSN$^EiU z#OETa-bL@?SjK$x%os}BBJt#jN+;q7Ck!t<=`9hN5>9%(!x?`dKtgG=MfoGm#ah?c z;CIX^(oH7Hn$z{5cB+B7B+Ath+?QmopbI_@V7mgmRgEb zCYUBhCG@8S) zs=FuFo;8dg$q`B?;+7wprU~^PZ6Y0lKju&eQkPQ)uqE+!p`C*vzu<;?q>Z9=^zlH$rpjXh!1Yl$Zl zt^Aa_MdQ4(d+nwOl&_5~SqveyarlJ|!PsPj5FrTOsqy=3RS1(dViK|Aab00(T6g~&#MbW?QWA3$*<#+h%D_^p z2>WBJs}xrCxRb1u6|V_>|J_S`<>-Rh1j<_&{iFPh$9rvD>m#2Wn zS6Y8Cp{noO6zdgZdD1s1^LsCG{p*%nxM8^)fBJsfTO5=0n8C3lGOW&-Cf~a~6XU$l z_fOx-b^V$-+`T`O9^1BNJ?NV|JRq|}IpUj3^-Yi5>(bJJ-R1xN=(|!>lz6uo^YdDH zpZ0%Wjn2|H_YAR1|D8FP#@3$wu3+4~kn}T4b%A5mZ}>QItup!QuKncEt!|QQ|3}fe z$20Z+ar|?3AKT2exs16s*G3Xb=02kD6h%}MO1imK((TM`o9o(nxOI=8`0p zR6>*#Q7T=(>YM!b`*(lsaUSP$Iq&!T^?bT6QD=>Q<3xXdY}`nGx2@uL-@W6@>d$|l zG+3eY`^7Rg7ytFtJNdAsd#xJp`re%SRB{fZEwfTlHzN(UWoF1#YFe?8n>V{-e36SD z?n^wf71?-rMK}?HF`dT508IrP*ZUav^S>wYmE4w)Qx4)Y|E(oEz-MqZnuhU-S^;GJ zzQo0CYYYR(>jq^pbwxWi^rbM#zAb5eO_DN=i?W0qY?ECBlHKEzSw+cSZOPsv$(t6F z*_4#cwkduADO=-H0*X?$x1|J+r0iTw;ZRa{+opyEr0$7NjVMZuY)d^bl6q({HHyNE zvE{`D@Q%jw;){3*ZM>88R3K4YUf`j>@K9tv96(0U_^I(^O$aP6(?ANH%$rqA3lL<} z$%(W4!VzBSh@gB?pzwt!&ju=xthf#~*$TXC(!?Wa4YOp~B%Ev@86m{W3{yE2{<2g2<#s;0`$@n)ye7h{R3P2!3j)w!j5>Qtp2o#bi zGUj$Z8juNZBv@sd%gu<492!`Co?uP(>t_f?+K@l#2y}N^Q6EN`24wy%XBHXAN`y4U z3w@65MdU_XA@K_j2=SW!iWed@ZrR4-AkYiTzv?EBP|`XX&~Op@XB+63%6~4(>80hO zn7OEZxoyJSE4F!CkpPHEfy)eql7;NKg)B!J`dS3ZDhi5Wl1_0H5HuhwG5%i;B_Sn9 z^Q`b7x(PqW1WC=L1G0t!N5MssNd4cDPAQRCDWfR_D*C_T8E6V`|Y8NsP z68sDsA@fqb2iW&)@PUKbECgPoL=@no?NIml0z8m6pyh&ga3KIPpaE3|Dg_5}779R= zNYJ;&&^V4eizpDu+*L>!ner54-vtU<&<2zjkSJQRst_m-o&}uZB2kHpuow^LoS}nP z)kGWo+OwXBFk@gL!6Rfz`!V5{aZOc?lz)X}Sjz%71>|K$TJ;qj$m1X7_q?`qwtOq>-pM>f>N@y)c8 z^Ok^W*z4M&LN!N2*5f%a2!+{~4WGjThFs3FI8&7&_beh!9zY0=>zowRFCooIa_4}b ztVuNyRZzqN)3R<41DX(%=EznvY*MS357Tq)tVstZNgpOj^a9fRD2H#%`X;vQJ<6`0 zJ!kA*_#OrYa&^Krq=qpO##5-@g72+U>=$1;FzDAx17rr2EE2!mt_Bv6AH>8GHu2CX z@zqsDPh%kAkm?sm(_`LT3i?e{5ki7Ac*+;l_;HJHZ)o7u0!d@qF|&w-=3va+NWGkf z31;qX6WKFDt(a6WsI}(Jk!poFtEWVlsDdsLNuKR8y})Bll4fkrr&0K)+=bhV`7X4} zmwHM+R*Cd#ix-#ML|y9X-jd98jfz$!*3I71TEV`?nwn|=l?+0%Cfe0RB?KA2%-<^y z)*ejQfb}AOs3XbvkrNDJju1=>RMS>ONuOSjOQ3SUr%Jyn_(l7w;~fk_%@$LgjPEz}TI4L~cIkZqfB zP=i1Teei2M{m;N%IGD7ly-zN7% z-;hb!*`U6F{UY;cE?N(S|C9`ozwn4l!j;Ph$)29V#S6CPRKD(Ig580<<)|X%rA(Vs zPt?^rfSCAE{V`lh$}uXV9?Yf@pGqQzw5c5mWzW?!Pmk9P#`TMEQ_dj@6y!dQIPLt<|=;95s>g9&tbytQn zo;p*XIAuP1Q2J05@l?crHYDN;G6iXupOrfB+S{KHM9<3{#?D<%9hvPbVUs%9nfGfR zbp?_Rnv_+uLyiTKZZP<@lQ#?4v*?F#X>Ea4-KC#V~V+q7O1)kmljebg_=KveSi&V=LO z+4DPI?Zq|9I^{W05PC3gQTna|xb@m6D4Ri3-iKqNP2B~%ede7J^ zYjA&y+C3Bqy)Xv#YJ3TmuS!0Thszgh8vjd>PqusUk|H}7Q7rPEgoQ$`2%T(W*jx|Av`dLCc6-(TqYa1E^#sW+E-!S?P6yRtt)AosWsNDy8@x4D!O zK}4}#R3>TxNvh58&}sZ zHDa`O8Z=6xT264ByZ>{2xaeB^mh_B`@bpm_GONZv$v==TNKHGhn8#NX;Y8AlBgv6r z9nz>9h>S7petWsbOu?X)+zKHc9c8Nwn8x>R*KSEq30O}h<3C*m>zEf166}{IZ2DLY zYAz@yN|>280D3U0Q9iL)U=ek(S|}7y@ShtH)e`L4)r^B0!c#jJwo@A3bjZcszee51 z-!k9uNp_I2%ZvCZjJ&{?O&S{K=cM+&oFnCq5+4f$m=ZKzlc+K#Nv|htN{CeXuh}WB zzGPX__?iU-ha@UbhzPc9I)c<7XhO9&4b63Paku`_v_LVgvad_mULUyGhxxvvPa?sT zun`tHIQ_p6Y9VVW=X_cR-j10mU_h_31UbUu;MLd6qYL>WFcy(ER1z)-@+pmo8Ebifi5;twyRo=G{wQqZ-Q^SWO4)%)xLCw$+21z*M-uY*)gMzwlo z#mSok_GaoNsnHIlxV>#4u&=(3)GK^J*i%+JS@uSP{2+b(ChDfscG9WeoM#KjH*Cm| zjGtq?d2_<1XjASU@vWjF-2TB^wSy3T5ZYxghyPQvsTBX)bX#K)PUg8gu}qdKQ)}jp zL7VWih-~relg;Z6yeCaQq64XW{NssT=?(jOG_XmOI%~e;R`WX%fpZ8{-jec82TjSv=MZ_2a%9G)P9wssUN;IOHuV%Z0 za)0JVgUPLH53W=C{d9{(kv8b>aMKf>A2)@X`ajN*Gnf*cgbqb8SQ*@kM>H4w*ZKC9 ztq~$$6l5sgZqEmV<&AA*X?CU|G(Ymx1LXPyqRx$3$Ly;@5tfMwFP}ovMAixCRi$L( z$0)GpD5#MLeAIxB&1E30$ySFn9+3B5#fO|_5mwTe&Xc=z_y#$L)BKppF_3BgGLWoP zQu?O+*R2lFob=w;jLI6>**>nb;v~6Qz08&96=4!5tWGk+8NV_N4+dS8C)cK!o!sC3 z%2q|XQr>4O%1{v+Sm-9MZI+?`hvxR=6f^qlUk#O@E~-^sVq zs>){7tUm0TXJwshNH;#$-Pl%uwp3cj&_-urwe$b@~HVt&wnx9)}05o z^jJehSGyUvn-?C~gjRiXwo3Br8&KMKV4v$ce=ovv;<^*bcxm<1@38}|Ki@WO-nims6`Q3U9{lu%%WrYFJ3#UI0|mQ1pg>wEwQvs_ONRSGSW318k={xt?+00G)zXz>UQ zob~|Ha7}L`)DARmUlMGk5}~*Zm4vEwL5R`^6yQ8;oDZD!KgXjvCk`zNHhx`8zkEie*wJFzA;SZxaT4$Vrg}Sjr3N z+dgb(M8&O0Bn3^9aFsq?O!gwcaoMXgQE_B=dX5?P(gjACe7T(*#s}vm+@E8Em=xpr zWu4s=fWuJ$dPJ;rb#=%*Zt+U1;Q$8P_7Xz`00%+|s0e^Fv2+;ejaLPZ2BFxY zy()~mBX&%}N*Te(YEPHV_s6M#{EA}GXLEX~aaVXSMK@w4jFC1TCb74sj$w*D!{&8% zRRS|;!NvZNZ}M6s5h7rKVe=}tEjM<%ui1X5!rys4{_4Aa0@>dEYlg_f^D$s}+F$YY zsW>uU)w%UO>;*oalvPA~PF6ASN~=P`<$%5tM~X%r2)7x^1_tq~v96gwY6^@X3~a-6 z0!Zn!%oyNy`m!m6x0SBGJ1MdG*_cpm1{=j=UE`YyF1T+ry|1<468kdiD8F>_1%(Bu zd+zVK)otV!ZQncvT_)fBv+Z`|Z}#_V&}oM)h-F3`y~|5YeC6pMtk1KyL5rsP!gWcS zE>v;TxN%1Osr6^omTh4`j^eQU*_x4fIGgIHEA$z|Z)$E z6GmDaU-WqurIVjuchMxkLuYI^;YlMC_fdl^a+}o!R5PXh#@SKCSQa0DeRO5EjO-Mg z9p4d)#=(kG8!_EYnO12^+4K09-NRxG4mRo`U)>Us4U-mj=x@7Fad^Wf{EvxBK&iB{ zjFJuY#H&M9kx1=C39z14pQbE2t?;^3@WmfMwjAd1Q|Z9)(#-t(^W8}6#)5P8pPWg2 zE8nVlIN;_?D-d%*{_d1N2B^D>XQIS3$ej8p@nmpNIa;S8gU}j&o`oZ%DG#}NUulJWd*wZhc|M_kEgz(h< zy-6J{a;TZl1)L{Hi z!H+;*=8T4?#NWez#Xo`J9M0~P-aErK4Oxjh)w{OlSGIoihG@vnLD%D8UHZ%sg>-e? zsQ{l)jl;!v?r;5q+Hgsox7=BFSN`V&Aa|i0v4lDNv4;x0#pEj0VDdzotA;y)7qzFF zeAA*WJZ+-UHJ0;*S?iV*Q+|Iq{A=ESc-P9gyyF?xwH0Nn&QR87qeBkW`TFar-ir6H?8MG}S}%B_nv!p{ zS;PYRdwc~}DpxzUz5H6Z@=q<}_VI_uUVf{5PuAr)J}^}Qxz}mj!ivYx zV;CG4oMlURE(uNHM>D%Q{HM5|n+w(;Dsz*NGi*3s4Uo7+4jq(p=dm zf;A)t=2coce9`h1mQ_U!_xym1|t=3(3)< z7jqpSon0YG(g!`!g0D_ObkUW{iqir&_d$&c8mjKNrWukF`&xoi*1Z~f=coqs#7bjS zqfGC2p*xa$p|i+KTzIi|g#`+@acq(-yFR^lFR%nNUR@1xu=8Z0a_PCX_GSlOiw7=k+KeIY+%eO*;ChE0Lm3?~Dv z^frqC4He;Q!fP+LiYUJ@=2W~{o&M)GBHjqH?V|oMCTk#(3*0|%s3{DSPgN^2jNyO- zCX7mWU7ygsN`pFS5^S8*^TiPqp=1`#(HO&b0)27>63ui>KhbyH+M$Bc7xRY~+rA-T zpH9pC{jw0JsUn$!!^t$iXoHCuNlOL{k#&+Lw7|8GyCfs)-iD|^RDZ>`z zX*jyyz!@=!RlFFPpd~N{11ATH+LJ=>RpISzPG|vVR(aik!8SSZq8+@f{O9c1PUCc6 zT!C-J<)@uT=RDV*@D6_r@dP+(nzpmVT!ou>cl_3w*JX!e2R>Mq2}x1HOK8Lj&slPjf>rf zG>QoMhuXCv4kD?xFuBt4?xpibAZXr-T@ox&j7Z|@ZUm! z`Zf(n8Us)-XtF@~k5N}m3LtGS9!F`8CRCg@&XxT6hie9(2oq^vkU-`Ms4&aeZ3~ z)3vfXrvbV4k9>!s*_JyXGS00AiXL{V^)3P;Do?+*+XC-r)^Asa^V@J_%Lc`U?(6vN*YtuOCEmXCfcK=6|{#7lYC6gKE)A1uRHfKggVQVaw6 ztq8YsO}0)A=HFlWy0!rr2o5S5kqa5koG2i1wxvpkcaA1Sxsm=G$&4gJB@$sTBhySK zv}3F6zATIzNj}Cw8jL_k#3=cD**+|+!y?v%h5aX2Wl|EBSI<*yJC@SQbPcJ+*!A*n`?;1MZ6U0jj>P^9~)>S56WWO3bpT}VI9O96^ z;F4OSh(H810@Ri`NIhH*2aL%^z}0a%M4LQ0Cc<6>|0U*VEtYsQQfq56Q~1d;eW4P2 z)Z|FcA#q}YH04$Rc0!U40$5C#Hx zkt0Dsj5x?wUco{uF*0>Wl3V%z@7kd#DL$+eJTuWx{BkkswH#&oWJ-!mCRX+z&zm0p zv@iKg5$s1vVX@$C7(6@cxsP;;PDwexCP{}rU9pG_Xn7uJ1d}MEDQ!R<;A3H!UW4If zrkyv0yBXOrgQ>nWIF5xqf=iT{6XTeOUOgt>p zPuYmlJ}p8UKLy27ct8P)c!wzH)qSDS zpVDl0geL9eU6ek3JV}6rh+{15m&~jy^nd`{oyLRjSa3wEPx284FQy2N3&4gha-(Um z&mwyY}K)e1?AjHn1l3)5xeCi`UOeiD6)?XWM4_f-7h; zNoHaKD|y||Jb{f&kC)oLA>%ePEmEewq#%qIcmY|co}*aThSWn0?ByMq4*-0K9|lEn zWi~opde)(lyhWjG2YH^-$6b~c4~=2mYO(ys0R9FbV97ids;~ol%*YdskXbcHl3hoV z8MA;NmA)a0xSCB&A4%2?07kP(_Jc@UGVH@}{aXY+Zc5+O;$IPu4riyjlSAs_ryaCA z@753!PNN&>z+n&*%0Q~y5(42A9d(}NPHyG(l*=FI@3PS0wsTf{?2kPdmq{#-u+#l& zFzSjRwkQ!zPvb1gBzZ7h5~eg5b#O2#E^zl%uB5#29Zb#3+|Y(mJ~5KK|0cPbi7*M! zmH~OJZ_8F1_Tw|;_;khu?OVCSYuDT5tNz0HDD1+T*a{Z*0uB=}i!qAIypH=e;LlT% zSvw^kT^VwK!E^0Plz9VbHrO=Q_iQ!z7&Dl4fpo?&Zx)A4bDMsb!uRGNc50)ABPa@O z_sk&DjtMA*NqH&l&7^N6KFXmDMlEt(arqAMY4q8*f;OV!AaZpd;?*L5c7%%u#~kIPq(lSTSijWkdWn5Ct7%@mke(RBipm;V0tZ zlmS&prqO%0kTI|Zxk860;{kFr6;|}wJyK1pXN0ArGv!C(n_Ax;;v>%bpaWV8xqWM$cj<+RzX8Anh8GI#}2P)cxubq0MLL^7OoDdR~WlFsumX zA0G9!-6wgneakYoGAlcd5r%(6tQKzr*i0J>>{CPDa@->J9t-=;{bLX%R7lFny6CsU z68D6*=NTi(n;$*`C#Cd}rtc+sv-4RaC?nhK4MoZ_1?@lLtaLt#SOm_S|COu&4kO9C zR+4fki8}FV^UUuuo9}8mJok6+R<-pD{%NN%eBBj8N92EgrUAsW4r3Rxw~RLA+gGrW zlS(rKr-tUBg)2eV@YrPtCrd{NvJc=QKD2mB`*Hv(!gSkZkB+z|lsA2^#p9GS(`jK| zD*IHDNpnhesD;S8HHYSGmXh$a$BqY2pv;ojR0g$fW2hSe@#SJ*qavTtAEWC}mXvdP zT_c(_Q0hACA~zPwG0WmwQS(J|%(I+js26qMy}mTKwax$yIC&2Vu7A8hZIN@ApEp>Xn%Veb_0_v? zvxU-)Kl}}8r*5kjinMbi+?NN>p;vE0pp>?aA2o1lElrsVq0>NFNPzgz19LVhUWc@} z;}lj&JYfFj&*UhazvKdYP`jGTPhlTgtH&$pxt68ecPgwr_*XZ~+h9X4UD*>wE}|aY zcJCb(kWX4`oehj^H!R#Cw^q4m`HrIaRR;beT^T}WjGjBa-^g11&|a(B7v9Pd!qU>* z2d?`0`F6*h*nzn%)8d`Io>B!p`mbGj_kR4mP#KtDRD2fD8a>fDkzPvb%9|$|D}8cH{H`KnO3VhS;VgsAB^Q~A8;2Bh4DlP+_yUQ*CeT25Aa{>n z9@@3_+-B!(#_p97$K>ZjQnNvkCHH)et;rU|evL&ZgM1s7wACP7SLy7Yt-^-WssyJ% z#HmTmi@5RM30D2a^*5~UFK1s^owiQNGG~*4w(gC4n_~t_)7Itd5|{>om%39ozA5t9 ztTN}?=wdLDkxK&42CpWa?i63M^cukbNrt{byuC02Aji!l-G8~hTi(65iaL${LAs) z5rzdwz3QRVd&Mqe5RviEq>*M;!OIEqsR7wNw>Qzk4x&=bup@|~7gnEd{`Ys?f)tXv zuJwMpy2$K9Fo3Pbg0DT?)g-HkJFv(SQtSHj`Y!fQ-L}q{kDasXG++1l3DU<`xL?Fk z&EK*~FK}S>L;C!vA9%5R+$Ct-wkhmfrq$*gV8c9YG{N?8AND1xtE`lN_-#PWy>f+! zpzFwd(X-LYGR@Z;##ghlz|Vz7@1=u~gmNb_EH}l+bvI&FEwkGFF$D_a62YRAM{W;B zhPG3>GTV*V&6A*)h(@BmNAXsQ0;tXi(qR)d$;?)xzA$v{qK8q3o07u;J>~ir$@nIA z_hnb7qn+#YHJ;S;?u2OjCTN;qeWOZI{&^4x?nfT-&5RaVP!|*2?1p@aYmGyx0@ht} z|KrRfCogHTW;fZ(MhgS!p{ploOgp+RIQn1)>%DMS8@6FVZTcE*0em}~5R%5xP%YGK z>bkmUm*w)xM}&#N67YS2C1U9+8QkmKn7H-!nOUx7)#E;LLoOQpIj^v1Hfzf;BaPap zD}Q2W;VDF&?LOuE8&R4@LY#@MQTlR@+P-slFg8V7Fnb1FjDANo zYd*XaaO_0p`UitNx)6nLT{vGfTr-$r)m)jZ1UuMNW^D7j6B+tmqbv6U?*x-cwIajn z{a>4$+|2b^(rqSR&t^>%b*T^3v6_A7tz%@6fIHpW)<&wSB4mtK3I9AOa?@{d*sOl9 z$R{SZMG?B8kIN6lb~YHU%*-I@Dzn`7O7XBaLsv;AxU^dBbgiDPn|y#J-8Hh{9dm6t z1%(fQ&DGCw3z&f*)OviBer56&AU)O-1}nDZOo=N0>P$r>O^V zWu&JgxW)S@D<^A-rSTp_`aX$R*AMcs(70 zzOG9 zmu>Z3uMapzRfuiAI(~!4UGRrg*DyjV4-jsww@7V4%HxdXAMh>Im840_zsy4ov{v8~ z_0A#6M^LSwhI8oj#@M2MQFlpfW3~kcA$?{=l%NDKmWqX;cLt^b#*!^2=T3**x?U)C6-4)TE&I#7x?>X;+c9y7}eA^w4IR4Ht@GU!Y>_$Cihlq8w zMYZF*5a(cxbGZ_^x~wR)Y(2hxFm=QC&oddCZVJ4?_S!tT-#^PH=4+6fx|IG2n2tcI za&UI^qHML4S>L>lr+Za?oXv76wU7-8Jc~YZnEjyaRlxasgpOym8w?DVp0b`@_`60T z?;}!Vat&my#X@@(80iF)<#4&gUIsilfPxCuV7&ti3e=~8Mriu-*J{NDt^N^NULVKQ zBmme%#+6bMu5rfDFz&0dz?p)?Z72Ew`fHHw{4YS!Fq&+4{B9Z^H^$iu_$9XbVk+)7SG}g;I{Ct{*z=yr}uIbAw%fw0|{9#jfAHJO`;USh@}td*Haz z*go$)y?7eiKSo0AVV5G?x-jp5ngUs1luTeDeYzCEOP^en?1GTo7o*!t29|VabY)sh ztQHfu+DF_M@Ac3?g{e+AqXGz|A~EbV1m9_Py`Tw077D#XE}CH}+?0S#>QF|ShfP2S zG9q6o*P1ityH=XOoQy}&2ywD>d(1KkWFT=;sDRvY8?OtH&6P?}-@^f?Ndpiiwriod z7^*C2jFuu$ULG(~mMxPjeF^k!kLi-gx{vB_#^$48%I;l&+)TCmy~*x-^{cuW`fHtv z72TA-l_+e$8G;wj`P~j*fu-5rkIQt_T%$tb`!m|3DeOehEBvuH+YyA?+JdSb{NmQi z86>UeKVz=xALO{eX_&~=4bZ{yA%;pKGG5y=-|621P4InJscNEWybezG<6jreC@K!P z7{=`|q)6crnf-=oj4M?N+hsTc|7Q#>EhQ28lk!=els^8CCFH;U&YJUlz^Fi8x@!<7 zy9abFDZo^1Jyb`-NI>3TIL6kn#BdXDuzP1A(=IPlftW4-w=C0&i2Z0~bQFjHguD=2=qyq7+X4x5`WV_bux z=Xb?symE}v)+Lu(+rzj0cWLIA6JZ#VF+umdnHz;?b$5AhO_V~&KZ>w|?LExHp2c4! z=C{Nk+4)xOw1 ziNmEv2IWR0(v?6`Ql{83Vu9g55? ze=ALP-^H9R58hMu-19{zde=$}Sc=vm7`=5mS(-qr*oly;<k&8J=S!MvIyG??Dt^8Lmm)-Q5)8r_?>gti(GrhX*<2Cb zW2H@~e`&c}77C(iW~|>H{d7WJPT=7k$Yb1{^A}Z|#+@PD^T=|K?t9hru?qB6Js|SS zHU%bRc&3Ow$`aoeox`Vv8Bd`Aeds*Jtfa1AyTP;e(nFJaND5A79X5zOHtSV{fDuoF z&$IMcN<1hm@KTDboCHFLx7W9orO<++38r=YeP^Orv8eZsW+fS=#+Q%Qw<1Ka7VqAV z(Ql7mR4*3i>zOQMnAWRgTs~E=i+~mWEbn|bX;R7Bok@c!i$R%}c4ceywa?wt1TQh` zcjYD5ov!hWvt?SSG1bTG6h27Mbenc^JBrG+K1i{!PF8drX`=QAK*RoS(w%Y}yAkzlSLSyN}H>pC7E~ z>@pQn`yAOk{{VD38%7CHDzI6*8OXe}GtO^dzi?BI%w__~mdSLJIWtD9cKGY~+vKcI zmpnE$g(mc#E8FxjY%$VeQ`yV8QZNp^gJ3mVnpRyI{l=bK=F(54SU@qKn$7C|J~6c! zGcs1_On48^CfCej-@>G%(h?HgWW-A&FIhc0>f`hBjW+`i z)sV5TJxOncJAo^1--72~Jhi$7>RiJ+Mdbr94aO^8gzR#bhF^ieXznI|>#0H|&_!Ma z7>TkyxhEHeD%}ZPvHZR+2Rn&LR4AY)GXg7SrUjTvF)^YS=4G`76jZsNQ6pLjSO+E=6oZ zYnATu?t1kz6Ep9x_wO}s(^j3(&6To0@CN;Q&T{21e5a`f+(Kol$79e2v|s)@w;pIV z+A*`bmQ9v!RZ;q;mrh~94G3%jB$5y5i1eM zXkZYm$&Su>`I$YVhl4A+ZFaxKgk)>$-ZpXmzZ=U>C$>*lXfi!)E=CB;yVM&Mt2I?@ z?@@#G>Gh3zd_C(K%@Ze$?@jbU!8@Sj#Ib#s{viJ0smQ2XFHALp{}#V+{LYvdWlG)d zh9-ta&P=YcSirQ1WgW=UW|Ng`?}E@Kif~@%rNK{P@Ctj5Ow+YAZ1B#Bi|Sae8E!v6 zVqEwALeQTOoj=iH1CuTs3jRx)OC?Jw8PcD!$8qQtq@@*Wwg8%)v`t>`*Z6|?e5Kq~ zvjaV`E@tO=3#Z2i@zZk8iZK)6(U%G{y6Yb5t@Efvo+d4|oO3@jX%{+fV5X^`9BQpm z*6w-v@z%+eRVBaGu)5YUKLnloPv2cuZ?si9OwRjA$(WCzaV&mXdDhh3IHhOX(DYOH zeEX=>H1wMK@QZr5sRa*{2TA}NZhw8SzT6xdKb%$d%I-{X*6vc|xKr`l8b*`;+vwOX zeDG93EEXA2sFZjr>mj55>c;>uQaAs5vPL2uXP61zch&J4P1*=d0I6~)$YZ^n8CjN3HxrVOGg{N zy{apN7>NO)Sl7a75E0~kRueK{CV#iS-OrJl zFWi{>JfhwR4y;~>*#Y$!cpR-PK!+G(s5#oD^72vxRH+`VxiiQ7z?qiEL(})vr1l?h z_Y9jqE{V@J?f9Ff{pEt@`rMD1-j{D5*9pxoZ+Egb@15Xyy!kyXR{Fkxi=QGRWF!r* z*u~h`8(gBTK#lJdr?W+8SqCBgaWAr>nF=dynz`Q+hR}L>xqq2)=6*?DdFX|sQ7uY| zD#X6j{V-$Y(JK77sXYj_nO0v{OCooXze<-fgJMhDd_UJOY16zh( zX!>_t*%7Jv#B#>$r>0G!^m9ms=E@5oDhM09$1tvU+3Dr*5y@X?8-=0x@~h%T4IaVf zlPO86e%ChMnwjxr-ii60LVA5QaFUzBJaM#a!#5nrhh!$QC1db!S*Q<5%e712I_Ap_ zE;##Nd-OnG@rSEO;m4*!Gu?lGUnNEr®GuI@&Kklvkx{9Z+q!I8wTz~znUhM-%P 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