From 5956b0df1954210a4ddf0ceeed268e92659a81a9 Mon Sep 17 00:00:00 2001 From: Aravinth Manivannan Date: Sat, 28 Oct 2023 03:18:10 +0530 Subject: [PATCH] b5370ecc0b3f613b8802399834fac80eca1e4fb9 --- .hugo_build.lock | 0 404.html | 4 +- about/index.html | 4 +- blog/december-2021-monthly-report/index.html | 4 +- blog/february-2023-monthly-report/index.html | 4 +- blog/index.html | 4 +- blog/introducing-mcaptcha-net/index.html | 4 +- ...fffad281cd7ba_53366_800x0_resize_box_3.png | Bin 43683 -> 33 bytes blog/july-2022-monthly-report/index.html | 4 +- blog/june-2022-monthly-report/index.html | 4 +- blog/may-2022-monthly-report/index.html | 4 +- blog/pow-performance/index.html | 4 +- blog/say-hello-to-mcaptcha/index.html | 4 +- blog/survey/index.html | 4 +- community/index.html | 4 +- contact/index.html | 4 +- contributors/aravinth-manivannan/index.html | 4 +- contributors/index.html | 4 +- docs/api/browser/index.html | 9 +- docs/api/index.html | 8 +- docs/api/mcaptcha-system/index.html | 9 +- docs/api/pow-sha256/index.html | 9 +- docs/help/faq/index.html | 13 +- docs/help/index.html | 8 +- docs/help/troubleshooting/index.html | 9 +- docs/index.html | 20 +- docs/self-hosting/bare-metal/index.html | 9 +- docs/self-hosting/dependencies/index.html | 9 +- docs/self-hosting/docker/index.html | 9 +- docs/self-hosting/getting-started/index.html | 9 +- docs/self-hosting/index.html | 8 +- docs/sitemap.xml | 21 +- docs/user-manual/cli/index.html | 321 +++++++++ .../how-to-mcaptcha-without-js/index.html | 222 +++++++ docs/user-manual/index.html | 197 ++++++ docs/user-manual/index.xml | 32 + docs/user-manual/sitemap.xml | 17 + .../configuring-difficulty-factor/index.html | 9 +- docs/webmasters/faq/index.html | 9 +- docs/webmasters/index.html | 8 +- docs/webmasters/installing-captcha/index.html | 35 +- ...00c2c83dd77fb_28299_800x0_resize_box_3.png | Bin 30236 -> 33 bytes docs/webmasters/sitemap.xml | 2 +- docs/webmasters/terminology/index.html | 13 +- donate/index.html | 4 +- index.html | 4 +- ...a412051d7fd12a5b0a675c6053b7d9dc9c2cc98.js | 614 ++++++++++++++++++ ...ceafc036a93bff8f9423911024d524d5e8174c1.js | 108 ++- ...dee4bfdb85b488cb791a49a33af016aa3fcffd.css | 10 - ...5ad12d0114f490f7a4b511dc1f99b633255661.css | 10 + privacy-policy/index.html | 4 +- security/index.html | 4 +- sitemap.xml | 23 +- thanks/index.html | 4 +- 54 files changed, 1755 insertions(+), 109 deletions(-) delete mode 100644 .hugo_build.lock create mode 100644 docs/user-manual/cli/index.html create mode 100644 docs/user-manual/how-to-mcaptcha-without-js/index.html create mode 100644 docs/user-manual/index.html create mode 100644 docs/user-manual/index.xml create mode 100644 docs/user-manual/sitemap.xml create mode 100644 index.min.39f65050268d816f7a57ee89577dd6b7c861ed858fdbfd100931444f0bb1609ea23d7d4ddc1997c8401f4553ca412051d7fd12a5b0a675c6053b7d9dc9c2cc98.js rename index.min.3815062368a85ddb58786a06fadf790751079a4737b79f370db1cf2044c2451d2de7aa39343d73dab0c02899036427f327ddec61ad33c2cebafc3e4e1e8a64dc.js => index.min.b59e9d73d7e970542c9660dbd7dbb266a7f7d320c46b1383623b1d9c0cf9cab69f0068a6c0f09951328ea22eeceafc036a93bff8f9423911024d524d5e8174c1.js (79%) delete mode 100644 main.976507041017ac4a08ed252c5399a7c72b3b5aeae14bc23dd624cbddb3d2cb6065f6cf8ed6cd96bf5cd21c1157dee4bfdb85b488cb791a49a33af016aa3fcffd.css create mode 100644 main.b63ce50dfa61fad6110b3083ff8c73329c5faa56efa9fce74542ba32665b6f205859f41203427020164409ce1a5ad12d0114f490f7a4b511dc1f99b633255661.css diff --git a/.hugo_build.lock b/.hugo_build.lock deleted file mode 100644 index e69de29..0000000 diff --git a/404.html b/404.html index 3f7373e..b20e0c6 100644 --- a/404.html +++ b/404.html @@ -6,7 +6,7 @@ - + 404 Page not found - mCaptcha @@ -140,7 +140,7 @@ - + diff --git a/about/index.html b/about/index.html index 5abc0db..ff807d3 100644 --- a/about/index.html +++ b/about/index.html @@ -6,7 +6,7 @@ - + @@ -184,7 +184,7 @@ Security Advisor

- + diff --git a/blog/december-2021-monthly-report/index.html b/blog/december-2021-monthly-report/index.html index 37bcc73..dfdcc54 100644 --- a/blog/december-2021-monthly-report/index.html +++ b/blog/december-2021-monthly-report/index.html @@ -6,7 +6,7 @@ - + @@ -238,7 +238,7 @@ at any moment!

- + diff --git a/blog/february-2023-monthly-report/index.html b/blog/february-2023-monthly-report/index.html index 02161f3..7388604 100644 --- a/blog/february-2023-monthly-report/index.html +++ b/blog/february-2023-monthly-report/index.html @@ -6,7 +6,7 @@ - + @@ -212,7 +212,7 @@ WebAssembly support.

- + diff --git a/blog/index.html b/blog/index.html index ce1c429..f4ac1b9 100644 --- a/blog/index.html +++ b/blog/index.html @@ -6,7 +6,7 @@ - + @@ -218,7 +218,7 @@ - + diff --git a/blog/introducing-mcaptcha-net/index.html b/blog/introducing-mcaptcha-net/index.html index 7a21bcf..895a9f5 100644 --- a/blog/introducing-mcaptcha-net/index.html +++ b/blog/introducing-mcaptcha-net/index.html @@ -6,7 +6,7 @@ - + @@ -234,7 +234,7 @@ installations automatically.

- + diff --git a/blog/introducing-mcaptcha-net/installation-level-opt-in_huf73c7a9ce7ec84ce553fffad281cd7ba_53366_800x0_resize_box_3.png b/blog/introducing-mcaptcha-net/installation-level-opt-in_huf73c7a9ce7ec84ce553fffad281cd7ba_53366_800x0_resize_box_3.png index 0d18928eabcf92815e4e1bedf330de6a78d98aea..93ac07fe5bb2df34f4d04e50cb3458701a3ede14 100644 GIT binary patch delta 6 NcmZ2{l}T}eA^-`k0!;t_ literal 43683 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 bF^S~K!Zv!AN@)WBK_+oU`f}=}TMzyR2V^5| diff --git a/blog/july-2022-monthly-report/index.html b/blog/july-2022-monthly-report/index.html index 9de2bd7..458aa2b 100644 --- a/blog/july-2022-monthly-report/index.html +++ b/blog/july-2022-monthly-report/index.html @@ -6,7 +6,7 @@ - + @@ -250,7 +250,7 @@ OTF. - + diff --git a/blog/june-2022-monthly-report/index.html b/blog/june-2022-monthly-report/index.html index 22b8c42..1edb8d8 100644 --- a/blog/june-2022-monthly-report/index.html +++ b/blog/june-2022-monthly-report/index.html @@ -6,7 +6,7 @@ - + @@ -216,7 +216,7 @@ development economically sustainable.

- + diff --git a/blog/may-2022-monthly-report/index.html b/blog/may-2022-monthly-report/index.html index 7920851..15b1233 100644 --- a/blog/may-2022-monthly-report/index.html +++ b/blog/may-2022-monthly-report/index.html @@ -6,7 +6,7 @@ - + @@ -322,7 +322,7 @@ be redacted and published.

- + diff --git a/blog/pow-performance/index.html b/blog/pow-performance/index.html index 10da08d..cb7c11f 100644 --- a/blog/pow-performance/index.html +++ b/blog/pow-performance/index.html @@ -6,7 +6,7 @@ - + @@ -405,7 +405,7 @@ generated proof for 4500000 difficulty(the highest in this test), in under - + diff --git a/blog/say-hello-to-mcaptcha/index.html b/blog/say-hello-to-mcaptcha/index.html index 145a64c..7a7cbd8 100644 --- a/blog/say-hello-to-mcaptcha/index.html +++ b/blog/say-hello-to-mcaptcha/index.html @@ -6,7 +6,7 @@ - + @@ -244,7 +244,7 @@ GitHub.

- + diff --git a/blog/survey/index.html b/blog/survey/index.html index 1dd93a0..3d2bb79 100644 --- a/blog/survey/index.html +++ b/blog/survey/index.html @@ -6,7 +6,7 @@ - + @@ -204,7 +204,7 @@ winners should provide the matching proof to claim their rewards. - + diff --git a/community/index.html b/community/index.html index aba0ac0..5bab62d 100644 --- a/community/index.html +++ b/community/index.html @@ -6,7 +6,7 @@ - + @@ -175,7 +175,7 @@ addition to the blog to post short updates.

- + diff --git a/contact/index.html b/contact/index.html index 5ba0eef..d01b45b 100644 --- a/contact/index.html +++ b/contact/index.html @@ -6,7 +6,7 @@ - + @@ -167,7 +167,7 @@ the Matrix, - + diff --git a/contributors/aravinth-manivannan/index.html b/contributors/aravinth-manivannan/index.html index 5066b19..08d0918 100644 --- a/contributors/aravinth-manivannan/index.html +++ b/contributors/aravinth-manivannan/index.html @@ -6,7 +6,7 @@ - + @@ -220,7 +220,7 @@ - + diff --git a/contributors/index.html b/contributors/index.html index ccc90c8..5115268 100644 --- a/contributors/index.html +++ b/contributors/index.html @@ -6,7 +6,7 @@ - + @@ -152,7 +152,7 @@ - + diff --git a/docs/api/browser/index.html b/docs/api/browser/index.html index 24b30f2..1e665af 100644 --- a/docs/api/browser/index.html +++ b/docs/api/browser/index.html @@ -6,7 +6,7 @@ - + @@ -118,6 +118,11 @@
  • Terminology
  • Webmasters FAQ
  • +

    User Manual

    +

    Self-Hosting

    • Getting started
    • @@ -238,7 +243,7 @@ is available.

      - + diff --git a/docs/api/index.html b/docs/api/index.html index 847a879..c5754fb 100644 --- a/docs/api/index.html +++ b/docs/api/index.html @@ -6,7 +6,7 @@ - + @@ -138,6 +138,8 @@ + +
      MCaptcha System Library → @@ -161,6 +163,8 @@ + +
      @@ -193,7 +197,7 @@ - + diff --git a/docs/api/mcaptcha-system/index.html b/docs/api/mcaptcha-system/index.html index 521f7af..6f6ff1d 100644 --- a/docs/api/mcaptcha-system/index.html +++ b/docs/api/mcaptcha-system/index.html @@ -6,7 +6,7 @@ - + @@ -118,6 +118,11 @@
    • Terminology
    • Webmasters FAQ
    +

    User Manual

    +

    Self-Hosting

    • Getting started
    • @@ -214,7 +219,7 @@ - + diff --git a/docs/api/pow-sha256/index.html b/docs/api/pow-sha256/index.html index d6125a5..76407b0 100644 --- a/docs/api/pow-sha256/index.html +++ b/docs/api/pow-sha256/index.html @@ -6,7 +6,7 @@ - + @@ -118,6 +118,11 @@
    • Terminology
    • Webmasters FAQ
    +

    User Manual

    +

    Self-Hosting

    • Getting started
    • @@ -227,7 +232,7 @@ mostly just stylistic/ease of use improvements.

      - + diff --git a/docs/help/faq/index.html b/docs/help/faq/index.html index 20e2cbe..e5b983a 100644 --- a/docs/help/faq/index.html +++ b/docs/help/faq/index.html @@ -6,7 +6,7 @@ - + @@ -117,6 +117,11 @@
    • Terminology
    • Webmasters FAQ
    +

    User Manual

    +

    Self-Hosting

    • Getting started
    • @@ -162,10 +167,10 @@ - +
      - Terminology → + CLI tool →
      @@ -201,7 +206,7 @@ - + diff --git a/docs/help/index.html b/docs/help/index.html index e7d7b76..c9a6151 100644 --- a/docs/help/index.html +++ b/docs/help/index.html @@ -6,7 +6,7 @@ - + @@ -126,6 +126,8 @@ + +
      FAQ → @@ -155,6 +157,8 @@ + +
      @@ -187,7 +191,7 @@ - + diff --git a/docs/help/troubleshooting/index.html b/docs/help/troubleshooting/index.html index 2e17baa..ae7fa2a 100644 --- a/docs/help/troubleshooting/index.html +++ b/docs/help/troubleshooting/index.html @@ -6,7 +6,7 @@ - + @@ -117,6 +117,11 @@
    • Terminology
    • Webmasters FAQ
    +

    User Manual

    +

    Self-Hosting

    • Getting started
    • @@ -211,7 +216,7 @@ your instance is deployed or setting the equivalent in config.toml:

      - + diff --git a/docs/index.html b/docs/index.html index e11751c..92ccf68 100644 --- a/docs/index.html +++ b/docs/index.html @@ -6,7 +6,7 @@ - + @@ -125,6 +125,14 @@ +
      + +
      + + +
      Configuring Difficulty Factor → @@ -205,6 +213,14 @@ + + + +
      Using Docker → @@ -252,7 +268,7 @@ - + diff --git a/docs/self-hosting/bare-metal/index.html b/docs/self-hosting/bare-metal/index.html index e5e6243..d91e9f5 100644 --- a/docs/self-hosting/bare-metal/index.html +++ b/docs/self-hosting/bare-metal/index.html @@ -6,7 +6,7 @@ - + @@ -117,6 +117,11 @@
    • Terminology
    • Webmasters FAQ
    +

    User Manual

    +

    Self-Hosting

    • Getting started
    • @@ -307,7 +312,7 @@ details.

      - + diff --git a/docs/self-hosting/dependencies/index.html b/docs/self-hosting/dependencies/index.html index e8ccf4c..689e106 100644 --- a/docs/self-hosting/dependencies/index.html +++ b/docs/self-hosting/dependencies/index.html @@ -6,7 +6,7 @@ - + @@ -117,6 +117,11 @@
    • Terminology
    • Webmasters FAQ
    +

    User Manual

    +

    Self-Hosting

    • Getting started
    • @@ -282,7 +287,7 @@ details.

      - + diff --git a/docs/self-hosting/docker/index.html b/docs/self-hosting/docker/index.html index 767a9f9..e7d569e 100644 --- a/docs/self-hosting/docker/index.html +++ b/docs/self-hosting/docker/index.html @@ -6,7 +6,7 @@ - + @@ -117,6 +117,11 @@
    • Terminology
    • Webmasters FAQ
    +

    User Manual

    +

    Self-Hosting

    • Getting started
    • @@ -247,7 +252,7 @@ a database instance mcaptcha instance.

      - + diff --git a/docs/self-hosting/getting-started/index.html b/docs/self-hosting/getting-started/index.html index 1d1b660..5a6ab90 100644 --- a/docs/self-hosting/getting-started/index.html +++ b/docs/self-hosting/getting-started/index.html @@ -6,7 +6,7 @@ - + @@ -117,6 +117,11 @@
    • Terminology
    • Webmasters FAQ
    +

    User Manual

    +

    Self-Hosting

    • Getting started
    • @@ -210,7 +215,7 @@ - + diff --git a/docs/self-hosting/index.html b/docs/self-hosting/index.html index b670d0f..b9f9c4a 100644 --- a/docs/self-hosting/index.html +++ b/docs/self-hosting/index.html @@ -6,7 +6,7 @@ - + @@ -121,6 +121,8 @@ + +
      Database and Cache → @@ -157,6 +159,8 @@ + +
      Using Docker → @@ -198,7 +202,7 @@ - + diff --git a/docs/sitemap.xml b/docs/sitemap.xml index f4ff24a..0ca3c4b 100644 --- a/docs/sitemap.xml +++ b/docs/sitemap.xml @@ -1,6 +1,13 @@ + + /docs/user-manual/ + 2023-10-28T01:09:37+05:30 + weekly + 0.5 + + /docs/help/ 2021-07-21T15:49:53+05:30 @@ -29,6 +36,18 @@ 0.5 + /docs/user-manual/cli/ + 2023-10-28T01:09:37+05:30 + weekly + 0.5 + + + /docs/user-manual/how-to-mcaptcha-without-js/ + 2023-10-28T03:16:49+05:30 + weekly + 0.5 + + /docs/help/troubleshooting/ 2022-08-01T22:24:30+05:30 weekly @@ -42,7 +61,7 @@ /docs/webmasters/installing-captcha/ - 2023-10-27T21:39:40+05:30 + 2023-10-28T02:30:28+05:30 weekly 0.5 diff --git a/docs/user-manual/cli/index.html b/docs/user-manual/cli/index.html new file mode 100644 index 0000000..cefd320 --- /dev/null +++ b/docs/user-manual/cli/index.html @@ -0,0 +1,321 @@ + + + + + + + + + + + + + + CLI tool - mCaptcha + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + + +
      +
      + +
      + + +
      + +

      CLI tool

      +

      +

      A CLI tool exists to compute mCaptcha challenges. It can be installed +from multiple sources:

      +

      Install

      +

      crates.io

      +

      The CLI tool is available on, crates.io, the Rust +language’s package registry. Rust language toolchain is required to +install from crates.io, please see rustup.rs for +Instructions to install it.

      +
      1cargo install mcaptcha-cli
      +

      Pre-compiled binaries

      +

      Nightly builds and stable releases are regularly published to +dl.mcaptcha.org for a variety of +CPU architectures and operating systems.

      +
        +
      1. Download binary, checksum and GPG signature files
      2. +
      +
      1wget https://dl.mcaptcha.org/mcaptcha/cli/{VERSION}/{FILENAME}.tar.gz
      +2wget https://dl.mcaptcha.org/mcaptcha/cli/{VERSION}/{FILENAME}.tar.gz.asc
      +3wget https://dl.mcaptcha.org/mcaptcha/cli/{VERSION}/{FILENAME}.tar.gz.sha256
      +
        +
      1. Verify checksum
      2. +
      +
      1sha256sum -c {FILENAME}.tar.gz.sha256
      +
        +
      1. Download mCaptcha’s GPG release keys and verify GPG signature
      2. +
      +
      1gpg --keyserver keyserver.ubuntu.com --recv 73DAC973A9ADBB9ADCB5CDC4595A08135BA9FF73
      +2gpg --verify {FILENAME}.tar.gz.asc
      +
        +
      1. Install Binary
      2. +
      +
      1tar -xvzf {FILENAME}.tar.gz && sudo cp {FILENAME}/mcaptcha-cli /usr/local/bin
      +

      Build from source

      +
        +
      1. Install Rust tool chain +Please see here for instructions.
      2. +
      3. Download source code
      4. +
      +
      1git clone https://git.batsense.net/mCaptcha/cli
      +
        +
      1. Compile and install
      2. +
      +
      1cargo build --release && sudp cp ./target/release/mcaptcha-cli
      +2/usr/local/bin
      +

      Pass mCaptcha challenge

      +

      The CLI tool requires details about the challenge to work on it. The +tool can be used in three different modes compute challenge:

      +
        +
      1. Protected Page: Compute mCaptcha challenge for the CAPTCHA at a +protected page
      2. +
      3. Widget URL: Compute PoW for captcha at widget URL
      4. +
      5. (Developer mode) Offline: Computes PoW over given CAPTCHA parameters
      6. +
      +

      From protected page URL

      +

      The most convenient mode: copy the URL of the webpage which has the +mCaptcha widget (example: showcase.mcaptcha.org) and run the CLI tool +with it to get an authorization code: +Compute challenge using the URL

      +
      103:39 atm@lab cli ±|feat-parse-webpage ✗|→ mcaptcha-cli protected-page https://showcase.mcaptcha.org/
      +2Authorization token: eRAZJiMrW58uDYA1s64Tmwq1u30HutuF
      +

      Widget URL

      +

      If you have the widget URL (will be in format https://mcaptcha.example.org/widget?sitekey=randomstring), it can be used to solve challenge as well:

      +
      1Compute PoW by fetching parameters from  CAPTCHA URL
      +2
      +3Usage: mcaptcha-cli online --url <URL>
      +4
      +5Options:
      +6  -u, --url <URL>  URL of the CAPTCHA. Example:  https://example.org/widget?sitekey=foo
      +7  -h, --help       Print help
      +

      Example usage:

      +
      113:32 atm@lab cli ±|online ✗|→ mcaptcha-cli online -u https://demo.mcaptcha.org/widget?sitekey=pHy0AktWyOKuxZDzFfoaewncWecCHo23
      +2Authorization token: 3xleN26OctBuVu3X4t6CYyUjErhaxQvz
      +

      [Developer mode] Offline

      +

      Useful while debugging mCaptcha configurations, works on raw challenge +parameters.

      +

      Help menu:

      +
      1Compute PoW with offline parameters
      +2
      +3Usage: mcaptcha-cli offline --salt <SALT> --phrase <PHRASE> --difficulty-factor <DIFFICULTY_FACTOR>
      +4
      +5Options:
      +6  -s, --salt <SALT>                            Salt with which PoW should be computed
      +7  -p, --phrase <PHRASE>                        Phrase over which PoW should be computed
      +8  -d, --difficulty-factor <DIFFICULTY_FACTOR>  Difficulty Factor
      +9  -h, --help                                   Print help
      +

      Example usage:

      +
      113:28 atm@lab cli ±|online|→ mcaptcha-cli offline -s $(rand 32) -p $(rand 32) -d 50000
      +2difficulty: 50000
      +3nonce: 90507
      +4original phrase: f351f333d44b2c6b5bf7f033b065bbb8fb5e9dd153bd402e43ed04425f5a3859
      +5result: 340276562956196291522979356090220150471
      +

      Where rand is this script.

      + +

      Edit this page on git.batsense.net

      + + + +
      +
      + +
      +
      + + + + + + + + + diff --git a/docs/user-manual/how-to-mcaptcha-without-js/index.html b/docs/user-manual/how-to-mcaptcha-without-js/index.html new file mode 100644 index 0000000..6a8a882 --- /dev/null +++ b/docs/user-manual/how-to-mcaptcha-without-js/index.html @@ -0,0 +1,222 @@ + + + + + + + + + + + + + + Use mCaptcha without JavaScript - mCaptcha + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + + +
      +
      + +
      + + +
      + +

      Use mCaptcha without JavaScript

      +

      +

      To use mCaptcha without JavaScript:

      +
        +
      1. Install mCaptcha CLI too. Please see here for instructions.
      2. +
      3. Copy the URL of the protected page
      4. +
      5. Run mCaptcha CLI with that URL:
      6. +
      +
      1mcapthca-cli protected-page <URL>
      +
        +
      1. Copy authorization code and paste it in the form
      2. +
      + +

      Edit this page on git.batsense.net

      + + + +
      +
      + +
      +
      + + + + + + + + + diff --git a/docs/user-manual/index.html b/docs/user-manual/index.html new file mode 100644 index 0000000..7dfc6c6 --- /dev/null +++ b/docs/user-manual/index.html @@ -0,0 +1,197 @@ + + + + + + + + + + + + + + User Manual - mCaptcha + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + + +
      +
      + +
      +
      + +
      +
      + +
      +
      + + + + + + + + + diff --git a/docs/user-manual/index.xml b/docs/user-manual/index.xml new file mode 100644 index 0000000..378f6b9 --- /dev/null +++ b/docs/user-manual/index.xml @@ -0,0 +1,32 @@ + + + + User Manual on + /docs/user-manual/ + Recent content in User Manual on + Hugo -- gohugo.io + en-US + Fri, 27 Oct 2023 08:48:45 +0000 + + CLI tool + /docs/user-manual/cli/ + Fri, 27 Oct 2023 08:48:45 +0000 + + /docs/user-manual/cli/ + A CLI tool exists to compute mCaptcha challenges. It can be installed from multiple sources: +Install crates.io The CLI tool is available on, crates.io, the Rust language&rsquo;s package registry. Rust language toolchain is required to install from crates.io, please see rustup.rs for Instructions to install it. +1cargo install mcaptcha-cli Pre-compiled binaries Nightly builds and stable releases are regularly published to dl.mcaptcha.org for a variety of CPU architectures and operating systems. + + + + Use mCaptcha without JavaScript + /docs/user-manual/how-to-mcaptcha-without-js/ + Fri, 27 Oct 2023 08:48:45 +0000 + + /docs/user-manual/how-to-mcaptcha-without-js/ + To use mCaptcha without JavaScript: +Install mCaptcha CLI too. Please see here for instructions. Copy the URL of the protected page Run mCaptcha CLI with that URL: 1mcapthca-cli protected-page &lt;URL&gt; Copy authorization code and paste it in the form + + + + diff --git a/docs/user-manual/sitemap.xml b/docs/user-manual/sitemap.xml new file mode 100644 index 0000000..606fc3e --- /dev/null +++ b/docs/user-manual/sitemap.xml @@ -0,0 +1,17 @@ + + + + /docs/user-manual/cli/ + 2023-10-28T01:09:37+05:30 + weekly + 0.5 + + + + /docs/user-manual/how-to-mcaptcha-without-js/ + 2023-10-28T03:16:49+05:30 + weekly + 0.5 + + \ No newline at end of file diff --git a/docs/webmasters/configuring-difficulty-factor/index.html b/docs/webmasters/configuring-difficulty-factor/index.html index f52c129..57b038d 100644 --- a/docs/webmasters/configuring-difficulty-factor/index.html +++ b/docs/webmasters/configuring-difficulty-factor/index.html @@ -6,7 +6,7 @@ - + @@ -118,6 +118,11 @@
    • Terminology
    • Webmasters FAQ
    +

    User Manual

    +

    Self-Hosting

    • Getting started
    • @@ -250,7 +255,7 @@ underlying website.

      - + diff --git a/docs/webmasters/faq/index.html b/docs/webmasters/faq/index.html index dfe421b..40dcd77 100644 --- a/docs/webmasters/faq/index.html +++ b/docs/webmasters/faq/index.html @@ -6,7 +6,7 @@ - + @@ -118,6 +118,11 @@
    • Terminology
    • Webmasters FAQ
    +

    User Manual

    +

    Self-Hosting

    • Getting started
    • @@ -223,7 +228,7 @@ clipboard. - + diff --git a/docs/webmasters/index.html b/docs/webmasters/index.html index ad24a78..64b2108 100644 --- a/docs/webmasters/index.html +++ b/docs/webmasters/index.html @@ -6,7 +6,7 @@ - + @@ -120,6 +120,8 @@ + +
      Configuring Difficulty Factor → @@ -160,6 +162,8 @@ + +
      Webmasters FAQ → @@ -199,7 +203,7 @@ - + diff --git a/docs/webmasters/installing-captcha/index.html b/docs/webmasters/installing-captcha/index.html index edfb8e8..d62a0eb 100644 --- a/docs/webmasters/installing-captcha/index.html +++ b/docs/webmasters/installing-captcha/index.html @@ -6,7 +6,7 @@ - + @@ -29,7 +29,7 @@ - + @@ -118,6 +118,11 @@
    • Terminology
    • Webmasters FAQ
    +

    User Manual

    +

    Self-Hosting

    • Getting started
    • @@ -219,16 +224,20 @@ mCaptcha on your website:

      will load the mCaptcha widget with the configuration supplied. Be sure to replace Your {{paste your widget link}} with the link obtained from the previous step.

      -
       1<div id="mcaptcha__widget-container"></div>
      - 2<script src="https://unpkg.com/@mcaptcha/vanilla-glue@0.1.0-alpha-2/dist/index.js"></script>
      - 3<script charset="utf-8">
      - 4  let config = {
      - 5    widgetLink: new URL(
      - 6      {{paste yout widget link}}
      - 7    ),
      - 8  };
      - 9  new mcaptchaGlue.default(config);
      -10</script>
      +
       1<label
      + 2  data-mcaptcha_url="{{paste your widget link here}}"
      + 3  for="mcaptcha__token"
      + 4  id="mcaptcha__token-label"
      + 5>
      + 6  mCaptcha authorization token.
      + 7  <a
      + 8    href="https://mcaptcha.org/docs/user-manual/how-to-mcaptcha-without-js/"
      + 9    >Instructions</a
      +10  >.
      +11  <input type="text" name="mcaptcha__token" id="mcaptcha__token" />
      +12</label>
      +13<div id="mcaptcha__widget-container"></div>
      +14<script src="https://unpkg.com/@mcaptcha/vanilla-glue@0.1.0-rc2/dist/index.js"></script>
       

      A full example is available here.

      5. Configure backend to authenticate CAPTCHA tokens

      @@ -308,7 +317,7 @@ Web example.

      - + diff --git a/docs/webmasters/installing-captcha/mcaptcha-widget-installation-result_hub39801b2a229b4882fd00c2c83dd77fb_28299_800x0_resize_box_3.png b/docs/webmasters/installing-captcha/mcaptcha-widget-installation-result_hub39801b2a229b4882fd00c2c83dd77fb_28299_800x0_resize_box_3.png index de4e1cf8c33620e430e4615667b9f6b9cca12ed2..f30fcddbbd42d75aea04ff47469edba289abf678 100644 GIT binary patch delta 6 NcmbR9hEZ{XA^-{U0$cz9 literal 30236 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 diff --git a/docs/webmasters/sitemap.xml b/docs/webmasters/sitemap.xml index 9b51a9f..095ecd5 100644 --- a/docs/webmasters/sitemap.xml +++ b/docs/webmasters/sitemap.xml @@ -3,7 +3,7 @@ /docs/webmasters/installing-captcha/ - 2023-10-27T21:39:40+05:30 + 2023-10-28T02:30:28+05:30 weekly 0.5 diff --git a/docs/webmasters/terminology/index.html b/docs/webmasters/terminology/index.html index 6de91ef..04035ac 100644 --- a/docs/webmasters/terminology/index.html +++ b/docs/webmasters/terminology/index.html @@ -6,7 +6,7 @@ - + @@ -118,6 +118,11 @@
    • Terminology
    • Webmasters FAQ
    +

    User Manual

    +

    Self-Hosting

    • Getting started
    • @@ -246,10 +251,10 @@ the amount of traffic that was served in the cool down period specified.

      - +
      - ← FAQ + ← Use mCaptcha without JavaScript
      @@ -292,7 +297,7 @@ the amount of traffic that was served in the cool down period specified.

      - + diff --git a/donate/index.html b/donate/index.html index b1de1b9..f4d80e5 100644 --- a/donate/index.html +++ b/donate/index.html @@ -6,7 +6,7 @@ - + @@ -177,7 +177,7 @@ WH3ngC8Zi7bUYGUifdXb54Xuz41kcu2pqgGFuAYp3VSh5JsR - + diff --git a/index.html b/index.html index 667d9a0..b38f089 100644 --- a/index.html +++ b/index.html @@ -6,7 +6,7 @@ - + @@ -183,7 +183,7 @@ - + diff --git a/index.min.39f65050268d816f7a57ee89577dd6b7c861ed858fdbfd100931444f0bb1609ea23d7d4ddc1997c8401f4553ca412051d7fd12a5b0a675c6053b7d9dc9c2cc98.js b/index.min.39f65050268d816f7a57ee89577dd6b7c861ed858fdbfd100931444f0bb1609ea23d7d4ddc1997c8401f4553ca412051d7fd12a5b0a675c6053b7d9dc9c2cc98.js new file mode 100644 index 0000000..dbc9b8f --- /dev/null +++ b/index.min.39f65050268d816f7a57ee89577dd6b7c861ed858fdbfd100931444f0bb1609ea23d7d4ddc1997c8401f4553ca412051d7fd12a5b0a675c6053b7d9dc9c2cc98.js @@ -0,0 +1,614 @@ +var suggestions=document.getElementById("suggestions"),userinput=document.getElementById("userinput");document.addEventListener("keydown",inputFocus);function inputFocus(e){e.keyCode===191&&(e.preventDefault(),userinput.focus()),e.keyCode===27&&(userinput.blur(),suggestions.classList.add("d-none"))}document.addEventListener("click",function(e){var t=suggestions.contains(e.target);t||suggestions.classList.add("d-none")}),document.addEventListener("keydown",suggestionFocus);function suggestionFocus(e){const s=suggestions.querySelectorAll("a"),o=[...s],t=o.indexOf(document.activeElement);let n=0;e.keyCode===38?(e.preventDefault(),n=t>0?t-1:0,s[n].focus()):e.keyCode===40&&(e.preventDefault(),n=t+1mCaptcha can protect your website from DDoS attacks. In this guide we’ll +explore how to install mCaptcha on your website. The end result will be +something like this, on your website:

      +
      + A registration form with mCaptcha widget installed + +
      +

      For the purpose of this demo, we will be using +demo.mcaptcha.org, a demo instance running +in @realaravinth’s bedroom(for this same reason, it shouldn’t be used +for anything serious)

      +

      1. Create an account and sign into the mCaptcha dashboard

      +

      Head over to demo.mcaptcha.org and +create an account. When ready, sign in.

      +

      2. Create new site key

      +

      A site key is how a new CAPTCHA is configured within mCaptcha. To create +a new site key, click on “New Site” button in the dashboard.

      +
      + mCaptcha dashboard with the 'new site key' button highlighted + +
      +

      There are two options to create a new site key, easy and advanced. We +are going to use the easy mode in this tutorial. If you are interested +in learning more about the advance mode, please see here.

      +
      +

      Easy Mode

      +

      Easy mode asks a few basic statistics about your website and generates a +configuration that should work for your website. Currently, easy mode is +guided by assumptions on suitable difficulty factors to protect a +website but it will be fine-tuned as mCaptcha sees more deployment.

      +

      Configuration generated by easy mode can be tweaked later using the +advance mode, as you become more familiar with how mCaptcha works.

      +
      +

      Fill the form and submit it.

      +
      + mCaptcha dashboard with the 'new site key' form in easy mode, with details filled in + +
      + +

      Submitting the form will take you to a page where site key configuration +can be viewed. “View deployment” link will display CAPTCHA widget with +the supplied configuration. Click on it and grab the widget link.

      +

      4. Install mCaptcha on your website

      +

      Integration support is available for some frontend JavaScript +frameworks. To see full list of supported frameworks, please see +here.

      +

      There are two options to use the integration library to integrate +mCaptcha on your website:

      +
        +
      1. Serve the integration library yourself
      2. +
      3. Use a CDN like unpkg.com
      4. +
      +

      In this tutorial, we’ll be using the CDN.

      +

      Pasting the following snippet on the page, within the form that requires to be protected +will load the mCaptcha widget with the configuration supplied. Be sure +to replace Your {{paste your widget link}} with the link obtained from +the previous step.

      +
       1<label
      + 2  data-mcaptcha_url="{{paste your widget link here}}"
      + 3  for="mcaptcha__token"
      + 4  id="mcaptcha__token-label"
      + 5>
      + 6  mCaptcha authorization token.
      + 7  <a
      + 8    href="https://mcaptcha.org/docs/user-manual/how-to-mcaptcha-without-js/"
      + 9    >Instructions</a
      +10  >.
      +11  <input type="text" name="mcaptcha__token" id="mcaptcha__token" />
      +12</label>
      +13<div id="mcaptcha__widget-container"></div>
      +14<script src="https://unpkg.com/@mcaptcha/vanilla-glue@0.1.0-rc2/dist/index.js"></script>
      +

      A full example is available +here.

      +

      5. Configure backend to authenticate CAPTCHA tokens

      +
        +
      1. +

        Get access token from the user’s +form submission payload. The access token will be associated with a +parameter called mcaptcha__token.

        +
        1 mcaptcha_token = request.form["mcaptcha__token"]
        +
      2. +
      3. +

        Validate access token with mCaptcha instance

        +
      4. +
      +
       1payload = {
      + 2    "token": mcaptcha_token,
      + 3    "key": mcaptcha_sitekey, # captcha site key
      + 4    # mCaptcha account secret; available in settings
      + 5    "secret": mcaptcha_account_secret,
      + 6}
      + 7resp = requests.post(
      + 8    "https://demo.mcaptha.org/api/v1/pow/siteverify", json=payload
      + 9)
      +10resp = resp.json()
      +
        +
      1. If access token is valid, allow access to protected resource or deny +access.
      2. +
      +
      1 if resp["valid"] == False:
      +2     return "invalid captcha", 400
      +3 else:
      +4     return allow_access_to_protected_resource(request.form)
      +

      Please see here for a complete Flask example and here for an Actix +Web example.

      +

      Congratulations, mCaptcha is now integrated with your website!

      +`},{id:1,href:"/docs/webmasters/configuring-difficulty-factor/",title:"Configuring Difficulty Factor",description:"mCaptcha has options to configure its proof of work engine behavior, this page explains how to determine difficulty facotrs that work best for your website!",content:`

      mCaptcha is highly responsive to detecting DDoS attacks. Admins are +advised to take advantage of it by setting low difficulty +factors for normal traffic levels +for their website.

      +

      Lowest advisable difficulty factor is 5000.

      +

      For instance, if it is normal for my website to get 2000 requests for +every 30 seconds, I will set a cool +down period of 30 seconds and the +first level of difficulty configuration will have a visitor threshold of 2000 with a +difficulty factor of 5000.

      +

      There are two modes to setting difficulty factor for your website on +mCaptcha:

      +

      Easy option

      +

      Easy mode asks a few basic statistics about your website and generates a +configuration that should work for your website. Currently, easy mode is +guided by assumptions on suitable difficulty factors to protect a +website but it will be fine-tuned as mCaptcha sees more deployment.

      +

      Configuration generated by easy mode can be tweaked later using the +advance mode, as you become more familiar with how mCaptcha works.

      +
      + new sitekey form in easy mode + +
      +

      Advance option

      +

      Advance mode gives the admin granular control over how mCaptcha behaves +on their website. It has options to set the difficulty factor for each +level of traffic(or visitor threshold, in mCaptcha speak), fully taking +advantage of mCaptcha’s variable difficulty factor feature.

      +

      For instance, if it is normal for a website to get 200 requests over 30 +seconds, then setting a very low difficulty factor for a visitor +threshold of 200 and a cool down period of 30 seconds will allow the +users to pass through without waiting on the CAPTCHA. But if 1000 +requests over 30 seconds will bring down the service, then the admin can +configure increasing levels of difficulty factor of increasing traffic +levels, effectively rate limiting its users and protecting the +underlying website.

      +
      + new sitekey form in advance mode + +
      +`},{id:2,href:"/docs/self-hosting/getting-started/",title:"Getting started",description:"Get started with self-hosting mCaptcha",content:`

      Get started

      +

      There are two main ways to self-host mCaptcha:

      +
        +
      1. Bare metal
      2. +
      3. With Docker
      4. +
      +`},{id:3,href:"/docs/self-hosting/bare-metal/",title:"Deploy bare metal",description:"Bare metal deployment is tedious, most of this will be automated with a script in the future.",content:`

      2. Configure

      +

      mcaptcha is highly configurable.

      +

      Configuration is applied/merged in the following order:

      +
        +
      1. path to configuration file passed in via MCAPTCHA_CONFIG
      2. +
      3. ./config/default.toml
      4. +
      5. /etc/mcaptcha/config.toml
      6. +
      7. environment variables.
      8. +
      +

      1. Install postgres if you don’t have it already.

      +

      For Debian based distributions:

      +
      1sudo apt install postgres
      +

      2. Create new user for running mcaptcha

      +
      1$ sudo useradd -b /srv -m -s /usr/bin/zsh mcaptcha
      +

      3. Create new user in Postgres

      +
      1$ sudo -iu postgres # switch to \`postgres\` user
      +2$ psql
      +3postgres=#  CREATE USER mcaptcha WITH PASSWORD 'my super long password and yes you need single quote\`;
      +4$  createdb -O mcaptcha mcaptcha # create db 'mcaptcha' with 'mcaptcha' as owner
      +

      4. Install and load mCaptcha/cache module:

      +

      See mCaptcha/cache for more +details.

      +

      4. Build mcaptcha

      +

      To build mcaptcha, you need the following dependencies:

      +
        +
      1. rust
      2. +
      3. node(v14.16.0)
      4. +
      5. yarn(JavaScript package manager)
      6. +
      7. make
      8. +
      +

      How to build

      +
        +
      1. Install Cargo using rustup with:
      2. +
      +
      1$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
      +
        +
      1. +

        Install node(v14.16.0)

        +
      2. +
      3. +

        Install yarn(JavaScript package manager)

        +
      4. +
      5. +

        Build with make:

        +
      6. +
      +
      1$ make dev-env && \\
      +2	make release
      +

      5. Install package:

      +
      1$ sudo cp ./target/release/mcaptcha /usr/bin/ && \\
      +2	mkdir sudo /etc/mcaptcha && \\
      +3	sudo cp config/default.toml /etc/mcaptcha/config.toml
      +

      6. Systemd service configuration:

      +
        +
      1. Copy the following to /etc/systemd/system/mcaptcha.service:
      2. +
      +
       1[Unit]
      + 2Description=mCaptcha: a CAPTCHA system that gives attackers a run for their money
      + 3
      + 4[Service]
      + 5Type=simple
      + 6User=mcaptcha
      + 7ExecStart=/usr/bin/mcaptcha
      + 8Restart=on-failure
      + 9RestartSec=1
      +10SuccessExitStatus=3 4
      +11RestartForceExitStatus=3 4
      +12SystemCallArchitectures=native
      +13MemoryDenyWriteExecute=true
      +14NoNewPrivileges=true
      +15Environment="RUST_LOG=info"
      +16
      +17[Unit]
      +18After=sound.target
      +19Wants=network-online.target
      +20Wants=network-online.target
      +21Requires=postgresql.service
      +22After=syslog.target
      +23
      +24[Install]
      +25WantedBy=multi-user.target
      +
        +
      1. Enable service:
      2. +
      +
      1$ sudo systemctl daemon-reload && \\
      +2	sudo systemctl enable mcaptcha && \\ # Auto startup during boot
      +3	sudo systemctl start mcaptcha
      +4\`\`
      +
      `},{id:4,href:"/docs/self-hosting/docker/",title:"Using Docker",description:"Deploy mCaptcha using docker",content:`

      With Docker

      +

      1. Configure

      +

      mcaptcha is highly configurable.

      +

      Configuration is applied/merged in the following order:

      +
        +
      1. path to configuration file passed in via MCAPTCHA_CONFIG
      2. +
      3. ./config/default.toml
      4. +
      5. /etc/mcaptcha/config.toml
      6. +
      7. environment variables.
      8. +
      +

      See +CONFIGURATION.md +for configurable options.

      +

      2. Run image

      +

      If you have already have a Postgres instance running, then:

      +
      1docker run -p <host-machine-port>:<port-in-configuration-file> \\
      +2	--add-host=database:<database-ip-addrss> \\
      +3	-e RUST_LOG=debug \\
      +4	-e DATABASE_URL="postgres://<db-user>:<db-password>@database:<db-port>/<db-name>" \\
      +5	mcaptcha/mcaptcha:latest
      +

      If you don’t have a Postgres instance running, you can either install +one using a package manager or launch one with docker. A docker-compose +configuration is available that will launch both +a database instance mcaptcha instance.

      +

      With docker-compose

      +
        +
      1. +

        Follow steps above to build docker image.

        +
      2. +
      3. +

        Set database password docker-compose configuration.

        +
      4. +
      5. +

        Launch network

        +
      6. +
      +
      1docker-compose up -d
      +
      `},{id:5,href:"/docs/self-hosting/dependencies/",title:"Database and cache",description:"mCaptcha server requires dependencies like a Postgres database and a Redis cache",content:`

      Notes

      +

      Database

      +
        +
      • +

        Database migrations are baked into the server binary so don’t worry +about them.

        +
      • +
      • +

        When compiling from source, unset database configuration(comment out +database configuration/ unset relevant environment variables). +mCaptcha uses sqlx database client +library which checks SQL queries at compile time. So if you are starting +with a fresh database without migrations applied, compilation will fail.

        +
      • +
      +

      Redis

      +
        +
      • +

        Redis is an optional dependency. Currently, the non-Redis configuration +doesn’t persist CAPTCHA heat. So if there’s a systems failure, CAPTCHA +heat will be reset and visitor count will start from 0. For small +installations, this should post a problem as heat is short lived and is +reset anyways at cool down period.

        +
      • +
      • +

        mCaptcha uses a custom Redis module called +cache to overcome some of Redis' +limitations.

        +
      • +
      +

      Instructions

      +

      Once again, there are two ways to go about this:

      +
        +
      1. Docker
      2. +
      3. Bare metal
      4. +
      +

      Docker

      +

      Database

      +

      Download and run Postgres

      +
      1docker create --name mcaptcha-postgres \\
      +2  -e POSTGRES_PASSWORD=<database-password> \\
      +3  -p 5432:5432 \\
      +4  postgres && docker start mcaptcha-postgres
      +

      Redis

      +
      1docker create --name mcaptcha-cache \\
      +2  -p 6379:6379 \\
      +3  mcaptcha/cache && docker start mcaptcha-cache
      +

      See mCaptcha/cache for more +details.

      +

      1. Install Postgres if you don’t have it already.

      +

      For Debian based distributions:

      +
      1sudo apt install postgres
      +

      2. Create new user for running mCaptcha

      +
      1$ sudo useradd -b /srv -m -s /usr/bin/bash mcaptcha
      +

      3. Create new user in Postgres

      +
      1$ sudo -iu postgres # switch to \`postgres\` user
      +2$ psql
      +3postgres=#  CREATE USER mcaptcha WITH PASSWORD 'my super long password and yes you need single quote';
      +4$  createdb -O mcaptcha mcaptcha # create db 'mcaptcha' with 'mcaptcha' as owner
      +

      4. Install mCaptcha/cache

      +

      See mCaptcha/cache for more +details.

      +`},{id:6,href:"/docs/help/troubleshooting/",title:"Troubleshooting",description:"Solutions to common problems.",content:`

      Q: I just setup an instance but I am unable to login

      +

      mCaptcha by default is configured to server at localhost hostname. If +the instance is deployed at another hostname, please try setting +MCAPTCHA_SERVER_DOMAIN environment variable to the hostname at which +your instance is deployed or setting the equivalent in config.toml:

      +
      1[server]
      +2domain=mydomain
      +
      `},{id:7,href:"/docs/api/browser/",title:"Browser libraries",description:"API documenttion for mCaptcha WASM library",content:`

      The browser part of mCaptcha is divided into three components.

      +
        +
      • Glue code
      • +
      • Widget program
      • +
      • Proof-of-Work libraries(WebAssembly and JavaScript polyfill)
      • +
      +

      Glue code

      +

      This is the code that links mCaptcha with your website’s frontend code. +It creates an iframe containing the mCaptcha widget and injects the +received verification proof token into a hidden input field.

      +

      Support is available for various frameworks, see +mCaptcha/glue for the full list.

      +

      For frameworks without official support, a low-level library, +@mcaptcha/core-glue, +can be used to implement support.

      +

      Widget Program

      +

      This part is served by the mCaptcha backend. It fetches PoW config from +the backend, generates proof and submits it for verification. If +verification is successful, it sends a message containing the +verification proof token to the parent window, assuming it’s loaded as +an iframe.

      + +

      WebAssembly library which generates Proofs of Work for mCaptcha systems.

      +

      Proof-of-Work(PoW) library

      +

      WebAssembly bindings(mCaptcha/pow_wasm) are available for the main rust library(mCaptcha/pow_sha256).

      +

      For browsers without support WebAssembly, a +polyfill(pow_sha256-polyfill) +is available.

      +`},{id:8,href:"/docs/api/mcaptcha-system/",title:"mCaptcha System Library",description:"API documenttion for the core Library used in mCaptcha",content:`

      Documentation for the library used in mCaptcha core.

      +

      Versions

      + +`},{id:9,href:"/docs/api/pow-sha256/",title:"pow_sha256",description:"API documenttion for PoW Library used in mCaptcha",content:`

      Rust crate which generates SHA256 Proofs of Work on serializable datatypes.

      +

      This is a fork of the pow library by +@robkorn) with some new +additions. Primary of these being:

      +
        +
      • PoW datatype now offers a constructor
      • +
      • Salt is no longer hard coded into the library, users can provide +unique salts.
      • +
      +

      Other small changes have also been included of various importance but +mostly just stylistic/ease of use improvements.

      +

      Versions

      + +

      Changelog

      +

      Changelog is available at the project’s +repository

      +`},{id:10,href:"/docs/help/faq/",title:"FAQ",description:"Answers to frequently asked questions.",content:`

      Coming soon

      +`},{id:11,href:"/docs/user-manual/cli/",title:"CLI tool",description:"Instructions to install mCaptcha CLI",content:`

      A CLI tool exists to compute mCaptcha challenges. It can be installed +from multiple sources:

      +

      Install

      +

      crates.io

      +

      The CLI tool is available on, crates.io, the Rust +language’s package registry. Rust language toolchain is required to +install from crates.io, please see rustup.rs for +Instructions to install it.

      +
      1cargo install mcaptcha-cli
      +

      Pre-compiled binaries

      +

      Nightly builds and stable releases are regularly published to +dl.mcaptcha.org for a variety of +CPU architectures and operating systems.

      +
        +
      1. Download binary, checksum and GPG signature files
      2. +
      +
      1wget https://dl.mcaptcha.org/mcaptcha/cli/{VERSION}/{FILENAME}.tar.gz
      +2wget https://dl.mcaptcha.org/mcaptcha/cli/{VERSION}/{FILENAME}.tar.gz.asc
      +3wget https://dl.mcaptcha.org/mcaptcha/cli/{VERSION}/{FILENAME}.tar.gz.sha256
      +
        +
      1. Verify checksum
      2. +
      +
      1sha256sum -c {FILENAME}.tar.gz.sha256
      +
        +
      1. Download mCaptcha’s GPG release keys and verify GPG signature
      2. +
      +
      1gpg --keyserver keyserver.ubuntu.com --recv 73DAC973A9ADBB9ADCB5CDC4595A08135BA9FF73
      +2gpg --verify {FILENAME}.tar.gz.asc
      +
        +
      1. Install Binary
      2. +
      +
      1tar -xvzf {FILENAME}.tar.gz && sudo cp {FILENAME}/mcaptcha-cli /usr/local/bin
      +

      Build from source

      +
        +
      1. Install Rust tool chain +Please see here for instructions.
      2. +
      3. Download source code
      4. +
      +
      1git clone https://git.batsense.net/mCaptcha/cli
      +
        +
      1. Compile and install
      2. +
      +
      1cargo build --release && sudp cp ./target/release/mcaptcha-cli
      +2/usr/local/bin
      +

      Pass mCaptcha challenge

      +

      The CLI tool requires details about the challenge to work on it. The +tool can be used in three different modes compute challenge:

      +
        +
      1. Protected Page: Compute mCaptcha challenge for the CAPTCHA at a +protected page
      2. +
      3. Widget URL: Compute PoW for captcha at widget URL
      4. +
      5. (Developer mode) Offline: Computes PoW over given CAPTCHA parameters
      6. +
      +

      From protected page URL

      +

      The most convenient mode: copy the URL of the webpage which has the +mCaptcha widget (example: showcase.mcaptcha.org) and run the CLI tool +with it to get an authorization code: +Compute challenge using the URL

      +
      103:39 atm@lab cli ±|feat-parse-webpage ✗|→ mcaptcha-cli protected-page https://showcase.mcaptcha.org/
      +2Authorization token: eRAZJiMrW58uDYA1s64Tmwq1u30HutuF
      +

      Widget URL

      +

      If you have the widget URL (will be in format https://mcaptcha.example.org/widget?sitekey=randomstring), it can be used to solve challenge as well:

      +
      1Compute PoW by fetching parameters from  CAPTCHA URL
      +2
      +3Usage: mcaptcha-cli online --url <URL>
      +4
      +5Options:
      +6  -u, --url <URL>  URL of the CAPTCHA. Example:  https://example.org/widget?sitekey=foo
      +7  -h, --help       Print help
      +

      Example usage:

      +
      113:32 atm@lab cli ±|online ✗|→ mcaptcha-cli online -u https://demo.mcaptcha.org/widget?sitekey=pHy0AktWyOKuxZDzFfoaewncWecCHo23
      +2Authorization token: 3xleN26OctBuVu3X4t6CYyUjErhaxQvz
      +

      [Developer mode] Offline

      +

      Useful while debugging mCaptcha configurations, works on raw challenge +parameters.

      +

      Help menu:

      +
      1Compute PoW with offline parameters
      +2
      +3Usage: mcaptcha-cli offline --salt <SALT> --phrase <PHRASE> --difficulty-factor <DIFFICULTY_FACTOR>
      +4
      +5Options:
      +6  -s, --salt <SALT>                            Salt with which PoW should be computed
      +7  -p, --phrase <PHRASE>                        Phrase over which PoW should be computed
      +8  -d, --difficulty-factor <DIFFICULTY_FACTOR>  Difficulty Factor
      +9  -h, --help                                   Print help
      +

      Example usage:

      +
      113:28 atm@lab cli ±|online|→ mcaptcha-cli offline -s $(rand 32) -p $(rand 32) -d 50000
      +2difficulty: 50000
      +3nonce: 90507
      +4original phrase: f351f333d44b2c6b5bf7f033b065bbb8fb5e9dd153bd402e43ed04425f5a3859
      +5result: 340276562956196291522979356090220150471
      +

      Where rand is this script.

      +`},{id:12,href:"/docs/user-manual/how-to-mcaptcha-without-js/",title:"Use mCaptcha without JavaScript",description:"Instructions to solve mCaptcha with JavaScript disabled",content:`

      To use mCaptcha without JavaScript:

      +
        +
      1. Install mCaptcha CLI too. Please see here for instructions.
      2. +
      3. Copy the URL of the protected page
      4. +
      5. Run mCaptcha CLI with that URL:
      6. +
      +
      1mcapthca-cli protected-page <URL>
      +
        +
      1. Copy authorization code and paste it in the form
      2. +
      +`},{id:13,href:"/docs/user-manual/",title:"User Manual",description:"Introduction to mCaptcha for users",content:""},{id:14,href:"/docs/webmasters/terminology/",title:"Terminology",description:"Information about terminology used in mCaptcha, some of which unique to the project",content:`

      Authorization token

      +

      When a visitor solves the CAPTCHA and sends their solution to an +mCaptcha instance, the solution will be verified for correctness. If the +solution is correct, mCaptcha will return a single use authorization token.

      +

      This authorization token should be attached to the visitor’s requited to the +protected service and the protected service should validity of the +authorization token with the mCaptcha instance and only allow authorization to +protected resource if the authorization token is valid.

      +

      Cooldown Period

      +

      mCaptcha implements leaky bucket algorithm to measure +current traffic levels. Cooldown period specifies the leak or the time +after which a visitor addition is decremented.

      +

      For instance, if initial traffic level is 0 and a user visits one +second later, the traffic level will be incremented to 1. Now, if the +cooldown period is set to 30 seconds, the traffic level will be +decremented after 30 seconds. So after 30 seconds, the traffic level will +go from 1 to 0.

      +

      Difficulty Factor

      +

      Difficulty factor determines the time it takes to solve a CAPTCHA. The +higher the difficulty factor, the longer it will take to generate a +proof of work for it to solve the CAPTCHA.

      +

      mCaptcha’s proof of work based mechanism makes it highly accessible to +people with special needs but it is important to choose the difficulty factor +with care as very high difficulty factors will make the CAPTCHA +inaccessible to users on slow devices.

      +

      Sitekey

      +

      Site key is a unique identifier associated with CAPTCHA configurations +created on mCaptcha. It is required to integrate a CAPTCHA with your +website.

      +

      Visitor Threshold

      +

      mCaptcha’s variable difficulty factor mechanism requires a website’s traffic +statistics be split into levels, so that it can deploy the right +difficulty factor for each level.

      +

      Visitor threshold is used to traffic into levels and mCaptcha accepts a +difficulty configuration for each of these levels. When current traffic +exceeds a difficulty factor, mCaptcha will increase the difficulty +factor to the next configured level.

      +

      For instance, consider the configuration given below:

      +
        +
      • Cool down period: 30 seconds
      • +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      LevelDifficulty FactorVisitor Threshold
      15,0002,000
      250,0005,000
      3500,00010,000
      45,000,00015,000
      +

      If the website sees 2,000 requests in a 30 second window, level 1 +difficulty factor(5,000) will be deployed. If the traffic increases to +5,000 requests in a 30 second window, then difficulty factor will be +upgraded to level 2(50,000). Likewise 10,000 and 15,000 requests over 30 +seconds will result in difficulty factor being upgraded to 500,000 and +5,000,000 respectively.

      +

      Visitor threshold is how mCaptcha determines which difficulty factor +level to deploy. mCaptcha uses leaky bucket algorithm to keep the +visitor threshold constantly updated within the configured cool down +period. So, at any given moment the, the current visitor level will be +the amount of traffic that was served in the cool down period specified.

      +`},{id:15,href:"/docs/webmasters/faq/",title:"Webmasters FAQ",description:"Frequently asked questions related to using mCaptcha as a webmaster",content:`

      Easy Mode: Default cooldown period

      +

      When configuring mCaptcha in easy mode, the default cooldown period is set to 30 seconds.

      +

      How to get site key from dashboard?

      +
        +
      1. Go to “Site keys” on the side panel in the dashboard
      2. +
      +
      +
      + Site key menu option on the dashboard, encircled in red. + +
      +
      +
        +
      1. click on the clipboard button to copy the site key to your +clipboard.
      2. +
      +
      + Copy site key to clipboard. Clipboard button is highlighted in the photo + +
      +`},{id:16,href:"/docs/help/",title:"Help",description:"Help mCaptcha.",content:""},{id:17,href:"/docs/webmasters/",title:"Webmasters",description:"Introduction to mCaptcha for webmasters",content:""},{id:18,href:"/docs/api/",title:"API",description:"Documentation for libraries used in mCaptcha",content:""},{id:19,href:"/docs/",title:"mCaptcha",description:"Docs mCaptcha",content:""},{id:20,href:"/docs/self-hosting/",title:"Self-Hosting",description:"Instructions to self-host mCaptcha",content:""}];e.add(n),userinput.addEventListener("input",s,!0),suggestions.addEventListener("click",o,!0);function s(){var n,i=this.value,s=e.search(i,5),o=suggestions.childNodes,r=0,c=s.length;for(suggestions.classList.remove("d-none"),s.forEach(function(e){n=document.createElement("div"),n.innerHTML="",a=n.querySelector("a"),t=n.querySelector("span:first-child"),d=n.querySelector("span:nth-child(2)"),a.href=e.href,t.textContent=e.title,d.textContent=e.description,suggestions.appendChild(n)});o.length>c;)suggestions.removeChild(o[r])}function o(){for(;suggestions.lastChild;)suggestions.removeChild(suggestions.lastChild);return!1}})() \ No newline at end of file diff --git a/index.min.3815062368a85ddb58786a06fadf790751079a4737b79f370db1cf2044c2451d2de7aa39343d73dab0c02899036427f327ddec61ad33c2cebafc3e4e1e8a64dc.js b/index.min.b59e9d73d7e970542c9660dbd7dbb266a7f7d320c46b1383623b1d9c0cf9cab69f0068a6c0f09951328ea22eeceafc036a93bff8f9423911024d524d5e8174c1.js similarity index 79% rename from index.min.3815062368a85ddb58786a06fadf790751079a4737b79f370db1cf2044c2451d2de7aa39343d73dab0c02899036427f327ddec61ad33c2cebafc3e4e1e8a64dc.js rename to index.min.b59e9d73d7e970542c9660dbd7dbb266a7f7d320c46b1383623b1d9c0cf9cab69f0068a6c0f09951328ea22eeceafc036a93bff8f9423911024d524d5e8174c1.js index ee83bac..784eb3a 100644 --- a/index.min.3815062368a85ddb58786a06fadf790751079a4737b79f370db1cf2044c2451d2de7aa39343d73dab0c02899036427f327ddec61ad33c2cebafc3e4e1e8a64dc.js +++ b/index.min.b59e9d73d7e970542c9660dbd7dbb266a7f7d320c46b1383623b1d9c0cf9cab69f0068a6c0f09951328ea22eeceafc036a93bff8f9423911024d524d5e8174c1.js @@ -402,7 +402,109 @@ mostly just stylistic/ease of use improvements.

      Changelog is available at the project’s repository

      `},{id:10,href:"/docs/help/faq/",title:"FAQ",description:"Answers to frequently asked questions.",content:`

      Coming soon

      -`},{id:11,href:"/docs/webmasters/terminology/",title:"Terminology",description:"Information about terminology used in mCaptcha, some of which unique to the project",content:`

      Authorization token

      +`},{id:11,href:"/docs/user-manual/cli/",title:"CLI tool",description:"Instructions to install mCaptcha CLI",content:`

      A CLI tool exists to compute mCaptcha challenges. It can be installed +from multiple sources:

      +

      Install

      +

      crates.io

      +

      The CLI tool is available on, crates.io, the Rust +language’s package registry. Rust language toolchain is required to +install from crates.io, please see rustup.rs for +Instructions to install it.

      +
      1cargo install mcaptcha-cli
      +

      Pre-compiled binaries

      +

      Nightly builds and stable releases are regularly published to +dl.mcaptcha.org for a variety of +CPU architectures and operating systems.

      +
        +
      1. Download binary, checksum and GPG signature files
      2. +
      +
      1wget https://dl.mcaptcha.org/mcaptcha/cli/{VERSION}/{FILENAME}.tar.gz
      +2wget https://dl.mcaptcha.org/mcaptcha/cli/{VERSION}/{FILENAME}.tar.gz.asc
      +3wget https://dl.mcaptcha.org/mcaptcha/cli/{VERSION}/{FILENAME}.tar.gz.sha256
      +
        +
      1. Verify checksum
      2. +
      +
      1sha256sum -c {FILENAME}.tar.gz.sha256
      +
        +
      1. Download mCaptcha’s GPG release keys and verify GPG signature
      2. +
      +
      1gpg --keyserver keyserver.ubuntu.com --recv 73DAC973A9ADBB9ADCB5CDC4595A08135BA9FF73
      +2gpg --verify {FILENAME}.tar.gz.asc
      +
        +
      1. Install Binary
      2. +
      +
      1tar -xvzf {FILENAME}.tar.gz && sudo cp {FILENAME}/mcaptcha-cli /usr/local/bin
      +

      Build from source

      +
        +
      1. Install Rust tool chain +Please see here for instructions.
      2. +
      3. Download source code
      4. +
      +
      1git clone https://git.batsense.net/mCaptcha/cli
      +
        +
      1. Compile and install
      2. +
      +
      1cargo build --release && sudp cp ./target/release/mcaptcha-cli
      +2/usr/local/bin
      +

      Pass mCaptcha challenge

      +

      The CLI tool requires details about the challenge to work on it. The +tool can be used in three different modes compute challenge:

      +
        +
      1. Protected Page: Compute mCaptcha challenge for the CAPTCHA at a +protected page
      2. +
      3. Widget URL: Compute PoW for captcha at widget URL
      4. +
      5. (Developer mode) Offline: Computes PoW over given CAPTCHA parameters
      6. +
      +

      From protected page URL

      +

      The most convenient mode: copy the URL of the webpage which has the +mCaptcha widget (example: showcase.mcaptcha.org) and run the CLI tool +with it to get an authorization code: +Compute challenge using the URL

      +
      103:39 atm@lab cli ±|feat-parse-webpage ✗|→ mcaptcha-cli protected-page https://showcase.mcaptcha.org/
      +2Authorization token: eRAZJiMrW58uDYA1s64Tmwq1u30HutuF
      +

      Widget URL

      +

      If you have the widget URL (will be in format https://mcaptcha.example.org/widget?sitekey=randomstring), it can be used to solve challenge as well:

      +
      1Compute PoW by fetching parameters from  CAPTCHA URL
      +2
      +3Usage: mcaptcha-cli online --url <URL>
      +4
      +5Options:
      +6  -u, --url <URL>  URL of the CAPTCHA. Example:  https://example.org/widget?sitekey=foo
      +7  -h, --help       Print help
      +

      Example usage:

      +
      113:32 atm@lab cli ±|online ✗|→ mcaptcha-cli online -u https://demo.mcaptcha.org/widget?sitekey=pHy0AktWyOKuxZDzFfoaewncWecCHo23
      +2Authorization token: 3xleN26OctBuVu3X4t6CYyUjErhaxQvz
      +

      [Developer mode] Offline

      +

      Useful while debugging mCaptcha configurations, works on raw challenge +parameters.

      +

      Help menu:

      +
      1Compute PoW with offline parameters
      +2
      +3Usage: mcaptcha-cli offline --salt <SALT> --phrase <PHRASE> --difficulty-factor <DIFFICULTY_FACTOR>
      +4
      +5Options:
      +6  -s, --salt <SALT>                            Salt with which PoW should be computed
      +7  -p, --phrase <PHRASE>                        Phrase over which PoW should be computed
      +8  -d, --difficulty-factor <DIFFICULTY_FACTOR>  Difficulty Factor
      +9  -h, --help                                   Print help
      +

      Example usage:

      +
      113:28 atm@lab cli ±|online|→ mcaptcha-cli offline -s $(rand 32) -p $(rand 32) -d 50000
      +2difficulty: 50000
      +3nonce: 90507
      +4original phrase: f351f333d44b2c6b5bf7f033b065bbb8fb5e9dd153bd402e43ed04425f5a3859
      +5result: 340276562956196291522979356090220150471
      +

      Where rand is this script.

      +`},{id:12,href:"/docs/user-manual/how-to-mcaptcha-without-js/",title:"Use mCaptcha without JavaScript",description:"Instructions to solve mCaptcha with JavaScript disabled",content:`

      To use mCaptcha without JavaScript:

      +
        +
      1. Install mCaptcha CLI too. Please see here for instructions.
      2. +
      3. Copy the URL of the protected page
      4. +
      5. Run mCaptcha CLI with that URL:
      6. +
      +
      1mcapthca-cli protected-page <URL>
      +
        +
      1. Copy authorization code and paste it in the form
      2. +
      +`},{id:13,href:"/docs/user-manual/",title:"User Manual",description:"Introduction to mCaptcha for users",content:""},{id:14,href:"/docs/webmasters/terminology/",title:"Terminology",description:"Information about terminology used in mCaptcha, some of which unique to the project",content:`

      Authorization token

      When a visitor solves the CAPTCHA and sends their solution to an mCaptcha instance, the solution will be verified for correctness. If the solution is correct, mCaptcha will return a single use authorization token.

      @@ -485,7 +587,7 @@ level to deploy. mCaptcha uses leaky bucket algorithm to keep the visitor threshold constantly updated within the configured cool down period. So, at any given moment the, the current visitor level will be the amount of traffic that was served in the cool down period specified.

      -`},{id:12,href:"/docs/webmasters/faq/",title:"Webmasters FAQ",description:"Frequently asked questions related to using mCaptcha as a webmaster",content:`

      Easy Mode: Default cooldown period

      +`},{id:15,href:"/docs/webmasters/faq/",title:"Webmasters FAQ",description:"Frequently asked questions related to using mCaptcha as a webmaster",content:`

      Easy Mode: Default cooldown period

      When configuring mCaptcha in easy mode, the default cooldown period is set to 30 seconds.

      How to get site key from dashboard?

        @@ -505,4 +607,4 @@ clipboard. Copy site key to clipboard. Clipboard button is highlighted in the photo -`},{id:13,href:"/docs/help/",title:"Help",description:"Help mCaptcha.",content:""},{id:14,href:"/docs/webmasters/",title:"Webmasters",description:"Introduction to mCaptcha for webmasters",content:""},{id:15,href:"/docs/api/",title:"API",description:"Documentation for libraries used in mCaptcha",content:""},{id:16,href:"/docs/",title:"mCaptcha",description:"Docs mCaptcha",content:""},{id:17,href:"/docs/self-hosting/",title:"Self-Hosting",description:"Instructions to self-host mCaptcha",content:""}];e.add(n),userinput.addEventListener("input",s,!0),suggestions.addEventListener("click",o,!0);function s(){var n,i=this.value,s=e.search(i,5),o=suggestions.childNodes,r=0,c=s.length;for(suggestions.classList.remove("d-none"),s.forEach(function(e){n=document.createElement("div"),n.innerHTML="",a=n.querySelector("a"),t=n.querySelector("span:first-child"),d=n.querySelector("span:nth-child(2)"),a.href=e.href,t.textContent=e.title,d.textContent=e.description,suggestions.appendChild(n)});o.length>c;)suggestions.removeChild(o[r])}function o(){for(;suggestions.lastChild;)suggestions.removeChild(suggestions.lastChild);return!1}})() \ No newline at end of file +`},{id:16,href:"/docs/help/",title:"Help",description:"Help mCaptcha.",content:""},{id:17,href:"/docs/webmasters/",title:"Webmasters",description:"Introduction to mCaptcha for webmasters",content:""},{id:18,href:"/docs/api/",title:"API",description:"Documentation for libraries used in mCaptcha",content:""},{id:19,href:"/docs/",title:"mCaptcha",description:"Docs mCaptcha",content:""},{id:20,href:"/docs/self-hosting/",title:"Self-Hosting",description:"Instructions to self-host mCaptcha",content:""}];e.add(n),userinput.addEventListener("input",s,!0),suggestions.addEventListener("click",o,!0);function s(){var n,i=this.value,s=e.search(i,5),o=suggestions.childNodes,r=0,c=s.length;for(suggestions.classList.remove("d-none"),s.forEach(function(e){n=document.createElement("div"),n.innerHTML="",a=n.querySelector("a"),t=n.querySelector("span:first-child"),d=n.querySelector("span:nth-child(2)"),a.href=e.href,t.textContent=e.title,d.textContent=e.description,suggestions.appendChild(n)});o.length>c;)suggestions.removeChild(o[r])}function o(){for(;suggestions.lastChild;)suggestions.removeChild(suggestions.lastChild);return!1}})() \ No newline at end of file diff --git a/main.976507041017ac4a08ed252c5399a7c72b3b5aeae14bc23dd624cbddb3d2cb6065f6cf8ed6cd96bf5cd21c1157dee4bfdb85b488cb791a49a33af016aa3fcffd.css b/main.976507041017ac4a08ed252c5399a7c72b3b5aeae14bc23dd624cbddb3d2cb6065f6cf8ed6cd96bf5cd21c1157dee4bfdb85b488cb791a49a33af016aa3fcffd.css deleted file mode 100644 index ed0bdf3..0000000 --- a/main.976507041017ac4a08ed252c5399a7c72b3b5aeae14bc23dd624cbddb3d2cb6065f6cf8ed6cd96bf5cd21c1157dee4bfdb85b488cb791a49a33af016aa3fcffd.css +++ /dev/null @@ -1,10 +0,0 @@ -/*! - * Bootstrap v5.2.3 (https://getbootstrap.com/) - * Copyright 2011-2022 The Bootstrap Authors - * Copyright 2011-2022 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - */:root{--bs-blue: #0d6efd;--bs-indigo: #6610f2;--bs-purple: #5d2f86;--bs-pink: #d63384;--bs-red: #dc3545;--bs-orange: #fd7e14;--bs-yellow: #ffe000;--bs-green: #198754;--bs-teal: #20c997;--bs-cyan: #0dcaf0;--bs-black: #1d2d35;--bs-white: #fff;--bs-gray: #6c757d;--bs-gray-dark: #343a40;--bs-gray-100: #f8f9fa;--bs-gray-200: #e9ecef;--bs-gray-300: #dee2e6;--bs-gray-400: #ced4da;--bs-gray-500: #adb5bd;--bs-gray-600: #6c757d;--bs-gray-700: #495057;--bs-gray-800: #343a40;--bs-gray-900: #212529;--bs-primary: #5d2f86;--bs-secondary: #6c757d;--bs-success: #198754;--bs-info: #0dcaf0;--bs-warning: #ffe000;--bs-danger: #dc3545;--bs-light: #f8f9fa;--bs-dark: #212529;--bs-primary-rgb: 93,47,134;--bs-secondary-rgb: 108,117,125;--bs-success-rgb: 25,135,84;--bs-info-rgb: 13,202,240;--bs-warning-rgb: 255,224,0;--bs-danger-rgb: 220,53,69;--bs-light-rgb: 248,249,250;--bs-dark-rgb: 33,37,41;--bs-white-rgb: 255,255,255;--bs-black-rgb: 29,45,53;--bs-body-color-rgb: 29,45,53;--bs-body-bg-rgb: 255,255,255;--bs-font-sans-serif: "Jost", -apple-system, blinkmacsystemfont, "Segoe UI", roboto, "Helvetica Neue", arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--bs-font-monospace: sfmono-regular, menlo, monaco, consolas, "Liberation Mono", "Courier New", monospace;--bs-gradient: linear-gradient(180deg, rgba(255,255,255,0.15), rgba(255,255,255,0));--bs-body-font-family: Jost,-apple-system,blinkmacsystemfont,Segoe UI,roboto,Helvetica Neue,arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--bs-body-font-size:1rem;--bs-body-font-weight: 400;--bs-body-line-height: 1.5;--bs-body-color: #1d2d35;--bs-body-bg: #fff;--bs-border-width: 1px;--bs-border-style: solid;--bs-border-color: #e9ecef;--bs-border-color-translucent: rgba(29,45,53,0.175);--bs-border-radius: .375rem;--bs-border-radius-sm: .25rem;--bs-border-radius-lg: .5rem;--bs-border-radius-xl: 1rem;--bs-border-radius-2xl: 2rem;--bs-border-radius-pill: 50rem;--bs-link-color: #5d2f86;--bs-link-hover-color: #4a266b;--bs-code-color: #d63384;--bs-highlight-bg: #fff9cc}*,*::before,*::after{box-sizing:border-box}@media (prefers-reduced-motion: no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(29,45,53,0)}h4,.h4,h3,.h3,h2,.h2,h1,.h1{margin-top:0;margin-bottom:.5rem;font-weight:700;line-height:1.2}h1,.h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width: 1200px){h1,.h1{font-size:2.5rem}}h2,.h2{font-size:calc(1.325rem + .9vw)}@media (min-width: 1200px){h2,.h2{font-size:2rem}}h3,.h3{font-size:calc(1.3rem + .6vw)}@media (min-width: 1200px){h3,.h3{font-size:1.75rem}}h4,.h4{font-size:calc(1.275rem + .3vw)}@media (min-width: 1200px){h4,.h4{font-size:1.5rem}}p{margin-top:0;margin-bottom:1rem}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}blockquote{margin:0 0 1rem}strong{font-weight:bolder}small,.small{font-size:.875em}a{color:var(--bs-link-color);text-decoration:none}a:hover{color:var(--bs-link-hover-color)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:var(--bs-font-monospace);font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:var(--bs-code-color);word-wrap:break-word}a>code{color:inherit}kbd{padding:.1875rem .375rem;font-size:.875em;color:var(--bs-body-bg);background-color:var(--bs-body-color);border-radius:.25rem}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}thead,tbody,tr,td,th{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}input,button{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button{text-transform:none}[role="button"]{cursor:pointer}[list]:not([type="date"]):not([type="datetime-local"]):not([type="month"]):not([type="week"]):not([type="time"])::-webkit-calendar-picker-indicator{display:none !important}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button:not(:disabled),[type="button"]:not(:disabled),[type="reset"]:not(:disabled),[type="submit"]:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-text,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type="search"]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit;-webkit-appearance:button}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none !important}.lead{font-size:1.25rem;font-weight:400}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.img-fluid{max-width:100%;height:auto}.figure{display:inline-block}.figure-caption{font-size:.875em;color:#6c757d}.container,.container-fluid{--bs-gutter-x: 48px;--bs-gutter-y: 0;width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-right:auto;margin-left:auto}@media (min-width: 576px){.container{max-width:540px}}@media (min-width: 768px){.container{max-width:720px}}@media (min-width: 992px){.container{max-width:960px}}@media (min-width: 1200px){.container{max-width:1240px}}@media (min-width: 1400px){.container{max-width:1320px}}.row{--bs-gutter-x: 48px;--bs-gutter-y: 0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x))}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}@media (min-width: 768px){.col-md-12{flex:0 0 auto;width:75%}}@media (min-width: 992px){.col-lg-5{flex:0 0 auto;width:31.25%}.col-lg-8{flex:0 0 auto;width:50%}.col-lg-9{flex:0 0 auto;width:56.25%}.col-lg-10{flex:0 0 auto;width:62.5%}.col-lg-11{flex:0 0 auto;width:68.75%}.col-lg-12{flex:0 0 auto;width:75%}}@media (min-width: 1200px){.col-xl-3{flex:0 0 auto;width:18.75%}.col-xl-4{flex:0 0 auto;width:25%}.col-xl-8{flex:0 0 auto;width:50%}.col-xl-9{flex:0 0 auto;width:56.25%}}.table,table{--bs-table-color: var(--bs-body-color);--bs-table-bg: rgba(0,0,0,0);--bs-table-border-color: var(--bs-border-color);--bs-table-accent-bg: rgba(0,0,0,0);--bs-table-striped-color: var(--bs-body-color);--bs-table-striped-bg: rgba(29,45,53,0.05);--bs-table-active-color: var(--bs-body-color);--bs-table-active-bg: rgba(29,45,53,0.1);--bs-table-hover-color: var(--bs-body-color);--bs-table-hover-bg: rgba(29,45,53,0.075);width:100%;margin-bottom:1rem;color:var(--bs-table-color);vertical-align:top;border-color:var(--bs-table-border-color)}.table>:not(caption)>*>*,table>:not(caption)>*>*{padding:.5rem .5rem;background-color:var(--bs-table-bg);border-bottom-width:1px;box-shadow:inset 0 0 0 9999px var(--bs-table-accent-bg)}.table>tbody,table>tbody{vertical-align:inherit}.table>thead,table>thead{vertical-align:bottom}body.dark table{--bs-table-color: #fff;--bs-table-bg: #212529;--bs-table-border-color: #373b3e;--bs-table-striped-bg: #2c3034;--bs-table-striped-color: #fff;--bs-table-active-bg: #373b3e;--bs-table-active-color: #fff;--bs-table-hover-bg: #323539;--bs-table-hover-color: #fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#1d2d35;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.375rem;transition:border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control{transition:none}}.form-control[type="file"]{overflow:hidden}.form-control[type="file"]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:#1d2d35;background-color:#fff;border-color:#ae97c3;outline:0;box-shadow:0 0 0 .25rem rgba(93,47,134,0.25)}.form-control::-webkit-date-and-time-value{height:1.5em}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled{background-color:#e9ecef;opacity:1}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#1d2d35;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#dde0e3}.btn{--bs-btn-padding-x: .75rem;--bs-btn-padding-y: .375rem;--bs-btn-font-family: ;--bs-btn-font-size:1rem;--bs-btn-font-weight: 400;--bs-btn-line-height: 1.5;--bs-btn-color: #1d2d35;--bs-btn-bg: transparent;--bs-btn-border-width: 1px;--bs-btn-border-color: transparent;--bs-btn-border-radius: .375rem;--bs-btn-hover-border-color: transparent;--bs-btn-box-shadow: inset 0 1px 0 rgba(255,255,255,0.15),0 1px 1px rgba(29,45,53,0.075);--bs-btn-disabled-opacity: .65;--bs-btn-focus-box-shadow: 0 0 0 .25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);display:inline-block;padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);font-family:var(--bs-btn-font-family);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);color:var(--bs-btn-color);text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);border-radius:var(--bs-btn-border-radius);background-color:var(--bs-btn-bg);transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.btn{transition:none}}.btn:hover{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color)}.btn:focus-visible{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}:not(.btn-check)+.btn:active,.btn:first-child:active,.btn.active,.btn.show{color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg);border-color:var(--bs-btn-active-border-color)}:not(.btn-check)+.btn:active:focus-visible,.btn:first-child:active:focus-visible,.btn.active:focus-visible,.btn.show:focus-visible{box-shadow:var(--bs-btn-focus-box-shadow)}.btn:disabled,.btn.disabled{color:var(--bs-btn-disabled-color);pointer-events:none;background-color:var(--bs-btn-disabled-bg);border-color:var(--bs-btn-disabled-border-color);opacity:var(--bs-btn-disabled-opacity)}.btn-primary{--bs-btn-color: #fff;--bs-btn-bg: #5d2f86;--bs-btn-border-color: #5d2f86;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #4f2872;--bs-btn-hover-border-color: #4a266b;--bs-btn-focus-shadow-rgb: 117,78,152;--bs-btn-active-color: #fff;--bs-btn-active-bg: #4a266b;--bs-btn-active-border-color: #462365;--bs-btn-active-shadow: inset 0 3px 5px rgba(29,45,53,0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #5d2f86;--bs-btn-disabled-border-color: #5d2f86}.btn-link{--bs-btn-font-weight: 400;--bs-btn-color: var(--bs-link-color);--bs-btn-bg: transparent;--bs-btn-border-color: transparent;--bs-btn-hover-color: var(--bs-link-hover-color);--bs-btn-hover-border-color: transparent;--bs-btn-active-color: var(--bs-link-hover-color);--bs-btn-active-border-color: transparent;--bs-btn-disabled-color: #6c757d;--bs-btn-disabled-border-color: transparent;--bs-btn-box-shadow: none;--bs-btn-focus-shadow-rgb: 117,78,152;text-decoration:none}.btn-link:focus-visible{color:var(--bs-btn-color)}.btn-link:hover{color:var(--bs-btn-hover-color)}.btn-lg{--bs-btn-padding-y: .5rem;--bs-btn-padding-x: 1rem;--bs-btn-font-size:1.25rem;--bs-btn-border-radius: .5rem}.btn-sm{--bs-btn-padding-y: .25rem;--bs-btn-padding-x: .5rem;--bs-btn-font-size:.875rem;--bs-btn-border-radius: .25rem}.collapse:not(.show){display:none}.nav{--bs-nav-link-padding-x: 1rem;--bs-nav-link-padding-y: .5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: var(--bs-link-color);--bs-nav-link-hover-color: var(--bs-link-hover-color);--bs-nav-link-disabled-color: #6c757d;display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);color:var(--bs-nav-link-color);transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.nav-link{transition:none}}.nav-link:hover,.nav-link:focus{color:var(--bs-nav-link-hover-color)}.nav-link.disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}.navbar{--bs-navbar-padding-x: 0;--bs-navbar-padding-y: .5rem;--bs-navbar-color: #1d2d35;--bs-navbar-hover-color: #5d2f86;--bs-navbar-disabled-color: rgba(29,45,53,0.3);--bs-navbar-active-color: #5d2f86;--bs-navbar-brand-padding-y: .3125rem;--bs-navbar-brand-margin-end: 1rem;--bs-navbar-brand-font-size: 1.25rem;--bs-navbar-brand-color: #5d2f86;--bs-navbar-brand-hover-color: #5d2f86;--bs-navbar-nav-link-padding-x: .5rem;--bs-navbar-toggler-padding-y: .25rem;--bs-navbar-toggler-padding-x: .75rem;--bs-navbar-toggler-font-size: 1.25rem;--bs-navbar-toggler-icon-bg: none;--bs-navbar-toggler-border-color: rgba(29,45,53,0.1);--bs-navbar-toggler-border-radius: .375rem;--bs-navbar-toggler-focus-width: .25rem;--bs-navbar-toggler-transition: box-shadow 0.15s ease-in-out;position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x)}.navbar>.container,.navbar>.container-fluid{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:var(--bs-navbar-brand-padding-y);padding-bottom:var(--bs-navbar-brand-padding-y);margin-right:var(--bs-navbar-brand-margin-end);font-size:var(--bs-navbar-brand-font-size);color:var(--bs-navbar-brand-color);white-space:nowrap}.navbar-brand:hover,.navbar-brand:focus{color:var(--bs-navbar-brand-hover-color)}.navbar-nav{--bs-nav-link-padding-x: 0;--bs-nav-link-padding-y: .5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: var(--bs-navbar-color);--bs-nav-link-hover-color: var(--bs-navbar-hover-color);--bs-nav-link-disabled-color: var(--bs-navbar-disabled-color);display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .show>.nav-link,.navbar-nav .nav-link.active{color:var(--bs-navbar-active-color)}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a:hover,.navbar-text a:focus{color:var(--bs-navbar-active-color)}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}@media (min-width: 768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-collapse{display:flex !important;flex-basis:auto}}.card{--bs-card-spacer-y: 1rem;--bs-card-spacer-x: 1rem;--bs-card-title-spacer-y: .5rem;--bs-card-border-width: 1px;--bs-card-border-color: #e9ecef;--bs-card-border-radius: .375rem;--bs-card-box-shadow: ;--bs-card-inner-border-radius: calc(.375rem - 1px);--bs-card-cap-padding-y: .5rem;--bs-card-cap-padding-x: 1rem;--bs-card-cap-bg: rgba(29,45,53,0.03);--bs-card-cap-color: ;--bs-card-height: ;--bs-card-color: ;--bs-card-bg: #fff;--bs-card-img-overlay-padding: 1rem;--bs-card-group-margin: 24px;position:relative;display:flex;flex-direction:column;min-width:0;height:var(--bs-card-height);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius)}.card-body{flex:1 1 auto;padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x);color:var(--bs-card-color)}.breadcrumb{--bs-breadcrumb-padding-x: 0;--bs-breadcrumb-padding-y: 0;--bs-breadcrumb-margin-bottom: 1rem;--bs-breadcrumb-bg: ;--bs-breadcrumb-border-radius: ;--bs-breadcrumb-divider-color: #6c757d;--bs-breadcrumb-item-padding-x: .5rem;--bs-breadcrumb-item-active-color: #6c757d;display:flex;flex-wrap:wrap;padding:var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);margin-bottom:var(--bs-breadcrumb-margin-bottom);font-size:var(--bs-breadcrumb-font-size);list-style:none;background-color:var(--bs-breadcrumb-bg);border-radius:var(--bs-breadcrumb-border-radius)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--bs-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:var(--bs-breadcrumb-item-padding-x);color:var(--bs-breadcrumb-divider-color);content:var(--bs-breadcrumb-divider, "/") /* rtl: var(--bs-breadcrumb-divider, "/") */}.breadcrumb-item.active{color:var(--bs-breadcrumb-item-active-color)}.pagination{--bs-pagination-padding-x: .75rem;--bs-pagination-padding-y: .375rem;--bs-pagination-font-size:1rem;--bs-pagination-color: var(--bs-link-color);--bs-pagination-bg: #fff;--bs-pagination-border-width: 1px;--bs-pagination-border-color: #dee2e6;--bs-pagination-border-radius: .375rem;--bs-pagination-hover-color: var(--bs-link-hover-color);--bs-pagination-hover-bg: #e9ecef;--bs-pagination-hover-border-color: #dee2e6;--bs-pagination-focus-color: var(--bs-link-hover-color);--bs-pagination-focus-bg: #e9ecef;--bs-pagination-focus-box-shadow: 0 0 0 .25rem rgba(93,47,134,0.25);--bs-pagination-active-color: #fff;--bs-pagination-active-bg: #5d2f86;--bs-pagination-active-border-color: #5d2f86;--bs-pagination-disabled-color: #6c757d;--bs-pagination-disabled-bg: #fff;--bs-pagination-disabled-border-color: #dee2e6;display:flex;padding-left:0;list-style:none}.alert{--bs-alert-bg: transparent;--bs-alert-padding-x: 1.5rem;--bs-alert-padding-y: 1rem;--bs-alert-margin-bottom: 0;--bs-alert-color: inherit;--bs-alert-border-color: transparent;--bs-alert-border: 0 solid var(--bs-alert-border-color);--bs-alert-border-radius: 0;position:relative;padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);margin-bottom:var(--bs-alert-margin-bottom);color:var(--bs-alert-color);background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius)}.alert-primary{--bs-alert-color: #fff;--bs-alert-bg: #5d2f86;--bs-alert-border-color: #5d2f86}.alert-warning{--bs-alert-color: #1d2d35;--bs-alert-bg: #ffe000;--bs-alert-border-color: #ffe000}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress{--bs-progress-height: 1rem;--bs-progress-font-size:.75rem;--bs-progress-bg: #e9ecef;--bs-progress-border-radius: .375rem;--bs-progress-box-shadow: inset 0 1px 2px rgba(29,45,53,0.075);--bs-progress-bar-color: #fff;--bs-progress-bar-bg: #5d2f86;--bs-progress-bar-transition: width 0.6s ease;display:flex;height:var(--bs-progress-height);overflow:hidden;font-size:var(--bs-progress-font-size);background-color:var(--bs-progress-bg);border-radius:var(--bs-progress-border-radius)}@keyframes spinner-border{to{transform:rotate(360deg) /* rtl:ignore */}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.5}.placeholder.btn::before{display:inline-block;content:""}@keyframes placeholder-glow{50%{opacity:.2}}@keyframes placeholder-wave{100%{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.visually-hidden{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.d-flex{display:flex !important}.d-none{display:none !important}.shadow{box-shadow:0 0.5rem 1rem rgba(29,45,53,0.15) !important}.position-relative{position:relative !important}.border-top{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.w-100{width:100% !important}.flex-grow-1{flex-grow:1 !important}.flex-shrink-1{flex-shrink:1 !important}.justify-content-center{justify-content:center !important}.justify-content-between{justify-content:space-between !important}.order-first{order:-1 !important}.order-0{order:0 !important}.order-1{order:1 !important}.order-2{order:2 !important}.order-3{order:3 !important}.order-4{order:4 !important}.order-5{order:5 !important}.order-last{order:6 !important}.my-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-3{margin-top:1rem !important;margin-bottom:1rem !important}.mt-0{margin-top:0 !important}.me-auto{margin-right:auto !important}.mb-2{margin-bottom:.5rem !important}.ms-2{margin-left:.5rem !important}.ms-auto{margin-left:auto !important}.mt-n3{margin-top:-1rem !important}.px-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.py-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.pb-3{padding-bottom:1rem !important}.text-center{text-align:center !important}.text-body{--bs-text-opacity: 1;color:rgba(var(--bs-body-color-rgb), var(--bs-text-opacity)) !important}.text-muted{--bs-text-opacity: 1;color:#6c757d !important}.bg-light{--bs-bg-opacity: 1;background-color:rgba(var(--bs-light-rgb), var(--bs-bg-opacity)) !important}.bg-white{--bs-bg-opacity: 1;background-color:rgba(var(--bs-white-rgb), var(--bs-bg-opacity)) !important}.rounded{border-radius:var(--bs-border-radius) !important}@media (min-width: 768px){.d-md-none{display:none !important}.order-md-0{order:0 !important}.order-md-1{order:1 !important}.order-md-2{order:2 !important}.order-md-3{order:3 !important}.order-md-4{order:4 !important}.order-md-5{order:5 !important}}@media (min-width: 992px){.order-lg-first{order:-1 !important}.order-lg-last{order:6 !important}.text-lg-end{text-align:right !important}}@media (min-width: 1200px){.d-xl-block{display:block !important}.flex-xl-nowrap{flex-wrap:nowrap !important}.mx-xl-auto{margin-right:auto !important;margin-left:auto !important}}@font-face{font-family:"Jost";font-style:normal;font-weight:400;font-display:swap;src:local("Jost"),url("fonts/vendor/jost/jost-v4-latin-regular.woff2") format("woff2"),url("fonts/vendor/jost/jost-v4-latin-regular.woff") format("woff")}@font-face{font-family:"Jost";font-style:normal;font-weight:500;font-display:swap;src:local("Jost"),url("fonts/vendor/jost/jost-v4-latin-500.woff2") format("woff2"),url("fonts/vendor/jost/jost-v4-latin-500.woff") format("woff")}@font-face{font-family:"Jost";font-style:normal;font-weight:700;font-display:swap;src:local("Jost"),url("fonts/vendor/jost/jost-v4-latin-700.woff2") format("woff2"),url("fonts/vendor/jost/jost-v4-latin-700.woff") format("woff")}@font-face{font-family:"Jost";font-style:italic;font-weight:400;font-display:swap;src:local("Jost"),url("fonts/vendor/jost/jost-v4-latin-italic.woff2") format("woff2"),url("fonts/vendor/jost/jost-v4-latin-italic.woff") format("woff")}@font-face{font-family:"Jost";font-style:italic;font-weight:500;font-display:swap;src:local("Jost"),url("fonts/vendor/jost/jost-v4-latin-500italic.woff2") format("woff2"),url("fonts/vendor/jost/jost-v4-latin-500italic.woff") format("woff")}@font-face{font-family:"Jost";font-style:italic;font-weight:700;font-display:swap;src:local("Jost"),url("fonts/vendor/jost/jost-v4-latin-700italic.woff2") format("woff2"),url("fonts/vendor/jost/jost-v4-latin-700italic.woff") format("woff")}.contributors .content,.blog .content,.page .content,.error404 .content,.docs.list .content,.tutorial.list .content,.showcase.list .content{padding-top:1rem;padding-bottom:3rem}h1,h2,h3,h4,.h1,.h2,.h3,.h4{margin:2rem 0 1rem}@media (min-width: 768px){body{font-size:1.125rem;padding-top:4rem !important}h1,h2,h3,h4,.h1,.h2,.h3,.h4{margin-bottom:1.125rem}}.home h1,.home .h1{font-size:calc(1.875rem + 1.5vw)}a:hover,a:focus{text-decoration:underline}a.btn:hover,a.btn:focus{text-decoration:none}.section{padding-top:5rem;padding-bottom:5rem}.section-sm{padding-top:1rem;padding-bottom:1rem}body{padding-top:3.5625rem}.docs-sidebar{order:2}@media (min-width: 992px){.docs-sidebar{order:0;border-right:1px solid #e9ecef}@supports (position: sticky){.docs-sidebar{position:sticky;top:4rem;z-index:1000;height:calc(100vh - 4rem)}}}@media (min-width: 1200px){.docs-sidebar{flex:0 1 320px}}.docs-links{padding-bottom:5rem}@media (min-width: 992px){@supports (position: sticky){.docs-links{max-height:calc(100vh - 4rem);overflow-y:scroll}}}@media (min-width: 992px){.docs-links{display:block;width:auto;margin-right:-1.5rem;padding-bottom:4rem}}.docs-toc{order:2}@supports (position: sticky){.docs-toc{position:sticky;top:4rem;height:calc(100vh - 4rem);overflow-y:auto}}.docs-content{padding-bottom:3rem;order:1}.docs-navigation{border-top:1px solid #e9ecef;margin-top:2rem;margin-bottom:0;padding-top:2rem}.docs-navigation a{font-size:.9rem}@media (min-width: 992px){.docs-navigation{margin-bottom:-1rem}.docs-navigation a{font-size:1rem}}.navbar a:hover,.navbar a:focus{text-decoration:none}#TableOfContents ul{padding-left:0;list-style:none}::-moz-selection{background:#e7dbf2}::selection{background:#e7dbf2}.bg-dots{background-image:radial-gradient(#dee2e6 15%, transparent 15%);background-position:0 0;background-size:1rem 1rem;-webkit-mask:linear-gradient(to top, #fff, transparent);mask:linear-gradient(to top, #fff, transparent);width:100%;height:9rem;margin-top:-10rem;z-index:-1}body.dark{background:#212529;color:#dee2e6}body.dark a{color:#8ed6fb}body.dark a.text-body{color:#dee2e6 !important}body.dark .btn-primary{--bs-btn-color: #1d2d35;--bs-btn-bg: #8ed6fb;--bs-btn-border-color: #8ed6fb;--bs-btn-hover-color: #1d2d35;--bs-btn-hover-bg: #9fdcfc;--bs-btn-hover-border-color: #99dafb;--bs-btn-focus-shadow-rgb: 125,189,221;--bs-btn-active-color: #1d2d35;--bs-btn-active-bg: #a5defc;--bs-btn-active-border-color: #99dafb;--bs-btn-active-shadow: inset 0 3px 5px rgba(29,45,53,0.125);--bs-btn-disabled-color: #1d2d35;--bs-btn-disabled-bg: #8ed6fb;--bs-btn-disabled-border-color: #8ed6fb;color:#212529 !important}body.dark .navbar{background:#212529;opacity:0.975;border-bottom:1px solid #1b1f22}body.dark.home .navbar{border-bottom:0}body.dark .navbar-light .navbar-brand{color:#dee2e6 !important}body.dark .navbar-light .navbar-nav .nav-link{color:#dee2e6}body.dark .navbar-light .navbar-nav .nav-link:hover,body.dark .navbar-light .navbar-nav .nav-link:focus{color:#8ed6fb}body.dark .navbar-light .navbar-nav .nav-link.disabled{color:rgba(255,255,255,0.25)}body.dark .navbar-light .navbar-nav .show>.nav-link,body.dark .navbar-light .navbar-nav .active>.nav-link,body.dark .navbar-light .navbar-nav .nav-link.show,body.dark .navbar-light .navbar-nav .nav-link.active{color:#8ed6fb}body.dark .navbar-light .navbar-text{color:#dee2e6}body.dark .alert-primary a{color:#212529}body.dark .alert-warning{background:#1b1f22;color:#dee2e6}body.dark .page-links a{color:#dee2e6}body.dark .showcase-meta a{color:#dee2e6}body.dark .showcase-meta a:hover,body.dark .showcase-meta a:focus{color:#8ed6fb}body.dark .docs-link:hover,body.dark .docs-link.active,body.dark .page-links a:hover{text-decoration:none;color:#8ed6fb}body.dark .navbar-light .navbar-text a{color:#8ed6fb}body.dark .docs-links h3.sidebar-link a,body.dark .docs-links .sidebar-link.h3 a,body.dark .page-links h3.sidebar-link a,body.dark .page-links .sidebar-link.h3 a{color:#dee2e6}body.dark .navbar-light .navbar-text a:hover,body.dark .navbar-light .navbar-text a:focus{color:#8ed6fb}body.dark .navbar .btn-link{color:#dee2e6}body.dark .content .btn-link{color:#8ed6fb}body.dark .content .btn-link:hover{color:#8ed6fb}body.dark .navbar .btn-link:hover{color:#8ed6fb}body.dark .navbar .btn-link:active{color:#8ed6fb}body.dark .form-control.is-search{background:#1b1f22}body.dark .navbar-form::after{color:#495057;border:1px solid #212529}body.dark .form-control:focus{box-shadow:0 0 0 0.2rem #9adafb}body.dark .border-top{border-top:1px solid #1b1f22 !important}@media (min-width: 992px){body.dark .docs-sidebar{order:0;border-right:1px solid #1b1f22}}body.dark .docs-navigation{border-top:1px solid #1b1f22}body.dark ::-moz-selection{background:#9adafb}body.dark ::selection{background:#9adafb}body.dark pre{background:#1b1f22;color:#dee2e6}body.dark code{background:#1b1f22;color:#dee2e6}body.dark blockquote{border-left:3px solid #1b1f22}body.dark .footer{border-top:1px solid #1b1f22}body.dark .docs-links,body.dark .docs-toc{scrollbar-width:thin;scrollbar-color:#212529 #212529}body.dark .docs-links::-webkit-scrollbar,body.dark .docs-toc::-webkit-scrollbar{width:5px}body.dark .docs-links::-webkit-scrollbar-track,body.dark .docs-toc::-webkit-scrollbar-track{background:#212529}body.dark .docs-links::-webkit-scrollbar-thumb,body.dark .docs-toc::-webkit-scrollbar-thumb{background:#212529}body.dark .docs-links:hover,body.dark .docs-toc:hover{scrollbar-width:thin;scrollbar-color:#1b1f22 #212529}body.dark .docs-links:hover::-webkit-scrollbar-thumb,body.dark .docs-toc:hover::-webkit-scrollbar-thumb{background:#1b1f22}body.dark .docs-links::-webkit-scrollbar-thumb:hover,body.dark .docs-toc::-webkit-scrollbar-thumb:hover{background:#1b1f22}body.dark .docs-links h3:not(:first-child),body.dark .docs-links .h3:not(:first-child){border-top:1px solid #1b1f22}body.dark a.docs-link{color:#dee2e6}body.dark .page-links li:not(:first-child){border-top:1px dashed #1b1f22}body.dark .card{background:#212529;border:1px solid #1b1f22}body.dark .card.bg-light{background:#1b1f22 !important}body.dark .navbar .menu-icon .navicon{background:#dee2e6}body.dark .navbar .menu-icon .navicon::before,body.dark .navbar .menu-icon .navicon::after{background:#dee2e6}body.dark .logo-light{display:none !important}body.dark .logo-dark{display:inline-block !important}body.dark .bg-light{background:#1e2125 !important}body.dark .bg-dots{background-image:radial-gradient(#556370 15%, transparent 15%)}body.dark .text-muted{color:#c8cfd6 !important}body.dark .alert-primary{background:#8ed6fb;color:#212529}body.dark .figure-caption{color:#dee2e6}.alert{font-family:sfmono-regular,menlo,monaco,consolas,"Liberation Mono","Courier New",monospace;font-size:.875rem}.alert-icon{margin-right:0.75rem}.docs .alert{margin:2rem -1.5rem}.alert-warning{background:#fbf7f0;color:#1d2d35}.alert-primary{color:#fff;background-color:#5d2f86}.navbar .btn-link{color:#1d2d35;padding:0.4375rem 0}#mode{margin-right:1.25rem}.btn-link:focus{outline:0;box-shadow:none}#navigation{margin-left:1.25rem}@media (min-width: 768px){#mode{margin-right:0.5rem}.navbar .btn-link{padding:0.5625em 0.25rem 0.5rem 0.125rem}}.navbar .btn-link:hover{color:#5d2f86}.navbar .btn-link:active{color:#5d2f86}body .toggle-dark{display:block}body .toggle-light{display:none}body.dark .toggle-light{display:block}body.dark .toggle-dark{display:none}.btn-clipboard{display:none}@media (min-width: 768px){.btn-clipboard{display:block;margin:2.0625rem 0.25rem -4rem auto}}.copy-status::after,.copy-status:hover::after{content:"Copy";display:block}.copy-status:focus::after,.copy-status:active::after{content:"Copied";display:block}pre,code,kbd,samp{font-family:sfmono-regular,menlo,monaco,consolas,"Liberation Mono","Courier New",monospace;font-size:.875rem;border-radius:.375rem}pre{background:#fbf7f0;color:#1d2d35;line-height:1.5;margin:2rem 0;overflow:auto;padding:1.25rem 1.5rem;-moz-tab-size:4;-o-tab-size:4;tab-size:4}code{background:#fbf7f0;color:#1d2d35;padding:0.25rem 0.5rem}pre code{background:none;font-size:inherit;padding:0}@media (max-width: 575.98px){pre{margin:2rem -1.5rem}pre,code,kbd,samp{border-radius:0}}/*! - * GitHub Light v0.5.0 - * Copyright (c) 2012 - 2017 GitHub, Inc. - * Licensed under MIT (https://github.com/primer/github-syntax-theme-generator/blob/master/LICENSE) - */.c{color:#6a737d}.e,.en{color:#6f42c1}.s{color:#032f62}.ms{font-weight:bold;color:#005cc5}.md{color:#b31d28;background-color:#ffeef0}blockquote{margin-bottom:1rem;font-size:1.25rem;border-left:3px solid #dee2e6;padding-left:1rem}figure{margin:2rem 0}.figure-caption{margin:0.25rem 0 0.75rem}.blur-up{filter:blur(5px)}.blur-up.lazyloaded{filter:unset}.img-simple{margin-top:0.375rem;margin-bottom:1.25rem}.navbar-form{position:relative}#suggestions{position:absolute;right:0;margin-top:0.5rem;width:calc(100vw - 3rem)}#suggestions a{display:block;text-decoration:none;padding:0.75rem;margin:0 0.5rem}#suggestions a:focus{background:#f8f9fa;outline:0}#suggestions div:not(:first-child){border-top:1px dashed #e9ecef}#suggestions div:first-child{margin-top:0.5rem}#suggestions div:last-child{margin-bottom:0.5rem}#suggestions a:hover{background:#f8f9fa}#suggestions span{display:flex;font-size:1rem}#suggestions span:first-child{font-weight:700;color:#1d2d35}#suggestions span:nth-child(2){color:#495057}@media (min-width: 576px){#suggestions{width:30rem}#suggestions a{display:flex}#suggestions span:first-child{width:9rem;padding-right:1rem;border-right:1px solid #e9ecef;display:inline-block;text-align:right}#suggestions span:nth-child(2){width:19rem;padding-left:1rem}}table{margin:3rem 0}.footer{border-top:1px solid #e9ecef;padding-top:1.125rem;padding-bottom:1.125rem}.footer ul{margin-bottom:0}.footer li{font-size:.875rem;margin-bottom:0}@media (min-width: 768px){.footer li{font-size:1rem}}.navbar-text{margin-left:1rem}.navbar-brand{font-weight:700}.navbar-light .navbar-brand,.navbar-light .navbar-brand:hover,.navbar-light .navbar-brand:active{color:#1d2d35}.navbar-light .navbar-nav .active .nav-link{color:#5d2f86}@media (min-width: 768px){.navbar-brand{font-size:1.375rem}.navbar-text{margin-left:1.25rem}}.navbar-nav{flex-direction:row}.nav-item{margin-left:1.25rem}@media (min-width: 768px){.nav-item{margin-left:0.5rem}}@media (max-width: 575.98px){.nav-item:first-child{margin-left:0}}@media (max-width: 767.98px){.navbar .container{padding-left:1.5rem;padding-right:1.5rem}}.break{flex-basis:100%;height:0}.navbar{background-color:rgba(255,255,255,0.95);border-bottom:1px solid #e9ecef;margin-top:4px}.header-bar{border-top:4px solid;border-image-source:linear-gradient(90deg, #5d2f86, #8ed6fb 50%, #d32e9d);border-image-slice:1}.home .navbar{border-bottom:0}.navbar-form{position:relative;margin-top:0.25rem}@media (min-width: 768px){.navbar-brand{margin-right:1rem !important}.main-nav .nav-item:first-child .nav-link,.social-nav .nav-item:first-child .nav-link{padding-left:0}.main-nav .nav-item:last-child .nav-link,.social-nav .nav-item:last-child .nav-link{padding-right:0}.navbar-form{margin-top:0;margin-left:6rem;margin-right:1.5rem}}@media (min-width: 992px){.navbar-form{margin-left:15rem}}@media (min-width: 1200px){.navbar-form{margin-left:30rem}}.form-control.is-search{padding-right:2.5rem;background:#f8f9fa;border:0}.navbar-form::after{position:absolute;top:0.4625rem;right:0.5375rem;display:flex;align-items:center;justify-content:center;height:1.5rem;padding-right:0.4375rem;padding-left:0.4375rem;font-size:.75rem;color:#495057;content:"/";border:1px solid #dee2e6;border-radius:0.25rem}.algolia-autocomplete{display:flex !important}.algolia-autocomplete .ds-dropdown-menu{box-shadow:0 0.5rem 1rem rgba(0,0,0,0.15) !important}@media (max-width: 575.98px){.algolia-autocomplete .ds-dropdown-menu{max-width:512px !important;min-width:312px !important;width:auto !important}.algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--subcategory-column::after{content:"|";margin-right:0.25rem}}.algolia-autocomplete .algolia-docsearch-suggestion--title{margin-bottom:0}.algolia-autocomplete .algolia-docsearch-suggestion--highlight{padding:0 0.05em}.algolia-autocomplete .algolia-docsearch-footer{margin-top:1rem;margin-right:0.5rem;margin-bottom:0.5rem}.navbar .menu-icon{cursor:pointer;padding:1.125rem 0.625rem;margin:0 0 0 -0.625rem;-webkit-user-select:none;-moz-user-select:none;user-select:none}.navbar .menu-icon .navicon{background:#1d2d35;display:block;height:2px;position:relative;transition:background 0.2s ease-out;width:18px}.navbar .menu-icon .navicon::before,.navbar .menu-icon .navicon::after{background:#1d2d35;content:"";display:block;height:100%;position:absolute;transition:all 0.2s ease-out;width:100%}.navbar .menu-icon .navicon::before{top:5px}.navbar .menu-icon .navicon::after{top:-5px}.navbar .menu-btn{display:none}.navbar .menu-btn:checked~.navbar-collapse{display:block;max-height:100vh}.navbar .menu-btn:checked~.menu-icon .navicon{background:transparent}.navbar .menu-btn:checked~.menu-icon .navicon::before{transform:rotate(-45deg)}.navbar .menu-btn:checked~.menu-icon .navicon::after{transform:rotate(45deg)}.navbar .menu-btn:checked~.menu-icon:not(.steps) .navicon::before,.navbar .menu-btn:checked~.menu-icon:not(.steps) .navicon::after{top:0}.docs-content>h2[id]::before,.docs-content>[id].h2::before,.docs-content>h3[id]::before,.docs-content>[id].h3::before,.docs-content>h4[id]::before,.docs-content>[id].h4::before{display:block;height:6rem;margin-top:-6rem;content:""}.anchor{visibility:hidden;padding-left:0.5rem}h1:hover a,.h1:hover a,h2:hover a,.h2:hover a,h3:hover a,.h3:hover a,h4:hover a,.h4:hover a{visibility:visible;text-decoration:none}.card-list{margin-top:2.25rem}.edit-page{margin-top:3rem;font-size:1rem}.edit-page svg{margin-right:0.5rem;margin-bottom:0.25rem}p.meta{margin-top:0.5rem;font-size:1rem}.breadcrumb{margin-top:2.25rem;font-size:1rem}.home .card,.contributors.list .card,.blog.list .card{margin-top:2rem;margin-bottom:2rem;transition:transform 0.3s}.home .card:hover,.contributors.list .card:hover,.blog.list .card:hover{transform:scale(1.025)}.home .card-body,.contributors.list .card-body,.blog.list .card-body{padding:0 2rem 1rem}.blog-header{text-align:center;margin-bottom:2rem}.lead{color:#5d2f86}body.dark .lead{color:#8ed6fb}.docs-links,.docs-toc{scrollbar-width:thin;scrollbar-color:#fff #fff}.docs-links::-webkit-scrollbar,.docs-toc::-webkit-scrollbar{width:5px}.docs-links::-webkit-scrollbar-track,.docs-toc::-webkit-scrollbar-track{background:#fff}.docs-links::-webkit-scrollbar-thumb,.docs-toc::-webkit-scrollbar-thumb{background:#fff}.docs-links:hover,.docs-toc:hover{scrollbar-width:thin;scrollbar-color:#e9ecef #fff}.docs-links:hover::-webkit-scrollbar-thumb,.docs-toc:hover::-webkit-scrollbar-thumb{background:#e9ecef}.docs-links::-webkit-scrollbar-thumb:hover,.docs-toc::-webkit-scrollbar-thumb:hover{background:#e9ecef}.docs-links h3,.docs-links .h3,.page-links h3,.page-links .h3{text-transform:uppercase;font-size:1rem;margin:1.25rem 0 0.5rem 0;padding:1.5rem 0 0 0}@media (min-width: 992px){.docs-links h3,.docs-links .h3,.page-links h3,.page-links .h3{margin:1.125rem 1.5rem 0.75rem 0;padding:1.375rem 0 0 0}}.docs-links h3:not(:first-child),.docs-links .h3:not(:first-child){border-top:1px solid #e9ecef}a.docs-link{color:#1d2d35;display:block;padding:0.125rem 0;font-size:1rem}.page-links li{margin-top:0.375rem;padding-top:0.375rem}.page-links li ul li{border-top:none;padding-left:1rem;margin-top:0.125rem;padding-top:0.125rem}.page-links li:not(:first-child){border-top:1px dashed #e9ecef}.page-links a{color:#1d2d35;display:block;padding:0.125rem 0;font-size:.9375rem}.docs-link:hover,.docs-link.active,.page-links a:hover{text-decoration:none;color:#5d2f86}.docs-links h3.sidebar-link,.docs-links .sidebar-link.h3,.page-links h3.sidebar-link,.page-links .sidebar-link.h3{text-transform:none;font-size:1.125rem;font-weight:normal}.docs-links h3.sidebar-link a,.docs-links .sidebar-link.h3 a,.page-links h3.sidebar-link a,.page-links .sidebar-link.h3 a{color:#1d2d35}.docs-links h3.sidebar-link a:hover,.docs-links .sidebar-link.h3 a:hover,.page-links h3.sidebar-link a:hover,.page-links .sidebar-link.h3 a:hover{text-decoration:underline} diff --git a/main.b63ce50dfa61fad6110b3083ff8c73329c5faa56efa9fce74542ba32665b6f205859f41203427020164409ce1a5ad12d0114f490f7a4b511dc1f99b633255661.css b/main.b63ce50dfa61fad6110b3083ff8c73329c5faa56efa9fce74542ba32665b6f205859f41203427020164409ce1a5ad12d0114f490f7a4b511dc1f99b633255661.css new file mode 100644 index 0000000..c938e9f --- /dev/null +++ b/main.b63ce50dfa61fad6110b3083ff8c73329c5faa56efa9fce74542ba32665b6f205859f41203427020164409ce1a5ad12d0114f490f7a4b511dc1f99b633255661.css @@ -0,0 +1,10 @@ +/*! + * Bootstrap v5.2.3 (https://getbootstrap.com/) + * Copyright 2011-2022 The Bootstrap Authors + * Copyright 2011-2022 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */:root{--bs-blue: #0d6efd;--bs-indigo: #6610f2;--bs-purple: #5d2f86;--bs-pink: #d63384;--bs-red: #dc3545;--bs-orange: #fd7e14;--bs-yellow: #ffe000;--bs-green: #198754;--bs-teal: #20c997;--bs-cyan: #0dcaf0;--bs-black: #1d2d35;--bs-white: #fff;--bs-gray: #6c757d;--bs-gray-dark: #343a40;--bs-gray-100: #f8f9fa;--bs-gray-200: #e9ecef;--bs-gray-300: #dee2e6;--bs-gray-400: #ced4da;--bs-gray-500: #adb5bd;--bs-gray-600: #6c757d;--bs-gray-700: #495057;--bs-gray-800: #343a40;--bs-gray-900: #212529;--bs-primary: #5d2f86;--bs-secondary: #6c757d;--bs-success: #198754;--bs-info: #0dcaf0;--bs-warning: #ffe000;--bs-danger: #dc3545;--bs-light: #f8f9fa;--bs-dark: #212529;--bs-primary-rgb: 93,47,134;--bs-secondary-rgb: 108,117,125;--bs-success-rgb: 25,135,84;--bs-info-rgb: 13,202,240;--bs-warning-rgb: 255,224,0;--bs-danger-rgb: 220,53,69;--bs-light-rgb: 248,249,250;--bs-dark-rgb: 33,37,41;--bs-white-rgb: 255,255,255;--bs-black-rgb: 29,45,53;--bs-body-color-rgb: 29,45,53;--bs-body-bg-rgb: 255,255,255;--bs-font-sans-serif: "Jost", -apple-system, blinkmacsystemfont, "Segoe UI", roboto, "Helvetica Neue", arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--bs-font-monospace: sfmono-regular, menlo, monaco, consolas, "Liberation Mono", "Courier New", monospace;--bs-gradient: linear-gradient(180deg, rgba(255,255,255,0.15), rgba(255,255,255,0));--bs-body-font-family: Jost,-apple-system,blinkmacsystemfont,Segoe UI,roboto,Helvetica Neue,arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--bs-body-font-size:1rem;--bs-body-font-weight: 400;--bs-body-line-height: 1.5;--bs-body-color: #1d2d35;--bs-body-bg: #fff;--bs-border-width: 1px;--bs-border-style: solid;--bs-border-color: #e9ecef;--bs-border-color-translucent: rgba(29,45,53,0.175);--bs-border-radius: .375rem;--bs-border-radius-sm: .25rem;--bs-border-radius-lg: .5rem;--bs-border-radius-xl: 1rem;--bs-border-radius-2xl: 2rem;--bs-border-radius-pill: 50rem;--bs-link-color: #5d2f86;--bs-link-hover-color: #4a266b;--bs-code-color: #d63384;--bs-highlight-bg: #fff9cc}*,*::before,*::after{box-sizing:border-box}@media (prefers-reduced-motion: no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(29,45,53,0)}h4,.h4,h3,.h3,h2,.h2,h1,.h1{margin-top:0;margin-bottom:.5rem;font-weight:700;line-height:1.2}h1,.h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width: 1200px){h1,.h1{font-size:2.5rem}}h2,.h2{font-size:calc(1.325rem + .9vw)}@media (min-width: 1200px){h2,.h2{font-size:2rem}}h3,.h3{font-size:calc(1.3rem + .6vw)}@media (min-width: 1200px){h3,.h3{font-size:1.75rem}}h4,.h4{font-size:calc(1.275rem + .3vw)}@media (min-width: 1200px){h4,.h4{font-size:1.5rem}}p{margin-top:0;margin-bottom:1rem}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}blockquote{margin:0 0 1rem}strong{font-weight:bolder}small,.small{font-size:.875em}a{color:var(--bs-link-color);text-decoration:none}a:hover{color:var(--bs-link-hover-color)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:var(--bs-font-monospace);font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:var(--bs-code-color);word-wrap:break-word}a>code{color:inherit}kbd{padding:.1875rem .375rem;font-size:.875em;color:var(--bs-body-bg);background-color:var(--bs-body-color);border-radius:.25rem}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}thead,tbody,tr,td,th{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}input,button{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button{text-transform:none}[role="button"]{cursor:pointer}[list]:not([type="date"]):not([type="datetime-local"]):not([type="month"]):not([type="week"]):not([type="time"])::-webkit-calendar-picker-indicator{display:none !important}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button:not(:disabled),[type="button"]:not(:disabled),[type="reset"]:not(:disabled),[type="submit"]:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-text,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type="search"]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit;-webkit-appearance:button}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none !important}.lead{font-size:1.25rem;font-weight:400}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.img-fluid{max-width:100%;height:auto}.figure{display:inline-block}.figure-caption{font-size:.875em;color:#6c757d}.container,.container-fluid{--bs-gutter-x: 48px;--bs-gutter-y: 0;width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-right:auto;margin-left:auto}@media (min-width: 576px){.container{max-width:540px}}@media (min-width: 768px){.container{max-width:720px}}@media (min-width: 992px){.container{max-width:960px}}@media (min-width: 1200px){.container{max-width:1240px}}@media (min-width: 1400px){.container{max-width:1320px}}.row{--bs-gutter-x: 48px;--bs-gutter-y: 0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x))}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}@media (min-width: 768px){.col-md-12{flex:0 0 auto;width:75%}}@media (min-width: 992px){.col-lg-5{flex:0 0 auto;width:31.25%}.col-lg-8{flex:0 0 auto;width:50%}.col-lg-9{flex:0 0 auto;width:56.25%}.col-lg-10{flex:0 0 auto;width:62.5%}.col-lg-11{flex:0 0 auto;width:68.75%}.col-lg-12{flex:0 0 auto;width:75%}}@media (min-width: 1200px){.col-xl-3{flex:0 0 auto;width:18.75%}.col-xl-4{flex:0 0 auto;width:25%}.col-xl-8{flex:0 0 auto;width:50%}.col-xl-9{flex:0 0 auto;width:56.25%}}.table,table{--bs-table-color: var(--bs-body-color);--bs-table-bg: rgba(0,0,0,0);--bs-table-border-color: var(--bs-border-color);--bs-table-accent-bg: rgba(0,0,0,0);--bs-table-striped-color: var(--bs-body-color);--bs-table-striped-bg: rgba(29,45,53,0.05);--bs-table-active-color: var(--bs-body-color);--bs-table-active-bg: rgba(29,45,53,0.1);--bs-table-hover-color: var(--bs-body-color);--bs-table-hover-bg: rgba(29,45,53,0.075);width:100%;margin-bottom:1rem;color:var(--bs-table-color);vertical-align:top;border-color:var(--bs-table-border-color)}.table>:not(caption)>*>*,table>:not(caption)>*>*{padding:.5rem .5rem;background-color:var(--bs-table-bg);border-bottom-width:1px;box-shadow:inset 0 0 0 9999px var(--bs-table-accent-bg)}.table>tbody,table>tbody{vertical-align:inherit}.table>thead,table>thead{vertical-align:bottom}body.dark table{--bs-table-color: #fff;--bs-table-bg: #212529;--bs-table-border-color: #373b3e;--bs-table-striped-bg: #2c3034;--bs-table-striped-color: #fff;--bs-table-active-bg: #373b3e;--bs-table-active-color: #fff;--bs-table-hover-bg: #323539;--bs-table-hover-color: #fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#1d2d35;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.375rem;transition:border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control{transition:none}}.form-control[type="file"]{overflow:hidden}.form-control[type="file"]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:#1d2d35;background-color:#fff;border-color:#ae97c3;outline:0;box-shadow:0 0 0 .25rem rgba(93,47,134,0.25)}.form-control::-webkit-date-and-time-value{height:1.5em}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled{background-color:#e9ecef;opacity:1}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#1d2d35;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#dde0e3}.btn{--bs-btn-padding-x: .75rem;--bs-btn-padding-y: .375rem;--bs-btn-font-family: ;--bs-btn-font-size:1rem;--bs-btn-font-weight: 400;--bs-btn-line-height: 1.5;--bs-btn-color: #1d2d35;--bs-btn-bg: transparent;--bs-btn-border-width: 1px;--bs-btn-border-color: transparent;--bs-btn-border-radius: .375rem;--bs-btn-hover-border-color: transparent;--bs-btn-box-shadow: inset 0 1px 0 rgba(255,255,255,0.15),0 1px 1px rgba(29,45,53,0.075);--bs-btn-disabled-opacity: .65;--bs-btn-focus-box-shadow: 0 0 0 .25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);display:inline-block;padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);font-family:var(--bs-btn-font-family);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);color:var(--bs-btn-color);text-align:center;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);border-radius:var(--bs-btn-border-radius);background-color:var(--bs-btn-bg);transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.btn{transition:none}}.btn:hover{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color)}.btn:focus-visible{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}:not(.btn-check)+.btn:active,.btn:first-child:active,.btn.active,.btn.show{color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg);border-color:var(--bs-btn-active-border-color)}:not(.btn-check)+.btn:active:focus-visible,.btn:first-child:active:focus-visible,.btn.active:focus-visible,.btn.show:focus-visible{box-shadow:var(--bs-btn-focus-box-shadow)}.btn:disabled,.btn.disabled{color:var(--bs-btn-disabled-color);pointer-events:none;background-color:var(--bs-btn-disabled-bg);border-color:var(--bs-btn-disabled-border-color);opacity:var(--bs-btn-disabled-opacity)}.btn-primary{--bs-btn-color: #fff;--bs-btn-bg: #5d2f86;--bs-btn-border-color: #5d2f86;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #4f2872;--bs-btn-hover-border-color: #4a266b;--bs-btn-focus-shadow-rgb: 117,78,152;--bs-btn-active-color: #fff;--bs-btn-active-bg: #4a266b;--bs-btn-active-border-color: #462365;--bs-btn-active-shadow: inset 0 3px 5px rgba(29,45,53,0.125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #5d2f86;--bs-btn-disabled-border-color: #5d2f86}.btn-link{--bs-btn-font-weight: 400;--bs-btn-color: var(--bs-link-color);--bs-btn-bg: transparent;--bs-btn-border-color: transparent;--bs-btn-hover-color: var(--bs-link-hover-color);--bs-btn-hover-border-color: transparent;--bs-btn-active-color: var(--bs-link-hover-color);--bs-btn-active-border-color: transparent;--bs-btn-disabled-color: #6c757d;--bs-btn-disabled-border-color: transparent;--bs-btn-box-shadow: none;--bs-btn-focus-shadow-rgb: 117,78,152;text-decoration:none}.btn-link:focus-visible{color:var(--bs-btn-color)}.btn-link:hover{color:var(--bs-btn-hover-color)}.btn-lg{--bs-btn-padding-y: .5rem;--bs-btn-padding-x: 1rem;--bs-btn-font-size:1.25rem;--bs-btn-border-radius: .5rem}.btn-sm{--bs-btn-padding-y: .25rem;--bs-btn-padding-x: .5rem;--bs-btn-font-size:.875rem;--bs-btn-border-radius: .25rem}.collapse:not(.show){display:none}.nav{--bs-nav-link-padding-x: 1rem;--bs-nav-link-padding-y: .5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: var(--bs-link-color);--bs-nav-link-hover-color: var(--bs-link-hover-color);--bs-nav-link-disabled-color: #6c757d;display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);color:var(--bs-nav-link-color);transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out}@media (prefers-reduced-motion: reduce){.nav-link{transition:none}}.nav-link:hover,.nav-link:focus{color:var(--bs-nav-link-hover-color)}.nav-link.disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}.navbar{--bs-navbar-padding-x: 0;--bs-navbar-padding-y: .5rem;--bs-navbar-color: #1d2d35;--bs-navbar-hover-color: #5d2f86;--bs-navbar-disabled-color: rgba(29,45,53,0.3);--bs-navbar-active-color: #5d2f86;--bs-navbar-brand-padding-y: .3125rem;--bs-navbar-brand-margin-end: 1rem;--bs-navbar-brand-font-size: 1.25rem;--bs-navbar-brand-color: #5d2f86;--bs-navbar-brand-hover-color: #5d2f86;--bs-navbar-nav-link-padding-x: .5rem;--bs-navbar-toggler-padding-y: .25rem;--bs-navbar-toggler-padding-x: .75rem;--bs-navbar-toggler-font-size: 1.25rem;--bs-navbar-toggler-icon-bg: none;--bs-navbar-toggler-border-color: rgba(29,45,53,0.1);--bs-navbar-toggler-border-radius: .375rem;--bs-navbar-toggler-focus-width: .25rem;--bs-navbar-toggler-transition: box-shadow 0.15s ease-in-out;position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x)}.navbar>.container,.navbar>.container-fluid{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:var(--bs-navbar-brand-padding-y);padding-bottom:var(--bs-navbar-brand-padding-y);margin-right:var(--bs-navbar-brand-margin-end);font-size:var(--bs-navbar-brand-font-size);color:var(--bs-navbar-brand-color);white-space:nowrap}.navbar-brand:hover,.navbar-brand:focus{color:var(--bs-navbar-brand-hover-color)}.navbar-nav{--bs-nav-link-padding-x: 0;--bs-nav-link-padding-y: .5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: var(--bs-navbar-color);--bs-nav-link-hover-color: var(--bs-navbar-hover-color);--bs-nav-link-disabled-color: var(--bs-navbar-disabled-color);display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .show>.nav-link,.navbar-nav .nav-link.active{color:var(--bs-navbar-active-color)}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a:hover,.navbar-text a:focus{color:var(--bs-navbar-active-color)}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}@media (min-width: 768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-collapse{display:flex !important;flex-basis:auto}}.card{--bs-card-spacer-y: 1rem;--bs-card-spacer-x: 1rem;--bs-card-title-spacer-y: .5rem;--bs-card-border-width: 1px;--bs-card-border-color: #e9ecef;--bs-card-border-radius: .375rem;--bs-card-box-shadow: ;--bs-card-inner-border-radius: calc(.375rem - 1px);--bs-card-cap-padding-y: .5rem;--bs-card-cap-padding-x: 1rem;--bs-card-cap-bg: rgba(29,45,53,0.03);--bs-card-cap-color: ;--bs-card-height: ;--bs-card-color: ;--bs-card-bg: #fff;--bs-card-img-overlay-padding: 1rem;--bs-card-group-margin: 24px;position:relative;display:flex;flex-direction:column;min-width:0;height:var(--bs-card-height);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius)}.card-body{flex:1 1 auto;padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x);color:var(--bs-card-color)}.breadcrumb{--bs-breadcrumb-padding-x: 0;--bs-breadcrumb-padding-y: 0;--bs-breadcrumb-margin-bottom: 1rem;--bs-breadcrumb-bg: ;--bs-breadcrumb-border-radius: ;--bs-breadcrumb-divider-color: #6c757d;--bs-breadcrumb-item-padding-x: .5rem;--bs-breadcrumb-item-active-color: #6c757d;display:flex;flex-wrap:wrap;padding:var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);margin-bottom:var(--bs-breadcrumb-margin-bottom);font-size:var(--bs-breadcrumb-font-size);list-style:none;background-color:var(--bs-breadcrumb-bg);border-radius:var(--bs-breadcrumb-border-radius)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--bs-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:var(--bs-breadcrumb-item-padding-x);color:var(--bs-breadcrumb-divider-color);content:var(--bs-breadcrumb-divider, "/") /* rtl: var(--bs-breadcrumb-divider, "/") */}.breadcrumb-item.active{color:var(--bs-breadcrumb-item-active-color)}.pagination{--bs-pagination-padding-x: .75rem;--bs-pagination-padding-y: .375rem;--bs-pagination-font-size:1rem;--bs-pagination-color: var(--bs-link-color);--bs-pagination-bg: #fff;--bs-pagination-border-width: 1px;--bs-pagination-border-color: #dee2e6;--bs-pagination-border-radius: .375rem;--bs-pagination-hover-color: var(--bs-link-hover-color);--bs-pagination-hover-bg: #e9ecef;--bs-pagination-hover-border-color: #dee2e6;--bs-pagination-focus-color: var(--bs-link-hover-color);--bs-pagination-focus-bg: #e9ecef;--bs-pagination-focus-box-shadow: 0 0 0 .25rem rgba(93,47,134,0.25);--bs-pagination-active-color: #fff;--bs-pagination-active-bg: #5d2f86;--bs-pagination-active-border-color: #5d2f86;--bs-pagination-disabled-color: #6c757d;--bs-pagination-disabled-bg: #fff;--bs-pagination-disabled-border-color: #dee2e6;display:flex;padding-left:0;list-style:none}.alert{--bs-alert-bg: transparent;--bs-alert-padding-x: 1.5rem;--bs-alert-padding-y: 1rem;--bs-alert-margin-bottom: 0;--bs-alert-color: inherit;--bs-alert-border-color: transparent;--bs-alert-border: 0 solid var(--bs-alert-border-color);--bs-alert-border-radius: 0;position:relative;padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);margin-bottom:var(--bs-alert-margin-bottom);color:var(--bs-alert-color);background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius)}.alert-primary{--bs-alert-color: #fff;--bs-alert-bg: #5d2f86;--bs-alert-border-color: #5d2f86}.alert-warning{--bs-alert-color: #1d2d35;--bs-alert-bg: #ffe000;--bs-alert-border-color: #ffe000}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress{--bs-progress-height: 1rem;--bs-progress-font-size:.75rem;--bs-progress-bg: #e9ecef;--bs-progress-border-radius: .375rem;--bs-progress-box-shadow: inset 0 1px 2px rgba(29,45,53,0.075);--bs-progress-bar-color: #fff;--bs-progress-bar-bg: #5d2f86;--bs-progress-bar-transition: width 0.6s ease;display:flex;height:var(--bs-progress-height);overflow:hidden;font-size:var(--bs-progress-font-size);background-color:var(--bs-progress-bg);border-radius:var(--bs-progress-border-radius)}@keyframes spinner-border{to{transform:rotate(360deg) /* rtl:ignore */}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.5}.placeholder.btn::before{display:inline-block;content:""}@keyframes placeholder-glow{50%{opacity:.2}}@keyframes placeholder-wave{100%{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.visually-hidden{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.d-flex{display:flex !important}.d-none{display:none !important}.shadow{box-shadow:0 0.5rem 1rem rgba(29,45,53,0.15) !important}.position-relative{position:relative !important}.border-top{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important}.w-100{width:100% !important}.flex-grow-1{flex-grow:1 !important}.flex-shrink-1{flex-shrink:1 !important}.justify-content-center{justify-content:center !important}.justify-content-between{justify-content:space-between !important}.order-first{order:-1 !important}.order-0{order:0 !important}.order-1{order:1 !important}.order-2{order:2 !important}.order-3{order:3 !important}.order-4{order:4 !important}.order-5{order:5 !important}.order-last{order:6 !important}.my-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.my-3{margin-top:1rem !important;margin-bottom:1rem !important}.mt-0{margin-top:0 !important}.me-auto{margin-right:auto !important}.mb-2{margin-bottom:.5rem !important}.ms-2{margin-left:.5rem !important}.ms-auto{margin-left:auto !important}.mt-n3{margin-top:-1rem !important}.px-4{padding-right:1.5rem !important;padding-left:1.5rem !important}.py-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.pb-3{padding-bottom:1rem !important}.text-center{text-align:center !important}.text-body{--bs-text-opacity: 1;color:rgba(var(--bs-body-color-rgb), var(--bs-text-opacity)) !important}.text-muted{--bs-text-opacity: 1;color:#6c757d !important}.bg-light{--bs-bg-opacity: 1;background-color:rgba(var(--bs-light-rgb), var(--bs-bg-opacity)) !important}.bg-white{--bs-bg-opacity: 1;background-color:rgba(var(--bs-white-rgb), var(--bs-bg-opacity)) !important}.rounded{border-radius:var(--bs-border-radius) !important}@media (min-width: 768px){.d-md-none{display:none !important}.order-md-0{order:0 !important}.order-md-1{order:1 !important}.order-md-2{order:2 !important}.order-md-3{order:3 !important}.order-md-4{order:4 !important}.order-md-5{order:5 !important}}@media (min-width: 992px){.order-lg-first{order:-1 !important}.order-lg-last{order:6 !important}.text-lg-end{text-align:right !important}}@media (min-width: 1200px){.d-xl-block{display:block !important}.flex-xl-nowrap{flex-wrap:nowrap !important}.mx-xl-auto{margin-right:auto !important;margin-left:auto !important}}@font-face{font-family:"Jost";font-style:normal;font-weight:400;font-display:swap;src:local("Jost"),url("fonts/vendor/jost/jost-v4-latin-regular.woff2") format("woff2"),url("fonts/vendor/jost/jost-v4-latin-regular.woff") format("woff")}@font-face{font-family:"Jost";font-style:normal;font-weight:500;font-display:swap;src:local("Jost"),url("fonts/vendor/jost/jost-v4-latin-500.woff2") format("woff2"),url("fonts/vendor/jost/jost-v4-latin-500.woff") format("woff")}@font-face{font-family:"Jost";font-style:normal;font-weight:700;font-display:swap;src:local("Jost"),url("fonts/vendor/jost/jost-v4-latin-700.woff2") format("woff2"),url("fonts/vendor/jost/jost-v4-latin-700.woff") format("woff")}@font-face{font-family:"Jost";font-style:italic;font-weight:400;font-display:swap;src:local("Jost"),url("fonts/vendor/jost/jost-v4-latin-italic.woff2") format("woff2"),url("fonts/vendor/jost/jost-v4-latin-italic.woff") format("woff")}@font-face{font-family:"Jost";font-style:italic;font-weight:500;font-display:swap;src:local("Jost"),url("fonts/vendor/jost/jost-v4-latin-500italic.woff2") format("woff2"),url("fonts/vendor/jost/jost-v4-latin-500italic.woff") format("woff")}@font-face{font-family:"Jost";font-style:italic;font-weight:700;font-display:swap;src:local("Jost"),url("fonts/vendor/jost/jost-v4-latin-700italic.woff2") format("woff2"),url("fonts/vendor/jost/jost-v4-latin-700italic.woff") format("woff")}.contributors .content,.blog .content,.page .content,.error404 .content,.docs.list .content,.tutorial.list .content,.showcase.list .content{padding-top:1rem;padding-bottom:3rem}h1,h2,h3,h4,.h1,.h2,.h3,.h4{margin:2rem 0 1rem}@media (min-width: 768px){body{font-size:1.125rem;padding-top:4rem !important}h1,h2,h3,h4,.h1,.h2,.h3,.h4{margin-bottom:1.125rem}}.home h1,.home .h1{font-size:calc(1.875rem + 1.5vw)}a:hover,a:focus{text-decoration:underline}a.btn:hover,a.btn:focus{text-decoration:none}.section{padding-top:5rem;padding-bottom:5rem}.section-sm{padding-top:1rem;padding-bottom:1rem}body{padding-top:3.5625rem}.docs-sidebar{order:2}@media (min-width: 992px){.docs-sidebar{order:0;border-right:1px solid #e9ecef}@supports (position: sticky){.docs-sidebar{position:sticky;top:4rem;z-index:1000;height:calc(100vh - 4rem)}}}@media (min-width: 1200px){.docs-sidebar{flex:0 1 320px}}.docs-links{padding-bottom:5rem}@media (min-width: 992px){@supports (position: sticky){.docs-links{max-height:calc(100vh - 4rem);overflow-y:scroll}}}@media (min-width: 992px){.docs-links{display:block;width:auto;margin-right:-1.5rem;padding-bottom:4rem}}.docs-toc{order:2}@supports (position: sticky){.docs-toc{position:sticky;top:4rem;height:calc(100vh - 4rem);overflow-y:auto}}.docs-content{padding-bottom:3rem;order:1}.docs-navigation{border-top:1px solid #e9ecef;margin-top:2rem;margin-bottom:0;padding-top:2rem}.docs-navigation a{font-size:.9rem}@media (min-width: 992px){.docs-navigation{margin-bottom:-1rem}.docs-navigation a{font-size:1rem}}.navbar a:hover,.navbar a:focus{text-decoration:none}#TableOfContents ul{padding-left:0;list-style:none}::-moz-selection{background:#e7dbf2}::selection{background:#e7dbf2}.bg-dots{background-image:radial-gradient(#dee2e6 15%, transparent 15%);background-position:0 0;background-size:1rem 1rem;-webkit-mask:linear-gradient(to top, #fff, transparent);mask:linear-gradient(to top, #fff, transparent);width:100%;height:9rem;margin-top:-10rem;z-index:-1}body.dark{background:#212529;color:#dee2e6}body.dark a{color:#8ed6fb}body.dark a.text-body{color:#dee2e6 !important}body.dark .btn-primary{--bs-btn-color: #1d2d35;--bs-btn-bg: #8ed6fb;--bs-btn-border-color: #8ed6fb;--bs-btn-hover-color: #1d2d35;--bs-btn-hover-bg: #9fdcfc;--bs-btn-hover-border-color: #99dafb;--bs-btn-focus-shadow-rgb: 125,189,221;--bs-btn-active-color: #1d2d35;--bs-btn-active-bg: #a5defc;--bs-btn-active-border-color: #99dafb;--bs-btn-active-shadow: inset 0 3px 5px rgba(29,45,53,0.125);--bs-btn-disabled-color: #1d2d35;--bs-btn-disabled-bg: #8ed6fb;--bs-btn-disabled-border-color: #8ed6fb;color:#212529 !important}body.dark .navbar{background:#212529;opacity:0.975;border-bottom:1px solid #1b1f22}body.dark.home .navbar{border-bottom:0}body.dark .navbar-light .navbar-brand{color:#dee2e6 !important}body.dark .navbar-light .navbar-nav .nav-link{color:#dee2e6}body.dark .navbar-light .navbar-nav .nav-link:hover,body.dark .navbar-light .navbar-nav .nav-link:focus{color:#8ed6fb}body.dark .navbar-light .navbar-nav .nav-link.disabled{color:rgba(255,255,255,0.25)}body.dark .navbar-light .navbar-nav .show>.nav-link,body.dark .navbar-light .navbar-nav .active>.nav-link,body.dark .navbar-light .navbar-nav .nav-link.show,body.dark .navbar-light .navbar-nav .nav-link.active{color:#8ed6fb}body.dark .navbar-light .navbar-text{color:#dee2e6}body.dark .alert-primary a{color:#212529}body.dark .alert-warning{background:#1b1f22;color:#dee2e6}body.dark .page-links a{color:#dee2e6}body.dark .showcase-meta a{color:#dee2e6}body.dark .showcase-meta a:hover,body.dark .showcase-meta a:focus{color:#8ed6fb}body.dark .docs-link:hover,body.dark .docs-link.active,body.dark .page-links a:hover{text-decoration:none;color:#8ed6fb}body.dark .navbar-light .navbar-text a{color:#8ed6fb}body.dark .docs-links h3.sidebar-link a,body.dark .docs-links .sidebar-link.h3 a,body.dark .page-links h3.sidebar-link a,body.dark .page-links .sidebar-link.h3 a{color:#dee2e6}body.dark .navbar-light .navbar-text a:hover,body.dark .navbar-light .navbar-text a:focus{color:#8ed6fb}body.dark .navbar .btn-link{color:#dee2e6}body.dark .content .btn-link{color:#8ed6fb}body.dark .content .btn-link:hover{color:#8ed6fb}body.dark .navbar .btn-link:hover{color:#8ed6fb}body.dark .navbar .btn-link:active{color:#8ed6fb}body.dark .form-control.is-search{background:#1b1f22}body.dark .navbar-form::after{color:#495057;border:1px solid #212529}body.dark .form-control:focus{box-shadow:0 0 0 0.2rem #9adafb}body.dark .border-top{border-top:1px solid #1b1f22 !important}@media (min-width: 992px){body.dark .docs-sidebar{order:0;border-right:1px solid #1b1f22}}body.dark .docs-navigation{border-top:1px solid #1b1f22}body.dark ::-moz-selection{background:#9adafb}body.dark ::selection{background:#9adafb}body.dark pre{background:#1b1f22;color:#dee2e6}body.dark code{background:#1b1f22;color:#dee2e6}body.dark blockquote{border-left:3px solid #1b1f22}body.dark .footer{border-top:1px solid #1b1f22}body.dark .docs-links,body.dark .docs-toc{scrollbar-width:thin;scrollbar-color:#212529 #212529}body.dark .docs-links::-webkit-scrollbar,body.dark .docs-toc::-webkit-scrollbar{width:5px}body.dark .docs-links::-webkit-scrollbar-track,body.dark .docs-toc::-webkit-scrollbar-track{background:#212529}body.dark .docs-links::-webkit-scrollbar-thumb,body.dark .docs-toc::-webkit-scrollbar-thumb{background:#212529}body.dark .docs-links:hover,body.dark .docs-toc:hover{scrollbar-width:thin;scrollbar-color:#1b1f22 #212529}body.dark .docs-links:hover::-webkit-scrollbar-thumb,body.dark .docs-toc:hover::-webkit-scrollbar-thumb{background:#1b1f22}body.dark .docs-links::-webkit-scrollbar-thumb:hover,body.dark .docs-toc::-webkit-scrollbar-thumb:hover{background:#1b1f22}body.dark .docs-links h3:not(:first-child),body.dark .docs-links .h3:not(:first-child){border-top:1px solid #1b1f22}body.dark a.docs-link{color:#dee2e6}body.dark .page-links li:not(:first-child){border-top:1px dashed #1b1f22}body.dark .card{background:#212529;border:1px solid #1b1f22}body.dark .card.bg-light{background:#1b1f22 !important}body.dark .navbar .menu-icon .navicon{background:#dee2e6}body.dark .navbar .menu-icon .navicon::before,body.dark .navbar .menu-icon .navicon::after{background:#dee2e6}body.dark .logo-light{display:none !important}body.dark .logo-dark{display:inline-block !important}body.dark .bg-light{background:#1e2125 !important}body.dark .bg-dots{background-image:radial-gradient(#556370 15%, transparent 15%)}body.dark .text-muted{color:#c8cfd6 !important}body.dark .alert-primary{background:#8ed6fb;color:#212529}body.dark .figure-caption{color:#dee2e6}.alert{font-family:sfmono-regular,menlo,monaco,consolas,"Liberation Mono","Courier New",monospace;font-size:.875rem}.alert-icon{margin-right:0.75rem}.docs .alert{margin:2rem -1.5rem}.alert-warning{background:#fbf7f0;color:#1d2d35}.alert-primary{color:#fff;background-color:#5d2f86}.navbar .btn-link{color:#1d2d35;padding:0.4375rem 0}#mode{margin-right:1.25rem}.btn-link:focus{outline:0;box-shadow:none}#navigation{margin-left:1.25rem}@media (min-width: 768px){#mode{margin-right:0.5rem}.navbar .btn-link{padding:0.5625em 0.25rem 0.5rem 0.125rem}}.navbar .btn-link:hover{color:#5d2f86}.navbar .btn-link:active{color:#5d2f86}body .toggle-dark{display:block}body .toggle-light{display:none}body.dark .toggle-light{display:block}body.dark .toggle-dark{display:none}.btn-clipboard{display:none}@media (min-width: 768px){.btn-clipboard{display:block;margin:2.0625rem 0.25rem -4rem auto}}.copy-status::after,.copy-status:hover::after{content:"Copy";display:block}.copy-status:focus::after,.copy-status:active::after{content:"Copied";display:block}pre,code,kbd,samp{font-family:sfmono-regular,menlo,monaco,consolas,"Liberation Mono","Courier New",monospace;font-size:.875rem;border-radius:.375rem}pre{background:#fbf7f0;color:#1d2d35;line-height:1.5;margin:2rem 0;overflow:auto;padding:1.25rem 1.5rem;-moz-tab-size:4;-o-tab-size:4;tab-size:4}code{background:#fbf7f0;color:#1d2d35;padding:0.25rem 0.5rem}pre code{background:none;font-size:inherit;padding:0}@media (max-width: 575.98px){pre{margin:2rem -1.5rem}pre,code,kbd,samp{border-radius:0}}/*! + * GitHub Light v0.5.0 + * Copyright (c) 2012 - 2017 GitHub, Inc. + * Licensed under MIT (https://github.com/primer/github-syntax-theme-generator/blob/master/LICENSE) + */.c{color:#6a737d}.e,.en{color:#6f42c1}.s{color:#032f62}.ms{font-weight:bold;color:#005cc5}.md{color:#b31d28;background-color:#ffeef0}blockquote{margin-bottom:1rem;font-size:1.25rem;border-left:3px solid #dee2e6;padding-left:1rem}figure{margin:2rem 0}.figure-caption{margin:0.25rem 0 0.75rem}.blur-up{filter:blur(5px)}.blur-up.lazyloaded{filter:unset}.img-simple{margin-top:0.375rem;margin-bottom:1.25rem}.navbar-form{position:relative}#suggestions{position:absolute;right:0;margin-top:0.5rem;width:calc(100vw - 3rem)}#suggestions a{display:block;text-decoration:none;padding:0.75rem;margin:0 0.5rem}#suggestions a:focus{background:#f8f9fa;outline:0}#suggestions div:not(:first-child){border-top:1px dashed #e9ecef}#suggestions div:first-child{margin-top:0.5rem}#suggestions div:last-child{margin-bottom:0.5rem}#suggestions a:hover{background:#f8f9fa}#suggestions span{display:flex;font-size:1rem}#suggestions span:first-child{font-weight:700;color:#1d2d35}#suggestions span:nth-child(2){color:#495057}@media (min-width: 576px){#suggestions{width:30rem}#suggestions a{display:flex}#suggestions span:first-child{width:9rem;padding-right:1rem;border-right:1px solid #e9ecef;display:inline-block;text-align:right}#suggestions span:nth-child(2){width:19rem;padding-left:1rem}}table{margin:3rem 0}.footer{border-top:1px solid #e9ecef;padding-top:1.125rem;padding-bottom:1.125rem}.footer ul{margin-bottom:0}.footer li{font-size:.875rem;margin-bottom:0}@media (min-width: 768px){.footer li{font-size:1rem}}.navbar-text{margin-left:1rem}.navbar-brand{font-weight:700}.navbar-light .navbar-brand,.navbar-light .navbar-brand:hover,.navbar-light .navbar-brand:active{color:#1d2d35}.navbar-light .navbar-nav .active .nav-link{color:#5d2f86}@media (min-width: 768px){.navbar-brand{font-size:1.375rem}.navbar-text{margin-left:1.25rem}}.navbar-nav{flex-direction:row}.nav-item{margin-left:1.25rem}@media (min-width: 768px){.nav-item{margin-left:0.5rem}}@media (max-width: 575.98px){.nav-item:first-child{margin-left:0}}@media (max-width: 767.98px){.navbar .container{padding-left:1.5rem;padding-right:1.5rem}}.break{flex-basis:100%;height:0}.navbar{background-color:rgba(255,255,255,0.95);border-bottom:1px solid #e9ecef;margin-top:4px}.header-bar{border-top:4px solid;border-image-source:linear-gradient(90deg, #5d2f86, #8ed6fb 50%, #d32e9d);border-image-slice:1}.home .navbar{border-bottom:0}.navbar-form{position:relative;margin-top:0.25rem}@media (min-width: 768px){.navbar-brand{margin-right:1rem !important}.main-nav .nav-item:first-child .nav-link,.social-nav .nav-item:first-child .nav-link{padding-left:0}.main-nav .nav-item:last-child .nav-link,.social-nav .nav-item:last-child .nav-link{padding-right:0}.navbar-form{margin-top:0;margin-left:6rem;margin-right:1.5rem}}@media (min-width: 992px){.navbar-form{margin-left:15rem}}@media (min-width: 1200px){.navbar-form{margin-left:30rem}}.form-control.is-search{padding-right:2.5rem;background:#f8f9fa;border:0}.navbar-form::after{position:absolute;top:0.4625rem;right:0.5375rem;display:flex;align-items:center;justify-content:center;height:1.5rem;padding-right:0.4375rem;padding-left:0.4375rem;font-size:.75rem;color:#495057;content:"/";border:1px solid #dee2e6;border-radius:0.25rem}.algolia-autocomplete{display:flex !important}.algolia-autocomplete .ds-dropdown-menu{box-shadow:0 0.5rem 1rem rgba(0,0,0,0.15) !important}@media (max-width: 575.98px){.algolia-autocomplete .ds-dropdown-menu{max-width:512px !important;min-width:312px !important;width:auto !important}.algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--subcategory-column::after{content:"|";margin-right:0.25rem}}.algolia-autocomplete .algolia-docsearch-suggestion--title{margin-bottom:0}.algolia-autocomplete .algolia-docsearch-suggestion--highlight{padding:0 0.05em}.algolia-autocomplete .algolia-docsearch-footer{margin-top:1rem;margin-right:0.5rem;margin-bottom:0.5rem}.navbar .menu-icon{cursor:pointer;padding:1.125rem 0.625rem;margin:0 0 0 -0.625rem;-webkit-user-select:none;-moz-user-select:none;user-select:none}.navbar .menu-icon .navicon{background:#1d2d35;display:block;height:2px;position:relative;transition:background 0.2s ease-out;width:18px}.navbar .menu-icon .navicon::before,.navbar .menu-icon .navicon::after{background:#1d2d35;content:"";display:block;height:100%;position:absolute;transition:all 0.2s ease-out;width:100%}.navbar .menu-icon .navicon::before{top:5px}.navbar .menu-icon .navicon::after{top:-5px}.navbar .menu-btn{display:none}.navbar .menu-btn:checked~.navbar-collapse{display:block;max-height:100vh}.navbar .menu-btn:checked~.menu-icon .navicon{background:transparent}.navbar .menu-btn:checked~.menu-icon .navicon::before{transform:rotate(-45deg)}.navbar .menu-btn:checked~.menu-icon .navicon::after{transform:rotate(45deg)}.navbar .menu-btn:checked~.menu-icon:not(.steps) .navicon::before,.navbar .menu-btn:checked~.menu-icon:not(.steps) .navicon::after{top:0}.docs-content>h2[id]::before,.docs-content>[id].h2::before,.docs-content>h3[id]::before,.docs-content>[id].h3::before,.docs-content>h4[id]::before,.docs-content>[id].h4::before{display:block;height:6rem;margin-top:-6rem;content:""}.anchor{visibility:hidden;padding-left:0.5rem}h1:hover a,.h1:hover a,h2:hover a,.h2:hover a,h3:hover a,.h3:hover a,h4:hover a,.h4:hover a{visibility:visible;text-decoration:none}.card-list{margin-top:2.25rem}.edit-page{margin-top:3rem;font-size:1rem}.edit-page svg{margin-right:0.5rem;margin-bottom:0.25rem}p.meta{margin-top:0.5rem;font-size:1rem}.breadcrumb{margin-top:2.25rem;font-size:1rem}.home .card,.contributors.list .card,.blog.list .card{margin-top:2rem;margin-bottom:2rem;transition:transform 0.3s}.home .card:hover,.contributors.list .card:hover,.blog.list .card:hover{transform:scale(1.025)}.home .card-body,.contributors.list .card-body,.blog.list .card-body{padding:0 2rem 1rem}.blog-header{text-align:center;margin-bottom:2rem}.lead{color:#5d2f86}body.dark .lead{color:#8ed6fb}.docs-links,.docs-toc{scrollbar-width:thin;scrollbar-color:#fff #fff}.docs-links::-webkit-scrollbar,.docs-toc::-webkit-scrollbar{width:5px}.docs-links::-webkit-scrollbar-track,.docs-toc::-webkit-scrollbar-track{background:#fff}.docs-links::-webkit-scrollbar-thumb,.docs-toc::-webkit-scrollbar-thumb{background:#fff}.docs-links:hover,.docs-toc:hover{scrollbar-width:thin;scrollbar-color:#e9ecef #fff}.docs-links:hover::-webkit-scrollbar-thumb,.docs-toc:hover::-webkit-scrollbar-thumb{background:#e9ecef}.docs-links::-webkit-scrollbar-thumb:hover,.docs-toc::-webkit-scrollbar-thumb:hover{background:#e9ecef}.docs-links h3,.docs-links .h3,.page-links h3,.page-links .h3{text-transform:uppercase;font-size:1rem;margin:1.25rem 0 0.5rem 0;padding:1.5rem 0 0 0}@media (min-width: 992px){.docs-links h3,.docs-links .h3,.page-links h3,.page-links .h3{margin:1.125rem 1.5rem 0.75rem 0;padding:1.375rem 0 0 0}}.docs-links h3:not(:first-child),.docs-links .h3:not(:first-child){border-top:1px solid #e9ecef}a.docs-link{color:#1d2d35;display:block;padding:0.125rem 0;font-size:1rem}.page-links li{margin-top:0.375rem;padding-top:0.375rem}.page-links li ul li{border-top:none;padding-left:1rem;margin-top:0.125rem;padding-top:0.125rem}.page-links li:not(:first-child){border-top:1px dashed #e9ecef}.page-links a{color:#1d2d35;display:block;padding:0.125rem 0;font-size:.9375rem}.docs-link:hover,.docs-link.active,.page-links a:hover{text-decoration:none;color:#5d2f86}.docs-links h3.sidebar-link,.docs-links .sidebar-link.h3,.page-links h3.sidebar-link,.page-links .sidebar-link.h3{text-transform:none;font-size:1.125rem;font-weight:normal}.docs-links h3.sidebar-link a,.docs-links .sidebar-link.h3 a,.page-links h3.sidebar-link a,.page-links .sidebar-link.h3 a{color:#1d2d35}.docs-links h3.sidebar-link a:hover,.docs-links .sidebar-link.h3 a:hover,.page-links h3.sidebar-link a:hover,.page-links .sidebar-link.h3 a:hover{text-decoration:underline} diff --git a/privacy-policy/index.html b/privacy-policy/index.html index 08f66ca..7370176 100644 --- a/privacy-policy/index.html +++ b/privacy-policy/index.html @@ -6,7 +6,7 @@ - + @@ -188,7 +188,7 @@ see. This is derived from the User-Agent HTTP header. For example: Chrome - + diff --git a/security/index.html b/security/index.html index 84c883e..819db72 100644 --- a/security/index.html +++ b/security/index.html @@ -6,7 +6,7 @@ - + @@ -502,7 +502,7 @@ zKdOEDuIPIv4f7HhhCDCylGwfwqar5XJwnHQrBXLpwlTm4neDsnEOvOzyd8= - + diff --git a/sitemap.xml b/sitemap.xml index 6f858ab..b1a71c9 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -67,7 +67,7 @@ /docs/webmasters/installing-captcha/ - 2023-10-27T21:39:40+05:30 + 2023-10-28T02:30:28+05:30 weekly 0.5 @@ -142,6 +142,27 @@ 0.5 + + /docs/user-manual/cli/ + 2023-10-28T01:09:37+05:30 + weekly + 0.5 + + + + /docs/user-manual/how-to-mcaptcha-without-js/ + 2023-10-28T03:16:49+05:30 + weekly + 0.5 + + + + /docs/user-manual/ + 2023-10-28T01:09:37+05:30 + weekly + 0.5 + + /docs/webmasters/terminology/ 2023-10-27T21:39:40+05:30 diff --git a/thanks/index.html b/thanks/index.html index a52362e..903679d 100644 --- a/thanks/index.html +++ b/thanks/index.html @@ -6,7 +6,7 @@ - + @@ -189,7 +189,7 @@ their work at:

        - +