diff --git a/.env.dist b/.env.dist index 094cc7d5cc6..53543f64112 100644 --- a/.env.dist +++ b/.env.dist @@ -30,12 +30,6 @@ DATABASE_CHARSET=utf8 MAILER_DSN=null://null ###< symfony/mailer ### -###> symfony/lock ### -# Choose one of the stores below -# postgresql+advisory://db_user:db_password@localhost/db_name -LOCK_DSN=semaphore -###< symfony/lock ### - ###> APPLICATION CONFIG ### # EC-CUBE Configs. The default value is defined in app/config/packages/eccube.yaml. # Please remove commented out and enable it if you want to change. diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index c3cf4fc9e2c..56653ae7ca3 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -1,3 +1,8 @@ + + ## 概要(Overview) diff --git a/.github/ISSUE_TEMPLATE/1_Bug_report.yml b/.github/ISSUE_TEMPLATE/1_Bug_report.yml new file mode 100644 index 00000000000..863ddc2468b --- /dev/null +++ b/.github/ISSUE_TEMPLATE/1_Bug_report.yml @@ -0,0 +1,29 @@ +name: 🐛 不具合報告(Bug Report) +description: 脆弱性に関する報告はこちらからしないでください。 +labels: bug +body: + - type: textarea + id: overview + attributes: + label: 概要(Overview) + validations: + required: true + - type: textarea + id: procedure + attributes: + label: 再現手順(Procedure) + validations: + required: true + - type: textarea + id: affected-versions + attributes: + label: 環境(Environment) + description: + placeholder: | + EC-CUBE: 4.2.x + PHP: 8.x.x + DB: + PostgresSQL x.x.x + MySQL x.x.x + validations: + required: true diff --git a/.github/ISSUE_TEMPLATE/2_Feature_request.yml b/.github/ISSUE_TEMPLATE/2_Feature_request.yml new file mode 100644 index 00000000000..6e88700d831 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/2_Feature_request.yml @@ -0,0 +1,17 @@ +name: 🚀 改善要望(Feature Request) +description: こんな機能が欲しいなど +body: + - type: textarea + id: overview + attributes: + label: 概要(Overview) + description: + validations: + required: true + - type: textarea + id: example + attributes: + label: 期待する内容(Expect) or 要望(Requirement) + description: + validations: + required: true diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000000..d27f4722efd --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,8 @@ +blank_issues_enabled: false +contact_links: + - name: 脆弱性報告(Vulnerability Report) + url: https://www.ec-cube.net/contact/ + about: 公式サイトのお問い合わせフォームへ(概要と再現手順を必ずご記載ください) + - name: 質問(Question) + url: https://xoops.ec-cube.net/ + about: 開発中に困ったことの相談や質問などは開発コミュニティへ diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 37025b681f4..0b08acd58d2 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,5 +1,10 @@ + + ## 概要(Overview・Refs Issue) diff --git a/.github/actions/composer/action.yml b/.github/actions/composer/action.yml new file mode 100644 index 00000000000..dbae876d358 --- /dev/null +++ b/.github/actions/composer/action.yml @@ -0,0 +1,19 @@ +runs: + using: "Composite" + steps: + - name: Get Composer Cache Directory + id: composer-cache + run: | + echo "::set-output name=dir::$(composer config cache-files-dir)" + shell: bash + + - uses: actions/cache@v3 + with: + path: ${{ steps.composer-cache.outputs.dir }} + key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} + restore-keys: | + ${{ runner.os }}-composer- + + - name: composer install + run: composer install --dev --no-interaction -o --apcu-autoloader + shell: bash diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 2dfb55fea28..ce5b14fc62f 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -15,12 +15,11 @@ on: jobs: phpunit: name: PHPUnit - runs-on: ${{ matrix.operating-system }} + runs-on: ubuntu-22.04 strategy: fail-fast: false matrix: - operating-system: [ ubuntu-18.04 ] - php: [ 7.4 ] + php: [ 8.1 ] db: [ pgsql ] include: - db: pgsql @@ -41,30 +40,19 @@ jobs: - name: Checkout uses: actions/checkout@v2 - - name: Get Composer Cache Directory - id: composer-cache - run: | - echo "::set-output name=dir::$(composer config cache-files-dir)" - - uses: actions/cache@v1 - with: - path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} - restore-keys: | - ${{ runner.os }}-composer- - - name: Setup PHP uses: nanasess/setup-php@master with: php-version: ${{ matrix.php }} - - - name: composer install - run: composer install --dev --no-interaction -o --apcu-autoloader - + - name: Setup pcov run: | - sudo apt-fast install -y php7.4-pcov + sudo apt-fast install -y php8.1-pcov sudo phpenmod -s cli pcov + - name: Initialize Composer + uses: ./.github/actions/composer + - name: Setup EC-CUBE env: APP_ENV: 'test' @@ -82,7 +70,7 @@ jobs: DATABASE_SERVER_VERSION: ${{ matrix.database_server_version }} MAILER_URL: 'smtp://127.0.0.1:1025' continue-on-error: true - run: bin/phpunit --exclude-group cache-clear,cache-clear-install,update-schema-doctrine --coverage-clover=coverage1.xml + run: php -dpcov.enabled=1 vendor/bin/phpunit --exclude-group cache-clear,cache-clear-install,update-schema-doctrine --coverage-clover=coverage1.xml - name: Upload report if: success() uses: actions/upload-artifact@v2 @@ -91,12 +79,11 @@ jobs: path: coverage1.xml codeception: name: Codeception - runs-on: ${{ matrix.operating-system }} + runs-on: ubuntu-22.04 strategy: fail-fast: false matrix: - operating-system: [ ubuntu-18.04 ] - php: [ 7.4 ] + php: [ 8.1 ] db: [ pgsql ] group: [ admin01, admin02, admin03, front, installer ] include: @@ -134,26 +121,14 @@ jobs: - name: Checkout uses: actions/checkout@master - - name: Get Composer Cache Directory - id: composer-cache - run: | - echo "::set-output name=dir::$(composer config cache-files-dir)" - - uses: actions/cache@v1 - with: - path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} - restore-keys: | - ${{ runner.os }}-composer- - - name: Setup PHP uses: nanasess/setup-php@master with: php-version: ${{ matrix.php }} - - name: composer install - run: | - sudo composer selfupdate - composer install --dev --no-interaction -o --apcu-autoloader + - name: Initialize Composer + uses: ./.github/actions/composer + - name: Setup to EC-CUBE env: APP_ENV: ${{ matrix.app_env }} @@ -182,11 +157,15 @@ jobs: docker run -d --rm -v ${PWD}/repos:/repos -e MOCK_REPO_DIR=/repos -p 8080:8080 eccube/mock-package-api:composer2 cp codeception/_data/plugins/*-1.0.0.tgz repos - - name: Setup xdebug + - name: Setup pcov + run: | + sudo apt-fast install -y php8.1-pcov + sudo phpenmod -s cli pcov + + - name: Setup codeception run: | composer config --no-plugins allow-plugins.codeception/c3 true composer require --dev codeception/c3 "2.*" - sudo phpenmod -s cli xdebug sed -i "7a include __DIR__.'/c3.php';" index.php - name: Start PHP Development Server @@ -196,7 +175,6 @@ jobs: DATABASE_SERVER_VERSION: ${{ matrix.database_server_version }} MAILER_URL: 'smtp://127.0.0.1:1025' ECCUBE_PACKAGE_API_URL: 'http://127.0.0.1:8080' - XDEBUG_MODE: coverage run: php -S 127.0.0.1:8000 & - name: Codeception @@ -208,9 +186,8 @@ jobs: ECCUBE_PACKAGE_API_URL: 'http://127.0.0.1:8080' GROUP: ${{ matrix.group }} SYMFONY_DEPRECATIONS_HELPER: weak - XDEBUG_MODE: coverage continue-on-error: true - run: vendor/bin/codecept -vvv run acceptance --env chrome,github_action -g ${GROUP} --skip-group excludeCoverage --coverage --coverage-xml + run: php -dpcov.enabled=1 vendor/bin/codecept -vvv run acceptance --env chrome,github_action -g ${GROUP} --skip-group excludeCoverage --coverage --coverage-xml - name: Upload outputs uses: actions/upload-artifact@v2 with: diff --git a/.github/workflows/deny-test.yml b/.github/workflows/deny-test.yml index 3ae6620dbef..90a11bf6280 100644 --- a/.github/workflows/deny-test.yml +++ b/.github/workflows/deny-test.yml @@ -15,7 +15,7 @@ on: jobs: deploy: name: Deny check - runs-on: ubuntu-18.04 + runs-on: ubuntu-22.04 services: postgres: image: postgres:14 @@ -35,19 +35,8 @@ jobs: with: php-version: '7.4' - - name: Get Composer Cache Directory - id: composer-cache - run: | - echo "::set-output name=dir::$(composer config cache-files-dir)" - - uses: actions/cache@v1 - with: - path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} - restore-keys: | - ${{ runner.os }}-composer- - - - name: Install to Composer - run: composer install --no-scripts --no-dev --no-interaction --optimize-autoloader + - name: Initialize Composer + uses: ./.github/actions/composer - name: Translate to templates run: php bin/template_jp.php diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index dfafc84641e..3008d9684f0 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -25,17 +25,6 @@ jobs: with: php-version: '7.4' - - name: Get Composer Cache Directory - id: composer-cache - run: | - echo "::set-output name=dir::$(composer config cache-files-dir)" - - uses: actions/cache@v1 - with: - path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} - restore-keys: | - ${{ runner.os }}-composer- - - name: Install to Composer run: composer install --no-scripts --no-dev --no-interaction --optimize-autoloader diff --git a/.github/workflows/dockerbuild.yml b/.github/workflows/dockerbuild.yml index e1cebcfa1ae..72bd6040e25 100644 --- a/.github/workflows/dockerbuild.yml +++ b/.github/workflows/dockerbuild.yml @@ -2,26 +2,25 @@ name: Testing dockerbuild on: push: paths: - - 'Dockerfile' - - 'dockerbuild/*' - - 'docker-compose*.yml' - - '.github/workflows/dockerbuild.yml' - pull_request: - paths: - - 'Dockerfile' - - 'dockerbuild/*' - - 'docker-compose*.yml' - - '.github/workflows/dockerbuild.yml' + - '**' + - '!*.md' + release: + types: [ published ] +env: + REGISTRY: ghcr.io jobs: dockerbuild: name: dockerbuild runs-on: ${{ matrix.operating-system }} + permissions: + contents: read + packages: write strategy: fail-fast: false matrix: - operating-system: [ ubuntu-18.04 ] - php: [ 7.4 ] + operating-system: [ ubuntu-22.04 ] + php: [ '7.4', '8.0', '8.1' ] db: [ pgsql ] group: [ admin01 ] include: @@ -30,45 +29,68 @@ jobs: database_server_version: 14 - group: admin01 app_env: 'codeception' - # - group: admin02 - # app_env: 'codeception' - # - group: admin03 - # app_env: 'codeception' - # - group: front - # app_env: 'codeception' - # - group: installer - # app_env: 'install' - + - php: '7.4' + tag: '7.4-apache' + - php: '8.0' + tag: '8.0-apache' + - php: '8.1' + tag: '8.1-apache' steps: + - name: downcase REPO + run: | + echo "IMAGE_NAME=${GITHUB_REPOSITORY,,}-php" >> ${GITHUB_ENV} - name: Checkout uses: actions/checkout@master - - - name: docker build - run: docker compose build - - - name: Get Composer Cache Directory - id: composer-cache - run: | - echo "::set-output name=dir::$(composer config cache-files-dir)" - - uses: actions/cache@v1 - with: - path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} - restore-keys: | - ${{ runner.os }}-composer- + ## Used when creating multi-platform images + # - name: Set up QEMU + # uses: docker/setup-qemu-action@v2 + # - name: Set up Docker Buildx + # uses: docker/setup-buildx-action@v2 - name: Setup PHP uses: nanasess/setup-php@master with: php-version: ${{ matrix.php }} - - name: composer install - run: composer install --dev --no-interaction -o --apcu-autoloader + - name: Initialize Composer + uses: ./.github/actions/composer + + - name: Login to GitHub Container Registry + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@v4 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + tags: | + # set latest tag for default branch + type=raw,value=${{ matrix.php }}-apache,prefix=,enable={{is_default_branch}} + type=ref,event=branch,prefix=${{ matrix.php }}-apache- + type=ref,event=tag,prefix=${{ matrix.php }}-apache- + type=ref,event=pr,prefix=${{ matrix.php }}-apache-pr- + + - name: Build and export to Docker + uses: docker/build-push-action@v3 + with: + context: . + load: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + build-args: TAG=${{ matrix.tag }} + - name: Setup to EC-CUBE env: APP_ENV: ${{ matrix.app_env }} DATABASE_URL: ${{ matrix.database_url }} DATABASE_SERVER_VERSION: ${{ matrix.database_server_version }} + REGISTRY: ${{ env.REGISTRY }} + IMAGE_NAME: ${{ env.IMAGE_NAME }} + TAG: ${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.version'] }} run: | docker compose -f docker-compose.yml -f docker-compose.pgsql.yml up -d --wait sed -i 's!APP_ENV: "dev"!APP_ENV: "prod"!g' docker-compose.yml @@ -96,6 +118,19 @@ jobs: run: | echo "APP_ENV=${APP_ENV}" > .env vendor/bin/codecept -vvv run acceptance --env chrome,github_action_docker -g ${GROUP} + ## see https://docs.github.com/ja/packages/managing-github-packages-using-github-actions-workflows/publishing-and-installing-a-package-with-github-actions#publishing-a-package-using-an-action + + - name: Push Docker image + uses: docker/build-push-action@v3 + if: success() + with: + context: . + push: true + # platforms: linux/amd64,linux/arm64 + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + build-args: TAG=${{ matrix.tag }} + - name: Upload evidence if: failure() uses: actions/upload-artifact@v2 diff --git a/.github/workflows/e2e-test-throttling.yml b/.github/workflows/e2e-test-throttling.yml new file mode 100644 index 00000000000..9f0577bba40 --- /dev/null +++ b/.github/workflows/e2e-test-throttling.yml @@ -0,0 +1,135 @@ +name: E2E test(Throttoling) for EC-CUBE +on: + push: + branches: + - '*' + tags: + - '*' + paths: + - '**' + - '!*.md' + pull_request: + paths: + - '**' + - '!*.md' +jobs: + codeception: + name: Codeception + runs-on: ubuntu-22.04 + strategy: + fail-fast: false + matrix: + php: [ 8.1 ] + db: [ pgsql ] + method: [ フロント画面ログイン_IP, フロント画面ログイン_会員, 管理画面ログイン_IP, 管理画面ログイン_会員, 会員登録, 問い合わせ, パスワード再発行, 注文確認_非会員購入, 注文確認_会員購入, 注文完了_非会員購入, 注文完了_会員購入 ] + include: + - db: pgsql + database_url: postgres://postgres:password@127.0.0.1:5432/eccube_db + database_server_version: 14 + services: + postgres: + image: postgres:14 + env: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: password + ports: + - 5432:5432 + # needed because the postgres container does not provide a healthcheck + options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 + + mailcatcher: + image: schickling/mailcatcher + ports: + - 1080:1080 + - 1025:1025 + + steps: + - name: Checkout + uses: actions/checkout@master + + # ShoppingController::checkoutをテストするため、confirmの上限値を変更する + - name: Fix limiter limit + if: startsWith(matrix.method, '注文完了') + run: | + echo "eccube: + rate_limiter: + shopping_confirm_ip: + route: ~ + limit: 1024 + interval: '30 minutes' + shopping_confirm_customer: + route: ~ + limit: 1024 + interval: '30 minutes' + shopping_checkout_ip: + route: ~ + limit: 25 + interval: '30 minutes' + shopping_checkout_customer: + route: ~ + limit: 10 + interval: '30 minutes'" > app/config/eccube/packages/prod/eccube_rate_limiter.yaml + + - name: Setup PHP + uses: nanasess/setup-php@master + with: + php-version: ${{ matrix.php }} + + - name: Initialize Composer + uses: ./.github/actions/composer + + - name: Setup to EC-CUBE + env: + APP_ENV: 'prod' + DATABASE_URL: ${{ matrix.database_url }} + DATABASE_SERVER_VERSION: ${{ matrix.database_server_version }} + run: | + echo "APP_ENV=${APP_ENV}" > .env + echo "TRUSTED_HOSTS=127.0.0.1,localhost" >> .env + bin/console doctrine:database:create --env=dev + bin/console doctrine:schema:create --env=dev + bin/console eccube:fixtures:load --env=dev + + - name: setup-chromedriver + uses: nanasess/setup-chromedriver@master + + - name: Run chromedriver + run: | + export DISPLAY=:99 + chromedriver --url-base=/wd/hub & + echo ">>> Started chrome-driver" + sudo Xvfb -ac :99 -screen 0 1280x1024x24 > /dev/null 2>&1 & + echo ">>> Started xvfb" + + - name: Start PHP Development Server + env: + APP_ENV: 'prod' + DATABASE_URL: ${{ matrix.database_url }} + DATABASE_SERVER_VERSION: ${{ matrix.database_server_version }} + MAILER_DSN: 'smtp://127.0.0.1:1025' + ECCUBE_PACKAGE_API_URL: 'http://127.0.0.1:8080' + run: php -S 127.0.0.1:8000 codeception/router.php & + + - name: Codeception + env: + APP_ENV: 'prod' + DATABASE_URL: ${{ matrix.database_url }} + DATABASE_SERVER_VERSION: ${{ matrix.database_server_version }} + MAILER_DSN: 'smtp://127.0.0.1:1025' + ECCUBE_PACKAGE_API_URL: 'http://127.0.0.1:8080' + METHOD: ${{ matrix.method }} + SYMFONY_DEPRECATIONS_HELPER: weak + run: vendor/bin/codecept -vvv run acceptance --env chrome,github_action EF09ThrottlingCest::${METHOD} --html report.html + + - name: Upload evidence + if: failure() + uses: actions/upload-artifact@v2 + with: + name: codeception-${{ matrix.method }}-evidence + path: codeception/_output/ + - name: Upload logs + if: failure() + uses: actions/upload-artifact@v2 + with: + name: codeception-${{ matrix.method }}-logs + path: var/log/ diff --git a/.github/workflows/e2e-test.yml b/.github/workflows/e2e-test.yml index b702aca280b..d8bdd141a05 100644 --- a/.github/workflows/e2e-test.yml +++ b/.github/workflows/e2e-test.yml @@ -15,7 +15,7 @@ on: jobs: codeception: name: Codeception - runs-on: ubuntu-18.04 + runs-on: ubuntu-22.04 strategy: fail-fast: false matrix: @@ -59,24 +59,14 @@ jobs: - name: Checkout uses: actions/checkout@master - - name: Get Composer Cache Directory - id: composer-cache - run: | - echo "::set-output name=dir::$(composer config cache-files-dir)" - - uses: actions/cache@v1 - with: - path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} - restore-keys: | - ${{ runner.os }}-composer- - - name: Setup PHP uses: nanasess/setup-php@master with: php-version: ${{ matrix.php }} - - name: composer install - run: composer install --dev --no-interaction -o --apcu-autoloader + - name: Initialize Composer + uses: ./.github/actions/composer + - name: Setup to EC-CUBE env: APP_ENV: ${{ matrix.app_env }} @@ -92,6 +82,9 @@ jobs: - name: setup-chromedriver uses: nanasess/setup-chromedriver@master + - name: Install fonts + run: sudo apt install fonts-ipafont fonts-ipaexfont + - name: Run chromedriver run: | export DISPLAY=:99 diff --git a/.github/workflows/phpstan.yml b/.github/workflows/phpstan.yml index 72f3b87fc5d..c388e72b937 100644 --- a/.github/workflows/phpstan.yml +++ b/.github/workflows/phpstan.yml @@ -22,11 +22,14 @@ jobs: steps: - name: "Checkout" uses: actions/checkout@v2 + - name: Setup PHP uses: nanasess/setup-php@master with: php-version: '7.4' - - name: composer install - run: composer install --dev --no-interaction -o --apcu-autoloader + + - name: Initialize Composer + uses: ./.github/actions/composer + - name: PHPStan run: vendor/bin/phpstan analyze src/ --error-format=github diff --git a/.github/workflows/plugin-test.yml b/.github/workflows/plugin-test.yml index af096c21ee0..d9410d4d73f 100644 --- a/.github/workflows/plugin-test.yml +++ b/.github/workflows/plugin-test.yml @@ -19,7 +19,7 @@ jobs: strategy: fail-fast: false matrix: - operating-system: [ ubuntu-18.04 ] + operating-system: [ ubuntu-22.04 ] php: [ '7.4', '8.0', '8.1' ] db: [ pgsql, mysql ] method: @@ -68,24 +68,13 @@ jobs: - name: Checkout uses: actions/checkout@master - - name: Get Composer Cache Directory - id: composer-cache - run: | - echo "::set-output name=dir::$(composer config cache-files-dir)" - - uses: actions/cache@v1 - with: - path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} - restore-keys: | - ${{ runner.os }}-composer- - - name: Setup PHP uses: nanasess/setup-php@master with: php-version: ${{ matrix.php }} - - name: composer install - run: composer install --dev --no-interaction -o --apcu-autoloader + - name: Initialize Composer + uses: ./.github/actions/composer - name: Setup to EC-CUBE env: @@ -168,7 +157,7 @@ jobs: strategy: fail-fast: false matrix: - operating-system: [ ubuntu-18.04 ] + operating-system: [ ubuntu-22.04 ] php: [ '7.4', '8.0', '8.1' ] db: [ pgsql, mysql ] method: @@ -315,7 +304,7 @@ jobs: strategy: fail-fast: false matrix: - operating-system: [ ubuntu-18.04 ] + operating-system: [ ubuntu-22.04 ] php: [ '7.4', '8.0', '8.1' ] db: [ pgsql, mysql ] method: @@ -462,7 +451,7 @@ jobs: strategy: fail-fast: false matrix: - operating-system: [ ubuntu-18.04 ] + operating-system: [ ubuntu-22.04 ] php: [ '7.4', '8.0', '8.1' ] db: [ pgsql, mysql ] method: diff --git a/.github/workflows/unit-test.yml b/.github/workflows/unit-test.yml index 95f6e106280..02076ffdae2 100644 --- a/.github/workflows/unit-test.yml +++ b/.github/workflows/unit-test.yml @@ -19,7 +19,7 @@ jobs: strategy: fail-fast: false matrix: - operating-system: [ ubuntu-18.04 ] + operating-system: [ ubuntu-22.04 ] php: [ '7.4', '8.0', '8.1' ] db: [ mysql, pgsql, sqlite3 ] include: @@ -58,24 +58,13 @@ jobs: - name: Checkout uses: actions/checkout@master - - name: Get Composer Cache Directory - id: composer-cache - run: | - echo "::set-output name=dir::$(composer config cache-files-dir)" - - uses: actions/cache@v1 - with: - path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} - restore-keys: | - ${{ runner.os }}-composer- - - name: Setup PHP uses: nanasess/setup-php@master with: php-version: ${{ matrix.php }} - - name: composer install - run: composer install --dev --no-interaction -o --apcu-autoloader + - name: Initialize Composer + uses: ./.github/actions/composer - name: Setup EC-CUBE env: @@ -95,7 +84,7 @@ jobs: DATABASE_SERVER_VERSION: ${{ matrix.database_server_version }} DATABASE_CHARSET: ${{ matrix.database_charset }} MAILER_URL: 'smtp://127.0.0.11025' - run: bin/phpunit --exclude-group cache-clear,cache-clear-install,update-schema-doctrine,plugin-service + run: vendor/bin/phpunit --exclude-group cache-clear,cache-clear-install,update-schema-doctrine,plugin-service - name: PHPUnit env: APP_ENV: 'test' @@ -104,16 +93,16 @@ jobs: DATABASE_CHARSET: ${{ matrix.database_charset }} MAILER_URL: 'smtp://127.0.0.11025' run: | - bin/phpunit --group cache-clear - bin/phpunit --group cache-clear-install - bin/phpunit --group update-schema-doctrine --exclude-group update-schema-doctrine-install - bin/phpunit --group update-schema-doctrine-install --filter=testInstallPluginWithNoProxy - bin/phpunit --group update-schema-doctrine-install --filter=testInstallPluginWithProxy - bin/phpunit --group update-schema-doctrine-install --filter=testEnablePluginWithNoProxy - bin/phpunit --group update-schema-doctrine-install --filter=testEnablePluginWithProxy - bin/phpunit --group update-schema-doctrine-install --filter=testDisablePluginWithNoProxy - bin/phpunit --group update-schema-doctrine-install --filter=testDisablePluginWithProxy - bin/phpunit --group update-schema-doctrine-install --filter=testCreateEntityAndTrait + vendor/bin/phpunit --group cache-clear + vendor/bin/phpunit --group cache-clear-install + vendor/bin/phpunit --group update-schema-doctrine --exclude-group update-schema-doctrine-install + vendor/bin/phpunit --group update-schema-doctrine-install --filter=testInstallPluginWithNoProxy + vendor/bin/phpunit --group update-schema-doctrine-install --filter=testInstallPluginWithProxy + vendor/bin/phpunit --group update-schema-doctrine-install --filter=testEnablePluginWithNoProxy + vendor/bin/phpunit --group update-schema-doctrine-install --filter=testEnablePluginWithProxy + vendor/bin/phpunit --group update-schema-doctrine-install --filter=testDisablePluginWithNoProxy + vendor/bin/phpunit --group update-schema-doctrine-install --filter=testDisablePluginWithProxy + vendor/bin/phpunit --group update-schema-doctrine-install --filter=testCreateEntityAndTrait ## XXX MySQL で Syntax error or access violation: 1305 SAVEPOINT DOCTRINE2_SAVEPOINT_3 does not exist が ## 発生するため \DAMA\DoctrineTestBundle\PHPUnit\PHPUnitListener を削除する ## see https://github.com/dmaicher/doctrine-test-bundle/issues/58#issuecomment-391081408 @@ -130,4 +119,4 @@ jobs: rm -r app/Plugin/* git checkout app/Plugin rm -r var/cache - bin/phpunit --group plugin-service + vendor/bin/phpunit --group plugin-service diff --git a/.github/workflows/vaddy-1.yml b/.github/workflows/vaddy-1.yml index ea146bd4dfe..77f2828805f 100644 --- a/.github/workflows/vaddy-1.yml +++ b/.github/workflows/vaddy-1.yml @@ -62,23 +62,14 @@ jobs: echo 'Host *.vaddy.net StrictHostKeyChecking no' >> ${HOME}/.ssh/config - - name: Get Composer Cache Directory - id: composer-cache - run: | - echo "::set-output name=dir::$(composer config cache-files-dir)" - - uses: actions/cache@v1 - with: - path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} - restore-keys: | - ${{ runner.os }}-composer- + - name: Initialize Composer + uses: ./.github/actions/composer - name: "EC-CUBE: setup" env: DATABASE_URL: postgres://postgres:password@127.0.0.1:5432/eccube_db DATABASE_SERVER_VERSION: 14 run: | - composer install --no-scripts --no-dev --no-interaction --optimize-autoloader php bin/template_jp.php rm -rf app/Plugin/* echo '> ${HOME}/.ssh/config - - name: Get Composer Cache Directory - id: composer-cache - run: | - echo "::set-output name=dir::$(composer config cache-files-dir)" - - uses: actions/cache@v1 - with: - path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} - restore-keys: | - ${{ runner.os }}-composer- + - name: Initialize Composer + uses: ./.github/actions/composer - name: "EC-CUBE: setup" env: DATABASE_URL: postgres://postgres:password@127.0.0.1:5432/eccube_db DATABASE_SERVER_VERSION: 14 run: | - composer install --no-scripts --no-dev --no-interaction --optimize-autoloader php bin/template_jp.php rm -rf app/Plugin/* echo ' # デザインテンプレートを適用するため10Mで設定 +## PHP 7.x + php_value post_max_size 10M + php_value upload_max_filesize 10M + +## PHP 8+ + + php_value post_max_size 10M php_value upload_max_filesize 10M diff --git a/Dockerfile b/Dockerfile index ba237276473..ded4d2dc42b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,5 @@ -FROM php:7.4-apache-bullseye +ARG TAG=7.4-apache-bullseye +FROM php:${TAG} ENV APACHE_DOCUMENT_ROOT /var/www/html @@ -53,6 +54,8 @@ RUN mkdir -p ${APACHE_DOCUMENT_ROOT} \ RUN a2enmod rewrite headers ssl # Enable SSL RUN ln -s /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/default-ssl.conf +# see https://stackoverflow.com/questions/73294020/docker-couldnt-create-the-mpm-accept-mutex/73303983#73303983 +RUN echo "Mutex posixsem" >> /etc/apache2/apache2.conf EXPOSE 443 # Use the default production configuration @@ -76,4 +79,4 @@ RUN find ${APACHE_DOCUMENT_ROOT} \( -path ${APACHE_DOCUMENT_ROOT}/vendor -prune | xargs -0 chmod g+s \ ; -HEALTHCHECK --interval=10s --timeout=5s --retries=30 CMD pgrep apache \ No newline at end of file +HEALTHCHECK --interval=10s --timeout=5s --retries=30 CMD pgrep apache diff --git a/app/DoctrineMigrations/Version20230116061053.php b/app/DoctrineMigrations/Version20230116061053.php new file mode 100644 index 00000000000..a1f34db6356 --- /dev/null +++ b/app/DoctrineMigrations/Version20230116061053.php @@ -0,0 +1,33 @@ +hasTable(self::NAME)) { + return; + } + $exists = $this->connection->fetchOne("SELECT count(*) FROM dtb_csv WHERE csv_type_id = 1 AND entity_name = ? AND field_name = 'visible'", ['Eccube\\\\Entity\\\\ProductClass']); + if ($exists == 0) { + $this->addSql("INSERT INTO dtb_csv (csv_type_id, creator_id, entity_name, field_name, disp_name, sort_no, enabled, create_date, update_date, discriminator_type) VALUES (1, null, 'Eccube\\\\Entity\\\\ProductClass', 'visible', '商品規格表示フラグ', 32, false, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 'csv')"); + } + } + + public function down(Schema $schema): void + { + // this down() migration is auto-generated, please modify it to your needs + + } +} diff --git a/app/config/eccube/bundles.php b/app/config/eccube/bundles.php index 87d01da5996..83df2c2cb80 100644 --- a/app/config/eccube/bundles.php +++ b/app/config/eccube/bundles.php @@ -27,4 +27,5 @@ Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle::class => ['all' => true], DAMA\DoctrineTestBundle\DAMADoctrineTestBundle::class => ['test' => true], Twig\Extra\TwigExtraBundle\TwigExtraBundle::class => ['all' => true], + \Eccube\EccubeBundle::class => ['all' => true], ]; diff --git a/app/config/eccube/packages/eccube.yaml b/app/config/eccube/packages/eccube.yaml index a4015de8f1f..57984eec354 100644 --- a/app/config/eccube/packages/eccube.yaml +++ b/app/config/eccube/packages/eccube.yaml @@ -2,6 +2,8 @@ parameters: # EC-CUBE default env parameters env(ECCUBE_ADMIN_ROUTE): 'admin' env(ECCUBE_USER_DATA_ROUTE): 'user_data' + env(ECCUBE_FRONT_ALLOW_HOSTS): '[]' + env(ECCUBE_FRONT_DENY_HOSTS): '[]' env(ECCUBE_ADMIN_ALLOW_HOSTS): '[]' env(ECCUBE_ADMIN_DENY_HOSTS): '[]' env(ECCUBE_FORCE_SSL): '0' @@ -24,6 +26,8 @@ parameters: eccube_mailer_dsn: '%env(MAILER_DSN)%' eccube_admin_route: '%env(ECCUBE_ADMIN_ROUTE)%' eccube_user_data_route: '%env(ECCUBE_USER_DATA_ROUTE)%' + eccube_front_allow_hosts: '%env(json:ECCUBE_FRONT_ALLOW_HOSTS)%' + eccube_front_deny_hosts: '%env(json:ECCUBE_FRONT_DENY_HOSTS)%' eccube_admin_allow_hosts: '%env(json:ECCUBE_ADMIN_ALLOW_HOSTS)%' eccube_admin_deny_hosts: '%env(json:ECCUBE_ADMIN_DENY_HOSTS)%' eccube_force_ssl: '%env(bool:ECCUBE_FORCE_SSL)%' @@ -95,6 +99,7 @@ parameters: eccube_official_site_url: https://www.ec-cube.net eccube_community_site_url: https://xoops.ec-cube.net eccube_document_url: http://doc4.ec-cube.net + eccube_manual_url: https://www.ec-cube.net/manual/ec-cube4/ eccube_name_len: 16 eccube_kana_len: 25 eccube_address1_len: 32 @@ -151,5 +156,19 @@ parameters: - admin_content_css - admin_content_js - admin_store_template_install + eccube_file_uploadable_extensions: # ファイル管理でアップロード可能な拡張子 + - jpg + - jpeg + - png + - gif + - webp + - svg + - ico + - html + - htm + - js + - css + - txt + - pdf eccube_login_throttling_max_attempts: 5 eccube_login_throttling_interval: '30 minutes' diff --git a/app/config/eccube/packages/eccube_rate_limiter.yaml b/app/config/eccube/packages/eccube_rate_limiter.yaml new file mode 100644 index 00000000000..1eb9ab5b8f4 --- /dev/null +++ b/app/config/eccube/packages/eccube_rate_limiter.yaml @@ -0,0 +1,18 @@ +eccube: + rate_limiter: + shopping_confirm_ip: + route: ~ # routeがnullの場合は自動適用されない + limit: 1024 + interval: '30 minutes' + shopping_confirm_customer: + route: ~ + limit: 1024 + interval: '30 minutes' + shopping_checkout_ip: + route: ~ + limit: 1024 + interval: '30 minutes' + shopping_checkout_customer: + route: ~ + limit: 1024 + interval: '30 minutes' diff --git a/app/config/eccube/packages/prod/eccube_rate_limiter.yaml b/app/config/eccube/packages/prod/eccube_rate_limiter.yaml new file mode 100644 index 00000000000..19665d4fd37 --- /dev/null +++ b/app/config/eccube/packages/prod/eccube_rate_limiter.yaml @@ -0,0 +1,40 @@ +eccube: + rate_limiter: + forgot: + route: forgot + method: [ 'POST' ] + type: ip + limit: 5 + interval: '30 minutes' + entry: + route: entry + method: [ 'POST' ] + params: + mode: complete + type: ip + limit: 5 + interval: '30 minutes' + contact: + route: contact + method: [ 'POST' ] + params: + mode: complete + type: ip + limit: 5 + interval: '30 minutes' + shopping_confirm_ip: + route: ~ + limit: 25 + interval: '30 minutes' + shopping_confirm_customer: + route: ~ + limit: 10 + interval: '30 minutes' + shopping_checkout_ip: + route: ~ + limit: 25 + interval: '30 minutes' + shopping_checkout_customer: + route: ~ + limit: 10 + interval: '30 minutes' diff --git a/app/config/eccube/packages/purchaseflow.yaml b/app/config/eccube/packages/purchaseflow.yaml index ba7d01a0882..97669b472bf 100644 --- a/app/config/eccube/packages/purchaseflow.yaml +++ b/app/config/eccube/packages/purchaseflow.yaml @@ -93,6 +93,7 @@ services: class: Doctrine\Common\Collections\ArrayCollection arguments: - # + - '@Eccube\Service\PurchaseFlow\Processor\PointRateProcessor' # 明細にポイント付与率を設定する - '@Eccube\Service\PurchaseFlow\Processor\AddPointProcessor' # 加算ポイントの計算 - '@Eccube\Service\PurchaseFlow\Processor\PaymentValidator' - '@Eccube\Service\PurchaseFlow\Processor\PaymentTotalLimitValidator' diff --git a/app/config/eccube/packages/rate_limiter.yml b/app/config/eccube/packages/rate_limiter.yml new file mode 100644 index 00000000000..74afc5f602b --- /dev/null +++ b/app/config/eccube/packages/rate_limiter.yml @@ -0,0 +1,6 @@ +# config/packages/rate_limiter.yaml +framework: + cache: + pools: + rate_limiter.cache: + adapter: cache.adapter.filesystem diff --git a/app/config/eccube/packages/security.yaml b/app/config/eccube/packages/security.yaml index 963d632ba4c..f49a1f9da2e 100644 --- a/app/config/eccube/packages/security.yaml +++ b/app/config/eccube/packages/security.yaml @@ -48,6 +48,7 @@ security: lifetime: 3600 name: eccube_remember_me remember_me_parameter: 'login_memory' + secure: auto form_login: enable_csrf: true check_path: mypage_login diff --git a/app/config/eccube/packages/test/eccube_rate_limiter.yaml b/app/config/eccube/packages/test/eccube_rate_limiter.yaml new file mode 100644 index 00000000000..0424a953ef9 --- /dev/null +++ b/app/config/eccube/packages/test/eccube_rate_limiter.yaml @@ -0,0 +1,14 @@ +eccube: + rate_limiter: + test_ip: + route: ~ + limit: 1 + interval: '30 minutes' + test_customer: + route: ~ + limit: 1 + interval: '30 minutes' + test_params: + route: ~ + limit: 1 + interval: '30 minutes' diff --git a/app/config/eccube/packages/test/rate_limiter.yml b/app/config/eccube/packages/test/rate_limiter.yml new file mode 100644 index 00000000000..74afc5f602b --- /dev/null +++ b/app/config/eccube/packages/test/rate_limiter.yml @@ -0,0 +1,6 @@ +# config/packages/rate_limiter.yaml +framework: + cache: + pools: + rate_limiter.cache: + adapter: cache.adapter.filesystem diff --git a/app/config/eccube/services.yaml b/app/config/eccube/services.yaml index 06934ceb0a1..50e67e4a9bc 100644 --- a/app/config/eccube/services.yaml +++ b/app/config/eccube/services.yaml @@ -213,3 +213,6 @@ services: - '@Eccube\Request\Context' tags: - { name: form.type_extension, priority: -99, extended_type: Symfony\Component\Form\Extension\Core\Type\TextType } + + Eccube\EventListener\RateLimiterListener: + arguments: [ !tagged_locator { tag: 'eccube_rate_limiter' } ] diff --git a/codeception/_envs/github_action.yml b/codeception/_envs/github_action.yml index 002f2fa3b03..e5ef371c5b9 100644 --- a/codeception/_envs/github_action.yml +++ b/codeception/_envs/github_action.yml @@ -8,6 +8,7 @@ modules: chromeOptions: prefs: download.default_directory: '%GITHUB_WORKSPACE%/codeception/_support/_downloads' + wait: 30 MailCatcher: url: '127.0.0.1' port: 1080 diff --git a/codeception/_support/AcceptanceTester.php b/codeception/_support/AcceptanceTester.php index 0c28ceebbb6..6def0e91c79 100644 --- a/codeception/_support/AcceptanceTester.php +++ b/codeception/_support/AcceptanceTester.php @@ -79,7 +79,7 @@ public function goToAdminPage($dir = '') $I = $this; if ($dir == '') { $config = Fixtures::get('config'); - $I->amOnPage('/'.$config['eccube_admin_route']); + $I->amOnPage('/'.$config['eccube_admin_route'].'/'); } else { $I->amOnPage('/'.$dir); } @@ -101,6 +101,7 @@ public function logoutAsMember() { $I = $this; $I->amOnPage('/'); + $I->waitForElement('.ec-headerNaviRole .ec-headerNav .ec-headerNav__item:nth-child(3) a'); $isLogin = $I->grabTextFrom('.ec-headerNaviRole .ec-headerNav .ec-headerNav__item:nth-child(3) a'); if ($isLogin == 'ログアウト') { $I->wait(1); diff --git a/codeception/_support/Page/AbstractPage.php b/codeception/_support/Page/AbstractPage.php index bfc334621cb..b5d73a6a3d0 100644 --- a/codeception/_support/Page/AbstractPage.php +++ b/codeception/_support/Page/AbstractPage.php @@ -36,6 +36,7 @@ public function __construct(\AcceptanceTester $I) protected function goPage($url, $pageTitle = '') { $this->tester->amOnPage($url); + $this->tester->waitForJS("return location.pathname + location.search == '${url}'", 30); return $this; } diff --git a/codeception/_support/Page/Admin/AbstractAdminPage.php b/codeception/_support/Page/Admin/AbstractAdminPage.php index a3b9009f3c0..b6e63fbf9d4 100644 --- a/codeception/_support/Page/Admin/AbstractAdminPage.php +++ b/codeception/_support/Page/Admin/AbstractAdminPage.php @@ -29,10 +29,14 @@ abstract class AbstractAdminPage extends AbstractPage protected function goPage($url, $pageTitle = '') { $config = Fixtures::get('config'); - $this->tester->amOnPage('/'.$config['eccube_admin_route'].$url); + $adminUrl = '/'.$config['eccube_admin_route'].$url; + $this->tester->amOnPage($adminUrl); if ($pageTitle) { return $this->atPage($pageTitle); + } else { + $this->tester->wait(5); + $this->tester->waitForJS("return location.pathname + location.search == '${adminUrl}'"); } return $this; @@ -47,7 +51,7 @@ protected function goPage($url, $pageTitle = '') */ protected function atPage($pageTitle) { - $this->tester->see($pageTitle, '.c-container .c-pageTitle__titles'); + $this->tester->waitForText($pageTitle, 10, '.c-container .c-pageTitle__titles'); return $this; } diff --git a/codeception/_support/Page/Admin/DeliveryEditPage.php b/codeception/_support/Page/Admin/DeliveryEditPage.php index dba1cb5fd6e..9f9f849974e 100644 --- a/codeception/_support/Page/Admin/DeliveryEditPage.php +++ b/codeception/_support/Page/Admin/DeliveryEditPage.php @@ -52,6 +52,14 @@ public function 入力_支払方法選択($array) return $this; } + public function 入力_お届け時間($value) + { + $this->tester->fillField(['id' => 'add-delivery-time-value'], $value); + $this->tester->click('#add-delivery-time-button'); + + return $this; + } + public function 入力_全国一律送料($value) { $this->tester->fillField(['id' => 'delivery_free_all'], $value); diff --git a/codeception/_support/Page/Admin/MasterDataManagePage.php b/codeception/_support/Page/Admin/MasterDataManagePage.php index 335d27d378f..1efd3e69cad 100644 --- a/codeception/_support/Page/Admin/MasterDataManagePage.php +++ b/codeception/_support/Page/Admin/MasterDataManagePage.php @@ -39,6 +39,7 @@ public function 選択($option) { $this->tester->selectOption(['id' => 'admin_system_masterdata_masterdata'], $option); $this->tester->click('#form1 button'); + $this->tester->waitForElement(['xpath' => "//select[@id='admin_system_masterdata_masterdata']/option[@selected][contains(text(), '${option}')]"]); return $this; } diff --git a/codeception/_support/Page/Admin/OrderEditPage.php b/codeception/_support/Page/Admin/OrderEditPage.php index 072d0954a87..56dbfe49825 100644 --- a/codeception/_support/Page/Admin/OrderEditPage.php +++ b/codeception/_support/Page/Admin/OrderEditPage.php @@ -166,7 +166,8 @@ public function 商品検索($value = '') public function 商品検索結果_選択($rowNum) { $rowNum = $rowNum * 2; - $this->tester->click("#searchProductModalList > table > tbody > tr:nth-child(${rowNum}) > td.text-end > button"); + $this->tester->click(['css' => "#searchProductModalList > table > tbody > tr:nth-child(${rowNum}) > td.text-end > button"]); + $this->tester->waitForElementNotVisible(['id' => 'searchProductModalList']); return $this; } diff --git a/codeception/_support/Page/Admin/ShippingEditPage.php b/codeception/_support/Page/Admin/ShippingEditPage.php index 5d673ea6516..04b5693af9a 100644 --- a/codeception/_support/Page/Admin/ShippingEditPage.php +++ b/codeception/_support/Page/Admin/ShippingEditPage.php @@ -173,7 +173,7 @@ public function 商品検索($value = '') { $this->tester->scrollTo(['css' => '#shipping-product_1 > div > button'], 0, -50); $this->tester->click(['css' => '#shipping-product_1 > div > button']); - $this->tester->waitForElementVisible(['id' => 'addProduct']); + $this->tester->waitForElementVisible(['id' => 'admin_search_product_id']); $this->tester->fillField(['id' => 'admin_search_product_id'], $value); $this->tester->click('#searchProductModalButton'); $this->tester->waitForElementVisible('#searchProductModalList table'); @@ -185,6 +185,8 @@ public function 商品検索結果_選択($rowNum) { $rowNum = $rowNum * 2; $this->tester->click("#searchProductModalList > table > tbody > tr:nth-child(${rowNum}) > td.align-middle.pe-3.text-end > button"); + $this->tester->waitForElementNotVisible('#searchProductModalList'); + $this->tester->wait(5); return $this; } diff --git a/codeception/_support/Page/Admin/SystemSecurityPage.php b/codeception/_support/Page/Admin/SystemSecurityPage.php new file mode 100644 index 00000000000..0715d64c60f --- /dev/null +++ b/codeception/_support/Page/Admin/SystemSecurityPage.php @@ -0,0 +1,60 @@ +goPage('/setting/system/security', 'セキュリティ管理システム設定'); + } + + /** + * @param \AcceptanceTester $I + */ + public static function at($I) + { + $page = new self($I); + $page->atPage('セキュリティ管理システム設定'); + + return $page; + } + + public function 入力_front許可リスト($ip) + { + $this->tester->fillField(['id' => 'admin_security_front_allow_hosts'], $ip); + + return $this; + } + + public function 入力_front拒否リスト($ip) + { + $this->tester->fillField(['id' => 'admin_security_front_deny_hosts'], $ip); + + return $this; + } + + public function 登録() + { + $this->tester->click('#page_admin_setting_system_security form div.c-contentsArea__cols > div.c-conversionArea > div > div > div:nth-child(2) > div > div > button'); + $this->tester->see('保存しました'); + + return $this; + } +} diff --git a/codeception/_support/Page/Front/CartPage.php b/codeception/_support/Page/Front/CartPage.php index d24b7ad2736..64d14967767 100644 --- a/codeception/_support/Page/Front/CartPage.php +++ b/codeception/_support/Page/Front/CartPage.php @@ -45,7 +45,9 @@ public function 商品名($index) public function 商品数量($index) { - return $this->tester->grabTextFrom(['xpath' => "//div[@class='ec-cartRole']//ul[@class='ec-cartRow'][position()=${index}]//div[@class='ec-cartRow__amount']"]); + $selector = ['xpath' => "//div[@class='ec-cartRole']//ul[@class='ec-cartRow'][position()=${index}]//div[@class='ec-cartRow__amount']"]; + $this->tester->waitForElement($selector); + return $this->tester->grabTextFrom($selector); } public function 明細数() diff --git a/codeception/_support/Page/Front/MyPage.php b/codeception/_support/Page/Front/MyPage.php index 9dd9f5031a9..c2dc8fd974d 100644 --- a/codeception/_support/Page/Front/MyPage.php +++ b/codeception/_support/Page/Front/MyPage.php @@ -29,7 +29,7 @@ public function __construct(\AcceptanceTester $I) public static function go($I) { $page = new self($I); - $page->goPage('/mypage'); + $page->goPage('/mypage/'); return $page; } diff --git a/codeception/_support/Page/Front/ProductListPage.php b/codeception/_support/Page/Front/ProductListPage.php index 233d76d6a78..f9a5820e766 100644 --- a/codeception/_support/Page/Front/ProductListPage.php +++ b/codeception/_support/Page/Front/ProductListPage.php @@ -31,6 +31,7 @@ public function __construct(\AcceptanceTester $I) public function 表示件数設定($num) { $this->tester->selectOption(['css' => "select[name = 'disp_number']"], "${num}件"); + $this->tester->waitForElement(['css' => "select[name='disp_number'] > option[value='${num}'][selected]"]); return $this; } @@ -38,6 +39,7 @@ public function 表示件数設定($num) public function 表示順設定($sort) { $this->tester->selectOption(['css' => "select[name = 'orderby']"], $sort); + $this->tester->waitForElement(['xpath' => "//select[@name='orderby']/option[text()='${sort}']"]); return $this; } diff --git a/codeception/_support/Page/Front/ShoppingPage.php b/codeception/_support/Page/Front/ShoppingPage.php index e337d03d2df..3dac5703ab7 100644 --- a/codeception/_support/Page/Front/ShoppingPage.php +++ b/codeception/_support/Page/Front/ShoppingPage.php @@ -73,6 +73,7 @@ public function 入力_姓($value) public function 入力_利用ポイント($value) { $this->tester->executeJS("$('#shopping_order_use_point').val('{$value}').change()"); + $this->tester->wait(5); return $this; } @@ -80,6 +81,7 @@ public function 入力_利用ポイント($value) public function 選択_配送方法($id) { $this->tester->selectOption(['id' => 'shopping_order_Shippings_0_Delivery'], $id); + $this->tester->wait(5); return $this; } diff --git a/codeception/_support/Page/Front/TopPage.php b/codeception/_support/Page/Front/TopPage.php index 35f11372050..cd642cc4920 100644 --- a/codeception/_support/Page/Front/TopPage.php +++ b/codeception/_support/Page/Front/TopPage.php @@ -25,6 +25,14 @@ public static function go(\AcceptanceTester $I) return $page->goPage('/'); } + public function at($title) + { + $this->tester->see($title); + + return $this; + } + + public function 新着情報選択($rowNum) { $this->tester->click(['css' => "div.ec-newsRole__news > div:nth-child($rowNum) > div.ec-newsRole__newsHeading"]); diff --git a/codeception/_support/Page/Install/InstallPage.php b/codeception/_support/Page/Install/InstallPage.php index 7cb43b14478..3d0f9a75d60 100644 --- a/codeception/_support/Page/Install/InstallPage.php +++ b/codeception/_support/Page/Install/InstallPage.php @@ -25,7 +25,7 @@ public static function go(\AcceptanceTester $I) { $page = new self($I); - return $page->goPage('/'); + return $page->goPage('/install/step1'); } public function step1_次へボタンをクリック() diff --git a/codeception/acceptance/EA03ProductCest.php b/codeception/acceptance/EA03ProductCest.php index 7dc112cc4e6..db3e71ddbc2 100644 --- a/codeception/acceptance/EA03ProductCest.php +++ b/codeception/acceptance/EA03ProductCest.php @@ -366,6 +366,13 @@ public function product_一覧からの規格編集規格あり1(AcceptanceTeste return $Product->hasProductClass(); }); $Product = array_pop($Products); + ProductManagePage::go($I) + ->検索($Product->getName()) + ->検索結果_複製(1) + ->Accept_複製する(1); + + $I->see('商品を複製しました', ProductEditPage::$登録結果メッセージ); + ProductManagePage::go($I) ->検索($Product->getName()) ->検索結果_選択(1); diff --git a/codeception/acceptance/EA04OrderCest.php b/codeception/acceptance/EA04OrderCest.php index 2ac1d27527c..8cfc0928ca4 100644 --- a/codeception/acceptance/EA04OrderCest.php +++ b/codeception/acceptance/EA04OrderCest.php @@ -353,7 +353,7 @@ public function order_受注登録(AcceptanceTester $I) ->商品検索結果_選択(1) ->受注情報登録(); - $I->see('保存しました', OrderEditPage::$登録完了メッセージ); + $I->waitForText('保存しました', 10, OrderEditPage::$登録完了メッセージ); } public function order_納品書の出力(AcceptanceTester $I) diff --git a/codeception/acceptance/EA05CustomerCest.php b/codeception/acceptance/EA05CustomerCest.php index da83b08e088..77074cb9c26 100644 --- a/codeception/acceptance/EA05CustomerCest.php +++ b/codeception/acceptance/EA05CustomerCest.php @@ -12,6 +12,7 @@ */ use Codeception\Util\Fixtures; +use Eccube\Entity\Master\OrderStatus; use Page\Admin\CsvSettingsPage; use Page\Admin\CustomerEditPage; use Page\Admin\CustomerManagePage; @@ -194,6 +195,32 @@ public function customer_会員編集_必須項目未入力(AcceptanceTester $I) $I->dontSeeElement(CustomerEditPage::$登録完了メッセージ); } + /** + * @group vaddy + */ + public function customer_会員編集_注文履歴あり(AcceptanceTester $I) + { + $I->wantTo('EA0502-UC02-T03 会員編集_注文履歴あり'); + + $createCustomer = Fixtures::get('createCustomer'); + $customer = $createCustomer(); + $createOrders = Fixtures::get('createOrders'); + $createOrders($customer, 20, [], OrderStatus::NEW); + + $CustomerListPage = CustomerManagePage::go($I) + ->検索($customer->getEmail()); + + $I->see('検索結果:1件が該当しました', CustomerManagePage::$検索結果メッセージ); + + $CustomerListPage->一覧_編集(1); + + $CustomerRegisterPage = CustomerEditPage::at($I) + ->入力_姓('testuser-2'); + + $CustomerRegisterPage->登録(); + $I->see('保存しました', CustomerEditPage::$登録完了メッセージ); + } + /** * @group vaddy */ diff --git a/codeception/acceptance/EA06ContentsManagementCest.php b/codeception/acceptance/EA06ContentsManagementCest.php index 5884dbb0a8e..938b8675093 100644 --- a/codeception/acceptance/EA06ContentsManagementCest.php +++ b/codeception/acceptance/EA06ContentsManagementCest.php @@ -60,7 +60,7 @@ public function contentsmanagement_新着情報管理(AcceptanceTester $I) ->入力_本文('newsnewsnewsnewsnews') ->登録(); - $I->see('保存しました', NewsManagePage::$登録完了メッセージ); + $I->waitForText('保存しました', 10, NewsManagePage::$登録完了メッセージ); // EA0601-UC02-T01_新着情報管理(編集) NewsManagePage::go($I)->一覧_編集(2); @@ -70,7 +70,7 @@ public function contentsmanagement_新着情報管理(AcceptanceTester $I) ->入力_タイトル($new_title) ->登録(); - $I->see('保存しました', NewsManagePage::$登録完了メッセージ); + $I->waitForText('保存しました', 10, NewsManagePage::$登録完了メッセージ); $NewsListPage = NewsManagePage::go($I); $I->assertEquals($new_title, $NewsListPage->一覧_タイトル(2)); @@ -78,6 +78,7 @@ public function contentsmanagement_新着情報管理(AcceptanceTester $I) // EA0601-UC03-T01_新着情報管理(削除) $NewsListPage->一覧_削除(2); $NewsListPage->ポップアップを受け入れます(2); + $I->waitForText('削除しました', 10, NewsManagePage::$登録完了メッセージ); $I->assertNotEquals($new_title, $NewsListPage->一覧_タイトル(2)); } @@ -107,7 +108,7 @@ public function contentsmanagement_ファイル管理(AcceptanceTester $I) ->入力_ファイル('upload.txt') ->アップロード(); - $I->see('upload.txt', $FileManagePage->ファイル名(1)); + $I->waitForText('upload.txt', 10, $FileManagePage->ファイル名(1)); $FileManagePage->一覧_ダウンロード(1); $UploadedFile = $I->getLastDownloadFile('/^upload\.txt$/'); @@ -120,7 +121,7 @@ public function contentsmanagement_ファイル管理(AcceptanceTester $I) $FileManagePage->一覧_表示(1); $I->switchToNewWindow(); - $I->see('This is uploaded file.'); + $I->waitForText('This is uploaded file.'); FileManagePage::go($I) ->一覧_削除(1) @@ -131,14 +132,14 @@ public function contentsmanagement_ファイル管理(AcceptanceTester $I) ->入力_フォルダ名('folder1') ->フォルダ作成(); - $I->see('folder1', $FileManagePage->ファイル名(1)); + $I->waitForText('folder1', 10, $FileManagePage->ファイル名(1)); $FileManagePage->一覧_ファイル名_クリック(1); - $I->see('folder1', $FileManagePage->パンくず(2)); + $I->waitForText('folder1', 10, $FileManagePage->パンくず(2)); $config = Fixtures::get('config'); $I->amOnPage('/'.$config['eccube_admin_route'].'/content/file_manager'); - $I->see('ファイル管理コンテンツ管理', '.c-pageTitle'); + $I->waitForText('ファイル管理コンテンツ管理', 10, '.c-pageTitle'); FileManagePage::go($I) ->一覧_削除(1) @@ -156,7 +157,7 @@ public function contentsmanagement_ファイル管理_php(AcceptanceTester $I) ->入力_ファイル('upload.php') ->アップロード(); - $I->see('phpファイルはアップロードできません', '#form1 .errormsg'); + $I->waitForText('アップロードできないファイル拡張子です。', 10, '#form1 .errormsg'); } /** @@ -174,7 +175,7 @@ public function contentsmanagement_ファイル管理_ファイルアップロ } $I->amOnPage('/'.$config['eccube_admin_route'].'/content/file_manager'); - $I->see('この機能は管理者によって制限されています。'); + $I->waitForText('この機能は管理者によって制限されています。'); } /** @@ -198,17 +199,17 @@ public function contentsmanagement_ページ管理(AcceptanceTester $I) ->入力_内容($page) ->入力_PC用レイアウト('下層ページ用レイアウト') ->登録(); - $I->see('保存しました', PageEditPage::$登録完了メッセージ); + $I->waitForText('保存しました', 10, PageEditPage::$登録完了メッセージ); $I->amOnPage('/user_data/'.$page); - $I->see($page, 'body'); + $I->waitForText($page, 10, 'body'); /* 編集 */ PageManagePage::go($I)->ページ編集($page); PageEditPage::at($I) ->入力_内容("{% extends 'default_frame.twig' %}") ->登録(); - $I->see('保存しました', PageEditPage::$登録完了メッセージ); + $I->waitForText('保存しました', 10, PageEditPage::$登録完了メッセージ); $I->amOnPage('/user_data/'.$page); $config = Fixtures::get('config'); @@ -220,9 +221,9 @@ public function contentsmanagement_ページ管理(AcceptanceTester $I) ->ブロックを移動('新着情報', '#position_4') ->登録(); - $I->see('保存しました', LayoutEditPage::$登録完了メッセージ); + $I->waitForText('保存しました', 10, LayoutEditPage::$登録完了メッセージ); $I->amOnPage('/user_data/'.$page); - $I->see('新着情報', '.ec-newsRole'); + $I->waitForText('新着情報', 10, '.ec-newsRole'); LayoutManagePage::go($I)->レイアウト編集('下層ページ用レイアウト'); LayoutEditPage::at($I) @@ -257,7 +258,7 @@ public function contentsmanagement_ページ管理(AcceptanceTester $I) /* 削除 */ PageManagePage::go($I)->削除($page); - $I->see('削除しました', PageEditPage::$登録完了メッセージ); + $I->waitForText('削除しました', 10, PageEditPage::$登録完了メッセージ); $I->amOnPage('/user_data/'.$page); $I->seeInTitle('ページがみつかりません'); } @@ -276,10 +277,10 @@ public function contentsmanagement_ページ管理_ファイルアップロー } $I->amOnPage('/'.$config['eccube_admin_route'].'/content/page/new'); - $I->see('この機能は管理者によって制限されています。'); + $I->waitForText('この機能は管理者によって制限されています。'); $I->amOnPage('/'.$config['eccube_admin_route'].'/content/page/1/edit'); - $I->see('この機能は管理者によって制限されています。'); + $I->waitForText('この機能は管理者によって制限されています。'); } @@ -305,7 +306,7 @@ public function contentsmanagement_レイアウト管理(AcceptanceTester $I) ->端末種別('PC') ->ブロックを移動('新着情報', '#position_3') ->登録(); - $I->see('保存しました'); + $I->waitForText('保存しました'); // レイアウトを適用した新規ページを作成 PageManagePage::go($I)->新規入力(); @@ -315,7 +316,7 @@ public function contentsmanagement_レイアウト管理(AcceptanceTester $I) ->入力_URL($pageName) ->入力_PC用レイアウト($layoutName) ->登録(); - $I->see('保存しました', PageEditPage::$登録完了メッセージ); + $I->waitForText('保存しました', 10, PageEditPage::$登録完了メッセージ); // 作成したページの表示確認 (新着情報がヘッダエリアに表示されていることを確認) $I->amOnPage('/user_data/'.$pageName); @@ -326,7 +327,7 @@ public function contentsmanagement_レイアウト管理(AcceptanceTester $I) LayoutEditPage::at($I) ->ブロックを移動('新着情報', '#position_10') ->登録(); - $I->see('保存しました', LayoutEditPage::$登録完了メッセージ); + $I->waitForText('保存しました', 10, LayoutEditPage::$登録完了メッセージ); // 編集したページの表示確認 (新着情報がフッタエリアに表示されていることを確認) $I->amOnPage('/user_data/'.$pageName); @@ -335,15 +336,15 @@ public function contentsmanagement_レイアウト管理(AcceptanceTester $I) // レイアウトの削除 → レイアウトを適用したページがあるため削除できない LayoutManagePage::go($I)->削除($layoutName); - $I->see('削除できませんでした', LayoutManagePage::$登録完了メッセージ); + $I->waitForText('削除できませんでした', 10, LayoutManagePage::$登録完了メッセージ); // レイアウトを適用したページを削除 PageManagePage::go($I)->削除($pageName); - $I->see('削除しました', PageEditPage::$登録完了メッセージ); + $I->waitForText('削除しました', 10, PageEditPage::$登録完了メッセージ); // レイアウトの削除 LayoutManagePage::go($I)->削除($layoutName); - $I->see('削除しました', LayoutManagePage::$登録完了メッセージ); + $I->waitForText('削除しました', 10, LayoutManagePage::$登録完了メッセージ); $I->cantSee($layoutName, '.contentsArea'); } @@ -382,7 +383,7 @@ public function contentsmanagement_ブロック管理(AcceptanceTester $I) ->入力_ファイル名($block) ->入力_データ('
block1
') ->登録(); - $I->see('保存しました', BlockEditPage::$登録完了メッセージ); + $I->waitForText('保存しました', 10, BlockEditPage::$登録完了メッセージ); // TOPページにブロックを配置 LayoutManagePage::go($I)->レイアウト編集('トップページ用レイアウト'); @@ -391,16 +392,16 @@ public function contentsmanagement_ブロック管理(AcceptanceTester $I) ->登録(); $I->amOnPage('/'); - $I->see('block1', ['id' => $block]); + $I->waitForText('block1', 10, ['id' => $block]); BlockManagePage::go($I)->編集(1); BlockEditPage::at($I) ->入力_データ('
welcome
') ->登録(); - $I->see('保存しました', BlockEditPage::$登録完了メッセージ); + $I->waitForText('保存しました', 10, BlockEditPage::$登録完了メッセージ); $I->amOnPage('/'); - $I->see('welcome', ['id' => $block]); + $I->waitForText('welcome', 10, ['id' => $block]); // EA0604-UC01-T03_ブロック管理(削除) BlockManagePage::go($I) @@ -425,11 +426,11 @@ public function contentsmanagement_ブロック管理_ファイルアップロ } $I->amOnPage('/'.$config['eccube_admin_route'].'/content/block/new'); - $I->see('この機能は管理者によって制限されています。'); + $I->waitForText('この機能は管理者によって制限されています。'); $config = Fixtures::get('config'); $I->amOnPage('/'.$config['eccube_admin_route'].'/content/block/1/edit'); - $I->see('この機能は管理者によって制限されています。'); + $I->waitForText('この機能は管理者によって制限されています。'); } @@ -449,7 +450,7 @@ public function contentsmanagement_CSS管理(AcceptanceTester $I) ->登録(); $I->amOnPage('/'); $I->reloadPage(); - $I->see('お気に入り', '.ec-headerNaviRole'); + $I->waitForText('お気に入り', 10, '.ec-headerNaviRole'); } /** @@ -466,7 +467,7 @@ public function contentsmanagement_CSS管理_ファイルアップロード制 } $I->amOnPage('/'.$config['eccube_admin_route'].'/content/css'); - $I->see('この機能は管理者によって制限されています。'); + $I->waitForText('この機能は管理者によって制限されています。'); } public function contentsmanagement_JavaScript管理(AcceptanceTester $I) @@ -480,7 +481,7 @@ public function contentsmanagement_JavaScript管理(AcceptanceTester $I) )->登録(); $I->amOnPage('/'); $I->reloadPage(); - $I->see($test_text, '.ec-headerNaviRole'); + $I->waitForText($test_text, 10, '.ec-headerNaviRole'); JavaScriptManagePage::go($I)->入力('/* */')->登録(); $I->amOnPage('/'); @@ -502,7 +503,7 @@ public function contentsmanagement_JavaScript管理_ファイルアップロー } $I->amOnPage('/'.$config['eccube_admin_route'].'/content/js'); - $I->see('この機能は管理者によって制限されています。'); + $I->waitForText('この機能は管理者によって制限されています。'); } @@ -513,12 +514,12 @@ public function contentsmanagement_メンテナンス管理(AcceptanceTester $I) $I->expect('メンテナンスモードを有効にします'); MaintenanceManagePage::go($I) ->メンテナンス有効無効(); - $I->see('メンテナンスモードを有効にしました。', MaintenanceManagePage::$完了メッセージ); + $I->waitForText('メンテナンスモードを有効にしました。', 10, MaintenanceManagePage::$完了メッセージ); $I->expect('トップページを確認します'); $I->amOnPage('/'); - $I->see('メンテナンスモードが有効になっています。', '#page_homepage > div.ec-maintenanceAlert > div'); - $I->see('全ての商品', TopPage::$検索_カテゴリ選択); + $I->waitForText('メンテナンスモードが有効になっています。', null,'#page_homepage > div.ec-maintenanceAlert > div'); + $I->waitForText('全ての商品', 10, TopPage::$検索_カテゴリ選択); $I->expect('ログアウトします'); $config = Fixtures::get('config'); @@ -527,7 +528,7 @@ public function contentsmanagement_メンテナンス管理(AcceptanceTester $I) $I->expect('トップページを確認します'); $I->amOnPage('/'); $I->dontSee('メンテナンスモードが有効になっています。', '#page_homepage > div.ec-maintenanceAlert > div'); - $I->see('ただいまメンテナンス中です。', 'body > div > div > div > div > p.ec-404Role__title.ec-reportHeading'); + $I->waitForText('ただいまメンテナンス中です。', 10, 'body > div > div > div > div > p.ec-404Role__title.ec-reportHeading'); // 画面遷移がスムーズにいかない場合があるため、ログイン画面に遷移させておく $account = Fixtures::get('admin_account'); @@ -541,12 +542,12 @@ public function contentsmanagement_メンテナンス管理(AcceptanceTester $I) MaintenanceManagePage::go($I) ->メンテナンス有効無効(); - $I->see('メンテナンスモードを無効にしました。', MaintenanceManagePage::$完了メッセージ); + $I->waitForText('メンテナンスモードを無効にしました。', 10, MaintenanceManagePage::$完了メッセージ); $I->expect('トップページを確認します'); $I->amOnPage('/'); $I->dontSee('メンテナンスモードが有効になっています。', '#page_homepage > div.ec-maintenanceAlert > div'); - $I->see('全ての商品', TopPage::$検索_カテゴリ選択); + $I->waitForText('全ての商品', 10, TopPage::$検索_カテゴリ選択); } public function contentsmanagement_キャッシュ管理(AcceptanceTester $I) @@ -555,7 +556,7 @@ public function contentsmanagement_キャッシュ管理(AcceptanceTester $I) $I->expect('トップページを確認します'); $I->amOnPage('/'); - $I->see('EC-CUBE SHOP', 'h1'); + $I->waitForText('EC-CUBE SHOP', 10, 'h1'); $I->expect('キャッシュを削除します'); $config = Fixtures::get('config'); @@ -563,10 +564,10 @@ public function contentsmanagement_キャッシュ管理(AcceptanceTester $I) $I->click('.c-contentsArea .btn-ec-conversion'); $I->waitForElement('.alert', 10); - $I->see('削除しました', '.alert'); + $I->waitForText('削除しました', 10, '.alert'); $I->expect('トップページを確認します'); $I->amOnPage('/'); - $I->see('EC-CUBE SHOP', 'h1'); + $I->waitForText('EC-CUBE SHOP', 10, 'h1'); } } diff --git a/codeception/acceptance/EA07BasicinfoCest.php b/codeception/acceptance/EA07BasicinfoCest.php index 220516e9667..a2361f6daa6 100644 --- a/codeception/acceptance/EA07BasicinfoCest.php +++ b/codeception/acceptance/EA07BasicinfoCest.php @@ -77,14 +77,14 @@ public function basicinfo_基本設定(AcceptanceTester $I) $I->wait(1); $page->登録(); - $I->see('保存しました', ShopSettingPage::$登録完了メッセージ); + $I->waitForText('保存しました', 10, ShopSettingPage::$登録完了メッセージ); $I->amOnPage('/help/about'); - $I->see('サンプル会社名', '#help_about_box__company_name dd'); - $I->see('サンプルショップ', '#help_about_box__shop_name dd'); - $I->see('1000001', '#help_about_box__address dd'); - $I->see('東京都千代田区千代田', '#help_about_box__address dd'); - $I->see('05055555555', '#help_about_box__phone_number dd'); + $I->waitForText('サンプル会社名', 10, '#help_about_box__company_name dd'); + $I->waitForText('サンプルショップ', 10, '#help_about_box__shop_name dd'); + $I->waitForText('1000001', 10, '#help_about_box__address dd'); + $I->waitForText('東京都千代田区千代田', 10, '#help_about_box__address dd'); + $I->waitForText('05055555555', 10, '#help_about_box__phone_number dd'); } public function basicinfo_会員設定_仮会員機能(AcceptanceTester $I) @@ -107,7 +107,7 @@ public function basicinfo_会員設定_仮会員機能(AcceptanceTester $I) $page = CustomerManagePage::go($I); $I->fillField('#admin_search_customer_multi', $email); $page->詳細検索_本会員(); - $I->see('検索結果:1件が該当しました', CustomerManagePage::$検索結果メッセージ); + $I->waitForText('検索結果:1件が該当しました', 10, CustomerManagePage::$検索結果メッセージ); $I->see($email); $I->wantTo('EA0701-UC01-T05_会員設定の設定、編集(仮会員機能:有効)'); @@ -126,11 +126,10 @@ public function basicinfo_会員設定_仮会員機能(AcceptanceTester $I) $I->logoutAsMember(); // 会員ステータスのチェック - $I->loginAsAdmin(); $page = CustomerManagePage::go($I); $I->fillField('#admin_search_customer_multi', $email); $page->詳細検索_仮会員(); - $I->see('検索結果:1件が該当しました', CustomerManagePage::$検索結果メッセージ); + $I->waitForText('検索結果:1件が該当しました', 10, CustomerManagePage::$検索結果メッセージ); $I->see($email); } @@ -155,7 +154,7 @@ public function basicinfo_会員設定_マイページ注文状況(AcceptanceTes ->登録(); MyPage::go($I)->注文履歴(); - $I->see('ご注文状況', '.ec-historyRole'); + $I->waitForText('ご注文状況', 10, '.ec-historyRole'); } public function basicinfo_会員設定_お気に入り(AcceptanceTester $I) @@ -179,10 +178,10 @@ public function basicinfo_会員設定_お気に入り(AcceptanceTester $I) ->登録(); $I->amOnPage('/'); - $I->see('お気に入り', '.ec-headerNav'); + $I->waitForText('お気に入り', 10, '.ec-headerNav'); $I->amOnPage('/products/detail/1'); - $I->see('お気に入りに追加', '.ec-productRole__btn'); + $I->waitForText('お気に入りに追加', 10, ['id' => 'favorite']); } public function basicinfo_会員設定_自動ログイン(AcceptanceTester $I) @@ -207,7 +206,7 @@ public function basicinfo_会員設定_自動ログイン(AcceptanceTester $I) ->登録(); $I->amOnPage('/mypage/login'); - $I->see('次回から自動的にログインする', '#login_mypage'); + $I->waitForText('次回から自動的にログインする', 10, '#login_mypage'); $I->checkOption('#login_memory'); $I->submitForm('#login_mypage', [ 'login_email' => $customer->getEmail(), @@ -216,7 +215,7 @@ public function basicinfo_会員設定_自動ログイン(AcceptanceTester $I) $I->amOnPage('/mypage'); $I->seeCookie('eccube_remember_me'); - $I->see('ログアウト', '.ec-headerNaviRole'); + $I->waitForText('ログアウト', 10, '.ec-headerNaviRole'); $I->dontSee('ログイン', '.ec-headerNaviRole'); $I->logoutAsMember(); @@ -232,7 +231,7 @@ public function basicinfo_商品設定の設定、編集_在庫切れ商品の ProductEditPage::at($I) ->入力_在庫数(0) ->登録(); - $I->see('保存しました', ProductEditPage::$登録結果メッセージ); + $I->waitForText('保存しました', 10, ProductEditPage::$登録結果メッセージ); $I->wantTo('EA0701-UC01-T13 商品設定の設定、編集(在庫切れ商品の非表示:有効)'); @@ -244,7 +243,7 @@ public function basicinfo_商品設定の設定、編集_在庫切れ商品の $topPage = TopPage::go($I); $I->fillField(['class' => 'search-name'], 'チェリーアイスサンド'); $topPage->検索(); - $I->see('お探しの商品は見つかりませんでした'); + $I->waitForText('お探しの商品は見つかりませんでした'); $I->wantTo('EA0701-UC01-T14 商品設定の設定、編集(在庫切れ商品の非表示:無効)'); @@ -256,7 +255,7 @@ public function basicinfo_商品設定の設定、編集_在庫切れ商品の $topPage = TopPage::go($I); $I->fillField(['class' => 'search-name'], 'チェリーアイスサンド'); $topPage->検索(); - $I->see('チェリーアイスサンド', '.ec-shelfGrid'); + $I->waitForText('チェリーアイスサンド', 10, '.ec-shelfGrid'); } public function basicinfo_税設定(AcceptanceTester $I) @@ -270,7 +269,7 @@ public function basicinfo_税設定(AcceptanceTester $I) $I->expect('商品登録画面で、税率の入力欄が表示されている'); ProductEditPage::go($I); - $I->see('税率', '.c-contentsArea'); + $I->waitForText('税率', 10, '.c-contentsArea'); $I->seeElement('#admin_product_class_tax_rate'); $I->amGoingTo('税設定を無効化'); @@ -304,7 +303,7 @@ public function basicinfo_ポイント設定_有効(AcceptanceTester $I) ->入力_販売価格(2800) ->入力_在庫数(1000) ->登録(); - $I->see('保存しました', ProductEditPage::$登録結果メッセージ); + $I->waitForText('保存しました', 10, ProductEditPage::$登録結果メッセージ); $I->amGoingTo('会員を作成'); $createCustomer = Fixtures::get('createCustomer'); @@ -326,21 +325,21 @@ public function basicinfo_ポイント設定_有効(AcceptanceTester $I) $I->expect('注文手続き画面・確認画面にて、加算ポイントが表示されていること'); CartPage::go($I)->レジに進む(); - $I->see('加算ポイント'); + $I->waitForText('加算ポイント'); $I->see($expected_point_text, CartPage::$加算ポイント); ShoppingPage::at($I)->確認する(); - $I->see('加算ポイント'); + $I->waitForText('加算ポイント'); $I->see($expected_point_text, CartPage::$加算ポイント); $I->amGoingTo('注文完了'); ShoppingConfirmPage::at($I)->注文する(); - $I->see('ご注文ありがとうございました'); + $I->waitForText('ご注文ありがとうございました'); $I->expect('マイベージ 注文詳細にて、加算ポイントが表示されていること'); MyPage::go($I)->注文履歴詳細(0); HistoryPage::at($I); - $I->see('加算ポイント'); + $I->waitForText('加算ポイント'); $I->see($expected_point_text, HistoryPage::$加算ポイント); $I->expect('管理画面・受注管理にて、加算ポイントが表示されていること'); @@ -363,7 +362,7 @@ public function basicinfo_ポイント設定_有効(AcceptanceTester $I) $I->expect('マイベージにて、ポイントが付与されていること'); MyPage::go($I); - $I->see('現在の所持ポイントは '.number_format($customerPoint).'pt です。'); + $I->waitForText('現在の所持ポイントは '.number_format($customerPoint).'pt です。'); // "ポイント換算レート"に任意の値を設定し、ポイント利用の確認を行う $I->wantTo('EA0701-UC01-T16 ポイント設定(有効) ポイント換算レート'); @@ -375,7 +374,7 @@ public function basicinfo_ポイント設定_有効(AcceptanceTester $I) $I->expect('所持ポイントが表示されていること'); CartPage::go($I)->レジに進む(); - $I->see('利用ポイント'); + $I->waitForText('利用ポイント'); $I->see(number_format($customerPoint).' pt が利用可能です。'); $I->amGoingTo('利用ポイントを設定'); @@ -389,7 +388,7 @@ public function basicinfo_ポイント設定_有効(AcceptanceTester $I) $I->amGoingTo('注文完了 (ポイントが減算される)'); ShoppingConfirmPage::at($I)->注文する(); - $I->see('ご注文ありがとうございました'); + $I->waitForText('ご注文ありがとうございました'); $customerPoint -= $expected_point; $I->expect('管理画面・受注管理にて、利用ポイントが計算されていること'); @@ -398,6 +397,22 @@ public function basicinfo_ポイント設定_有効(AcceptanceTester $I) ->一覧_編集(1); $I->see($expected_discount, OrderEditPage::$ポイント値引き額); $I->seeInField(OrderEditPage::$利用ポイント, (string)$expected_point); + $I->see($expected_point - round(($point_conversion_rate * $expected_point) * ($point_rate / 100)), OrderEditPage::$加算ポイント); + + $I->expect('ポイント付与率を変更しても, 注文のポイントに影響無いことを確認します'); + // see https://github.com/EC-CUBE/ec-cube/pull/5571 + ShopSettingPage::go($I) + ->入力_ポイント付与率(1) + ->登録(); + OrderManagePage::go($I) + ->検索($customer->getEmail()) + ->一覧_編集(1); + OrderEditPage::at($I) + ->受注情報登録(); + + $I->see($expected_discount, OrderEditPage::$ポイント値引き額); + $I->seeInField(OrderEditPage::$利用ポイント, (string)$expected_point); + $I->see($expected_point - round(($point_conversion_rate * $expected_point) * ($point_rate / 100)), OrderEditPage::$加算ポイント); $I->expect('管理画面・会員管理にて、ポイントが減少していること'); CustomerManagePage::go($I) @@ -413,7 +428,7 @@ public function basicinfo_ポイント設定_有効(AcceptanceTester $I) $I->expect('マイベージにて、ポイントが減少していること'); MyPage::go($I); - $I->see('現在の所持ポイントは '.number_format($customerPoint).'pt です。'); + $I->waitForText('現在の所持ポイントは '.number_format($customerPoint).'pt です。'); } public function basicinfo_ポイント設定_無効(AcceptanceTester $I) @@ -444,7 +459,7 @@ public function basicinfo_ポイント設定_無効(AcceptanceTester $I) $I->amGoingTo('注文完了'); ShoppingConfirmPage::at($I)->注文する(); - $I->see('ご注文ありがとうございました'); + $I->waitForText('ご注文ありがとうございました'); $I->expect('マイベージにて、加算ポイントが表示されていないこと'); MyPage::go($I)->注文履歴詳細(0); @@ -482,7 +497,7 @@ public function basicinfo_特定商取引法の設定(AcceptanceTester $I) ->入力(TradelawSettingPage::$その他06, 'その他06名称', 'その他06説明') ->登録(); - $I->see('保存しました', TradelawSettingPage::$登録完了メッセージ); + $I->waitForText('保存しました', 10, TradelawSettingPage::$登録完了メッセージ); $I->expect('「特定商取引法に基づく表記」ページを表示して変更が反映されていることを確認します'); @@ -528,19 +543,19 @@ public function basicinfo_特定商取引法の設定(AcceptanceTester $I) ->カートに入れる(1) ->カートへ進む(); CartPage::go($I)->レジに進む(); - $I->see('引き渡し時期名称', ['css' => '#shopping-form div.ec-orderConfirm']); - $I->see('引き渡し時期説明', ['css' => '#shopping-form div.ec-orderConfirm']); - $I->see('返品交換について名称', ['css' => '#shopping-form div.ec-orderConfirm']); - $I->see('返品交換について説明', ['css' => '#shopping-form div.ec-orderConfirm']); + $I->waitForText('引き渡し時期名称', 10, ['css' => '#shopping-form']); + $I->waitForText('引き渡し時期説明', 10, ['css' => '#shopping-form']); + $I->waitForText('返品交換について名称', 10, ['css' => '#shopping-form']); + $I->waitForText('返品交換について説明', 10, ['css' => '#shopping-form']); ShoppingPage::at($I)->確認する(); - $I->see('引き渡し時期名称', ['css' => '#shopping-form div.ec-orderConfirm']); - $I->see('引き渡し時期説明', ['css' => '#shopping-form div.ec-orderConfirm']); - $I->see('返品交換について名称', ['css' => '#shopping-form div.ec-orderConfirm']); - $I->see('返品交換について説明', ['css' => '#shopping-form div.ec-orderConfirm']); + $I->waitForText('引き渡し時期名称', 10, ['css' => '#shopping-form']); + $I->waitForText('引き渡し時期説明', 10, ['css' => '#shopping-form']); + $I->waitForText('返品交換について名称', 10, ['css' => '#shopping-form']); + $I->waitForText('返品交換について説明', 10, ['css' => '#shopping-form']); ShoppingConfirmPage::at($I)->注文する(); - $I->see('ご注文ありがとうございました'); + $I->waitForText('ご注文ありがとうございました'); } public function basicinfo_会員規約(AcceptanceTester $I) @@ -557,7 +572,7 @@ public function basicinfo_会員規約(AcceptanceTester $I) ->入力_内容($after) ->登録(); - $I->see('保存しました', PageEditPage::$登録完了メッセージ); + $I->waitForText('保存しました', 10, PageEditPage::$登録完了メッセージ); $I->amOnPage('/help/agreement'); $I->see($test_text); @@ -570,7 +585,7 @@ public function basicinfo_支払方法一覧(AcceptanceTester $I) // 表示 $PaymentManagePage = PaymentManagePage::go($I); - $I->see('郵便振替', $PaymentManagePage->一覧_支払方法(1)); + $I->waitForText('郵便振替', 10, $PaymentManagePage->一覧_支払方法(1)); } /** @@ -585,15 +600,15 @@ public function basicinfo_支払方法入れ替え(AcceptanceTester $I) $PaymentManagePage = PaymentManagePage::go($I); // 入れ替え - $I->see('郵便振替', $PaymentManagePage->一覧_支払方法(1)); + $I->waitForText('郵便振替', 10, $PaymentManagePage->一覧_支払方法(1)); $PaymentManagePage->一覧_下に(1); $PaymentManagePage = PaymentManagePage::go($I); - $I->see('郵便振替', $PaymentManagePage->一覧_支払方法(2)); + $I->waitForText('郵便振替', 10, $PaymentManagePage->一覧_支払方法(2)); $PaymentManagePage->一覧_上に(2); $PaymentManagePage = PaymentManagePage::go($I); - $I->see('郵便振替', $PaymentManagePage->一覧_支払方法(1)); + $I->waitForText('郵便振替', 10, $PaymentManagePage->一覧_支払方法(1)); } /** @@ -617,10 +632,10 @@ public function basicinfo_支払方法登録(AcceptanceTester $I) ->登録(); PaymentEditPage::at($I); - $I->see('保存しました', PaymentEditPage::$登録完了メッセージ); + $I->waitForText('保存しました', 10, PaymentEditPage::$登録完了メッセージ); $PaymentManagePage = PaymentManagePage::go($I); - $I->see('payment method1', $PaymentManagePage->一覧_支払方法(1)); + $I->waitForText('payment method1', 10, $PaymentManagePage->一覧_支払方法(1)); } /** @@ -642,10 +657,10 @@ public function basicinfo_支払方法編集(AcceptanceTester $I) ->登録(); PaymentEditPage::at($I); - $I->see('保存しました', PaymentEditPage::$登録完了メッセージ); + $I->waitForText('保存しました', 10, PaymentEditPage::$登録完了メッセージ); $PaymentManagePage = PaymentManagePage::go($I); - $I->see('payment method2', $PaymentManagePage->一覧_支払方法(1)); + $I->waitForText('payment method2', 10, $PaymentManagePage->一覧_支払方法(1)); } /** @@ -662,12 +677,13 @@ public function basicinfo_支払方法削除(AcceptanceTester $I) PaymentEditPage::at($I) ->入力_支払方法('dummy payment') ->登録(); + $I->waitForText('保存しました', 10, PaymentEditPage::$登録完了メッセージ); // 削除 $page = PaymentManagePage::go($I); $before = $page->一覧_件数取得(); $page->一覧_削除(1); - $I->see('削除しました', PaymentEditPage::$登録完了メッセージ); + $I->waitForText('削除しました', 10, PaymentEditPage::$登録完了メッセージ); $after = PaymentManagePage::go($I)->一覧_件数取得(); $I->assertEquals($before - 1, $after); @@ -680,7 +696,7 @@ public function basicinfo_配送方法一覧(AcceptanceTester $I) // 表示 $DeliveryManagePage = DeliveryManagePage::go($I); - $I->see('サンプル宅配', $DeliveryManagePage->一覧_名称(2)); + $I->waitForText('サンプル宅配', 10, $DeliveryManagePage->一覧_名称(2)); } /** @@ -696,18 +712,21 @@ public function basicinfo_配送方法登録(AcceptanceTester $I) ->新規登録(); // 登録 - DeliveryEditPage::at($I) + $Page = DeliveryEditPage::at($I) ->入力_配送業者名('配送業者名') ->入力_名称('名称') ->入力_支払方法選択(['1', '4']) - ->入力_全国一律送料('100') - ->登録(); + ->入力_お届け時間('') + ->入力_全国一律送料('100'); + + $I->assertSame('', $I->grabTextFrom('a.display-label')); + $Page->登録(); DeliveryEditPage::at($I); - $I->see('保存しました', DeliveryEditPage::$登録完了メッセージ); + $I->waitForText('保存しました', 10, DeliveryEditPage::$登録完了メッセージ); $DeliveryManagePage = DeliveryManagePage::go($I); - $I->see('配送業者名', $DeliveryManagePage->一覧_名称(2)); + $I->waitForText('配送業者名', 10, $DeliveryManagePage->一覧_名称(2)); } /** @@ -728,10 +747,10 @@ public function basicinfo_配送方法編集(AcceptanceTester $I) ->登録(); DeliveryEditPage::at($I); - $I->see('保存しました', DeliveryEditPage::$登録完了メッセージ); + $I->waitForText('保存しました', 10, DeliveryEditPage::$登録完了メッセージ); $DeliveryManagePage = DeliveryManagePage::go($I); - $I->see('配送業者名1', $DeliveryManagePage->一覧_名称(2)); + $I->waitForText('配送業者名1', 10, $DeliveryManagePage->一覧_名称(2)); } /** @@ -746,7 +765,7 @@ public function basicinfo_配送方法削除(AcceptanceTester $I) $page = DeliveryManagePage::go($I); $before = $page->一覧_件数取得(); $page->一覧_削除(2); - $I->see('削除しました', DeliveryManagePage::$登録完了メッセージ); + $I->waitForText('削除しました', 10, DeliveryManagePage::$登録完了メッセージ); $after = DeliveryManagePage::go($I)->一覧_件数取得(); $I->assertEquals($before - 1, $after); @@ -761,16 +780,16 @@ public function basicinfo_配送方法一覧順序変更(AcceptanceTester $I) $I->wantTo('EA0706-UC02-T01 配送方法一覧順序変更'); $DeliveryManagePage = DeliveryManagePage::go($I); - $I->see('サンプル宅配 / サンプル宅配', $DeliveryManagePage->一覧_名称(2)); - $I->see('サンプル業者 / サンプル業者', $DeliveryManagePage->一覧_名称(3)); + $I->waitForText('サンプル宅配 / サンプル宅配', 10, $DeliveryManagePage->一覧_名称(2)); + $I->waitForText('サンプル業者 / サンプル業者', 10, $DeliveryManagePage->一覧_名称(3)); $DeliveryManagePage->一覧_下に(2); - $I->see('サンプル業者 / サンプル業者', $DeliveryManagePage->一覧_名称(2)); - $I->see('サンプル宅配 / サンプル宅配', $DeliveryManagePage->一覧_名称(3)); + $I->waitForText('サンプル業者 / サンプル業者', 10, $DeliveryManagePage->一覧_名称(2)); + $I->waitForText('サンプル宅配 / サンプル宅配', 10, $DeliveryManagePage->一覧_名称(3)); $DeliveryManagePage->一覧_上に(3); - $I->see('サンプル宅配 / サンプル宅配', $DeliveryManagePage->一覧_名称(2)); - $I->see('サンプル業者 / サンプル業者', $DeliveryManagePage->一覧_名称(3)); + $I->waitForText('サンプル宅配 / サンプル宅配', 10, $DeliveryManagePage->一覧_名称(2)); + $I->waitForText('サンプル業者 / サンプル業者', 10, $DeliveryManagePage->一覧_名称(3)); } /** @@ -785,15 +804,15 @@ public function basicinfo_税率設定(AcceptanceTester $I) $TaxManagePage = TaxManagePage::go($I); // 一覧 - $I->see('税率設定', '#page_admin_setting_shop_tax > div.c-container > div.c-contentsArea > div.c-contentsArea__cols > div > div > div > div.card-header'); - $I->see('10%', '#ex-tax_rule-1 > td.align-middle.text-end'); + $I->waitForText('税率設定', 10, '#page_admin_setting_shop_tax > div.c-container > div.c-contentsArea > div.c-contentsArea__cols > div > div > div > div.card-header'); + $I->waitForText('10%', 10, '#ex-tax_rule-1 > td.align-middle.text-end'); // 登録 $TaxManagePage ->入力_消費税率(1, '8') ->入力_適用日(date('Y'), date('m'), date('d')) ->共通税率設定_登録(); - $I->see('8%', $TaxManagePage->一覧_税率(2)); + $I->waitForText('8%', 10, $TaxManagePage->一覧_税率(2)); // edit $TaxManagePage @@ -801,12 +820,12 @@ public function basicinfo_税率設定(AcceptanceTester $I) ->入力_消費税率(2, 12) ->決定(2); - $I->see('保存しました', TaxManagePage::$登録完了メッセージ); - $I->see('12%', $TaxManagePage->一覧_税率(2)); + $I->waitForText('保存しました', 10, TaxManagePage::$登録完了メッセージ); + $I->waitForText('12%', 10, $TaxManagePage->一覧_税率(2)); // 削除 $TaxManagePage->一覧_削除(2); - $I->see('削除しました', TaxManagePage::$登録完了メッセージ); + $I->waitForText('削除しました', 10, TaxManagePage::$登録完了メッセージ); } /** @@ -824,7 +843,7 @@ public function basicinfo_メール設定(AcceptanceTester $I) ->入力_件名($title) ->登録(); - $I->see('保存しました', MailSettingsPage::$登録完了メッセージ); + $I->waitForText('保存しました', 10, MailSettingsPage::$登録完了メッセージ); // 結果確認 $I->resetEmails(); @@ -850,7 +869,7 @@ public function basicinfo_CSV出力項目(AcceptanceTester $I) ->削除() ->設定(); - $I->see('保存しました', CsvSettingsPage::$登録完了メッセージ); + $I->waitForText('保存しました', 10, CsvSettingsPage::$登録完了メッセージ); // CSVダウンロード OrderManagePage::go($I)->受注CSVダウンロード実行(); @@ -876,7 +895,7 @@ public function basicinfo_受注対応状況設定(AcceptanceTester $I) ->入力_色('#19406C') ->登録(); - $I->see('保存しました', OrderStatusSettingsPage::$登録完了メッセージ); + $I->waitForText('保存しました', 10, OrderStatusSettingsPage::$登録完了メッセージ); OrderStatusSettingsPage::go($I); $I->seeInField(OrderStatusSettingsPage::$名称_マイページ, '注文受付'); @@ -903,7 +922,7 @@ public function basicinfo_定休日カレンダー_表示(AcceptanceTester $I) ->入力_タイトル($title) ->入力_日付($date->format('Y-m-d')) ->登録(); - $I->see('保存しました', CalendarSettingsPage::$登録完了メッセージ); + $I->waitForText('保存しました', 10, CalendarSettingsPage::$登録完了メッセージ); } // レイアウト設定でカレンダーブロックを登録 @@ -911,11 +930,11 @@ public function basicinfo_定休日カレンダー_表示(AcceptanceTester $I) LayoutEditPage::at($I) ->ブロックを移動('カレンダー', '#position_7') ->登録(); - $I->see('保存しました', LayoutEditPage::$登録完了メッセージ); + $I->waitForText('保存しました', 10, LayoutEditPage::$登録完了メッセージ); // フロント画面でカレンダーが表示されていることを確認 $I->amOnPage('/'); - $I->see('カレンダー', ['class' => 'ec-layoutRole__mainBottom']); + $I->waitForText('カレンダー', 10, ['class' => 'ec-layoutRole__mainBottom']); // フロント画面で定休日にクラス .ec-calendar__holiday が設定されていることを確認 $I->seeElement(['xpath' => '//table[@id="this-month-table"]//td[contains(@class,"ec-calendar__holiday")][text()="'.$holidays['定休日1']->format('j').'"]']); @@ -947,7 +966,7 @@ public function basicinfo_認証キー設定(AcceptanceTester $I) $I->expect('認証キーの登録ボタンをクリックします。'); $I->click(['css' => '.btn-ec-conversion']); - $I->see('保存しました'); + $I->waitForText('保存しました'); } public function basicinfo_税設定_適格請求書発行事業者登録番号(AcceptanceTester $I) @@ -962,7 +981,7 @@ public function basicinfo_税設定_適格請求書発行事業者登録番号(A ->入力_適格請求書発行事業者登録番号('T1234567890123') ->登録(); - $I->see('保存しました', ShopSettingPage::$登録完了メッセージ); + $I->waitForText('保存しました', 10, ShopSettingPage::$登録完了メッセージ); $I->expect('納品書を出力します'); $findOrders = Fixtures::get('findOrders'); // Closure @@ -970,7 +989,7 @@ public function basicinfo_税設定_適格請求書発行事業者登録番号(A return !in_array($Order->getOrderStatus()->getId(), [OrderStatus::PROCESSING, OrderStatus::PENDING]); }); $OrderListPage = OrderManagePage::go($I)->検索(); - $I->see('検索結果:'.count($TargetOrders).'件が該当しました', OrderManagePage::$検索結果_メッセージ); + $I->waitForText('検索結果:'.count($TargetOrders).'件が該当しました', 10, OrderManagePage::$検索結果_メッセージ); $OrderListPage->すべてチェック(); $OrderListPage->要素をクリック('#form_bulk #bulkExportPdf'); @@ -979,7 +998,7 @@ public function basicinfo_税設定_適格請求書発行事業者登録番号(A $I->switchToWindow('newwin'); // Check redirect to form pdf information - $I->see('納品書出力受注管理', OrderManagePage::$タイトル要素); + $I->waitForText('納品書出力受注管理', 10, OrderManagePage::$タイトル要素); $I->click('.btn-ec-conversion'); $I->wait(2); diff --git a/codeception/acceptance/EA08SysteminfoCest.php b/codeception/acceptance/EA08SysteminfoCest.php index 5c6528d7e3f..1b85f43bdac 100644 --- a/codeception/acceptance/EA08SysteminfoCest.php +++ b/codeception/acceptance/EA08SysteminfoCest.php @@ -16,6 +16,8 @@ use Page\Admin\LoginHistoryPage; use Page\Admin\MasterDataManagePage; use Page\Admin\SystemMemberEditPage; +use Page\Admin\SystemSecurityPage; +use Page\Front\TopPage; /** * @group admin @@ -288,7 +290,7 @@ public function systeminfo_セキュリティ管理表示(AcceptanceTester $I) $config = Fixtures::get('config'); $I->amOnPage('/'.$config['eccube_admin_route'].'/setting/system/security'); $I->see('セキュリティ管理システム設定', '#page_admin_setting_system_security .c-pageTitle__titles'); - $I->see('セキュリティ設定', '#page_admin_setting_system_security > div.c-container > div.c-contentsArea > form > div > div.c-contentsArea__primaryCol > div > div > div.card-header > div > div.col-8 > span'); + $I->see('管理画面URL設定', '#page_admin_setting_system_security > div.c-container > div.c-contentsArea > form > div > div.c-contentsArea__primaryCol > div > div > div.card-header > div > div.col-8 > span'); } public function systeminfo_セキュリティ管理ディレクトリ名(AcceptanceTester $I) @@ -366,6 +368,7 @@ public function systeminfo_権限管理登録(AcceptanceTester $I) 'authority' => '店舗オーナー', ]) ->登録(); + $I->waitForText('保存しました'); $I->wantTo('EA0805-UC01-T01 権限管理 - 登録'); @@ -374,7 +377,7 @@ public function systeminfo_権限管理登録(AcceptanceTester $I) ->行追加() ->入力(1, ['1' => '店舗オーナー'], '/setting') ->登録(); - $I->see('保存しました', AuthorityManagePage::$完了メッセージ); + $I->waitForText('保存しました', 10, AuthorityManagePage::$完了メッセージ); $I->wantTo('EA0805-UC01-T02 権限管理 - 登録'); @@ -468,13 +471,14 @@ public function systeminfo_ログ表示(AcceptanceTester $I) $I->amOnPage('/'.$config['eccube_admin_route'].'/setting/system/log'); $I->see('ログ表示システム設定', '.c-pageTitle'); - $option = $I->grabTextFrom('#admin_system_log_files option:nth-child(1)'); + $option = $I->grabTextFrom(['css' => '#admin_system_log_files option:nth-child(1)']); $I->selectOption('#admin_system_log_files', $option); $I->fillField(['id' => 'admin_system_log_line_max'], '10'); $I->click(['css' => '#form1 button']); - $logs = $I->grabTextFrom('.c-contentsArea textarea'); + $I->waitForElement(['css' => '.c-contentsArea textarea']); + $logs = $I->grabTextFrom(['css' => '.c-contentsArea textarea']); $I->assertLessThanOrEqual(10, count(explode("\n", $logs)), 'ログ件数を確認'); $I->seeInField(['id' => 'admin_system_log_line_max'], '10'); } @@ -608,12 +612,51 @@ public function systeminfo_テンプレート管理_ファイルアップロー $I->see('この機能は管理者によって制限されています。'); } + public function systeminfo_セキュリティ管理フロントIP制限_許可リスト(AcceptanceTester $I) + { + $I->wantTo('EA0804-UC01-T06 セキュリティ管理 - フロントIP制限(許可リスト)'); + + // 許可リストに該当するので、閲覧できるパターン + SystemSecurityPage::go($I)->入力_front許可リスト('127.0.0.1') + ->登録(); + TopPage::go($I)->at('彩のジェラート"CUBE"をご堪能ください'); + + // 許可リストに該当しないので、閲覧できないパターン + SystemSecurityPage::go($I)->入力_front許可リスト('192.168.100.1') + ->登録(); + TopPage::go($I)->at('アクセスできません。'); + + //後片付け(後続処理がエラーにならないため) + SystemSecurityPage::go($I)->入力_front許可リスト('') + ->登録(); + + } + + public function systeminfo_セキュリティ管理フロントIP制限_拒否リスト(AcceptanceTester $I) + { + $I->wantTo('EA0804-UC01-T07 セキュリティ管理 - フロントIP制限(拒否リスト)'); + + // 拒否リストに該当するため閲覧できないパターン + SystemSecurityPage::go($I)->入力_front拒否リスト('127.0.0.1') + ->登録(); + TopPage::go($I)->at('アクセスできません'); + + // 拒否リストに該当しないため閲覧可能なパターン + SystemSecurityPage::go($I)->入力_front拒否リスト('192.168.100.1') + ->登録(); + TopPage::go($I)->at('彩のジェラート"CUBE"をご堪能ください'); + + //後片付け(後続処理がエラーにならないため) + SystemSecurityPage::go($I)->入力_front拒否リスト('') + ->登録(); + } + /** * ATTENTION 後続のテストが失敗するため、最後に実行する必要がある */ public function systeminfo_セキュリティ管理IP制限_許可リスト(AcceptanceTester $I) { - $I->wantTo('EA0804-UC01-T03 セキュリティ管理 - IP制限(許可リスト)'); + $I->wantTo('EA0804-UC01-T03 セキュリティ管理 - 管理画面IP制限(許可リスト)'); $findPlugins = Fixtures::get('findPlugins'); $Plugins = $findPlugins(); @@ -632,4 +675,5 @@ public function systeminfo_セキュリティ管理IP制限_許可リスト(Acce $I->amOnPage('/'.$config['eccube_admin_route']); $I->see('アクセスできません。', '//*[@id="error-page"]//h3'); } + } diff --git a/codeception/acceptance/EA09ShippingCest.php b/codeception/acceptance/EA09ShippingCest.php index d4716ddc966..2988784b44a 100644 --- a/codeception/acceptance/EA09ShippingCest.php +++ b/codeception/acceptance/EA09ShippingCest.php @@ -145,9 +145,8 @@ public function shippingお届け先追加(AcceptanceTester $I) ->入力_番地_ビル名('address 2', 1) ->出荷情報登録(); - $I->see('保存しました', ShippingEditPage::$登録完了メッセージ); + $I->waitForText('保存しました', null, ShippingEditPage::$登録完了メッセージ); - $I->wait(10); // 出荷済みに変更 $ShippingRegisterPage ->出荷完了にする() diff --git a/codeception/acceptance/EA10PluginCest.php b/codeception/acceptance/EA10PluginCest.php index dd29bb2e335..34eb0d428be 100644 --- a/codeception/acceptance/EA10PluginCest.php +++ b/codeception/acceptance/EA10PluginCest.php @@ -58,7 +58,7 @@ public function test_install_enable_disable_remove_store(AcceptanceTester $I) public function test_install_enable_disable_remove_local(AcceptanceTester $I) { - Horizon_Store::start($I) + Horizon_Local::start($I) ->インストール() ->有効化() ->無効化() diff --git a/codeception/acceptance/EF04CustomerCest.php b/codeception/acceptance/EF04CustomerCest.php index 6c5c1fd3acf..cfe7cb26861 100644 --- a/codeception/acceptance/EF04CustomerCest.php +++ b/codeception/acceptance/EF04CustomerCest.php @@ -12,6 +12,8 @@ */ use Codeception\Util\Fixtures; +use Page\Front\CartPage; +use Page\Front\ProductDetailPage; /** * @group front @@ -212,6 +214,177 @@ public function customer_会員登録戻る(AcceptanceTester $I) $I->see('新規会員登録', '.ec-pageHeader h1'); } + public function customer_会員登録正常_ログイン(AcceptanceTester $I) + { + $I->wantTo('EF0401-UC01-T06 会員登録 ログイン'); + $I->amOnPage('/entry'); + $faker = Fixtures::get('faker'); + $BaseInfo = Fixtures::get('baseinfo'); + $new_email = microtime(true).'.'.$faker->safeEmail; + // 会員情報入力フォームに、会員情報を入力する + // 「同意する」ボタンを押下する + $form = [ + 'entry[name][name01]' => '姓', + 'entry[name][name02]' => '名', + 'entry[kana][kana01]' => 'セイ', + 'entry[kana][kana02]' => 'メイ', + 'entry[postal_code]' => '530-0001', + 'entry[address][pref]' => ['value' => '27'], + 'entry[address][addr01]' => '大阪市北区', + 'entry[address][addr02]' => '梅田2-4-9 ブリーゼタワー13F', + 'entry[phone_number]' => '111-111-111', + 'entry[email][first]' => $new_email, + 'entry[email][second]' => $new_email, + 'entry[plain_password][first]' => 'password1234', + 'entry[plain_password][second]' => 'password1234', + 'entry[job]' => ['value' => '1'], + 'entry[user_policy_check]' => '1', + ]; + $findPluginByCode = Fixtures::get('findPluginByCode'); + $Plugin = $findPluginByCode('MailMagazine42'); + if ($Plugin) { + $I->amGoingTo('メルマガプラグインを発見したため、メルマガを購読します'); + $form['entry[mailmaga_flg]'] = '1'; + } + $I->submitForm(['css' => '.ec-layoutRole__main form'], $form, ['css' => 'button.ec-blockBtn--action']); + + // 入力した会員情報を確認する。 + $I->see('姓 名', '.ec-registerRole form .ec-borderedDefs dl:nth-child(1) dd'); + $I->see('111111111', '.ec-registerRole form .ec-borderedDefs dl:nth-child(5) dd'); + $I->see($new_email, '.ec-registerRole form .ec-borderedDefs dl:nth-child(6) dd'); + + $I->resetEmails(); + // 「会員登録をする」ボタンを押下する + $I->click('.ec-registerRole form button.ec-blockBtn--action'); + + $message = $I->lastMessage(); + $I->assertCount(2, $message->getRecipients(), 'Bcc で管理者にも送信するので宛先アドレスは2つ'); + $I->seeEmailCount(1); + foreach ([$new_email, $BaseInfo->getEmail01()] as $email) { + $I->seeInLastEmailSubjectTo($email, '会員登録のご確認'); + $I->seeInLastEmailTo($email, '姓 名 様'); + $I->seeInLastEmailTo($email, 'この度は会員登録依頼をいただきまして、有り難うございます。'); + } + + // 「トップページへ」ボタンを押下する + $I->click('a.ec-blockBtn--cancel'); + $I->see('新着情報', '.ec-secHeading__ja'); + + // アクティベートURL取得 + $activateUrl = $I->grabFromLastEmailTo($new_email, '@/entry/activate/(.*)@'); + $I->resetEmails(); + + // アクティベートURLからトップページへ + $I->amOnPage($activateUrl); + $I->see('新規会員登録(完了)', 'div.ec-pageHeader h1'); + + $message = $I->lastMessage(); + $I->assertCount(2, $message->getRecipients(), 'Bcc で管理者にも送信するので宛先アドレスは2つ'); + $I->seeEmailCount(1); + foreach ([$new_email, $BaseInfo->getEmail01()] as $email) { + $I->seeInLastEmailSubjectTo($email, '会員登録が完了しました。'); + $I->seeInLastEmailTo($email, '姓 名 様'); + $I->seeInLastEmailTo($email, '本会員登録が完了いたしました。'); + } + $I->click('div.ec-headerNaviRole__right > div.ec-headerNaviRole__nav > div > div:nth-child(3) > a'); // ヘッダーナビ ログインボタン + + $I->submitForm('#login_mypage', [ + 'login_email' => $new_email, + 'login_pass' => 'password1234', + ]); + $I->seeInCurrentUrl('/mypage'); + } + + public function customer_会員登録正常_カート(AcceptanceTester $I) + { + $I->wantTo('EF0401-UC01-T07 会員登録 カート'); + + // 商品詳細パーコレータ カートへ + ProductDetailPage::go($I, 2) + ->カートに入れる(1) + ->カートへ進む(); + $I->click(['css' => 'div.ec-cartRole__actions a.ec-blockBtn--action']); // レジに進む + $I->click('#shopping_login > div > div.ec-grid2 > div:nth-child(2) > div:nth-child(2) > a'); // 新規会員登録 + + $faker = Fixtures::get('faker'); + $BaseInfo = Fixtures::get('baseinfo'); + $new_email = microtime(true).'.'.$faker->safeEmail; + // 会員情報入力フォームに、会員情報を入力する + // 「同意する」ボタンを押下する + $form = [ + 'entry[name][name01]' => '姓', + 'entry[name][name02]' => '名', + 'entry[kana][kana01]' => 'セイ', + 'entry[kana][kana02]' => 'メイ', + 'entry[postal_code]' => '530-0001', + 'entry[address][pref]' => ['value' => '27'], + 'entry[address][addr01]' => '大阪市北区', + 'entry[address][addr02]' => '梅田2-4-9 ブリーゼタワー13F', + 'entry[phone_number]' => '111-111-111', + 'entry[email][first]' => $new_email, + 'entry[email][second]' => $new_email, + 'entry[plain_password][first]' => 'password1234', + 'entry[plain_password][second]' => 'password1234', + 'entry[job]' => ['value' => '1'], + 'entry[user_policy_check]' => '1', + ]; + $findPluginByCode = Fixtures::get('findPluginByCode'); + $Plugin = $findPluginByCode('MailMagazine42'); + if ($Plugin) { + $I->amGoingTo('メルマガプラグインを発見したため、メルマガを購読します'); + $form['entry[mailmaga_flg]'] = '1'; + } + $I->submitForm(['css' => '.ec-layoutRole__main form'], $form, ['css' => 'button.ec-blockBtn--action']); + + // 入力した会員情報を確認する。 + $I->see('姓 名', '.ec-registerRole form .ec-borderedDefs dl:nth-child(1) dd'); + $I->see('111111111', '.ec-registerRole form .ec-borderedDefs dl:nth-child(5) dd'); + $I->see($new_email, '.ec-registerRole form .ec-borderedDefs dl:nth-child(6) dd'); + + $I->resetEmails(); + // 「会員登録をする」ボタンを押下する + $I->click('.ec-registerRole form button.ec-blockBtn--action'); + + $message = $I->lastMessage(); + $I->assertCount(2, $message->getRecipients(), 'Bcc で管理者にも送信するので宛先アドレスは2つ'); + $I->seeEmailCount(1); + foreach ([$new_email, $BaseInfo->getEmail01()] as $email) { + $I->seeInLastEmailSubjectTo($email, '会員登録のご確認'); + $I->seeInLastEmailTo($email, '姓 名 様'); + $I->seeInLastEmailTo($email, 'この度は会員登録依頼をいただきまして、有り難うございます。'); + } + + // 「トップページへ」ボタンを押下する + $I->click('a.ec-blockBtn--cancel'); + $I->see('新着情報', '.ec-secHeading__ja'); + + // アクティベートURL取得 + $activateUrl = $I->grabFromLastEmailTo($new_email, '@/entry/activate/(.*)@'); + $I->resetEmails(); + + // アクティベートURLからトップページへ + $I->amOnPage($activateUrl); + $I->see('新規会員登録(完了)', 'div.ec-pageHeader h1'); + + $message = $I->lastMessage(); + $I->assertCount(2, $message->getRecipients(), 'Bcc で管理者にも送信するので宛先アドレスは2つ'); + $I->seeEmailCount(1); + foreach ([$new_email, $BaseInfo->getEmail01()] as $email) { + $I->seeInLastEmailSubjectTo($email, '会員登録が完了しました。'); + $I->seeInLastEmailTo($email, '姓 名 様'); + $I->seeInLastEmailTo($email, '本会員登録が完了いたしました。'); + } + $I->click('div.ec-registerCompleteRole a.ec-blockBtn--action'); // カートへ進む + CartPage::go($I) + ->レジに進む(); + + $I->submitForm('#shopping_login', [ + 'login_email' => $new_email, + 'login_pass' => 'password1234', + ]); + $I->seeInCurrentUrl('/shopping'); + } + /** * @group vaddy */ diff --git a/codeception/acceptance/EF06OtherCest.php b/codeception/acceptance/EF06OtherCest.php index 9758cc823a4..b57c0e38285 100644 --- a/codeception/acceptance/EF06OtherCest.php +++ b/codeception/acceptance/EF06OtherCest.php @@ -49,7 +49,7 @@ public function other_ログイン異常1(AcceptanceTester $I) 'login_pass' => 'password', ]); - $I->see('ログインできませんでした。', 'div.ec-login p.ec-errorMessage'); + $I->waitForText('ログインできませんでした。', 10, 'div.ec-login p.ec-errorMessage'); } public function other_ログイン異常2(AcceptanceTester $I) @@ -66,7 +66,7 @@ public function other_ログイン異常2(AcceptanceTester $I) 'login_pass' => 'password', ]); - $I->see('ログインできませんでした。', 'div.ec-login p.ec-errorMessage'); + $I->waitForText('ログインできませんでした。', 10, 'div.ec-login p.ec-errorMessage'); } /** @@ -82,7 +82,7 @@ public function other_パスワード再発行(AcceptanceTester $I) $I->click('#login_mypage a:first-child'); // TOPページ>ログイン>パスワード再発行 - $I->see('パスワードの再発行', 'div.ec-pageHeader h1'); + $I->waitForText('パスワードの再発行', 10, 'div.ec-pageHeader h1'); // メールアドレスを入力する // 「次のページへ」ボタンを押下する @@ -92,7 +92,7 @@ public function other_パスワード再発行(AcceptanceTester $I) $I->submitForm('#form1', [ 'login_email' => $customer->getEmail(), ]); - $I->see('パスワードの再発行(メール送信)', 'div.ec-pageHeader h1'); + $I->waitForText('パスワードの再発行(メール送信)', 10, 'div.ec-pageHeader h1'); $I->seeEmailCount(1); $I->seeInLastEmailSubjectTo($customer->getEmail(), 'パスワード変更のご確認'); @@ -103,9 +103,9 @@ public function other_パスワード再発行(AcceptanceTester $I) $I->resetEmails(); $I->amOnPage($url); - $I->see('パスワード再発行(再設定)', 'div.ec-pageHeader h1'); + $I->waitForText('パスワード再発行(再設定)', 10, 'div.ec-pageHeader h1'); - $password = substr(str_shuffle('1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'), 0, 20); + $password = substr(str_shuffle('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'), 0, 16).'1234'; // メルアド・新パスワード設定 $I->submitForm('#form1', [ @@ -114,7 +114,7 @@ public function other_パスワード再発行(AcceptanceTester $I) 'password[second]' => $password, ]); - $I->see('ログイン', 'div.ec-pageHeader h1'); + $I->waitForText('ログイン', 10, 'div.ec-pageHeader h1'); $I->loginAsMember($customer->getEmail(), $password); } @@ -141,7 +141,7 @@ public function other_当サイトについて(AcceptanceTester $I) $I->wantTo('EF0604-UC01-T01 当サイトについて'); $I->amOnPage('/help/about'); - $I->see('当サイトについて', 'div.ec-pageHeader h1'); + $I->waitForText('当サイトについて', 10, 'div.ec-pageHeader h1'); $baseinfo = Fixtures::get('baseinfo'); $I->see($baseinfo->getShopName(), '#help_about_box__shop_name'); } @@ -154,8 +154,8 @@ public function other_プライバシーポリシー(AcceptanceTester $I) $I->wantTo('EF0605-UC01-T01 プライバシーポリシー'); $I->amOnPage('/help/privacy'); - $I->see('プライバシーポリシー', 'div.ec-pageHeader > h1'); - $I->see('個人情報保護の重要性に鑑み、「個人情報の保護に関する法律」及び本プライバシーポリシーを遵守し、お客さまのプライバシー保護に努めます。', 'main > div > div:nth-child(2) > div > p'); + $I->waitForText('プライバシーポリシー', 10, 'div.ec-pageHeader > h1'); + $I->waitForText('個人情報保護の重要性に鑑み、「個人情報の保護に関する法律」及び本プライバシーポリシーを遵守し、お客さまのプライバシー保護に努めます。', 10, 'main > div > div:nth-child(2) > div > p'); } /** @@ -166,7 +166,7 @@ public function other_特定商取引法に基づく表記(AcceptanceTester $I) $I->wantTo('EF0606-UC01-T01 特定商取引法に基づく表記'); $I->amOnPage('/help/tradelaw'); - $I->see('特定商取引法に基づく表記', 'div.ec-pageHeader h1'); + $I->waitForText('特定商取引法に基づく表記', 10, 'div.ec-pageHeader h1'); } /** @@ -181,7 +181,7 @@ public function other_お問い合わせ1(AcceptanceTester $I) $new_email = microtime(true).'.'.$faker->safeEmail; $BaseInfo = Fixtures::get('baseinfo'); - $I->see('お問い合わせ', 'div.ec-pageHeader h1'); + $I->waitForText('お問い合わせ', 10, 'div.ec-pageHeader h1'); $I->fillField(['id' => 'contact_name_name01'], '姓'); $I->fillField(['id' => 'contact_name_name02'], '名'); @@ -196,11 +196,11 @@ public function other_お問い合わせ1(AcceptanceTester $I) $I->fillField(['id' => 'contact_contents'], 'お問い合わせ内容の送信'); $I->click('div.ec-RegisterRole__actions button.ec-blockBtn--action'); - $I->see('お問い合わせ', 'div.ec-pageHeader h1'); + $I->waitForText('お問い合わせ', 10, 'div.ec-pageHeader h1'); $I->click('div.ec-contactConfirmRole div.ec-RegisterRole__actions button.ec-blockBtn--action'); // 完了ページ - $I->see('お問い合わせ(完了)', 'div.ec-pageHeader h1'); + $I->waitForText('お問い合わせ(完了)', 10, 'div.ec-pageHeader h1'); // メールチェック $message = $I->lastMessage(); @@ -222,7 +222,7 @@ public function other_お問い合わせ2(AcceptanceTester $I) $new_email = microtime(true).'.'.$faker->safeEmail; $BaseInfo = Fixtures::get('baseinfo'); - $I->see('お問い合わせ', 'div.ec-pageHeader h1'); + $I->waitForText('お問い合わせ', 10, 'div.ec-pageHeader h1'); $I->fillField(['id' => 'contact_name_name01'], '姓'); $I->fillField(['id' => 'contact_name_name02'], '名'); @@ -238,11 +238,11 @@ public function other_お問い合わせ2(AcceptanceTester $I) $I->click('div.ec-RegisterRole__actions button.ec-blockBtn--action'); // 確認画面 → 戻る - $I->see('お問い合わせ', 'div.ec-pageHeader h1'); + $I->waitForText('お問い合わせ', 10, 'div.ec-pageHeader h1'); $I->click('div.ec-contactConfirmRole div.ec-RegisterRole__actions button.ec-blockBtn--cancel'); // 入力画面 → フォーム入力内容の再チェック - $I->see('お問い合わせ', 'div.ec-pageHeader h1'); + $I->waitForText('お問い合わせ', 10, 'div.ec-pageHeader h1'); $I->seeInFormFields('.ec-contactRole form', [ 'contact[name][name01]' => '姓', 'contact[name][name02]' => '名', @@ -255,11 +255,11 @@ public function other_お問い合わせ2(AcceptanceTester $I) $I->click('div.ec-RegisterRole__actions button.ec-blockBtn--action'); // 確認画面 → 送信 - $I->see('お問い合わせ', 'div.ec-pageHeader h1'); + $I->waitForText('お問い合わせ', 10, 'div.ec-pageHeader h1'); $I->click('div.ec-contactConfirmRole div.ec-RegisterRole__actions button.ec-blockBtn--action'); // 完了ページ - $I->see('お問い合わせ(完了)', 'div.ec-pageHeader h1'); + $I->waitForText('お問い合わせ(完了)', 10, 'div.ec-pageHeader h1'); // メールチェック $message = $I->lastMessage(); @@ -277,17 +277,18 @@ public function other_お問い合わせ_異常(AcceptanceTester $I) $I->wantTo('EF0607-UC01-T03 お問い合わせ 異常'); $I->amOnPage('/contact'); - $I->see('お問い合わせ', 'div.ec-pageHeader h1'); + $I->waitForText('お問い合わせ', 10, 'div.ec-pageHeader h1'); $I->click('div.ec-RegisterRole__actions button.ec-blockBtn--action'); - $I->see('入力されていません', '.ec-contactRole .error .ec-errorMessage:last-child'); + $I->waitForText('入力されていません', 10, '.ec-contactRole .error .ec-errorMessage:last-child'); } public function other_サイトマップ(AcceptanceTester $I) { $I->wantTo('EF0608-UC01-T01_サイトマップ'); $I->amOnPage('/sitemap.xml'); + $I->wait(10); $I->see('/sitemap_page.xml'); $I->see('/sitemap_category.xml'); @@ -304,24 +305,28 @@ public function other_サイトマップ_ページ(AcceptanceTester $I) // 表示確認 $I->amOnPage($sitemapUrl); + $I->wait(10); $I->see($topPageLoc); // メタ設定 → robots noindex → 非表示になる PageManagePage::go($I)->ページ編集('TOPページ'); PageEditPage::at($I)->入力_メタ_robot('noindex')->登録(); $I->amOnPage($sitemapUrl); + $I->wait(10); $I->dontSee($topPageLoc); // メタ設定 → robots none → 非表示になる PageManagePage::go($I)->ページ編集('TOPページ'); PageEditPage::at($I)->入力_メタ_robot('none')->登録(); $I->amOnPage($sitemapUrl); + $I->wait(10); $I->dontSee($topPageLoc); // メタ設定 → robots 解除 → 表示される PageManagePage::go($I)->ページ編集('TOPページ'); PageEditPage::at($I)->入力_メタ_robot('')->登録(); $I->amOnPage($sitemapUrl); + $I->wait(10); $I->see($topPageLoc); } @@ -329,6 +334,7 @@ public function other_サイトマップ_カテゴリ(AcceptanceTester $I) { $I->wantTo('EF0608-UC01-T03_サイトマップ(カテゴリ)'); $I->amOnPage('/sitemap_category.xml'); + $I->wait(10); $I->see('/products/list?category_id=1'); } @@ -359,7 +365,7 @@ public function other_サイトマップ_商品(AcceptanceTester $I) // 在庫なし商品の準備 $I->amOnPage($productEditUrl); ProductEditPage::at($I)->入力_在庫数(0)->登録(); - $I->see('保存しました', ProductEditPage::$登録結果メッセージ); + $I->waitForText('保存しました', 10, ProductEditPage::$登録結果メッセージ); // 公開・在庫切れ商品を表示しない $I->amOnPage($productEditUrl); diff --git a/codeception/acceptance/EF08InvoiceCest.php b/codeception/acceptance/EF08InvoiceCest.php index b3c135e474d..b9083ea4122 100644 --- a/codeception/acceptance/EF08InvoiceCest.php +++ b/codeception/acceptance/EF08InvoiceCest.php @@ -55,6 +55,7 @@ public function _before(AcceptanceTester $I) PaymentEditPage::at($I) ->入力_手数料('2187') ->登録(); + $I->expect('商品登録をします'); ProductEditPage::go($I) ->入力_商品名('チョコ') @@ -62,6 +63,7 @@ public function _before(AcceptanceTester $I) ->入力_カテゴリ(1) ->入力_公開() ->登録(); + $I->waitForText('保存しました'); ProductEditPage::go($I) ->入力_商品名('バニラ') @@ -69,6 +71,7 @@ public function _before(AcceptanceTester $I) ->入力_カテゴリ(1) ->入力_公開() ->登録(); + $I->waitForText('保存しました'); ProductEditPage::go($I) ->入力_商品名('抹茶') @@ -77,6 +80,7 @@ public function _before(AcceptanceTester $I) ->入力_税率(8) ->入力_公開() ->登録(); + $I->waitForText('保存しました'); } public function invoice_商品購入_税額確認(AcceptanceTester $I) @@ -115,6 +119,7 @@ public function invoice_商品購入_税額確認(AcceptanceTester $I) $I->scrollTo('#shopping-form div.ec-orderRole__summary div.ec-totalBox button'); $I->wait(2); ShoppingPage::at($I)->確認する(); + $I->waitForText('ご注文内容のご確認', 10, 'div.ec-pageHeader h1'); $I->expect('注文内容を確認します'); $I->see('¥787,000', ['xpath' => ShoppingPage::$小計]); diff --git a/codeception/acceptance/EF09ThrottlingCest.php b/codeception/acceptance/EF09ThrottlingCest.php new file mode 100644 index 00000000000..ab15b9dd4ce --- /dev/null +++ b/codeception/acceptance/EF09ThrottlingCest.php @@ -0,0 +1,382 @@ + + */ +class EF09ThrottlingCest +{ + public function フロント画面ログイン_IP(AcceptanceTester $I) + { + $I->wantTo('EF0901-UC01-T01_フロント画面ログイン(IP)'); + + $faker = Fixtures::get('faker'); + + for ($i = 0; $i < 25; $i++) { + $I->expect('ログインに失敗します:'.$i); + $email = microtime(true).'.'.$faker->safeEmail; + $this->failLogin($I, $email, 'password'); + $I->see('ログインできませんでした。', 'p.ec-errorMessage'); + $I->see('入力内容に誤りがないかご確認ください。', 'p.ec-errorMessage'); + } + + $I->expect('試行回数上限を超過します'); + $email = microtime(true).'.'.$faker->safeEmail; + $this->failLogin($I, $email, 'password'); + $I->see('ログイン試行回数が多すぎます。30分後に再度お試しください。', 'p.ec-errorMessage'); + } + + public function フロント画面ログイン_会員(AcceptanceTester $I) + { + $I->wantTo('EF0901-UC01-T02_フロント画面ログイン(会員)'); + + $faker = Fixtures::get('faker'); + $email = microtime(true).'.'.$faker->safeEmail; + + for ($i = 0; $i < 5; $i++) { + $I->expect('ログインに失敗します:'.$i); + $this->failLogin($I, $email, 'password'); + $I->see('ログインできませんでした。', 'p.ec-errorMessage'); + $I->see('入力内容に誤りがないかご確認ください。', 'p.ec-errorMessage'); + } + + $I->expect('試行回数上限を超過します'); + $this->failLogin($I, $email, 'password'); + $I->see('ログイン試行回数が多すぎます。30分後に再度お試しください。', 'p.ec-errorMessage'); + } + + private function failLogin(AcceptanceTester $I, $email, $password) + { + $I->amOnPage('/mypage/login'); + $I->submitForm('#login_mypage', [ + 'login_email' => $email, + 'login_pass' => $password, + ]); + } + + public function 管理画面ログイン_IP(AcceptanceTester $I) + { + $I->wantTo('EF0901-UC01-T03_管理画面ログイン(IP)'); + + $faker = Fixtures::get('faker'); + + for ($i = 0; $i < 25; $i++) { + $I->expect('ログインに失敗します:'.$i); + $email = microtime(true).'.'.$faker->safeEmail; + $this->failLoginAsAdmin($I, $email, 'password'); + $I->see('ログインできませんでした。', 'span.text-danger'); + $I->see('入力内容に誤りがないかご確認ください。', 'span.text-danger'); + } + + $I->expect('試行回数上限を超過します'); + $email = microtime(true).'.'.$faker->safeEmail; + $this->failLoginAsAdmin($I, $email, 'password'); + $I->see('ログイン試行回数が多すぎます。30分後に再度お試しください。', 'span.text-danger'); + } + + public function 管理画面ログイン_会員(AcceptanceTester $I) + { + $I->wantTo('EF0901-UC01-T04_管理画面ログイン(会員)'); + + $faker = Fixtures::get('faker'); + $email = microtime(true).'.'.$faker->safeEmail; + + for ($i = 0; $i < 5; $i++) { + $I->expect('ログインに失敗します:'.$i); + $this->failLoginAsAdmin($I, $email, 'password'); + $I->see('ログインできませんでした。', 'span.text-danger'); + $I->see('入力内容に誤りがないかご確認ください。', 'span.text-danger'); + } + + $I->expect('試行回数上限を超過します'); + $this->failLoginAsAdmin($I, $email, 'password'); + $I->see('ログイン試行回数が多すぎます。30分後に再度お試しください。', 'span.text-danger'); + } + + private function failLoginAsAdmin(AcceptanceTester $I, $loginId, $password) + { + $I->goToAdminPage(); + + $I->submitForm('#form1', [ + 'login_id' => $loginId, + 'password' => $password, + ]); + } + + public function 会員登録(AcceptanceTester $I) + { + $I->wantTo('EF0901-UC01-T05_会員登録'); + + for ($i = 0; $i < 5; $i++) { + $I->expect('会員登録を行います:'.$i); + \Page\Front\EntryPage::go($I) + ->新規会員登録(); + $I->see('現在、仮会員の状態です。', 'p.ec-reportDescription'); + } + + $I->expect('試行回数上限を超過します'); + \Page\Front\EntryPage::go($I) + ->新規会員登録(); + $I->see('試行回数の上限を超過しました。しばらくお待ちいただき、再度お試しください。', 'p.ec-reportDescription'); + } + + public function 問い合わせ(AcceptanceTester $I) + { + $I->wantTo('EF0901-UC01-T06_問い合わせ'); + + for ($i = 0; $i < 5; $i++) { + $I->expect('問い合わせを行います:'.$i); + $this->contact($I); + $this->contactConfirm($I); + $this->contactComplete($I); + $I->see('お問い合わせ(完了)', 'div.ec-pageHeader h1'); + } + + $I->expect('試行回数上限を超過します'); + $this->contact($I); + $this->contactConfirm($I); + $this->contactComplete($I); + $I->see('試行回数の上限を超過しました。しばらくお待ちいただき、再度お試しください。', 'p.ec-reportDescription'); + } + + private function contact(AcceptanceTester $I) + { + $I->amOnPage('/contact'); + } + + private function contactConfirm(AcceptanceTester $I) + { + $faker = Fixtures::get('faker'); + $email = microtime(true).'.'.$faker->safeEmail; + + $I->fillField(['id' => 'contact_name_name01'], '姓'); + $I->fillField(['id' => 'contact_name_name02'], '名'); + $I->fillField(['id' => 'contact_kana_kana01'], 'セイ'); + $I->fillField(['id' => 'contact_kana_kana02'], 'メイ'); + $I->fillField(['id' => 'contact_postal_code'], '530-0001'); + $I->selectOption(['id' => 'contact_address_pref'], ['value' => '27']); + $I->fillField(['id' => 'contact_address_addr01'], '大阪市北区'); + $I->fillField(['id' => 'contact_address_addr02'], '梅田2-4-9 ブリーゼタワー13F'); + $I->fillField(['id' => 'contact_phone_number'], '111-111-111'); + $I->fillField(['id' => 'contact_email'], $email); + $I->fillField(['id' => 'contact_contents'], 'お問い合わせ内容の送信'); + $I->click('div.ec-RegisterRole__actions button.ec-blockBtn--action'); + } + + private function contactComplete(AcceptanceTester $I) + { + $I->click('div.ec-contactConfirmRole div.ec-RegisterRole__actions button.ec-blockBtn--action'); + } + + public function パスワード再発行(AcceptanceTester $I) + { + $I->wantTo('EF0901-UC01-T07_パスワード再発行'); + + $I->logoutAsMember(); + + for ($i = 0; $i < 5; $i++) { + $I->expect('パスワード再発行を行います:'.$i); + $I->amOnPage('/forgot'); + $I->fillField('login_email', 'test@example.com'); + $I->click('次へ'); + $I->see('パスワードの再発行(メール送信)', 'div.ec-pageHeader h1'); + } + + $I->expect('試行回数上限を超過します'); + $I->amOnPage('/forgot'); + $I->fillField('login_email', 'test@example.com'); + $I->click('次へ'); + $I->see('試行回数の上限を超過しました。しばらくお待ちいただき、再度お試しください。', 'p.ec-reportDescription'); + } + + public function 注文確認_非会員購入(AcceptanceTester $I) + { + $I->wantTo('EF0901-UC01-T08_注文確認_非会員購入'); + + $I->logoutAsMember(); + + for ($i = 0; $i < 25; $i++) { + $I->expect('非会員購入を行います:'.$i); + // カートへ進む + ProductDetailPage::go($I, 2)->カートに入れる(1)->カートへ進む(); + // レジに進む + CartPage::go($I)->レジに進む(); + // 非会員情報入力 + $ShoppingPage = ShoppingLoginPage::at($I)->ゲスト購入(); + $this->inputGuestInfo($ShoppingPage)->次へ(); + // 注文確認画面へ + ShoppingPage::at($I)->確認する(); + // 注文完了 + ShoppingConfirmPage::at($I)->注文する(); + $I->see('ご注文完了', 'div.ec-pageHeader h1'); + } + + $I->expect('試行回数上限を超過します'); + // カートへ進む + ProductDetailPage::go($I, 2)->カートに入れる(1)->カートへ進む(); + // レジに進む + CartPage::go($I)->レジに進む(); + // 非会員情報入力 + $ShoppingPage = ShoppingLoginPage::at($I)->ゲスト購入(); + $this->inputGuestInfo($ShoppingPage)->次へ(); + // 注文確認画面へ + ShoppingPage::at($I)->確認する(); + $I->see('試行回数の上限を超過しました。しばらくお待ちいただき、再度お試しください。', 'p.ec-reportDescription'); + } + + private function inputGuestInfo(ShoppingNonmemberPage $page) + { + $page + ->入力_姓('姓03') + ->入力_名('名03') + ->入力_セイ('セイ') + ->入力_メイ('メイ') + ->入力_郵便番号('530-0001') + ->入力_都道府県(['value' => '27']) + ->入力_市区町村名('大阪市北区') + ->入力_番地_ビル名('梅田2-4-9 ブリーゼタワー13F') + ->入力_電話番号('111-111-111') + ->入力_Eメール('test@example.com') + ->入力_Eメール確認('test@example.com'); + + return $page; + } + + public function 注文確認_会員購入(AcceptanceTester $I) + { + $I->wantTo('EF0901-UC01-T09_注文確認_会員購入'); + + $createCustomer = Fixtures::get('createCustomer'); + $customer = $createCustomer(); + $I->loginAsMember($customer->getEmail(), 'password'); + + for ($i = 0; $i < 10; $i++) { + $I->expect('会員購入を行います:'.$i); + // カートへ進む + ProductDetailPage::go($I, 2)->カートに入れる(1)->カートへ進む(); + // レジに進む + CartPage::go($I)->レジに進む(); + // 注文確認画面へ + ShoppingPage::at($I)->確認する(); + // 注文完了 + ShoppingConfirmPage::at($I)->注文する(); + $I->see('ご注文完了', 'div.ec-pageHeader h1'); + } + + $I->expect('試行回数上限を超過します'); + // カートへ進む + ProductDetailPage::go($I, 2)->カートに入れる(1)->カートへ進む(); + // レジに進む + CartPage::go($I)->レジに進む(); + // 注文確認画面へ + ShoppingPage::at($I)->確認する(); + $I->see('試行回数の上限を超過しました。しばらくお待ちいただき、再度お試しください。', 'p.ec-reportDescription'); + } + + /** + * checkoutでのスロットリングのテスト + * confirmでの制限に引っかかるため、confirmLimiterの上限値を変更してから実施してください。 + * + * @param AcceptanceTester $I + * @return void + */ + public function 注文完了_非会員購入(AcceptanceTester $I) + { + $I->wantTo('EF0901-UC01-T10_注文完了_非会員購入'); + + $I->logoutAsMember(); + + for ($i = 0; $i < 25; $i++) { + $I->expect('非会員購入を行います:'.$i); + // カートへ進む + ProductDetailPage::go($I, 2)->カートに入れる(1)->カートへ進む(); + // レジに進む + CartPage::go($I)->レジに進む(); + // 非会員情報入力 + $ShoppingPage = ShoppingLoginPage::at($I)->ゲスト購入(); + $this->inputGuestInfo($ShoppingPage)->次へ(); + // 注文確認画面へ + ShoppingPage::at($I)->確認する(); + // 注文完了 + ShoppingConfirmPage::at($I)->注文する(); + $I->see('ご注文完了', 'div.ec-pageHeader h1'); + } + + $I->expect('試行回数上限を超過します'); + // カートへ進む + ProductDetailPage::go($I, 2)->カートに入れる(1)->カートへ進む(); + // レジに進む + CartPage::go($I)->レジに進む(); + // 非会員情報入力 + $ShoppingPage = ShoppingLoginPage::at($I)->ゲスト購入(); + $this->inputGuestInfo($ShoppingPage)->次へ(); + // 注文確認画面へ + ShoppingPage::at($I)->確認する(); + // 注文完了 + ShoppingConfirmPage::at($I)->注文する(); + $I->see('購入処理で予期しないエラーが発生しました。恐れ入りますがお問い合わせページよりご連絡ください。', 'div.ec-cartRole__error'); + } + + /** + * checkoutでのスロットリングのテスト + * confirmでの制限に引っかかるため、confirmLimiterの上限値を変更してから実施してください。 + * + * @param AcceptanceTester $I + * @return void + */ + public function 注文完了_会員購入(AcceptanceTester $I) + { + $I->wantTo('EF0901-UC01-T11_注文完了_会員購入'); + + $createCustomer = Fixtures::get('createCustomer'); + $customer = $createCustomer(); + $I->loginAsMember($customer->getEmail(), 'password'); + + for ($i = 0; $i < 10; $i++) { + $I->expect('会員購入を行います:'.$i); + // カートへ進む + ProductDetailPage::go($I, 2)->カートに入れる(1)->カートへ進む(); + // レジに進む + CartPage::go($I)->レジに進む(); + // 注文確認画面へ + ShoppingPage::at($I)->確認する(); + // 注文完了 + ShoppingConfirmPage::at($I)->注文する(); + $I->see('ご注文完了', 'div.ec-pageHeader h1'); + } + + $I->expect('試行回数上限を超過します'); + // カートへ進む + ProductDetailPage::go($I, 2)->カートに入れる(1)->カートへ進む(); + // レジに進む + CartPage::go($I)->レジに進む(); + // 注文確認画面へ + ShoppingPage::at($I)->確認する(); + // 注文完了 + ShoppingConfirmPage::at($I)->注文する(); + $I->see('購入処理で予期しないエラーが発生しました。恐れ入りますがお問い合わせページよりご連絡ください。', 'div.ec-cartRole__error'); + } +} diff --git a/composer.json b/composer.json index 68729adf14e..ca8d8dcc670 100644 --- a/composer.json +++ b/composer.json @@ -13,12 +13,12 @@ "minimum-stability": "stable", "require": { "php": "^7.4 || ^8.0", + "ext-curl": "*", "ext-intl": "*", - "ext-mbstring": "*", "ext-json": "*", + "ext-mbstring": "*", "ext-openssl": "*", "ext-zip": "*", - "ext-curl": "*", "composer/ca-bundle": "^1.1", "composer/composer": "^2.0", "doctrine/annotations": "^1.6", @@ -54,6 +54,7 @@ "sensio/framework-extra-bundle": "^6.2", "setasign/fpdi": "^2.2", "skorp/detect-incompatible-samesite-useragents": "^1.0", + "softcreatr/jsonpath": "0.7.5", "symfony/asset": "^5.4", "symfony/cache": "^5.4", "symfony/config": "^5.4", @@ -80,6 +81,7 @@ "symfony/monolog-bridge": "^5.4", "symfony/monolog-bundle": "^3.1", "symfony/options-resolver": "^5.4", + "symfony/password-hasher": "^5.4", "symfony/process": "^5.4", "symfony/property-access": "^5.4", "symfony/proxy-manager-bridge": "^5.4", diff --git a/composer.lock b/composer.lock index 16d8980f0d1..3a602ea2f7a 100644 --- a/composer.lock +++ b/composer.lock @@ -4,20 +4,20 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "e5ebf89a1ea0293f450372ce0a1f4735", + "content-hash": "b05fb2f10279b2e65fbb66f5e802c8cb", "packages": [ { "name": "composer/ca-bundle", - "version": "1.3.3", + "version": "1.3.4", "source": { "type": "git", "url": "https://github.com/composer/ca-bundle.git", - "reference": "30897edbfb15e784fe55587b4f73ceefd3c4d98c" + "reference": "69098eca243998b53eed7a48d82dedd28b447cd5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/ca-bundle/zipball/30897edbfb15e784fe55587b4f73ceefd3c4d98c", - "reference": "30897edbfb15e784fe55587b4f73ceefd3c4d98c", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/69098eca243998b53eed7a48d82dedd28b447cd5", + "reference": "69098eca243998b53eed7a48d82dedd28b447cd5", "shasum": "" }, "require": { @@ -64,7 +64,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/ca-bundle/issues", - "source": "https://github.com/composer/ca-bundle/tree/1.3.3" + "source": "https://github.com/composer/ca-bundle/tree/1.3.4" }, "funding": [ { @@ -80,7 +80,7 @@ "type": "tidelift" } ], - "time": "2022-07-20T07:14:26+00:00" + "time": "2022-10-12T12:08:29+00:00" }, { "name": "composer/class-map-generator", @@ -157,23 +157,23 @@ }, { "name": "composer/composer", - "version": "2.4.1", + "version": "2.5.1", "source": { "type": "git", "url": "https://github.com/composer/composer.git", - "reference": "777d542e3af65f8e7a66a4d98ce7a697da339414" + "reference": "923278ad13e1621946eb76ab2882655d2cc396a4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/composer/zipball/777d542e3af65f8e7a66a4d98ce7a697da339414", - "reference": "777d542e3af65f8e7a66a4d98ce7a697da339414", + "url": "https://api.github.com/repos/composer/composer/zipball/923278ad13e1621946eb76ab2882655d2cc396a4", + "reference": "923278ad13e1621946eb76ab2882655d2cc396a4", "shasum": "" }, "require": { "composer/ca-bundle": "^1.0", "composer/class-map-generator": "^1.0", "composer/metadata-minifier": "^1.0", - "composer/pcre": "^2 || ^3", + "composer/pcre": "^2.1 || ^3.1", "composer/semver": "^3.0", "composer/spdx-licenses": "^1.5.7", "composer/xdebug-handler": "^2.0.2 || ^3.0.3", @@ -189,14 +189,15 @@ "symfony/finder": "^5.4 || ^6.0", "symfony/polyfill-php73": "^1.24", "symfony/polyfill-php80": "^1.24", + "symfony/polyfill-php81": "^1.24", "symfony/process": "^5.4 || ^6.0" }, "require-dev": { - "phpstan/phpstan": "^1.4.1", + "phpstan/phpstan": "^1.9.3", "phpstan/phpstan-deprecation-rules": "^1", "phpstan/phpstan-phpunit": "^1.0", "phpstan/phpstan-strict-rules": "^1", - "phpstan/phpstan-symfony": "^1.1", + "phpstan/phpstan-symfony": "^1.2.10", "symfony/phpunit-bridge": "^6.0" }, "suggest": { @@ -210,7 +211,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.4-dev" + "dev-main": "2.5-dev" }, "phpstan": { "includes": [ @@ -249,7 +250,7 @@ "support": { "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/composer/issues", - "source": "https://github.com/composer/composer/tree/2.4.1" + "source": "https://github.com/composer/composer/tree/2.5.1" }, "funding": [ { @@ -265,7 +266,7 @@ "type": "tidelift" } ], - "time": "2022-08-20T09:44:50+00:00" + "time": "2022-12-22T14:33:54+00:00" }, { "name": "composer/metadata-minifier", @@ -338,16 +339,16 @@ }, { "name": "composer/pcre", - "version": "3.0.0", + "version": "3.1.0", "source": { "type": "git", "url": "https://github.com/composer/pcre.git", - "reference": "e300eb6c535192decd27a85bc72a9290f0d6b3bd" + "reference": "4bff79ddd77851fe3cdd11616ed3f92841ba5bd2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/e300eb6c535192decd27a85bc72a9290f0d6b3bd", - "reference": "e300eb6c535192decd27a85bc72a9290f0d6b3bd", + "url": "https://api.github.com/repos/composer/pcre/zipball/4bff79ddd77851fe3cdd11616ed3f92841ba5bd2", + "reference": "4bff79ddd77851fe3cdd11616ed3f92841ba5bd2", "shasum": "" }, "require": { @@ -389,7 +390,7 @@ ], "support": { "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/3.0.0" + "source": "https://github.com/composer/pcre/tree/3.1.0" }, "funding": [ { @@ -405,7 +406,7 @@ "type": "tidelift" } ], - "time": "2022-02-25T20:21:48+00:00" + "time": "2022-11-17T09:50:14+00:00" }, { "name": "composer/semver", @@ -636,32 +637,35 @@ }, { "name": "doctrine/annotations", - "version": "1.13.3", + "version": "1.14.2", "source": { "type": "git", "url": "https://github.com/doctrine/annotations.git", - "reference": "648b0343343565c4a056bfc8392201385e8d89f0" + "reference": "ad785217c1e9555a7d6c6c8c9f406395a5e2882b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/648b0343343565c4a056bfc8392201385e8d89f0", - "reference": "648b0343343565c4a056bfc8392201385e8d89f0", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/ad785217c1e9555a7d6c6c8c9f406395a5e2882b", + "reference": "ad785217c1e9555a7d6c6c8c9f406395a5e2882b", "shasum": "" }, "require": { - "doctrine/lexer": "1.*", + "doctrine/lexer": "^1 || ^2", "ext-tokenizer": "*", "php": "^7.1 || ^8.0", "psr/cache": "^1 || ^2 || ^3" }, "require-dev": { "doctrine/cache": "^1.11 || ^2.0", - "doctrine/coding-standard": "^6.0 || ^8.1", - "phpstan/phpstan": "^1.4.10 || ^1.8.0", - "phpunit/phpunit": "^7.5 || ^8.0 || ^9.1.5", - "symfony/cache": "^4.4 || ^5.2", + "doctrine/coding-standard": "^9 || ^10", + "phpstan/phpstan": "~1.4.10 || ^1.8.0", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "symfony/cache": "^4.4 || ^5.4 || ^6", "vimeo/psalm": "^4.10" }, + "suggest": { + "php": "PHP 8.0 or higher comes with attributes, a native replacement for annotations" + }, "type": "library", "autoload": { "psr-4": { @@ -703,9 +707,9 @@ ], "support": { "issues": "https://github.com/doctrine/annotations/issues", - "source": "https://github.com/doctrine/annotations/tree/1.13.3" + "source": "https://github.com/doctrine/annotations/tree/1.14.2" }, - "time": "2022-07-02T10:48:51+00:00" + "time": "2022-12-15T06:48:22+00:00" }, { "name": "doctrine/cache", @@ -802,16 +806,16 @@ }, { "name": "doctrine/collections", - "version": "1.7.2", + "version": "1.8.0", "source": { "type": "git", "url": "https://github.com/doctrine/collections.git", - "reference": "3fe77330f5591108bbf1315da7377a7e704ed8a0" + "reference": "2b44dd4cbca8b5744327de78bafef5945c7e7b5e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/collections/zipball/3fe77330f5591108bbf1315da7377a7e704ed8a0", - "reference": "3fe77330f5591108bbf1315da7377a7e704ed8a0", + "url": "https://api.github.com/repos/doctrine/collections/zipball/2b44dd4cbca8b5744327de78bafef5945c7e7b5e", + "reference": "2b44dd4cbca8b5744327de78bafef5945c7e7b5e", "shasum": "" }, "require": { @@ -866,22 +870,22 @@ ], "support": { "issues": "https://github.com/doctrine/collections/issues", - "source": "https://github.com/doctrine/collections/tree/1.7.2" + "source": "https://github.com/doctrine/collections/tree/1.8.0" }, - "time": "2022-08-27T16:08:58+00:00" + "time": "2022-09-01T20:12:10+00:00" }, { "name": "doctrine/common", - "version": "3.4.0", + "version": "3.4.3", "source": { "type": "git", "url": "https://github.com/doctrine/common.git", - "reference": "e09556bbdf95b8420e649162b19ae9da2d1a80f3" + "reference": "8b5e5650391f851ed58910b3e3d48a71062eeced" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/common/zipball/e09556bbdf95b8420e649162b19ae9da2d1a80f3", - "reference": "e09556bbdf95b8420e649162b19ae9da2d1a80f3", + "url": "https://api.github.com/repos/doctrine/common/zipball/8b5e5650391f851ed58910b3e3d48a71062eeced", + "reference": "8b5e5650391f851ed58910b3e3d48a71062eeced", "shasum": "" }, "require": { @@ -889,13 +893,13 @@ "php": "^7.1 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^9.0", + "doctrine/coding-standard": "^9.0 || ^10.0", "doctrine/collections": "^1", "phpstan/phpstan": "^1.4.1", "phpstan/phpstan-phpunit": "^1", "phpunit/phpunit": "^7.5.20 || ^8.5 || ^9.0", "squizlabs/php_codesniffer": "^3.0", - "symfony/phpunit-bridge": "^4.0.5", + "symfony/phpunit-bridge": "^6.1", "vimeo/psalm": "^4.4" }, "type": "library", @@ -943,7 +947,7 @@ ], "support": { "issues": "https://github.com/doctrine/common/issues", - "source": "https://github.com/doctrine/common/tree/3.4.0" + "source": "https://github.com/doctrine/common/tree/3.4.3" }, "funding": [ { @@ -959,38 +963,38 @@ "type": "tidelift" } ], - "time": "2022-08-23T19:46:56+00:00" + "time": "2022-10-09T11:47:59+00:00" }, { "name": "doctrine/data-fixtures", - "version": "1.5.3", + "version": "1.6.3", "source": { "type": "git", "url": "https://github.com/doctrine/data-fixtures.git", - "reference": "ba37bfb776de763c5bf04a36d074cd5f5a083c42" + "reference": "c27821d038e64f1bfc852a94064d65d2a75ad01f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/data-fixtures/zipball/ba37bfb776de763c5bf04a36d074cd5f5a083c42", - "reference": "ba37bfb776de763c5bf04a36d074cd5f5a083c42", + "url": "https://api.github.com/repos/doctrine/data-fixtures/zipball/c27821d038e64f1bfc852a94064d65d2a75ad01f", + "reference": "c27821d038e64f1bfc852a94064d65d2a75ad01f", "shasum": "" }, "require": { - "doctrine/common": "^2.13|^3.0", "doctrine/persistence": "^1.3.3|^2.0|^3.0", "php": "^7.2 || ^8.0" }, "conflict": { "doctrine/dbal": "<2.13", + "doctrine/orm": "<2.12", "doctrine/phpcr-odm": "<1.3.0" }, "require-dev": { - "doctrine/coding-standard": "^9.0", + "doctrine/coding-standard": "^10.0", "doctrine/dbal": "^2.13 || ^3.0", + "doctrine/deprecations": "^1.0", "doctrine/mongodb-odm": "^1.3.0 || ^2.0.0", - "doctrine/orm": "^2.7.0", + "doctrine/orm": "^2.12", "ext-sqlite3": "*", - "jangregor/phpstan-prophecy": "^1", "phpstan/phpstan": "^1.5", "phpunit/phpunit": "^8.5 || ^9.5", "symfony/cache": "^5.0 || ^6.0", @@ -1025,7 +1029,7 @@ ], "support": { "issues": "https://github.com/doctrine/data-fixtures/issues", - "source": "https://github.com/doctrine/data-fixtures/tree/1.5.3" + "source": "https://github.com/doctrine/data-fixtures/tree/1.6.3" }, "funding": [ { @@ -1041,42 +1045,42 @@ "type": "tidelift" } ], - "time": "2022-04-19T10:01:44+00:00" + "time": "2023-01-07T15:10:22+00:00" }, { "name": "doctrine/dbal", - "version": "3.4.3", + "version": "3.5.2", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "a24b89d663d8f261199bc0a91c48016042ebda85" + "reference": "63e513cebbbaf96a6795e5c5ee34d205831bfc85" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/a24b89d663d8f261199bc0a91c48016042ebda85", - "reference": "a24b89d663d8f261199bc0a91c48016042ebda85", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/63e513cebbbaf96a6795e5c5ee34d205831bfc85", + "reference": "63e513cebbbaf96a6795e5c5ee34d205831bfc85", "shasum": "" }, "require": { "composer-runtime-api": "^2", "doctrine/cache": "^1.11|^2.0", "doctrine/deprecations": "^0.5.3|^1", - "doctrine/event-manager": "^1.0", + "doctrine/event-manager": "^1|^2", "php": "^7.4 || ^8.0", "psr/cache": "^1|^2|^3", "psr/log": "^1|^2|^3" }, "require-dev": { - "doctrine/coding-standard": "10.0.0", - "jetbrains/phpstorm-stubs": "2022.2", - "phpstan/phpstan": "1.8.2", - "phpstan/phpstan-strict-rules": "^1.3", - "phpunit/phpunit": "9.5.21", - "psalm/plugin-phpunit": "0.17.0", + "doctrine/coding-standard": "11.0.0", + "jetbrains/phpstorm-stubs": "2022.3", + "phpstan/phpstan": "1.9.2", + "phpstan/phpstan-strict-rules": "^1.4", + "phpunit/phpunit": "9.5.27", + "psalm/plugin-phpunit": "0.18.4", "squizlabs/php_codesniffer": "3.7.1", "symfony/cache": "^5.4|^6.0", "symfony/console": "^4.4|^5.4|^6.0", - "vimeo/psalm": "4.24.0" + "vimeo/psalm": "4.30.0" }, "suggest": { "symfony/console": "For helpful console commands such as SQL execution and import of files." @@ -1136,7 +1140,7 @@ ], "support": { "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/3.4.3" + "source": "https://github.com/doctrine/dbal/tree/3.5.2" }, "funding": [ { @@ -1152,7 +1156,7 @@ "type": "tidelift" } ], - "time": "2022-08-28T17:26:36+00:00" + "time": "2022-12-19T08:17:34+00:00" }, { "name": "doctrine/deprecations", @@ -1199,56 +1203,57 @@ }, { "name": "doctrine/doctrine-bundle", - "version": "2.7.0", + "version": "2.8.2", "source": { "type": "git", "url": "https://github.com/doctrine/DoctrineBundle.git", - "reference": "d2088fc50494e4e7441fecca54732245a613eeb6" + "reference": "251cd5aaea32bb92cdad4204840786b317dcdd4c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/d2088fc50494e4e7441fecca54732245a613eeb6", - "reference": "d2088fc50494e4e7441fecca54732245a613eeb6", + "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/251cd5aaea32bb92cdad4204840786b317dcdd4c", + "reference": "251cd5aaea32bb92cdad4204840786b317dcdd4c", "shasum": "" }, "require": { - "doctrine/annotations": "^1", "doctrine/cache": "^1.11 || ^2.0", - "doctrine/dbal": "^2.13.1|^3.3.2", - "doctrine/persistence": "^2.2|^3", + "doctrine/dbal": "^3.4.0", + "doctrine/persistence": "^2.2 || ^3", "doctrine/sql-formatter": "^1.0.1", - "php": "^7.1 || ^8.0", - "symfony/cache": "^4.3.3|^5.0|^6.0", - "symfony/config": "^4.4.3|^5.0|^6.0", - "symfony/console": "^3.4.30|^4.3.3|^5.0|^6.0", - "symfony/dependency-injection": "^4.4.18|^5.0|^6.0", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/doctrine-bridge": "^4.4.22|^5.2.7|^6.0", - "symfony/framework-bundle": "^3.4.30|^4.3.3|^5.0|^6.0", - "symfony/service-contracts": "^1.1.1|^2.0|^3" + "php": "^7.4 || ^8.0", + "symfony/cache": "^5.4 || ^6.0", + "symfony/config": "^5.4 || ^6.0", + "symfony/console": "^5.4 || ^6.0", + "symfony/dependency-injection": "^5.4 || ^6.0", + "symfony/deprecation-contracts": "^2.1 || ^3", + "symfony/doctrine-bridge": "^5.4.7 || ^6.0.7", + "symfony/framework-bundle": "^5.4 || ^6.0", + "symfony/service-contracts": "^1.1.1 || ^2.0 || ^3" }, "conflict": { - "doctrine/orm": "<2.10|>=3.0", - "twig/twig": "<1.34|>=2.0,<2.4" + "doctrine/annotations": ">=3.0", + "doctrine/orm": "<2.11 || >=3.0", + "twig/twig": "<1.34 || >=2.0,<2.4" }, "require-dev": { + "doctrine/annotations": "^1 || ^2", "doctrine/coding-standard": "^9.0", "doctrine/orm": "^2.11 || ^3.0", "friendsofphp/proxy-manager-lts": "^1.0", - "phpunit/phpunit": "^7.5 || ^8.0 || ^9.3 || ^10.0", - "psalm/plugin-phpunit": "^0.16.1", - "psalm/plugin-symfony": "^3", - "psr/log": "^1.1.4|^2.0|^3.0", - "symfony/phpunit-bridge": "^5.2|^6.0", - "symfony/property-info": "^4.3.3|^5.0|^6.0", - "symfony/proxy-manager-bridge": "^3.4|^4.3.3|^5.0|^6.0", - "symfony/security-bundle": "^4.4|^5.0|^6.0", - "symfony/twig-bridge": "^3.4.30|^4.3.3|^5.0|^6.0", - "symfony/validator": "^3.4.30|^4.3.3|^5.0|^6.0", - "symfony/web-profiler-bundle": "^3.4.30|^4.3.3|^5.0|^6.0", - "symfony/yaml": "^3.4.30|^4.3.3|^5.0|^6.0", - "twig/twig": "^1.34|^2.12|^3.0", - "vimeo/psalm": "^4.7" + "phpunit/phpunit": "^9.5.26 || ^10.0", + "psalm/plugin-phpunit": "^0.18.4", + "psalm/plugin-symfony": "^4", + "psr/log": "^1.1.4 || ^2.0 || ^3.0", + "symfony/phpunit-bridge": "^6.1", + "symfony/property-info": "^5.4 || ^6.0", + "symfony/proxy-manager-bridge": "^5.4 || ^6.0", + "symfony/security-bundle": "^5.4 || ^6.0", + "symfony/twig-bridge": "^5.4 || ^6.0", + "symfony/validator": "^5.4 || ^6.0", + "symfony/web-profiler-bundle": "^5.4 || ^6.0", + "symfony/yaml": "^5.4 || ^6.0", + "twig/twig": "^1.34 || ^2.12 || ^3.0", + "vimeo/psalm": "^4.30" }, "suggest": { "doctrine/orm": "The Doctrine ORM integration is optional in the bundle.", @@ -1293,7 +1298,7 @@ ], "support": { "issues": "https://github.com/doctrine/DoctrineBundle/issues", - "source": "https://github.com/doctrine/DoctrineBundle/tree/2.7.0" + "source": "https://github.com/doctrine/DoctrineBundle/tree/2.8.2" }, "funding": [ { @@ -1309,7 +1314,7 @@ "type": "tidelift" } ], - "time": "2022-06-10T10:55:26+00:00" + "time": "2023-01-06T11:42:10+00:00" }, { "name": "doctrine/doctrine-fixtures-bundle", @@ -1481,34 +1486,35 @@ }, { "name": "doctrine/event-manager", - "version": "1.1.2", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/doctrine/event-manager.git", - "reference": "eb2ecf80e3093e8f3c2769ac838e27d8ede8e683" + "reference": "95aa4cb529f1e96576f3fda9f5705ada4056a520" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/event-manager/zipball/eb2ecf80e3093e8f3c2769ac838e27d8ede8e683", - "reference": "eb2ecf80e3093e8f3c2769ac838e27d8ede8e683", + "url": "https://api.github.com/repos/doctrine/event-manager/zipball/95aa4cb529f1e96576f3fda9f5705ada4056a520", + "reference": "95aa4cb529f1e96576f3fda9f5705ada4056a520", "shasum": "" }, "require": { + "doctrine/deprecations": "^0.5.3 || ^1", "php": "^7.1 || ^8.0" }, "conflict": { "doctrine/common": "<2.9" }, "require-dev": { - "doctrine/coding-standard": "^9", - "phpstan/phpstan": "~1.4.10 || ^1.5.4", + "doctrine/coding-standard": "^9 || ^10", + "phpstan/phpstan": "~1.4.10 || ^1.8.8", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "vimeo/psalm": "^4.22" + "vimeo/psalm": "^4.24" }, "type": "library", "autoload": { "psr-4": { - "Doctrine\\Common\\": "lib/Doctrine/Common" + "Doctrine\\Common\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -1552,7 +1558,7 @@ ], "support": { "issues": "https://github.com/doctrine/event-manager/issues", - "source": "https://github.com/doctrine/event-manager/tree/1.1.2" + "source": "https://github.com/doctrine/event-manager/tree/1.2.0" }, "funding": [ { @@ -1568,32 +1574,32 @@ "type": "tidelift" } ], - "time": "2022-07-27T22:18:11+00:00" + "time": "2022-10-12T20:51:15+00:00" }, { "name": "doctrine/inflector", - "version": "2.0.4", + "version": "2.0.6", "source": { "type": "git", "url": "https://github.com/doctrine/inflector.git", - "reference": "8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89" + "reference": "d9d313a36c872fd6ee06d9a6cbcf713eaa40f024" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89", - "reference": "8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/d9d313a36c872fd6ee06d9a6cbcf713eaa40f024", + "reference": "d9d313a36c872fd6ee06d9a6cbcf713eaa40f024", "shasum": "" }, "require": { "php": "^7.2 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^8.2", - "phpstan/phpstan": "^0.12", - "phpstan/phpstan-phpunit": "^0.12", - "phpstan/phpstan-strict-rules": "^0.12", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0", - "vimeo/psalm": "^4.10" + "doctrine/coding-standard": "^10", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-phpunit": "^1.1", + "phpstan/phpstan-strict-rules": "^1.3", + "phpunit/phpunit": "^8.5 || ^9.5", + "vimeo/psalm": "^4.25" }, "type": "library", "autoload": { @@ -1643,7 +1649,7 @@ ], "support": { "issues": "https://github.com/doctrine/inflector/issues", - "source": "https://github.com/doctrine/inflector/tree/2.0.4" + "source": "https://github.com/doctrine/inflector/tree/2.0.6" }, "funding": [ { @@ -1659,34 +1665,34 @@ "type": "tidelift" } ], - "time": "2021-10-22T20:16:43+00:00" + "time": "2022-10-20T09:10:12+00:00" }, { "name": "doctrine/instantiator", - "version": "1.4.1", + "version": "1.5.0", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc" + "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/10dcfce151b967d20fde1b34ae6640712c3891bc", - "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/0a0fa9780f5d4e507415a065172d26a98d02047b", + "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b", "shasum": "" }, "require": { "php": "^7.1 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^9", + "doctrine/coding-standard": "^9 || ^11", "ext-pdo": "*", "ext-phar": "*", "phpbench/phpbench": "^0.16 || ^1", "phpstan/phpstan": "^1.4", "phpstan/phpstan-phpunit": "^1", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "vimeo/psalm": "^4.22" + "vimeo/psalm": "^4.30 || ^5.4" }, "type": "library", "autoload": { @@ -1713,7 +1719,7 @@ ], "support": { "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/1.4.1" + "source": "https://github.com/doctrine/instantiator/tree/1.5.0" }, "funding": [ { @@ -1729,7 +1735,7 @@ "type": "tidelift" } ], - "time": "2022-03-03T08:28:38+00:00" + "time": "2022-12-30T00:15:36+00:00" }, { "name": "doctrine/lexer", @@ -1918,51 +1924,52 @@ }, { "name": "doctrine/orm", - "version": "2.13.1", + "version": "2.14.0", "source": { "type": "git", "url": "https://github.com/doctrine/orm.git", - "reference": "35c44a56677adb3ce796138b6e4934ce93ec6811" + "reference": "f82485e651763fbd1b34879726f4d3b91c358bd9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/orm/zipball/35c44a56677adb3ce796138b6e4934ce93ec6811", - "reference": "35c44a56677adb3ce796138b6e4934ce93ec6811", + "url": "https://api.github.com/repos/doctrine/orm/zipball/f82485e651763fbd1b34879726f4d3b91c358bd9", + "reference": "f82485e651763fbd1b34879726f4d3b91c358bd9", "shasum": "" }, "require": { "composer-runtime-api": "^2", "doctrine/cache": "^1.12.1 || ^2.1.1", - "doctrine/collections": "^1.5", + "doctrine/collections": "^1.5 || ^2.0", "doctrine/common": "^3.0.3", "doctrine/dbal": "^2.13.1 || ^3.2", "doctrine/deprecations": "^0.5.3 || ^1", - "doctrine/event-manager": "^1.1", + "doctrine/event-manager": "^1.2 || ^2", "doctrine/inflector": "^1.4 || ^2.0", "doctrine/instantiator": "^1.3", - "doctrine/lexer": "^1.2.3", + "doctrine/lexer": "^1.2.3 || ^2", "doctrine/persistence": "^2.4 || ^3", "ext-ctype": "*", "php": "^7.1 || ^8.0", "psr/cache": "^1 || ^2 || ^3", - "symfony/console": "^3.0 || ^4.0 || ^5.0 || ^6.0", + "symfony/console": "^4.2 || ^5.0 || ^6.0", "symfony/polyfill-php72": "^1.23", "symfony/polyfill-php80": "^1.16" }, "conflict": { - "doctrine/annotations": "<1.13 || >= 2.0" + "doctrine/annotations": "<1.13 || >= 3.0" }, "require-dev": { - "doctrine/annotations": "^1.13", - "doctrine/coding-standard": "^9.0", + "doctrine/annotations": "^1.13 || ^2", + "doctrine/coding-standard": "^9.0.2 || ^11.0", "phpbench/phpbench": "^0.16.10 || ^1.0", - "phpstan/phpstan": "~1.4.10 || 1.8.2", + "phpstan/phpstan": "~1.4.10 || 1.9.4", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", "psr/log": "^1 || ^2 || ^3", "squizlabs/php_codesniffer": "3.7.1", "symfony/cache": "^4.4 || ^5.4 || ^6.0", + "symfony/var-exporter": "^4.4 || ^5.4 || ^6.2", "symfony/yaml": "^3.4 || ^4.0 || ^5.0 || ^6.0", - "vimeo/psalm": "4.26.0" + "vimeo/psalm": "4.30.0 || 5.3.0" }, "suggest": { "ext-dom": "Provides support for XSD validation for XML mapping files", @@ -2012,45 +2019,45 @@ ], "support": { "issues": "https://github.com/doctrine/orm/issues", - "source": "https://github.com/doctrine/orm/tree/2.13.1" + "source": "https://github.com/doctrine/orm/tree/2.14.0" }, - "time": "2022-08-08T09:00:16+00:00" + "time": "2022-12-19T21:51:58+00:00" }, { "name": "doctrine/persistence", - "version": "2.5.4", + "version": "2.5.6", "source": { "type": "git", "url": "https://github.com/doctrine/persistence.git", - "reference": "830c2ba42093e0e428eca37568ab36bd8008bc17" + "reference": "7729fc2a7e5efc8bbfa408a3b8adeb8f5b84f5d1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/persistence/zipball/830c2ba42093e0e428eca37568ab36bd8008bc17", - "reference": "830c2ba42093e0e428eca37568ab36bd8008bc17", + "url": "https://api.github.com/repos/doctrine/persistence/zipball/7729fc2a7e5efc8bbfa408a3b8adeb8f5b84f5d1", + "reference": "7729fc2a7e5efc8bbfa408a3b8adeb8f5b84f5d1", "shasum": "" }, "require": { "doctrine/cache": "^1.11 || ^2.0", "doctrine/collections": "^1.0", "doctrine/deprecations": "^0.5.3 || ^1", - "doctrine/event-manager": "^1.0", + "doctrine/event-manager": "^1 || ^2", "php": "^7.1 || ^8.0", "psr/cache": "^1.0 || ^2.0 || ^3.0" }, "conflict": { - "doctrine/annotations": "<1.0 || >=2.0", + "doctrine/annotations": "<1.0 || >=3.0", "doctrine/common": "<2.10" }, "require-dev": { "composer/package-versions-deprecated": "^1.11", - "doctrine/annotations": "^1.0", - "doctrine/coding-standard": "^9.0", + "doctrine/annotations": "^1 || ^2", + "doctrine/coding-standard": "^9 || ^11", "doctrine/common": "^3.0", - "phpstan/phpstan": "~1.4.10 || 1.5.0", + "phpstan/phpstan": "~1.4.10 || 1.9.4", "phpunit/phpunit": "^7.5.20 || ^8.5 || ^9.5", "symfony/cache": "^4.4 || ^5.4 || ^6.0", - "vimeo/psalm": "4.22.0" + "vimeo/psalm": "4.30.0 || 5.3.0" }, "type": "library", "autoload": { @@ -2100,7 +2107,7 @@ ], "support": { "issues": "https://github.com/doctrine/persistence/issues", - "source": "https://github.com/doctrine/persistence/tree/2.5.4" + "source": "https://github.com/doctrine/persistence/tree/2.5.6" }, "funding": [ { @@ -2116,7 +2123,7 @@ "type": "tidelift" } ], - "time": "2022-08-06T22:06:57+00:00" + "time": "2023-01-01T18:11:10+00:00" }, { "name": "doctrine/sql-formatter", @@ -2393,20 +2400,30 @@ }, { "name": "ezyang/htmlpurifier", - "version": "v4.14.0", + "version": "v4.16.0", "source": { "type": "git", "url": "https://github.com/ezyang/htmlpurifier.git", - "reference": "12ab42bd6e742c70c0a52f7b82477fcd44e64b75" + "reference": "523407fb06eb9e5f3d59889b3978d5bfe94299c8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/12ab42bd6e742c70c0a52f7b82477fcd44e64b75", - "reference": "12ab42bd6e742c70c0a52f7b82477fcd44e64b75", + "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/523407fb06eb9e5f3d59889b3978d5bfe94299c8", + "reference": "523407fb06eb9e5f3d59889b3978d5bfe94299c8", "shasum": "" }, "require": { - "php": ">=5.2" + "php": "~5.6.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0" + }, + "require-dev": { + "cerdic/css-tidy": "^1.7 || ^2.0", + "simpletest/simpletest": "dev-master" + }, + "suggest": { + "cerdic/css-tidy": "If you want to use the filter 'Filter.ExtractStyleBlocks'.", + "ext-bcmath": "Used for unit conversion and imagecrash protection", + "ext-iconv": "Converts text to and from non-UTF-8 encodings", + "ext-tidy": "Used for pretty-printing HTML" }, "type": "library", "autoload": { @@ -2438,22 +2455,22 @@ ], "support": { "issues": "https://github.com/ezyang/htmlpurifier/issues", - "source": "https://github.com/ezyang/htmlpurifier/tree/v4.14.0" + "source": "https://github.com/ezyang/htmlpurifier/tree/v4.16.0" }, - "time": "2021-12-25T01:21:49+00:00" + "time": "2022-09-18T07:06:19+00:00" }, { "name": "friendsofphp/php-cs-fixer", - "version": "v3.10.0", + "version": "v3.13.2", "source": { "type": "git", - "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git", - "reference": "76d7da666e66d83a1dc27a9d1c625c80cc4ac1fe" + "url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git", + "reference": "3952f08a81bd3b1b15e11c3de0b6bf037faa8496" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/76d7da666e66d83a1dc27a9d1c625c80cc4ac1fe", - "reference": "76d7da666e66d83a1dc27a9d1c625c80cc4ac1fe", + "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/3952f08a81bd3b1b15e11c3de0b6bf037faa8496", + "reference": "3952f08a81bd3b1b15e11c3de0b6bf037faa8496", "shasum": "" }, "require": { @@ -2477,7 +2494,7 @@ }, "require-dev": { "justinrainbow/json-schema": "^5.2", - "keradus/cli-executor": "^1.5", + "keradus/cli-executor": "^2.0", "mikey179/vfsstream": "^1.6.10", "php-coveralls/php-coveralls": "^2.5.2", "php-cs-fixer/accessible-object": "^1.1", @@ -2486,8 +2503,8 @@ "phpspec/prophecy": "^1.15", "phpspec/prophecy-phpunit": "^2.0", "phpunit/phpunit": "^9.5", - "phpunitgoodpractices/polyfill": "^1.5", - "phpunitgoodpractices/traits": "^1.9.1", + "phpunitgoodpractices/polyfill": "^1.6", + "phpunitgoodpractices/traits": "^1.9.2", "symfony/phpunit-bridge": "^6.0", "symfony/yaml": "^5.4 || ^6.0" }, @@ -2520,8 +2537,8 @@ ], "description": "A tool to automatically fix PHP code style", "support": { - "issues": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/issues", - "source": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/tree/v3.10.0" + "issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues", + "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.13.2" }, "funding": [ { @@ -2529,20 +2546,20 @@ "type": "github" } ], - "time": "2022-08-17T22:13:10+00:00" + "time": "2023-01-02T23:53:50+00:00" }, { "name": "friendsofphp/proxy-manager-lts", - "version": "v1.0.12", + "version": "v1.0.13", "source": { "type": "git", "url": "https://github.com/FriendsOfPHP/proxy-manager-lts.git", - "reference": "8419f0158715b30d4b99a5bd37c6a39671994ad7" + "reference": "88354616f4cf4f6620910fd035e282173ba453e8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FriendsOfPHP/proxy-manager-lts/zipball/8419f0158715b30d4b99a5bd37c6a39671994ad7", - "reference": "8419f0158715b30d4b99a5bd37c6a39671994ad7", + "url": "https://api.github.com/repos/FriendsOfPHP/proxy-manager-lts/zipball/88354616f4cf4f6620910fd035e282173ba453e8", + "reference": "88354616f4cf4f6620910fd035e282173ba453e8", "shasum": "" }, "require": { @@ -2599,7 +2616,7 @@ ], "support": { "issues": "https://github.com/FriendsOfPHP/proxy-manager-lts/issues", - "source": "https://github.com/FriendsOfPHP/proxy-manager-lts/tree/v1.0.12" + "source": "https://github.com/FriendsOfPHP/proxy-manager-lts/tree/v1.0.13" }, "funding": [ { @@ -2611,7 +2628,7 @@ "type": "tidelift" } ], - "time": "2022-05-05T09:31:05+00:00" + "time": "2022-10-17T19:48:16+00:00" }, { "name": "graham-campbell/result-type", @@ -2889,16 +2906,16 @@ }, { "name": "guzzlehttp/psr7", - "version": "2.4.1", + "version": "2.4.3", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "69568e4293f4fa993f3b0e51c9723e1e17c41379" + "reference": "67c26b443f348a51926030c83481b85718457d3d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/69568e4293f4fa993f3b0e51c9723e1e17c41379", - "reference": "69568e4293f4fa993f3b0e51c9723e1e17c41379", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/67c26b443f348a51926030c83481b85718457d3d", + "reference": "67c26b443f348a51926030c83481b85718457d3d", "shasum": "" }, "require": { @@ -2988,7 +3005,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.4.1" + "source": "https://github.com/guzzle/psr7/tree/2.4.3" }, "funding": [ { @@ -3004,7 +3021,7 @@ "type": "tidelift" } ], - "time": "2022-08-28T14:45:39+00:00" + "time": "2022-10-26T14:07:24+00:00" }, { "name": "justinrainbow/json-schema", @@ -3237,16 +3254,16 @@ }, { "name": "laminas/laminas-code", - "version": "4.6.0", + "version": "4.7.1", "source": { "type": "git", "url": "https://github.com/laminas/laminas-code.git", - "reference": "16ec7577ff315d53ac2e1b1f03a344d8fe680a6e" + "reference": "91aabc066d5620428120800c0eafc0411e441a62" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-code/zipball/16ec7577ff315d53ac2e1b1f03a344d8fe680a6e", - "reference": "16ec7577ff315d53ac2e1b1f03a344d8fe680a6e", + "url": "https://api.github.com/repos/laminas/laminas-code/zipball/91aabc066d5620428120800c0eafc0411e441a62", + "reference": "91aabc066d5620428120800c0eafc0411e441a62", "shasum": "" }, "require": { @@ -3299,20 +3316,20 @@ "type": "community_bridge" } ], - "time": "2022-07-28T22:46:52+00:00" + "time": "2022-11-21T01:32:31+00:00" }, { "name": "mobiledetect/mobiledetectlib", - "version": "2.8.39", + "version": "2.8.41", "source": { "type": "git", "url": "https://github.com/serbanghita/Mobile-Detect.git", - "reference": "0fd6753003fc870f6e229bae869cc1337c99bc45" + "reference": "fc9cccd4d3706d5a7537b562b59cc18f9e4c0cb1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/serbanghita/Mobile-Detect/zipball/0fd6753003fc870f6e229bae869cc1337c99bc45", - "reference": "0fd6753003fc870f6e229bae869cc1337c99bc45", + "url": "https://api.github.com/repos/serbanghita/Mobile-Detect/zipball/fc9cccd4d3706d5a7537b562b59cc18f9e4c0cb1", + "reference": "fc9cccd4d3706d5a7537b562b59cc18f9e4c0cb1", "shasum": "" }, "require": { @@ -3353,9 +3370,9 @@ ], "support": { "issues": "https://github.com/serbanghita/Mobile-Detect/issues", - "source": "https://github.com/serbanghita/Mobile-Detect/tree/2.8.39" + "source": "https://github.com/serbanghita/Mobile-Detect/tree/2.8.41" }, - "time": "2022-02-17T19:24:25+00:00" + "time": "2022-11-08T18:31:26+00:00" }, { "name": "monolog/monolog", @@ -3461,16 +3478,16 @@ }, { "name": "nesbot/carbon", - "version": "2.62.0", + "version": "2.65.0", "source": { "type": "git", "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "7507aec3d626797ce2123cf6c6556683be22b5f8" + "reference": "09acf64155c16dc6f580f36569ae89344e9734a3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/7507aec3d626797ce2123cf6c6556683be22b5f8", - "reference": "7507aec3d626797ce2123cf6c6556683be22b5f8", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/09acf64155c16dc6f580f36569ae89344e9734a3", + "reference": "09acf64155c16dc6f580f36569ae89344e9734a3", "shasum": "" }, "require": { @@ -3481,7 +3498,7 @@ "symfony/translation": "^3.4 || ^4.0 || ^5.0 || ^6.0" }, "require-dev": { - "doctrine/dbal": "^2.0 || ^3.0", + "doctrine/dbal": "^2.0 || ^3.1.4", "doctrine/orm": "^2.7", "friendsofphp/php-cs-fixer": "^3.0", "kylekatarnls/multi-tester": "^2.0", @@ -3559,20 +3576,20 @@ "type": "tidelift" } ], - "time": "2022-08-28T19:48:05+00:00" + "time": "2023-01-06T15:55:01+00:00" }, { "name": "nikic/php-parser", - "version": "v4.14.0", + "version": "v4.15.2", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "34bea19b6e03d8153165d8f30bba4c3be86184c1" + "reference": "f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/34bea19b6e03d8153165d8f30bba4c3be86184c1", - "reference": "34bea19b6e03d8153165d8f30bba4c3be86184c1", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc", + "reference": "f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc", "shasum": "" }, "require": { @@ -3613,9 +3630,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.14.0" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.2" }, - "time": "2022-05-31T20:59:12+00:00" + "time": "2022-11-12T15:38:23+00:00" }, { "name": "phpoption/phpoption", @@ -4531,16 +4548,16 @@ }, { "name": "sensio/framework-extra-bundle", - "version": "v6.2.7", + "version": "v6.2.9", "source": { "type": "git", "url": "https://github.com/sensiolabs/SensioFrameworkExtraBundle.git", - "reference": "b27b8d6a43c508db1ea0df6c87774dd49014913c" + "reference": "dcfac94d6bdcf95c126e8ccac2104917c7c8f135" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/b27b8d6a43c508db1ea0df6c87774dd49014913c", - "reference": "b27b8d6a43c508db1ea0df6c87774dd49014913c", + "url": "https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/dcfac94d6bdcf95c126e8ccac2104917c7c8f135", + "reference": "dcfac94d6bdcf95c126e8ccac2104917c7c8f135", "shasum": "" }, "require": { @@ -4603,9 +4620,10 @@ ], "support": { "issues": "https://github.com/sensiolabs/SensioFrameworkExtraBundle/issues", - "source": "https://github.com/sensiolabs/SensioFrameworkExtraBundle/tree/v6.2.7" + "source": "https://github.com/sensiolabs/SensioFrameworkExtraBundle/tree/v6.2.9" }, - "time": "2022-06-16T09:06:24+00:00" + "abandoned": "Symfony", + "time": "2022-11-01T17:17:13+00:00" }, { "name": "setasign/fpdi", @@ -4727,18 +4745,83 @@ }, "time": "2021-06-25T07:29:16+00:00" }, + { + "name": "softcreatr/jsonpath", + "version": "0.7.5", + "source": { + "type": "git", + "url": "https://github.com/SoftCreatR/JSONPath.git", + "reference": "008569bf80aa3584834f7890781576bc7b65afa7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/SoftCreatR/JSONPath/zipball/008569bf80aa3584834f7890781576bc7b65afa7", + "reference": "008569bf80aa3584834f7890781576bc7b65afa7", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": ">=7.1" + }, + "replace": { + "flow/jsonpath": "*" + }, + "require-dev": { + "phpunit/phpunit": ">=7.0", + "roave/security-advisories": "dev-master", + "squizlabs/php_codesniffer": "^3.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Flow\\JSONPath\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Stephen Frank", + "email": "stephen@flowsa.com", + "homepage": "https://prismaticbytes.com", + "role": "Developer" + }, + { + "name": "Sascha Greuel", + "email": "hello@1-2.dev", + "homepage": "http://1-2.dev", + "role": "Developer" + } + ], + "description": "JSONPath implementation for parsing, searching and flattening arrays", + "support": { + "email": "hello@1-2.dev", + "forum": "https://github.com/SoftCreatR/JSONPath/discussions", + "issues": "https://github.com/SoftCreatR/JSONPath/issues", + "source": "https://github.com/SoftCreatR/JSONPath" + }, + "funding": [ + { + "url": "https://github.com/softcreatr", + "type": "github" + } + ], + "time": "2021-06-02T22:15:26+00:00" + }, { "name": "symfony/asset", - "version": "v5.4.7", + "version": "v5.4.13", "source": { "type": "git", "url": "https://github.com/symfony/asset.git", - "reference": "4affdca3da5f380caa27a338269b36ac288b3981" + "reference": "9aa867206711cb6fcca51ef127ba52a018170be9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/asset/zipball/4affdca3da5f380caa27a338269b36ac288b3981", - "reference": "4affdca3da5f380caa27a338269b36ac288b3981", + "url": "https://api.github.com/repos/symfony/asset/zipball/9aa867206711cb6fcca51ef127ba52a018170be9", + "reference": "9aa867206711cb6fcca51ef127ba52a018170be9", "shasum": "" }, "require": { @@ -4783,7 +4866,7 @@ "description": "Manages URL generation and versioning of web assets such as CSS stylesheets, JavaScript files and image files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/asset/tree/v5.4.7" + "source": "https://github.com/symfony/asset/tree/v5.4.13" }, "funding": [ { @@ -4799,20 +4882,20 @@ "type": "tidelift" } ], - "time": "2022-03-18T16:00:30+00:00" + "time": "2022-08-31T08:17:19+00:00" }, { "name": "symfony/cache", - "version": "v5.4.11", + "version": "v5.4.18", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "5a0fff46df349f0db3fe242263451fddf5277362" + "reference": "a33fa08a3f37bb44b90e60b9028796d6b811f9ef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/5a0fff46df349f0db3fe242263451fddf5277362", - "reference": "5a0fff46df349f0db3fe242263451fddf5277362", + "url": "https://api.github.com/repos/symfony/cache/zipball/a33fa08a3f37bb44b90e60b9028796d6b811f9ef", + "reference": "a33fa08a3f37bb44b90e60b9028796d6b811f9ef", "shasum": "" }, "require": { @@ -4873,14 +4956,14 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Provides an extended PSR-6, PSR-16 (and tags) implementation", + "description": "Provides extended PSR-6, PSR-16 (and tags) implementations", "homepage": "https://symfony.com", "keywords": [ "caching", "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v5.4.11" + "source": "https://github.com/symfony/cache/tree/v5.4.18" }, "funding": [ { @@ -4896,7 +4979,7 @@ "type": "tidelift" } ], - "time": "2022-07-28T15:25:17+00:00" + "time": "2022-12-29T16:06:09+00:00" }, { "name": "symfony/cache-contracts", @@ -4979,16 +5062,16 @@ }, { "name": "symfony/config", - "version": "v5.4.11", + "version": "v5.4.19", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "ec79e03125c1d2477e43dde8528535d90cc78379" + "reference": "9bd60843443cda9638efdca7c41eb82ed0026179" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/ec79e03125c1d2477e43dde8528535d90cc78379", - "reference": "ec79e03125c1d2477e43dde8528535d90cc78379", + "url": "https://api.github.com/repos/symfony/config/zipball/9bd60843443cda9638efdca7c41eb82ed0026179", + "reference": "9bd60843443cda9638efdca7c41eb82ed0026179", "shasum": "" }, "require": { @@ -5038,7 +5121,7 @@ "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/config/tree/v5.4.11" + "source": "https://github.com/symfony/config/tree/v5.4.19" }, "funding": [ { @@ -5054,20 +5137,20 @@ "type": "tidelift" } ], - "time": "2022-07-20T13:00:38+00:00" + "time": "2023-01-08T13:23:55+00:00" }, { "name": "symfony/console", - "version": "v5.4.12", + "version": "v5.4.17", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "c072aa8f724c3af64e2c7a96b796a4863d24dba1" + "reference": "58422fdcb0e715ed05b385f70d3e8b5ed4bbd45f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/c072aa8f724c3af64e2c7a96b796a4863d24dba1", - "reference": "c072aa8f724c3af64e2c7a96b796a4863d24dba1", + "url": "https://api.github.com/repos/symfony/console/zipball/58422fdcb0e715ed05b385f70d3e8b5ed4bbd45f", + "reference": "58422fdcb0e715ed05b385f70d3e8b5ed4bbd45f", "shasum": "" }, "require": { @@ -5137,7 +5220,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.4.12" + "source": "https://github.com/symfony/console/tree/v5.4.17" }, "funding": [ { @@ -5153,20 +5236,20 @@ "type": "tidelift" } ], - "time": "2022-08-17T13:18:05+00:00" + "time": "2022-12-28T14:15:31+00:00" }, { "name": "symfony/css-selector", - "version": "v5.4.11", + "version": "v5.4.17", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "c1681789f059ab756001052164726ae88512ae3d" + "reference": "052ef49b660f9ad2a3adb311c555c9bc11ba61f4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/c1681789f059ab756001052164726ae88512ae3d", - "reference": "c1681789f059ab756001052164726ae88512ae3d", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/052ef49b660f9ad2a3adb311c555c9bc11ba61f4", + "reference": "052ef49b660f9ad2a3adb311c555c9bc11ba61f4", "shasum": "" }, "require": { @@ -5203,7 +5286,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v5.4.11" + "source": "https://github.com/symfony/css-selector/tree/v5.4.17" }, "funding": [ { @@ -5219,7 +5302,7 @@ "type": "tidelift" } ], - "time": "2022-06-27T16:58:25+00:00" + "time": "2022-12-23T11:40:44+00:00" }, { "name": "symfony/debug-bundle", @@ -5302,16 +5385,16 @@ }, { "name": "symfony/dependency-injection", - "version": "v5.4.11", + "version": "v5.4.20", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "a8b9251016e9476db73e25fa836904bc0bf74c62" + "reference": "8185ed0df129005a26715902f1a53bad0fe67102" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/a8b9251016e9476db73e25fa836904bc0bf74c62", - "reference": "a8b9251016e9476db73e25fa836904bc0bf74c62", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/8185ed0df129005a26715902f1a53bad0fe67102", + "reference": "8185ed0df129005a26715902f1a53bad0fe67102", "shasum": "" }, "require": { @@ -5371,7 +5454,7 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v5.4.11" + "source": "https://github.com/symfony/dependency-injection/tree/v5.4.20" }, "funding": [ { @@ -5387,7 +5470,7 @@ "type": "tidelift" } ], - "time": "2022-07-20T13:00:38+00:00" + "time": "2023-01-27T11:08:11+00:00" }, { "name": "symfony/deprecation-contracts", @@ -5458,16 +5541,16 @@ }, { "name": "symfony/doctrine-bridge", - "version": "v5.4.11", + "version": "v5.4.17", "source": { "type": "git", "url": "https://github.com/symfony/doctrine-bridge.git", - "reference": "e0250f61a450518dd5b0b7847ec63d26665241dd" + "reference": "e9fce4a5568337402b2b1106907140d56a9d2454" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/e0250f61a450518dd5b0b7847ec63d26665241dd", - "reference": "e0250f61a450518dd5b0b7847ec63d26665241dd", + "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/e9fce4a5568337402b2b1106907140d56a9d2454", + "reference": "e9fce4a5568337402b2b1106907140d56a9d2454", "shasum": "" }, "require": { @@ -5497,8 +5580,8 @@ "symfony/validator": "<5.2" }, "require-dev": { - "doctrine/annotations": "^1.10.4", - "doctrine/collections": "~1.0", + "doctrine/annotations": "^1.10.4|^2", + "doctrine/collections": "^1.0|^2.0", "doctrine/data-fixtures": "^1.1", "doctrine/dbal": "^2.13.1|^3.0", "doctrine/orm": "^2.7.4", @@ -5555,7 +5638,7 @@ "description": "Provides integration for Doctrine with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/doctrine-bridge/tree/v5.4.11" + "source": "https://github.com/symfony/doctrine-bridge/tree/v5.4.17" }, "funding": [ { @@ -5571,20 +5654,20 @@ "type": "tidelift" } ], - "time": "2022-07-28T14:12:24+00:00" + "time": "2022-12-20T11:10:57+00:00" }, { "name": "symfony/dom-crawler", - "version": "v5.4.12", + "version": "v5.4.17", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", - "reference": "291c1e92281a09152dda089f782e23dedd34bd4f" + "reference": "32a07d910edc138a1dd5508c17c6b9bc1eb27a1b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/291c1e92281a09152dda089f782e23dedd34bd4f", - "reference": "291c1e92281a09152dda089f782e23dedd34bd4f", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/32a07d910edc138a1dd5508c17c6b9bc1eb27a1b", + "reference": "32a07d910edc138a1dd5508c17c6b9bc1eb27a1b", "shasum": "" }, "require": { @@ -5630,7 +5713,7 @@ "description": "Eases DOM navigation for HTML and XML documents", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dom-crawler/tree/v5.4.12" + "source": "https://github.com/symfony/dom-crawler/tree/v5.4.17" }, "funding": [ { @@ -5646,7 +5729,7 @@ "type": "tidelift" } ], - "time": "2022-08-03T13:09:21+00:00" + "time": "2022-12-22T10:31:03+00:00" }, { "name": "symfony/dotenv", @@ -5721,16 +5804,16 @@ }, { "name": "symfony/error-handler", - "version": "v5.4.11", + "version": "v5.4.19", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "f75d17cb4769eb38cd5fccbda95cd80a054d35c8" + "reference": "438ef3e5e6481244785da3ce8cf8f4e74e7f2822" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/f75d17cb4769eb38cd5fccbda95cd80a054d35c8", - "reference": "f75d17cb4769eb38cd5fccbda95cd80a054d35c8", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/438ef3e5e6481244785da3ce8cf8f4e74e7f2822", + "reference": "438ef3e5e6481244785da3ce8cf8f4e74e7f2822", "shasum": "" }, "require": { @@ -5772,7 +5855,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v5.4.11" + "source": "https://github.com/symfony/error-handler/tree/v5.4.19" }, "funding": [ { @@ -5788,20 +5871,20 @@ "type": "tidelift" } ], - "time": "2022-07-29T07:37:50+00:00" + "time": "2023-01-01T08:32:19+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v5.4.9", + "version": "v5.4.19", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "8e6ce1cc0279e3ff3c8ff0f43813bc88d21ca1bc" + "reference": "abf49cc084c087d94b4cb939c3f3672971784e0c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/8e6ce1cc0279e3ff3c8ff0f43813bc88d21ca1bc", - "reference": "8e6ce1cc0279e3ff3c8ff0f43813bc88d21ca1bc", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/abf49cc084c087d94b4cb939c3f3672971784e0c", + "reference": "abf49cc084c087d94b4cb939c3f3672971784e0c", "shasum": "" }, "require": { @@ -5857,7 +5940,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v5.4.9" + "source": "https://github.com/symfony/event-dispatcher/tree/v5.4.19" }, "funding": [ { @@ -5873,7 +5956,7 @@ "type": "tidelift" } ], - "time": "2022-05-05T16:45:39+00:00" + "time": "2023-01-01T08:32:19+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -5956,16 +6039,16 @@ }, { "name": "symfony/expression-language", - "version": "v5.4.11", + "version": "v5.4.14", "source": { "type": "git", "url": "https://github.com/symfony/expression-language.git", - "reference": "eb59000eb72c9681502cb501af3c666be42d215e" + "reference": "2f27d5b1e7926bba18e87719af75f696977cd58b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/expression-language/zipball/eb59000eb72c9681502cb501af3c666be42d215e", - "reference": "eb59000eb72c9681502cb501af3c666be42d215e", + "url": "https://api.github.com/repos/symfony/expression-language/zipball/2f27d5b1e7926bba18e87719af75f696977cd58b", + "reference": "2f27d5b1e7926bba18e87719af75f696977cd58b", "shasum": "" }, "require": { @@ -5999,7 +6082,7 @@ "description": "Provides an engine that can compile and evaluate expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/expression-language/tree/v5.4.11" + "source": "https://github.com/symfony/expression-language/tree/v5.4.14" }, "funding": [ { @@ -6015,20 +6098,20 @@ "type": "tidelift" } ], - "time": "2022-07-20T11:34:24+00:00" + "time": "2022-10-07T08:01:20+00:00" }, { "name": "symfony/filesystem", - "version": "v5.4.12", + "version": "v5.4.19", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "2d67c1f9a1937406a9be3171b4b22250c0a11447" + "reference": "648bfaca6a494f3e22378123bcee2894045dc9d8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/2d67c1f9a1937406a9be3171b4b22250c0a11447", - "reference": "2d67c1f9a1937406a9be3171b4b22250c0a11447", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/648bfaca6a494f3e22378123bcee2894045dc9d8", + "reference": "648bfaca6a494f3e22378123bcee2894045dc9d8", "shasum": "" }, "require": { @@ -6063,7 +6146,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v5.4.12" + "source": "https://github.com/symfony/filesystem/tree/v5.4.19" }, "funding": [ { @@ -6079,20 +6162,20 @@ "type": "tidelift" } ], - "time": "2022-08-02T13:48:16+00:00" + "time": "2023-01-14T19:14:44+00:00" }, { "name": "symfony/finder", - "version": "v5.4.11", + "version": "v5.4.17", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "7872a66f57caffa2916a584db1aa7f12adc76f8c" + "reference": "40c08632019838dfb3350f18cf5563b8080055fc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/7872a66f57caffa2916a584db1aa7f12adc76f8c", - "reference": "7872a66f57caffa2916a584db1aa7f12adc76f8c", + "url": "https://api.github.com/repos/symfony/finder/zipball/40c08632019838dfb3350f18cf5563b8080055fc", + "reference": "40c08632019838dfb3350f18cf5563b8080055fc", "shasum": "" }, "require": { @@ -6126,7 +6209,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v5.4.11" + "source": "https://github.com/symfony/finder/tree/v5.4.17" }, "funding": [ { @@ -6142,20 +6225,20 @@ "type": "tidelift" } ], - "time": "2022-07-29T07:37:50+00:00" + "time": "2022-12-22T10:31:03+00:00" }, { "name": "symfony/flex", - "version": "v1.19.3", + "version": "v1.19.4", "source": { "type": "git", "url": "https://github.com/symfony/flex.git", - "reference": "ab0453b16029e131c112df1a76e59eb2a47e1f67" + "reference": "c82477240111bfe41a1067c9f0ab91d40bafa5b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/flex/zipball/ab0453b16029e131c112df1a76e59eb2a47e1f67", - "reference": "ab0453b16029e131c112df1a76e59eb2a47e1f67", + "url": "https://api.github.com/repos/symfony/flex/zipball/c82477240111bfe41a1067c9f0ab91d40bafa5b6", + "reference": "c82477240111bfe41a1067c9f0ab91d40bafa5b6", "shasum": "" }, "require": { @@ -6191,7 +6274,7 @@ "description": "Composer plugin for Symfony", "support": { "issues": "https://github.com/symfony/flex/issues", - "source": "https://github.com/symfony/flex/tree/v1.19.3" + "source": "https://github.com/symfony/flex/tree/v1.19.4" }, "funding": [ { @@ -6207,20 +6290,20 @@ "type": "tidelift" } ], - "time": "2022-08-07T09:39:08+00:00" + "time": "2022-12-20T07:19:24+00:00" }, { "name": "symfony/form", - "version": "v5.4.12", + "version": "v5.4.17", "source": { "type": "git", "url": "https://github.com/symfony/form.git", - "reference": "d8c5cc929f8dc7a58b710c9474dd7a0173006017" + "reference": "6150f66dc921375a62e5da1cce3684aee657ddca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/form/zipball/d8c5cc929f8dc7a58b710c9474dd7a0173006017", - "reference": "d8c5cc929f8dc7a58b710c9474dd7a0173006017", + "url": "https://api.github.com/repos/symfony/form/zipball/6150f66dc921375a62e5da1cce3684aee657ddca", + "reference": "6150f66dc921375a62e5da1cce3684aee657ddca", "shasum": "" }, "require": { @@ -6249,7 +6332,7 @@ "symfony/twig-bridge": "<4.4" }, "require-dev": { - "doctrine/collections": "~1.0", + "doctrine/collections": "^1.0|^2.0", "symfony/config": "^4.4|^5.0|^6.0", "symfony/console": "^5.4|^6.0", "symfony/dependency-injection": "^4.4|^5.0|^6.0", @@ -6294,7 +6377,7 @@ "description": "Allows to easily create, process and reuse HTML forms", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/form/tree/v5.4.12" + "source": "https://github.com/symfony/form/tree/v5.4.17" }, "funding": [ { @@ -6310,20 +6393,20 @@ "type": "tidelift" } ], - "time": "2022-08-05T13:13:10+00:00" + "time": "2022-12-28T08:39:55+00:00" }, { "name": "symfony/framework-bundle", - "version": "v5.4.12", + "version": "v5.4.17", "source": { "type": "git", "url": "https://github.com/symfony/framework-bundle.git", - "reference": "49f8fe5d39b7513a3f26898788885dbe66b0d910" + "reference": "79dba90bd8a440488b63282ea27d2b30166e8841" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/49f8fe5d39b7513a3f26898788885dbe66b0d910", - "reference": "49f8fe5d39b7513a3f26898788885dbe66b0d910", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/79dba90bd8a440488b63282ea27d2b30166e8841", + "reference": "79dba90bd8a440488b63282ea27d2b30166e8841", "shasum": "" }, "require": { @@ -6375,7 +6458,7 @@ "symfony/workflow": "<5.2" }, "require-dev": { - "doctrine/annotations": "^1.13.1", + "doctrine/annotations": "^1.13.1|^2", "doctrine/cache": "^1.11|^2.0", "doctrine/persistence": "^1.3|^2|^3", "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", @@ -6445,7 +6528,7 @@ "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/framework-bundle/tree/v5.4.12" + "source": "https://github.com/symfony/framework-bundle/tree/v5.4.17" }, "funding": [ { @@ -6461,20 +6544,20 @@ "type": "tidelift" } ], - "time": "2022-08-26T10:32:10+00:00" + "time": "2022-12-20T11:10:57+00:00" }, { "name": "symfony/http-foundation", - "version": "v5.4.12", + "version": "v5.4.20", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "f4bfe9611b113b15d98a43da68ec9b5a00d56791" + "reference": "d0435363362a47c14e9cf50663cb8ffbf491875a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/f4bfe9611b113b15d98a43da68ec9b5a00d56791", - "reference": "f4bfe9611b113b15d98a43da68ec9b5a00d56791", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/d0435363362a47c14e9cf50663cb8ffbf491875a", + "reference": "d0435363362a47c14e9cf50663cb8ffbf491875a", "shasum": "" }, "require": { @@ -6521,7 +6604,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v5.4.12" + "source": "https://github.com/symfony/http-foundation/tree/v5.4.20" }, "funding": [ { @@ -6537,20 +6620,20 @@ "type": "tidelift" } ], - "time": "2022-08-19T07:33:17+00:00" + "time": "2023-01-29T11:11:52+00:00" }, { "name": "symfony/http-kernel", - "version": "v5.4.12", + "version": "v5.4.20", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "37f660fa3bcd78fe4893ce23ebe934618ec099be" + "reference": "aaeec341582d3c160cc9ecfa8b2419ba6c69954e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/37f660fa3bcd78fe4893ce23ebe934618ec099be", - "reference": "37f660fa3bcd78fe4893ce23ebe934618ec099be", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/aaeec341582d3c160cc9ecfa8b2419ba6c69954e", + "reference": "aaeec341582d3c160cc9ecfa8b2419ba6c69954e", "shasum": "" }, "require": { @@ -6633,7 +6716,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v5.4.12" + "source": "https://github.com/symfony/http-kernel/tree/v5.4.20" }, "funding": [ { @@ -6649,7 +6732,7 @@ "type": "tidelift" } ], - "time": "2022-08-26T14:40:40+00:00" + "time": "2023-02-01T08:18:48+00:00" }, { "name": "symfony/inflector", @@ -6726,16 +6809,16 @@ }, { "name": "symfony/intl", - "version": "v5.4.11", + "version": "v5.4.15", "source": { "type": "git", "url": "https://github.com/symfony/intl.git", - "reference": "d305c0c1d31b30b3876e041804c35e49e5f8a96e" + "reference": "2cb39da7f6e7b7344d7d5317dbee8db9d12cc714" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/intl/zipball/d305c0c1d31b30b3876e041804c35e49e5f8a96e", - "reference": "d305c0c1d31b30b3876e041804c35e49e5f8a96e", + "url": "https://api.github.com/repos/symfony/intl/zipball/2cb39da7f6e7b7344d7d5317dbee8db9d12cc714", + "reference": "2cb39da7f6e7b7344d7d5317dbee8db9d12cc714", "shasum": "" }, "require": { @@ -6794,7 +6877,7 @@ "localization" ], "support": { - "source": "https://github.com/symfony/intl/tree/v5.4.11" + "source": "https://github.com/symfony/intl/tree/v5.4.15" }, "funding": [ { @@ -6810,20 +6893,20 @@ "type": "tidelift" } ], - "time": "2022-07-20T11:34:24+00:00" + "time": "2022-10-19T14:28:49+00:00" }, { "name": "symfony/lock", - "version": "v5.4.10", + "version": "v5.4.15", "source": { "type": "git", "url": "https://github.com/symfony/lock.git", - "reference": "41a308008d92d30cae5615d903c4d46d95932eea" + "reference": "109a20faa6119578b46457ef8cffb9389e20e5ca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/lock/zipball/41a308008d92d30cae5615d903c4d46d95932eea", - "reference": "41a308008d92d30cae5615d903c4d46d95932eea", + "url": "https://api.github.com/repos/symfony/lock/zipball/109a20faa6119578b46457ef8cffb9389e20e5ca", + "reference": "109a20faa6119578b46457ef8cffb9389e20e5ca", "shasum": "" }, "require": { @@ -6873,7 +6956,7 @@ "semaphore" ], "support": { - "source": "https://github.com/symfony/lock/tree/v5.4.10" + "source": "https://github.com/symfony/lock/tree/v5.4.15" }, "funding": [ { @@ -6889,20 +6972,20 @@ "type": "tidelift" } ], - "time": "2022-06-09T13:29:56+00:00" + "time": "2022-10-27T07:55:40+00:00" }, { "name": "symfony/mailer", - "version": "v5.4.12", + "version": "v5.4.17", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "076043af11e58b20a68d2fd93f59cdbc6e8fdd00" + "reference": "fd816412b76447890efedaf9ddfe8632589ce10c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/076043af11e58b20a68d2fd93f59cdbc6e8fdd00", - "reference": "076043af11e58b20a68d2fd93f59cdbc6e8fdd00", + "url": "https://api.github.com/repos/symfony/mailer/zipball/fd816412b76447890efedaf9ddfe8632589ce10c", + "reference": "fd816412b76447890efedaf9ddfe8632589ce10c", "shasum": "" }, "require": { @@ -6949,7 +7032,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v5.4.12" + "source": "https://github.com/symfony/mailer/tree/v5.4.17" }, "funding": [ { @@ -6965,7 +7048,7 @@ "type": "tidelift" } ], - "time": "2022-08-03T05:17:26+00:00" + "time": "2022-12-14T15:45:23+00:00" }, { "name": "symfony/maker-bundle", @@ -7060,16 +7143,16 @@ }, { "name": "symfony/mime", - "version": "v5.4.12", + "version": "v5.4.17", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "03876e9c5a36f5b45e7d9a381edda5421eff8a90" + "reference": "2a83d82efc91c3f03a23c8b47a896df168aa5c63" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/03876e9c5a36f5b45e7d9a381edda5421eff8a90", - "reference": "03876e9c5a36f5b45e7d9a381edda5421eff8a90", + "url": "https://api.github.com/repos/symfony/mime/zipball/2a83d82efc91c3f03a23c8b47a896df168aa5c63", + "reference": "2a83d82efc91c3f03a23c8b47a896df168aa5c63", "shasum": "" }, "require": { @@ -7083,7 +7166,8 @@ "egulias/email-validator": "~3.0.0", "phpdocumentor/reflection-docblock": "<3.2.2", "phpdocumentor/type-resolver": "<1.4.0", - "symfony/mailer": "<4.4" + "symfony/mailer": "<4.4", + "symfony/serializer": "<5.4.14|>=6.0,<6.0.14|>=6.1,<6.1.6" }, "require-dev": { "egulias/email-validator": "^2.1.10|^3.1", @@ -7091,7 +7175,7 @@ "symfony/dependency-injection": "^4.4|^5.0|^6.0", "symfony/property-access": "^4.4|^5.1|^6.0", "symfony/property-info": "^4.4|^5.1|^6.0", - "symfony/serializer": "^5.2|^6.0" + "symfony/serializer": "^5.4.14|~6.0.14|^6.1.6" }, "type": "library", "autoload": { @@ -7123,7 +7207,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v5.4.12" + "source": "https://github.com/symfony/mime/tree/v5.4.17" }, "funding": [ { @@ -7139,20 +7223,20 @@ "type": "tidelift" } ], - "time": "2022-08-19T14:24:03+00:00" + "time": "2022-12-13T09:59:55+00:00" }, { "name": "symfony/monolog-bridge", - "version": "v5.4.10", + "version": "v5.4.17", "source": { "type": "git", "url": "https://github.com/symfony/monolog-bridge.git", - "reference": "b3b0890e76e7eb626f27b165a5c501f2754dfbbd" + "reference": "0280390d8232a5668b02e0d87e9fce0a535c4af9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/b3b0890e76e7eb626f27b165a5c501f2754dfbbd", - "reference": "b3b0890e76e7eb626f27b165a5c501f2754dfbbd", + "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/0280390d8232a5668b02e0d87e9fce0a535c4af9", + "reference": "0280390d8232a5668b02e0d87e9fce0a535c4af9", "shasum": "" }, "require": { @@ -7207,7 +7291,7 @@ "description": "Provides integration for Monolog with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/monolog-bridge/tree/v5.4.10" + "source": "https://github.com/symfony/monolog-bridge/tree/v5.4.17" }, "funding": [ { @@ -7223,7 +7307,7 @@ "type": "tidelift" } ], - "time": "2022-06-19T12:03:50+00:00" + "time": "2022-12-13T10:55:04+00:00" }, { "name": "symfony/monolog-bundle", @@ -7377,16 +7461,16 @@ }, { "name": "symfony/password-hasher", - "version": "v5.4.11", + "version": "v5.4.19", "source": { "type": "git", "url": "https://github.com/symfony/password-hasher.git", - "reference": "b0169ed8f09a4ae39eb119218ea1685079a9b179" + "reference": "51b4b4d9e368fa6e31daa24866499781848c77d3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/password-hasher/zipball/b0169ed8f09a4ae39eb119218ea1685079a9b179", - "reference": "b0169ed8f09a4ae39eb119218ea1685079a9b179", + "url": "https://api.github.com/repos/symfony/password-hasher/zipball/51b4b4d9e368fa6e31daa24866499781848c77d3", + "reference": "51b4b4d9e368fa6e31daa24866499781848c77d3", "shasum": "" }, "require": { @@ -7430,7 +7514,7 @@ "password" ], "support": { - "source": "https://github.com/symfony/password-hasher/tree/v5.4.11" + "source": "https://github.com/symfony/password-hasher/tree/v5.4.19" }, "funding": [ { @@ -7446,20 +7530,20 @@ "type": "tidelift" } ], - "time": "2022-07-20T13:00:38+00:00" + "time": "2023-01-01T08:32:19+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.26.0", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4" + "reference": "5bbc823adecdae860bb64756d639ecfec17b050a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4", - "reference": "6fd1b9a79f6e3cf65f9e679b23af304cd9e010d4", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a", + "reference": "5bbc823adecdae860bb64756d639ecfec17b050a", "shasum": "" }, "require": { @@ -7474,7 +7558,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.26-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -7512,7 +7596,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.26.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0" }, "funding": [ { @@ -7528,20 +7612,20 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.26.0", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "433d05519ce6990bf3530fba6957499d327395c2" + "reference": "511a08c03c1960e08a883f4cffcacd219b758354" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/433d05519ce6990bf3530fba6957499d327395c2", - "reference": "433d05519ce6990bf3530fba6957499d327395c2", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/511a08c03c1960e08a883f4cffcacd219b758354", + "reference": "511a08c03c1960e08a883f4cffcacd219b758354", "shasum": "" }, "require": { @@ -7553,7 +7637,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.26-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -7593,7 +7677,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.26.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.27.0" }, "funding": [ { @@ -7609,20 +7693,20 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/polyfill-intl-icu", - "version": "v1.26.0", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-icu.git", - "reference": "e407643d610e5f2c8a4b14189150f68934bf5e48" + "reference": "a3d9148e2c363588e05abbdd4ee4f971f0a5330c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/e407643d610e5f2c8a4b14189150f68934bf5e48", - "reference": "e407643d610e5f2c8a4b14189150f68934bf5e48", + "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/a3d9148e2c363588e05abbdd4ee4f971f0a5330c", + "reference": "a3d9148e2c363588e05abbdd4ee4f971f0a5330c", "shasum": "" }, "require": { @@ -7634,7 +7718,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.26-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -7680,7 +7764,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.26.0" + "source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.27.0" }, "funding": [ { @@ -7696,20 +7780,20 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.26.0", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8" + "reference": "639084e360537a19f9ee352433b84ce831f3d2da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/59a8d271f00dd0e4c2e518104cc7963f655a1aa8", - "reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/639084e360537a19f9ee352433b84ce831f3d2da", + "reference": "639084e360537a19f9ee352433b84ce831f3d2da", "shasum": "" }, "require": { @@ -7723,7 +7807,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.26-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -7767,7 +7851,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.26.0" + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.27.0" }, "funding": [ { @@ -7783,20 +7867,20 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.26.0", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "219aa369ceff116e673852dce47c3a41794c14bd" + "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/219aa369ceff116e673852dce47c3a41794c14bd", - "reference": "219aa369ceff116e673852dce47c3a41794c14bd", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/19bd1e4fcd5b91116f14d8533c57831ed00571b6", + "reference": "19bd1e4fcd5b91116f14d8533c57831ed00571b6", "shasum": "" }, "require": { @@ -7808,7 +7892,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.26-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -7851,7 +7935,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.26.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.27.0" }, "funding": [ { @@ -7867,20 +7951,20 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.26.0", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e" + "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e", - "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534", + "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534", "shasum": "" }, "require": { @@ -7895,7 +7979,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.26-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -7934,7 +8018,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.26.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0" }, "funding": [ { @@ -7950,20 +8034,20 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/polyfill-php72", - "version": "v1.26.0", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "bf44a9fd41feaac72b074de600314a93e2ae78e2" + "reference": "869329b1e9894268a8a61dabb69153029b7a8c97" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/bf44a9fd41feaac72b074de600314a93e2ae78e2", - "reference": "bf44a9fd41feaac72b074de600314a93e2ae78e2", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/869329b1e9894268a8a61dabb69153029b7a8c97", + "reference": "869329b1e9894268a8a61dabb69153029b7a8c97", "shasum": "" }, "require": { @@ -7972,7 +8056,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.26-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -8010,7 +8094,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php72/tree/v1.26.0" + "source": "https://github.com/symfony/polyfill-php72/tree/v1.27.0" }, "funding": [ { @@ -8026,20 +8110,20 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/polyfill-php73", - "version": "v1.26.0", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "e440d35fa0286f77fb45b79a03fedbeda9307e85" + "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/e440d35fa0286f77fb45b79a03fedbeda9307e85", - "reference": "e440d35fa0286f77fb45b79a03fedbeda9307e85", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/9e8ecb5f92152187c4799efd3c96b78ccab18ff9", + "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9", "shasum": "" }, "require": { @@ -8048,7 +8132,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.26-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -8089,7 +8173,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.26.0" + "source": "https://github.com/symfony/polyfill-php73/tree/v1.27.0" }, "funding": [ { @@ -8105,20 +8189,20 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.26.0", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace" + "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/cfa0ae98841b9e461207c13ab093d76b0fa7bace", - "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", + "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", "shasum": "" }, "require": { @@ -8127,7 +8211,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.26-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -8172,7 +8256,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.26.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.27.0" }, "funding": [ { @@ -8188,20 +8272,20 @@ "type": "tidelift" } ], - "time": "2022-05-10T07:21:04+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/polyfill-php81", - "version": "v1.26.0", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php81.git", - "reference": "13f6d1271c663dc5ae9fb843a8f16521db7687a1" + "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/13f6d1271c663dc5ae9fb843a8f16521db7687a1", - "reference": "13f6d1271c663dc5ae9fb843a8f16521db7687a1", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/707403074c8ea6e2edaf8794b0157a0bfa52157a", + "reference": "707403074c8ea6e2edaf8794b0157a0bfa52157a", "shasum": "" }, "require": { @@ -8210,7 +8294,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.26-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -8251,7 +8335,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.26.0" + "source": "https://github.com/symfony/polyfill-php81/tree/v1.27.0" }, "funding": [ { @@ -8267,7 +8351,7 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "symfony/process", @@ -8333,16 +8417,16 @@ }, { "name": "symfony/property-access", - "version": "v5.4.11", + "version": "v5.4.19", "source": { "type": "git", "url": "https://github.com/symfony/property-access.git", - "reference": "c641d63e943ed31981bad4b4dcf29fe7da2ffa8c" + "reference": "20fcf370aed6b2b4a2d8170fa23d2d07250e94ab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-access/zipball/c641d63e943ed31981bad4b4dcf29fe7da2ffa8c", - "reference": "c641d63e943ed31981bad4b4dcf29fe7da2ffa8c", + "url": "https://api.github.com/repos/symfony/property-access/zipball/20fcf370aed6b2b4a2d8170fa23d2d07250e94ab", + "reference": "20fcf370aed6b2b4a2d8170fa23d2d07250e94ab", "shasum": "" }, "require": { @@ -8394,7 +8478,7 @@ "reflection" ], "support": { - "source": "https://github.com/symfony/property-access/tree/v5.4.11" + "source": "https://github.com/symfony/property-access/tree/v5.4.19" }, "funding": [ { @@ -8410,20 +8494,20 @@ "type": "tidelift" } ], - "time": "2022-06-27T16:58:25+00:00" + "time": "2023-01-01T08:32:19+00:00" }, { "name": "symfony/property-info", - "version": "v5.4.11", + "version": "v5.4.19", "source": { "type": "git", "url": "https://github.com/symfony/property-info.git", - "reference": "8a9a2b638a808cc92a2fbce185b9318e76b0e20c" + "reference": "8ccf54bce2e2edbface1e99cb5a2560a290c9e2d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-info/zipball/8a9a2b638a808cc92a2fbce185b9318e76b0e20c", - "reference": "8a9a2b638a808cc92a2fbce185b9318e76b0e20c", + "url": "https://api.github.com/repos/symfony/property-info/zipball/8ccf54bce2e2edbface1e99cb5a2560a290c9e2d", + "reference": "8ccf54bce2e2edbface1e99cb5a2560a290c9e2d", "shasum": "" }, "require": { @@ -8438,7 +8522,7 @@ "symfony/dependency-injection": "<4.4" }, "require-dev": { - "doctrine/annotations": "^1.10.4", + "doctrine/annotations": "^1.10.4|^2", "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", "phpstan/phpdoc-parser": "^1.0", "symfony/cache": "^4.4|^5.0|^6.0", @@ -8485,7 +8569,7 @@ "validator" ], "support": { - "source": "https://github.com/symfony/property-info/tree/v5.4.11" + "source": "https://github.com/symfony/property-info/tree/v5.4.19" }, "funding": [ { @@ -8501,7 +8585,7 @@ "type": "tidelift" } ], - "time": "2022-07-19T08:07:51+00:00" + "time": "2023-01-14T11:26:56+00:00" }, { "name": "symfony/proxy-manager-bridge", @@ -8572,16 +8656,16 @@ }, { "name": "symfony/rate-limiter", - "version": "v5.4.11", + "version": "v5.4.17", "source": { "type": "git", "url": "https://github.com/symfony/rate-limiter.git", - "reference": "1a3a43eeb498290100e4a1559f4a48be14900bc2" + "reference": "a79d4fe5a330f95ca85a87b1321911bdeadb4db9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/rate-limiter/zipball/1a3a43eeb498290100e4a1559f4a48be14900bc2", - "reference": "1a3a43eeb498290100e4a1559f4a48be14900bc2", + "url": "https://api.github.com/repos/symfony/rate-limiter/zipball/a79d4fe5a330f95ca85a87b1321911bdeadb4db9", + "reference": "a79d4fe5a330f95ca85a87b1321911bdeadb4db9", "shasum": "" }, "require": { @@ -8622,7 +8706,7 @@ "rate-limiter" ], "support": { - "source": "https://github.com/symfony/rate-limiter/tree/v5.4.11" + "source": "https://github.com/symfony/rate-limiter/tree/v5.4.17" }, "funding": [ { @@ -8638,20 +8722,20 @@ "type": "tidelift" } ], - "time": "2022-07-20T13:00:38+00:00" + "time": "2022-12-09T07:37:05+00:00" }, { "name": "symfony/routing", - "version": "v5.4.11", + "version": "v5.4.17", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "3e01ccd9b2a3a4167ba2b3c53612762300300226" + "reference": "4ce2df9a469c19ba45ca6aca04fec1c358a6e791" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/3e01ccd9b2a3a4167ba2b3c53612762300300226", - "reference": "3e01ccd9b2a3a4167ba2b3c53612762300300226", + "url": "https://api.github.com/repos/symfony/routing/zipball/4ce2df9a469c19ba45ca6aca04fec1c358a6e791", + "reference": "4ce2df9a469c19ba45ca6aca04fec1c358a6e791", "shasum": "" }, "require": { @@ -8666,7 +8750,7 @@ "symfony/yaml": "<4.4" }, "require-dev": { - "doctrine/annotations": "^1.12", + "doctrine/annotations": "^1.12|^2", "psr/log": "^1|^2|^3", "symfony/config": "^5.3|^6.0", "symfony/dependency-injection": "^4.4|^5.0|^6.0", @@ -8712,7 +8796,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v5.4.11" + "source": "https://github.com/symfony/routing/tree/v5.4.17" }, "funding": [ { @@ -8728,20 +8812,20 @@ "type": "tidelift" } ], - "time": "2022-07-20T13:00:38+00:00" + "time": "2022-12-20T11:10:57+00:00" }, { "name": "symfony/security-bundle", - "version": "v5.4.11", + "version": "v5.4.20", "source": { "type": "git", "url": "https://github.com/symfony/security-bundle.git", - "reference": "86b49feb056b840f2b79a03fcfa2d378d6d34234" + "reference": "1a049b77e70e890c5d5d2105d96ce8b35890197e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-bundle/zipball/86b49feb056b840f2b79a03fcfa2d378d6d34234", - "reference": "86b49feb056b840f2b79a03fcfa2d378d6d34234", + "url": "https://api.github.com/repos/symfony/security-bundle/zipball/1a049b77e70e890c5d5d2105d96ce8b35890197e", + "reference": "1a049b77e70e890c5d5d2105d96ce8b35890197e", "shasum": "" }, "require": { @@ -8758,7 +8842,7 @@ "symfony/security-core": "^5.4|^6.0", "symfony/security-csrf": "^4.4|^5.0|^6.0", "symfony/security-guard": "^5.3", - "symfony/security-http": "^5.4|^6.0" + "symfony/security-http": "^5.4.20|~6.0.20|~6.1.12|^6.2.6" }, "conflict": { "symfony/browser-kit": "<4.4", @@ -8768,7 +8852,7 @@ "symfony/twig-bundle": "<4.4" }, "require-dev": { - "doctrine/annotations": "^1.10.4", + "doctrine/annotations": "^1.10.4|^2", "symfony/asset": "^4.4|^5.0|^6.0", "symfony/browser-kit": "^4.4|^5.0|^6.0", "symfony/console": "^4.4|^5.0|^6.0", @@ -8814,7 +8898,7 @@ "description": "Provides a tight integration of the Security component into the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-bundle/tree/v5.4.11" + "source": "https://github.com/symfony/security-bundle/tree/v5.4.20" }, "funding": [ { @@ -8830,20 +8914,20 @@ "type": "tidelift" } ], - "time": "2022-07-20T13:00:38+00:00" + "time": "2023-01-30T09:35:58+00:00" }, { "name": "symfony/security-core", - "version": "v5.4.11", + "version": "v5.4.19", "source": { "type": "git", "url": "https://github.com/symfony/security-core.git", - "reference": "25d14fa47f9efa084d3c23d0ae3b2624d2ad9e92" + "reference": "76fe5a7c62a3f23a5d7b72a55529e94ae2c1ae07" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-core/zipball/25d14fa47f9efa084d3c23d0ae3b2624d2ad9e92", - "reference": "25d14fa47f9efa084d3c23d0ae3b2624d2ad9e92", + "url": "https://api.github.com/repos/symfony/security-core/zipball/76fe5a7c62a3f23a5d7b72a55529e94ae2c1ae07", + "reference": "76fe5a7c62a3f23a5d7b72a55529e94ae2c1ae07", "shasum": "" }, "require": { @@ -8907,7 +8991,7 @@ "description": "Symfony Security Component - Core Library", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-core/tree/v5.4.11" + "source": "https://github.com/symfony/security-core/tree/v5.4.19" }, "funding": [ { @@ -8923,20 +9007,20 @@ "type": "tidelift" } ], - "time": "2022-07-20T13:00:38+00:00" + "time": "2023-01-24T10:56:59+00:00" }, { "name": "symfony/security-csrf", - "version": "v5.4.11", + "version": "v5.4.19", "source": { "type": "git", "url": "https://github.com/symfony/security-csrf.git", - "reference": "b97ab244b6dda80abb84a4a236d682871695db4a" + "reference": "892dc11b003c0d3da377264bb3d5f178cb894944" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-csrf/zipball/b97ab244b6dda80abb84a4a236d682871695db4a", - "reference": "b97ab244b6dda80abb84a4a236d682871695db4a", + "url": "https://api.github.com/repos/symfony/security-csrf/zipball/892dc11b003c0d3da377264bb3d5f178cb894944", + "reference": "892dc11b003c0d3da377264bb3d5f178cb894944", "shasum": "" }, "require": { @@ -8979,7 +9063,7 @@ "description": "Symfony Security Component - CSRF Library", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-csrf/tree/v5.4.11" + "source": "https://github.com/symfony/security-csrf/tree/v5.4.19" }, "funding": [ { @@ -8995,20 +9079,20 @@ "type": "tidelift" } ], - "time": "2022-07-20T13:00:38+00:00" + "time": "2023-01-01T08:32:19+00:00" }, { "name": "symfony/security-guard", - "version": "v5.4.9", + "version": "v5.4.19", "source": { "type": "git", "url": "https://github.com/symfony/security-guard.git", - "reference": "64c83d25b5b23fa07e77c861d19e46ce7929a789" + "reference": "6f9d69b1ef4adaae02ac99af09bbe5de151e824c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-guard/zipball/64c83d25b5b23fa07e77c861d19e46ce7929a789", - "reference": "64c83d25b5b23fa07e77c861d19e46ce7929a789", + "url": "https://api.github.com/repos/symfony/security-guard/zipball/6f9d69b1ef4adaae02ac99af09bbe5de151e824c", + "reference": "6f9d69b1ef4adaae02ac99af09bbe5de151e824c", "shasum": "" }, "require": { @@ -9046,7 +9130,7 @@ "description": "Symfony Security Component - Guard", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-guard/tree/v5.4.9" + "source": "https://github.com/symfony/security-guard/tree/v5.4.19" }, "funding": [ { @@ -9062,20 +9146,20 @@ "type": "tidelift" } ], - "time": "2022-05-06T14:25:18+00:00" + "time": "2023-01-01T08:32:19+00:00" }, { "name": "symfony/security-http", - "version": "v5.4.12", + "version": "v5.4.20", "source": { "type": "git", "url": "https://github.com/symfony/security-http.git", - "reference": "3ca3eb2a866a4a5adaf0a952d2d7db7208da378b" + "reference": "0236efe37462df3204e758e3a55661a43285d948" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-http/zipball/3ca3eb2a866a4a5adaf0a952d2d7db7208da378b", - "reference": "3ca3eb2a866a4a5adaf0a952d2d7db7208da378b", + "url": "https://api.github.com/repos/symfony/security-http/zipball/0236efe37462df3204e758e3a55661a43285d948", + "reference": "0236efe37462df3204e758e3a55661a43285d948", "shasum": "" }, "require": { @@ -9086,7 +9170,7 @@ "symfony/polyfill-mbstring": "~1.0", "symfony/polyfill-php80": "^1.16", "symfony/property-access": "^4.4|^5.0|^6.0", - "symfony/security-core": "^5.4|^6.0" + "symfony/security-core": "^5.4.19|~6.0.19|~6.1.11|^6.2.5" }, "conflict": { "symfony/event-dispatcher": "<4.3", @@ -9131,7 +9215,7 @@ "description": "Symfony Security Component - HTTP Integration", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-http/tree/v5.4.12" + "source": "https://github.com/symfony/security-http/tree/v5.4.20" }, "funding": [ { @@ -9147,20 +9231,20 @@ "type": "tidelift" } ], - "time": "2022-08-23T10:55:18+00:00" + "time": "2023-01-30T09:35:58+00:00" }, { "name": "symfony/serializer", - "version": "v5.4.12", + "version": "v5.4.17", "source": { "type": "git", "url": "https://github.com/symfony/serializer.git", - "reference": "776fa3010f62b97a7119757a66596a654cd244d4" + "reference": "4ac4fae1cbad2655a0b05f327e7ce8ef310239fb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/776fa3010f62b97a7119757a66596a654cd244d4", - "reference": "776fa3010f62b97a7119757a66596a654cd244d4", + "url": "https://api.github.com/repos/symfony/serializer/zipball/4ac4fae1cbad2655a0b05f327e7ce8ef310239fb", + "reference": "4ac4fae1cbad2655a0b05f327e7ce8ef310239fb", "shasum": "" }, "require": { @@ -9172,7 +9256,7 @@ "conflict": { "doctrine/annotations": "<1.12", "phpdocumentor/reflection-docblock": "<3.2.2", - "phpdocumentor/type-resolver": "<1.4.0", + "phpdocumentor/type-resolver": "<1.4.0|>=1.7.0", "symfony/dependency-injection": "<4.4", "symfony/property-access": "<5.4", "symfony/property-info": "<5.3.13", @@ -9180,7 +9264,7 @@ "symfony/yaml": "<4.4" }, "require-dev": { - "doctrine/annotations": "^1.12", + "doctrine/annotations": "^1.12|^2", "phpdocumentor/reflection-docblock": "^3.2|^4.0|^5.0", "symfony/cache": "^4.4|^5.0|^6.0", "symfony/config": "^4.4|^5.0|^6.0", @@ -9234,7 +9318,7 @@ "description": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/serializer/tree/v5.4.12" + "source": "https://github.com/symfony/serializer/tree/v5.4.17" }, "funding": [ { @@ -9250,7 +9334,7 @@ "type": "tidelift" } ], - "time": "2022-08-26T10:32:10+00:00" + "time": "2022-12-20T11:10:57+00:00" }, { "name": "symfony/service-contracts", @@ -9337,16 +9421,16 @@ }, { "name": "symfony/stopwatch", - "version": "v5.4.5", + "version": "v5.4.13", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "4d04b5c24f3c9a1a168a131f6cbe297155bc0d30" + "reference": "6df7a3effde34d81717bbef4591e5ffe32226d69" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/4d04b5c24f3c9a1a168a131f6cbe297155bc0d30", - "reference": "4d04b5c24f3c9a1a168a131f6cbe297155bc0d30", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/6df7a3effde34d81717bbef4591e5ffe32226d69", + "reference": "6df7a3effde34d81717bbef4591e5ffe32226d69", "shasum": "" }, "require": { @@ -9379,7 +9463,7 @@ "description": "Provides a way to profile code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/stopwatch/tree/v5.4.5" + "source": "https://github.com/symfony/stopwatch/tree/v5.4.13" }, "funding": [ { @@ -9395,20 +9479,20 @@ "type": "tidelift" } ], - "time": "2022-02-18T16:06:09+00:00" + "time": "2022-09-28T13:19:49+00:00" }, { "name": "symfony/string", - "version": "v5.4.12", + "version": "v5.4.19", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "2fc515e512d721bf31ea76bd02fe23ada4640058" + "reference": "0a01071610fd861cc160dfb7e2682ceec66064cb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/2fc515e512d721bf31ea76bd02fe23ada4640058", - "reference": "2fc515e512d721bf31ea76bd02fe23ada4640058", + "url": "https://api.github.com/repos/symfony/string/zipball/0a01071610fd861cc160dfb7e2682ceec66064cb", + "reference": "0a01071610fd861cc160dfb7e2682ceec66064cb", "shasum": "" }, "require": { @@ -9465,7 +9549,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v5.4.12" + "source": "https://github.com/symfony/string/tree/v5.4.19" }, "funding": [ { @@ -9481,7 +9565,7 @@ "type": "tidelift" } ], - "time": "2022-08-12T17:03:11+00:00" + "time": "2023-01-01T08:32:19+00:00" }, { "name": "symfony/templating", @@ -9553,16 +9637,16 @@ }, { "name": "symfony/translation", - "version": "v5.4.12", + "version": "v5.4.14", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "42ecc77eb4f229ce2df702a648ec93b8478d76ae" + "reference": "f0ed07675863aa6e3939df8b1bc879450b585cab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/42ecc77eb4f229ce2df702a648ec93b8478d76ae", - "reference": "42ecc77eb4f229ce2df702a648ec93b8478d76ae", + "url": "https://api.github.com/repos/symfony/translation/zipball/f0ed07675863aa6e3939df8b1bc879450b585cab", + "reference": "f0ed07675863aa6e3939df8b1bc879450b585cab", "shasum": "" }, "require": { @@ -9630,7 +9714,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v5.4.12" + "source": "https://github.com/symfony/translation/tree/v5.4.14" }, "funding": [ { @@ -9646,7 +9730,7 @@ "type": "tidelift" } ], - "time": "2022-08-02T15:52:22+00:00" + "time": "2022-10-07T08:01:20+00:00" }, { "name": "symfony/translation-contracts", @@ -9728,16 +9812,16 @@ }, { "name": "symfony/twig-bridge", - "version": "v5.4.12", + "version": "v5.4.17", "source": { "type": "git", "url": "https://github.com/symfony/twig-bridge.git", - "reference": "94c3b38514c953e3e84719c96d4e578a01ca1819" + "reference": "5a35a669639ac25e4cb3d6d9c968924d96a7eae6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/94c3b38514c953e3e84719c96d4e578a01ca1819", - "reference": "94c3b38514c953e3e84719c96d4e578a01ca1819", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/5a35a669639ac25e4cb3d6d9c968924d96a7eae6", + "reference": "5a35a669639ac25e4cb3d6d9c968924d96a7eae6", "shasum": "" }, "require": { @@ -9757,7 +9841,7 @@ "symfony/workflow": "<5.2" }, "require-dev": { - "doctrine/annotations": "^1.12", + "doctrine/annotations": "^1.12|^2", "egulias/email-validator": "^2.1.10|^3", "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", "symfony/asset": "^4.4|^5.0|^6.0", @@ -9829,7 +9913,7 @@ "description": "Provides integration for Twig with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/twig-bridge/tree/v5.4.12" + "source": "https://github.com/symfony/twig-bridge/tree/v5.4.17" }, "funding": [ { @@ -9845,20 +9929,20 @@ "type": "tidelift" } ], - "time": "2022-08-03T13:09:21+00:00" + "time": "2022-12-20T11:10:57+00:00" }, { "name": "symfony/twig-bundle", - "version": "v5.4.8", + "version": "v5.4.17", "source": { "type": "git", "url": "https://github.com/symfony/twig-bundle.git", - "reference": "c992b4474c3a31f3c40a1ca593d213833f91b818" + "reference": "ac21af4eff72ecd65680d2f3d163b5794ce82fc4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/c992b4474c3a31f3c40a1ca593d213833f91b818", - "reference": "c992b4474c3a31f3c40a1ca593d213833f91b818", + "url": "https://api.github.com/repos/symfony/twig-bundle/zipball/ac21af4eff72ecd65680d2f3d163b5794ce82fc4", + "reference": "ac21af4eff72ecd65680d2f3d163b5794ce82fc4", "shasum": "" }, "require": { @@ -9878,7 +9962,7 @@ "symfony/translation": "<5.0" }, "require-dev": { - "doctrine/annotations": "^1.10.4", + "doctrine/annotations": "^1.10.4|^2", "doctrine/cache": "^1.0|^2.0", "symfony/asset": "^4.4|^5.0|^6.0", "symfony/dependency-injection": "^5.3|^6.0", @@ -9918,7 +10002,7 @@ "description": "Provides a tight integration of Twig into the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/twig-bundle/tree/v5.4.8" + "source": "https://github.com/symfony/twig-bundle/tree/v5.4.17" }, "funding": [ { @@ -9934,20 +10018,20 @@ "type": "tidelift" } ], - "time": "2022-04-03T13:03:10+00:00" + "time": "2022-12-20T11:10:57+00:00" }, { "name": "symfony/validator", - "version": "v5.4.12", + "version": "v5.4.17", "source": { "type": "git", "url": "https://github.com/symfony/validator.git", - "reference": "38bc4d83d01b800f1fa5acaceb5ff77490b8f768" + "reference": "621b820204a238d754f7f60241fcbdb1687641ea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/38bc4d83d01b800f1fa5acaceb5ff77490b8f768", - "reference": "38bc4d83d01b800f1fa5acaceb5ff77490b8f768", + "url": "https://api.github.com/repos/symfony/validator/zipball/621b820204a238d754f7f60241fcbdb1687641ea", + "reference": "621b820204a238d754f7f60241fcbdb1687641ea", "shasum": "" }, "require": { @@ -9974,7 +10058,7 @@ "symfony/yaml": "<4.4" }, "require-dev": { - "doctrine/annotations": "^1.13", + "doctrine/annotations": "^1.13|^2", "doctrine/cache": "^1.11|^2.0", "egulias/email-validator": "^2.1.10|^3", "symfony/cache": "^4.4|^5.0|^6.0", @@ -10031,7 +10115,7 @@ "description": "Provides tools to validate values", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/validator/tree/v5.4.12" + "source": "https://github.com/symfony/validator/tree/v5.4.17" }, "funding": [ { @@ -10047,20 +10131,20 @@ "type": "tidelift" } ], - "time": "2022-08-09T11:54:29+00:00" + "time": "2022-12-21T19:20:17+00:00" }, { "name": "symfony/var-dumper", - "version": "v5.4.11", + "version": "v5.4.19", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "b8f306d7b8ef34fb3db3305be97ba8e088fb4861" + "reference": "2944bbc23f5f8da2b962fbcbf7c4a6109b2f4b7b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/b8f306d7b8ef34fb3db3305be97ba8e088fb4861", - "reference": "b8f306d7b8ef34fb3db3305be97ba8e088fb4861", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/2944bbc23f5f8da2b962fbcbf7c4a6109b2f4b7b", + "reference": "2944bbc23f5f8da2b962fbcbf7c4a6109b2f4b7b", "shasum": "" }, "require": { @@ -10120,7 +10204,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v5.4.11" + "source": "https://github.com/symfony/var-dumper/tree/v5.4.19" }, "funding": [ { @@ -10136,20 +10220,20 @@ "type": "tidelift" } ], - "time": "2022-07-20T13:00:38+00:00" + "time": "2023-01-16T10:52:33+00:00" }, { "name": "symfony/var-exporter", - "version": "v5.4.10", + "version": "v5.4.17", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "8fc03ee75eeece3d9be1ef47d26d79bea1afb340" + "reference": "2adac0a9b55f9fb40b983b790509581dc3db0fff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/8fc03ee75eeece3d9be1ef47d26d79bea1afb340", - "reference": "8fc03ee75eeece3d9be1ef47d26d79bea1afb340", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/2adac0a9b55f9fb40b983b790509581dc3db0fff", + "reference": "2adac0a9b55f9fb40b983b790509581dc3db0fff", "shasum": "" }, "require": { @@ -10193,7 +10277,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v5.4.10" + "source": "https://github.com/symfony/var-exporter/tree/v5.4.17" }, "funding": [ { @@ -10209,20 +10293,20 @@ "type": "tidelift" } ], - "time": "2022-05-27T12:56:18+00:00" + "time": "2022-12-22T10:10:04+00:00" }, { "name": "symfony/web-profiler-bundle", - "version": "v5.4.10", + "version": "v5.4.17", "source": { "type": "git", "url": "https://github.com/symfony/web-profiler-bundle.git", - "reference": "f61c99d8dbd864b11935851b598f784bcff36fc7" + "reference": "6c7635fb150af892f6a79f016b6c5386ab112922" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/f61c99d8dbd864b11935851b598f784bcff36fc7", - "reference": "f61c99d8dbd864b11935851b598f784bcff36fc7", + "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/6c7635fb150af892f6a79f016b6c5386ab112922", + "reference": "6c7635fb150af892f6a79f016b6c5386ab112922", "shasum": "" }, "require": { @@ -10273,7 +10357,7 @@ "description": "Provides a development tool that gives detailed information about the execution of any request", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/web-profiler-bundle/tree/v5.4.10" + "source": "https://github.com/symfony/web-profiler-bundle/tree/v5.4.17" }, "funding": [ { @@ -10289,20 +10373,20 @@ "type": "tidelift" } ], - "time": "2022-06-06T19:10:58+00:00" + "time": "2022-12-13T13:09:23+00:00" }, { "name": "symfony/workflow", - "version": "v5.4.11", + "version": "v5.4.17", "source": { "type": "git", "url": "https://github.com/symfony/workflow.git", - "reference": "c70047328e4b3229fb770c09ac6463d5ee88fbfc" + "reference": "245065b70912c1a4ffe78db8987b33d73586331a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/workflow/zipball/c70047328e4b3229fb770c09ac6463d5ee88fbfc", - "reference": "c70047328e4b3229fb770c09ac6463d5ee88fbfc", + "url": "https://api.github.com/repos/symfony/workflow/zipball/245065b70912c1a4ffe78db8987b33d73586331a", + "reference": "245065b70912c1a4ffe78db8987b33d73586331a", "shasum": "" }, "require": { @@ -10355,7 +10439,7 @@ "workflow" ], "support": { - "source": "https://github.com/symfony/workflow/tree/v5.4.11" + "source": "https://github.com/symfony/workflow/tree/v5.4.17" }, "funding": [ { @@ -10371,20 +10455,20 @@ "type": "tidelift" } ], - "time": "2022-07-11T15:34:21+00:00" + "time": "2022-12-21T17:19:25+00:00" }, { "name": "symfony/yaml", - "version": "v5.4.12", + "version": "v5.4.17", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "7a3aa21ac8ab1a96cc6de5bbcab4bc9fc943b18c" + "reference": "edcdc11498108f8967fe95118a7ec8624b94760e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/7a3aa21ac8ab1a96cc6de5bbcab4bc9fc943b18c", - "reference": "7a3aa21ac8ab1a96cc6de5bbcab4bc9fc943b18c", + "url": "https://api.github.com/repos/symfony/yaml/zipball/edcdc11498108f8967fe95118a7ec8624b94760e", + "reference": "edcdc11498108f8967fe95118a7ec8624b94760e", "shasum": "" }, "require": { @@ -10430,7 +10514,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v5.4.12" + "source": "https://github.com/symfony/yaml/tree/v5.4.17" }, "funding": [ { @@ -10446,20 +10530,20 @@ "type": "tidelift" } ], - "time": "2022-08-02T15:52:22+00:00" + "time": "2022-12-13T09:57:04+00:00" }, { "name": "tecnickcom/tcpdf", - "version": "6.5.0", + "version": "6.6.2", "source": { "type": "git", "url": "https://github.com/tecnickcom/TCPDF.git", - "reference": "cc54c1503685e618b23922f53635f46e87653662" + "reference": "e3cffc9bcbc76e89e167e9eb0bbda0cab7518459" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/tecnickcom/TCPDF/zipball/cc54c1503685e618b23922f53635f46e87653662", - "reference": "cc54c1503685e618b23922f53635f46e87653662", + "url": "https://api.github.com/repos/tecnickcom/TCPDF/zipball/e3cffc9bcbc76e89e167e9eb0bbda0cab7518459", + "reference": "e3cffc9bcbc76e89e167e9eb0bbda0cab7518459", "shasum": "" }, "require": { @@ -10510,7 +10594,7 @@ ], "support": { "issues": "https://github.com/tecnickcom/TCPDF/issues", - "source": "https://github.com/tecnickcom/TCPDF/tree/6.5.0" + "source": "https://github.com/tecnickcom/TCPDF/tree/6.6.2" }, "funding": [ { @@ -10518,20 +10602,20 @@ "type": "custom" } ], - "time": "2022-08-12T07:50:54+00:00" + "time": "2022-12-17T10:28:59+00:00" }, { "name": "twig/extra-bundle", - "version": "v3.4.0", + "version": "v3.5.0", "source": { "type": "git", "url": "https://github.com/twigphp/twig-extra-bundle.git", - "reference": "2e58256b0e9fe52f30149347c0547e4633304765" + "reference": "edfcdbdc943b52101011d57ec546af393dc56537" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/twig-extra-bundle/zipball/2e58256b0e9fe52f30149347c0547e4633304765", - "reference": "2e58256b0e9fe52f30149347c0547e4633304765", + "url": "https://api.github.com/repos/twigphp/twig-extra-bundle/zipball/edfcdbdc943b52101011d57ec546af393dc56537", + "reference": "edfcdbdc943b52101011d57ec546af393dc56537", "shasum": "" }, "require": { @@ -10554,7 +10638,7 @@ "type": "symfony-bundle", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "3.5-dev" } }, "autoload": { @@ -10585,7 +10669,7 @@ "twig" ], "support": { - "source": "https://github.com/twigphp/twig-extra-bundle/tree/v3.4.0" + "source": "https://github.com/twigphp/twig-extra-bundle/tree/v3.5.0" }, "funding": [ { @@ -10597,20 +10681,20 @@ "type": "tidelift" } ], - "time": "2022-01-04T13:58:53+00:00" + "time": "2022-12-27T12:23:36+00:00" }, { "name": "twig/intl-extra", - "version": "v3.4.2", + "version": "v3.5.0", "source": { "type": "git", "url": "https://github.com/twigphp/intl-extra.git", - "reference": "151e50fad9c7915bd56f0adf3f0cb3c47e6ed28a" + "reference": "92f2c73471e077d0f72195a331c9a245da2010cd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/intl-extra/zipball/151e50fad9c7915bd56f0adf3f0cb3c47e6ed28a", - "reference": "151e50fad9c7915bd56f0adf3f0cb3c47e6ed28a", + "url": "https://api.github.com/repos/twigphp/intl-extra/zipball/92f2c73471e077d0f72195a331c9a245da2010cd", + "reference": "92f2c73471e077d0f72195a331c9a245da2010cd", "shasum": "" }, "require": { @@ -10624,7 +10708,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-master": "3.5-dev" } }, "autoload": { @@ -10654,7 +10738,7 @@ "twig" ], "support": { - "source": "https://github.com/twigphp/intl-extra/tree/v3.4.2" + "source": "https://github.com/twigphp/intl-extra/tree/v3.5.0" }, "funding": [ { @@ -10666,20 +10750,20 @@ "type": "tidelift" } ], - "time": "2022-06-10T08:33:05+00:00" + "time": "2022-12-27T12:23:36+00:00" }, { "name": "twig/twig", - "version": "v2.15.2", + "version": "v2.15.4", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "3e43405a9a8b578809426339cc3780e16fba0c52" + "reference": "3e059001d6d597dd50ea7c74dd2464b4adea48d3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/3e43405a9a8b578809426339cc3780e16fba0c52", - "reference": "3e43405a9a8b578809426339cc3780e16fba0c52", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/3e059001d6d597dd50ea7c74dd2464b4adea48d3", + "reference": "3e059001d6d597dd50ea7c74dd2464b4adea48d3", "shasum": "" }, "require": { @@ -10734,7 +10818,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v2.15.2" + "source": "https://github.com/twigphp/Twig/tree/v2.15.4" }, "funding": [ { @@ -10746,7 +10830,7 @@ "type": "tidelift" } ], - "time": "2022-08-12T06:43:37+00:00" + "time": "2022-12-27T12:26:20+00:00" }, { "name": "vlucas/phpdotenv", @@ -11331,16 +11415,16 @@ }, { "name": "codeception/module-webdriver", - "version": "1.4.0", + "version": "1.4.1", "source": { "type": "git", "url": "https://github.com/Codeception/module-webdriver.git", - "reference": "baa18b7bf70aa024012f967b5ce5021e1faa9151" + "reference": "e22ac7da756df659df6dd4fac2dff9c859e30131" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/module-webdriver/zipball/baa18b7bf70aa024012f967b5ce5021e1faa9151", - "reference": "baa18b7bf70aa024012f967b5ce5021e1faa9151", + "url": "https://api.github.com/repos/Codeception/module-webdriver/zipball/e22ac7da756df659df6dd4fac2dff9c859e30131", + "reference": "e22ac7da756df659df6dd4fac2dff9c859e30131", "shasum": "" }, "require": { @@ -11381,9 +11465,9 @@ ], "support": { "issues": "https://github.com/Codeception/module-webdriver/issues", - "source": "https://github.com/Codeception/module-webdriver/tree/1.4.0" + "source": "https://github.com/Codeception/module-webdriver/tree/1.4.1" }, - "time": "2021-09-02T12:01:02+00:00" + "time": "2022-09-12T05:09:51+00:00" }, { "name": "codeception/phpunit-wrapper", @@ -11541,20 +11625,20 @@ }, { "name": "fakerphp/faker", - "version": "v1.20.0", + "version": "v1.21.0", "source": { "type": "git", "url": "https://github.com/FakerPHP/Faker.git", - "reference": "37f751c67a5372d4e26353bd9384bc03744ec77b" + "reference": "92efad6a967f0b79c499705c69b662f738cc9e4d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/37f751c67a5372d4e26353bd9384bc03744ec77b", - "reference": "37f751c67a5372d4e26353bd9384bc03744ec77b", + "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/92efad6a967f0b79c499705c69b662f738cc9e4d", + "reference": "92efad6a967f0b79c499705c69b662f738cc9e4d", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0", + "php": "^7.4 || ^8.0", "psr/container": "^1.0 || ^2.0", "symfony/deprecation-contracts": "^2.2 || ^3.0" }, @@ -11565,7 +11649,8 @@ "bamarni/composer-bin-plugin": "^1.4.1", "doctrine/persistence": "^1.3 || ^2.0", "ext-intl": "*", - "symfony/phpunit-bridge": "^4.4 || ^5.2" + "phpunit/phpunit": "^9.5.26", + "symfony/phpunit-bridge": "^5.4.16" }, "suggest": { "doctrine/orm": "Required to use Faker\\ORM\\Doctrine", @@ -11577,7 +11662,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "v1.20-dev" + "dev-main": "v1.21-dev" } }, "autoload": { @@ -11602,9 +11687,9 @@ ], "support": { "issues": "https://github.com/FakerPHP/Faker/issues", - "source": "https://github.com/FakerPHP/Faker/tree/v1.20.0" + "source": "https://github.com/FakerPHP/Faker/tree/v1.21.0" }, - "time": "2022-07-20T13:12:54+00:00" + "time": "2022-12-13T13:54:32+00:00" }, { "name": "mikey179/vfsstream", @@ -11829,16 +11914,16 @@ }, { "name": "php-webdriver/webdriver", - "version": "1.12.1", + "version": "1.13.1", "source": { "type": "git", "url": "https://github.com/php-webdriver/php-webdriver.git", - "reference": "b27ddf458d273c7d4602106fcaf978aa0b7fe15a" + "reference": "6dfe5f814b796c1b5748850aa19f781b9274c36c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-webdriver/php-webdriver/zipball/b27ddf458d273c7d4602106fcaf978aa0b7fe15a", - "reference": "b27ddf458d273c7d4602106fcaf978aa0b7fe15a", + "url": "https://api.github.com/repos/php-webdriver/php-webdriver/zipball/6dfe5f814b796c1b5748850aa19f781b9274c36c", + "reference": "6dfe5f814b796c1b5748850aa19f781b9274c36c", "shasum": "" }, "require": { @@ -11888,22 +11973,22 @@ ], "support": { "issues": "https://github.com/php-webdriver/php-webdriver/issues", - "source": "https://github.com/php-webdriver/php-webdriver/tree/1.12.1" + "source": "https://github.com/php-webdriver/php-webdriver/tree/1.13.1" }, - "time": "2022-05-03T12:16:34+00:00" + "time": "2022-10-11T11:49:44+00:00" }, { "name": "phpstan/phpstan", - "version": "1.8.2", + "version": "1.9.8", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "c53312ecc575caf07b0e90dee43883fdf90ca67c" + "reference": "45411d15bf85a33b4a8ee9b75a6e82998c9adb97" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/c53312ecc575caf07b0e90dee43883fdf90ca67c", - "reference": "c53312ecc575caf07b0e90dee43883fdf90ca67c", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/45411d15bf85a33b4a8ee9b75a6e82998c9adb97", + "reference": "45411d15bf85a33b4a8ee9b75a6e82998c9adb97", "shasum": "" }, "require": { @@ -11927,9 +12012,13 @@ "MIT" ], "description": "PHPStan - PHP Static Analysis Tool", + "keywords": [ + "dev", + "static analysis" + ], "support": { "issues": "https://github.com/phpstan/phpstan/issues", - "source": "https://github.com/phpstan/phpstan/tree/1.8.2" + "source": "https://github.com/phpstan/phpstan/tree/1.9.8" }, "funding": [ { @@ -11940,29 +12029,25 @@ "url": "https://github.com/phpstan", "type": "github" }, - { - "url": "https://www.patreon.com/phpstan", - "type": "patreon" - }, { "url": "https://tidelift.com/funding/github/packagist/phpstan/phpstan", "type": "tidelift" } ], - "time": "2022-07-20T09:57:31+00:00" + "time": "2023-01-08T21:26:18+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "9.2.17", + "version": "9.2.23", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "aa94dc41e8661fe90c7316849907cba3007b10d8" + "reference": "9f1f0f9a2fbb680b26d1cf9b61b6eac43a6e4e9c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/aa94dc41e8661fe90c7316849907cba3007b10d8", - "reference": "aa94dc41e8661fe90c7316849907cba3007b10d8", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/9f1f0f9a2fbb680b26d1cf9b61b6eac43a6e4e9c", + "reference": "9f1f0f9a2fbb680b26d1cf9b61b6eac43a6e4e9c", "shasum": "" }, "require": { @@ -12018,7 +12103,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.17" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.23" }, "funding": [ { @@ -12026,7 +12111,7 @@ "type": "github" } ], - "time": "2022-08-30T12:24:04+00:00" + "time": "2022-12-28T12:41:10+00:00" }, { "name": "phpunit/php-file-iterator", @@ -12271,16 +12356,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.5.24", + "version": "9.5.27", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "d0aa6097bef9fd42458a9b3c49da32c6ce6129c5" + "reference": "a2bc7ffdca99f92d959b3f2270529334030bba38" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/d0aa6097bef9fd42458a9b3c49da32c6ce6129c5", - "reference": "d0aa6097bef9fd42458a9b3c49da32c6ce6129c5", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/a2bc7ffdca99f92d959b3f2270529334030bba38", + "reference": "a2bc7ffdca99f92d959b3f2270529334030bba38", "shasum": "" }, "require": { @@ -12302,14 +12387,14 @@ "phpunit/php-timer": "^5.0.2", "sebastian/cli-parser": "^1.0.1", "sebastian/code-unit": "^1.0.6", - "sebastian/comparator": "^4.0.5", + "sebastian/comparator": "^4.0.8", "sebastian/diff": "^4.0.3", "sebastian/environment": "^5.1.3", - "sebastian/exporter": "^4.0.3", + "sebastian/exporter": "^4.0.5", "sebastian/global-state": "^5.0.1", "sebastian/object-enumerator": "^4.0.3", "sebastian/resource-operations": "^3.0.3", - "sebastian/type": "^3.1", + "sebastian/type": "^3.2", "sebastian/version": "^3.0.2" }, "suggest": { @@ -12353,7 +12438,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.24" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.27" }, "funding": [ { @@ -12363,9 +12448,13 @@ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", + "type": "tidelift" } ], - "time": "2022-08-30T07:42:16+00:00" + "time": "2022-12-09T07:31:23+00:00" }, { "name": "sebastian/cli-parser", @@ -12536,16 +12625,16 @@ }, { "name": "sebastian/comparator", - "version": "4.0.6", + "version": "4.0.8", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "55f4261989e546dc112258c7a75935a81a7ce382" + "reference": "fa0f136dd2334583309d32b62544682ee972b51a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/55f4261989e546dc112258c7a75935a81a7ce382", - "reference": "55f4261989e546dc112258c7a75935a81a7ce382", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a", + "reference": "fa0f136dd2334583309d32b62544682ee972b51a", "shasum": "" }, "require": { @@ -12598,7 +12687,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", - "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.6" + "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8" }, "funding": [ { @@ -12606,7 +12695,7 @@ "type": "github" } ], - "time": "2020-10-26T15:49:45+00:00" + "time": "2022-09-14T12:41:17+00:00" }, { "name": "sebastian/complexity", @@ -12730,16 +12819,16 @@ }, { "name": "sebastian/exporter", - "version": "4.0.4", + "version": "4.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "65e8b7db476c5dd267e65eea9cab77584d3cfff9" + "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/65e8b7db476c5dd267e65eea9cab77584d3cfff9", - "reference": "65e8b7db476c5dd267e65eea9cab77584d3cfff9", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", + "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", "shasum": "" }, "require": { @@ -12795,7 +12884,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.4" + "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5" }, "funding": [ { @@ -12803,7 +12892,7 @@ "type": "github" } ], - "time": "2021-11-11T14:18:36+00:00" + "time": "2022-09-14T06:03:37+00:00" }, { "name": "sebastian/global-state", @@ -13158,16 +13247,16 @@ }, { "name": "sebastian/type", - "version": "3.1.0", + "version": "3.2.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/type.git", - "reference": "fb44e1cc6e557418387ad815780360057e40753e" + "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/fb44e1cc6e557418387ad815780360057e40753e", - "reference": "fb44e1cc6e557418387ad815780360057e40753e", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e", + "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e", "shasum": "" }, "require": { @@ -13179,7 +13268,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1-dev" + "dev-master": "3.2-dev" } }, "autoload": { @@ -13202,7 +13291,7 @@ "homepage": "https://github.com/sebastianbergmann/type", "support": { "issues": "https://github.com/sebastianbergmann/type/issues", - "source": "https://github.com/sebastianbergmann/type/tree/3.1.0" + "source": "https://github.com/sebastianbergmann/type/tree/3.2.0" }, "funding": [ { @@ -13210,7 +13299,7 @@ "type": "github" } ], - "time": "2022-08-29T06:55:37+00:00" + "time": "2022-09-12T14:47:03+00:00" }, { "name": "sebastian/version", @@ -13265,71 +13354,6 @@ ], "time": "2020-09-28T06:39:44+00:00" }, - { - "name": "softcreatr/jsonpath", - "version": "0.7.5", - "source": { - "type": "git", - "url": "https://github.com/SoftCreatR/JSONPath.git", - "reference": "008569bf80aa3584834f7890781576bc7b65afa7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/SoftCreatR/JSONPath/zipball/008569bf80aa3584834f7890781576bc7b65afa7", - "reference": "008569bf80aa3584834f7890781576bc7b65afa7", - "shasum": "" - }, - "require": { - "ext-json": "*", - "php": ">=7.1" - }, - "replace": { - "flow/jsonpath": "*" - }, - "require-dev": { - "phpunit/phpunit": ">=7.0", - "roave/security-advisories": "dev-master", - "squizlabs/php_codesniffer": "^3.5" - }, - "type": "library", - "autoload": { - "psr-4": { - "Flow\\JSONPath\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Stephen Frank", - "email": "stephen@flowsa.com", - "homepage": "https://prismaticbytes.com", - "role": "Developer" - }, - { - "name": "Sascha Greuel", - "email": "hello@1-2.dev", - "homepage": "http://1-2.dev", - "role": "Developer" - } - ], - "description": "JSONPath implementation for parsing, searching and flattening arrays", - "support": { - "email": "hello@1-2.dev", - "forum": "https://github.com/SoftCreatR/JSONPath/discussions", - "issues": "https://github.com/SoftCreatR/JSONPath/issues", - "source": "https://github.com/SoftCreatR/JSONPath" - }, - "funding": [ - { - "url": "https://github.com/softcreatr", - "type": "github" - } - ], - "time": "2021-06-02T22:15:26+00:00" - }, { "name": "symfony/browser-kit", "version": "v5.4.11", @@ -13404,16 +13428,16 @@ }, { "name": "symfony/phpunit-bridge", - "version": "v5.4.11", + "version": "v5.4.17", "source": { "type": "git", "url": "https://github.com/symfony/phpunit-bridge.git", - "reference": "31b1549f54b1a1890e725a0c1c8c2de6ef2205b3" + "reference": "2232d32115383602fd7702dfd51e81178364b679" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/31b1549f54b1a1890e725a0c1c8c2de6ef2205b3", - "reference": "31b1549f54b1a1890e725a0c1c8c2de6ef2205b3", + "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/2232d32115383602fd7702dfd51e81178364b679", + "reference": "2232d32115383602fd7702dfd51e81178364b679", "shasum": "" }, "require": { @@ -13467,7 +13491,7 @@ "description": "Provides utilities for PHPUnit, especially user deprecation notices management", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/phpunit-bridge/tree/v5.4.11" + "source": "https://github.com/symfony/phpunit-bridge/tree/v5.4.17" }, "funding": [ { @@ -13483,20 +13507,20 @@ "type": "tidelift" } ], - "time": "2022-07-28T13:33:28+00:00" + "time": "2022-12-27T08:11:33+00:00" }, { "name": "symfony/polyfill-iconv", - "version": "v1.26.0", + "version": "v1.27.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-iconv.git", - "reference": "143f1881e655bebca1312722af8068de235ae5dc" + "reference": "927013f3aac555983a5059aada98e1907d842695" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/143f1881e655bebca1312722af8068de235ae5dc", - "reference": "143f1881e655bebca1312722af8068de235ae5dc", + "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/927013f3aac555983a5059aada98e1907d842695", + "reference": "927013f3aac555983a5059aada98e1907d842695", "shasum": "" }, "require": { @@ -13511,7 +13535,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.26-dev" + "dev-main": "1.27-dev" }, "thanks": { "name": "symfony/polyfill", @@ -13550,7 +13574,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-iconv/tree/v1.26.0" + "source": "https://github.com/symfony/polyfill-iconv/tree/v1.27.0" }, "funding": [ { @@ -13566,7 +13590,7 @@ "type": "tidelift" } ], - "time": "2022-05-24T11:49:31+00:00" + "time": "2022-11-03T14:55:06+00:00" }, { "name": "theseer/tokenizer", @@ -13759,16 +13783,16 @@ }, { "name": "zbateson/stream-decorators", - "version": "1.0.6", + "version": "1.0.7", "source": { "type": "git", "url": "https://github.com/zbateson/stream-decorators.git", - "reference": "3403c4323bd1cd15fe54348b031b26b064c706af" + "reference": "8f8ca208572963258b7e6d91106181706deacd10" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zbateson/stream-decorators/zipball/3403c4323bd1cd15fe54348b031b26b064c706af", - "reference": "3403c4323bd1cd15fe54348b031b26b064c706af", + "url": "https://api.github.com/repos/zbateson/stream-decorators/zipball/8f8ca208572963258b7e6d91106181706deacd10", + "reference": "8f8ca208572963258b7e6d91106181706deacd10", "shasum": "" }, "require": { @@ -13808,7 +13832,7 @@ ], "support": { "issues": "https://github.com/zbateson/stream-decorators/issues", - "source": "https://github.com/zbateson/stream-decorators/tree/1.0.6" + "source": "https://github.com/zbateson/stream-decorators/tree/1.0.7" }, "funding": [ { @@ -13816,7 +13840,7 @@ "type": "github" } ], - "time": "2021-07-08T19:01:59+00:00" + "time": "2022-09-08T15:44:55+00:00" } ], "aliases": [], @@ -13826,8 +13850,12 @@ "prefer-lowest": false, "platform": { "php": "^7.4 || ^8.0", + "ext-curl": "*", "ext-intl": "*", - "ext-mbstring": "*" + "ext-json": "*", + "ext-mbstring": "*", + "ext-openssl": "*", + "ext-zip": "*" }, "platform-dev": [], "platform-overrides": { diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index eee9a9585f7..6a3a8499be1 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -2,5 +2,8 @@ version: '3' services: ec-cube: + environment: + USER_ID: ${UID:-} + GROUP_ID: ${GID:-} volumes: - ".:/var/www/html:cached" diff --git a/docker-compose.yml b/docker-compose.yml index 1f35beb700c..caa5344305b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -19,8 +19,10 @@ volumes: services: ### ECCube4 ################################## ec-cube: - build: - context: . + ### ローカルでビルドする場合は以下のコマンドを使用します + ## docker build -t ec-cube --no-cache --pull --build-arg TAG=8.1-apache . + ## docker tag ec-cube ghcr.io/ec-cube/ec-cube-php:8.1-apache + image: ${REGISTRY:-ghcr.io}/${IMAGE_NAME:-ec-cube/ec-cube-php}:${TAG:-8.1-apache} ports: - 8080:80 - 4430:443 diff --git a/dockerbuild/docker-php-entrypoint b/dockerbuild/docker-php-entrypoint index e77990554b3..4441ddda78b 100755 --- a/dockerbuild/docker-php-entrypoint +++ b/dockerbuild/docker-php-entrypoint @@ -1,6 +1,13 @@ #!/bin/sh set -e +if [ -n "${USER_ID}" ]; then + usermod -u ${USER_ID} -o www-data +fi +if [ -n "${GROUP_ID}" ]; then + groupmod -g ${GROUP_ID} www-data +fi + if [ ! -d /var/www/html/vendor/bin ]; then composer install \ --no-scripts \ diff --git a/html/bundle/admin.bundle.js b/html/bundle/admin.bundle.js index 20fa3e7323a..cabfeb366b7 100644 --- a/html/bundle/admin.bundle.js +++ b/html/bundle/admin.bundle.js @@ -1,3 +1,3 @@ /*! For license information please see admin.bundle.js.LICENSE.txt */ -(()=>{var e={22085:(e,t,i)=>{e=i.nmd(e),function(){var e=function(){return this}();!e&&"undefined"!=typeof window&&(e=window);var t=function(e,i,n){"string"==typeof e?(2==arguments.length&&(n=i),t.modules[e]||(t.payloads[e]=n,t.modules[e]=null)):t.original?t.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace())};t.modules={},t.payloads={};var i=function(e,t,i){if("string"==typeof t){var o=r(e,t);if(null!=o)return i&&i(),o}else if("[object Array]"===Object.prototype.toString.call(t)){for(var s=[],a=0,l=t.length;a=0?parseFloat((r.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((r.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=r.match(/ Gecko\/\d+/),t.isOpera="object"==typeof opera&&"[object Opera]"==Object.prototype.toString.call(window.opera),t.isWebKit=parseFloat(r.split("WebKit/")[1])||void 0,t.isChrome=parseFloat(r.split(" Chrome/")[1])||void 0,t.isEdge=parseFloat(r.split(" Edge/")[1])||void 0,t.isAIR=r.indexOf("AdobeAIR")>=0,t.isAndroid=r.indexOf("Android")>=0,t.isChromeOS=r.indexOf(" CrOS ")>=0,t.isIOS=/iPad|iPhone|iPod/.test(r)&&!window.MSStream,t.isIOS&&(t.isMac=!0),t.isMobile=t.isIOS||t.isAndroid})),ace.define("ace/lib/dom",["require","exports","module","ace/lib/useragent"],(function(e,t,i){"use strict";function n(){var e=a;a=null,e&&e.forEach((function(e){o(e[0],e[1])}))}function o(e,i,o){if("undefined"!=typeof document){if(a)if(o)n();else if(!1===o)return a.push([e,i]);if(!s){var r=o;o&&o.getRootNode&&(r=o.getRootNode())&&r!=o||(r=document);var l=r.ownerDocument||r;if(i&&t.hasCssString(i,r))return null;i&&(e+="\n/*# sourceURL=ace/css/"+i+" */");var c=t.createElement("style");c.appendChild(l.createTextNode(e)),i&&(c.id=i),r==l&&(r=t.getDocumentHead(l)),r.insertBefore(c,r.firstChild)}}}var r=e("./useragent");t.buildDom=function e(t,i,n){if("string"==typeof t&&t){var o=document.createTextNode(t);return i&&i.appendChild(o),o}if(!Array.isArray(t))return t&&t.appendChild&&i&&i.appendChild(t),t;if("string"!=typeof t[0]||!t[0]){for(var r=[],s=0;s=1.5,r.isChromeOS&&(t.HI_DPI=!1),"undefined"!=typeof document){var l=document.createElement("div");t.HI_DPI&&void 0!==l.style.transform&&(t.HAS_CSS_TRANSFORMS=!0),!r.isEdge&&void 0!==l.style.animationName&&(t.HAS_CSS_ANIMATION=!0),l=null}t.HAS_CSS_TRANSFORMS?t.translate=function(e,t,i){e.style.transform="translate("+Math.round(t)+"px, "+Math.round(i)+"px)"}:t.translate=function(e,t,i){e.style.top=Math.round(i)+"px",e.style.left=Math.round(t)+"px"}})),ace.define("ace/lib/oop",["require","exports","module"],(function(e,t,i){"use strict";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var i in t)e[i]=t[i];return e},t.implement=function(e,i){t.mixin(e,i)}})),ace.define("ace/lib/keys",["require","exports","module","ace/lib/oop"],(function(e,t,i){"use strict";var n=e("./oop"),o=function(){var e,t,i={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta",91:"MetaLeft",92:"MetaRight",93:"ContextMenu"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,super:8,meta:8,command:8,cmd:8,control:1},FUNCTION_KEYS:{8:"Backspace",9:"Tab",13:"Return",19:"Pause",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"Print",45:"Insert",46:"Delete",96:"Numpad0",97:"Numpad1",98:"Numpad2",99:"Numpad3",100:"Numpad4",101:"Numpad5",102:"Numpad6",103:"Numpad7",104:"Numpad8",105:"Numpad9","-13":"NumpadEnter",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"Numlock",145:"Scrolllock"},PRINTABLE_KEYS:{32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",107:"+",109:"-",110:".",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",111:"/",106:"*"}};for(t in i.FUNCTION_KEYS)e=i.FUNCTION_KEYS[t].toLowerCase(),i[e]=parseInt(t,10);for(t in i.PRINTABLE_KEYS)e=i.PRINTABLE_KEYS[t].toLowerCase(),i[e]=parseInt(t,10);return n.mixin(i,i.MODIFIER_KEYS),n.mixin(i,i.PRINTABLE_KEYS),n.mixin(i,i.FUNCTION_KEYS),i.enter=i.return,i.escape=i.esc,i.del=i.delete,i[173]="-",function(){for(var e=["cmd","ctrl","alt","shift"],t=Math.pow(2,e.length);t--;)i.KEY_MODS[t]=e.filter((function(e){return t&i.KEY_MODS[e]})).join("-")+"-"}(),i.KEY_MODS[0]="",i.KEY_MODS[-1]="input-",i}();n.mixin(t,o),t.keyCodeToString=function(e){var t=o[e];return"string"!=typeof t&&(t=String.fromCharCode(e)),t.toLowerCase()}})),ace.define("ace/lib/event",["require","exports","module","ace/lib/keys","ace/lib/useragent"],(function(e,t,i){"use strict";function n(){return null==a&&function(){a=!1;try{document.createComment("").addEventListener("test",(function(){}),{get passive(){a={passive:!1}}})}catch(e){}}(),a}function o(e,t,i){this.elem=e,this.type=t,this.callback=i}function r(e,t,i){var n=f(t);if(!c.isMac&&d){if(t.getModifierState&&(t.getModifierState("OS")||t.getModifierState("Win"))&&(n|=8),d.altGr){if(3==(3&n))return;d.altGr=0}if(18===i||17===i){var o="location"in t?t.location:t.keyLocation;17===i&&1===o?1==d[i]&&(u=t.timeStamp):18===i&&3===n&&2===o&&t.timeStamp-u<50&&(d.altGr=!0)}}if(i in l.MODIFIER_KEYS&&(i=-1),n||13!==i||3!==(o="location"in t?t.location:t.keyLocation)||(e(t,n,-i),!t.defaultPrevented)){if(c.isChromeOS&&8&n){if(e(t,n,i),t.defaultPrevented)return;n&=-9}return!!(n||i in l.FUNCTION_KEYS||i in l.PRINTABLE_KEYS)&&e(t,n,i)}}function s(){d=Object.create(null)}var a,l=e("./keys"),c=e("./useragent"),d=null,u=0;o.prototype.destroy=function(){p(this.elem,this.type,this.callback),this.elem=this.type=this.callback=void 0};var h=t.addListener=function(e,t,i,r){e.addEventListener(t,i,n()),r&&r.$toDestroy.push(new o(e,t,i))},p=t.removeListener=function(e,t,i){e.removeEventListener(t,i,n())};t.stopEvent=function(e){return t.stopPropagation(e),t.preventDefault(e),!1},t.stopPropagation=function(e){e.stopPropagation&&e.stopPropagation()},t.preventDefault=function(e){e.preventDefault&&e.preventDefault()},t.getButton=function(e){return"dblclick"==e.type?0:"contextmenu"==e.type||c.isMac&&e.ctrlKey&&!e.altKey&&!e.shiftKey?2:e.button},t.capture=function(e,t,i){function n(e){t&&t(e),i&&i(e),p(o,"mousemove",t),p(o,"mouseup",n),p(o,"dragstart",n)}var o=e&&e.ownerDocument||document;return h(o,"mousemove",t),h(o,"mouseup",n),h(o,"dragstart",n),n},t.addMouseWheelListener=function(e,t,i){h(e,"wheel",(function(e){var i=e.deltaX||0,n=e.deltaY||0;switch(e.deltaMode){case e.DOM_DELTA_PIXEL:e.wheelX=.15*i,e.wheelY=.15*n;break;case e.DOM_DELTA_LINE:e.wheelX=15*i,e.wheelY=15*n;break;case e.DOM_DELTA_PAGE:e.wheelX=150*i,e.wheelY=150*n}t(e)}),i)},t.addMultiMouseDownListener=function(e,i,n,o,r){function s(e){if(0!==t.getButton(e)?u=0:e.detail>1?++u>4&&(u=1):u=1,c.isIE){var r=Math.abs(e.clientX-a)>5||Math.abs(e.clientY-l)>5;d&&!r||(u=1),d&&clearTimeout(d),d=setTimeout((function(){d=null}),i[u-1]||600),1==u&&(a=e.clientX,l=e.clientY)}if(e._clicks=u,n[o]("mousedown",e),u>4)u=0;else if(u>1)return n[o](p[u],e)}var a,l,d,u=0,p={2:"dblclick",3:"tripleclick",4:"quadclick"};Array.isArray(e)||(e=[e]),e.forEach((function(e){h(e,"mousedown",s,r)}))};var f=function(e){return 0|(e.ctrlKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.metaKey?8:0)};if(t.getModifierString=function(e){return l.KEY_MODS[f(e)]},t.addCommandKeyListener=function(e,i,n){if(c.isOldGecko||c.isOpera&&!("KeyboardEvent"in window)){var o=null;h(e,"keydown",(function(e){o=e.keyCode}),n),h(e,"keypress",(function(e){return r(i,e,o)}),n)}else{var a=null;h(e,"keydown",(function(e){d[e.keyCode]=(d[e.keyCode]||0)+1;var t=r(i,e,e.keyCode);return a=e.defaultPrevented,t}),n),h(e,"keypress",(function(e){a&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),a=null)}),n),h(e,"keyup",(function(e){d[e.keyCode]=null}),n),d||(s(),h(window,"focus",s))}},"object"==typeof window&&window.postMessage&&!c.isOldIE){var g=1;t.nextTick=function(e,i){i=i||window;var n="zero-timeout-message-"+g++,o=function(r){r.data==n&&(t.stopPropagation(r),p(i,"message",o),e())};h(i,"message",o),i.postMessage(n,"*")}}t.$idleBlocked=!1,t.onIdle=function(e,i){return setTimeout((function i(){t.$idleBlocked?setTimeout(i,100):e()}),i)},t.$idleBlockId=null,t.blockIdle=function(e){t.$idleBlockId&&clearTimeout(t.$idleBlockId),t.$idleBlocked=!0,t.$idleBlockId=setTimeout((function(){t.$idleBlocked=!1}),e||100)},t.nextFrame="object"==typeof window&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(e){setTimeout(e,17)}})),ace.define("ace/range",["require","exports","module"],(function(e,t,i){"use strict";var n=function(e,t,i,n){this.start={row:e,column:t},this.end={row:i,column:n}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(e,t){return 0==this.compare(e,t)},this.compareRange=function(e){var t,i=e.end,n=e.start;return 1==(t=this.compare(i.row,i.column))?1==(t=this.compare(n.row,n.column))?2:0==t?1:0:-1==t?-2:-1==(t=this.compare(n.row,n.column))?-1:1==t?42:0},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return 0==this.comparePoint(e.start)&&0==this.comparePoint(e.end)},this.intersects=function(e){var t=this.compareRange(e);return-1==t||0==t||1==t},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){"object"==typeof e?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){"object"==typeof e?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return 0==this.compare(e,t)&&!this.isEnd(e,t)&&!this.isStart(e,t)},this.insideStart=function(e,t){return 0==this.compare(e,t)&&!this.isEnd(e,t)},this.insideEnd=function(e,t){return 0==this.compare(e,t)&&!this.isStart(e,t)},this.compare=function(e,t){return this.isMultiLine()||e!==this.start.row?ethis.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0:tthis.end.column?1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var i={row:t+1,column:0};else this.end.rowt)var o={row:t+1,column:0};else this.start.row0;)1&t&&(i+=e),(t>>=1)&&(e+=e);return i};var n=/^\s\s*/,o=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(n,"")},t.stringTrimRight=function(e){return e.replace(o,"")},t.copyObject=function(e){var t={};for(var i in e)t[i]=e[i];return t},t.copyArray=function(e){for(var t=[],i=0,n=e.length;iDate.now()-50)||(n=!1)},cancel:function(){n=Date.now()}}})),ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/clipboard","ace/lib/keys"],(function(e,t,i){"use strict";var n=e("../lib/event"),o=e("../lib/useragent"),r=e("../lib/dom"),s=e("../lib/lang"),a=e("../clipboard"),l=o.isChrome<18,c=o.isIE,d=o.isChrome>63,u=400,h=e("../lib/keys"),p=h.KEY_MODS,f=o.isIOS,g=f?/\s/:/\n/,m=o.isMobile;t.TextInput=function(e,t){function i(){E=!0,b.blur(),b.focus(),E=!1}function A(){clearTimeout(H),H=setTimeout((function(){x&&(b.style.cssText=x,x=""),t.renderer.$isMousePressed=!1,t.renderer.$keepTextAreaAtCursor&&t.renderer.$moveTextAreaToCursor()}),0)}var b=r.createElement("textarea");b.className="ace_text-input",b.setAttribute("wrap","off"),b.setAttribute("autocorrect","off"),b.setAttribute("autocapitalize","off"),b.setAttribute("spellcheck",!1),b.style.opacity="0",e.insertBefore(b,e.firstChild);var v=!1,C=!1,y=!1,w=!1,x="";m||(b.style.fontSize="1px");var _=!1,E=!1,k="",S=0,T=0,M=0;try{var B=document.activeElement===b}catch(e){}n.addListener(b,"blur",(function(e){E||(t.onBlur(e),B=!1)}),t),n.addListener(b,"focus",(function(e){if(!E){if(B=!0,o.isEdge)try{if(!document.hasFocus())return}catch(e){}t.onFocus(e),o.isEdge?setTimeout(R):R()}}),t),this.$focusScroll=!1,this.focus=function(){if(x||d||"browser"==this.$focusScroll)return b.focus({preventScroll:!0});var e=b.style.top;b.style.position="fixed",b.style.top="0px";try{var t=0!=b.getBoundingClientRect().top}catch(e){return}var i=[];if(t)for(var n=b.parentElement;n&&1==n.nodeType;)i.push(n),n.setAttribute("ace_nocontext",!0),n=!n.parentElement&&n.getRootNode?n.getRootNode().host:n.parentElement;b.focus({preventScroll:!0}),t&&i.forEach((function(e){e.removeAttribute("ace_nocontext")})),setTimeout((function(){b.style.position="","0px"==b.style.top&&(b.style.top=e)}),0)},this.blur=function(){b.blur()},this.isFocused=function(){return B},t.on("beforeEndOperation",(function(){var e=t.curOp,i=e&&e.command&&e.command.name;if("insertstring"!=i){var n=i&&(e.docChanged||e.selectionChanged);y&&n&&(k=b.value="",W()),R()}}));var R=f?function(e){if(B&&(!v||e)&&!w){e||(e="");var i="\n ab"+e+"cde fg\n";i!=b.value&&(b.value=k=i);var n=4+(e.length||(t.selection.isEmpty()?0:1));(4!=S||T!=n)&&b.setSelectionRange(4,n),S=4,T=n}}:function(){if(!y&&!w&&(B||L)){y=!0;var e=0,i=0,n="";if(t.session){var o=t.selection,r=o.getRange(),s=o.cursor.row;if(e=r.start.column,i=r.end.column,n=t.session.getLine(s),r.start.row!=s){var a=t.session.getLine(s-1);e=r.start.rows+1?l.length:i,i+=n.length+1,n=n+"\n"+l}else m&&s>0&&(n="\n"+n,i+=1,e+=1);n.length>u&&(e0&&k[u]==e[u];)u++,s--;for(l=l.slice(u),u=1;a>0&&k.length-u>S-1&&k[k.length-u]==e[e.length-u];)u++,a--;c-=u-1,d-=u-1;var h=l.length-u+1;if(h<0&&(s=-h,h=0),l=l.slice(0,h),!(i||l||c||s||a||d))return"";w=!0;var p=!1;return o.isAndroid&&". "==l&&(l=" ",p=!0),l&&!s&&!a&&!c&&!d||_?t.onTextInput(l):t.onTextInput(l,{extendLeft:s,extendRight:a,restoreStart:c,restoreEnd:d}),w=!1,k=e,S=n,T=r,M=d,p?"\n":l},O=function(e){if(y)return j();if(e&&e.inputType){if("historyUndo"==e.inputType)return t.execCommand("undo");if("historyRedo"==e.inputType)return t.execCommand("redo")}var i=b.value,n=D(i,!0);(i.length>500||g.test(n)||m&&S<1&&S==T)&&R()},$=function(e,t,i){var n=e.clipboardData||window.clipboardData;if(n&&!l){var o=c||i?"Text":"text/plain";try{return t?!1!==n.setData(o,t):n.getData(o)}catch(e){if(!i)return $(e,t,!0)}}},P=function(e,i){var o=t.getCopyText();if(!o)return n.preventDefault(e);$(e,o)?(f&&(R(o),v=o,setTimeout((function(){v=!1}),10)),i?t.onCut():t.onCopy(),n.preventDefault(e)):(v=!0,b.value=o,b.select(),setTimeout((function(){v=!1,R(),i?t.onCut():t.onCopy()})))},N=function(e){P(e,!0)},F=function(e){P(e,!1)},U=function(e){var i=$(e);a.pasteCancelled()||("string"==typeof i?(i&&t.onPaste(i,e),o.isIE&&setTimeout(R),n.preventDefault(e)):(b.value="",C=!0))};n.addCommandKeyListener(b,t.onCommandKey.bind(t),t),n.addListener(b,"select",(function(e){y||(v?v=!1:function(e){return 0===e.selectionStart&&e.selectionEnd>=k.length&&e.value===k&&k&&e.selectionEnd!==T}(b)?(t.selectAll(),R()):m&&b.selectionStart!=S&&R())}),t),n.addListener(b,"input",O,t),n.addListener(b,"cut",N,t),n.addListener(b,"copy",F,t),n.addListener(b,"paste",U,t),(!("oncut"in b)||!("oncopy"in b)||!("onpaste"in b))&&n.addListener(e,"keydown",(function(e){if((!o.isMac||e.metaKey)&&e.ctrlKey)switch(e.keyCode){case 67:F(e);break;case 86:U(e);break;case 88:N(e)}}),t);var j=function(){if(y&&t.onCompositionUpdate&&!t.$readOnly){if(_)return i();if(y.useTextareaForIME)t.onCompositionUpdate(b.value);else{var e=b.value;D(e),y.markerRange&&(y.context&&(y.markerRange.start.column=y.selectionStart=y.context.compositionStartOffset),y.markerRange.end.column=y.markerRange.start.column+T-y.selectionStart+M)}}},W=function(e){t.onCompositionEnd&&!t.$readOnly&&(y=!1,t.onCompositionEnd(),t.off("mousedown",i),e&&O())},z=s.delayedCall(j,50).schedule.bind(null,null);n.addListener(b,"compositionstart",(function(e){if(!y&&t.onCompositionStart&&!t.$readOnly&&(y={},!_)){e.data&&(y.useTextareaForIME=!1),setTimeout(j,0),t._signal("compositionStart"),t.on("mousedown",i);var n=t.getSelectionRange();n.end.row=n.start.row,n.end.column=n.start.column,y.markerRange=n,y.selectionStart=S,t.onCompositionStart(y),y.useTextareaForIME?(k=b.value="",S=0,T=0):(b.msGetInputContext&&(y.context=b.msGetInputContext()),b.getInputContext&&(y.context=b.getInputContext()))}}),t),n.addListener(b,"compositionupdate",j,t),n.addListener(b,"keyup",(function(e){27==e.keyCode&&b.value.lengthT&&"\n"==k[r]?s=h.end:nT&&k.slice(0,r).split("\n").length>2?s=h.down:r>T&&" "==k[r-1]?(s=h.right,a=p.option):(r>T||r==T&&T!=S&&n==r)&&(s=h.right),n!==r&&(a|=p.shift),s){if(!t.onCommandKey({},a,s)&&t.commands){s=h.keyCodeToString(s);var l=t.commands.findKeyCommand(a,s);l&&t.execCommand(l)}S=n,T=r,R("")}}};document.addEventListener("selectionchange",r),t.on("destroy",(function(){document.removeEventListener("selectionchange",r)}))}(0,t,b)},t.$setUserAgentForTests=function(e,t){m=e,f=t}})),ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/useragent"],(function(e,t,i){"use strict";function n(e){e.$clickSelection=null;var t=e.editor;t.setDefaultHandler("mousedown",this.onMouseDown.bind(e)),t.setDefaultHandler("dblclick",this.onDoubleClick.bind(e)),t.setDefaultHandler("tripleclick",this.onTripleClick.bind(e)),t.setDefaultHandler("quadclick",this.onQuadClick.bind(e)),t.setDefaultHandler("mousewheel",this.onMouseWheel.bind(e)),["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"].forEach((function(t){e[t]=this[t]}),this),e.selectByLines=this.extendSelectionBy.bind(e,"getLineRange"),e.selectByWords=this.extendSelectionBy.bind(e,"getWordRange")}function o(e,t){if(e.start.row==e.end.row)var i=2*t.column-e.start.column-e.end.column;else if(e.start.row!=e.end.row-1||e.start.column||e.end.column)i=2*t.row-e.start.row-e.end.row;else i=t.column-4;return i<0?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}var r=e("../lib/useragent");(function(){this.onMouseDown=function(e){var t=e.inSelection(),i=e.getDocumentPosition();this.mousedownEvent=e;var n=this.editor,o=e.getButton();return 0!==o?((n.getSelectionRange().isEmpty()||1==o)&&n.selection.moveToPosition(i),void(2==o&&(n.textInput.onContextMenu(e.domEvent),r.isMozilla||e.preventDefault()))):(this.mousedownEvent.time=Date.now(),!t||n.isFocused()||(n.focus(),!this.$focusTimeout||this.$clickSelection||n.inMultiSelectMode)?(this.captureMouse(e),this.startSelect(i,e.domEvent._clicks>1),e.preventDefault()):(this.setState("focusWait"),void this.captureMouse(e)))},this.startSelect=function(e,t){e=e||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var i=this.editor;this.mousedownEvent&&(this.mousedownEvent.getShiftKey()?i.selection.selectToPosition(e):t||i.selection.moveToPosition(e),t||this.select(),i.renderer.scroller.setCapture&&i.renderer.scroller.setCapture(),i.setStyle("ace_selecting"),this.setState("select"))},this.select=function(){var e,t=this.editor,i=t.renderer.screenToTextCoordinates(this.x,this.y);if(this.$clickSelection){var n=this.$clickSelection.comparePoint(i);if(-1==n)e=this.$clickSelection.end;else if(1==n)e=this.$clickSelection.start;else{var r=o(this.$clickSelection,i);i=r.cursor,e=r.anchor}t.selection.setSelectionAnchor(e.row,e.column)}t.selection.selectToPosition(i),t.renderer.scrollCursorIntoView()},this.extendSelectionBy=function(e){var t,i=this.editor,n=i.renderer.screenToTextCoordinates(this.x,this.y),r=i.selection[e](n.row,n.column);if(this.$clickSelection){var s=this.$clickSelection.comparePoint(r.start),a=this.$clickSelection.comparePoint(r.end);if(-1==s&&a<=0)t=this.$clickSelection.end,r.end.row==n.row&&r.end.column==n.column||(n=r.start);else if(1==a&&s>=0)t=this.$clickSelection.start,r.start.row==n.row&&r.start.column==n.column||(n=r.end);else if(-1==s&&1==a)n=r.end,t=r.start;else{var l=o(this.$clickSelection,n);n=l.cursor,t=l.anchor}i.selection.setSelectionAnchor(t.row,t.column)}i.selection.selectToPosition(n),i.renderer.scrollCursorIntoView()},this.selectEnd=this.selectAllEnd=this.selectByWordsEnd=this.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting"),this.editor.renderer.scroller.releaseCapture&&this.editor.renderer.scroller.releaseCapture()},this.focusWait=function(){var e=function(e,t,i,n){return Math.sqrt(Math.pow(i-e,2)+Math.pow(n-t,2))}(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),t=Date.now();(e>0||t-this.mousedownEvent.time>this.$focusTimeout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},this.onDoubleClick=function(e){var t=e.getDocumentPosition(),i=this.editor,n=i.session.getBracketRange(t);n?(n.isEmpty()&&(n.start.column--,n.end.column++),this.setState("select")):(n=i.selection.getWordRange(t.row,t.column),this.setState("selectByWords")),this.$clickSelection=n,this.select()},this.onTripleClick=function(e){var t=e.getDocumentPosition(),i=this.editor;this.setState("selectByLines");var n=i.getSelectionRange();n.isMultiLine()&&n.contains(t.row,t.column)?(this.$clickSelection=i.selection.getLineRange(n.start.row),this.$clickSelection.end=i.selection.getLineRange(n.end.row).end):this.$clickSelection=i.selection.getLineRange(t.row),this.select()},this.onQuadClick=function(e){var t=this.editor;t.selectAll(),this.$clickSelection=t.getSelectionRange(),this.setState("selectAll")},this.onMouseWheel=function(e){if(!e.getAccelKey()){e.getShiftKey()&&e.wheelY&&!e.wheelX&&(e.wheelX=e.wheelY,e.wheelY=0);var t=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var i=this.$lastScroll,n=e.domEvent.timeStamp,o=n-i.t,r=o?e.wheelX/o:i.vx,s=o?e.wheelY/o:i.vy;o<550&&(r=(r+i.vx)/2,s=(s+i.vy)/2);var a=Math.abs(r/s),l=!1;return a>=1&&t.renderer.isScrollableBy(e.wheelX*e.speed,0)&&(l=!0),a<=1&&t.renderer.isScrollableBy(0,e.wheelY*e.speed)&&(l=!0),l?i.allowed=n:n-i.allowed<550&&(Math.abs(r)<=1.5*Math.abs(i.vx)&&Math.abs(s)<=1.5*Math.abs(i.vy)?(l=!0,i.allowed=n):i.allowed=0),i.t=n,i.vx=r,i.vy=s,l?(t.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()):void 0}}}).call(n.prototype),t.DefaultHandlers=n})),ace.define("ace/tooltip",["require","exports","module","ace/lib/oop","ace/lib/dom"],(function(e,t,i){"use strict";function n(e){this.isOpen=!1,this.$element=null,this.$parentNode=e}e("./lib/oop");var o=e("./lib/dom");(function(){this.$init=function(){return this.$element=o.createElement("div"),this.$element.className="ace_tooltip",this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},this.getElement=function(){return this.$element||this.$init()},this.setText=function(e){this.getElement().textContent=e},this.setHtml=function(e){this.getElement().innerHTML=e},this.setPosition=function(e,t){this.getElement().style.left=e+"px",this.getElement().style.top=t+"px"},this.setClassName=function(e){o.addCssClass(this.getElement(),e)},this.show=function(e,t,i){null!=e&&this.setText(e),null!=t&&null!=i&&this.setPosition(t,i),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},this.hide=function(){this.isOpen&&(this.getElement().style.display="none",this.isOpen=!1)},this.getHeight=function(){return this.getElement().offsetHeight},this.getWidth=function(){return this.getElement().offsetWidth},this.destroy=function(){this.isOpen=!1,this.$element&&this.$element.parentNode&&this.$element.parentNode.removeChild(this.$element)}}).call(n.prototype),t.Tooltip=n})),ace.define("ace/mouse/default_gutter_handler",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event","ace/tooltip"],(function(e,t,i){"use strict";function n(e){a.call(this,e)}var o=e("../lib/dom"),r=e("../lib/oop"),s=e("../lib/event"),a=e("../tooltip").Tooltip;r.inherits(n,a),function(){this.setPosition=function(e,t){var i=window.innerWidth||document.documentElement.clientWidth,n=window.innerHeight||document.documentElement.clientHeight,o=this.getWidth(),r=this.getHeight();(e+=15)+o>i&&(e-=e+o-i),(t+=15)+r>n&&(t-=20+r),a.prototype.setPosition.call(this,e,t)}}.call(n.prototype),t.GutterHandler=function(e){function t(){var t=l.getDocumentPosition().row,n=u.$annotations[t];if(!n)return i();if(t==d.session.getLength()){var o=d.renderer.pixelToScreenCoordinates(0,l.y).row,s=l.$pos;if(o>d.session.documentToScreenRow(s.row,s.column))return i()}if(c!=n)if(c=n.text.join("
"),h.setHtml(c),h.show(),d._signal("showGutterTooltip",h),d.on("mousewheel",i),e.$tooltipFollowsMouse)r(l);else{var a=l.domEvent.target.getBoundingClientRect(),p=h.getElement().style;p.left=a.right+"px",p.top=a.bottom+"px"}}function i(){a&&(a=clearTimeout(a)),c&&(h.hide(),c=null,d._signal("hideGutterTooltip",h),d.off("mousewheel",i))}function r(e){h.setPosition(e.x,e.y)}var a,l,c,d=e.editor,u=d.renderer.$gutterLayer,h=new n(d.container);e.editor.setDefaultHandler("guttermousedown",(function(t){if(d.isFocused()&&0==t.getButton()&&"foldWidgets"!=u.getRegion(t)){var i=t.getDocumentPosition().row,n=d.session.selection;if(t.getShiftKey())n.selectTo(i,0);else{if(2==t.domEvent.detail)return d.selectAll(),t.preventDefault();e.$clickSelection=d.selection.getLineRange(i)}return e.setState("selectByLines"),e.captureMouse(t),t.preventDefault()}})),e.editor.setDefaultHandler("guttermousemove",(function(n){var s=n.domEvent.target||n.domEvent.srcElement;if(o.hasCssClass(s,"ace_fold-widget"))return i();c&&e.$tooltipFollowsMouse&&r(n),l=n,a||(a=setTimeout((function(){a=null,l&&!e.isMousePressed?t():i()}),50))})),s.addListener(d.renderer.$gutter,"mouseout",(function(e){l=null,c&&!a&&(a=setTimeout((function(){a=null,i()}),50))}),d),d.on("changeSession",i)}})),ace.define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],(function(e,t,i){"use strict";var n=e("../lib/event"),o=e("../lib/useragent"),r=t.MouseEvent=function(e,t){this.domEvent=e,this.editor=t,this.x=this.clientX=e.clientX,this.y=this.clientY=e.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1};(function(){this.stopPropagation=function(){n.stopPropagation(this.domEvent),this.propagationStopped=!0},this.preventDefault=function(){n.preventDefault(this.domEvent),this.defaultPrevented=!0},this.stop=function(){this.stopPropagation(),this.preventDefault()},this.getDocumentPosition=function(){return this.$pos||(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY)),this.$pos},this.inSelection=function(){if(null!==this.$inSelection)return this.$inSelection;var e=this.editor.getSelectionRange();if(e.isEmpty())this.$inSelection=!1;else{var t=this.getDocumentPosition();this.$inSelection=e.contains(t.row,t.column)}return this.$inSelection},this.getButton=function(){return n.getButton(this.domEvent)},this.getShiftKey=function(){return this.domEvent.shiftKey},this.getAccelKey=o.isMac?function(){return this.domEvent.metaKey}:function(){return this.domEvent.ctrlKey}}).call(r.prototype)})),ace.define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],(function(e,t,i){"use strict";function n(e){function t(){var e=y;(function(e,t){var i=Date.now(),n=!t||e.row!=t.row,r=!t||e.column!=t.column;!E||n||r?(f.moveCursorToPosition(e),E=i,k={x:A,y:b}):o(k.x,k.y,A,b)>d?E=null:i-E>=c&&(f.renderer.scrollCursorIntoView(),E=null)})(y=f.renderer.screenToTextCoordinates(A,b),e),function(e,t){var i=Date.now(),n=f.renderer.layerConfig.lineHeight,o=f.renderer.layerConfig.characterWidth,r=f.renderer.scroller.getBoundingClientRect(),s={x:{left:A-r.left,right:r.right-A},y:{top:b-r.top,bottom:r.bottom-b}},a=Math.min(s.x.left,s.x.right),c=Math.min(s.y.top,s.y.bottom),d={row:e.row,column:e.column};a/o<=2&&(d.column+=s.x.left=l&&f.renderer.scrollCursorIntoView(d):_=i:_=null}(y,e)}function i(){C=f.selection.toOrientedRange(),m=f.session.addMarker(C,"ace_selection",f.getSelectionStyle()),f.clearSelection(),f.isFocused()&&f.renderer.$cursorLayer.setBlinking(!1),clearInterval(v),t(),v=setInterval(t,20),T=0,s.addListener(document,"mousemove",u)}function n(){clearInterval(v),f.session.removeMarker(m),m=null,f.selection.fromOrientedRange(C),f.isFocused()&&!x&&f.$resetCursorStyle(),C=null,y=null,T=0,_=null,E=null,s.removeListener(document,"mousemove",u)}function u(){null==M&&(M=setTimeout((function(){null!=M&&m&&n()}),20))}function h(e){var t=e.types;return!t||Array.prototype.some.call(t,(function(e){return"text/plain"==e||"Text"==e}))}function p(e){var t=["copy","copymove","all","uninitialized"],i=a.isMac?e.altKey:e.ctrlKey,n="uninitialized";try{n=e.dataTransfer.effectAllowed.toLowerCase()}catch(e){}var o="none";return i&&t.indexOf(n)>=0?o="copy":["move","copymove","linkmove","all","uninitialized"].indexOf(n)>=0?o="move":t.indexOf(n)>=0&&(o="copy"),o}var f=e.editor,g=r.createElement("div");g.style.cssText="top:-100px;position:absolute;z-index:2147483647;opacity:0.5",g.textContent=" ",["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"].forEach((function(t){e[t]=this[t]}),this),f.on("mousedown",this.onMouseDown.bind(e));var m,A,b,v,C,y,w,x,_,E,k,S=f.container,T=0;this.onDragStart=function(e){if(this.cancelDrag||!S.draggable){var t=this;return setTimeout((function(){t.startSelect(),t.captureMouse(e)}),0),e.preventDefault()}C=f.getSelectionRange();var i=e.dataTransfer;i.effectAllowed=f.getReadOnly()?"copy":"copyMove",f.container.appendChild(g),i.setDragImage&&i.setDragImage(g,0,0),setTimeout((function(){f.container.removeChild(g)})),i.clearData(),i.setData("Text",f.session.getTextRange()),x=!0,this.setState("drag")},this.onDragEnd=function(e){if(S.draggable=!1,x=!1,this.setState(null),!f.getReadOnly()){var t=e.dataTransfer.dropEffect;!w&&"move"==t&&f.session.remove(f.getSelectionRange()),f.$resetCursorStyle()}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(e){if(!f.getReadOnly()&&h(e.dataTransfer))return A=e.clientX,b=e.clientY,m||i(),T++,e.dataTransfer.dropEffect=w=p(e),s.preventDefault(e)},this.onDragOver=function(e){if(!f.getReadOnly()&&h(e.dataTransfer))return A=e.clientX,b=e.clientY,m||(i(),T++),null!==M&&(M=null),e.dataTransfer.dropEffect=w=p(e),s.preventDefault(e)},this.onDragLeave=function(e){if(--T<=0&&m)return n(),w=null,s.preventDefault(e)},this.onDrop=function(e){if(y){var t=e.dataTransfer;if(x)switch(w){case"move":C=C.contains(y.row,y.column)?{start:y,end:y}:f.moveText(C,y);break;case"copy":C=f.moveText(C,y,!0)}else{var i=t.getData("Text");C={start:y,end:f.session.insert(y,i)},f.focus(),w=null}return n(),s.preventDefault(e)}},s.addListener(S,"dragstart",this.onDragStart.bind(e),f),s.addListener(S,"dragend",this.onDragEnd.bind(e),f),s.addListener(S,"dragenter",this.onDragEnter.bind(e),f),s.addListener(S,"dragover",this.onDragOver.bind(e),f),s.addListener(S,"dragleave",this.onDragLeave.bind(e),f),s.addListener(S,"drop",this.onDrop.bind(e),f);var M=null}function o(e,t,i,n){return Math.sqrt(Math.pow(i-e,2)+Math.pow(n-t,2))}var r=e("../lib/dom"),s=e("../lib/event"),a=e("../lib/useragent"),l=200,c=200,d=5;(function(){this.dragWait=function(){Date.now()-this.mousedownEvent.time>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){this.editor.container.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(e){this.editor.$resetCursorStyle(),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var e=this.editor;e.container.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle("ace_dragging");var t=a.isWin?"default":"move";e.renderer.setCursorStyle(t),this.setState("dragReady")},this.onMouseDrag=function(e){var t=this.editor.container;a.isIE&&"dragReady"==this.state&&o(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y)>3&&t.dragDrop(),"dragWait"===this.state&&o(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y)>0&&(t.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))},this.onMouseDown=function(e){if(this.$dragEnabled){this.mousedownEvent=e;var t=this.editor,i=e.inSelection(),n=e.getButton();if(1===(e.domEvent.detail||1)&&0===n&&i){if(e.editor.inMultiSelectMode&&(e.getAccelKey()||e.getShiftKey()))return;this.mousedownEvent.time=Date.now();var o=e.domEvent.target||e.domEvent.srcElement;"unselectable"in o&&(o.unselectable="on"),t.getDragDelay()?(a.isWebKit&&(this.cancelDrag=!0,t.container.draggable=!0),this.setState("dragWait")):this.startDrag(),this.captureMouse(e,this.onMouseDrag.bind(this)),e.defaultPrevented=!0}}}}).call(n.prototype),t.DragdropHandler=n})),ace.define("ace/mouse/touch_handler",["require","exports","module","ace/mouse/mouse_event","ace/lib/event","ace/lib/dom"],(function(e,t,i){"use strict";var n=e("./mouse_event").MouseEvent,o=e("../lib/event"),r=e("../lib/dom");t.addTouchListeners=function(e,t){function i(){var e=window.navigator&&window.navigator.clipboard,i=!1,n=function(){var n=t.getCopyText(),o=t.session.getUndoManager().hasUndo();A.replaceChild(r.buildDom(i?["span",!n&&["span",{class:"ace_mobile-button",action:"selectall"},"Select All"],n&&["span",{class:"ace_mobile-button",action:"copy"},"Copy"],n&&["span",{class:"ace_mobile-button",action:"cut"},"Cut"],e&&["span",{class:"ace_mobile-button",action:"paste"},"Paste"],o&&["span",{class:"ace_mobile-button",action:"undo"},"Undo"],["span",{class:"ace_mobile-button",action:"find"},"Find"],["span",{class:"ace_mobile-button",action:"openCommandPallete"},"Pallete"]]:["span"]),A.firstChild)},o=function(o){var r=o.target.getAttribute("action");if("more"==r||!i)return i=!i,n();"paste"==r?e.readText().then((function(e){t.execCommand(r,e)})):r&&("cut"!=r&&"copy"!=r||(e?e.writeText(t.getCopyText()):document.execCommand("copy")),t.execCommand(r)),A.firstChild.style.display="none",i=!1,"openCommandPallete"!=r&&t.focus()};A=r.buildDom(["div",{class:"ace_mobile-menu",ontouchstart:function(e){b="menu",e.stopPropagation(),e.preventDefault(),t.textInput.focus()},ontouchend:function(e){e.stopPropagation(),e.preventDefault(),o(e)},onclick:o},["span"],["span",{class:"ace_mobile-button",action:"more"},"..."]],t.container)}function s(){A||i();var e=t.selection.cursor,n=t.renderer.textToScreenCoordinates(e.row,e.column),o=t.renderer.textToScreenCoordinates(0,0).pageX,r=t.renderer.scrollLeft,s=t.container.getBoundingClientRect();A.style.top=n.pageY-s.top-3+"px",n.pageX-s.left1)return clearTimeout(p),p=null,u=-1,void(b="zoom");m=t.$mouseHandler.isMousePressed=!0;var o=t.renderer.layerConfig.lineHeight,r=t.renderer.layerConfig.lineHeight,s=e.timeStamp;h=s;var a=i[0],f=a.clientX,A=a.clientY;Math.abs(c-f)+Math.abs(d-A)>o&&(u=-1),c=e.clientX=f,d=e.clientY=A,y=w=0;var x=new n(e,t);if(g=x.getDocumentPosition(),s-u<500&&1==i.length&&!v)C++,e.preventDefault(),e.button=0,function(){p=null,clearTimeout(p),t.selection.moveToPosition(g);var e=C>=2?t.selection.getLineRange(g.row):t.session.getBracketRange(g);e&&!e.isEmpty()?t.selection.setRange(e):t.selection.selectWord(),b="wait"}();else{C=0;var _=t.selection.cursor,E=t.selection.isEmpty()?_:t.selection.anchor,k=t.renderer.$cursorLayer.getPixelPosition(_,!0),S=t.renderer.$cursorLayer.getPixelPosition(E,!0),T=t.renderer.scroller.getBoundingClientRect(),M=t.renderer.layerConfig.offset,B=t.renderer.scrollLeft,R=function(e,t){return(e/=r)*e+(t=t/o-.75)*t};if(e.clientXL?"cursor":"anchor"),b=L<3.5?"anchor":I<3.5?"cursor":"scroll",p=setTimeout(l,450)}u=s}),t),o.addListener(e,"touchend",(function(e){m=t.$mouseHandler.isMousePressed=!1,f&&clearInterval(f),"zoom"==b?(b="",v=0):p?(t.selection.moveToPosition(g),v=0,s()):"scroll"==b?(v+=60,f=setInterval((function(){v--<=0&&(clearInterval(f),f=null),Math.abs(y)<.01&&(y=0),Math.abs(w)<.01&&(w=0),v<20&&(y*=.9),v<20&&(w*=.9);var e=t.session.getScrollTop();t.renderer.scrollBy(10*y,10*w),e==t.session.getScrollTop()&&(v=0)}),10),a()):s(),clearTimeout(p),p=null}),t),o.addListener(e,"touchmove",(function(e){p&&(clearTimeout(p),p=null);var i=e.touches;if(!(i.length>1||"zoom"==b)){var o=i[0],r=c-o.clientX,s=d-o.clientY;if("wait"==b){if(!(r*r+s*s>4))return e.preventDefault();b="cursor"}c=o.clientX,d=o.clientY,e.clientX=o.clientX,e.clientY=o.clientY;var a=e.timeStamp,l=a-h;if(h=a,"scroll"==b){var u=new n(e,t);u.speed=1,u.wheelX=r,u.wheelY=s,10*Math.abs(r)1&&(o=i[i.length-2]);var s=d[t+"Path"];return null==s?s=d.basePath:"/"==n&&(t=n=""),s&&"/"!=s.slice(-1)&&(s+="/"),s+t+n+o+this.get("suffix")},t.setModuleUrl=function(e,t){return d.$moduleUrls[e]=t},t.$loading={},t.loadModule=function(i,n){var o,r;Array.isArray(i)&&(r=i[0],i=i[1]);try{o=e(i)}catch(e){}if(o&&!t.$loading[i])return n&&n(o);if(t.$loading[i]||(t.$loading[i]=[]),t.$loading[i].push(n),!(t.$loading[i].length>1)){var a=function(){e([i],(function(e){t._emit("load.module",{name:i,module:e});var n=t.$loading[i];t.$loading[i]=null,n.forEach((function(t){t&&t(e)}))}))};if(!t.get("packaged"))return a();s.loadScript(t.moduleUrl(i,r),a),u()}};var u=function(){!d.basePath&&!d.workerPath&&!d.modePath&&!d.themePath&&!Object.keys(d.$moduleUrls).length&&(console.error("Unable to infer path to ace from script src,","use ace.config.set('basePath', 'path') to enable dynamic loading of modes and themes","or with webpack use ace/webpack-resolver"),u=function(){})};t.init=function(r){if(c&&c.document){d.packaged=r||e.packaged||n.packaged||c.define&&i.amdD.packaged;for(var s={},a="",l=document.currentScript||document._currentScript,u=(l&&l.ownerDocument||document).getElementsByTagName("script"),h=0;h0)if(16==b){for(w=v;w<_;w++)t[w]=1;v=-1}else v=-1;if(o[A][6])-1==v&&(v=_);else if(v>-1){for(w=v;w<_;w++)t[w]=m;v=-1}n[_]==C&&(t[_]=0),l|=m}if(u)for(w=0;w=0&&n[k]==x;k--)t[k]=a}}function o(e,t,i){if(!(l=e){for(n=u+1;n=e;)n++;for(o=u,r=n-1;o=t.length||(o=i[n-1])!=A&&o!=b||(r=t[n+1])!=A&&r!=b?v:(c&&(r=b),r==o?r:v);case E:return(o=n>0?i[n-1]:C)==A&&n+10&&i[n-1]==A)return A;if(c)return v;for(l=n+1,s=t.length;l=1425&&p<=2303||64286==p;if(o=t[l],f&&(o==m||o==w))return m}return n<1||(o=t[n-1])==C?v:i[n-1];case C:return c=!1,d=!0,a;case y:return u=!0,v;case T:case M:case R:case I:case B:c=!1;case L:return v}}function s(e){var t=e.charCodeAt(0),i=t>>8;return 0==i?t>191?g:D[t]:5==i?/[\u0591-\u05f4]/.test(e)?m:g:6==i?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(e)?S:/[\u0660-\u0669\u066b-\u066c]/.test(e)?b:1642==t?k:/[\u06f0-\u06f9]/.test(e)?A:w:32==i&&t<=8287?O[255&t]:254==i&&t>=65136?w:v}var a=0,l=0,c=!1,d=!1,u=!1,h=[[0,3,0,1,0,0,0],[0,3,0,1,2,2,0],[0,3,0,17,2,0,1],[0,3,5,5,4,1,0],[0,3,21,21,4,0,1],[0,3,5,5,4,2,0]],p=[[2,0,1,1,0,1,0],[2,0,1,1,0,2,0],[2,0,2,1,3,2,0],[2,0,2,33,3,1,1]],f=1,g=0,m=1,A=2,b=3,v=4,C=5,y=6,w=7,x=8,_=9,E=10,k=11,S=12,T=13,M=14,B=15,R=16,I=17,L=18,D=[L,L,L,L,L,L,L,L,L,y,C,y,x,C,L,L,L,L,L,L,L,L,L,L,L,L,L,L,C,C,C,y,x,v,v,k,k,k,v,v,v,v,v,E,_,E,_,_,A,A,A,A,A,A,A,A,A,A,_,v,v,v,v,v,v,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,v,v,v,v,v,v,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,g,v,v,v,v,L,L,L,L,L,L,C,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,L,_,v,k,k,k,k,v,v,v,v,g,v,v,L,v,v,k,k,A,A,v,g,v,v,v,A,g,v,v,v,v,v],O=[x,x,x,x,x,x,x,x,x,x,x,L,L,L,g,m,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,x,C,T,M,B,R,I,_,k,k,k,k,k,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,_,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,x];t.L=g,t.R=m,t.EN=A,t.ON_R=3,t.AN=4,t.R_H=5,t.B=6,t.RLE=7,t.DOT="·",t.doBidiReorder=function(e,i,r){if(e.length<2)return{};var s=e.split(""),l=new Array(s.length),c=new Array(s.length),d=[];a=r?f:0,n(s,d,s.length,i);for(var u=0;uw&&i[u]0&&"ل"===s[u-1]&&/\u0622|\u0623|\u0625|\u0627/.test(s[u])&&(d[u-1]=d[u]=t.R_H,u++);for(s[s.length-1]===t.DOT&&(d[s.length-1]=t.B),"‫"===s[0]&&(d[0]=t.RLE),u=0;u=0&&(e=this.session.$docRowCache[i])}return e},this.getSplitIndex=function(){var e=0,t=this.session.$screenRowCache;if(t.length)for(var i,n=this.session.$getRowCacheIndex(t,this.currentRow);this.currentRow-e>0&&(i=this.session.$getRowCacheIndex(t,this.currentRow-e-1))===n;)n=i,e++;else e=this.currentRow;return e},this.updateRowLine=function(e,t){void 0===e&&(e=this.getDocumentRow());var i=e===this.session.getLength()-1?this.EOF:this.EOL;if(this.wrapIndent=0,this.line=this.session.getLine(e),this.isRtlDir=this.$isRtl||this.line.charAt(0)===this.RLE,this.session.$useWrapMode){var r=this.session.$wrapData[e];r&&(void 0===t&&(t=this.getSplitIndex()),t>0&&r.length?(this.wrapIndent=r.indent,this.wrapOffset=this.wrapIndent*this.charWidths[n.L],this.line=tt?this.session.getOverwrite()?e:e-1:t,o=n.getVisualFromLogicalIdx(i,this.bidiMap),r=this.bidiMap.bidiLevels,s=0;!this.session.getOverwrite()&&e<=t&&r[o]%2!=0&&o++;for(var a=0;at&&r[o]%2==0&&(s+=this.charWidths[r[o]]),this.wrapIndent&&(s+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset),this.isRtlDir&&(s+=this.rtlLineOffset),s},this.getSelections=function(e,t){var i,n=this.bidiMap,o=n.bidiLevels,r=[],s=0,a=Math.min(e,t)-this.wrapIndent,l=Math.max(e,t)-this.wrapIndent,c=!1,d=!1,u=0;this.wrapIndent&&(s+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset);for(var h,p=0;p=a&&hi+r/2;){if(i+=r,n===o.length-1){r=0;break}r=this.charWidths[o[++n]]}return n>0&&o[n-1]%2!=0&&o[n]%2==0?(e0&&o[n-1]%2==0&&o[n]%2!=0?t=1+(e>i?this.bidiMap.logicalFromVisual[n]:this.bidiMap.logicalFromVisual[n-1]):this.isRtlDir&&n===o.length-1&&0===r&&o[n-1]%2==0||!this.isRtlDir&&0===n&&o[n]%2!=0?t=1+this.bidiMap.logicalFromVisual[n]:(n>0&&o[n-1]%2!=0&&0!==r&&n--,t=this.bidiMap.logicalFromVisual[n]),0===t&&this.isRtlDir&&t++,t+this.wrapIndent}}).call(s.prototype),t.BidiHandler=s})),ace.define("ace/selection",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/range"],(function(e,t,i){"use strict";var n=e("./lib/oop"),o=e("./lib/lang"),r=e("./lib/event_emitter").EventEmitter,s=e("./range").Range,a=function(e){this.session=e,this.doc=e.getDocument(),this.clearSelection(),this.cursor=this.lead=this.doc.createAnchor(0,0),this.anchor=this.doc.createAnchor(0,0),this.$silent=!1;var t=this;this.cursor.on("change",(function(e){t.$cursorChanged=!0,t.$silent||t._emit("changeCursor"),!t.$isEmpty&&!t.$silent&&t._emit("changeSelection"),!t.$keepDesiredColumnOnChange&&e.old.column!=e.value.column&&(t.$desiredColumn=null)})),this.anchor.on("change",(function(){t.$anchorChanged=!0,!t.$isEmpty&&!t.$silent&&t._emit("changeSelection")}))};(function(){n.implement(this,r),this.isEmpty=function(){return this.$isEmpty||this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column},this.isMultiLine=function(){return!this.$isEmpty&&this.anchor.row!=this.cursor.row},this.getCursor=function(){return this.lead.getPosition()},this.setSelectionAnchor=function(e,t){this.$isEmpty=!1,this.anchor.setPosition(e,t)},this.getAnchor=this.getSelectionAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.anchor.getPosition()},this.getSelectionLead=function(){return this.lead.getPosition()},this.isBackwards=function(){var e=this.anchor,t=this.lead;return e.row>t.row||e.row==t.row&&e.column>t.column},this.getRange=function(){var e=this.anchor,t=this.lead;return this.$isEmpty?s.fromPoints(t,t):this.isBackwards()?s.fromPoints(t,e):s.fromPoints(e,t)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},this.selectAll=function(){this.$setSelection(0,0,Number.MAX_VALUE,Number.MAX_VALUE)},this.setRange=this.setSelectionRange=function(e,t){var i=t?e.end:e.start,n=t?e.start:e.end;this.$setSelection(i.row,i.column,n.row,n.column)},this.$setSelection=function(e,t,i,n){if(!this.$silent){var o=this.$isEmpty,r=this.inMultiSelectMode;this.$silent=!0,this.$cursorChanged=this.$anchorChanged=!1,this.anchor.setPosition(e,t),this.cursor.setPosition(i,n),this.$isEmpty=!s.comparePoints(this.anchor,this.cursor),this.$silent=!1,this.$cursorChanged&&this._emit("changeCursor"),(this.$cursorChanged||this.$anchorChanged||o!=this.$isEmpty||r)&&this._emit("changeSelection")}},this.$moveSelection=function(e){var t=this.lead;this.$isEmpty&&this.setSelectionAnchor(t.row,t.column),e.call(this)},this.selectTo=function(e,t){this.$moveSelection((function(){this.moveCursorTo(e,t)}))},this.selectToPosition=function(e){this.$moveSelection((function(){this.moveCursorToPosition(e)}))},this.moveTo=function(e,t){this.clearSelection(),this.moveCursorTo(e,t)},this.moveToPosition=function(e){this.clearSelection(),this.moveCursorToPosition(e)},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.getWordRange=function(e,t){if(void 0===t){var i=e||this.lead;e=i.row,t=i.column}return this.session.getWordRange(e,t)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var e=this.getCursor(),t=this.session.getAWordRange(e.row,e.column);this.setSelectionRange(t)},this.getLineRange=function(e,t){var i,n="number"==typeof e?e:this.lead.row,o=this.session.getFoldLine(n);return o?(n=o.start.row,i=o.end.row):i=n,!0===t?new s(n,0,i,this.session.getLine(i).length):new s(n,0,i+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.wouldMoveIntoSoftTab=function(e,t,i){var n=e.column,o=e.column+t;return i<0&&(n=e.column-t,o=e.column),this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(n,o).split(" ").length-1==t},this.moveCursorLeft=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,-1))this.moveCursorTo(e.start.row,e.start.column);else if(0===t.column)t.row>0&&this.moveCursorTo(t.row-1,this.doc.getLine(t.row-1).length);else{var i=this.session.getTabSize();this.wouldMoveIntoSoftTab(t,i,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-i):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,1))this.moveCursorTo(e.end.row,e.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row0&&(t.column=n)}}this.moveCursorTo(t.row,t.column)},this.moveCursorFileEnd=function(){var e=this.doc.getLength()-1,t=this.doc.getLine(e).length;this.moveCursorTo(e,t)},this.moveCursorFileStart=function(){this.moveCursorTo(0,0)},this.moveCursorLongWordRight=function(){var e=this.lead.row,t=this.lead.column,i=this.doc.getLine(e),n=i.substring(t);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var o=this.session.getFoldAt(e,t,1);if(o)this.moveCursorTo(o.end.row,o.end.column);else{if(this.session.nonTokenRe.exec(n)&&(t+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,n=i.substring(t)),t>=i.length)return this.moveCursorTo(e,i.length),this.moveCursorRight(),void(e0&&this.moveCursorWordLeft());this.session.tokenRe.exec(r)&&(i-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(t,i)}},this.$shortWordEndIndex=function(e){var t,i=0,n=/\s/,o=this.session.tokenRe;if(o.lastIndex=0,this.session.tokenRe.exec(e))i=this.session.tokenRe.lastIndex;else{for(;(t=e[i])&&n.test(t);)i++;if(i<1)for(o.lastIndex=0;(t=e[i])&&!o.test(t);)if(o.lastIndex=0,i++,n.test(t)){if(i>2){i--;break}for(;(t=e[i])&&n.test(t);)i++;if(i>2)break}}return o.lastIndex=0,i},this.moveCursorShortWordRight=function(){var e=this.lead.row,t=this.lead.column,i=this.doc.getLine(e),n=i.substring(t),o=this.session.getFoldAt(e,t,1);if(o)return this.moveCursorTo(o.end.row,o.end.column);if(t==i.length){var r=this.doc.getLength();do{e++,n=this.doc.getLine(e)}while(e0&&/^\s*$/.test(n));i=n.length,/\s+$/.test(n)||(n="")}var r=o.stringReverse(n),s=this.$shortWordEndIndex(r);return this.moveCursorTo(t,i-s)},this.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},this.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},this.moveCursorBy=function(e,t){var i,n=this.session.documentToScreenPosition(this.lead.row,this.lead.column);if(0===t&&(0!==e&&(this.session.$bidiHandler.isBidiRow(n.row,this.lead.row)?(i=this.session.$bidiHandler.getPosLeft(n.column),n.column=Math.round(i/this.session.$bidiHandler.charWidths[0])):i=n.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?n.column=this.$desiredColumn:this.$desiredColumn=n.column),0!=e&&this.session.lineWidgets&&this.session.lineWidgets[this.lead.row]){var o=this.session.lineWidgets[this.lead.row];e<0?e-=o.rowsAbove||0:e>0&&(e+=o.rowCount-(o.rowsAbove||0))}var r=this.session.screenToDocumentPosition(n.row+e,n.column,i);0!==e&&0===t&&r.row===this.lead.row&&(r.column,this.lead.column),this.moveCursorTo(r.row,r.column+t,0===t)},this.moveCursorToPosition=function(e){this.moveCursorTo(e.row,e.column)},this.moveCursorTo=function(e,t,i){var n=this.session.getFoldAt(e,t,1);n&&(e=n.start.row,t=n.start.column),this.$keepDesiredColumnOnChange=!0;var o=this.session.getLine(e);/[\uDC00-\uDFFF]/.test(o.charAt(t))&&o.charAt(t-1)&&(this.lead.row==e&&this.lead.column==t+1?t-=1:t+=1),this.lead.setPosition(e,t),this.$keepDesiredColumnOnChange=!1,i||(this.$desiredColumn=null)},this.moveCursorToScreen=function(e,t,i){var n=this.session.screenToDocumentPosition(e,t);this.moveCursorTo(n.row,n.column,i)},this.detach=function(){this.lead.detach(),this.anchor.detach()},this.fromOrientedRange=function(e){this.setSelectionRange(e,e.cursor==e.start),this.$desiredColumn=e.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(e){var t=this.getRange();return e?(e.start.column=t.start.column,e.start.row=t.start.row,e.end.column=t.end.column,e.end.row=t.end.row):e=t,e.cursor=this.isBackwards()?e.start:e.end,e.desiredColumn=this.$desiredColumn,e},this.getRangeOfMovements=function(e){var t=this.getCursor();try{e(this);var i=this.getCursor();return s.fromPoints(t,i)}catch(e){return s.fromPoints(t,t)}finally{this.moveCursorToPosition(t)}},this.toJSON=function(){if(this.rangeCount)var e=this.ranges.map((function(e){var t=e.clone();return t.isBackwards=e.cursor==e.start,t}));else(e=this.getRange()).isBackwards=this.isBackwards();return e},this.fromJSON=function(e){if(null==e.start){if(this.rangeList&&e.length>1){this.toSingleRange(e[0]);for(var t=e.length;t--;){var i=s.fromPoints(e[t].start,e[t].end);e[t].isBackwards&&(i.cursor=i.start),this.addRange(i,!0)}return}e=e[0]}this.rangeList&&this.toSingleRange(e),this.setSelectionRange(e,e.isBackwards)},this.isEqual=function(e){if((e.length||this.rangeCount)&&e.length!=this.rangeCount)return!1;if(!e.length||!this.ranges)return this.getRange().isEqual(e);for(var t=this.ranges.length;t--;)if(!this.ranges[t].isEqual(e[t]))return!1;return!0}}).call(a.prototype),t.Selection=a})),ace.define("ace/tokenizer",["require","exports","module","ace/config"],(function(e,t,i){"use strict";var n=e("./config"),o=2e3,r=function(e){for(var t in this.states=e,this.regExps={},this.matchMappings={},this.states){for(var i=this.states[t],n=[],o=0,r=this.matchMappings[t]={defaultToken:"text"},s="g",a=[],l=0;l1?this.$applyToken:c.token),u>1&&(/\\\d/.test(c.regex)?d=c.regex.replace(/\\([0-9]+)/g,(function(e,t){return"\\"+(parseInt(t,10)+o+1)})):(u=1,d=this.removeCapturingGroups(c.regex)),!c.splitRegex&&"string"!=typeof c.token&&a.push(c)),r[o]=l,o+=u,n.push(d),c.onMatch||(c.onMatch=null)}}n.length||(r[0]=0,n.push("$")),a.forEach((function(e){e.splitRegex=this.createSplitterRegexp(e.regex,s)}),this),this.regExps[t]=new RegExp("("+n.join(")|(")+")|($)",s)}};(function(){this.$setMaxTokenCount=function(e){o=0|e},this.$applyToken=function(e){var t=this.splitRegex.exec(e).slice(1),i=this.token.apply(this,t);if("string"==typeof i)return[{type:i,value:e}];for(var n=[],o=0,r=i.length;od){var A=e.substring(d,m-g.length);h.type==p?h.value+=A:(h.type&&c.push(h),h={type:p,value:A})}for(var b=0;bo){for(u>2*e.length&&this.reportError("infinite loop with in ace tokenizer",{startState:t,line:e});d1&&i[0]!==n&&i.unshift("#tmp",n),{tokens:c,state:i.length?i:n}},this.reportError=n.reportError}).call(r.prototype),t.Tokenizer=r})),ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"],(function(e,t,i){"use strict";var n=e("../lib/lang"),o=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(e,t){if(t)for(var i in e){for(var n=e[i],o=0;o=this.$rowTokens.length;){if(this.$row+=1,e||(e=this.$session.getLength()),this.$row>=e)return this.$row=e-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},this.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},this.getCurrentTokenRow=function(){return this.$row},this.getCurrentTokenColumn=function(){var e=this.$rowTokens,t=this.$tokenIndex,i=e[t].start;if(void 0!==i)return i;for(i=0;t>0;)i+=e[t-=1].value.length;return i},this.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},this.getCurrentTokenRange=function(){var e=this.$rowTokens[this.$tokenIndex],t=this.getCurrentTokenColumn();return new n(this.$row,t,this.$row,t+e.value.length)}}).call(o.prototype),t.TokenIterator=o})),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],(function(e,t,i){"use strict";var n,o=e("../../lib/oop"),r=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,a=e("../../lib/lang"),l=["text","paren.rparen","rparen","paren","punctuation.operator"],c=["text","paren.rparen","rparen","paren","punctuation.operator","comment"],d={},u={'"':'"',"'":"'"},h=function(e){var t=-1;if(e.multiSelect&&(t=e.selection.index,d.rangeCount!=e.multiSelect.rangeCount&&(d={rangeCount:e.multiSelect.rangeCount})),d[t])return n=d[t];n=d[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},p=function(e,t,i,n){var o=e.end.row-e.start.row;return{text:i+t+n,selection:[0,e.start.column+1,o,e.end.column+(o?0:1)]}},f=function(e){this.add("braces","insertion",(function(t,i,o,r,s){var l=o.getCursorPosition(),c=r.doc.getLine(l.row);if("{"==s){h(o);var d=o.getSelectionRange(),u=r.doc.getTextRange(d);if(""!==u&&"{"!==u&&o.getWrapBehavioursEnabled())return p(d,u,"{","}");if(f.isSaneInsertion(o,r))return/[\]\}\)]/.test(c[l.column])||o.inMultiSelectMode||e&&e.braces?(f.recordAutoInsert(o,r,"}"),{text:"{}",selection:[1,1]}):(f.recordMaybeInsert(o,r,"{"),{text:"{",selection:[1,1]})}else if("}"==s){if(h(o),"}"==c.substring(l.column,l.column+1)&&null!==r.$findOpeningBracket("}",{column:l.column+1,row:l.row})&&f.isAutoInsertedClosing(l,c,s))return f.popAutoInsertedClosing(),{text:"",selection:[1,1]}}else{if("\n"==s||"\r\n"==s){h(o);var g="";if(f.isMaybeInsertedClosing(l,c)&&(g=a.stringRepeat("}",n.maybeInsertedBrackets),f.clearMaybeInsertedClosing()),"}"===c.substring(l.column,l.column+1)){var m=r.findMatchingBracket({row:l.row,column:l.column+1},"}");if(!m)return null;var A=this.$getIndent(r.getLine(m.row))}else{if(!g)return void f.clearMaybeInsertedClosing();A=this.$getIndent(c)}var b=A+r.getTabString();return{text:"\n"+b+"\n"+A+g,selection:[1,b.length,1,b.length]}}f.clearMaybeInsertedClosing()}})),this.add("braces","deletion",(function(e,t,i,o,r){var s=o.doc.getTextRange(r);if(!r.isMultiLine()&&"{"==s){if(h(i),"}"==o.doc.getLine(r.start.row).substring(r.end.column,r.end.column+1))return r.end.column++,r;n.maybeInsertedBrackets--}})),this.add("parens","insertion",(function(e,t,i,n,o){if("("==o){h(i);var r=i.getSelectionRange(),s=n.doc.getTextRange(r);if(""!==s&&i.getWrapBehavioursEnabled())return p(r,s,"(",")");if(f.isSaneInsertion(i,n))return f.recordAutoInsert(i,n,")"),{text:"()",selection:[1,1]}}else if(")"==o){h(i);var a=i.getCursorPosition(),l=n.doc.getLine(a.row);if(")"==l.substring(a.column,a.column+1)&&null!==n.$findOpeningBracket(")",{column:a.column+1,row:a.row})&&f.isAutoInsertedClosing(a,l,o))return f.popAutoInsertedClosing(),{text:"",selection:[1,1]}}})),this.add("parens","deletion",(function(e,t,i,n,o){var r=n.doc.getTextRange(o);if(!o.isMultiLine()&&"("==r&&(h(i),")"==n.doc.getLine(o.start.row).substring(o.start.column+1,o.start.column+2)))return o.end.column++,o})),this.add("brackets","insertion",(function(e,t,i,n,o){if("["==o){h(i);var r=i.getSelectionRange(),s=n.doc.getTextRange(r);if(""!==s&&i.getWrapBehavioursEnabled())return p(r,s,"[","]");if(f.isSaneInsertion(i,n))return f.recordAutoInsert(i,n,"]"),{text:"[]",selection:[1,1]}}else if("]"==o){h(i);var a=i.getCursorPosition(),l=n.doc.getLine(a.row);if("]"==l.substring(a.column,a.column+1)&&null!==n.$findOpeningBracket("]",{column:a.column+1,row:a.row})&&f.isAutoInsertedClosing(a,l,o))return f.popAutoInsertedClosing(),{text:"",selection:[1,1]}}})),this.add("brackets","deletion",(function(e,t,i,n,o){var r=n.doc.getTextRange(o);if(!o.isMultiLine()&&"["==r&&(h(i),"]"==n.doc.getLine(o.start.row).substring(o.start.column+1,o.start.column+2)))return o.end.column++,o})),this.add("string_dquotes","insertion",(function(e,t,i,n,o){var r=n.$mode.$quotes||u;if(1==o.length&&r[o]){if(this.lineCommentStart&&-1!=this.lineCommentStart.indexOf(o))return;h(i);var s=o,a=i.getSelectionRange(),l=n.doc.getTextRange(a);if(""!==l&&(1!=l.length||!r[l])&&i.getWrapBehavioursEnabled())return p(a,l,s,s);if(!l){var c=i.getCursorPosition(),d=n.doc.getLine(c.row),f=d.substring(c.column-1,c.column),g=d.substring(c.column,c.column+1),m=n.getTokenAt(c.row,c.column),A=n.getTokenAt(c.row,c.column+1);if("\\"==f&&m&&/escape/.test(m.type))return null;var b,v=m&&/string|escape/.test(m.type),C=!A||/string|escape/.test(A.type);if(g==s)(b=v!==C)&&/string\.end/.test(A.type)&&(b=!1);else{if(v&&!C)return null;if(v&&C)return null;var y=n.$mode.tokenRe;y.lastIndex=0;var w=y.test(f);y.lastIndex=0;var x=y.test(f);if(w||x)return null;if(g&&!/[\s;,.})\]\\]/.test(g))return null;var _=d[c.column-2];if(f==s&&(_==s||y.test(_)))return null;b=!0}return{text:b?s+s:"",selection:[1,1]}}}})),this.add("string_dquotes","deletion",(function(e,t,i,n,o){var r=n.$mode.$quotes||u,s=n.doc.getTextRange(o);if(!o.isMultiLine()&&r.hasOwnProperty(s)&&(h(i),n.doc.getLine(o.start.row).substring(o.start.column+1,o.start.column+2)==s))return o.end.column++,o}))};f.isSaneInsertion=function(e,t){var i=e.getCursorPosition(),n=new s(t,i.row,i.column);if(!this.$matchTokenType(n.getCurrentToken()||"text",l)){if(/[)}\]]/.test(e.session.getLine(i.row)[i.column]))return!0;var o=new s(t,i.row,i.column+1);if(!this.$matchTokenType(o.getCurrentToken()||"text",l))return!1}return n.stepForward(),n.getCurrentTokenRow()!==i.row||this.$matchTokenType(n.getCurrentToken()||"text",c)},f.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},f.recordAutoInsert=function(e,t,i){var o=e.getCursorPosition(),r=t.doc.getLine(o.row);this.isAutoInsertedClosing(o,r,n.autoInsertedLineEnd[0])||(n.autoInsertedBrackets=0),n.autoInsertedRow=o.row,n.autoInsertedLineEnd=i+r.substr(o.column),n.autoInsertedBrackets++},f.recordMaybeInsert=function(e,t,i){var o=e.getCursorPosition(),r=t.doc.getLine(o.row);this.isMaybeInsertedClosing(o,r)||(n.maybeInsertedBrackets=0),n.maybeInsertedRow=o.row,n.maybeInsertedLineStart=r.substr(0,o.column)+i,n.maybeInsertedLineEnd=r.substr(o.column),n.maybeInsertedBrackets++},f.isAutoInsertedClosing=function(e,t,i){return n.autoInsertedBrackets>0&&e.row===n.autoInsertedRow&&i===n.autoInsertedLineEnd[0]&&t.substr(e.column)===n.autoInsertedLineEnd},f.isMaybeInsertedClosing=function(e,t){return n.maybeInsertedBrackets>0&&e.row===n.maybeInsertedRow&&t.substr(e.column)===n.maybeInsertedLineEnd&&t.substr(0,e.column)==n.maybeInsertedLineStart},f.popAutoInsertedClosing=function(){n.autoInsertedLineEnd=n.autoInsertedLineEnd.substr(1),n.autoInsertedBrackets--},f.clearMaybeInsertedClosing=function(){n&&(n.maybeInsertedBrackets=0,n.maybeInsertedRow=-1)},o.inherits(f,r),t.CstyleBehaviour=f})),ace.define("ace/unicode",["require","exports","module"],(function(e,t,i){"use strict";for(var n=[48,9,8,25,5,0,2,25,48,0,11,0,5,0,6,22,2,30,2,457,5,11,15,4,8,0,2,0,18,116,2,1,3,3,9,0,2,2,2,0,2,19,2,82,2,138,2,4,3,155,12,37,3,0,8,38,10,44,2,0,2,1,2,1,2,0,9,26,6,2,30,10,7,61,2,9,5,101,2,7,3,9,2,18,3,0,17,58,3,100,15,53,5,0,6,45,211,57,3,18,2,5,3,11,3,9,2,1,7,6,2,2,2,7,3,1,3,21,2,6,2,0,4,3,3,8,3,1,3,3,9,0,5,1,2,4,3,11,16,2,2,5,5,1,3,21,2,6,2,1,2,1,2,1,3,0,2,4,5,1,3,2,4,0,8,3,2,0,8,15,12,2,2,8,2,2,2,21,2,6,2,1,2,4,3,9,2,2,2,2,3,0,16,3,3,9,18,2,2,7,3,1,3,21,2,6,2,1,2,4,3,8,3,1,3,2,9,1,5,1,2,4,3,9,2,0,17,1,2,5,4,2,2,3,4,1,2,0,2,1,4,1,4,2,4,11,5,4,4,2,2,3,3,0,7,0,15,9,18,2,2,7,2,2,2,22,2,9,2,4,4,7,2,2,2,3,8,1,2,1,7,3,3,9,19,1,2,7,2,2,2,22,2,9,2,4,3,8,2,2,2,3,8,1,8,0,2,3,3,9,19,1,2,7,2,2,2,22,2,15,4,7,2,2,2,3,10,0,9,3,3,9,11,5,3,1,2,17,4,23,2,8,2,0,3,6,4,0,5,5,2,0,2,7,19,1,14,57,6,14,2,9,40,1,2,0,3,1,2,0,3,0,7,3,2,6,2,2,2,0,2,0,3,1,2,12,2,2,3,4,2,0,2,5,3,9,3,1,35,0,24,1,7,9,12,0,2,0,2,0,5,9,2,35,5,19,2,5,5,7,2,35,10,0,58,73,7,77,3,37,11,42,2,0,4,328,2,3,3,6,2,0,2,3,3,40,2,3,3,32,2,3,3,6,2,0,2,3,3,14,2,56,2,3,3,66,5,0,33,15,17,84,13,619,3,16,2,25,6,74,22,12,2,6,12,20,12,19,13,12,2,2,2,1,13,51,3,29,4,0,5,1,3,9,34,2,3,9,7,87,9,42,6,69,11,28,4,11,5,11,11,39,3,4,12,43,5,25,7,10,38,27,5,62,2,28,3,10,7,9,14,0,89,75,5,9,18,8,13,42,4,11,71,55,9,9,4,48,83,2,2,30,14,230,23,280,3,5,3,37,3,5,3,7,2,0,2,0,2,0,2,30,3,52,2,6,2,0,4,2,2,6,4,3,3,5,5,12,6,2,2,6,67,1,20,0,29,0,14,0,17,4,60,12,5,0,4,11,18,0,5,0,3,9,2,0,4,4,7,0,2,0,2,0,2,3,2,10,3,3,6,4,5,0,53,1,2684,46,2,46,2,132,7,6,15,37,11,53,10,0,17,22,10,6,2,6,2,6,2,6,2,6,2,6,2,6,2,6,2,31,48,0,470,1,36,5,2,4,6,1,5,85,3,1,3,2,2,89,2,3,6,40,4,93,18,23,57,15,513,6581,75,20939,53,1164,68,45,3,268,4,27,21,31,3,13,13,1,2,24,9,69,11,1,38,8,3,102,3,1,111,44,25,51,13,68,12,9,7,23,4,0,5,45,3,35,13,28,4,64,15,10,39,54,10,13,3,9,7,22,4,1,5,66,25,2,227,42,2,1,3,9,7,11171,13,22,5,48,8453,301,3,61,3,105,39,6,13,4,6,11,2,12,2,4,2,0,2,1,2,1,2,107,34,362,19,63,3,53,41,11,5,15,17,6,13,1,25,2,33,4,2,134,20,9,8,25,5,0,2,25,12,88,4,5,3,5,3,5,3,2],o=0,r=[],s=0;s2?n%d!=d-1:n%d==0})}else{if(!this.blockComment)return!1;var f=this.blockComment.start,g=this.blockComment.end,m=new RegExp("^(\\s*)(?:"+l.escapeRegExp(f)+")"),A=new RegExp("(?:"+l.escapeRegExp(g)+")\\s*$"),b=function(e,t){C(e,t)||s&&!/\S/.test(e)||(r.insertInLine({row:t,column:e.length},g),r.insertInLine({row:t,column:c},f))},v=function(e,t){var i;(i=e.match(A))&&r.removeInLine(t,e.length-i[0].length,e.length),(i=e.match(m))&&r.removeInLine(t,i[1].length,i[0].length)},C=function(e,i){if(m.test(e))return!0;for(var n=t.getTokens(i),o=0;oe.length&&(y=e.length)})),c==1/0&&(c=y,s=!1,a=!1),u&&c%d!=0&&(c=Math.floor(c/d)*d),o(a?v:b)},this.toggleBlockComment=function(e,t,i,n){var o=this.blockComment;if(o){!o.start&&o[0]&&(o=o[0]);var r,s,a=(g=new c(t,n.row,n.column)).getCurrentToken(),l=(t.selection,t.selection.toOrientedRange());if(a&&/comment/.test(a.type)){for(var u,h;a&&/comment/.test(a.type);){if(-1!=(m=a.value.indexOf(o.start))){var p=g.getCurrentTokenRow(),f=g.getCurrentTokenColumn()+m;u=new d(p,f,p,f+o.start.length);break}a=g.stepBackward()}var g;for(a=(g=new c(t,n.row,n.column)).getCurrentToken();a&&/comment/.test(a.type);){var m;if(-1!=(m=a.value.indexOf(o.end))){p=g.getCurrentTokenRow(),f=g.getCurrentTokenColumn()+m,h=new d(p,f,p,f+o.end.length);break}a=g.stepForward()}h&&t.remove(h),u&&(t.remove(u),r=u.start.row,s=-o.start.length)}else s=o.start.length,r=i.start.row,t.insert(i.end,o.end),t.insert(i.start,o.start);l.start.row==r&&(l.start.column+=s),l.end.row==r&&(l.end.column+=s),t.selection.fromOrientedRange(l)}},this.getNextLineIndent=function(e,t,i){return this.$getIndent(t)},this.checkOutdent=function(e,t,i){return!1},this.autoOutdent=function(e,t,i){},this.$getIndent=function(e){return e.match(/^\s*/)[0]},this.createWorker=function(e){return null},this.createModeDelegates=function(e){for(var t in this.$embeds=[],this.$modes={},e)if(e[t]){var i=e[t],o=i.prototype.$id,r=n.$modes[o];r||(n.$modes[o]=r=new i),n.$modes[t]||(n.$modes[t]=r),this.$embeds.push(t),this.$modes[t]=r}var s=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"];for(t=0;tthis.row)){var i=t(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(i.row,i.column,!0)}},this.setPosition=function(e,t,i){var n;if(n=i?{row:e,column:t}:this.$clipPositionToDocument(e,t),this.row!=n.row||this.column!=n.column){var o={row:this.row,column:this.column};this.row=n.row,this.column=n.column,this._signal("change",{old:o,value:n})}},this.detach=function(){this.document.off("change",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(e,t){var i={};return e>=this.document.getLength()?(i.row=Math.max(0,this.document.getLength()-1),i.column=this.document.getLine(i.row).length):e<0?(i.row=0,i.column=0):(i.row=e,i.column=Math.min(this.document.getLine(i.row).length,Math.max(0,t))),t<0&&(i.column=0),i}}).call(r.prototype)})),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],(function(e,t,i){"use strict";var n=e("./lib/oop"),o=e("./apply_delta").applyDelta,r=e("./lib/event_emitter").EventEmitter,s=e("./range").Range,a=e("./anchor").Anchor,l=function(e){this.$lines=[""],0===e.length?this.$lines=[""]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){n.implement(this,r),this.setValue=function(e){var t=this.getLength()-1;this.remove(new s(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new a(this,e,t)},0==="aaa".split(/a/).length?this.$split=function(e){return e.replace(/\r\n|\r/g,"\n").split("\n")}:this.$split=function(e){return e.split(/\r\n|\r|\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:"\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";default:return this.$autoNewLine||"\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(e){this.$newLineMode!==e&&(this.$newLineMode=e,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return"\r\n"==e||"\r"==e||"\n"==e},this.getLine=function(e){return this.$lines[e]||""},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{(t=this.getLines(e.start.row,e.end.row))[0]=(t[0]||"").substring(e.start.column);var i=t.length-1;e.end.row-e.start.row==i&&(t[i]=t[i].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(e,["",""])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var i=this.clippedPos(e.row,e.column),n=this.pos(e.row,e.column+t.length);return this.applyDelta({start:i,end:n,action:"insert",lines:[t]},!0),this.clonePos(n)},this.clippedPos=function(e,t){var i=this.getLength();void 0===e?e=i:e<0?e=0:e>=i&&(e=i-1,t=void 0);var n=this.getLine(e);return null==t&&(t=n.length),{row:e,column:t=Math.min(Math.max(t,0),n.length)}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,t){var i=0;(e=Math.min(Math.max(e,0),this.getLength()))0,n=t=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},this.replace=function(e,t){return e instanceof s||(e=s.fromPoints(e.start,e.end)),0===t.length&&e.isEmpty()?e.start:t==this.getTextRange(e)?e.end:(this.remove(e),t?this.insert(e.start,t):e.start)},this.applyDeltas=function(e){for(var t=0;t=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var i="insert"==e.action;(i?e.lines.length<=1&&!e.lines[0]:!s.comparePoints(e.start,e.end))||(i&&e.lines.length>2e4?this.$splitAndapplyLargeDelta(e,2e4):(o(this.$lines,e,t),this._signal("change",e)))},this.$safeApplyDelta=function(e){var t=this.$lines.length;("remove"==e.action&&e.start.row20){i.running=setTimeout(i.$worker,20);break}}i.currentLine=t,-1==n&&(n=t),r<=n&&i.fireUpdateEvent(r,n)}}};(function(){n.implement(this,o),this.setTokenizer=function(e){this.tokenizer=e,this.lines=[],this.states=[],this.start(0)},this.setDocument=function(e){this.doc=e,this.lines=[],this.states=[],this.stop()},this.fireUpdateEvent=function(e,t){var i={first:e,last:t};this._signal("update",{data:i})},this.start=function(e){this.currentLine=Math.min(e||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},this.$updateOnChange=function(e){var t=e.start.row,i=e.end.row-t;if(0===i)this.lines[t]=null;else if("remove"==e.action)this.lines.splice(t,i+1,null),this.states.splice(t,i+1,null);else{var n=Array(i+1);n.unshift(t,1),this.lines.splice.apply(this.lines,n),this.states.splice.apply(this.states,n)}this.currentLine=Math.min(t,this.currentLine,this.doc.getLength()),this.stop()},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(e){return this.lines[e]||this.$tokenizeRow(e)},this.getState=function(e){return this.currentLine==e&&this.$tokenizeRow(e),this.states[e]||"start"},this.$tokenizeRow=function(e){var t=this.doc.getLine(e),i=this.states[e-1],n=this.tokenizer.getLineTokens(t,i,e);return this.states[e]+""!=n.state+""?(this.states[e]=n.state,this.lines[e+1]=null,this.currentLine>e+1&&(this.currentLine=e+1)):this.currentLine==e&&(this.currentLine=e+1),this.lines[e]=n.tokens}}).call(r.prototype),t.BackgroundTokenizer=r})),ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],(function(e,t,i){"use strict";var n=e("./lib/lang"),o=(e("./lib/oop"),e("./range").Range),r=function(e,t,i){this.setRegexp(e),this.clazz=t,this.type=i||"text"};(function(){this.MAX_RANGES=500,this.setRegexp=function(e){this.regExp+""!=e+""&&(this.regExp=e,this.cache=[])},this.update=function(e,t,i,r){if(this.regExp)for(var s=r.firstRow,a=r.lastRow,l=s;l<=a;l++){var c=this.cache[l];null==c&&((c=n.getMatchOffsets(i.getLine(l),this.regExp)).length>this.MAX_RANGES&&(c=c.slice(0,this.MAX_RANGES)),c=c.map((function(e){return new o(l,e.offset,l,e.offset+e.length)})),this.cache[l]=c.length?c:"");for(var d=c.length;d--;)t.drawSingleLineMarker(e,c[d].toScreenRange(i),this.clazz,r)}}}).call(r.prototype),t.SearchHighlight=r})),ace.define("ace/edit_session/fold_line",["require","exports","module","ace/range"],(function(e,t,i){"use strict";function n(e,t){this.foldData=e,Array.isArray(t)?this.folds=t:t=this.folds=[t];var i=t[t.length-1];this.range=new o(t[0].start.row,t[0].start.column,i.end.row,i.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach((function(e){e.setFoldLine(this)}),this)}var o=e("../range").Range;(function(){this.shiftRow=function(e){this.start.row+=e,this.end.row+=e,this.folds.forEach((function(t){t.start.row+=e,t.end.row+=e}))},this.addFold=function(e){if(e.sameRow){if(e.start.rowthis.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(e),this.folds.sort((function(e,t){return-e.range.compareEnd(t.start.row,t.start.column)})),this.range.compareEnd(e.start.row,e.start.column)>0?(this.end.row=e.end.row,this.end.column=e.end.column):this.range.compareStart(e.end.row,e.end.column)<0&&(this.start.row=e.start.row,this.start.column=e.start.column)}else if(e.start.row==this.end.row)this.folds.push(e),this.end.row=e.end.row,this.end.column=e.end.column;else{if(e.end.row!=this.start.row)throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");this.folds.unshift(e),this.start.row=e.start.row,this.start.column=e.start.column}e.foldLine=this},this.containsRow=function(e){return e>=this.start.row&&e<=this.end.row},this.walk=function(e,t,i){var n,o,r=0,s=this.folds,a=!0;null==t&&(t=this.end.row,i=this.end.column);for(var l=0;l0)){var l=n(e,s.start);return 0===a?t&&0!==l?-r-2:r:l>0||0===l&&!t?r:-r-1}}return-r-1},this.add=function(e){var t=!e.isEmpty(),i=this.pointIndex(e.start,t);i<0&&(i=-i-1);var n=this.pointIndex(e.end,t,i);return n<0?n=-n-1:n++,this.ranges.splice(i,n-i,e)},this.addList=function(e){for(var t=[],i=e.length;i--;)t.push.apply(t,this.add(e[i]));return t},this.substractPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges.splice(t,1)},this.merge=function(){var e=[],t=this.ranges;t=t.sort((function(e,t){return n(e.start,t.start)}));for(var i,o=t[0],r=1;r=0},this.containsPoint=function(e){return this.pointIndex(e)>=0},this.rangeAtPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges[t]},this.clipRows=function(e,t){var i=this.ranges;if(i[0].start.row>t||i[i.length-1].start.row=n);s++);if("insert"==e.action){for(var l=o-n,c=-t.column+i.column;sn);s++)if(d.start.row==n&&d.start.column>=t.column&&(d.start.column==t.column&&this.$bias<=0||(d.start.column+=c,d.start.row+=l)),d.end.row==n&&d.end.column>=t.column){if(d.end.column==t.column&&this.$bias<0)continue;d.end.column==t.column&&c>0&&sd.start.column&&d.end.column==r[s+1].start.column&&(d.end.column-=c),d.end.column+=c,d.end.row+=l}}else for(l=n-o,c=t.column-i.column;so);s++)d.end.rowt.column)&&(d.end.column=t.column,d.end.row=t.row):(d.end.column+=c,d.end.row+=l):d.end.row>o&&(d.end.row+=l),d.start.rowt.column)&&(d.start.column=t.column,d.start.row=t.row):(d.start.column+=c,d.start.row+=l):d.start.row>o&&(d.start.row+=l);if(0!=l&&s=e)return o;if(o.end.row>e)return null}return null},this.getNextFoldLine=function(e,t){var i=this.$foldData,n=0;for(t&&(n=i.indexOf(t)),-1==n&&(n=0);n=e)return o}return null},this.getFoldedRowCount=function(e,t){for(var i=this.$foldData,n=t-e+1,o=0;o=t){a=e?n-=t-a:n=0);break}s>=e&&(n-=a>=e?s-a:s-e+1)}return n},this.$addFoldLine=function(e){return this.$foldData.push(e),this.$foldData.sort((function(e,t){return e.start.row-t.start.row})),e},this.addFold=function(e,t){var i,n=this.$foldData,s=!1;e instanceof r?i=e:(i=new r(t,e)).collapseChildren=t.collapseChildren,this.$clipRangeToDocument(i.range);var a=i.start.row,l=i.start.column,c=i.end.row,d=i.end.column,u=this.getFoldAt(a,l,1),h=this.getFoldAt(c,d,-1);if(u&&h==u)return u.addSubFold(i);u&&!u.range.isStart(a,l)&&this.removeFold(u),h&&!h.range.isEnd(c,d)&&this.removeFold(h);var p=this.getFoldsInRange(i.range);p.length>0&&(this.removeFolds(p),i.collapseChildren||p.forEach((function(e){i.addSubFold(e)})));for(var f=0;f0&&this.foldAll(e.start.row+1,e.end.row,e.collapseChildren-1),e.subFolds=[]},this.expandFolds=function(e){e.forEach((function(e){this.expandFold(e)}),this)},this.unfold=function(e,t){var i,o;if(null==e)i=new n(0,0,this.getLength(),0),null==t&&(t=!0);else if("number"==typeof e)i=new n(e,0,e,this.getLine(e).length);else if("row"in e)i=n.fromPoints(e,e);else{if(Array.isArray(e))return o=[],e.forEach((function(e){o=o.concat(this.unfold(e))}),this),o;i=e}for(var r=o=this.getFoldsInRangeList(i);1==o.length&&n.comparePoints(o[0].start,i.start)<0&&n.comparePoints(o[0].end,i.end)>0;)this.expandFolds(o),o=this.getFoldsInRangeList(i);if(0!=t?this.removeFolds(o):this.expandFolds(o),r.length)return r},this.isRowFolded=function(e,t){return!!this.getFoldLine(e,t)},this.getRowFoldEnd=function(e,t){var i=this.getFoldLine(e,t);return i?i.end.row:e},this.getRowFoldStart=function(e,t){var i=this.getFoldLine(e,t);return i?i.start.row:e},this.getFoldDisplayLine=function(e,t,i,n,o){null==n&&(n=e.start.row),null==o&&(o=0),null==t&&(t=e.end.row),null==i&&(i=this.getLine(t).length);var r=this.doc,s="";return e.walk((function(e,t,i,a){if(!(td)break}while(r&&l.test(r.type));r=o.stepBackward()}else r=o.getCurrentToken();return c.end.row=o.getCurrentTokenRow(),c.end.column=o.getCurrentTokenColumn()+r.value.length-2,c}},this.foldAll=function(e,t,i,n){null==i&&(i=1e5);var o=this.foldWidgets;if(o){t=t||this.getLength();for(var r=e=e||0;r=e&&(r=s.end.row,s.collapseChildren=i,this.addFold("...",s))}}},this.foldToLevel=function(e){for(this.foldAll();e-- >0;)this.unfold(null,!1)},this.foldAllComments=function(){var e=this;this.foldAll(null,null,null,(function(t){for(var i=e.getTokens(t),n=0;n=0;){var r=i[o];if(null==r&&(r=i[o]=this.getFoldWidget(o)),"start"==r){var s=this.getFoldWidgetRange(o);if(n||(n=s),s&&s.end.row>=e)break}o--}return{range:-1!==o&&s,firstRange:n}},this.onFoldWidgetClick=function(e,t){var i={children:(t=t.domEvent).shiftKey,all:t.ctrlKey||t.metaKey,siblings:t.altKey};if(!this.$toggleFoldWidget(e,i)){var n=t.target||t.srcElement;n&&/ace_fold-widget/.test(n.className)&&(n.className+=" ace_invalid")}},this.$toggleFoldWidget=function(e,t){if(this.getFoldWidget){var i=this.getFoldWidget(e),n=this.getLine(e),o="end"===i?-1:1,r=this.getFoldAt(e,-1===o?0:n.length,o);if(r)return t.children||t.all?this.removeFold(r):this.expandFold(r),r;var s=this.getFoldWidgetRange(e,!0);if(s&&!s.isMultiLine()&&(r=this.getFoldAt(s.start.row,s.start.column,1))&&s.isEqual(r.range))return this.removeFold(r),r;if(t.siblings){var a=this.getParentFoldRangeData(e);if(a.range)var l=a.range.start.row+1,c=a.range.end.row;this.foldAll(l,c,t.all?1e4:0)}else t.children?(c=s?s.end.row:this.getLength(),this.foldAll(e+1,c,t.all?1e4:0)):s&&(t.all&&(s.collapseChildren=1e4),this.addFold("...",s));return s}},this.toggleFoldWidget=function(e){var t=this.selection.getCursor().row;t=this.getRowFoldStart(t);var i=this.$toggleFoldWidget(t,{});if(!i){var n=this.getParentFoldRangeData(t,!0);if(i=n.range||n.firstRange){t=i.start.row;var o=this.getFoldAt(t,this.getLine(t).length,1);o?this.removeFold(o):this.addFold("...",i)}}},this.updateFoldWidgets=function(e){var t=e.start.row,i=e.end.row-t;if(0===i)this.foldWidgets[t]=null;else if("remove"==e.action)this.foldWidgets.splice(t,i+1,null);else{var n=Array(i+1);n.unshift(t,1),this.foldWidgets.splice.apply(this.foldWidgets,n)}},this.tokenizerUpdateFoldWidgets=function(e){var t=e.data;t.first!=t.last&&this.foldWidgets.length>t.first&&this.foldWidgets.splice(t.first,this.foldWidgets.length)}}})),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],(function(e,t,i){"use strict";var n=e("../token_iterator").TokenIterator,o=e("../range").Range;t.BracketMatch=function(){this.findMatchingBracket=function(e,t){if(0==e.column)return null;var i=t||this.getLine(e.row).charAt(e.column-1);if(""==i)return null;var n=i.match(/([\(\[\{])|([\)\]\}])/);return n?n[1]?this.$findClosingBracket(n[1],e):this.$findOpeningBracket(n[2],e):null},this.getBracketRange=function(e){var t,i=this.getLine(e.row),n=!0,r=i.charAt(e.column-1),s=r&&r.match(/([\(\[\{])|([\)\]\}])/);if(s||(r=i.charAt(e.column),e={row:e.row,column:e.column+1},s=r&&r.match(/([\(\[\{])|([\)\]\}])/),n=!1),!s)return null;if(s[1]){if(!(a=this.$findClosingBracket(s[1],e)))return null;t=o.fromPoints(e,a),n||(t.end.column++,t.start.column--),t.cursor=t.end}else{var a;if(!(a=this.$findOpeningBracket(s[2],e)))return null;t=o.fromPoints(a,e),n||(t.start.column++,t.end.column--),t.cursor=t.start}return t},this.getMatchingBracketRanges=function(e){var t=this.getLine(e.row),i=t.charAt(e.column-1),n=i&&i.match(/([\(\[\{])|([\)\]\}])/);if(n||(i=t.charAt(e.column),e={row:e.row,column:e.column+1},n=i&&i.match(/([\(\[\{])|([\)\]\}])/)),!n)return null;var r=new o(e.row,e.column-1,e.row,e.column),s=n[1]?this.$findClosingBracket(n[1],e):this.$findOpeningBracket(n[2],e);return s?[r,new o(s.row,s.column,s.row,s.column+1)]:[r]},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{","<":">",">":"<"},this.$findOpeningBracket=function(e,t,i){var o=this.$brackets[e],r=1,s=new n(this,t.row,t.column),a=s.getCurrentToken();if(a||(a=s.stepForward()),a){i||(i=new RegExp("(\\.?"+a.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)")+")+"));for(var l=t.column-s.getCurrentTokenColumn()-2,c=a.value;;){for(;l>=0;){var d=c.charAt(l);if(d==o){if(0==(r-=1))return{row:s.getCurrentTokenRow(),column:l+s.getCurrentTokenColumn()}}else d==e&&(r+=1);l-=1}do{a=s.stepBackward()}while(a&&!i.test(a.type));if(null==a)break;l=(c=a.value).length-1}return null}},this.$findClosingBracket=function(e,t,i){var o=this.$brackets[e],r=1,s=new n(this,t.row,t.column),a=s.getCurrentToken();if(a||(a=s.stepForward()),a){i||(i=new RegExp("(\\.?"+a.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)")+")+"));for(var l=t.column-s.getCurrentTokenColumn();;){for(var c=a.value,d=c.length;l=4352&&e<=4447||e>=4515&&e<=4519||e>=4602&&e<=4607||e>=9001&&e<=9002||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12283||e>=12288&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12589||e>=12593&&e<=12686||e>=12688&&e<=12730||e>=12736&&e<=12771||e>=12784&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=13054||e>=13056&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=55216&&e<=55238||e>=55243&&e<=55291||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=65281&&e<=65376||e>=65504&&e<=65510)}n.implement(this,a),this.setDocument=function(e){this.doc&&this.doc.off("change",this.$onChange),this.doc=e,e.on("change",this.$onChange),this.bgTokenizer&&this.bgTokenizer.setDocument(this.getDocument()),this.resetCaches()},this.getDocument=function(){return this.doc},this.$resetRowCache=function(e){if(!e)return this.$docRowCache=[],void(this.$screenRowCache=[]);var t=this.$docRowCache.length,i=this.$getRowCacheIndex(this.$docRowCache,e)+1;t>i&&(this.$docRowCache.splice(i,t),this.$screenRowCache.splice(i,t))},this.$getRowCacheIndex=function(e,t){for(var i=0,n=e.length-1;i<=n;){var o=i+n>>1,r=e[o];if(t>r)i=o+1;else{if(!(t=t);r++);return(i=n[r])?(i.index=r,i.start=o-i.value.length,i):null},this.setUndoManager=function(e){if(this.$undoManager=e,this.$informUndoManager&&this.$informUndoManager.cancel(),e){var t=this;e.addSession(this),this.$syncInformUndoManager=function(){t.$informUndoManager.cancel(),t.mergeUndoDeltas=!1},this.$informUndoManager=o.delayedCall(this.$syncInformUndoManager)}else this.$syncInformUndoManager=function(){}},this.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},this.$defaultUndoManager={undo:function(){},redo:function(){},hasUndo:function(){},hasRedo:function(){},reset:function(){},add:function(){},addSelection:function(){},startNewGroup:function(){},addSession:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?o.stringRepeat(" ",this.getTabSize()):"\t"},this.setUseSoftTabs=function(e){this.setOption("useSoftTabs",e)},this.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},this.setTabSize=function(e){this.setOption("tabSize",e)},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(e){return this.$useSoftTabs&&e.column%this.$tabSize==0},this.setNavigateWithinSoftTabs=function(e){this.setOption("navigateWithinSoftTabs",e)},this.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},this.$overwrite=!1,this.setOverwrite=function(e){this.setOption("overwrite",e)},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.addGutterDecoration=function(e,t){this.$decorations[e]||(this.$decorations[e]=""),this.$decorations[e]+=" "+t,this._signal("changeBreakpoint",{})},this.removeGutterDecoration=function(e,t){this.$decorations[e]=(this.$decorations[e]||"").replace(" "+t,""),this._signal("changeBreakpoint",{})},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(e){this.$breakpoints=[];for(var t=0;t0&&(n=!!i.charAt(t-1).match(this.tokenRe)),n||(n=!!i.charAt(t).match(this.tokenRe)),n)var o=this.tokenRe;else o=/^\s+$/.test(i.slice(t-1,t+1))?/\s/:this.nonTokenRe;var r=t;if(r>0){do{r--}while(r>=0&&i.charAt(r).match(o));r++}for(var s=t;se&&(e=t.screenWidth)})),this.lineWidgetWidth=e},this.$computeWidth=function(e){if(this.$modified||e){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var t=this.doc.getAllLines(),i=this.$rowLengthCache,n=0,o=0,r=this.$foldData[o],s=r?r.start.row:1/0,a=t.length,l=0;ls){if((l=r.end.row+1)>=a)break;s=(r=this.$foldData[o++])?r.start.row:1/0}null==i[l]&&(i[l]=this.$getStringScreenWidth(t[l])[0]),i[l]>n&&(n=i[l])}this.screenWidth=n}},this.getLine=function(e){return this.doc.getLine(e)},this.getLines=function(e,t){return this.doc.getLines(e,t)},this.getLength=function(){return this.doc.getLength()},this.getTextRange=function(e){return this.doc.getTextRange(e||this.selection.getRange())},this.insert=function(e,t){return this.doc.insert(e,t)},this.remove=function(e){return this.doc.remove(e)},this.removeFullLines=function(e,t){return this.doc.removeFullLines(e,t)},this.undoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var i=e.length-1;-1!=i;i--){var n=e[i];"insert"==n.action||"remove"==n.action?this.doc.revertDelta(n):n.folds&&this.addFolds(n.folds)}!t&&this.$undoSelect&&(e.selectionBefore?this.selection.fromJSON(e.selectionBefore):this.selection.setRange(this.$getUndoSelection(e,!0))),this.$fromUndo=!1}},this.redoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var i=0;ie.end.column&&(r.start.column+=c),r.end.row==e.end.row&&r.end.column>e.end.column&&(r.end.column+=c)),s&&r.start.row>=e.end.row&&(r.start.row+=s,r.end.row+=s)}if(r.end=this.insert(r.start,n),o.length){var a=e.start,l=r.start,c=(s=l.row-a.row,l.column-a.column);this.addFolds(o.map((function(e){return(e=e.clone()).start.row==a.row&&(e.start.column+=c),e.end.row==a.row&&(e.end.column+=c),e.start.row+=s,e.end.row+=s,e})))}return r},this.indentRows=function(e,t,i){i=i.replace(/\t/g,this.getTabString());for(var n=e;n<=t;n++)this.doc.insertInLine({row:n,column:0},i)},this.outdentRows=function(e){for(var t=e.collapseRows(),i=new d(0,0,0,0),n=this.getTabSize(),o=t.start.row;o<=t.end.row;++o){var r=this.getLine(o);i.start.row=o,i.end.row=o;for(var s=0;s0){var o;if((o=this.getRowFoldEnd(t+i))>this.doc.getLength()-1)return 0;n=o-t}else e=this.$clipRowToDocument(e),n=(t=this.$clipRowToDocument(t))-e+1;var r=new d(e,0,t,Number.MAX_VALUE),s=this.getFoldsInRange(r).map((function(e){return(e=e.clone()).start.row+=n,e.end.row+=n,e})),a=0==i?this.doc.getLines(e,t):this.doc.removeFullLines(e,t);return this.doc.insertFullLines(e+n,a),s.length&&this.addFolds(s),n},this.moveLinesUp=function(e,t){return this.$moveLines(e,t,-1)},this.moveLinesDown=function(e,t){return this.$moveLines(e,t,1)},this.duplicateLines=function(e,t){return this.$moveLines(e,t,0)},this.$clipRowToDocument=function(e){return Math.max(0,Math.min(e,this.doc.getLength()-1))},this.$clipColumnToRow=function(e,t){return t<0?0:Math.min(this.doc.getLine(e).length,t)},this.$clipPositionToDocument=function(e,t){if(t=Math.max(0,t),e<0)e=0,t=0;else{var i=this.doc.getLength();e>=i?(e=i-1,t=this.doc.getLine(i-1).length):t=Math.min(this.doc.getLine(e).length,t)}return{row:e,column:t}},this.$clipRangeToDocument=function(e){e.start.row<0?(e.start.row=0,e.start.column=0):e.start.column=this.$clipColumnToRow(e.start.row,e.start.column);var t=this.doc.getLength()-1;return e.end.row>t?(e.end.row=t,e.end.column=this.doc.getLine(t).length):e.end.column=this.$clipColumnToRow(e.end.row,e.end.column),e},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(e){if(e!=this.$useWrapMode){if(this.$useWrapMode=e,this.$modified=!0,this.$resetRowCache(0),e){var t=this.getLength();this.$wrapData=Array(t),this.$updateWrapData(0,t-1)}this._signal("changeWrapMode")}},this.getUseWrapMode=function(){return this.$useWrapMode},this.setWrapLimitRange=function(e,t){this.$wrapLimitRange.min===e&&this.$wrapLimitRange.max===t||(this.$wrapLimitRange={min:e,max:t},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode"))},this.adjustWrapLimit=function(e,t){var i=this.$wrapLimitRange;i.max<0&&(i={min:t,max:t});var n=this.$constrainWrapLimit(e,i.min,i.max);return n!=this.$wrapLimit&&n>1&&(this.$wrapLimit=n,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0)},this.$constrainWrapLimit=function(e,t,i){return t&&(e=Math.max(t,e)),i&&(e=Math.min(i,e)),e},this.getWrapLimit=function(){return this.$wrapLimit},this.setWrapLimit=function(e){this.setWrapLimitRange(e,e)},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(e){var t=this.$useWrapMode,i=e.action,n=e.start,o=e.end,r=n.row,s=o.row,a=s-r,l=null;if(this.$updating=!0,0!=a)if("remove"===i){this[t?"$wrapData":"$rowLengthCache"].splice(r,a);var c=this.$foldData;l=this.getFoldsInRange(e),this.removeFolds(l);var d=0;if(g=this.getFoldLine(o.row)){g.addRemoveChars(o.row,o.column,n.column-o.column),g.shiftRow(-a);var u=this.getFoldLine(r);u&&u!==g&&(u.merge(g),g=u),d=c.indexOf(g)+1}for(;d=o.row&&g.shiftRow(-a);s=r}else{var h=Array(a);h.unshift(r,0);var p=t?this.$wrapData:this.$rowLengthCache;if(p.splice.apply(p,h),c=this.$foldData,d=0,g=this.getFoldLine(r)){var f=g.range.compareInside(n.row,n.column);0==f?(g=g.split(n.row,n.column))&&(g.shiftRow(a),g.addRemoveChars(s,0,o.column-n.column)):-1==f&&(g.addRemoveChars(r,0,o.column-n.column),g.shiftRow(a)),d=c.indexOf(g)+1}for(;d=r&&g.shiftRow(a)}}else a=Math.abs(e.start.column-e.end.column),"remove"===i&&(l=this.getFoldsInRange(e),this.removeFolds(l),a=-a),(g=this.getFoldLine(r))&&g.addRemoveChars(r,n.column,a);return t&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,t?this.$updateWrapData(r,s):this.$updateRowLengthCache(r,s),l},this.$updateRowLengthCache=function(e,t,i){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},this.$updateWrapData=function(e,n){var o,r,s=this.doc.getAllLines(),a=this.getTabSize(),l=this.$wrapData,c=this.$wrapLimit,d=e;for(n=Math.min(n,s.length-1);d<=n;)(r=this.getFoldLine(d,r))?(o=[],r.walk(function(e,n,r,a){var l;if(null!=e){(l=this.$getDisplayTokens(e,o.length))[0]=t;for(var c=1;cn-f;){var g=c+n-f;if(e[g-1]>=10&&e[g]>=10)s(g);else if(e[g]!=t&&e[g]!=i){for(var m=Math.max(g-(n-(n>>2)),c-1);g>m&&e[g]m&&e[g]m&&9==e[g];)g--}else for(;g>m&&e[g]<10;)g--;g>m?s(++g):(2==e[g=c+n]&&g--,s(g-f))}else{for(;g!=c-1&&e[g]!=t;g--);if(g>c){s(g);continue}for(g=c+n;g39&&s<48||s>57&&s<64?o.push(9):s>=4352&&e(s)?o.push(1,2):o.push(1)}return o},this.$getStringScreenWidth=function(t,i,n){if(0==i)return[0,0];var o,r;for(null==i&&(i=1/0),n=n||0,r=0;r=4352&&e(o)?n+=2:n+=1,!(n>i));r++);return[n,r]},this.lineWidgets=null,this.getRowLength=function(e){var t=1;return this.lineWidgets&&(t+=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0),this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+t:t},this.getRowLineCount=function(e){return this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1:1},this.getRowWrapIndent=function(e){if(this.$useWrapMode){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE),i=this.$wrapData[t.row];return i.length&&i[0]=0){a=c[d],r=this.$docRowCache[d];var h=e>c[u-1]}else h=!u;for(var p=this.getLength()-1,f=this.getNextFoldLine(r),g=f?f.start.row:1/0;a<=e&&!(a+(l=this.getRowLength(r))>e||r>=p);)a+=l,++r>g&&(r=f.end.row+1,g=(f=this.getNextFoldLine(r,f))?f.start.row:1/0),h&&(this.$docRowCache.push(r),this.$screenRowCache.push(a));if(f&&f.start.row<=r)n=this.getFoldDisplayLine(f),r=f.start.row;else{if(a+l<=e||r>p)return{row:p,column:this.getLine(p).length};n=this.getLine(r),f=null}var m=0,A=Math.floor(e-a);if(this.$useWrapMode){var b=this.$wrapData[r];b&&(o=b[A],A>0&&b.length&&(m=b.indent,s=b[A-1]||b[b.length-1],n=n.substring(s)))}return void 0!==i&&this.$bidiHandler.isBidiRow(a+A,r,A)&&(t=this.$bidiHandler.offsetToCol(i)),s+=this.$getStringScreenWidth(n,t-m)[1],this.$useWrapMode&&s>=o&&(s=o-1),f?f.idxToPosition(s):{row:r,column:s}},this.documentToScreenPosition=function(e,t){if(void 0===t)var i=this.$clipPositionToDocument(e.row,e.column);else i=this.$clipPositionToDocument(e,t);e=i.row,t=i.column;var n,o=0,r=null;(n=this.getFoldAt(e,t,1))&&(e=n.start.row,t=n.start.column);var s,a=0,l=this.$docRowCache,c=this.$getRowCacheIndex(l,e),d=l.length;if(d&&c>=0){a=l[c],o=this.$screenRowCache[c];var u=e>l[d-1]}else u=!d;for(var h=this.getNextFoldLine(a),p=h?h.start.row:1/0;a=p){if((s=h.end.row+1)>e)break;p=(h=this.getNextFoldLine(s,h))?h.start.row:1/0}else s=a+1;o+=this.getRowLength(a),a=s,u&&(this.$docRowCache.push(a),this.$screenRowCache.push(o))}var f="";h&&a>=p?(f=this.getFoldDisplayLine(h,e,t),r=h.start.row):(f=this.getLine(e).substring(0,t),r=e);var g=0;if(this.$useWrapMode){var m=this.$wrapData[r];if(m){for(var A=0;f.length>=m[A];)o++,A++;f=f.substring(m[A-1]||0,f.length),g=A>0?m.indent:0}}return this.lineWidgets&&this.lineWidgets[a]&&this.lineWidgets[a].rowsAbove&&(o+=this.lineWidgets[a].rowsAbove),{row:o,column:g+this.$getStringScreenWidth(f)[0]}},this.documentToScreenColumn=function(e,t){return this.documentToScreenPosition(e,t).column},this.documentToScreenRow=function(e,t){return this.documentToScreenPosition(e,t).row},this.getScreenLength=function(){var e=0,t=null;if(this.$useWrapMode)for(var i=this.$wrapData.length,n=0,o=(a=0,(t=this.$foldData[a++])?t.start.row:1/0);no&&(n=t.end.row+1,o=(t=this.$foldData[a++])?t.start.row:1/0)}else{e=this.getLength();for(var s=this.$foldData,a=0;ai);r++);return[n,r]})},this.destroy=function(){this.bgTokenizer&&(this.bgTokenizer.setDocument(null),this.bgTokenizer=null),this.$stopWorker(),this.removeAllListeners(),this.doc&&this.doc.off("change",this.$onChange),this.selection.detach()},this.isFullWidth=e}.call(f.prototype),e("./edit_session/folding").Folding.call(f.prototype),e("./edit_session/bracket_match").BracketMatch.call(f.prototype),s.defineOptions(f.prototype,"session",{wrap:{set:function(e){if(e&&"off"!=e?"free"==e?e=!0:"printMargin"==e?e=-1:"string"==typeof e&&(e=parseInt(e,10)||!1):e=!1,this.$wrap!=e)if(this.$wrap=e,e){var t="number"==typeof e?e:null;this.setWrapLimitRange(t,t),this.setUseWrapMode(!0)}else this.setUseWrapMode(!1)},get:function(){return this.getUseWrapMode()?-1==this.$wrap?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(e){(e="auto"==e?"text"!=this.$mode.type:"text"!=e)!=this.$wrapAsCode&&(this.$wrapAsCode=e,this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0)))},initialValue:"auto"},indentedSoftWrap:{set:function(){this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0))},initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(e){this.$useWorker=e,this.$stopWorker(),e&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(e){(e=parseInt(e))>0&&this.$tabSize!==e&&(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=e,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},foldStyle:{set:function(e){this.setFoldStyle(e)},handlesSet:!0},overwrite:{set:function(e){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(e){this.doc.setNewLineMode(e)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(e){this.setMode(e)},get:function(){return this.$modeId},handlesSet:!0}}),t.EditSession=f})),ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],(function(e,t,i){"use strict";var n=e("./lib/lang"),o=e("./lib/oop"),r=e("./range").Range,s=function(){this.$options={}};(function(){this.set=function(e){return o.mixin(this.$options,e),this},this.getOptions=function(){return n.copyObject(this.$options)},this.setOptions=function(e){this.$options=e},this.find=function(e){var t=this.$options,i=this.$matchIterator(e,t);if(!i)return!1;var n=null;return i.forEach((function(e,i,o,s){return n=new r(e,i,o,s),!(i==s&&t.start&&t.start.start&&0!=t.skipCurrent&&n.isEqual(t.start)&&(n=null,1))})),n},this.findAll=function(e){var t=this.$options;if(!t.needle)return[];this.$assembleRegExp(t);var i=t.range,o=i?e.getLines(i.start.row,i.end.row):e.doc.getAllLines(),s=[],a=t.re;if(t.$isMultiLine){var l,c=a.length,d=o.length-c;e:for(var u=a.offset||0;u<=d;u++){for(var h=0;hg||(s.push(l=new r(u,g,u+c-1,m)),c>2&&(u=u+c-2))}}else for(var A=0;Ay&&s[h].end.row==i.end.row;)h--;for(s=s.slice(A,h+1),A=0,h=s.length;A=a;i--)if(u(i,Number.MAX_VALUE,e))return;if(0!=t.wrap)for(i=l,a=s.row;i>=a;i--)if(u(i,Number.MAX_VALUE,e))return}};else c=function(e){var i=s.row;if(!u(i,s.column,e)){for(i+=1;i<=l;i++)if(u(i,0,e))return;if(0!=t.wrap)for(i=a,l=s.row;i<=l;i++)if(u(i,0,e))return}};if(t.$isMultiLine)var d=i.length,u=function(t,o,r){var s=n?t-d+1:t;if(!(s<0||s+d>e.getLength())){var a=e.getLine(s),l=a.search(i[0]);if(!(!n&&lo))return!!r(s,l,s+d-1,u)||void 0}}};else u=n?function(t,n,o){var r,s=e.getLine(t),a=[],l=0;for(i.lastIndex=0;r=i.exec(s);){var c=r[0].length;if(l=r.index,!c){if(l>=s.length)break;i.lastIndex=l+=1}if(r.index+c>n)break;a.push(r.index,c)}for(var d=a.length-1;d>=0;d-=2){var u=a[d-1];if(o(t,u,t,u+(c=a[d])))return!0}}:function(t,n,o){var r,s,a=e.getLine(t);for(i.lastIndex=n;s=i.exec(a);){var l=s[0].length;if(o(t,r=s.index,t,r+l))return!0;if(!l&&(i.lastIndex=r+=1,r>=a.length))return!1}};return{forEach:c}}}).call(s.prototype),t.Search=s})),ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],(function(e,t,i){"use strict";function n(e,t){this.platform=t||(s.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(e),this.$singleCommand=!0}function o(e,t){n.call(this,e,t),this.$singleCommand=!1}var r=e("../lib/keys"),s=e("../lib/useragent"),a=r.KEY_MODS;o.prototype=n.prototype,function(){function e(e){return"object"==typeof e&&e.bindKey&&e.bindKey.position||(e.isDefault?-100:0)}this.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},this.removeCommand=function(e,t){var i=e&&("string"==typeof e?e:e.name);e=this.commands[i],t||delete this.commands[i];var n=this.commandKeyBinding;for(var o in n){var r=n[o];if(r==e)delete n[o];else if(Array.isArray(r)){var s=r.indexOf(e);-1!=s&&(r.splice(s,1),1==r.length&&(n[o]=r[0]))}}},this.bindKey=function(e,t,i){if("object"==typeof e&&e&&(null==i&&(i=e.position),e=e[this.platform]),e)return"function"==typeof t?this.addCommand({exec:t,bindKey:e,name:t.name||e}):void e.split("|").forEach((function(e){var n="";if(-1!=e.indexOf(" ")){var o=e.split(/\s+/);e=o.pop(),o.forEach((function(e){var t=this.parseKeys(e),i=a[t.hashId]+t.key;n+=(n?" ":"")+i,this._addCommandToBinding(n,"chainKeys")}),this),n+=" "}var r=this.parseKeys(e),s=a[r.hashId]+r.key;this._addCommandToBinding(n+s,t,i)}),this)},this._addCommandToBinding=function(t,i,n){var o,r=this.commandKeyBinding;if(i)if(!r[t]||this.$singleCommand)r[t]=i;else{Array.isArray(r[t])?-1!=(o=r[t].indexOf(i))&&r[t].splice(o,1):r[t]=[r[t]],"number"!=typeof n&&(n=e(i));var s=r[t];for(o=0;on);o++);s.splice(o,0,i)}else delete r[t]},this.addCommands=function(e){e&&Object.keys(e).forEach((function(t){var i=e[t];if(i){if("string"==typeof i)return this.bindKey(i,t);"function"==typeof i&&(i={exec:i}),"object"==typeof i&&(i.name||(i.name=t),this.addCommand(i))}}),this)},this.removeCommands=function(e){Object.keys(e).forEach((function(t){this.removeCommand(e[t])}),this)},this.bindKeys=function(e){Object.keys(e).forEach((function(t){this.bindKey(t,e[t])}),this)},this._buildKeyHash=function(e){this.bindKey(e.bindKey,e)},this.parseKeys=function(e){var t=e.toLowerCase().split(/[\-\+]([\-\+])?/).filter((function(e){return e})),i=t.pop(),n=r[i];if(r.FUNCTION_KEYS[n])i=r.FUNCTION_KEYS[n].toLowerCase();else{if(!t.length)return{key:i,hashId:-1};if(1==t.length&&"shift"==t[0])return{key:i.toUpperCase(),hashId:-1}}for(var o=0,s=t.length;s--;){var a=r.KEY_MODS[t[s]];if(null==a)return"undefined"!=typeof console&&console.error("invalid modifier "+t[s]+" in "+e),!1;o|=a}return{key:i,hashId:o}},this.findKeyCommand=function(e,t){var i=a[e]+t;return this.commandKeyBinding[i]},this.handleKeyboard=function(e,t,i,n){if(!(n<0)){var o=a[t]+i,r=this.commandKeyBinding[o];return e.$keyChain&&(e.$keyChain+=" "+o,r=this.commandKeyBinding[e.$keyChain]||r),!r||"chainKeys"!=r&&"chainKeys"!=r[r.length-1]?(e.$keyChain&&(t&&4!=t||1!=i.length?(-1==t||n>0)&&(e.$keyChain=""):e.$keyChain=e.$keyChain.slice(0,-o.length-1)),{command:r}):(e.$keyChain=e.$keyChain||o,{command:"null"})}},this.getStatusText=function(e,t){return t.$keyChain||""}}.call(n.prototype),t.HashHandler=n,t.MultiHashHandler=o})),ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],(function(e,t,i){"use strict";var n=e("../lib/oop"),o=e("../keyboard/hash_handler").MultiHashHandler,r=e("../lib/event_emitter").EventEmitter,s=function(e,t){o.call(this,t,e),this.byName=this.commands,this.setDefaultHandler("exec",(function(e){return e.command.exec(e.editor,e.args||{})}))};n.inherits(s,o),function(){n.implement(this,r),this.exec=function(e,t,i){if(Array.isArray(e)){for(var n=e.length;n--;)if(this.exec(e[n],t,i))return!0;return!1}if("string"==typeof e&&(e=this.commands[e]),!e)return!1;if(t&&t.$readOnly&&!e.readOnly)return!1;if(0!=this.$checkCommandState&&e.isAvailable&&!e.isAvailable(t))return!1;var o={editor:t,command:e,args:i};return o.returnValue=this._emit("exec",o),this._signal("afterExec",o),!1!==o.returnValue},this.toggleRecording=function(e){if(!this.$inReplay)return e&&e._emit("changeStatus"),this.recording?(this.macro.pop(),this.off("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(e){this.macro.push([e.command,e.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},this.replay=function(e){if(!this.$inReplay&&this.macro){if(this.recording)return this.toggleRecording(e);try{this.$inReplay=!0,this.macro.forEach((function(t){"string"==typeof t?this.exec(t,e):this.exec(t[0],e,t[1])}),this)}finally{this.$inReplay=!1}}},this.trimMacro=function(e){return e.map((function(e){return"string"!=typeof e[0]&&(e[0]=e[0].name),e[1]||(e=e[0]),e}))}}.call(s.prototype),t.CommandManager=s})),ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],(function(e,t,i){"use strict";function n(e,t){return{win:e,mac:t}}var o=e("../lib/lang"),r=e("../config"),s=e("../range").Range;t.commands=[{name:"showSettingsMenu",description:"Show settings menu",bindKey:n("Ctrl-,","Command-,"),exec:function(e){r.loadModule("ace/ext/settings_menu",(function(t){t.init(e),e.showSettingsMenu()}))},readOnly:!0},{name:"goToNextError",description:"Go to next error",bindKey:n("Alt-E","F4"),exec:function(e){r.loadModule("./ext/error_marker",(function(t){t.showErrorMarker(e,1)}))},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",description:"Go to previous error",bindKey:n("Alt-Shift-E","Shift-F4"),exec:function(e){r.loadModule("./ext/error_marker",(function(t){t.showErrorMarker(e,-1)}))},scrollIntoView:"animate",readOnly:!0},{name:"selectall",description:"Select all",bindKey:n("Ctrl-A","Command-A"),exec:function(e){e.selectAll()},readOnly:!0},{name:"centerselection",description:"Center selection",bindKey:n(null,"Ctrl-L"),exec:function(e){e.centerSelection()},readOnly:!0},{name:"gotoline",description:"Go to line...",bindKey:n("Ctrl-L","Command-L"),exec:function(e,t){"number"==typeof t&&!isNaN(t)&&e.gotoLine(t),e.prompt({$type:"gotoLine"})},readOnly:!0},{name:"fold",bindKey:n("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(e){e.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:n("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(e){e.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",description:"Toggle fold widget",bindKey:n("F2","F2"),exec:function(e){e.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",description:"Toggle parent fold widget",bindKey:n("Alt-F2","Alt-F2"),exec:function(e){e.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",description:"Fold all",bindKey:n(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldAllComments",description:"Fold all comments",bindKey:n(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAllComments()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",description:"Fold other",bindKey:n("Alt-0","Command-Option-0"),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",description:"Unfold all",bindKey:n("Alt-Shift-0","Command-Option-Shift-0"),exec:function(e){e.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",description:"Find next",bindKey:n("Ctrl-K","Command-G"),exec:function(e){e.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",description:"Find previous",bindKey:n("Ctrl-Shift-K","Command-Shift-G"),exec:function(e){e.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",description:"Select or find next",bindKey:n("Alt-K","Ctrl-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:"selectOrFindPrevious",description:"Select or find previous",bindKey:n("Alt-Shift-K","Ctrl-Shift-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:"find",description:"Find",bindKey:n("Ctrl-F","Command-F"),exec:function(e){r.loadModule("ace/ext/searchbox",(function(t){t.Search(e)}))},readOnly:!0},{name:"overwrite",description:"Overwrite",bindKey:"Insert",exec:function(e){e.toggleOverwrite()},readOnly:!0},{name:"selecttostart",description:"Select to start",bindKey:n("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",description:"Go to start",bindKey:n("Ctrl-Home","Command-Home|Command-Up"),exec:function(e){e.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",description:"Select up",bindKey:n("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",description:"Go line up",bindKey:n("Up","Up|Ctrl-P"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",description:"Select to end",bindKey:n("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",description:"Go to end",bindKey:n("Ctrl-End","Command-End|Command-Down"),exec:function(e){e.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",description:"Select down",bindKey:n("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",description:"Go line down",bindKey:n("Down","Down|Ctrl-N"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",description:"Select word left",bindKey:n("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",description:"Go to word left",bindKey:n("Ctrl-Left","Option-Left"),exec:function(e){e.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",description:"Select to line start",bindKey:n("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",description:"Go to line start",bindKey:n("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(e){e.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",description:"Select left",bindKey:n("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",description:"Go to left",bindKey:n("Left","Left|Ctrl-B"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",description:"Select word right",bindKey:n("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",description:"Go to word right",bindKey:n("Ctrl-Right","Option-Right"),exec:function(e){e.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",description:"Select to line end",bindKey:n("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",description:"Go to line end",bindKey:n("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(e){e.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",description:"Select right",bindKey:n("Shift-Right","Shift-Right"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",description:"Go to right",bindKey:n("Right","Right|Ctrl-F"),exec:function(e,t){e.navigateRight(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",description:"Select page down",bindKey:"Shift-PageDown",exec:function(e){e.selectPageDown()},readOnly:!0},{name:"pagedown",description:"Page down",bindKey:n(null,"Option-PageDown"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:"gotopagedown",description:"Go to page down",bindKey:n("PageDown","PageDown|Ctrl-V"),exec:function(e){e.gotoPageDown()},readOnly:!0},{name:"selectpageup",description:"Select page up",bindKey:"Shift-PageUp",exec:function(e){e.selectPageUp()},readOnly:!0},{name:"pageup",description:"Page up",bindKey:n(null,"Option-PageUp"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:"gotopageup",description:"Go to page up",bindKey:"PageUp",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:"scrollup",description:"Scroll up",bindKey:n("Ctrl-Up",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",description:"Scroll down",bindKey:n("Ctrl-Down",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",description:"Select line start",bindKey:"Shift-Home",exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",description:"Select line end",bindKey:"Shift-End",exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",description:"Toggle recording",bindKey:n("Ctrl-Alt-E","Command-Option-E"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:"replaymacro",description:"Replay macro",bindKey:n("Ctrl-Shift-E","Command-Shift-E"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:"jumptomatching",description:"Jump to matching",bindKey:n("Ctrl-\\|Ctrl-P","Command-\\"),exec:function(e){e.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",description:"Select to matching",bindKey:n("Ctrl-Shift-\\|Ctrl-Shift-P","Command-Shift-\\"),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",description:"Expand to matching",bindKey:n("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(e){e.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",description:"Pass keys to browser",bindKey:n(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",description:"Copy",exec:function(e){},readOnly:!0},{name:"cut",description:"Cut",exec:function(e){var t=e.$copyWithEmptySelection&&e.selection.isEmpty()?e.selection.getLineRange():e.selection.getRange();e._emit("cut",t),t.isEmpty()||e.session.remove(t),e.clearSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",description:"Paste",exec:function(e,t){e.$handlePaste(t)},scrollIntoView:"cursor"},{name:"removeline",description:"Remove line",bindKey:n("Ctrl-D","Command-D"),exec:function(e){e.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",description:"Duplicate selection",bindKey:n("Ctrl-Shift-D","Command-Shift-D"),exec:function(e){e.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",description:"Sort lines",bindKey:n("Ctrl-Alt-S","Command-Alt-S"),exec:function(e){e.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",description:"Toggle comment",bindKey:n("Ctrl-/","Command-/"),exec:function(e){e.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",description:"Toggle block comment",bindKey:n("Ctrl-Shift-/","Command-Shift-/"),exec:function(e){e.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",description:"Modify number up",bindKey:n("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(e){e.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",description:"Modify number down",bindKey:n("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(e){e.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",description:"Replace",bindKey:n("Ctrl-H","Command-Option-F"),exec:function(e){r.loadModule("ace/ext/searchbox",(function(t){t.Search(e,!0)}))}},{name:"undo",description:"Undo",bindKey:n("Ctrl-Z","Command-Z"),exec:function(e){e.undo()}},{name:"redo",description:"Redo",bindKey:n("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(e){e.redo()}},{name:"copylinesup",description:"Copy lines up",bindKey:n("Alt-Shift-Up","Command-Option-Up"),exec:function(e){e.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",description:"Move lines up",bindKey:n("Alt-Up","Option-Up"),exec:function(e){e.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",description:"Copy lines down",bindKey:n("Alt-Shift-Down","Command-Option-Down"),exec:function(e){e.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",description:"Move lines down",bindKey:n("Alt-Down","Option-Down"),exec:function(e){e.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",description:"Delete",bindKey:n("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(e){e.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",description:"Backspace",bindKey:n("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(e){e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",description:"Cut or delete",bindKey:n("Shift-Delete",null),exec:function(e){if(!e.selection.isEmpty())return!1;e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",description:"Remove to line start",bindKey:n("Alt-Backspace","Command-Backspace"),exec:function(e){e.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",description:"Remove to line end",bindKey:n("Alt-Delete","Ctrl-K|Command-Delete"),exec:function(e){e.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",description:"Remove to line start hard",bindKey:n("Ctrl-Shift-Backspace",null),exec:function(e){var t=e.selection.getRange();t.start.column=0,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",description:"Remove to line end hard",bindKey:n("Ctrl-Shift-Delete",null),exec:function(e){var t=e.selection.getRange();t.end.column=Number.MAX_VALUE,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",description:"Remove word left",bindKey:n("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(e){e.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",description:"Remove word right",bindKey:n("Ctrl-Delete","Alt-Delete"),exec:function(e){e.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",description:"Outdent",bindKey:n("Shift-Tab","Shift-Tab"),exec:function(e){e.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",description:"Indent",bindKey:n("Tab","Tab"),exec:function(e){e.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",description:"Block outdent",bindKey:n("Ctrl-[","Ctrl-["),exec:function(e){e.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",description:"Block indent",bindKey:n("Ctrl-]","Ctrl-]"),exec:function(e){e.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",description:"Insert string",exec:function(e,t){e.insert(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",description:"Insert text",exec:function(e,t){e.insert(o.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",description:"Split line",bindKey:n(null,"Ctrl-O"),exec:function(e){e.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",description:"Transpose letters",bindKey:n("Alt-Shift-X","Ctrl-T"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",description:"To uppercase",bindKey:n("Ctrl-U","Ctrl-U"),exec:function(e){e.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",description:"To lowercase",bindKey:n("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(e){e.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"autoindent",description:"Auto Indent",bindKey:n(null,null),exec:function(e){e.autoIndent()},multiSelectAction:"forEachLine",scrollIntoView:"animate"},{name:"expandtoline",description:"Expand to line",bindKey:n("Ctrl-Shift-L","Command-Shift-L"),exec:function(e){var t=e.selection.getRange();t.start.column=t.end.column=0,t.end.row++,e.selection.setRange(t,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"joinlines",description:"Join lines",bindKey:n(null,null),exec:function(e){for(var t=e.selection.isBackwards(),i=t?e.selection.getSelectionLead():e.selection.getSelectionAnchor(),n=t?e.selection.getSelectionAnchor():e.selection.getSelectionLead(),r=e.session.doc.getLine(i.row).length,a=e.session.doc.getTextRange(e.selection.getRange()).replace(/\n\s*/," ").length,l=e.session.doc.getLine(i.row),c=i.row+1;c<=n.row+1;c++){var d=o.stringTrimLeft(o.stringTrimRight(e.session.doc.getLine(c)));0!==d.length&&(d=" "+d),l+=d}n.row+10?(e.selection.moveCursorTo(i.row,i.column),e.selection.selectTo(i.row,i.column+a)):(r=e.session.doc.getLine(i.row).length>r?r+1:r,e.selection.moveCursorTo(i.row,r))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",description:"Invert selection",bindKey:n(null,null),exec:function(e){var t=e.session.doc.getLength()-1,i=e.session.doc.getLine(t).length,n=e.selection.rangeList.ranges,o=[];n.length<1&&(n=[e.selection.getRange()]);for(var r=0;r=o.lastRow||n.end.row<=o.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead)}"animate"==i&&this.renderer.animateScrolling(this.curOp.scrollTop)}var r=this.selection.toJSON();this.curOp.selectionAfter=r,this.$lastSel=this.selection.toJSON(),this.session.getUndoManager().addSelection(r),this.prevOp=this.curOp,this.curOp=null}},this.$mergeableCommands=["backspace","del","insertstring"],this.$historyTracker=function(e){if(this.$mergeUndoDeltas){var t=this.prevOp,i=this.$mergeableCommands,n=t.command&&e.command.name==t.command.name;if("insertstring"==e.command.name){var o=e.args;void 0===this.mergeNextCommand&&(this.mergeNextCommand=!0),n=n&&this.mergeNextCommand&&(!/\s/.test(o)||/\s/.test(t.args)),this.mergeNextCommand=!0}else n=n&&-1!==i.indexOf(e.command.name);"always"!=this.$mergeUndoDeltas&&Date.now()-this.sequenceStartTime>2e3&&(n=!1),n?this.session.mergeUndoDeltas=!0:-1!==i.indexOf(e.command.name)&&(this.sequenceStartTime=Date.now())}},this.setKeyboardHandler=function(e,t){if(e&&"string"==typeof e&&"ace"!=e){this.$keybindingId=e;var i=this;A.loadModule(["keybinding",e],(function(n){i.$keybindingId==e&&i.keyBinding.setKeyboardHandler(n&&n.handler),t&&t()}))}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(e),t&&t()},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(e){if(this.session!=e){this.curOp&&this.endOperation(),this.curOp={};var t=this.session;if(t){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange);var i=this.session.getSelection();i.off("changeCursor",this.$onCursorChange),i.off("changeSelection",this.$onSelectionChange)}this.session=e,e?(this.$onDocumentChange=this.onDocumentChange.bind(this),e.on("change",this.$onDocumentChange),this.renderer.setSession(e),this.$onChangeMode=this.onChangeMode.bind(this),e.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),e.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),e.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),e.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),e.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),e.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=e.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.onCursorChange(),this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(e)),this._signal("changeSession",{session:e,oldSession:t}),this.curOp=null,t&&t._signal("changeEditor",{oldEditor:this}),e&&e._signal("changeEditor",{editor:this}),e&&e.bgTokenizer&&e.bgTokenizer.scheduleStart()}},this.getSession=function(){return this.session},this.setValue=function(e,t){return this.session.doc.setValue(e),t?1==t?this.navigateFileEnd():-1==t&&this.navigateFileStart():this.selectAll(),e},this.getValue=function(){return this.session.getValue()},this.getSelection=function(){return this.selection},this.resize=function(e){this.renderer.onResize(e)},this.setTheme=function(e,t){this.renderer.setTheme(e,t)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(e){this.renderer.setStyle(e)},this.unsetStyle=function(e){this.renderer.unsetStyle(e)},this.getFontSize=function(){return this.getOption("fontSize")||o.computedStyle(this.container).fontSize},this.setFontSize=function(e){this.setOption("fontSize",e)},this.$highlightBrackets=function(){if(!this.$highlightPending){var e=this;this.$highlightPending=!0,setTimeout((function(){e.$highlightPending=!1;var t=e.session;if(t&&t.bgTokenizer){t.$bracketHighlight&&(t.$bracketHighlight.markerIds.forEach((function(e){t.removeMarker(e)})),t.$bracketHighlight=null);var i=t.getMatchingBracketRanges(e.getCursorPosition());if(!i&&t.$mode.getMatching&&(i=t.$mode.getMatching(e.session)),i){var n="ace_bracket";Array.isArray(i)?1==i.length&&(n="ace_error_bracket"):i=[i],2==i.length&&(0==p.comparePoints(i[0].end,i[1].start)?i=[p.fromPoints(i[0].start,i[1].end)]:0==p.comparePoints(i[0].start,i[1].end)&&(i=[p.fromPoints(i[1].start,i[0].end)])),t.$bracketHighlight={ranges:i,markerIds:i.map((function(e){return t.addMarker(e,n,"text")}))}}}}),50)}},this.$highlightTags=function(){if(!this.$highlightTagPending){var e=this;this.$highlightTagPending=!0,setTimeout((function(){e.$highlightTagPending=!1;var t=e.session;if(t&&t.bgTokenizer){var i=e.getCursorPosition(),n=new b(e.session,i.row,i.column),o=n.getCurrentToken();if(!o||!/\b(?:tag-open|tag-name)/.test(o.type))return t.removeMarker(t.$tagHighlight),void(t.$tagHighlight=null);if(-1===o.type.indexOf("tag-open")||(o=n.stepForward())){var r=o.value,s=o.value,a=0,l=n.stepBackward();if("<"===l.value)do{l=o,(o=n.stepForward())&&(-1!==o.type.indexOf("tag-name")?r===(s=o.value)&&("<"===l.value?a++:""===o.value&&a--)}while(o&&a>=0);else{do{if(o=l,l=n.stepBackward(),o)if(-1!==o.type.indexOf("tag-name"))r===o.value&&("<"===l.value?a++:""===o.value){for(var c=0,d=l;d;){if(-1!==d.type.indexOf("tag-name")&&d.value===r){a--;break}if("<"===d.value)break;d=n.stepBackward(),c++}for(var u=0;u1)&&(e=!1)),t.$highlightLineMarker&&!e)t.removeMarker(t.$highlightLineMarker.id),t.$highlightLineMarker=null;else if(!t.$highlightLineMarker&&e){var i=new p(e.row,e.column,e.row,1/0);i.id=t.addMarker(i,"ace_active-line","screenLine"),t.$highlightLineMarker=i}else e&&(t.$highlightLineMarker.start.row=e.row,t.$highlightLineMarker.end.row=e.row,t.$highlightLineMarker.start.column=e.column,t._signal("changeBackMarker"))},this.onSelectionChange=function(e){var t=this.session;if(t.$selectionMarker&&t.removeMarker(t.$selectionMarker),t.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var i=this.selection.getRange(),n=this.getSelectionStyle();t.$selectionMarker=t.addMarker(i,"ace_selection",n)}var o=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(o),this._signal("changeSelection")},this.$getSelectionHighLightRegexp=function(){var e=this.session,t=this.getSelectionRange();if(!t.isEmpty()&&!t.isMultiLine()){var i=t.start.column,n=t.end.column,o=e.getLine(t.start.row),r=o.substring(i,n);if(!(r.length>5e3)&&/[\w\d]/.test(r)){var s=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:r}),a=o.substring(i-1,n+1);if(s.test(a))return s}}},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(e){this.renderer.updateText(),this._emit("changeMode",e)},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},this.getCopyText=function(){var e=this.getSelectedText(),t=this.session.doc.getNewLineCharacter(),i=!1;if(!e&&this.$copyWithEmptySelection){i=!0;for(var n=this.selection.getAllRanges(),o=0;oa.search(/\S|$/)){var l=a.substr(o.column).search(/\S|$/);i.doc.removeInLine(o.row,o.column,o.column+l)}}this.clearSelection();var c=o.column,d=i.getState(o.row),u=(a=i.getLine(o.row),n.checkOutdent(d,a,e));if(i.insert(o,e),r&&r.selection&&(2==r.selection.length?this.selection.setSelectionRange(new p(o.row,c+r.selection[0],o.row,c+r.selection[1])):this.selection.setSelectionRange(new p(o.row+r.selection[0],r.selection[1],o.row+r.selection[2],r.selection[3]))),this.$enableAutoIndent){if(i.getDocument().isNewLine(e)){var h=n.getNextLineIndent(d,a.slice(0,o.column),i.getTabString());i.insert({row:o.row+1,column:0},h)}u&&n.autoOutdent(d,i,o.row)}},this.autoIndent=function(){var e,t,i=this.session,n=i.getMode();if(this.selection.isEmpty())e=0,t=i.doc.getLength()-1;else{var o=this.getSelectionRange();e=o.start.row,t=o.end.row}for(var r,s,a,l="",c="",d="",u=i.getTabString(),h=e;h<=t;h++)h>0&&(l=i.getState(h-1),c=i.getLine(h-1),d=n.getNextLineIndent(l,c,u)),r=i.getLine(h),d!==(s=n.$getIndent(r))&&(s.length>0&&(a=new p(h,0,h,s.length),i.remove(a)),d.length>0&&i.insert({row:h,column:0},d)),n.autoOutdent(l,i,h)},this.onTextInput=function(e,t){if(!t)return this.keyBinding.onTextInput(e);this.startOperation({command:{name:"insertstring"}});var i=this.applyComposition.bind(this,e,t);this.selection.rangeCount?this.forEachSelection(i):i(),this.endOperation()},this.applyComposition=function(e,t){var i;(t.extendLeft||t.extendRight)&&((i=this.selection.getRange()).start.column-=t.extendLeft,i.end.column+=t.extendRight,i.start.column<0&&(i.start.row--,i.start.column+=this.session.getLine(i.start.row).length+1),this.selection.setRange(i),!e&&!i.isEmpty()&&this.remove()),(e||!this.selection.isEmpty())&&this.insert(e,!0),(t.restoreStart||t.restoreEnd)&&((i=this.selection.getRange()).start.column-=t.restoreStart,i.end.column-=t.restoreEnd,this.selection.setRange(i))},this.onCommandKey=function(e,t,i){return this.keyBinding.onCommandKey(e,t,i)},this.setOverwrite=function(e){this.session.setOverwrite(e)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(e){this.setOption("scrollSpeed",e)},this.getScrollSpeed=function(){return this.getOption("scrollSpeed")},this.setDragDelay=function(e){this.setOption("dragDelay",e)},this.getDragDelay=function(){return this.getOption("dragDelay")},this.setSelectionStyle=function(e){this.setOption("selectionStyle",e)},this.getSelectionStyle=function(){return this.getOption("selectionStyle")},this.setHighlightActiveLine=function(e){this.setOption("highlightActiveLine",e)},this.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.setHighlightSelectedWord=function(e){this.setOption("highlightSelectedWord",e)},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(e){this.renderer.setAnimatedScroll(e)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(e){this.renderer.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setDisplayIndentGuides=function(e){this.renderer.setDisplayIndentGuides(e)},this.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},this.setShowPrintMargin=function(e){this.renderer.setShowPrintMargin(e)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(e){this.renderer.setPrintMarginColumn(e)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.setReadOnly=function(e){this.setOption("readOnly",e)},this.getReadOnly=function(){return this.getOption("readOnly")},this.setBehavioursEnabled=function(e){this.setOption("behavioursEnabled",e)},this.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},this.setWrapBehavioursEnabled=function(e){this.setOption("wrapBehavioursEnabled",e)},this.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},this.setShowFoldWidgets=function(e){this.setOption("showFoldWidgets",e)},this.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.remove=function(e){this.selection.isEmpty()&&("left"==e?this.selection.selectLeft():this.selection.selectRight());var t=this.getSelectionRange();if(this.getBehavioursEnabled()){var i=this.session,n=i.getState(t.start.row),o=i.getMode().transformAction(n,"deletion",this,i,t);if(0===t.end.column){var r=i.getTextRange(t);if("\n"==r[r.length-1]){var s=i.getLine(t.end.row);/^\s+$/.test(s)&&(t.end.column=s.length)}}o&&(t=o)}this.session.remove(t),this.clearSelection()},this.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.selection.isEmpty()&&this.selection.selectLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var e=this.getSelectionRange();e.start.column==e.end.column&&e.start.row==e.end.row&&(e.end.column=0,e.end.row++),this.session.remove(e),this.clearSelection()},this.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var e=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(e)},this.transposeLetters=function(){if(this.selection.isEmpty()){var e=this.getCursorPosition(),t=e.column;if(0!==t){var i,n,o=this.session.getLine(e.row);tt.toLowerCase()?1:0}));var o=new p(0,0,0,0);for(n=e.first;n<=e.last;n++){var r=t.getLine(n);o.start.row=n,o.end.row=n,o.end.column=r.length,t.replace(o,i[n-e.first])}},this.toggleCommentLines=function(){var e=this.session.getState(this.getCursorPosition().row),t=this.$getSelectedRows();this.session.getMode().toggleCommentLines(e,this.session,t.first,t.last)},this.toggleBlockComment=function(){var e=this.getCursorPosition(),t=this.session.getState(e.row),i=this.getSelectionRange();this.session.getMode().toggleBlockComment(t,this.session,i,e)},this.getNumberAt=function(e,t){var i=/[\-]?[0-9]+(?:\.[0-9]+)?/g;i.lastIndex=0;for(var n=this.session.getLine(e);i.lastIndex=t)return{value:o[0],start:o.index,end:o.index+o[0].length}}return null},this.modifyNumber=function(e){var t=this.selection.getCursor().row,i=this.selection.getCursor().column,n=new p(t,i-1,t,i),o=this.session.getTextRange(n);if(!isNaN(parseFloat(o))&&isFinite(o)){var r=this.getNumberAt(t,i);if(r){var s=r.value.indexOf(".")>=0?r.start+r.value.indexOf(".")+1:r.end,a=r.start+r.value.length-s,l=parseFloat(r.value);l*=Math.pow(10,a),s!==r.end&&i=a&&s<=l&&(i=t,c.selection.clearSelection(),c.moveCursorTo(e,a+n),c.selection.selectTo(e,l+n)),a=l}));for(var d,u=this.$toggleWordPairs,h=0;hp+1)break;p=f.last}for(d--,a=this.session.$moveLines(h,p,t?0:e),t&&-1==e&&(u=d+1);u<=d;)s[u].moveBy(a,0),u++;t||(a=0),l+=a}o.fromOrientedRange(o.ranges[0]),o.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},this.$getSelectedRows=function(e){return e=(e||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(e.start.row),last:this.session.getRowFoldEnd(e.end.row)}},this.onCompositionStart=function(e){this.renderer.showComposition(e)},this.onCompositionUpdate=function(e){this.renderer.setCompositionText(e)},this.onCompositionEnd=function(){this.renderer.hideComposition()},this.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},this.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},this.isRowVisible=function(e){return e>=this.getFirstVisibleRow()&&e<=this.getLastVisibleRow()},this.isRowFullyVisible=function(e){return e>=this.renderer.getFirstFullyVisibleRow()&&e<=this.renderer.getLastFullyVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$moveByPage=function(e,t){var i=this.renderer,n=this.renderer.layerConfig,o=e*Math.floor(n.height/n.lineHeight);!0===t?this.selection.$moveSelection((function(){this.moveCursorBy(o,0)})):!1===t&&(this.selection.moveCursorBy(o,0),this.selection.clearSelection());var r=i.scrollTop;i.scrollBy(0,o*n.lineHeight),null!=t&&i.scrollCursorIntoView(null,.5),i.animateScrolling(r)},this.selectPageDown=function(){this.$moveByPage(1,!0)},this.selectPageUp=function(){this.$moveByPage(-1,!0)},this.gotoPageDown=function(){this.$moveByPage(1,!1)},this.gotoPageUp=function(){this.$moveByPage(-1,!1)},this.scrollPageDown=function(){this.$moveByPage(1)},this.scrollPageUp=function(){this.$moveByPage(-1)},this.scrollToRow=function(e){this.renderer.scrollToRow(e)},this.scrollToLine=function(e,t,i,n){this.renderer.scrollToLine(e,t,i,n)},this.centerSelection=function(){var e=this.getSelectionRange(),t={row:Math.floor(e.start.row+(e.end.row-e.start.row)/2),column:Math.floor(e.start.column+(e.end.column-e.start.column)/2)};this.renderer.alignCursor(t,.5)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.selection.selectAll()},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(e,t){this.selection.moveCursorTo(e,t)},this.moveCursorToPosition=function(e){this.selection.moveCursorToPosition(e)},this.jumpToMatching=function(e,t){var i=this.getCursorPosition(),n=new b(this.session,i.row,i.column),o=n.getCurrentToken(),r=o||n.stepForward();if(r){var s,a,l=!1,c={},d=i.column-r.start,u={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(r.value.match(/[{}()\[\]]/g)){for(;d=0;--r)this.$tryReplace(i[r],e)&&n++;return this.selection.setSelectionRange(o),n},this.$tryReplace=function(e,t){var i=this.session.getTextRange(e);return null!==(t=this.$search.replace(i,t))?(e.end=this.session.replace(e,t),e):null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(e,t,i){t||(t={}),"string"==typeof e||e instanceof RegExp?t.needle=e:"object"==typeof e&&n.mixin(t,e);var o=this.selection.getRange();null==t.needle&&((e=this.session.getTextRange(o)||this.$search.$options.needle)||(o=this.session.getWordRange(o.start.row,o.start.column),e=this.session.getTextRange(o)),this.$search.set({needle:e})),this.$search.set(t),t.start||this.$search.set({start:o});var r=this.$search.find(this.session);return t.preventScroll?r:r?(this.revealRange(r,i),r):(t.backwards?o.start=o.end:o.end=o.start,void this.selection.setRange(o))},this.findNext=function(e,t){this.find({skipCurrent:!0,backwards:!1},e,t)},this.findPrevious=function(e,t){this.find(e,{skipCurrent:!0,backwards:!0},t)},this.revealRange=function(e,t){this.session.unfold(e),this.selection.setSelectionRange(e);var i=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(e.start,e.end,.5),!1!==t&&this.renderer.animateScrolling(i)},this.undo=function(){this.session.getUndoManager().undo(this.session),this.renderer.scrollCursorIntoView(null,.5)},this.redo=function(){this.session.getUndoManager().redo(this.session),this.renderer.scrollCursorIntoView(null,.5)},this.destroy=function(){this.$toDestroy&&(this.$toDestroy.forEach((function(e){e.destroy()})),this.$toDestroy=null),this.$mouseHandler&&this.$mouseHandler.destroy(),this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy(),this._$emitInputEvent&&this._$emitInputEvent.cancel(),this.removeAllListeners()},this.setAutoScrollEditorIntoView=function(e){if(e){var t,i=this,n=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var o=this.$scrollAnchor;o.style.cssText="position:absolute",this.container.insertBefore(o,this.container.firstChild);var r=this.on("changeSelection",(function(){n=!0})),s=this.renderer.on("beforeRender",(function(){n&&(t=i.renderer.container.getBoundingClientRect())})),a=this.renderer.on("afterRender",(function(){if(n&&t&&(i.isFocused()||i.searchBox&&i.searchBox.isFocused())){var e=i.renderer,r=e.$cursorLayer.$pixelPos,s=e.layerConfig,a=r.top-s.offset;null!=(n=r.top>=0&&a+t.top<0||!(r.topwindow.innerHeight)&&null)&&(o.style.top=a+"px",o.style.left=r.left+"px",o.style.height=s.lineHeight+"px",o.scrollIntoView(n)),n=t=null}}));this.setAutoScrollEditorIntoView=function(e){e||(delete this.setAutoScrollEditorIntoView,this.off("changeSelection",r),this.renderer.off("afterRender",a),this.renderer.off("beforeRender",s))}}},this.$resetCursorStyle=function(){var e=this.$cursorStyle||"ace",t=this.renderer.$cursorLayer;t&&(t.setSmoothBlinking(/smooth/.test(e)),t.isBlinking=!this.$readOnly&&"wide"!=e,o.setCssClass(t.element,"ace_slim-cursors",/slim/.test(e)))},this.prompt=function(e,t,i){var n=this;A.loadModule("./ext/prompt",(function(o){o.prompt(n,e,t,i)}))}}.call(C.prototype),A.defineOptions(C.prototype,"editor",{selectionStyle:{set:function(e){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:e})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(e){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(e){this.textInput.setReadOnly(e),this.$resetCursorStyle()},initialValue:!1},copyWithEmptySelection:{set:function(e){this.textInput.setCopyWithEmptySelection(e)},initialValue:!1},cursorStyle:{set:function(e){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},enableAutoIndent:{initialValue:!0},autoScrollEditorIntoView:{set:function(e){this.setAutoScrollEditorIntoView(e)}},keyboardHandler:{set:function(e){this.setKeyboardHandler(e)},get:function(){return this.$keybindingId},handlesSet:!0},value:{set:function(e){this.session.setValue(e)},get:function(){return this.getValue()},handlesSet:!0,hidden:!0},session:{set:function(e){this.setSession(e)},get:function(){return this.session},handlesSet:!0,hidden:!0},showLineNumbers:{set:function(e){this.renderer.$gutterLayer.setShowLineNumbers(e),this.renderer.$loop.schedule(this.renderer.CHANGE_GUTTER),e&&this.$relativeLineNumbers?y.attach(this):y.detach(this)},initialValue:!0},relativeLineNumbers:{set:function(e){this.$showLineNumbers&&e?y.attach(this):y.detach(this)}},placeholder:{set:function(e){this.$updatePlaceholder||(this.$updatePlaceholder=function(){var e=this.session&&(this.renderer.$composition||this.getValue());if(e&&this.renderer.placeholderNode)this.renderer.off("afterRender",this.$updatePlaceholder),o.removeCssClass(this.container,"ace_hasPlaceholder"),this.renderer.placeholderNode.remove(),this.renderer.placeholderNode=null;else if(e||this.renderer.placeholderNode)!e&&this.renderer.placeholderNode&&(this.renderer.placeholderNode.textContent=this.$placeholder||"");else{this.renderer.on("afterRender",this.$updatePlaceholder),o.addCssClass(this.container,"ace_hasPlaceholder");var t=o.createElement("div");t.className="ace_placeholder",t.textContent=this.$placeholder||"",this.renderer.placeholderNode=t,this.renderer.content.appendChild(this.renderer.placeholderNode)}}.bind(this),this.on("input",this.$updatePlaceholder)),this.$updatePlaceholder()}},hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",displayIndentGuides:"renderer",showGutter:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",hasCssTransforms:"renderer",maxPixelHeight:"renderer",useTextareaForIME:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimeout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",navigateWithinSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"});var y={getText:function(e,t){return(Math.abs(e.selection.lead.row-t)||t+1+(t<9?"·":""))+""},getWidth:function(e,t,i){return Math.max(t.toString().length,(i.lastRow+1).toString().length,2)*i.characterWidth},update:function(e,t){t.renderer.$loop.schedule(t.renderer.CHANGE_GUTTER)},attach:function(e){e.renderer.$gutterLayer.$renderer=this,e.on("changeSelection",this.update),this.update(null,e)},detach:function(e){e.renderer.$gutterLayer.$renderer==this&&(e.renderer.$gutterLayer.$renderer=null),e.off("changeSelection",this.update),this.update(null,e)}};t.Editor=C})),ace.define("ace/undomanager",["require","exports","module","ace/range"],(function(e,t,i){"use strict";function n(e){return{row:e.row,column:e.column}}function o(e){if(e=e||this,Array.isArray(e))return e.map(o).join("\n");var t="";return e.action?(t="insert"==e.action?"+":"-",t+="["+e.lines+"]"):e.value&&(t=Array.isArray(e.value)?e.value.map(r).join("\n"):r(e.value)),e.start&&(t+=r(e)),(e.id||e.rev)&&(t+="\t("+(e.id||e.rev)+")"),t}function r(e){return e.start.row+":"+e.start.column+"=>"+e.end.row+":"+e.end.column}function s(e,t){var i="insert"==e.action,n="insert"==t.action;if(i&&n)if(g(t.start,e.end)>=0)c(t,e,-1);else{if(!(g(t.start,e.start)<=0))return null;c(e,t,1)}else if(i&&!n)if(g(t.start,e.end)>=0)c(t,e,-1);else{if(!(g(t.end,e.start)<=0))return null;c(e,t,-1)}else if(!i&&n)if(g(t.start,e.start)>=0)c(t,e,1);else{if(!(g(t.start,e.start)<=0))return null;c(e,t,1)}else if(!i&&!n)if(g(t.start,e.start)>=0)c(t,e,1);else{if(!(g(t.end,e.start)<=0))return null;c(e,t,-1)}return[t,e]}function a(e,t){for(var i=e.length;i--;)for(var n=0;n=0?c(e,t,-1):(g(e.start,t.start)<=0||c(e,f.fromPoints(t.start,e.start),-1),c(t,e,1));else if(!i&&n)g(t.start,e.end)>=0?c(t,e,-1):(g(t.start,e.start)<=0||c(t,f.fromPoints(e.start,t.start),-1),c(e,t,1));else if(!i&&!n)if(g(t.start,e.end)>=0)c(t,e,-1);else{var o,r;if(!(g(t.end,e.start)<=0))return g(e.start,t.start)<0&&(o=e,e=u(e,t.start)),g(e.end,t.end)>0&&(r=u(e,t.end)),d(t.end,e.start,e.end,-1),r&&!o&&(e.lines=r.lines,e.start=r.start,e.end=r.end,r=e),[t,o,r].filter(Boolean);c(e,t,-1)}return[t,e]}function c(e,t,i){d(e.start,t.start,t.end,i),d(e.end,t.start,t.end,i)}function d(e,t,i,n){e.row==(1==n?t:i).row&&(e.column+=n*(i.column-t.column)),e.row+=n*(i.row-t.row)}function u(e,t){var i=e.lines,o=e.end;e.end=n(t);var r=e.end.row-e.start.row,s=i.splice(r,i.length),a=r?t.column:t.column-e.start.column;return i.push(s[0].substring(0,a)),s[0]=s[0].substr(a),{start:n(t),end:o,lines:s,action:e.action}}function h(e,t){t=function(e){return{start:n(e.start),end:n(e.end),action:e.action,lines:e.lines.slice()}}(t);for(var i=e.length;i--;){for(var o=e[i],r=0;r0},this.canRedo=function(){return this.$redoStack.length>0},this.bookmark=function(e){null==e&&(e=this.$rev),this.mark=e},this.isAtBookmark=function(){return this.$rev===this.mark},this.toJSON=function(){},this.fromJSON=function(){},this.hasUndo=this.canUndo,this.hasRedo=this.canRedo,this.isClean=this.isAtBookmark,this.markClean=this.bookmark,this.$prettyPrint=function(e){return e?o(e):o(this.$undoStack)+"\n---\n"+o(this.$redoStack)}}).call(p.prototype);var f=e("./range").Range,g=f.comparePoints;f.comparePoints,t.UndoManager=p})),ace.define("ace/layer/lines",["require","exports","module","ace/lib/dom"],(function(e,t,i){"use strict";var n=e("../lib/dom"),o=function(e,t){this.element=e,this.canvasHeight=t||5e5,this.element.style.height=2*this.canvasHeight+"px",this.cells=[],this.cellCache=[],this.$offsetCoefficient=0};(function(){this.moveContainer=function(e){n.translate(this.element,0,-e.firstRowScreen*e.lineHeight%this.canvasHeight-e.offset*this.$offsetCoefficient)},this.pageChanged=function(e,t){return Math.floor(e.firstRowScreen*e.lineHeight/this.canvasHeight)!==Math.floor(t.firstRowScreen*t.lineHeight/this.canvasHeight)},this.computeLineTop=function(e,t,i){var n=t.firstRowScreen*t.lineHeight,o=Math.floor(n/this.canvasHeight);return i.documentToScreenRow(e,0)*t.lineHeight-o*this.canvasHeight},this.computeLineHeight=function(e,t,i){return t.lineHeight*i.getRowLineCount(e)},this.getLength=function(){return this.cells.length},this.get=function(e){return this.cells[e]},this.shift=function(){this.$cacheCell(this.cells.shift())},this.pop=function(){this.$cacheCell(this.cells.pop())},this.push=function(e){if(Array.isArray(e)){this.cells.push.apply(this.cells,e);for(var t=n.createFragment(this.element),i=0;is&&(c=r.end.row+1,s=(r=t.getNextFoldLine(c,r))?r.start.row:1/0),c>o){for(;this.$lines.getLength()>l+1;)this.$lines.pop();break}(a=this.$lines.get(++l))?a.row=c:(a=this.$lines.createCell(c,e,this.session,n),this.$lines.push(a)),this.$renderCell(a,e,r,c),c++}this._signal("afterRender"),this.$updateGutterWidth(e)},this.$updateGutterWidth=function(e){var t=this.session,i=t.gutterRenderer||this.$renderer,n=t.$firstLineNumber,o=this.$lines.last()?this.$lines.last().text:"";(this.$fixedWidth||t.$useWrapMode)&&(o=t.getLength()+n-1);var r=i?i.getWidth(t,o,e):o.toString().length*e.characterWidth,s=this.$padding||this.$computePadding();(r+=s.left+s.right)!==this.gutterWidth&&!isNaN(r)&&(this.gutterWidth=r,this.element.parentNode.style.width=this.element.style.width=Math.ceil(this.gutterWidth)+"px",this._signal("changeGutterWidth",r))},this.$updateCursorRow=function(){if(this.$highlightGutterLine){var e=this.session.selection.getCursor();this.$cursorRow!==e.row&&(this.$cursorRow=e.row)}},this.updateLineHighlight=function(){if(this.$highlightGutterLine){var e=this.session.selection.cursor.row;if(this.$cursorRow=e,!this.$cursorCell||this.$cursorCell.row!=e){this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ",""));var t=this.$lines.cells;this.$cursorCell=null;for(var i=0;i=this.$cursorRow){if(n.row>this.$cursorRow){var o=this.session.getFoldLine(this.$cursorRow);if(!(i>0&&o&&o.start.row==t[i-1].row))break;n=t[i-1]}n.element.className="ace_gutter-active-line "+n.element.className,this.$cursorCell=n;break}}}}},this.scrollLines=function(e){var t=this.config;if(this.config=e,this.$updateCursorRow(),this.$lines.pageChanged(t,e))return this.update(e);this.$lines.moveContainer(e);var i=Math.min(e.lastRow+e.gutterOffset,this.session.getLength()-1),n=this.oldLastRow;if(this.oldLastRow=i,!t||n0;o--)this.$lines.shift();if(n>i)for(o=this.session.getFoldedRowCount(i+1,n);o>0;o--)this.$lines.pop();e.firstRown&&this.$lines.push(this.$renderLines(e,n+1,i)),this.updateLineHighlight(),this._signal("afterRender"),this.$updateGutterWidth(e)},this.$renderLines=function(e,t,i){for(var o=[],r=t,s=this.session.getNextFoldLine(r),a=s?s.start.row:1/0;r>a&&(r=s.end.row+1,a=(s=this.session.getNextFoldLine(r,s))?s.start.row:1/0),!(r>i);){var l=this.$lines.createCell(r,e,this.session,n);this.$renderCell(l,e,s,r),o.push(l),r++}return o},this.$renderCell=function(e,t,i,n){var r=e.element,s=this.session,a=r.childNodes[0],l=r.childNodes[1],c=s.$firstLineNumber,d=s.$breakpoints,u=s.$decorations,h=s.gutterRenderer||this.$renderer,p=this.$showFoldWidgets&&s.foldWidgets,f=i?i.start.row:Number.MAX_VALUE,g="ace_gutter-cell ";if(this.$highlightGutterLine&&(n==this.$cursorRow||i&&n=f&&this.$cursorRow<=i.end.row)&&(g+="ace_gutter-active-line ",this.$cursorCell!=e&&(this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ","")),this.$cursorCell=e)),d[n]&&(g+=d[n]),u[n]&&(g+=u[n]),this.$annotations[n]&&(g+=this.$annotations[n].className),r.className!=g&&(r.className=g),p){var m=p[n];null==m&&(m=p[n]=s.getFoldWidget(n))}if(m){g="ace_fold-widget ace_"+m,"start"==m&&n==f&&ni.right-t.right?"foldWidgets":void 0}}).call(c.prototype),t.Gutter=c})),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],(function(e,t,i){"use strict";var n=e("../range").Range,o=e("../lib/dom"),r=function(e){this.element=o.createElement("div"),this.element.className="ace_layer ace_marker-layer",e.appendChild(this.element)};(function(){function e(e,t,i,n){return(e?1:0)|(t?2:0)|(i?4:0)|(n?8:0)}this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setMarkers=function(e){this.markers=e},this.elt=function(e,t){var i=-1!=this.i&&this.element.childNodes[this.i];i?this.i++:(i=document.createElement("div"),this.element.appendChild(i),this.i=-1),i.style.cssText=t,i.className=e},this.update=function(e){if(e){var t;for(var i in this.config=e,this.i=0,this.markers){var n=this.markers[i];if(n.range){var o=n.range.clipRows(e.firstRow,e.lastRow);if(!o.isEmpty())if(o=o.toScreenRange(this.session),n.renderer){var r=this.$getTop(o.start.row,e),s=this.$padding+o.start.column*e.characterWidth;n.renderer(t,o,s,r,e)}else"fullLine"==n.type?this.drawFullLineMarker(t,o,n.clazz,e):"screenLine"==n.type?this.drawScreenLineMarker(t,o,n.clazz,e):o.isMultiLine()?"text"==n.type?this.drawTextMarker(t,o,n.clazz,e):this.drawMultiLineMarker(t,o,n.clazz,e):this.drawSingleLineMarker(t,o,n.clazz+" ace_start ace_br15",e)}else n.update(t,this,this.session,e)}if(-1!=this.i)for(;this.ip,d==c),r,d==c?0:1,s)},this.drawMultiLineMarker=function(e,t,i,n,o){var r=this.$padding,s=n.lineHeight,a=this.$getTop(t.start.row,n),l=r+t.start.column*n.characterWidth;if(o=o||"",this.session.$bidiHandler.isBidiRow(t.start.row)?((c=t.clone()).end.row=c.start.row,c.end.column=this.session.getLine(c.start.row).length,this.drawBidiSingleLineMarker(e,c,i+" ace_br1 ace_start",n,null,o)):this.elt(i+" ace_br1 ace_start","height:"+s+"px;right:0;top:"+a+"px;left:"+l+"px;"+(o||"")),this.session.$bidiHandler.isBidiRow(t.end.row)){var c;(c=t.clone()).start.row=c.end.row,c.start.column=0,this.drawBidiSingleLineMarker(e,c,i+" ace_br12",n,null,o)}else{a=this.$getTop(t.end.row,n);var d=t.end.column*n.characterWidth;this.elt(i+" ace_br12","height:"+s+"px;width:"+d+"px;top:"+a+"px;left:"+r+"px;"+(o||""))}if(!((s=(t.end.row-t.start.row-1)*n.lineHeight)<=0)){a=this.$getTop(t.start.row+1,n);var u=(t.start.column?1:0)|(t.end.column?0:8);this.elt(i+(u?" ace_br"+u:""),"height:"+s+"px;right:0;top:"+a+"px;left:"+r+"px;"+(o||""))}},this.drawSingleLineMarker=function(e,t,i,n,o,r){if(this.session.$bidiHandler.isBidiRow(t.start.row))return this.drawBidiSingleLineMarker(e,t,i,n,o,r);var s=n.lineHeight,a=(t.end.column+(o||0)-t.start.column)*n.characterWidth,l=this.$getTop(t.start.row,n),c=this.$padding+t.start.column*n.characterWidth;this.elt(i,"height:"+s+"px;width:"+a+"px;top:"+l+"px;left:"+c+"px;"+(r||""))},this.drawBidiSingleLineMarker=function(e,t,i,n,o,r){var s=n.lineHeight,a=this.$getTop(t.start.row,n),l=this.$padding;this.session.$bidiHandler.getSelections(t.start.column,t.end.column).forEach((function(e){this.elt(i,"height:"+s+"px;width:"+e.width+(o||0)+"px;top:"+a+"px;left:"+(l+e.left)+"px;"+(r||""))}),this)},this.drawFullLineMarker=function(e,t,i,n,o){var r=this.$getTop(t.start.row,n),s=n.lineHeight;t.start.row!=t.end.row&&(s+=this.$getTop(t.end.row,n)-r),this.elt(i,"height:"+s+"px;top:"+r+"px;left:0;right:0;"+(o||""))},this.drawScreenLineMarker=function(e,t,i,n,o){var r=this.$getTop(t.start.row,n),s=n.lineHeight;this.elt(i,"height:"+s+"px;top:"+r+"px;left:0;right:0;"+(o||""))}}).call(r.prototype),t.Marker=r})),ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/layer/lines","ace/lib/event_emitter"],(function(e,t,i){"use strict";var n=e("../lib/oop"),o=e("../lib/dom"),r=e("../lib/lang"),s=e("./lines").Lines,a=e("../lib/event_emitter").EventEmitter,l=function(e){this.dom=o,this.element=this.dom.createElement("div"),this.element.className="ace_layer ace_text-layer",e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this),this.$lines=new s(this.element)};(function(){n.implement(this,a),this.EOF_CHAR="¶",this.EOL_CHAR_LF="¬",this.EOL_CHAR_CRLF="¤",this.EOL_CHAR=this.EOL_CHAR_LF,this.TAB_CHAR="—",this.SPACE_CHAR="·",this.$padding=0,this.MAX_LINE_LENGTH=1e4,this.$updateEolChar=function(){var e=this.session.doc,t="\n"==e.getNewLineCharacter()&&"windows"!=e.getNewLineMode()?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=t)return this.EOL_CHAR=t,!0},this.setPadding=function(e){this.$padding=e,this.element.style.margin="0 "+e+"px"},this.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},this.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},this.$setFontMetrics=function(e){this.$fontMetrics=e,this.$fontMetrics.on("changeCharacterSize",function(e){this._signal("changeCharacterSize",e)}.bind(this)),this.$pollSizeChanges()},this.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},this.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},this.setSession=function(e){this.session=e,e&&this.$computeTabString()},this.showInvisibles=!1,this.showSpaces=!1,this.showTabs=!1,this.showEOL=!1,this.setShowInvisibles=function(e){return this.showInvisibles!=e&&(this.showInvisibles=e,"string"==typeof e?(this.showSpaces=/tab/i.test(e),this.showTabs=/space/i.test(e),this.showEOL=/eol/i.test(e)):this.showSpaces=this.showTabs=this.showEOL=e,this.$computeTabString(),!0)},this.displayIndentGuides=!0,this.setDisplayIndentGuides=function(e){return this.displayIndentGuides!=e&&(this.displayIndentGuides=e,this.$computeTabString(),!0)},this.$tabStrings=[],this.onChangeTabSize=this.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;for(var t=this.$tabStrings=[0],i=1;id&&(a=l.end.row+1,d=(l=this.session.getNextFoldLine(a,l))?l.start.row:1/0),!(a>o);){var u=r[s++];if(u){this.dom.removeChildren(u),this.$renderLine(u,a,a==d&&l),c&&(u.style.top=this.$lines.computeLineTop(a,e,this.session)+"px");var h=e.lineHeight*this.session.getRowLength(a)+"px";u.style.height!=h&&(c=!0,u.style.height=h)}a++}if(c)for(;s0;o--)this.$lines.shift();if(t.lastRow>e.lastRow)for(o=this.session.getFoldedRowCount(e.lastRow+1,t.lastRow);o>0;o--)this.$lines.pop();e.firstRowt.lastRow&&this.$lines.push(this.$renderLinesFragment(e,t.lastRow+1,e.lastRow))},this.$renderLinesFragment=function(e,t,i){for(var n=[],r=t,s=this.session.getNextFoldLine(r),a=s?s.start.row:1/0;r>a&&(r=s.end.row+1,a=(s=this.session.getNextFoldLine(r,s))?s.start.row:1/0),!(r>i);){var l=this.$lines.createCell(r,e,this.session),c=l.element;this.dom.removeChildren(c),o.setStyle(c.style,"height",this.$lines.computeLineHeight(r,e,this.session)+"px"),o.setStyle(c.style,"top",this.$lines.computeLineTop(r,e,this.session)+"px"),this.$renderLine(c,r,r==a&&s),this.$useLineGroups()?c.className="ace_line_group":c.className="ace_line",n.push(l),r++}return n},this.update=function(e){this.$lines.moveContainer(e),this.config=e;for(var t=e.firstRow,i=e.lastRow,n=this.$lines;n.getLength();)n.pop();n.push(this.$renderLinesFragment(e,t,i))},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(e,t,i,n){for(var o,s=this,a=/(\t)|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\uFEFF\uFFF9-\uFFFC\u2066\u2067\u2068\u202A\u202B\u202D\u202E\u202C\u2069]+)|(\u3000)|([\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3001-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]|[\uD800-\uDBFF][\uDC00-\uDFFF])/g,l=this.dom.createFragment(this.element),c=0;o=a.exec(n);){var d=o[1],u=o[2],h=o[3],p=o[4],f=o[5];if(s.showSpaces||!u){var g=c!=o.index?n.slice(c,o.index):"";if(c=o.index+o[0].length,g&&l.appendChild(this.dom.createTextNode(g,this.element)),d){var m=s.session.getScreenTabSize(t+o.index);l.appendChild(s.$tabStrings[m].cloneNode(!0)),t+=m-1}else u?s.showSpaces?((b=this.dom.createElement("span")).className="ace_invisible ace_invisible_space",b.textContent=r.stringRepeat(s.SPACE_CHAR,u.length),l.appendChild(b)):l.appendChild(this.com.createTextNode(u,this.element)):h?((b=this.dom.createElement("span")).className="ace_invisible ace_invisible_space ace_invalid",b.textContent=r.stringRepeat(s.SPACE_CHAR,h.length),l.appendChild(b)):p?(t+=1,(b=this.dom.createElement("span")).style.width=2*s.config.characterWidth+"px",b.className=s.showSpaces?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",b.textContent=s.showSpaces?s.SPACE_CHAR:p,l.appendChild(b)):f&&(t+=1,(b=this.dom.createElement("span")).style.width=2*s.config.characterWidth+"px",b.className="ace_cjk",b.textContent=f,l.appendChild(b))}}if(l.appendChild(this.dom.createTextNode(c?n.slice(c):n,this.element)),this.$textToken[i.type])e.appendChild(l);else{var A="ace_"+i.type.replace(/\./g," ace_"),b=this.dom.createElement("span");"fold"==i.type&&(b.style.width=i.value.length*this.config.characterWidth+"px"),b.className=A,b.appendChild(l),e.appendChild(b)}return t+n.length},this.renderIndentGuide=function(e,t,i){var n=t.search(this.$indentGuideRe);if(n<=0||n>=i)return t;if(" "==t[0]){for(var o=(n-=n%this.tabSize)/this.tabSize,r=0;r=s;)a=this.$renderToken(l,a,d,u.substring(0,s-n)),u=u.substring(s-n),n=s,l=this.$createLineElement(),e.appendChild(l),l.appendChild(this.dom.createTextNode(r.stringRepeat(" ",i.indent),this.element)),a=0,s=i[++o]||Number.MAX_VALUE;0!=u.length&&(n+=u.length,a=this.$renderToken(l,a,d,u))}}i[i.length-1]>this.MAX_LINE_LENGTH&&this.$renderOverflowMessage(l,a,null,"",!0)},this.$renderSimpleLine=function(e,t){var i=0,n=t[0],o=n.value;this.displayIndentGuides&&(o=this.renderIndentGuide(e,o)),o&&(i=this.$renderToken(e,i,n,o));for(var r=1;rthis.MAX_LINE_LENGTH)return this.$renderOverflowMessage(e,i,n,o);i=this.$renderToken(e,i,n,o)}},this.$renderOverflowMessage=function(e,t,i,n,o){i&&this.$renderToken(e,t,i,n.slice(0,this.MAX_LINE_LENGTH-t));var r=this.dom.createElement("span");r.className="ace_inline_button ace_keyword ace_toggle_wrap",r.textContent=o?"":"",e.appendChild(r)},this.$renderLine=function(e,t,i){if(!i&&0!=i&&(i=this.session.getFoldLine(t)),i)var n=this.$getFoldLineTokens(t,i);else n=this.session.getTokens(t);var o=e;if(n.length){var r=this.session.getRowSplitData(t);r&&r.length?(this.$renderWrappedLine(e,n,r),o=e.lastChild):(o=e,this.$useLineGroups()&&(o=this.$createLineElement(),e.appendChild(o)),this.$renderSimpleLine(o,n))}else this.$useLineGroups()&&(o=this.$createLineElement(),e.appendChild(o));if(this.showEOL&&o){i&&(t=i.end.row);var s=this.dom.createElement("span");s.className="ace_invisible ace_invisible_eol",s.textContent=t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,o.appendChild(s)}},this.$getFoldLineTokens=function(e,t){var i=this.session,n=[],o=i.getTokens(e);return t.walk((function(e,t,r,s,a){null!=e?n.push({type:"fold",value:e}):(a&&(o=i.getTokens(t)),o.length&&function(e,t,i){for(var o=0,r=0;r+e[o].value.lengthi-t&&(s=s.substring(0,i-t)),n.push({type:e[o].type,value:s}),r=t+s.length,o+=1);ri?n.push({type:e[o].type,value:s.substring(0,i-r)}):n.push(e[o]),r+=s.length,o+=1}}(o,s,r))}),t.end.row,this.session.getLine(t.end.row).length),n},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){}}).call(l.prototype),t.Text=l})),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],(function(e,t,i){"use strict";var n=e("../lib/dom"),o=function(e){this.element=n.createElement("div"),this.element.className="ace_layer ace_cursor-layer",e.appendChild(this.element),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),n.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=this.$updateOpacity.bind(this)};(function(){this.$updateOpacity=function(e){for(var t=this.cursors,i=t.length;i--;)n.setStyle(t[i].style,"opacity",e?"":"0")},this.$startCssAnimation=function(){for(var e=this.cursors,t=e.length;t--;)e[t].style.animationDuration=this.blinkInterval+"ms";this.$isAnimating=!0,setTimeout(function(){this.$isAnimating&&n.addCssClass(this.element,"ace_animate-blinking")}.bind(this))},this.$stopCssAnimation=function(){this.$isAnimating=!1,n.removeCssClass(this.element,"ace_animate-blinking")},this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},this.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},this.setSmoothBlinking=function(e){e!=this.smoothBlinking&&(this.smoothBlinking=e,n.setCssClass(this.element,"ace_smooth-blinking",e),this.$updateCursors(!0),this.restartTimer())},this.addCursor=function(){var e=n.createElement("div");return e.className="ace_cursor",this.element.appendChild(e),this.cursors.push(e),e},this.removeCursor=function(){if(this.cursors.length>1){var e=this.cursors.pop();return e.parentNode.removeChild(e),e}},this.hideCursor=function(){this.isVisible=!1,n.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.showCursor=function(){this.isVisible=!0,n.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.restartTimer=function(){var e=this.$updateCursors;if(clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.$stopCssAnimation(),this.smoothBlinking&&(this.$isSmoothBlinking=!1,n.removeCssClass(this.element,"ace_smooth-blinking")),e(!0),this.isBlinking&&this.blinkInterval&&this.isVisible)if(this.smoothBlinking&&(this.$isSmoothBlinking=!0,setTimeout(function(){this.$isSmoothBlinking&&n.addCssClass(this.element,"ace_smooth-blinking")}.bind(this))),n.HAS_CSS_ANIMATION)this.$startCssAnimation();else{var t=function(){this.timeoutId=setTimeout((function(){e(!1)}),.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval((function(){e(!0),t()}),this.blinkInterval),t()}else this.$stopCssAnimation()},this.getPixelPosition=function(e,t){if(!this.config||!this.session)return{left:0,top:0};e||(e=this.session.selection.getCursor());var i=this.session.documentToScreenPosition(e);return{left:this.$padding+(this.session.$bidiHandler.isBidiRow(i.row,e.row)?this.session.$bidiHandler.getPosLeft(i.column):i.column*this.config.characterWidth),top:(i.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight}},this.isCursorInView=function(e,t){return e.top>=0&&e.tope.height+e.offset||s.top<0)&&i>1)){var a=this.cursors[o++]||this.addCursor(),l=a.style;this.drawCursor?this.drawCursor(a,s,e,t[i],this.session):this.isCursorInView(s,e)?(n.setStyle(l,"display","block"),n.translate(a,s.left,s.top),n.setStyle(l,"width",Math.round(e.characterWidth)+"px"),n.setStyle(l,"height",e.lineHeight+"px")):n.setStyle(l,"display","none")}}for(;this.cursors.length>o;)this.removeCursor();var c=this.session.getOverwrite();this.$setOverwrite(c),this.$pixelPos=s,this.restartTimer()},this.drawCursor=null,this.$setOverwrite=function(e){e!=this.overwrite&&(this.overwrite=e,e?n.addCssClass(this.element,"ace_overwrite-cursors"):n.removeCssClass(this.element,"ace_overwrite-cursors"))},this.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)}}).call(o.prototype),t.Cursor=o})),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],(function(e,t,i){"use strict";var n=e("./lib/oop"),o=e("./lib/dom"),r=e("./lib/event"),s=e("./lib/event_emitter").EventEmitter,a=32768,l=function(e){this.element=o.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+this.classSuffix,this.inner=o.createElement("div"),this.inner.className="ace_scrollbar-inner",this.inner.textContent=" ",this.element.appendChild(this.inner),e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,r.addListener(this.element,"scroll",this.onScroll.bind(this)),r.addListener(this.element,"mousedown",r.preventDefault)};(function(){n.implement(this,s),this.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1}}).call(l.prototype);var c=function(e,t){l.call(this,e),this.scrollTop=0,this.scrollHeight=0,t.$scrollbarWidth=this.width=o.scrollbarWidth(e.ownerDocument),this.inner.style.width=this.element.style.width=(this.width||15)+5+"px",this.$minWidth=0};n.inherits(c,l),function(){this.classSuffix="-v",this.onScroll=function(){if(!this.skipEvent){if(this.scrollTop=this.element.scrollTop,1!=this.coeff){var e=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-e)/(this.coeff-e)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},this.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},this.setHeight=function(e){this.element.style.height=e+"px"},this.setInnerHeight=this.setScrollHeight=function(e){this.scrollHeight=e,e>a?(this.coeff=a/e,e=a):1!=this.coeff&&(this.coeff=1),this.inner.style.height=e+"px"},this.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=e,this.element.scrollTop=e*this.coeff)}}.call(c.prototype);var d=function(e,t){l.call(this,e),this.scrollLeft=0,this.height=t.$scrollbarWidth,this.inner.style.height=this.element.style.height=(this.height||15)+5+"px"};n.inherits(d,l),function(){this.classSuffix="-h",this.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},this.getHeight=function(){return this.isVisible?this.height:0},this.setWidth=function(e){this.element.style.width=e+"px"},this.setInnerWidth=function(e){this.inner.style.width=e+"px"},this.setScrollWidth=function(e){this.inner.style.width=e+"px"},this.setScrollLeft=function(e){this.scrollLeft!=e&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=e)}}.call(d.prototype),t.ScrollBar=c,t.ScrollBarV=c,t.ScrollBarH=d,t.VScrollBar=c,t.HScrollBar=d})),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],(function(e,t,i){"use strict";var n=e("./lib/event"),o=function(e,t){this.onRender=e,this.pending=!1,this.changes=0,this.$recursionLimit=2,this.window=t||window;var i=this;this._flush=function(e){i.pending=!1;var t=i.changes;if(t&&(n.blockIdle(100),i.changes=0,i.onRender(t)),i.changes){if(i.$recursionLimit--<0)return;i.schedule()}else i.$recursionLimit=2}};(function(){this.schedule=function(e){this.changes=this.changes|e,this.changes&&!this.pending&&(n.nextFrame(this._flush),this.pending=!0)},this.clear=function(e){var t=this.changes;return this.changes=0,t}}).call(o.prototype),t.RenderLoop=o})),ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/lib/useragent","ace/lib/event_emitter"],(function(e,t,i){var n=e("../lib/oop"),o=e("../lib/dom"),r=e("../lib/lang"),s=e("../lib/event"),a=e("../lib/useragent"),l=e("../lib/event_emitter").EventEmitter,c=256,d="function"==typeof ResizeObserver,u=200,h=t.FontMetrics=function(e){this.el=o.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=o.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=o.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),e.appendChild(this.el),this.$measureNode.textContent=r.stringRepeat("X",c),this.$characterSize={width:0,height:0},d?this.$addObserver():this.checkForSizeChanges()};(function(){n.implement(this,l),this.$characterSize={width:0,height:0},this.$setMeasureNodeStyles=function(e,t){e.width=e.height="auto",e.left=e.top="0px",e.visibility="hidden",e.position="absolute",e.whiteSpace="pre",a.isIE<8?e["font-family"]="inherit":e.font="inherit",e.overflow=t?"hidden":"visible"},this.checkForSizeChanges=function(e){if(void 0===e&&(e=this.$measureSizes()),e&&(this.$characterSize.width!==e.width||this.$characterSize.height!==e.height)){this.$measureNode.style.fontWeight="bold";var t=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=e,this.charSizes=Object.create(null),this.allowBoldFonts=t&&t.width===e.width&&t.height===e.height,this._emit("changeCharacterSize",{data:e})}},this.$addObserver=function(){var e=this;this.$observer=new window.ResizeObserver((function(t){e.checkForSizeChanges()})),this.$observer.observe(this.$measureNode)},this.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer||this.$observer)return this.$pollSizeChangesTimer;var e=this;return this.$pollSizeChangesTimer=s.onIdle((function t(){e.checkForSizeChanges(),s.onIdle(t,500)}),500)},this.setPolling=function(e){e?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},this.$measureSizes=function(e){var t={height:(e||this.$measureNode).clientHeight,width:(e||this.$measureNode).clientWidth/c};return 0===t.width||0===t.height?null:t},this.$measureCharWidth=function(e){return this.$main.textContent=r.stringRepeat(e,c),this.$main.getBoundingClientRect().width/c},this.getCharacterWidth=function(e){var t=this.charSizes[e];return void 0===t&&(t=this.charSizes[e]=this.$measureCharWidth(e)/this.$characterSize.width),t},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$observer&&this.$observer.disconnect(),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)},this.$getZoom=function e(t){return t&&t.parentElement?(window.getComputedStyle(t).zoom||1)*e(t.parentElement):1},this.$initTransformMeasureNodes=function(){var e=function(e,t){return["div",{style:"position: absolute;top:"+e+"px;left:"+t+"px;"}]};this.els=o.buildDom([e(0,0),e(u,0),e(0,u),e(u,u)],this.el)},this.transformCoordinates=function(e,t){function i(e,t,i){var n=e[1]*t[0]-e[0]*t[1];return[(-t[1]*i[0]+t[0]*i[1])/n,(+e[1]*i[0]-e[0]*i[1])/n]}function n(e,t){return[e[0]-t[0],e[1]-t[1]]}function o(e,t){return[e[0]+t[0],e[1]+t[1]]}function r(e,t){return[e*t[0],e*t[1]]}function s(e){var t=e.getBoundingClientRect();return[t.left,t.top]}e&&(e=r(1/this.$getZoom(this.el),e)),this.els||this.$initTransformMeasureNodes();var a=s(this.els[0]),l=s(this.els[1]),c=s(this.els[2]),d=s(this.els[3]),h=i(n(d,l),n(d,c),n(o(l,c),o(d,a))),p=r(1+h[0],n(l,a)),f=r(1+h[1],n(c,a));if(t){var g=t,m=h[0]*g[0]/u+h[1]*g[1]/u+1,A=o(r(g[0],p),r(g[1],f));return o(r(1/m/u,A),a)}var b=n(e,a),v=i(n(p,r(h[0],b)),n(f,r(h[1],b)),b);return r(u,v)}}).call(h.prototype)})),ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/config","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter","ace/lib/useragent"],(function(e,t,i){"use strict";var n=e("./lib/oop"),o=e("./lib/dom"),r=e("./config"),s=e("./layer/gutter").Gutter,a=e("./layer/marker").Marker,l=e("./layer/text").Text,c=e("./layer/cursor").Cursor,d=e("./scrollbar").HScrollBar,u=e("./scrollbar").VScrollBar,h=e("./renderloop").RenderLoop,p=e("./layer/font_metrics").FontMetrics,f=e("./lib/event_emitter").EventEmitter,g='.ace_br1 {border-top-left-radius : 3px;}.ace_br2 {border-top-right-radius : 3px;}.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}.ace_br4 {border-bottom-right-radius: 3px;}.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}.ace_br8 {border-bottom-left-radius : 3px;}.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}.ace_editor {position: relative;overflow: hidden;padding: 0;font: 12px/normal \'Monaco\', \'Menlo\', \'Ubuntu Mono\', \'Consolas\', \'source-code-pro\', monospace;direction: ltr;text-align: left;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);}.ace_scroller {position: absolute;overflow: hidden;top: 0;bottom: 0;background-color: inherit;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;cursor: text;}.ace_content {position: absolute;box-sizing: border-box;min-width: 100%;contain: style size layout;font-variant-ligatures: no-common-ligatures;}.ace_dragging .ace_scroller:before{position: absolute;top: 0;left: 0;right: 0;bottom: 0;content: \'\';background: rgba(250, 250, 250, 0.01);z-index: 1000;}.ace_dragging.ace_dark .ace_scroller:before{background: rgba(0, 0, 0, 0.01);}.ace_selecting, .ace_selecting * {cursor: text !important;}.ace_gutter {position: absolute;overflow : hidden;width: auto;top: 0;bottom: 0;left: 0;cursor: default;z-index: 4;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;contain: style size layout;}.ace_gutter-active-line {position: absolute;left: 0;right: 0;}.ace_scroller.ace_scroll-left {box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;}.ace_gutter-cell {position: absolute;top: 0;left: 0;right: 0;padding-left: 19px;padding-right: 6px;background-repeat: no-repeat;}.ace_gutter-cell.ace_error {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==");background-repeat: no-repeat;background-position: 2px center;}.ace_gutter-cell.ace_warning {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==");background-position: 2px center;}.ace_gutter-cell.ace_info {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=");background-position: 2px center;}.ace_dark .ace_gutter-cell.ace_info {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC");}.ace_scrollbar {contain: strict;position: absolute;right: 0;bottom: 0;z-index: 6;}.ace_scrollbar-inner {position: absolute;cursor: text;left: 0;top: 0;}.ace_scrollbar-v{overflow-x: hidden;overflow-y: scroll;top: 0;}.ace_scrollbar-h {overflow-x: scroll;overflow-y: hidden;left: 0;}.ace_print-margin {position: absolute;height: 100%;}.ace_text-input {position: absolute;z-index: 0;width: 0.5em;height: 1em;opacity: 0;background: transparent;-moz-appearance: none;appearance: none;border: none;resize: none;outline: none;overflow: hidden;font: inherit;padding: 0 1px;margin: 0 -1px;contain: strict;-ms-user-select: text;-moz-user-select: text;-webkit-user-select: text;user-select: text;white-space: pre!important;}.ace_text-input.ace_composition {background: transparent;color: inherit;z-index: 1000;opacity: 1;}.ace_composition_placeholder { color: transparent }.ace_composition_marker { border-bottom: 1px solid;position: absolute;border-radius: 0;margin-top: 1px;}[ace_nocontext=true] {transform: none!important;filter: none!important;clip-path: none!important;mask : none!important;contain: none!important;perspective: none!important;mix-blend-mode: initial!important;z-index: auto;}.ace_layer {z-index: 1;position: absolute;overflow: hidden;word-wrap: normal;white-space: pre;height: 100%;width: 100%;box-sizing: border-box;pointer-events: none;}.ace_gutter-layer {position: relative;width: auto;text-align: right;pointer-events: auto;height: 1000000px;contain: style size layout;}.ace_text-layer {font: inherit !important;position: absolute;height: 1000000px;width: 1000000px;contain: style size layout;}.ace_text-layer > .ace_line, .ace_text-layer > .ace_line_group {contain: style size layout;position: absolute;top: 0;left: 0;right: 0;}.ace_hidpi .ace_text-layer,.ace_hidpi .ace_gutter-layer,.ace_hidpi .ace_content,.ace_hidpi .ace_gutter {contain: strict;will-change: transform;}.ace_hidpi .ace_text-layer > .ace_line, .ace_hidpi .ace_text-layer > .ace_line_group {contain: strict;}.ace_cjk {display: inline-block;text-align: center;}.ace_cursor-layer {z-index: 4;}.ace_cursor {z-index: 4;position: absolute;box-sizing: border-box;border-left: 2px solid;transform: translatez(0);}.ace_multiselect .ace_cursor {border-left-width: 1px;}.ace_slim-cursors .ace_cursor {border-left-width: 1px;}.ace_overwrite-cursors .ace_cursor {border-left-width: 0;border-bottom: 1px solid;}.ace_hidden-cursors .ace_cursor {opacity: 0.2;}.ace_hasPlaceholder .ace_hidden-cursors .ace_cursor {opacity: 0;}.ace_smooth-blinking .ace_cursor {transition: opacity 0.18s;}.ace_animate-blinking .ace_cursor {animation-duration: 1000ms;animation-timing-function: step-end;animation-name: blink-ace-animate;animation-iteration-count: infinite;}.ace_animate-blinking.ace_smooth-blinking .ace_cursor {animation-duration: 1000ms;animation-timing-function: ease-in-out;animation-name: blink-ace-animate-smooth;}@keyframes blink-ace-animate {from, to { opacity: 1; }60% { opacity: 0; }}@keyframes blink-ace-animate-smooth {from, to { opacity: 1; }45% { opacity: 1; }60% { opacity: 0; }85% { opacity: 0; }}.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {position: absolute;z-index: 3;}.ace_marker-layer .ace_selection {position: absolute;z-index: 5;}.ace_marker-layer .ace_bracket {position: absolute;z-index: 6;}.ace_marker-layer .ace_error_bracket {position: absolute;border-bottom: 1px solid #DE5555;border-radius: 0;}.ace_marker-layer .ace_active-line {position: absolute;z-index: 2;}.ace_marker-layer .ace_selected-word {position: absolute;z-index: 4;box-sizing: border-box;}.ace_line .ace_fold {box-sizing: border-box;display: inline-block;height: 11px;margin-top: -2px;vertical-align: middle;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=");background-repeat: no-repeat, repeat-x;background-position: center center, top left;color: transparent;border: 1px solid black;border-radius: 2px;cursor: pointer;pointer-events: auto;}.ace_dark .ace_fold {}.ace_fold:hover{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC");}.ace_tooltip {background-color: #FFF;background-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));border: 1px solid gray;border-radius: 1px;box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);color: black;max-width: 100%;padding: 3px 4px;position: fixed;z-index: 999999;box-sizing: border-box;cursor: default;white-space: pre;word-wrap: break-word;line-height: normal;font-style: normal;font-weight: normal;letter-spacing: normal;pointer-events: none;}.ace_folding-enabled > .ace_gutter-cell {padding-right: 13px;}.ace_fold-widget {box-sizing: border-box;margin: 0 -12px 0 1px;display: none;width: 11px;vertical-align: top;background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==");background-repeat: no-repeat;background-position: center;border-radius: 3px;border: 1px solid transparent;cursor: pointer;}.ace_folding-enabled .ace_fold-widget {display: inline-block; }.ace_fold-widget.ace_end {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==");}.ace_fold-widget.ace_closed {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==");}.ace_fold-widget:hover {border: 1px solid rgba(0, 0, 0, 0.3);background-color: rgba(255, 255, 255, 0.2);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);}.ace_fold-widget:active {border: 1px solid rgba(0, 0, 0, 0.4);background-color: rgba(0, 0, 0, 0.05);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);}.ace_dark .ace_fold-widget {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC");}.ace_dark .ace_fold-widget.ace_end {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==");}.ace_dark .ace_fold-widget.ace_closed {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==");}.ace_dark .ace_fold-widget:hover {box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);background-color: rgba(255, 255, 255, 0.1);}.ace_dark .ace_fold-widget:active {box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);}.ace_inline_button {border: 1px solid lightgray;display: inline-block;margin: -1px 8px;padding: 0 5px;pointer-events: auto;cursor: pointer;}.ace_inline_button:hover {border-color: gray;background: rgba(200,200,200,0.2);display: inline-block;pointer-events: auto;}.ace_fold-widget.ace_invalid {background-color: #FFB4B4;border-color: #DE5555;}.ace_fade-fold-widgets .ace_fold-widget {transition: opacity 0.4s ease 0.05s;opacity: 0;}.ace_fade-fold-widgets:hover .ace_fold-widget {transition: opacity 0.05s ease 0.05s;opacity:1;}.ace_underline {text-decoration: underline;}.ace_bold {font-weight: bold;}.ace_nobold .ace_bold {font-weight: normal;}.ace_italic {font-style: italic;}.ace_error-marker {background-color: rgba(255, 0, 0,0.2);position: absolute;z-index: 9;}.ace_highlight-marker {background-color: rgba(255, 255, 0,0.2);position: absolute;z-index: 8;}.ace_mobile-menu {position: absolute;line-height: 1.5;border-radius: 4px;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;background: white;box-shadow: 1px 3px 2px grey;border: 1px solid #dcdcdc;color: black;}.ace_dark > .ace_mobile-menu {background: #333;color: #ccc;box-shadow: 1px 3px 2px grey;border: 1px solid #444;}.ace_mobile-button {padding: 2px;cursor: pointer;overflow: hidden;}.ace_mobile-button:hover {background-color: #eee;opacity:1;}.ace_mobile-button:active {background-color: #ddd;}.ace_placeholder {font-family: arial;transform: scale(0.9);transform-origin: left;white-space: pre;opacity: 0.7;margin: 0 10px;}',m=e("./lib/useragent"),A=m.isIE;o.importCssString(g,"ace_editor.css",!1);var b=function(e,t){var i=this;this.container=e||o.createElement("div"),o.addCssClass(this.container,"ace_editor"),o.HI_DPI&&o.addCssClass(this.container,"ace_hidpi"),this.setTheme(t),null==r.get("useStrictCSP")&&r.set("useStrictCSP",!1),this.$gutter=o.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.$gutter.setAttribute("aria-hidden",!0),this.scroller=o.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=o.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new s(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new a(this.content);var n=this.$textLayer=new l(this.content);this.canvas=n.element,this.$markerFront=new a(this.content),this.$cursorLayer=new c(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new u(this.container,this),this.scrollBarH=new d(this.container,this),this.scrollBarV.on("scroll",(function(e){i.$scrollAnimation||i.session.setScrollTop(e.data-i.scrollMargin.top)})),this.scrollBarH.on("scroll",(function(e){i.$scrollAnimation||i.session.setScrollLeft(e.data-i.scrollMargin.left)})),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new p(this.container),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.on("changeCharacterSize",(function(e){i.updateCharacterSize(),i.onResize(!0,i.gutterWidth,i.$size.width,i.$size.height),i._signal("changeCharacterSize",e)})),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.margin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$keepTextAreaAtCursor=!m.isIOS,this.$loop=new h(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),r.resetOptions(this),r._signal("renderer",this)};(function(){this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,this.CHANGE_H_SCROLL=1024,n.implement(this,f),this.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin(),o.setStyle(this.scroller.style,"line-height",this.lineHeight+"px")},this.setSession=function(e){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=e,e&&this.scrollMargin.top&&e.getScrollTop()<=0&&e.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(e),this.$markerBack.setSession(e),this.$markerFront.setSession(e),this.$gutterLayer.setSession(e),this.$textLayer.setSession(e),e&&(this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode))},this.updateLines=function(e,t,i){if(void 0===t&&(t=1/0),this.$changedLines?(this.$changedLines.firstRow>e&&(this.$changedLines.firstRow=e),this.$changedLines.lastRowthis.layerConfig.lastRow||this.$loop.schedule(this.CHANGE_LINES)},this.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},this.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},this.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},this.updateFull=function(e){e?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},this.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},this.$changes=0,this.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},this.onResize=function(e,t,i,n){if(!(this.resizing>2)){this.resizing>0?this.resizing++:this.resizing=e?1:0;var o=this.container;n||(n=o.clientHeight||o.scrollHeight),i||(i=o.clientWidth||o.scrollWidth);var r=this.$updateCachedSize(e,t,i,n);if(!this.$size.scrollerHeight||!i&&!n)return this.resizing=0;e&&(this.$gutterLayer.$padding=null),e?this.$renderChanges(r|this.$changes,!0):this.$loop.schedule(r|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null}},this.$updateCachedSize=function(e,t,i,n){n-=this.$extraHeight||0;var r=0,s=this.$size,a={width:s.width,height:s.height,scrollerHeight:s.scrollerHeight,scrollerWidth:s.scrollerWidth};if(n&&(e||s.height!=n)&&(s.height=n,r|=this.CHANGE_SIZE,s.scrollerHeight=s.height,this.$horizScroll&&(s.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",r|=this.CHANGE_SCROLL),i&&(e||s.width!=i)){r|=this.CHANGE_SIZE,s.width=i,null==t&&(t=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=t,o.setStyle(this.scrollBarH.element.style,"left",t+"px"),o.setStyle(this.scroller.style,"left",t+this.margin.left+"px"),s.scrollerWidth=Math.max(0,i-t-this.scrollBarV.getWidth()-this.margin.h),o.setStyle(this.$gutter.style,"left",this.margin.left+"px");var l=this.scrollBarV.getWidth()+"px";o.setStyle(this.scrollBarH.element.style,"right",l),o.setStyle(this.scroller.style,"right",l),o.setStyle(this.scroller.style,"bottom",this.scrollBarH.getHeight()),(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||e)&&(r|=this.CHANGE_FULL)}return s.$dirty=!i||!n,r&&this._signal("resize",a),r},this.onGutterResize=function(e){var t=this.$showGutter?e:0;t!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,t,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()||this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):this.$computeLayerConfig()},this.adjustWrapLimit=function(){var e=this.$size.scrollerWidth-2*this.$padding,t=Math.floor(e/this.characterWidth);return this.session.adjustWrapLimit(t,this.$showPrintMargin&&this.$printMarginColumn)},this.setAnimatedScroll=function(e){this.setOption("animatedScroll",e)},this.getAnimatedScroll=function(){return this.$animatedScroll},this.setShowInvisibles=function(e){this.setOption("showInvisibles",e),this.session.$bidiHandler.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.getOption("showInvisibles")},this.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},this.setDisplayIndentGuides=function(e){this.setOption("displayIndentGuides",e)},this.setShowPrintMargin=function(e){this.setOption("showPrintMargin",e)},this.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},this.setPrintMarginColumn=function(e){this.setOption("printMarginColumn",e)},this.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},this.getShowGutter=function(){return this.getOption("showGutter")},this.setShowGutter=function(e){return this.setOption("showGutter",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.$updatePrintMargin=function(){if(this.$showPrintMargin||this.$printMarginEl){if(!this.$printMarginEl){var e=o.createElement("div");e.className="ace_layer ace_print-margin-layer",this.$printMarginEl=o.createElement("div"),this.$printMarginEl.className="ace_print-margin",e.appendChild(this.$printMarginEl),this.content.insertBefore(e,this.content.firstChild)}var t=this.$printMarginEl.style;t.left=Math.round(this.characterWidth*this.$printMarginColumn+this.$padding)+"px",t.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&-1==this.session.$wrap&&this.adjustWrapLimit()}},this.getContainerElement=function(){return this.container},this.getMouseEventTarget=function(){return this.scroller},this.getTextAreaContainer=function(){return this.container},this.$moveTextAreaToCursor=function(){if(!this.$isMousePressed){var e=this.textarea.style,t=this.$composition;if(this.$keepTextAreaAtCursor||t){var i=this.$cursorLayer.$pixelPos;if(i){t&&t.markerRange&&(i=this.$cursorLayer.getPixelPosition(t.markerRange.start,!0));var n=this.layerConfig,r=i.top,s=i.left;r-=n.offset;var a=t&&t.useTextareaForIME?this.lineHeight:A?0:1;if(r<0||r>n.height-a)o.translate(this.textarea,0,0);else{var l=1,c=this.$size.height-a;if(t)if(t.useTextareaForIME){var d=this.textarea.value;l=this.characterWidth*this.session.$getStringScreenWidth(d)[0]}else r+=this.lineHeight+2;else r+=this.lineHeight;(s-=this.scrollLeft)>this.$size.scrollerWidth-l&&(s=this.$size.scrollerWidth-l),s+=this.gutterWidth+this.margin.left,o.setStyle(e,"height",a+"px"),o.setStyle(e,"width",l+"px"),o.translate(this.textarea,Math.min(s,this.$size.scrollerWidth-l),Math.min(r,c))}}}else o.translate(this.textarea,-100,0)}},this.getFirstVisibleRow=function(){return this.layerConfig.firstRow},this.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(0===this.layerConfig.offset?0:1)},this.getLastFullyVisibleRow=function(){var e=this.layerConfig,t=e.lastRow;return this.session.documentToScreenRow(t,0)*e.lineHeight-this.session.getScrollTop()>e.height-e.lineHeight?t-1:t},this.getLastVisibleRow=function(){return this.layerConfig.lastRow},this.$padding=null,this.setPadding=function(e){this.$padding=e,this.$textLayer.setPadding(e),this.$cursorLayer.setPadding(e),this.$markerFront.setPadding(e),this.$markerBack.setPadding(e),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},this.setScrollMargin=function(e,t,i,n){var o=this.scrollMargin;o.top=0|e,o.bottom=0|t,o.right=0|n,o.left=0|i,o.v=o.top+o.bottom,o.h=o.left+o.right,o.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-o.top),this.updateFull()},this.setMargin=function(e,t,i,n){var o=this.margin;o.top=0|e,o.bottom=0|t,o.right=0|n,o.left=0|i,o.v=o.top+o.bottom,o.h=o.left+o.right,this.$updateCachedSize(!0,this.gutterWidth,this.$size.width,this.$size.height),this.updateFull()},this.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},this.setHScrollBarAlwaysVisible=function(e){this.setOption("hScrollBarAlwaysVisible",e)},this.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},this.setVScrollBarAlwaysVisible=function(e){this.setOption("vScrollBarAlwaysVisible",e)},this.$updateScrollBarV=function(){var e=this.layerConfig.maxHeight,t=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(e-=(t-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>e-t&&(e=this.scrollTop+t,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(e+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},this.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},this.$frozen=!1,this.freeze=function(){this.$frozen=!0},this.unfreeze=function(){this.$frozen=!1},this.$renderChanges=function(e,t){if(this.$changes&&(e|=this.$changes,this.$changes=0),this.session&&this.container.offsetWidth&&!this.$frozen&&(e||t)){if(this.$size.$dirty)return this.$changes|=e,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender",e),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var i=this.layerConfig;if(e&this.CHANGE_FULL||e&this.CHANGE_SIZE||e&this.CHANGE_TEXT||e&this.CHANGE_LINES||e&this.CHANGE_SCROLL||e&this.CHANGE_H_SCROLL){if(e|=this.$computeLayerConfig()|this.$loop.clear(),i.firstRow!=this.layerConfig.firstRow&&i.firstRowScreen==this.layerConfig.firstRowScreen){var n=this.scrollTop+(i.firstRow-this.layerConfig.firstRow)*this.lineHeight;n>0&&(this.scrollTop=n,e|=this.CHANGE_SCROLL,e|=this.$computeLayerConfig()|this.$loop.clear())}i=this.layerConfig,this.$updateScrollBarV(),e&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),o.translate(this.content,-this.scrollLeft,-i.offset);var r=i.width+2*this.$padding+"px",s=i.minHeight+"px";o.setStyle(this.content.style,"width",r),o.setStyle(this.content.style,"height",s)}return e&this.CHANGE_H_SCROLL&&(o.translate(this.content,-this.scrollLeft,-i.offset),this.scroller.className=this.scrollLeft<=0?"ace_scroller":"ace_scroller ace_scroll-left"),e&this.CHANGE_FULL?(this.$changedLines=null,this.$textLayer.update(i),this.$showGutter&&this.$gutterLayer.update(i),this.$markerBack.update(i),this.$markerFront.update(i),this.$cursorLayer.update(i),this.$moveTextAreaToCursor(),void this._signal("afterRender",e)):e&this.CHANGE_SCROLL?(this.$changedLines=null,e&this.CHANGE_TEXT||e&this.CHANGE_LINES?this.$textLayer.update(i):this.$textLayer.scrollLines(i),this.$showGutter&&(e&this.CHANGE_GUTTER||e&this.CHANGE_LINES?this.$gutterLayer.update(i):this.$gutterLayer.scrollLines(i)),this.$markerBack.update(i),this.$markerFront.update(i),this.$cursorLayer.update(i),this.$moveTextAreaToCursor(),void this._signal("afterRender",e)):(e&this.CHANGE_TEXT?(this.$changedLines=null,this.$textLayer.update(i),this.$showGutter&&this.$gutterLayer.update(i)):e&this.CHANGE_LINES?(this.$updateLines()||e&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(i):e&this.CHANGE_TEXT||e&this.CHANGE_GUTTER?this.$showGutter&&this.$gutterLayer.update(i):e&this.CHANGE_CURSOR&&this.$highlightGutterLine&&this.$gutterLayer.updateLineHighlight(i),e&this.CHANGE_CURSOR&&(this.$cursorLayer.update(i),this.$moveTextAreaToCursor()),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(i),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(i),void this._signal("afterRender",e))}this.$changes|=e},this.$autosize=function(){var e=this.session.getScreenLength()*this.lineHeight,t=this.$maxLines*this.lineHeight,i=Math.min(t,Math.max((this.$minLines||1)*this.lineHeight,e))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(i+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&i>this.$maxPixelHeight&&(i=this.$maxPixelHeight);var n=!(i<=2*this.lineHeight)&&e>t;if(i!=this.desiredHeight||this.$size.height!=this.desiredHeight||n!=this.$vScroll){n!=this.$vScroll&&(this.$vScroll=n,this.scrollBarV.setVisible(n));var o=this.container.clientWidth;this.container.style.height=i+"px",this.$updateCachedSize(!0,this.$gutterWidth,o,i),this.desiredHeight=i,this._signal("autosize")}},this.$computeLayerConfig=function(){var e=this.session,t=this.$size,i=t.height<=2*this.lineHeight,n=this.session.getScreenLength()*this.lineHeight,o=this.$getLongestLine(),r=!i&&(this.$hScrollBarAlwaysVisible||t.scrollerWidth-o-2*this.$padding<0),s=this.$horizScroll!==r;s&&(this.$horizScroll=r,this.scrollBarH.setVisible(r));var a=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var l=t.scrollerHeight+this.lineHeight,c=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;n+=c;var d=this.scrollMargin;this.session.setScrollTop(Math.max(-d.top,Math.min(this.scrollTop,n-t.scrollerHeight+d.bottom))),this.session.setScrollLeft(Math.max(-d.left,Math.min(this.scrollLeft,o+2*this.$padding-t.scrollerWidth+d.right)));var u=!i&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-n+c<0||this.scrollTop>d.top),h=a!==u;h&&(this.$vScroll=u,this.scrollBarV.setVisible(u));var p,f,g=this.scrollTop%this.lineHeight,m=Math.ceil(l/this.lineHeight)-1,A=Math.max(0,Math.round((this.scrollTop-g)/this.lineHeight)),b=A+m,v=this.lineHeight;A=e.screenToDocumentRow(A,0);var C=e.getFoldLine(A);C&&(A=C.start.row),p=e.documentToScreenRow(A,0),f=e.getRowLength(A)*v,b=Math.min(e.screenToDocumentRow(b,0),e.getLength()-1),l=t.scrollerHeight+e.getRowLength(b)*v+f,g=this.scrollTop-p*v;var y=0;return(this.layerConfig.width!=o||s)&&(y=this.CHANGE_H_SCROLL),(s||h)&&(y|=this.$updateCachedSize(!0,this.gutterWidth,t.width,t.height),this._signal("scrollbarVisibilityChanged"),h&&(o=this.$getLongestLine())),this.layerConfig={width:o,padding:this.$padding,firstRow:A,firstRowScreen:p,lastRow:b,lineHeight:v,characterWidth:this.characterWidth,minHeight:l,maxHeight:n,offset:g,gutterOffset:v?Math.max(0,Math.ceil((g+t.height-t.scrollerHeight)/v)):0,height:this.$size.scrollerHeight},this.session.$bidiHandler&&this.session.$bidiHandler.setContentWidth(o-this.$padding),y},this.$updateLines=function(){if(this.$changedLines){var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var i=this.layerConfig;if(!(e>i.lastRow+1||tthis.$textLayer.MAX_LINE_LENGTH&&(e=this.$textLayer.MAX_LINE_LENGTH+30),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(e*this.characterWidth))},this.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),this.$loop.schedule(this.CHANGE_MARKER_FRONT)},this.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers()),this.$loop.schedule(this.CHANGE_MARKER_BACK)},this.addGutterDecoration=function(e,t){this.$gutterLayer.addGutterDecoration(e,t)},this.removeGutterDecoration=function(e,t){this.$gutterLayer.removeGutterDecoration(e,t)},this.updateBreakpoints=function(e){this.$loop.schedule(this.CHANGE_GUTTER)},this.setAnnotations=function(e){this.$gutterLayer.setAnnotations(e),this.$loop.schedule(this.CHANGE_GUTTER)},this.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)},this.hideCursor=function(){this.$cursorLayer.hideCursor()},this.showCursor=function(){this.$cursorLayer.showCursor()},this.scrollSelectionIntoView=function(e,t,i){this.scrollCursorIntoView(e,i),this.scrollCursorIntoView(t,i)},this.scrollCursorIntoView=function(e,t,i){if(0!==this.$size.scrollerHeight){var n=this.$cursorLayer.getPixelPosition(e),o=n.left,r=n.top,s=i&&i.top||0,a=i&&i.bottom||0,l=this.$scrollAnimation?this.session.getScrollTop():this.scrollTop;l+s>r?(t&&l+s>r+this.lineHeight&&(r-=t*this.$size.scrollerHeight),0===r&&(r=-this.scrollMargin.top),this.session.setScrollTop(r)):l+this.$size.scrollerHeight-ao?(o=1-this.scrollMargin.top||t>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom||e<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left||e>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right||void 0},this.pixelToScreenCoordinates=function(e,t){var i;if(this.$hasCssTransforms){i={top:0,left:0};var n=this.$fontMetrics.transformCoordinates([e,t]);e=n[1]-this.gutterWidth-this.margin.left,t=n[0]}else i=this.scroller.getBoundingClientRect();var o=e+this.scrollLeft-i.left-this.$padding,r=o/this.characterWidth,s=Math.floor((t+this.scrollTop-i.top)/this.lineHeight),a=this.$blockCursor?Math.floor(r):Math.round(r);return{row:s,column:a,side:r-a>0?1:-1,offsetX:o}},this.screenToTextCoordinates=function(e,t){var i;if(this.$hasCssTransforms){i={top:0,left:0};var n=this.$fontMetrics.transformCoordinates([e,t]);e=n[1]-this.gutterWidth-this.margin.left,t=n[0]}else i=this.scroller.getBoundingClientRect();var o=e+this.scrollLeft-i.left-this.$padding,r=o/this.characterWidth,s=this.$blockCursor?Math.floor(r):Math.round(r),a=Math.floor((t+this.scrollTop-i.top)/this.lineHeight);return this.session.screenToDocumentPosition(a,Math.max(s,0),o)},this.textToScreenCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=this.session.documentToScreenPosition(e,t),o=this.$padding+(this.session.$bidiHandler.isBidiRow(n.row,e)?this.session.$bidiHandler.getPosLeft(n.column):Math.round(n.column*this.characterWidth)),r=n.row*this.lineHeight;return{pageX:i.left+o-this.scrollLeft,pageY:i.top+r-this.scrollTop}},this.visualizeFocus=function(){o.addCssClass(this.container,"ace_focus")},this.visualizeBlur=function(){o.removeCssClass(this.container,"ace_focus")},this.showComposition=function(e){this.$composition=e,e.cssText||(e.cssText=this.textarea.style.cssText),null==e.useTextareaForIME&&(e.useTextareaForIME=this.$useTextareaForIME),this.$useTextareaForIME?(o.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor(),this.$cursorLayer.element.style.display="none"):e.markerId=this.session.addMarker(e.markerRange,"ace_composition_marker","text")},this.setCompositionText=function(e){var t=this.session.selection.cursor;this.addToken(e,"composition_placeholder",t.row,t.column),this.$moveTextAreaToCursor()},this.hideComposition=function(){if(this.$composition){this.$composition.markerId&&this.session.removeMarker(this.$composition.markerId),o.removeCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText=this.$composition.cssText;var e=this.session.selection.cursor;this.removeExtraToken(e.row,e.column),this.$composition=null,this.$cursorLayer.element.style.display=""}},this.addToken=function(e,t,i,n){var o=this.session;o.bgTokenizer.lines[i]=null;var r={type:t,value:e},s=o.getTokens(i);if(null==n)s.push(r);else for(var a=0,l=0;l50&&e.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:e}))}}).call(l.prototype),t.UIWorkerClient=function(e,t,i){var n=null,o=!1,r=Object.create(s),c=[],d=new l({messageBuffer:c,terminate:function(){},postMessage:function(e){c.push(e),n&&(o?setTimeout(u):u())}});d.setEmitSync=function(e){o=e};var u=function(){var e=c.shift();e.command?n[e.command].apply(n,e.args):e.event&&r._signal(e.event,e.data)};return r.postMessage=function(e){d.onMessage({data:e})},r.callback=function(e,t){this.postMessage({type:"call",id:t,data:e})},r.emit=function(e,t){this.postMessage({type:"event",name:e,data:t})},a.loadModule(["worker",t],(function(e){for(n=new e[i](r);c.length;)u()})),d},t.WorkerClient=l,t.createWorker=n})),ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],(function(e,t,i){"use strict";var n=e("./range").Range,o=e("./lib/event_emitter").EventEmitter,r=e("./lib/oop"),s=function(e,t,i,n,o,r){var s=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=o,this.othersClass=r,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate),this.$others=n,this.$onCursorChange=function(){setTimeout((function(){s.onCursorChange()}))},this.$pos=i;var a=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=a.length,this.setup(),e.selection.on("changeCursor",this.$onCursorChange)};(function(){r.implement(this,o),this.setup=function(){var e=this,t=this.doc,i=this.session;this.selectionBefore=i.selection.toJSON(),i.selection.inMultiSelectMode&&i.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var o=this.pos;o.$insertRight=!0,o.detach(),o.markerId=i.addMarker(new n(o.row,o.column,o.row,o.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach((function(i){var n=t.createAnchor(i.row,i.column);n.$insertRight=!0,n.detach(),e.others.push(n)})),i.setUndoSelect(!1)},this.showOtherMarkers=function(){if(!this.othersActive){var e=this.session,t=this;this.othersActive=!0,this.others.forEach((function(i){i.markerId=e.addMarker(new n(i.row,i.column,i.row,i.column+t.length),t.othersClass,null,!1)}))}},this.hideOtherMarkers=function(){if(this.othersActive){this.othersActive=!1;for(var e=0;e=this.pos.column&&t.start.column<=this.pos.column+this.length+1,r=t.start.column-this.pos.column;if(this.updateAnchors(e),o&&(this.length+=i),o&&!this.session.$fromUndo)if("insert"===e.action)for(var s=this.others.length-1;s>=0;s--){var a={row:(l=this.others[s]).row,column:l.column+r};this.doc.insertMergedLines(a,e.lines)}else if("remove"===e.action)for(s=this.others.length-1;s>=0;s--){var l;a={row:(l=this.others[s]).row,column:l.column+r},this.doc.remove(new n(a.row,a.column,a.row,a.column-i))}this.$updating=!1,this.updateMarkers()}},this.updateAnchors=function(e){this.pos.onChange(e);for(var t=this.others.length;t--;)this.others[t].onChange(e);this.updateMarkers()},this.updateMarkers=function(){if(!this.$updating){var e=this,t=this.session,i=function(i,o){t.removeMarker(i.markerId),i.markerId=t.addMarker(new n(i.row,i.column,i.row,i.column+e.length),o,null,!1)};i(this.pos,this.mainClass);for(var o=this.others.length;o--;)i(this.others[o],this.othersClass)}},this.onCursorChange=function(e){if(!this.$updating&&this.session){var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",e)):(this.hideOtherMarkers(),this._emit("cursorLeave",e))}},this.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.off("change",this.$onUpdate),this.session.selection.off("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},this.cancel=function(){if(-1!==this.$undoStackDepth){for(var e=this.session.getUndoManager(),t=(e.$undoStack||e.$undostack).length-this.$undoStackDepth,i=0;i1?e.multiSelect.joinSelections():e.multiSelect.splitIntoLines()},bindKey:{win:"Ctrl-Alt-L",mac:"Ctrl-Alt-L"},readOnly:!0},{name:"splitSelectionIntoLines",description:"Split into lines",exec:function(e){e.multiSelect.splitIntoLines()},readOnly:!0},{name:"alignCursors",description:"Align cursors",exec:function(e){e.alignCursors()},bindKey:{win:"Ctrl-Alt-A",mac:"Ctrl-Alt-A"},scrollIntoView:"cursor"},{name:"findAll",description:"Find all",exec:function(e){e.findAll()},bindKey:{win:"Ctrl-Alt-K",mac:"Ctrl-Alt-G"},scrollIntoView:"cursor",readOnly:!0}],t.multiSelectCommands=[{name:"singleSelection",description:"Single selection",bindKey:"esc",exec:function(e){e.exitMultiSelectMode()},scrollIntoView:"cursor",readOnly:!0,isAvailable:function(e){return e&&e.inMultiSelectMode}}];var n=e("../keyboard/hash_handler").HashHandler;t.keyboardHandler=new n(t.multiSelectCommands)})),ace.define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/lib/lang","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor","ace/config"],(function(e,t,i){function n(e,t){return e.row==t.row&&e.column==t.column}function o(e){e.$multiselectOnSessionChange||(e.$onAddRange=e.$onAddRange.bind(e),e.$onRemoveRange=e.$onRemoveRange.bind(e),e.$onMultiSelect=e.$onMultiSelect.bind(e),e.$onSingleSelect=e.$onSingleSelect.bind(e),e.$multiselectOnSessionChange=t.onSessionChange.bind(e),e.$checkMultiselectChange=e.$checkMultiselectChange.bind(e),e.$multiselectOnSessionChange(e),e.on("changeSession",e.$multiselectOnSessionChange),e.on("mousedown",l),e.commands.addCommands(u.defaultCommands),function(e){function t(t){n&&(e.renderer.setMouseCursor(""),n=!1)}if(e.textInput){var i=e.textInput.getElement(),n=!1;c.addListener(i,"keydown",(function(i){var o=18==i.keyCode&&!(i.ctrlKey||i.shiftKey||i.metaKey);e.$blockSelectEnabled&&o?n||(e.renderer.setMouseCursor("crosshair"),n=!0):n&&t()}),e),c.addListener(i,"keyup",t,e),c.addListener(i,"blur",t,e)}}(e))}var r=e("./range_list").RangeList,s=e("./range").Range,a=e("./selection").Selection,l=e("./mouse/multi_select_handler").onMouseDown,c=e("./lib/event"),d=e("./lib/lang"),u=e("./commands/multi_select_commands");t.commands=u.defaultCommands.concat(u.multiSelectCommands);var h=new(0,e("./search").Search),p=e("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(p.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(e,t){if(e){if(!this.inMultiSelectMode&&0===this.rangeCount){var i=this.toOrientedRange();if(this.rangeList.add(i),this.rangeList.add(e),2!=this.rangeList.ranges.length)return this.rangeList.removeAll(),t||this.fromOrientedRange(e);this.rangeList.removeAll(),this.rangeList.add(i),this.$onAddRange(i)}e.cursor||(e.cursor=e.end);var n=this.rangeList.add(e);return this.$onAddRange(e),n.length&&this.$onRemoveRange(n),this.rangeCount>1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),t||this.fromOrientedRange(e)}},this.toSingleRange=function(e){e=e||this.ranges[0];var t=this.rangeList.removeAll();t.length&&this.$onRemoveRange(t),e&&this.fromOrientedRange(e)},this.substractPoint=function(e){var t=this.rangeList.substractPoint(e);if(t)return this.$onRemoveRange(t),t[0]},this.mergeOverlappingRanges=function(){var e=this.rangeList.merge();e.length&&this.$onRemoveRange(e)},this.$onAddRange=function(e){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(e),this._signal("addRange",{range:e})},this.$onRemoveRange=function(e){if(this.rangeCount=this.rangeList.ranges.length,1==this.rangeCount&&this.inMultiSelectMode){var t=this.rangeList.ranges.pop();e.push(t),this.rangeCount=0}for(var i=e.length;i--;){var n=this.ranges.indexOf(e[i]);this.ranges.splice(n,1)}this._signal("removeRange",{ranges:e}),0===this.rangeCount&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),(t=t||this.ranges[0])&&!t.isEqual(this.getRange())&&this.fromOrientedRange(t)},this.$initRangeList=function(){this.rangeList||(this.rangeList=new r,this.ranges=[],this.rangeCount=0)},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){for(var e=this.ranges.length?this.ranges:[this.getRange()],t=[],i=0;i1){var e=this.rangeList.ranges,t=e[e.length-1],i=s.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(i,t.cursor==t.start)}else{var n=this.session.documentToScreenPosition(this.cursor),o=this.session.documentToScreenPosition(this.anchor);this.rectangularRangeBlock(n,o).forEach(this.addRange,this)}},this.rectangularRangeBlock=function(e,t,i){var o=[],r=e.column0;)A--;if(A>0)for(var b=0;o[b].isEmpty();)b++;for(var v=A;v>=b;v--)o[v].isEmpty()&&o.splice(v,1)}return o}}.call(a.prototype);var f=e("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(e){e.cursor||(e.cursor=e.end);var t=this.getSelectionStyle();return e.marker=this.session.addMarker(e,"ace_selection",t),this.session.$selectionMarkers.push(e),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,e},this.removeSelectionMarker=function(e){if(e.marker){this.session.removeMarker(e.marker);var t=this.session.$selectionMarkers.indexOf(e);-1!=t&&this.session.$selectionMarkers.splice(t,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length}},this.removeSelectionMarkers=function(e){for(var t=this.session.$selectionMarkers,i=e.length;i--;){var n=e[i];if(n.marker){this.session.removeMarker(n.marker);var o=t.indexOf(n);-1!=o&&t.splice(o,1)}}this.session.selectionMarkerCount=t.length},this.$onAddRange=function(e){this.addSelectionMarker(e.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(e){this.removeSelectionMarkers(e.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(e){this.inMultiSelectMode||(this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(u.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onSingleSelect=function(e){this.session.multiSelect.inVirtualMode||(this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(u.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection"))},this.$onMultiSelectExec=function(e){var t=e.command,i=e.editor;if(i.multiSelect){if(t.multiSelectAction)"forEach"==t.multiSelectAction?n=i.forEachSelection(t,e.args):"forEachLine"==t.multiSelectAction?n=i.forEachSelection(t,e.args,!0):"single"==t.multiSelectAction?(i.exitMultiSelectMode(),n=t.exec(i,e.args||{})):n=t.multiSelectAction(i,e.args||{});else{var n=t.exec(i,e.args||{});i.multiSelect.addRange(i.multiSelect.toOrientedRange()),i.multiSelect.mergeOverlappingRanges()}return n}},this.forEachSelection=function(e,t,i){if(!this.inVirtualSelectionMode){var n,o=i&&i.keepOrder,r=1==i||i&&i.$byLines,s=this.session,l=this.selection,c=l.rangeList,d=(o?l:c).ranges;if(!d.length)return e.exec?e.exec(this,t||{}):e(this,t||{});var u=l._eventRegistry;l._eventRegistry={};var h=new a(s);this.inVirtualSelectionMode=!0;for(var p=d.length;p--;){if(r)for(;p>0&&d[p].start.row==d[p-1].end.row;)p--;h.fromOrientedRange(d[p]),h.index=p,this.selection=s.selection=h;var f=e.exec?e.exec(this,t||{}):e(this,t||{});!n&&void 0!==f&&(n=f),h.toOrientedRange(d[p])}h.detach(),this.selection=s.selection=l,this.inVirtualSelectionMode=!1,l._eventRegistry=u,l.mergeOverlappingRanges(),l.ranges[0]&&l.fromOrientedRange(l.ranges[0]);var g=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),g&&g.from==g.to&&this.renderer.animateScrolling(g.from),n}},this.exitMultiSelectMode=function(){this.inMultiSelectMode&&!this.inVirtualSelectionMode&&this.multiSelect.toSingleRange()},this.getSelectedText=function(){var e="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){for(var t=this.multiSelect.rangeList.ranges,i=[],n=0;nr&&(r=i.column),nc?e.insert(n,d.stringRepeat(" ",o-c)):e.remove(new s(n.row,n.column,n.row,n.column-o+c)),t.start.column=t.end.column=r,t.start.row=t.end.row=n.row,t.cursor=t.end})),t.fromOrientedRange(i[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}else{var c=this.selection.getRange(),u=c.start.row,h=c.end.row,p=u==h;if(p){var f,g=this.session.getLength();do{f=this.session.getLine(h)}while(/[=:]/.test(f)&&++h0);u<0&&(u=0),h>=g&&(h=g-1)}var m=this.session.removeFullLines(u,h);m=this.$reAlignText(m,p),this.session.insert({row:u,column:0},m.join("\n")+"\n"),p||(c.start.column=0,c.end.column=m[m.length-1].length),this.selection.setRange(c)}},this.$reAlignText=function(e,t){function i(e){return d.stringRepeat(" ",e)}function n(e){return e[2]?i(o)+e[2]+i(r-e[2].length+s)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}var o,r,s,a=!0,l=!0;return e.map((function(e){var t=e.match(/(\s*)(.*?)(\s*)([=:].*)/);return t?null==o?(o=t[1].length,r=t[2].length,s=t[3].length,t):(o+r+s!=t[1].length+t[2].length+t[3].length&&(l=!1),o!=t[1].length&&(a=!1),o>t[1].length&&(o=t[1].length),rt[3].length&&(s=t[3].length),t):[e]})).map(t?n:a?l?function(e){return e[2]?i(o+r-e[2].length)+e[2]+i(s)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}:n:function(e){return e[2]?i(o)+e[2]+i(s)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]})}}).call(f.prototype),t.onSessionChange=function(e){var t=e.session;t&&!t.multiSelect&&(t.$selectionMarkers=[],t.selection.$initRangeList(),t.multiSelect=t.selection),this.multiSelect=t&&t.multiSelect;var i=e.oldSession;i&&(i.multiSelect.off("addRange",this.$onAddRange),i.multiSelect.off("removeRange",this.$onRemoveRange),i.multiSelect.off("multiSelect",this.$onMultiSelect),i.multiSelect.off("singleSelect",this.$onSingleSelect),i.multiSelect.lead.off("change",this.$checkMultiselectChange),i.multiSelect.anchor.off("change",this.$checkMultiselectChange)),t&&(t.multiSelect.on("addRange",this.$onAddRange),t.multiSelect.on("removeRange",this.$onRemoveRange),t.multiSelect.on("multiSelect",this.$onMultiSelect),t.multiSelect.on("singleSelect",this.$onSingleSelect),t.multiSelect.lead.on("change",this.$checkMultiselectChange),t.multiSelect.anchor.on("change",this.$checkMultiselectChange)),t&&this.inMultiSelectMode!=t.selection.inMultiSelectMode&&(t.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},t.MultiSelect=o,e("./config").defineOptions(f.prototype,"editor",{enableMultiselect:{set:function(e){o(this),e?(this.on("changeSession",this.$multiselectOnSessionChange),this.on("mousedown",l)):(this.off("changeSession",this.$multiselectOnSessionChange),this.off("mousedown",l))},value:!0},enableBlockSelect:{set:function(e){this.$blockSelectEnabled=e},value:!0}})})),ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],(function(e,t,i){"use strict";var n=e("../../range").Range,o=t.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(e,t,i){var n=e.getLine(i);return this.foldingStartMarker.test(n)?"start":"markbeginend"==t&&this.foldingStopMarker&&this.foldingStopMarker.test(n)?"end":""},this.getFoldWidgetRange=function(e,t,i){return null},this.indentationBlock=function(e,t,i){var o=/\S/,r=e.getLine(t),s=r.search(o);if(-1!=s){for(var a=i||r.length,l=e.getLength(),c=t,d=t;++tc){var p=e.getLine(d).length;return new n(c,a,d,p)}}},this.openingBracketBlock=function(e,t,i,o,r){var s={row:i,column:o+1},a=e.$findClosingBracket(t,s,r);if(a){var l=e.foldWidgets[a.row];return null==l&&(l=e.getFoldWidget(a.row)),"start"==l&&a.row>s.row&&(a.row--,a.column=e.getLine(a.row).length),n.fromPoints(s,a)}},this.closingBracketBlock=function(e,t,i,o,r){var s={row:i,column:o},a=e.$findOpeningBracket(t,s);if(a)return a.column++,s.column--,n.fromPoints(a,s)}}).call(o.prototype)})),ace.define("ace/theme/textmate",["require","exports","module","ace/lib/dom"],(function(e,t,i){"use strict";t.isDark=!1,t.cssClass="ace-tm",t.cssText='.ace-tm .ace_gutter {background: #f0f0f0;color: #333;}.ace-tm .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-tm .ace_fold {background-color: #6B72E6;}.ace-tm {background-color: #FFFFFF;color: black;}.ace-tm .ace_cursor {color: black;}.ace-tm .ace_invisible {color: rgb(191, 191, 191);}.ace-tm .ace_storage,.ace-tm .ace_keyword {color: blue;}.ace-tm .ace_constant {color: rgb(197, 6, 11);}.ace-tm .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-tm .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-tm .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-tm .ace_invalid {background-color: rgba(255, 0, 0, 0.1);color: red;}.ace-tm .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-tm .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-tm .ace_support.ace_type,.ace-tm .ace_support.ace_class {color: rgb(109, 121, 222);}.ace-tm .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-tm .ace_string {color: rgb(3, 106, 7);}.ace-tm .ace_comment {color: rgb(76, 136, 107);}.ace-tm .ace_comment.ace_doc {color: rgb(0, 102, 255);}.ace-tm .ace_comment.ace_doc.ace_tag {color: rgb(128, 159, 191);}.ace-tm .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-tm .ace_variable {color: rgb(49, 132, 149);}.ace-tm .ace_xml-pe {color: rgb(104, 104, 91);}.ace-tm .ace_entity.ace_name.ace_function {color: #0000A2;}.ace-tm .ace_heading {color: rgb(12, 7, 255);}.ace-tm .ace_list {color:rgb(185, 6, 144);}.ace-tm .ace_meta.ace_tag {color:rgb(0, 22, 142);}.ace-tm .ace_string.ace_regex {color: rgb(255, 0, 0)}.ace-tm .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-tm.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px white;}.ace-tm .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-tm .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-tm .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-tm .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-tm .ace_gutter-active-line {background-color : #dcdcdc;}.ace-tm .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-tm .ace_indent-guide {background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;}',t.$id="ace/theme/textmate",e("../lib/dom").importCssString(t.cssText,t.cssClass,!1)})),ace.define("ace/line_widgets",["require","exports","module","ace/lib/dom"],(function(e,t,i){"use strict";function n(e){this.session=e,this.session.widgetManager=this,this.session.getRowLength=this.getRowLength,this.session.$getWidgetScreenLength=this.$getWidgetScreenLength,this.updateOnChange=this.updateOnChange.bind(this),this.renderWidgets=this.renderWidgets.bind(this),this.measureWidgets=this.measureWidgets.bind(this),this.session._changedWidgets=[],this.$onChangeEditor=this.$onChangeEditor.bind(this),this.session.on("change",this.updateOnChange),this.session.on("changeFold",this.updateOnFold),this.session.on("changeEditor",this.$onChangeEditor)}var o=e("./lib/dom");(function(){this.getRowLength=function(e){var t;return t=this.lineWidgets&&this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0,this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1+t:1+t},this.$getWidgetScreenLength=function(){var e=0;return this.lineWidgets.forEach((function(t){t&&t.rowCount&&!t.hidden&&(e+=t.rowCount)})),e},this.$onChangeEditor=function(e){this.attach(e.editor)},this.attach=function(e){e&&e.widgetManager&&e.widgetManager!=this&&e.widgetManager.detach(),this.editor!=e&&(this.detach(),this.editor=e,e&&(e.widgetManager=this,e.renderer.on("beforeRender",this.measureWidgets),e.renderer.on("afterRender",this.renderWidgets)))},this.detach=function(e){var t=this.editor;if(t){this.editor=null,t.widgetManager=null,t.renderer.off("beforeRender",this.measureWidgets),t.renderer.off("afterRender",this.renderWidgets);var i=this.session.lineWidgets;i&&i.forEach((function(e){e&&e.el&&e.el.parentNode&&(e._inDocument=!1,e.el.parentNode.removeChild(e.el))}))}},this.updateOnFold=function(e,t){var i=t.lineWidgets;if(i&&e.action){for(var n=e.data,o=n.start.row,r=n.end.row,s="add"==e.action,a=o+1;at[i].column&&i++,r.unshift(i,0),t.splice.apply(t,r),this.$updateRows()}}},this.$updateRows=function(){var e=this.session.lineWidgets;if(e){var t=!0;e.forEach((function(e,i){if(e)for(t=!1,e.row=i;e.$oldWidget;)e.$oldWidget.row=i,e=e.$oldWidget})),t&&(this.session.lineWidgets=null)}},this.$registerLineWidget=function(e){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength()));var t=this.session.lineWidgets[e.row];return t&&(e.$oldWidget=t,t.el&&t.el.parentNode&&(t.el.parentNode.removeChild(t.el),t._inDocument=!1)),this.session.lineWidgets[e.row]=e,e},this.addLineWidget=function(e){if(this.$registerLineWidget(e),e.session=this.session,!this.editor)return e;var t=this.editor.renderer;e.html&&!e.el&&(e.el=o.createElement("div"),e.el.innerHTML=e.html),e.el&&(o.addCssClass(e.el,"ace_lineWidgetContainer"),e.el.style.position="absolute",e.el.style.zIndex=5,t.container.appendChild(e.el),e._inDocument=!0,e.coverGutter||(e.el.style.zIndex=3),null==e.pixelHeight&&(e.pixelHeight=e.el.offsetHeight)),null==e.rowCount&&(e.rowCount=e.pixelHeight/t.layerConfig.lineHeight);var i=this.session.getFoldAt(e.row,0);if(e.$fold=i,i){var n=this.session.lineWidgets;e.row!=i.end.row||n[i.start.row]?e.hidden=!0:n[i.start.row]=e}return this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows(),this.renderWidgets(null,t),this.onWidgetChanged(e),e},this.removeLineWidget=function(e){if(e._inDocument=!1,e.session=null,e.el&&e.el.parentNode&&e.el.parentNode.removeChild(e.el),e.editor&&e.editor.destroy)try{e.editor.destroy()}catch(e){}if(this.session.lineWidgets){var t=this.session.lineWidgets[e.row];if(t==e)this.session.lineWidgets[e.row]=e.$oldWidget,e.$oldWidget&&this.onWidgetChanged(e.$oldWidget);else for(;t;){if(t.$oldWidget==e){t.$oldWidget=e.$oldWidget;break}t=t.$oldWidget}}this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows()},this.getWidgetsAtRow=function(e){for(var t=this.session.lineWidgets,i=t&&t[e],n=[];i;)n.push(i),i=i.$oldWidget;return n},this.onWidgetChanged=function(e){this.session._changedWidgets.push(e),this.editor&&this.editor.renderer.updateFull()},this.measureWidgets=function(e,t){var i=this.session._changedWidgets,n=t.layerConfig;if(i&&i.length){for(var o=1/0,r=0;r0&&!n[o];)o--;this.firstRow=i.firstRow,this.lastRow=i.lastRow,t.$cursorLayer.config=i;for(var s=o;s<=r;s++){var a=n[s];if(a&&a.el)if(a.hidden)a.el.style.top=-100-(a.pixelHeight||0)+"px";else{a._inDocument||(a._inDocument=!0,t.container.appendChild(a.el));var l=t.$cursorLayer.getPixelPosition({row:s,column:0},!0).top;a.coverLine||(l+=i.lineHeight*this.session.getRowLineCount(a.row)),a.el.style.top=l-i.offset+"px";var c=a.coverGutter?0:t.gutterWidth;a.fixedWidth||(c-=t.scrollLeft),a.el.style.left=c+"px",a.fullWidth&&a.screenWidth&&(a.el.style.minWidth=i.width+2*i.padding+"px"),a.fixedWidth?a.el.style.right=t.scrollBar.getWidth()+"px":a.el.style.right=""}}}}}).call(n.prototype),t.LineWidgets=n})),ace.define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range"],(function(e,t,i){"use strict";function n(e,t,i){var n=e.getAnnotations().sort(s.comparePoints);if(n.length){var o=function(e,t,i){for(var n=0,o=e.length-1;n<=o;){var r=n+o>>1,s=i(t,e[r]);if(s>0)n=r+1;else{if(!(s<0))return r;o=r-1}}return-(n+1)}(n,{row:t,column:-1},s.comparePoints);o<0&&(o=-o-1),o>=n.length?o=i>0?0:n.length-1:0===o&&i<0&&(o=n.length-1);var r=n[o];if(r&&i){if(r.row===t){do{r=n[o+=i]}while(r&&r.row===t);if(!r)return n.slice()}var a=[];t=r.row;do{a[i<0?"unshift":"push"](r),r=n[o+=i]}while(r&&r.row==t);return a.length&&a}}}var o=e("../line_widgets").LineWidgets,r=e("../lib/dom"),s=e("../range").Range;t.showErrorMarker=function(e,t){var i=e.session;i.widgetManager||(i.widgetManager=new o(i),i.widgetManager.attach(e));var s=e.getCursorPosition(),a=s.row,l=i.widgetManager.getWidgetsAtRow(a).filter((function(e){return"errorMarker"==e.type}))[0];l?l.destroy():a-=t;var c,d=n(i,a,t);if(d){var u=d[0];s.column=(u.pos&&"number"!=typeof u.column?u.pos.sc:u.column)||0,s.row=u.row,c=e.renderer.$gutterLayer.$annotations[s.row]}else{if(l)return;c={text:["Looks good!"],className:"ace_ok"}}e.session.unfold(s.row),e.selection.moveToPosition(s);var h={row:s.row,fixedWidth:!0,coverGutter:!0,el:r.createElement("div"),type:"errorMarker"},p=h.el.appendChild(r.createElement("div")),f=h.el.appendChild(r.createElement("div"));f.className="error_widget_arrow "+c.className;var g=e.renderer.$cursorLayer.getPixelPosition(s).left;f.style.left=g+e.renderer.gutterWidth-5+"px",h.el.className="error_widget_wrapper",p.className="error_widget "+c.className,p.innerHTML=c.text.join("
"),p.appendChild(r.createElement("div"));var m=function(e,t,i){if(0===t&&("esc"===i||"return"===i))return h.destroy(),{command:"null"}};h.destroy=function(){e.$mouseHandler.isMousePressed||(e.keyBinding.removeKeyboardHandler(m),i.widgetManager.removeLineWidget(h),e.off("changeSelection",h.destroy),e.off("changeSession",h.destroy),e.off("mouseup",h.destroy),e.off("change",h.destroy))},e.keyBinding.addKeyboardHandler(m),e.on("changeSelection",h.destroy),e.on("changeSession",h.destroy),e.on("mouseup",h.destroy),e.on("change",h.destroy),e.session.widgetManager.addLineWidget(h),h.el.onmousedown=e.focus.bind(e),e.renderer.scrollCursorIntoView(null,.5,{bottom:h.el.offsetHeight})},r.importCssString(" .error_widget_wrapper { background: inherit; color: inherit; border:none } .error_widget { border-top: solid 2px; border-bottom: solid 2px; margin: 5px 0; padding: 10px 40px; white-space: pre-wrap; } .error_widget.ace_error, .error_widget_arrow.ace_error{ border-color: #ff5a5a } .error_widget.ace_warning, .error_widget_arrow.ace_warning{ border-color: #F1D817 } .error_widget.ace_info, .error_widget_arrow.ace_info{ border-color: #5a5a5a } .error_widget.ace_ok, .error_widget_arrow.ace_ok{ border-color: #5aaa5a } .error_widget_arrow { position: absolute; border: solid 5px; border-top-color: transparent!important; border-right-color: transparent!important; border-left-color: transparent!important; top: -5px; }","error_marker.css",!1)})),ace.define("ace/ace",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/dom","ace/lib/event","ace/range","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/worker/worker_client","ace/keyboard/hash_handler","ace/placeholder","ace/multi_select","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config"],(function(e,t,n){"use strict";e("./lib/fixoldbrowsers");var o=e("./lib/dom"),r=e("./lib/event"),s=e("./range").Range,a=e("./editor").Editor,l=e("./edit_session").EditSession,c=e("./undomanager").UndoManager,d=e("./virtual_renderer").VirtualRenderer;e("./worker/worker_client"),e("./keyboard/hash_handler"),e("./placeholder"),e("./multi_select"),e("./mode/folding/fold_mode"),e("./theme/textmate"),e("./ext/error_marker"),t.config=e("./config"),t.require=e,t.define=i.amdD,t.edit=function(e,i){if("string"==typeof e){var n=e;if(!(e=document.getElementById(n)))throw new Error("ace.edit can't find div #"+n)}if(e&&e.env&&e.env.editor instanceof a)return e.env.editor;var s="";if(e&&/input|textarea/i.test(e.tagName)){var l=e;s=l.value,e=o.createElement("pre"),l.parentNode.replaceChild(e,l)}else e&&(s=e.textContent,e.innerHTML="");var c=t.createEditSession(s),u=new a(new d(e),c,i),h={document:c,editor:u,onResize:u.resize.bind(u,null)};return l&&(h.textarea=l),r.addListener(window,"resize",h.onResize),u.on("destroy",(function(){r.removeListener(window,"resize",h.onResize),h.editor.container.env=null})),u.container.env=u.env=h,u},t.createEditSession=function(e,t){var i=new l(e,t);return i.setUndoManager(new c),i},t.Range=s,t.Editor=a,t.EditSession=l,t.UndoManager=c,t.VirtualRenderer=d,t.version=t.config.version})),ace.require(["ace/ace"],(function(t){for(var i in t&&(t.config.init(!0),t.define=ace.define),window.ace||(window.ace=t),t)t.hasOwnProperty(i)&&(window.ace[i]=t[i]);window.ace.default=window.ace,e&&(e.exports=window.ace)}))},58119:(e,t,i)=>{e=i.nmd(e),ace.define("ace/snippets",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event_emitter","ace/lib/lang","ace/range","ace/range_list","ace/keyboard/hash_handler","ace/tokenizer","ace/clipboard","ace/editor"],(function(e,t,i){"use strict";function n(e){var t=(new Date).toLocaleString("en-us",e);return 1==t.length?"0"+t:t}var o=e("./lib/dom"),r=e("./lib/oop"),s=e("./lib/event_emitter").EventEmitter,a=e("./lib/lang"),l=e("./range").Range,c=e("./range_list").RangeList,d=e("./keyboard/hash_handler").HashHandler,u=e("./tokenizer").Tokenizer,h=e("./clipboard"),p={CURRENT_WORD:function(e){return e.session.getTextRange(e.session.getWordRange())},SELECTION:function(e,t,i){var n=e.session.getTextRange();return i?n.replace(/\n\r?([ \t]*\S)/g,"\n"+i+"$1"):n},CURRENT_LINE:function(e){return e.session.getLine(e.getCursorPosition().row)},PREV_LINE:function(e){return e.session.getLine(e.getCursorPosition().row-1)},LINE_INDEX:function(e){return e.getCursorPosition().row},LINE_NUMBER:function(e){return e.getCursorPosition().row+1},SOFT_TABS:function(e){return e.session.getUseSoftTabs()?"YES":"NO"},TAB_SIZE:function(e){return e.session.getTabSize()},CLIPBOARD:function(e){return h.getText&&h.getText()},FILENAME:function(e){return/[^/\\]*$/.exec(this.FILEPATH(e))[0]},FILENAME_BASE:function(e){return/[^/\\]*$/.exec(this.FILEPATH(e))[0].replace(/\.[^.]*$/,"")},DIRECTORY:function(e){return this.FILEPATH(e).replace(/[^/\\]*$/,"")},FILEPATH:function(e){return"/not implemented.txt"},WORKSPACE_NAME:function(){return"Unknown"},FULLNAME:function(){return"Unknown"},BLOCK_COMMENT_START:function(e){var t=e.session.$mode||{};return t.blockComment&&t.blockComment.start||""},BLOCK_COMMENT_END:function(e){var t=e.session.$mode||{};return t.blockComment&&t.blockComment.end||""},LINE_COMMENT:function(e){return(e.session.$mode||{}).lineCommentStart||""},CURRENT_YEAR:n.bind(null,{year:"numeric"}),CURRENT_YEAR_SHORT:n.bind(null,{year:"2-digit"}),CURRENT_MONTH:n.bind(null,{month:"numeric"}),CURRENT_MONTH_NAME:n.bind(null,{month:"long"}),CURRENT_MONTH_NAME_SHORT:n.bind(null,{month:"short"}),CURRENT_DATE:n.bind(null,{day:"2-digit"}),CURRENT_DAY_NAME:n.bind(null,{weekday:"long"}),CURRENT_DAY_NAME_SHORT:n.bind(null,{weekday:"short"}),CURRENT_HOUR:n.bind(null,{hour:"2-digit",hour12:!1}),CURRENT_MINUTE:n.bind(null,{minute:"2-digit"}),CURRENT_SECOND:n.bind(null,{second:"2-digit"})};p.SELECTED_TEXT=p.SELECTION;var f=function(){this.snippetMap={},this.snippetNameMap={}};(function(){r.implement(this,s),this.getTokenizer=function(){return f.$tokenizer||this.createTokenizer()},this.createTokenizer=function(){function e(e){return e=e.substr(1),/^\d+$/.test(e)?[{tabstopId:parseInt(e,10)}]:[{text:e}]}function t(e){return"(?:[^\\\\"+e+"]|\\\\.)"}var i={regex:"/("+t("/")+"+)/",onMatch:function(e,t,i){var n=i[0];return n.fmtString=!0,n.guard=e.slice(1,-1),n.flag="",""},next:"formatString"};return f.$tokenizer=new u({start:[{regex:/\\./,onMatch:function(e,t,i){var n=e[1];return("}"==n&&i.length||-1!="`$\\".indexOf(n))&&(e=n),[e]}},{regex:/}/,onMatch:function(e,t,i){return[i.length?i.shift():e]}},{regex:/\$(?:\d+|\w+)/,onMatch:e},{regex:/\$\{[\dA-Z_a-z]+/,onMatch:function(t,i,n){var o=e(t.substr(1));return n.unshift(o[0]),o},next:"snippetVar"},{regex:/\n/,token:"newline",merge:!1}],snippetVar:[{regex:"\\|"+t("\\|")+"*\\|",onMatch:function(e,t,i){var n=e.slice(1,-1).replace(/\\[,|\\]|,/g,(function(e){return 2==e.length?e[1]:"\0"})).split("\0").map((function(e){return{value:e}}));return i[0].choices=n,[n[0]]},next:"start"},i,{regex:"([^:}\\\\]|\\\\.)*:?",token:"",next:"start"}],formatString:[{regex:/:/,onMatch:function(e,t,i){return i.length&&i[0].expectElse?(i[0].expectElse=!1,i[0].ifEnd={elseEnd:i[0]},[i[0].ifEnd]):":"}},{regex:/\\./,onMatch:function(e,t,i){var n=e[1];return"}"==n&&i.length||-1!="`$\\".indexOf(n)?e=n:"n"==n?e="\n":"t"==n?e="\t":-1!="ulULE".indexOf(n)&&(e={changeCase:n,local:n>"a"}),[e]}},{regex:"/\\w*}",onMatch:function(e,t,i){var n=i.shift();return n&&(n.flag=e.slice(1,-1)),this.next=n&&n.tabstopId?"start":"",[n||e]},next:"start"},{regex:/\$(?:\d+|\w+)/,onMatch:function(e,t,i){return[{text:e.slice(1)}]}},{regex:/\${\w+/,onMatch:function(e,t,i){var n={text:e.slice(2)};return i.unshift(n),[n]},next:"formatStringVar"},{regex:/\n/,token:"newline",merge:!1},{regex:/}/,onMatch:function(e,t,i){var n=i.shift();return this.next=n&&n.tabstopId?"start":"",[n||e]},next:"start"}],formatStringVar:[{regex:/:\/\w+}/,onMatch:function(e,t,i){return i[0].formatFunction=e.slice(2,-1),[i.shift()]},next:"formatString"},i,{regex:/:[\?\-+]?/,onMatch:function(e,t,i){"+"==e[1]&&(i[0].ifEnd=i[0]),"?"==e[1]&&(i[0].expectElse=!0)},next:"formatString"},{regex:"([^:}\\\\]|\\\\.)*:?",token:"",next:"formatString"}]})},this.tokenizeTmSnippet=function(e,t){return this.getTokenizer().getLineTokens(e,t).tokens.map((function(e){return e.value||e}))},this.getVariableValue=function(e,t,i){if(/^\d+$/.test(t))return(this.variables.__||{})[t]||"";if(/^[A-Z]\d+$/.test(t))return(this.variables[t[0]+"__"]||{})[t.substr(1)]||"";if(t=t.replace(/^TM_/,""),!this.variables.hasOwnProperty(t))return"";var n=this.variables[t];return"function"==typeof n&&(n=this.variables[t](e,t,i)),null==n?"":n},this.variables=p,this.tmStrFormat=function(e,t,i){if(!t.fmt)return e;var n=t.flag||"",o=t.guard;o=new RegExp(o,n.replace(/[^gim]/g,""));var r="string"==typeof t.fmt?this.tokenizeTmSnippet(t.fmt,"formatString"):t.fmt,s=this,a=e.replace(o,(function(){var e=s.variables.__;s.variables.__=[].slice.call(arguments);for(var t=s.resolveVariables(r,i),n="E",o=0;o1?(b=t[t.length-1].length,A+=t.length-1):b+=e.length,v+=e}else e&&(e.start?e.end={row:A,column:b}:e.start={row:A,column:b})}));var C=e.getSelectionRange(),y=e.session.replace(C,v),w=new g(e),x=e.inVirtualSelectionMode&&e.selection.index;w.addTabstops(l,C.start,y,x)},this.insertSnippet=function(e,t){var i=this;if(e.inVirtualSelectionMode)return i.insertSnippetForSelection(e,t);e.forEachSelection((function(){i.insertSnippetForSelection(e,t)}),null,{keepOrder:!0}),e.tabstopManager&&e.tabstopManager.tabNext()},this.$getScope=function(e){var t=e.session.$mode.$id||"";if("html"===(t=t.split("/").pop())||"php"===t){"php"===t&&!e.session.$mode.inlinePhp&&(t="html");var i=e.getCursorPosition(),n=e.session.getState(i.row);"object"==typeof n&&(n=n[0]),n.substring&&("js-"==n.substring(0,3)?t="javascript":"css-"==n.substring(0,4)?t="css":"php-"==n.substring(0,4)&&(t="php"))}return t},this.getActiveScopes=function(e){var t=this.$getScope(e),i=[t],n=this.snippetMap;return n[t]&&n[t].includeScopes&&i.push.apply(i,n[t].includeScopes),i.push("_"),i},this.expandWithTab=function(e,t){var i=this,n=e.forEachSelection((function(){return i.expandSnippetForSelection(e,t)}),null,{keepOrder:!0});return n&&e.tabstopManager&&e.tabstopManager.tabNext(),n},this.expandSnippetForSelection=function(e,t){var i,n=e.getCursorPosition(),o=e.session.getLine(n.row),r=o.substring(0,n.column),s=o.substr(n.column),a=this.snippetMap;return this.getActiveScopes(e).some((function(e){var t=a[e];return t&&(i=this.findMatchingSnippet(t,r,s)),!!i}),this),!!i&&(t&&t.dryRun||(e.session.doc.removeInLine(n.row,n.column-i.replaceBefore.length,n.column+i.replaceAfter.length),this.variables.M__=i.matchBefore,this.variables.T__=i.matchAfter,this.insertSnippetForSelection(e,i.content),this.variables.M__=this.variables.T__=null),!0)},this.findMatchingSnippet=function(e,t,i){for(var n=e.length;n--;){var o=e[n];if((!o.startRe||o.startRe.test(t))&&(!o.endRe||o.endRe.test(i))&&(o.startRe||o.endRe))return o.matchBefore=o.startRe?o.startRe.exec(t):[""],o.matchAfter=o.endRe?o.endRe.exec(i):[""],o.replaceBefore=o.triggerRe?o.triggerRe.exec(t)[0]:"",o.replaceAfter=o.endTriggerRe?o.endTriggerRe.exec(i)[0]:"",o}},this.snippetMap={},this.snippetNameMap={},this.register=function(e,t){function i(e){return e&&!/^\^?\(.*\)\$?$|^\\b$/.test(e)&&(e="(?:"+e+")"),e||""}function n(e,t,n){return e=i(e),t=i(t),n?(e=t+e)&&"$"!=e[e.length-1]&&(e+="$"):(e+=t)&&"^"!=e[0]&&(e="^"+e),new RegExp(e)}function o(e){e.scope||(e.scope=t||"_"),t=e.scope,r[t]||(r[t]=[],s[t]={});var i=s[t];if(e.name){var o=i[e.name];o&&l.unregister(o),i[e.name]=e}r[t].push(e),e.prefix&&(e.tabTrigger=e.prefix),!e.content&&e.body&&(e.content=Array.isArray(e.body)?e.body.join("\n"):e.body),e.tabTrigger&&!e.trigger&&(!e.guard&&/^\w/.test(e.tabTrigger)&&(e.guard="\\b"),e.trigger=a.escapeRegExp(e.tabTrigger)),(e.trigger||e.guard||e.endTrigger||e.endGuard)&&(e.startRe=n(e.trigger,e.guard,!0),e.triggerRe=new RegExp(e.trigger),e.endRe=n(e.endTrigger,e.endGuard,!0),e.endTriggerRe=new RegExp(e.endTrigger))}var r=this.snippetMap,s=this.snippetNameMap,l=this;e||(e=[]),Array.isArray(e)?e.forEach(o):Object.keys(e).forEach((function(t){o(e[t])})),this._signal("registerSnippets",{scope:t})},this.unregister=function(e,t){function i(e){var i=o[e.scope||t];if(i&&i[e.name]){delete i[e.name];var r=n[e.scope||t],s=r&&r.indexOf(e);s>=0&&r.splice(s,1)}}var n=this.snippetMap,o=this.snippetNameMap;e.content?i(e):Array.isArray(e)&&e.forEach(i)},this.parseSnippetFile=function(e){e=e.replace(/\r/g,"");for(var t,i=[],n={},o=/^#.*|^({[\s\S]*})\s*$|^(\S+) (.*)$|^((?:\n*\t.*)+)/gm;t=o.exec(e);){if(t[1])try{n=JSON.parse(t[1]),i.push(n)}catch(e){}if(t[4])n.content=t[4].replace(/^\t/gm,""),i.push(n),n={};else{var r=t[2],s=t[3];if("regex"==r){var a=/\/((?:[^\/\\]|\\.)*)|$/g;n.guard=a.exec(s)[1],n.trigger=a.exec(s)[1],n.endTrigger=a.exec(s)[1],n.endGuard=a.exec(s)[1]}else"snippet"==r?(n.tabTrigger=s.match(/^\S*/)[0],n.name||(n.name=s)):r&&(n[r]=s)}}return i},this.getSnippetByName=function(e,t){var i,n=this.snippetNameMap;return this.getActiveScopes(t).some((function(t){var o=n[t];return o&&(i=o[e]),!!i}),this),i}}).call(f.prototype);var g=function(e){if(e.tabstopManager)return e.tabstopManager;e.tabstopManager=this,this.$onChange=this.onChange.bind(this),this.$onChangeSelection=a.delayedCall(this.onChangeSelection.bind(this)).schedule,this.$onChangeSession=this.onChangeSession.bind(this),this.$onAfterExec=this.onAfterExec.bind(this),this.attach(e)};(function(){this.attach=function(e){this.index=0,this.ranges=[],this.tabstops=[],this.$openTabstops=null,this.selectedTabstop=null,this.editor=e,this.editor.on("change",this.$onChange),this.editor.on("changeSelection",this.$onChangeSelection),this.editor.on("changeSession",this.$onChangeSession),this.editor.commands.on("afterExec",this.$onAfterExec),this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler)},this.detach=function(){this.tabstops.forEach(this.removeTabstopMarkers,this),this.ranges=null,this.tabstops=null,this.selectedTabstop=null,this.editor.removeListener("change",this.$onChange),this.editor.removeListener("changeSelection",this.$onChangeSelection),this.editor.removeListener("changeSession",this.$onChangeSession),this.editor.commands.removeListener("afterExec",this.$onAfterExec),this.editor.keyBinding.removeKeyboardHandler(this.keyboardHandler),this.editor.tabstopManager=null,this.editor=null},this.onChange=function(e){for(var t="r"==e.action[0],i=this.selectedTabstop||{},n=i.parents||{},o=(this.tabstops||[]).slice(),r=0;r2&&(this.tabstops.length&&r.push(r.splice(2,1)[0]),this.tabstops.splice.apply(this.tabstops,r))},this.addTabstopMarkers=function(e){var t=this.editor.session;e.forEach((function(e){e.markerId||(e.markerId=t.addMarker(e,"ace_snippet-marker","text"))}))},this.removeTabstopMarkers=function(e){var t=this.editor.session;e.forEach((function(e){t.removeMarker(e.markerId),e.markerId=null}))},this.removeRange=function(e){var t=e.tabstop.indexOf(e);-1!=t&&e.tabstop.splice(t,1),-1!=(t=this.ranges.indexOf(e))&&this.ranges.splice(t,1),-1!=(t=e.tabstop.rangeList.ranges.indexOf(e))&&e.tabstop.splice(t,1),this.editor.session.removeMarker(e.markerId),e.tabstop.length||(-1!=(t=this.tabstops.indexOf(e.tabstop))&&this.tabstops.splice(t,1),this.tabstops.length||this.detach())},this.keyboardHandler=new d,this.keyboardHandler.bindKeys({Tab:function(e){t.snippetManager&&t.snippetManager.expandWithTab(e)||(e.tabstopManager.tabNext(1),e.renderer.scrollCursorIntoView())},"Shift-Tab":function(e){e.tabstopManager.tabNext(-1),e.renderer.scrollCursorIntoView()},Esc:function(e){e.tabstopManager.detach()}})}).call(g.prototype);var m=function(e,t){0==e.row&&(e.column+=t.column),e.row+=t.row},A=function(e,t){e.row==t.row&&(e.column-=t.column),e.row-=t.row};o.importCssString(".ace_snippet-marker { -moz-box-sizing: border-box; box-sizing: border-box; background: rgba(194, 193, 208, 0.09); border: 1px dotted rgba(211, 208, 235, 0.62); position: absolute;}","snippets.css",!1),t.snippetManager=new f;var b=e("./editor").Editor;(function(){this.insertSnippet=function(e,i){return t.snippetManager.insertSnippet(this,e,i)},this.expandSnippet=function(e){return t.snippetManager.expandWithTab(this,e)}}).call(b.prototype)})),ace.define("ace/autocomplete/popup",["require","exports","module","ace/virtual_renderer","ace/editor","ace/range","ace/lib/event","ace/lib/lang","ace/lib/dom"],(function(e,t,i){"use strict";var n=e("../virtual_renderer").VirtualRenderer,o=e("../editor").Editor,r=e("../range").Range,s=e("../lib/event"),a=e("../lib/lang"),l=e("../lib/dom"),c=function(e){var t=new n(e);t.$maxLines=4;var i=new o(t);return i.setHighlightActiveLine(!1),i.setShowPrintMargin(!1),i.renderer.setShowGutter(!1),i.renderer.setHighlightGutterLine(!1),i.$mouseHandler.$focusTimeout=0,i.$highlightTagPending=!0,i};l.importCssString(".ace_editor.ace_autocomplete .ace_marker-layer .ace_active-line { background-color: #CAD6FA; z-index: 1;}.ace_dark.ace_editor.ace_autocomplete .ace_marker-layer .ace_active-line { background-color: #3a674e;}.ace_editor.ace_autocomplete .ace_line-hover { border: 1px solid #abbffe; margin-top: -1px; background: rgba(233,233,253,0.4); position: absolute; z-index: 2;}.ace_dark.ace_editor.ace_autocomplete .ace_line-hover { border: 1px solid rgba(109, 150, 13, 0.8); background: rgba(58, 103, 78, 0.62);}.ace_completion-meta { opacity: 0.5; margin: 0.9em;}.ace_completion-message { color: blue;}.ace_editor.ace_autocomplete .ace_completion-highlight{ color: #2d69c7;}.ace_dark.ace_editor.ace_autocomplete .ace_completion-highlight{ color: #93ca12;}.ace_editor.ace_autocomplete { width: 300px; z-index: 200000; border: 1px lightgray solid; position: fixed; box-shadow: 2px 3px 5px rgba(0,0,0,.2); line-height: 1.4; background: #fefefe; color: #111;}.ace_dark.ace_editor.ace_autocomplete { border: 1px #484747 solid; box-shadow: 2px 3px 5px rgba(0, 0, 0, 0.51); line-height: 1.4; background: #25282c; color: #c1c1c1;}","autocompletion.css",!1),t.AcePopup=function(e){var t=l.createElement("div"),i=new c(t);e&&e.appendChild(t),t.style.display="none",i.renderer.content.style.cursor="default",i.renderer.setStyle("ace_autocomplete"),i.setOption("displayIndentGuides",!1),i.setOption("dragDelay",150);var n=function(){};i.focus=n,i.$isFocused=!0,i.renderer.$cursorLayer.restartTimer=n,i.renderer.$cursorLayer.element.style.opacity=0,i.renderer.$maxLines=8,i.renderer.$keepTextAreaAtCursor=!1,i.setHighlightActiveLine(!1),i.session.highlight(""),i.session.$searchHighlight.clazz="ace_highlight-marker",i.on("mousedown",(function(e){var t=e.getDocumentPosition();i.selection.moveToPosition(t),u.start.row=u.end.row=t.row,e.stop()}));var o,d=new r(-1,0,-1,1/0),u=new r(-1,0,-1,1/0);u.id=i.session.addMarker(u,"ace_active-line","fullLine"),i.setSelectOnHover=function(e){e?d.id&&(i.session.removeMarker(d.id),d.id=null):d.id=i.session.addMarker(d,"ace_line-hover","fullLine")},i.setSelectOnHover(!1),i.on("mousemove",(function(e){if(o){if(o.x!=e.x||o.y!=e.y){(o=e).scrollTop=i.renderer.scrollTop;var t=o.getDocumentPosition().row;d.start.row!=t&&(d.id||i.setRow(t),p(t))}}else o=e})),i.renderer.on("beforeRender",(function(){if(o&&-1!=d.start.row){o.$pos=null;var e=o.getDocumentPosition().row;d.id||i.setRow(e),p(e,!0)}})),i.renderer.on("afterRender",(function(){var e=i.getRow(),t=i.renderer.$textLayer,n=t.element.childNodes[e-t.config.firstRow];n!==t.selectedNode&&t.selectedNode&&l.removeCssClass(t.selectedNode,"ace_selected"),t.selectedNode=n,n&&l.addCssClass(n,"ace_selected")}));var h=function(){p(-1)},p=function(e,t){e!==d.start.row&&(d.start.row=d.end.row=e,t||i.session._emit("changeBackMarker"),i._emit("changeHoverMarker"))};i.getHoveredRow=function(){return d.start.row},s.addListener(i.container,"mouseout",h),i.on("hide",h),i.on("changeSelection",h),i.session.doc.getLength=function(){return i.data.length},i.session.doc.getLine=function(e){var t=i.data[e];return"string"==typeof t?t:t&&t.value||""};var f=i.session.bgTokenizer;return f.$tokenizeRow=function(e){function t(e,t){e&&o.push({type:(n.className||"")+(t||""),value:e})}var n=i.data[e],o=[];if(!n)return o;"string"==typeof n&&(n={value:n});for(var r=n.caption||n.value||n.name,s=r.toLowerCase(),a=(i.filterText||"").toLowerCase(),l=0,c=0,d=0;d<=a.length;d++)if(d!=c&&(n.matchMask&1<s/2&&!n&&d+t+c>s?(l.$maxPixelHeight=d-2*this.$borderSize,r.style.top="",r.style.bottom=s-d+"px",i.isTopdown=!1):(d+=t,l.$maxPixelHeight=s-d-.2*t,r.style.top=d+"px",r.style.bottom="",i.isTopdown=!0),r.style.display="";var u=e.left;u+r.offsetWidth>a&&(u=a-r.offsetWidth),r.style.left=u+"px",this._signal("show"),o=null,i.isOpen=!0},i.goTo=function(e){var t=this.getRow(),i=this.session.getLength()-1;switch(e){case"up":t=t<=0?i:t-1;break;case"down":t=t>=i?-1:t+1;break;case"start":t=0;break;case"end":t=i}this.setRow(t)},i.getTextLeftOffset=function(){return this.$borderSize+this.renderer.$padding+this.$imageSize},i.$imageSize=0,i.$borderSize=1,i},t.$singleLineEditor=c})),ace.define("ace/autocomplete/util",["require","exports","module"],(function(e,t,i){"use strict";t.parForEach=function(e,t,i){var n=0,o=e.length;0===o&&i();for(var r=0;r=0&&i.test(e[r]);r--)o.push(e[r]);return o.reverse().join("")},t.retrieveFollowingIdentifier=function(e,t,i){i=i||n;for(var o=[],r=t;rthis.filterText&&0===e.lastIndexOf(this.filterText,0))var t=this.filtered;else t=this.all;this.filterText=e,t=(t=this.filterCompletions(t,this.filterText)).sort((function(e,t){return t.exactMatch-e.exactMatch||t.$score-e.$score||(e.caption||e.value).localeCompare(t.caption||t.value)}));var i=null;t=t.filter((function(e){var t=e.snippet||e.caption||e.value;return t!==i&&(i=t,!0)})),this.filtered=t},this.filterCompletions=function(e,t){var i=[],n=t.toUpperCase(),o=t.toLowerCase();e:for(var r,s=0;r=e[s];s++){var a=r.caption||r.value||r.snippet;if(a){var l,c,d=-1,u=0,h=0;if(this.exactMatch){if(t!==a.substr(0,t.length))continue e}else{var p=a.toLowerCase().indexOf(o);if(p>-1)h=p;else for(var f=0;f=0&&(m<0||g0&&(-1===d&&(h+=10),h+=c,u|=1<",s.escapeHTML(e.caption),"","
",s.escapeHTML(d(e.snippet))].join(""))}},h=[u,l,c];t.setCompleters=function(e){h.length=0,e&&h.push.apply(h,e)},t.addCompleter=function(e){h.push(e)},t.textCompleter=l,t.keyWordCompleter=c,t.snippetCompleter=u;var p={name:"expandSnippet",exec:function(e){return n.expandWithTab(e)},bindKey:"Tab"},f=function(e,t){g(t.session.$mode)},g=function(e){"string"==typeof e&&(e=r.$modes[e]),e&&(n.files||(n.files={}),m(e.$id,e.snippetFileId),e.modes&&e.modes.forEach(g))},m=function(e,t){t&&e&&!n.files[e]&&(n.files[e]={},r.loadModule(t,(function(t){t&&(n.files[e]=t,!t.snippets&&t.snippetText&&(t.snippets=n.parseSnippetFile(t.snippetText)),n.register(t.snippets||[],t.scope),t.includeScopes&&(n.snippetMap[t.scope].includeScopes=t.includeScopes,t.includeScopes.forEach((function(e){g("ace/mode/"+e)}))))})))},A=function(e){var t=e.editor,i=t.completer&&t.completer.activated;if("backspace"===e.command.name)i&&!a.getCompletionPrefix(t)&&t.completer.detach();else if("insertstring"===e.command.name&&a.getCompletionPrefix(t)&&!i){var n=o.for(t);n.autoInsert=!1,n.showPopup(t)}},b=e("../editor").Editor;e("../config").defineOptions(b.prototype,"editor",{enableBasicAutocompletion:{set:function(e){e?(this.completers||(this.completers=Array.isArray(e)?e:h),this.commands.addCommand(o.startCommand)):this.commands.removeCommand(o.startCommand)},value:!1},enableLiveAutocompletion:{set:function(e){e?(this.completers||(this.completers=Array.isArray(e)?e:h),this.commands.on("afterExec",A)):this.commands.removeListener("afterExec",A)},value:!1},enableSnippets:{set:function(e){e?(this.commands.addCommand(p),this.on("changeMode",f),f(0,this)):(this.commands.removeCommand(p),this.off("changeMode",f))},value:!1}})})),ace.require(["ace/ext/language_tools"],(function(t){e&&(e.exports=t)}))},66245:(e,t,i)=>{ace.config.setModuleUrl("ace/ext/beautify",i(94277)),ace.config.setModuleUrl("ace/ext/code_lens",i(14113)),ace.config.setModuleUrl("ace/ext/elastic_tabstops_lite",i(81334)),ace.config.setModuleUrl("ace/ext/emmet",i(59503)),ace.config.setModuleUrl("ace/ext/error_marker",i(83823)),ace.config.setModuleUrl("ace/ext/hardwrap",i(83526)),ace.config.setModuleUrl("ace/ext/keyboard_menu",i(8026)),ace.config.setModuleUrl("ace/ext/language_tools",i(75065)),ace.config.setModuleUrl("ace/ext/linking",i(74422)),ace.config.setModuleUrl("ace/ext/modelist",i(29624)),ace.config.setModuleUrl("ace/ext/options",i(7704)),ace.config.setModuleUrl("ace/ext/prompt",i(13172)),ace.config.setModuleUrl("ace/ext/rtl",i(71165)),ace.config.setModuleUrl("ace/ext/searchbox",i(7490)),ace.config.setModuleUrl("ace/ext/settings_menu",i(19159)),ace.config.setModuleUrl("ace/ext/spellcheck",i(44666)),ace.config.setModuleUrl("ace/ext/split",i(82489)),ace.config.setModuleUrl("ace/ext/static_highlight",i(46385)),ace.config.setModuleUrl("ace/ext/statusbar",i(13038)),ace.config.setModuleUrl("ace/ext/textarea",i(37097)),ace.config.setModuleUrl("ace/ext/themelist",i(63603)),ace.config.setModuleUrl("ace/ext/whitespace",i(95367)),ace.config.setModuleUrl("ace/keyboard/emacs",i(67863)),ace.config.setModuleUrl("ace/keyboard/sublime",i(87630)),ace.config.setModuleUrl("ace/keyboard/vim",i(31380)),ace.config.setModuleUrl("ace/keyboard/vscode",i(61366)),ace.config.setModuleUrl("ace/mode/abap",i(91108)),ace.config.setModuleUrl("ace/mode/abc",i(96293)),ace.config.setModuleUrl("ace/mode/actionscript",i(80029)),ace.config.setModuleUrl("ace/mode/ada",i(26375)),ace.config.setModuleUrl("ace/mode/alda",i(39254)),ace.config.setModuleUrl("ace/mode/apache_conf",i(87006)),ace.config.setModuleUrl("ace/mode/apex",i(9027)),ace.config.setModuleUrl("ace/mode/applescript",i(48032)),ace.config.setModuleUrl("ace/mode/aql",i(73398)),ace.config.setModuleUrl("ace/mode/asciidoc",i(23723)),ace.config.setModuleUrl("ace/mode/asl",i(54264)),ace.config.setModuleUrl("ace/mode/assembly_x86",i(42066)),ace.config.setModuleUrl("ace/mode/autohotkey",i(57382)),ace.config.setModuleUrl("ace/mode/batchfile",i(89323)),ace.config.setModuleUrl("ace/mode/c9search",i(51022)),ace.config.setModuleUrl("ace/mode/c_cpp",i(19783)),ace.config.setModuleUrl("ace/mode/cirru",i(73322)),ace.config.setModuleUrl("ace/mode/clojure",i(33068)),ace.config.setModuleUrl("ace/mode/cobol",i(97944)),ace.config.setModuleUrl("ace/mode/coffee",i(56816)),ace.config.setModuleUrl("ace/mode/coldfusion",i(14338)),ace.config.setModuleUrl("ace/mode/crystal",i(15209)),ace.config.setModuleUrl("ace/mode/csharp",i(86147)),ace.config.setModuleUrl("ace/mode/csound_document",i(54967)),ace.config.setModuleUrl("ace/mode/csound_orchestra",i(99681)),ace.config.setModuleUrl("ace/mode/csound_score",i(52988)),ace.config.setModuleUrl("ace/mode/csp",i(31951)),ace.config.setModuleUrl("ace/mode/css",i(31590)),ace.config.setModuleUrl("ace/mode/curly",i(61877)),ace.config.setModuleUrl("ace/mode/d",i(36473)),ace.config.setModuleUrl("ace/mode/dart",i(45029)),ace.config.setModuleUrl("ace/mode/diff",i(62070)),ace.config.setModuleUrl("ace/mode/django",i(68721)),ace.config.setModuleUrl("ace/mode/dockerfile",i(65655)),ace.config.setModuleUrl("ace/mode/dot",i(63030)),ace.config.setModuleUrl("ace/mode/drools",i(35838)),ace.config.setModuleUrl("ace/mode/edifact",i(90751)),ace.config.setModuleUrl("ace/mode/eiffel",i(82501)),ace.config.setModuleUrl("ace/mode/ejs",i(67593)),ace.config.setModuleUrl("ace/mode/elixir",i(16281)),ace.config.setModuleUrl("ace/mode/elm",i(46642)),ace.config.setModuleUrl("ace/mode/erlang",i(29514)),ace.config.setModuleUrl("ace/mode/forth",i(23429)),ace.config.setModuleUrl("ace/mode/fortran",i(95187)),ace.config.setModuleUrl("ace/mode/fsharp",i(61417)),ace.config.setModuleUrl("ace/mode/fsl",i(69306)),ace.config.setModuleUrl("ace/mode/ftl",i(72802)),ace.config.setModuleUrl("ace/mode/gcode",i(59901)),ace.config.setModuleUrl("ace/mode/gherkin",i(58135)),ace.config.setModuleUrl("ace/mode/gitignore",i(48100)),ace.config.setModuleUrl("ace/mode/glsl",i(51975)),ace.config.setModuleUrl("ace/mode/gobstones",i(95623)),ace.config.setModuleUrl("ace/mode/golang",i(40361)),ace.config.setModuleUrl("ace/mode/graphqlschema",i(2550)),ace.config.setModuleUrl("ace/mode/groovy",i(52501)),ace.config.setModuleUrl("ace/mode/haml",i(85521)),ace.config.setModuleUrl("ace/mode/handlebars",i(87605)),ace.config.setModuleUrl("ace/mode/haskell",i(94977)),ace.config.setModuleUrl("ace/mode/haskell_cabal",i(12681)),ace.config.setModuleUrl("ace/mode/haxe",i(70722)),ace.config.setModuleUrl("ace/mode/hjson",i(54217)),ace.config.setModuleUrl("ace/mode/html",i(70557)),ace.config.setModuleUrl("ace/mode/html_elixir",i(35050)),ace.config.setModuleUrl("ace/mode/html_ruby",i(36493)),ace.config.setModuleUrl("ace/mode/ini",i(41580)),ace.config.setModuleUrl("ace/mode/io",i(78019)),ace.config.setModuleUrl("ace/mode/ion",i(61226)),ace.config.setModuleUrl("ace/mode/jack",i(40618)),ace.config.setModuleUrl("ace/mode/jade",i(79461)),ace.config.setModuleUrl("ace/mode/java",i(17002)),ace.config.setModuleUrl("ace/mode/javascript",i(16358)),ace.config.setModuleUrl("ace/mode/json",i(92358)),ace.config.setModuleUrl("ace/mode/json5",i(57496)),ace.config.setModuleUrl("ace/mode/jsoniq",i(7905)),ace.config.setModuleUrl("ace/mode/jsp",i(34441)),ace.config.setModuleUrl("ace/mode/jssm",i(53703)),ace.config.setModuleUrl("ace/mode/jsx",i(61531)),ace.config.setModuleUrl("ace/mode/julia",i(23679)),ace.config.setModuleUrl("ace/mode/kotlin",i(42478)),ace.config.setModuleUrl("ace/mode/latex",i(62926)),ace.config.setModuleUrl("ace/mode/latte",i(15460)),ace.config.setModuleUrl("ace/mode/less",i(47051)),ace.config.setModuleUrl("ace/mode/liquid",i(43566)),ace.config.setModuleUrl("ace/mode/lisp",i(85992)),ace.config.setModuleUrl("ace/mode/livescript",i(66846)),ace.config.setModuleUrl("ace/mode/logiql",i(94158)),ace.config.setModuleUrl("ace/mode/logtalk",i(8164)),ace.config.setModuleUrl("ace/mode/lsl",i(97214)),ace.config.setModuleUrl("ace/mode/lua",i(99193)),ace.config.setModuleUrl("ace/mode/luapage",i(27036)),ace.config.setModuleUrl("ace/mode/lucene",i(61145)),ace.config.setModuleUrl("ace/mode/makefile",i(9724)),ace.config.setModuleUrl("ace/mode/markdown",i(23094)),ace.config.setModuleUrl("ace/mode/mask",i(19999)),ace.config.setModuleUrl("ace/mode/matlab",i(12562)),ace.config.setModuleUrl("ace/mode/maze",i(41995)),ace.config.setModuleUrl("ace/mode/mediawiki",i(52699)),ace.config.setModuleUrl("ace/mode/mel",i(71367)),ace.config.setModuleUrl("ace/mode/mips",i(50951)),ace.config.setModuleUrl("ace/mode/mixal",i(79636)),ace.config.setModuleUrl("ace/mode/mushcode",i(58279)),ace.config.setModuleUrl("ace/mode/mysql",i(5765)),ace.config.setModuleUrl("ace/mode/nginx",i(39258)),ace.config.setModuleUrl("ace/mode/nim",i(42583)),ace.config.setModuleUrl("ace/mode/nix",i(50149)),ace.config.setModuleUrl("ace/mode/nsis",i(2726)),ace.config.setModuleUrl("ace/mode/nunjucks",i(14009)),ace.config.setModuleUrl("ace/mode/objectivec",i(36877)),ace.config.setModuleUrl("ace/mode/ocaml",i(75599)),ace.config.setModuleUrl("ace/mode/partiql",i(26744)),ace.config.setModuleUrl("ace/mode/pascal",i(85396)),ace.config.setModuleUrl("ace/mode/perl",i(42893)),ace.config.setModuleUrl("ace/mode/pgsql",i(33665)),ace.config.setModuleUrl("ace/mode/php",i(89030)),ace.config.setModuleUrl("ace/mode/php_laravel_blade",i(17847)),ace.config.setModuleUrl("ace/mode/pig",i(18864)),ace.config.setModuleUrl("ace/mode/plain_text",i(7251)),ace.config.setModuleUrl("ace/mode/powershell",i(69933)),ace.config.setModuleUrl("ace/mode/praat",i(10647)),ace.config.setModuleUrl("ace/mode/prisma",i(68591)),ace.config.setModuleUrl("ace/mode/prolog",i(35661)),ace.config.setModuleUrl("ace/mode/properties",i(69423)),ace.config.setModuleUrl("ace/mode/protobuf",i(10857)),ace.config.setModuleUrl("ace/mode/puppet",i(97906)),ace.config.setModuleUrl("ace/mode/python",i(82198)),ace.config.setModuleUrl("ace/mode/qml",i(58200)),ace.config.setModuleUrl("ace/mode/r",i(9904)),ace.config.setModuleUrl("ace/mode/raku",i(52745)),ace.config.setModuleUrl("ace/mode/razor",i(297)),ace.config.setModuleUrl("ace/mode/rdoc",i(3475)),ace.config.setModuleUrl("ace/mode/red",i(18613)),ace.config.setModuleUrl("ace/mode/redshift",i(63643)),ace.config.setModuleUrl("ace/mode/rhtml",i(49288)),ace.config.setModuleUrl("ace/mode/rst",i(77374)),ace.config.setModuleUrl("ace/mode/ruby",i(2449)),ace.config.setModuleUrl("ace/mode/rust",i(19934)),ace.config.setModuleUrl("ace/mode/sac",i(24583)),ace.config.setModuleUrl("ace/mode/sass",i(1418)),ace.config.setModuleUrl("ace/mode/scad",i(14129)),ace.config.setModuleUrl("ace/mode/scala",i(26363)),ace.config.setModuleUrl("ace/mode/scheme",i(97439)),ace.config.setModuleUrl("ace/mode/scrypt",i(60832)),ace.config.setModuleUrl("ace/mode/scss",i(3887)),ace.config.setModuleUrl("ace/mode/sh",i(58971)),ace.config.setModuleUrl("ace/mode/sjs",i(50641)),ace.config.setModuleUrl("ace/mode/slim",i(66774)),ace.config.setModuleUrl("ace/mode/smarty",i(70726)),ace.config.setModuleUrl("ace/mode/smithy",i(13378)),ace.config.setModuleUrl("ace/mode/snippets",i(31033)),ace.config.setModuleUrl("ace/mode/soy_template",i(16178)),ace.config.setModuleUrl("ace/mode/space",i(3434)),ace.config.setModuleUrl("ace/mode/sparql",i(19366)),ace.config.setModuleUrl("ace/mode/sql",i(64117)),ace.config.setModuleUrl("ace/mode/sqlserver",i(26979)),ace.config.setModuleUrl("ace/mode/stylus",i(7945)),ace.config.setModuleUrl("ace/mode/svg",i(93890)),ace.config.setModuleUrl("ace/mode/swift",i(94928)),ace.config.setModuleUrl("ace/mode/tcl",i(35545)),ace.config.setModuleUrl("ace/mode/terraform",i(4806)),ace.config.setModuleUrl("ace/mode/tex",i(50965)),ace.config.setModuleUrl("ace/mode/text",i(58322)),ace.config.setModuleUrl("ace/mode/textile",i(16626)),ace.config.setModuleUrl("ace/mode/toml",i(72363)),ace.config.setModuleUrl("ace/mode/tsx",i(53930)),ace.config.setModuleUrl("ace/mode/turtle",i(64205)),ace.config.setModuleUrl("ace/mode/twig",i(58488)),ace.config.setModuleUrl("ace/mode/typescript",i(61947)),ace.config.setModuleUrl("ace/mode/vala",i(99897)),ace.config.setModuleUrl("ace/mode/vbscript",i(46405)),ace.config.setModuleUrl("ace/mode/velocity",i(45794)),ace.config.setModuleUrl("ace/mode/verilog",i(89010)),ace.config.setModuleUrl("ace/mode/vhdl",i(7535)),ace.config.setModuleUrl("ace/mode/visualforce",i(27109)),ace.config.setModuleUrl("ace/mode/wollok",i(69601)),ace.config.setModuleUrl("ace/mode/xml",i(13889)),ace.config.setModuleUrl("ace/mode/xquery",i(42317)),ace.config.setModuleUrl("ace/mode/yaml",i(80577)),ace.config.setModuleUrl("ace/mode/zeek",i(37154)),ace.config.setModuleUrl("ace/theme/ambiance",i(29274)),ace.config.setModuleUrl("ace/theme/chaos",i(19647)),ace.config.setModuleUrl("ace/theme/chrome",i(82434)),ace.config.setModuleUrl("ace/theme/clouds",i(82776)),ace.config.setModuleUrl("ace/theme/clouds_midnight",i(98557)),ace.config.setModuleUrl("ace/theme/cobalt",i(37479)),ace.config.setModuleUrl("ace/theme/crimson_editor",i(99204)),ace.config.setModuleUrl("ace/theme/dawn",i(77877)),ace.config.setModuleUrl("ace/theme/dracula",i(35056)),ace.config.setModuleUrl("ace/theme/dreamweaver",i(64262)),ace.config.setModuleUrl("ace/theme/eclipse",i(36529)),ace.config.setModuleUrl("ace/theme/github",i(98437)),ace.config.setModuleUrl("ace/theme/gob",i(7722)),ace.config.setModuleUrl("ace/theme/gruvbox",i(79021)),ace.config.setModuleUrl("ace/theme/idle_fingers",i(21197)),ace.config.setModuleUrl("ace/theme/iplastic",i(77669)),ace.config.setModuleUrl("ace/theme/katzenmilch",i(37533)),ace.config.setModuleUrl("ace/theme/kr_theme",i(45626)),ace.config.setModuleUrl("ace/theme/kuroir",i(46527)),ace.config.setModuleUrl("ace/theme/merbivore",i(7406)),ace.config.setModuleUrl("ace/theme/merbivore_soft",i(38267)),ace.config.setModuleUrl("ace/theme/mono_industrial",i(8845)),ace.config.setModuleUrl("ace/theme/monokai",i(44834)),ace.config.setModuleUrl("ace/theme/nord_dark",i(95498)),ace.config.setModuleUrl("ace/theme/one_dark",i(9061)),ace.config.setModuleUrl("ace/theme/pastel_on_dark",i(79580)),ace.config.setModuleUrl("ace/theme/solarized_dark",i(51502)),ace.config.setModuleUrl("ace/theme/solarized_light",i(82266)),ace.config.setModuleUrl("ace/theme/sqlserver",i(37779)),ace.config.setModuleUrl("ace/theme/terminal",i(35880)),ace.config.setModuleUrl("ace/theme/textmate",i(36722)),ace.config.setModuleUrl("ace/theme/tomorrow",i(76394)),ace.config.setModuleUrl("ace/theme/tomorrow_night",i(10754)),ace.config.setModuleUrl("ace/theme/tomorrow_night_blue",i(24174)),ace.config.setModuleUrl("ace/theme/tomorrow_night_bright",i(11911)),ace.config.setModuleUrl("ace/theme/tomorrow_night_eighties",i(52334)),ace.config.setModuleUrl("ace/theme/twilight",i(24852)),ace.config.setModuleUrl("ace/theme/vibrant_ink",i(13840)),ace.config.setModuleUrl("ace/theme/xcode",i(44884)),ace.config.setModuleUrl("ace/mode/base_worker",i(74474)),ace.config.setModuleUrl("ace/mode/coffee_worker",i(27067)),ace.config.setModuleUrl("ace/mode/css_worker",i(33948)),ace.config.setModuleUrl("ace/mode/html_worker",i(20425)),ace.config.setModuleUrl("ace/mode/javascript_worker",i(21836)),ace.config.setModuleUrl("ace/mode/json_worker",i(36881)),ace.config.setModuleUrl("ace/mode/lua_worker",i(83439)),ace.config.setModuleUrl("ace/mode/php_worker",i(14984)),ace.config.setModuleUrl("ace/mode/xml_worker",i(52980)),ace.config.setModuleUrl("ace/mode/xquery_worker",i(72426)),ace.config.setModuleUrl("ace/snippets/abap",i(26504)),ace.config.setModuleUrl("ace/snippets/abc",i(55240)),ace.config.setModuleUrl("ace/snippets/actionscript",i(66816)),ace.config.setModuleUrl("ace/snippets/ada",i(78332)),ace.config.setModuleUrl("ace/snippets/alda",i(44971)),ace.config.setModuleUrl("ace/snippets/apache_conf",i(41072)),ace.config.setModuleUrl("ace/snippets/apex",i(42820)),ace.config.setModuleUrl("ace/snippets/applescript",i(68089)),ace.config.setModuleUrl("ace/snippets/aql",i(92688)),ace.config.setModuleUrl("ace/snippets/asciidoc",i(92950)),ace.config.setModuleUrl("ace/snippets/asl",i(3092)),ace.config.setModuleUrl("ace/snippets/assembly_x86",i(89780)),ace.config.setModuleUrl("ace/snippets/autohotkey",i(91763)),ace.config.setModuleUrl("ace/snippets/batchfile",i(61743)),ace.config.setModuleUrl("ace/snippets/c9search",i(52545)),ace.config.setModuleUrl("ace/snippets/c_cpp",i(18396)),ace.config.setModuleUrl("ace/snippets/cirru",i(32343)),ace.config.setModuleUrl("ace/snippets/clojure",i(25860)),ace.config.setModuleUrl("ace/snippets/cobol",i(74623)),ace.config.setModuleUrl("ace/snippets/coffee",i(39037)),ace.config.setModuleUrl("ace/snippets/coldfusion",i(25581)),ace.config.setModuleUrl("ace/snippets/crystal",i(84039)),ace.config.setModuleUrl("ace/snippets/csharp",i(23248)),ace.config.setModuleUrl("ace/snippets/csound_document",i(80428)),ace.config.setModuleUrl("ace/snippets/csound_orchestra",i(55823)),ace.config.setModuleUrl("ace/snippets/csound_score",i(3731)),ace.config.setModuleUrl("ace/snippets/csp",i(26557)),ace.config.setModuleUrl("ace/snippets/css",i(27675)),ace.config.setModuleUrl("ace/snippets/curly",i(63790)),ace.config.setModuleUrl("ace/snippets/d",i(24689)),ace.config.setModuleUrl("ace/snippets/dart",i(22505)),ace.config.setModuleUrl("ace/snippets/diff",i(39822)),ace.config.setModuleUrl("ace/snippets/django",i(67986)),ace.config.setModuleUrl("ace/snippets/dockerfile",i(59212)),ace.config.setModuleUrl("ace/snippets/dot",i(48191)),ace.config.setModuleUrl("ace/snippets/drools",i(7879)),ace.config.setModuleUrl("ace/snippets/edifact",i(53737)),ace.config.setModuleUrl("ace/snippets/eiffel",i(9067)),ace.config.setModuleUrl("ace/snippets/ejs",i(50147)),ace.config.setModuleUrl("ace/snippets/elixir",i(61883)),ace.config.setModuleUrl("ace/snippets/elm",i(38572)),ace.config.setModuleUrl("ace/snippets/erlang",i(54135)),ace.config.setModuleUrl("ace/snippets/forth",i(43174)),ace.config.setModuleUrl("ace/snippets/fortran",i(92539)),ace.config.setModuleUrl("ace/snippets/fsharp",i(55250)),ace.config.setModuleUrl("ace/snippets/fsl",i(70490)),ace.config.setModuleUrl("ace/snippets/ftl",i(51805)),ace.config.setModuleUrl("ace/snippets/gcode",i(66143)),ace.config.setModuleUrl("ace/snippets/gherkin",i(96850)),ace.config.setModuleUrl("ace/snippets/gitignore",i(50957)),ace.config.setModuleUrl("ace/snippets/glsl",i(55154)),ace.config.setModuleUrl("ace/snippets/gobstones",i(61523)),ace.config.setModuleUrl("ace/snippets/golang",i(17480)),ace.config.setModuleUrl("ace/snippets/graphqlschema",i(57570)),ace.config.setModuleUrl("ace/snippets/groovy",i(9179)),ace.config.setModuleUrl("ace/snippets/haml",i(38639)),ace.config.setModuleUrl("ace/snippets/handlebars",i(38096)),ace.config.setModuleUrl("ace/snippets/haskell",i(81889)),ace.config.setModuleUrl("ace/snippets/haskell_cabal",i(19478)),ace.config.setModuleUrl("ace/snippets/haxe",i(56639)),ace.config.setModuleUrl("ace/snippets/hjson",i(46754)),ace.config.setModuleUrl("ace/snippets/html",i(14349)),ace.config.setModuleUrl("ace/snippets/html_elixir",i(57204)),ace.config.setModuleUrl("ace/snippets/html_ruby",i(62473)),ace.config.setModuleUrl("ace/snippets/ini",i(22699)),ace.config.setModuleUrl("ace/snippets/io",i(60380)),ace.config.setModuleUrl("ace/snippets/ion",i(3785)),ace.config.setModuleUrl("ace/snippets/jack",i(56051)),ace.config.setModuleUrl("ace/snippets/jade",i(63795)),ace.config.setModuleUrl("ace/snippets/java",i(21666)),ace.config.setModuleUrl("ace/snippets/javascript",i(96014)),ace.config.setModuleUrl("ace/snippets/json",i(83992)),ace.config.setModuleUrl("ace/snippets/json5",i(17841)),ace.config.setModuleUrl("ace/snippets/jsoniq",i(83129)),ace.config.setModuleUrl("ace/snippets/jsp",i(68025)),ace.config.setModuleUrl("ace/snippets/jssm",i(46087)),ace.config.setModuleUrl("ace/snippets/jsx",i(66818)),ace.config.setModuleUrl("ace/snippets/julia",i(28327)),ace.config.setModuleUrl("ace/snippets/kotlin",i(25009)),ace.config.setModuleUrl("ace/snippets/latex",i(33568)),ace.config.setModuleUrl("ace/snippets/latte",i(71353)),ace.config.setModuleUrl("ace/snippets/less",i(94914)),ace.config.setModuleUrl("ace/snippets/liquid",i(98784)),ace.config.setModuleUrl("ace/snippets/lisp",i(41650)),ace.config.setModuleUrl("ace/snippets/livescript",i(84301)),ace.config.setModuleUrl("ace/snippets/logiql",i(21159)),ace.config.setModuleUrl("ace/snippets/logtalk",i(19900)),ace.config.setModuleUrl("ace/snippets/lsl",i(77584)),ace.config.setModuleUrl("ace/snippets/lua",i(26610)),ace.config.setModuleUrl("ace/snippets/luapage",i(43273)),ace.config.setModuleUrl("ace/snippets/lucene",i(88332)),ace.config.setModuleUrl("ace/snippets/makefile",i(8536)),ace.config.setModuleUrl("ace/snippets/markdown",i(40456)),ace.config.setModuleUrl("ace/snippets/mask",i(13946)),ace.config.setModuleUrl("ace/snippets/matlab",i(53801)),ace.config.setModuleUrl("ace/snippets/maze",i(4977)),ace.config.setModuleUrl("ace/snippets/mediawiki",i(40782)),ace.config.setModuleUrl("ace/snippets/mel",i(56622)),ace.config.setModuleUrl("ace/snippets/mips",i(53899)),ace.config.setModuleUrl("ace/snippets/mixal",i(75072)),ace.config.setModuleUrl("ace/snippets/mushcode",i(28719)),ace.config.setModuleUrl("ace/snippets/mysql",i(50239)),ace.config.setModuleUrl("ace/snippets/nginx",i(45591)),ace.config.setModuleUrl("ace/snippets/nim",i(31053)),ace.config.setModuleUrl("ace/snippets/nix",i(68002)),ace.config.setModuleUrl("ace/snippets/nsis",i(60186)),ace.config.setModuleUrl("ace/snippets/nunjucks",i(8262)),ace.config.setModuleUrl("ace/snippets/objectivec",i(14457)),ace.config.setModuleUrl("ace/snippets/ocaml",i(11506)),ace.config.setModuleUrl("ace/snippets/partiql",i(69287)),ace.config.setModuleUrl("ace/snippets/pascal",i(83935)),ace.config.setModuleUrl("ace/snippets/perl",i(89018)),ace.config.setModuleUrl("ace/snippets/pgsql",i(86066)),ace.config.setModuleUrl("ace/snippets/php",i(6132)),ace.config.setModuleUrl("ace/snippets/php_laravel_blade",i(64543)),ace.config.setModuleUrl("ace/snippets/pig",i(11105)),ace.config.setModuleUrl("ace/snippets/plain_text",i(55873)),ace.config.setModuleUrl("ace/snippets/powershell",i(6214)),ace.config.setModuleUrl("ace/snippets/praat",i(82730)),ace.config.setModuleUrl("ace/snippets/prisma",i(60835)),ace.config.setModuleUrl("ace/snippets/prolog",i(80682)),ace.config.setModuleUrl("ace/snippets/properties",i(22554)),ace.config.setModuleUrl("ace/snippets/protobuf",i(39444)),ace.config.setModuleUrl("ace/snippets/puppet",i(58157)),ace.config.setModuleUrl("ace/snippets/python",i(87223)),ace.config.setModuleUrl("ace/snippets/qml",i(94257)),ace.config.setModuleUrl("ace/snippets/r",i(48119)),ace.config.setModuleUrl("ace/snippets/raku",i(19949)),ace.config.setModuleUrl("ace/snippets/razor",i(16048)),ace.config.setModuleUrl("ace/snippets/rdoc",i(82453)),ace.config.setModuleUrl("ace/snippets/red",i(43448)),ace.config.setModuleUrl("ace/snippets/redshift",i(15186)),ace.config.setModuleUrl("ace/snippets/rhtml",i(88298)),ace.config.setModuleUrl("ace/snippets/rst",i(51573)),ace.config.setModuleUrl("ace/snippets/ruby",i(1602)),ace.config.setModuleUrl("ace/snippets/rust",i(94334)),ace.config.setModuleUrl("ace/snippets/sac",i(18999)),ace.config.setModuleUrl("ace/snippets/sass",i(8225)),ace.config.setModuleUrl("ace/snippets/scad",i(72551)),ace.config.setModuleUrl("ace/snippets/scala",i(81545)),ace.config.setModuleUrl("ace/snippets/scheme",i(61005)),ace.config.setModuleUrl("ace/snippets/scrypt",i(47544)),ace.config.setModuleUrl("ace/snippets/scss",i(79202)),ace.config.setModuleUrl("ace/snippets/sh",i(9032)),ace.config.setModuleUrl("ace/snippets/sjs",i(32257)),ace.config.setModuleUrl("ace/snippets/slim",i(98051)),ace.config.setModuleUrl("ace/snippets/smarty",i(87393)),ace.config.setModuleUrl("ace/snippets/smithy",i(66154)),ace.config.setModuleUrl("ace/snippets/snippets",i(49495)),ace.config.setModuleUrl("ace/snippets/soy_template",i(25791)),ace.config.setModuleUrl("ace/snippets/space",i(29601)),ace.config.setModuleUrl("ace/snippets/sparql",i(10920)),ace.config.setModuleUrl("ace/snippets/sql",i(6848)),ace.config.setModuleUrl("ace/snippets/sqlserver",i(84980)),ace.config.setModuleUrl("ace/snippets/stylus",i(22147)),ace.config.setModuleUrl("ace/snippets/svg",i(43193)),ace.config.setModuleUrl("ace/snippets/swift",i(10655)),ace.config.setModuleUrl("ace/snippets/tcl",i(52854)),ace.config.setModuleUrl("ace/snippets/terraform",i(87161)),ace.config.setModuleUrl("ace/snippets/tex",i(28337)),ace.config.setModuleUrl("ace/snippets/text",i(83564)),ace.config.setModuleUrl("ace/snippets/textile",i(80673)),ace.config.setModuleUrl("ace/snippets/toml",i(74944)),ace.config.setModuleUrl("ace/snippets/tsx",i(32167)),ace.config.setModuleUrl("ace/snippets/turtle",i(69459)),ace.config.setModuleUrl("ace/snippets/twig",i(68967)),ace.config.setModuleUrl("ace/snippets/typescript",i(48052)),ace.config.setModuleUrl("ace/snippets/vala",i(24675)),ace.config.setModuleUrl("ace/snippets/vbscript",i(33118)),ace.config.setModuleUrl("ace/snippets/velocity",i(54173)),ace.config.setModuleUrl("ace/snippets/verilog",i(90283)),ace.config.setModuleUrl("ace/snippets/vhdl",i(52785)),ace.config.setModuleUrl("ace/snippets/visualforce",i(63104)),ace.config.setModuleUrl("ace/snippets/wollok",i(62061)),ace.config.setModuleUrl("ace/snippets/xml",i(87872)),ace.config.setModuleUrl("ace/snippets/xquery",i(49873)),ace.config.setModuleUrl("ace/snippets/yaml",i(10172)),ace.config.setModuleUrl("ace/snippets/zeek",i(44206))},85169:(e,t,i)=>{"use strict";i.r(t),i.d(t,{Alert:()=>bt,Button:()=>Ct,Carousel:()=>$t,Collapse:()=>Vt,Dropdown:()=>hi,Modal:()=>Fi,Offcanvas:()=>Vi,Popover:()=>bn,ScrollSpy:()=>En,Tab:()=>Rn,Toast:()=>Nn,Tooltip:()=>fn});var n={};i.r(n),i.d(n,{afterMain:()=>x,afterRead:()=>C,afterWrite:()=>k,applyStyles:()=>L,arrow:()=>Q,auto:()=>l,basePlacements:()=>c,beforeMain:()=>y,beforeRead:()=>b,beforeWrite:()=>_,bottom:()=>r,clippingParents:()=>h,computeStyles:()=>te,createPopper:()=>Be,createPopperBase:()=>Me,createPopperLite:()=>Re,detectOverflow:()=>me,end:()=>u,eventListeners:()=>ne,flip:()=>Ae,hide:()=>Ce,left:()=>a,main:()=>w,modifierPhases:()=>S,offset:()=>ye,placements:()=>A,popper:()=>f,popperGenerator:()=>Te,popperOffsets:()=>we,preventOverflow:()=>xe,read:()=>v,reference:()=>g,right:()=>s,start:()=>d,top:()=>o,variationPlacements:()=>m,viewport:()=>p,write:()=>E});var o="top",r="bottom",s="right",a="left",l="auto",c=[o,r,s,a],d="start",u="end",h="clippingParents",p="viewport",f="popper",g="reference",m=c.reduce((function(e,t){return e.concat([t+"-"+d,t+"-"+u])}),[]),A=[].concat(c,[l]).reduce((function(e,t){return e.concat([t,t+"-"+d,t+"-"+u])}),[]),b="beforeRead",v="read",C="afterRead",y="beforeMain",w="main",x="afterMain",_="beforeWrite",E="write",k="afterWrite",S=[b,v,C,y,w,x,_,E,k];function T(e){return e?(e.nodeName||"").toLowerCase():null}function M(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function B(e){return e instanceof M(e).Element||e instanceof Element}function R(e){return e instanceof M(e).HTMLElement||e instanceof HTMLElement}function I(e){return"undefined"!=typeof ShadowRoot&&(e instanceof M(e).ShadowRoot||e instanceof ShadowRoot)}const L={name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var i=t.styles[e]||{},n=t.attributes[e]||{},o=t.elements[e];R(o)&&T(o)&&(Object.assign(o.style,i),Object.keys(n).forEach((function(e){var t=n[e];!1===t?o.removeAttribute(e):o.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,i={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,i.popper),t.styles=i,t.elements.arrow&&Object.assign(t.elements.arrow.style,i.arrow),function(){Object.keys(t.elements).forEach((function(e){var n=t.elements[e],o=t.attributes[e]||{},r=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:i[e]).reduce((function(e,t){return e[t]="",e}),{});R(n)&&T(n)&&(Object.assign(n.style,r),Object.keys(o).forEach((function(e){n.removeAttribute(e)})))}))}},requires:["computeStyles"]};function D(e){return e.split("-")[0]}var O=Math.max,$=Math.min,P=Math.round;function N(e,t){void 0===t&&(t=!1);var i=e.getBoundingClientRect(),n=1,o=1;if(R(e)&&t){var r=e.offsetHeight,s=e.offsetWidth;s>0&&(n=P(i.width)/s||1),r>0&&(o=P(i.height)/r||1)}return{width:i.width/n,height:i.height/o,top:i.top/o,right:i.right/n,bottom:i.bottom/o,left:i.left/n,x:i.left/n,y:i.top/o}}function F(e){var t=N(e),i=e.offsetWidth,n=e.offsetHeight;return Math.abs(t.width-i)<=1&&(i=t.width),Math.abs(t.height-n)<=1&&(n=t.height),{x:e.offsetLeft,y:e.offsetTop,width:i,height:n}}function U(e,t){var i=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(i&&I(i)){var n=t;do{if(n&&e.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function j(e){return M(e).getComputedStyle(e)}function W(e){return["table","td","th"].indexOf(T(e))>=0}function z(e){return((B(e)?e.ownerDocument:e.document)||window.document).documentElement}function H(e){return"html"===T(e)?e:e.assignedSlot||e.parentNode||(I(e)?e.host:null)||z(e)}function q(e){return R(e)&&"fixed"!==j(e).position?e.offsetParent:null}function V(e){for(var t=M(e),i=q(e);i&&W(i)&&"static"===j(i).position;)i=q(i);return i&&("html"===T(i)||"body"===T(i)&&"static"===j(i).position)?t:i||function(e){var t=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&R(e)&&"fixed"===j(e).position)return null;var i=H(e);for(I(i)&&(i=i.host);R(i)&&["html","body"].indexOf(T(i))<0;){var n=j(i);if("none"!==n.transform||"none"!==n.perspective||"paint"===n.contain||-1!==["transform","perspective"].indexOf(n.willChange)||t&&"filter"===n.willChange||t&&n.filter&&"none"!==n.filter)return i;i=i.parentNode}return null}(e)||t}function G(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function Y(e,t,i){return O(e,$(t,i))}function X(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function K(e,t){return t.reduce((function(t,i){return t[i]=e,t}),{})}const Q={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,i=e.state,n=e.name,l=e.options,d=i.elements.arrow,u=i.modifiersData.popperOffsets,h=D(i.placement),p=G(h),f=[a,s].indexOf(h)>=0?"height":"width";if(d&&u){var g=function(e,t){return X("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:K(e,c))}(l.padding,i),m=F(d),A="y"===p?o:a,b="y"===p?r:s,v=i.rects.reference[f]+i.rects.reference[p]-u[p]-i.rects.popper[f],C=u[p]-i.rects.reference[p],y=V(d),w=y?"y"===p?y.clientHeight||0:y.clientWidth||0:0,x=v/2-C/2,_=g[A],E=w-m[f]-g[b],k=w/2-m[f]/2+x,S=Y(_,k,E),T=p;i.modifiersData[n]=((t={})[T]=S,t.centerOffset=S-k,t)}},effect:function(e){var t=e.state,i=e.options.element,n=void 0===i?"[data-popper-arrow]":i;null!=n&&("string"!=typeof n||(n=t.elements.popper.querySelector(n)))&&U(t.elements.popper,n)&&(t.elements.arrow=n)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Z(e){return e.split("-")[1]}var J={top:"auto",right:"auto",bottom:"auto",left:"auto"};function ee(e){var t,i=e.popper,n=e.popperRect,l=e.placement,c=e.variation,d=e.offsets,h=e.position,p=e.gpuAcceleration,f=e.adaptive,g=e.roundOffsets,m=e.isFixed,A=d.x,b=void 0===A?0:A,v=d.y,C=void 0===v?0:v,y="function"==typeof g?g({x:b,y:C}):{x:b,y:C};b=y.x,C=y.y;var w=d.hasOwnProperty("x"),x=d.hasOwnProperty("y"),_=a,E=o,k=window;if(f){var S=V(i),T="clientHeight",B="clientWidth";S===M(i)&&"static"!==j(S=z(i)).position&&"absolute"===h&&(T="scrollHeight",B="scrollWidth"),(l===o||(l===a||l===s)&&c===u)&&(E=r,C-=(m&&S===k&&k.visualViewport?k.visualViewport.height:S[T])-n.height,C*=p?1:-1),l!==a&&(l!==o&&l!==r||c!==u)||(_=s,b-=(m&&S===k&&k.visualViewport?k.visualViewport.width:S[B])-n.width,b*=p?1:-1)}var R,I=Object.assign({position:h},f&&J),L=!0===g?function(e){var t=e.x,i=e.y,n=window.devicePixelRatio||1;return{x:P(t*n)/n||0,y:P(i*n)/n||0}}({x:b,y:C}):{x:b,y:C};return b=L.x,C=L.y,p?Object.assign({},I,((R={})[E]=x?"0":"",R[_]=w?"0":"",R.transform=(k.devicePixelRatio||1)<=1?"translate("+b+"px, "+C+"px)":"translate3d("+b+"px, "+C+"px, 0)",R)):Object.assign({},I,((t={})[E]=x?C+"px":"",t[_]=w?b+"px":"",t.transform="",t))}const te={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,i=e.options,n=i.gpuAcceleration,o=void 0===n||n,r=i.adaptive,s=void 0===r||r,a=i.roundOffsets,l=void 0===a||a,c={placement:D(t.placement),variation:Z(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:o,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,ee(Object.assign({},c,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:s,roundOffsets:l})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,ee(Object.assign({},c,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}};var ie={passive:!0};const ne={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var t=e.state,i=e.instance,n=e.options,o=n.scroll,r=void 0===o||o,s=n.resize,a=void 0===s||s,l=M(t.elements.popper),c=[].concat(t.scrollParents.reference,t.scrollParents.popper);return r&&c.forEach((function(e){e.addEventListener("scroll",i.update,ie)})),a&&l.addEventListener("resize",i.update,ie),function(){r&&c.forEach((function(e){e.removeEventListener("scroll",i.update,ie)})),a&&l.removeEventListener("resize",i.update,ie)}},data:{}};var oe={left:"right",right:"left",bottom:"top",top:"bottom"};function re(e){return e.replace(/left|right|bottom|top/g,(function(e){return oe[e]}))}var se={start:"end",end:"start"};function ae(e){return e.replace(/start|end/g,(function(e){return se[e]}))}function le(e){var t=M(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function ce(e){return N(z(e)).left+le(e).scrollLeft}function de(e){var t=j(e),i=t.overflow,n=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(i+o+n)}function ue(e){return["html","body","#document"].indexOf(T(e))>=0?e.ownerDocument.body:R(e)&&de(e)?e:ue(H(e))}function he(e,t){var i;void 0===t&&(t=[]);var n=ue(e),o=n===(null==(i=e.ownerDocument)?void 0:i.body),r=M(n),s=o?[r].concat(r.visualViewport||[],de(n)?n:[]):n,a=t.concat(s);return o?a:a.concat(he(H(s)))}function pe(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function fe(e,t){return t===p?pe(function(e){var t=M(e),i=z(e),n=t.visualViewport,o=i.clientWidth,r=i.clientHeight,s=0,a=0;return n&&(o=n.width,r=n.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(s=n.offsetLeft,a=n.offsetTop)),{width:o,height:r,x:s+ce(e),y:a}}(e)):B(t)?function(e){var t=N(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}(t):pe(function(e){var t,i=z(e),n=le(e),o=null==(t=e.ownerDocument)?void 0:t.body,r=O(i.scrollWidth,i.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),s=O(i.scrollHeight,i.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),a=-n.scrollLeft+ce(e),l=-n.scrollTop;return"rtl"===j(o||i).direction&&(a+=O(i.clientWidth,o?o.clientWidth:0)-r),{width:r,height:s,x:a,y:l}}(z(e)))}function ge(e){var t,i=e.reference,n=e.element,l=e.placement,c=l?D(l):null,h=l?Z(l):null,p=i.x+i.width/2-n.width/2,f=i.y+i.height/2-n.height/2;switch(c){case o:t={x:p,y:i.y-n.height};break;case r:t={x:p,y:i.y+i.height};break;case s:t={x:i.x+i.width,y:f};break;case a:t={x:i.x-n.width,y:f};break;default:t={x:i.x,y:i.y}}var g=c?G(c):null;if(null!=g){var m="y"===g?"height":"width";switch(h){case d:t[g]=t[g]-(i[m]/2-n[m]/2);break;case u:t[g]=t[g]+(i[m]/2-n[m]/2)}}return t}function me(e,t){void 0===t&&(t={});var i=t,n=i.placement,a=void 0===n?e.placement:n,l=i.boundary,d=void 0===l?h:l,u=i.rootBoundary,m=void 0===u?p:u,A=i.elementContext,b=void 0===A?f:A,v=i.altBoundary,C=void 0!==v&&v,y=i.padding,w=void 0===y?0:y,x=X("number"!=typeof w?w:K(w,c)),_=b===f?g:f,E=e.rects.popper,k=e.elements[C?_:b],S=function(e,t,i){var n="clippingParents"===t?function(e){var t=he(H(e)),i=["absolute","fixed"].indexOf(j(e).position)>=0&&R(e)?V(e):e;return B(i)?t.filter((function(e){return B(e)&&U(e,i)&&"body"!==T(e)})):[]}(e):[].concat(t),o=[].concat(n,[i]),r=o[0],s=o.reduce((function(t,i){var n=fe(e,i);return t.top=O(n.top,t.top),t.right=$(n.right,t.right),t.bottom=$(n.bottom,t.bottom),t.left=O(n.left,t.left),t}),fe(e,r));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}(B(k)?k:k.contextElement||z(e.elements.popper),d,m),M=N(e.elements.reference),I=ge({reference:M,element:E,strategy:"absolute",placement:a}),L=pe(Object.assign({},E,I)),D=b===f?L:M,P={top:S.top-D.top+x.top,bottom:D.bottom-S.bottom+x.bottom,left:S.left-D.left+x.left,right:D.right-S.right+x.right},F=e.modifiersData.offset;if(b===f&&F){var W=F[a];Object.keys(P).forEach((function(e){var t=[s,r].indexOf(e)>=0?1:-1,i=[o,r].indexOf(e)>=0?"y":"x";P[e]+=W[i]*t}))}return P}const Ae={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,i=e.options,n=e.name;if(!t.modifiersData[n]._skip){for(var u=i.mainAxis,h=void 0===u||u,p=i.altAxis,f=void 0===p||p,g=i.fallbackPlacements,b=i.padding,v=i.boundary,C=i.rootBoundary,y=i.altBoundary,w=i.flipVariations,x=void 0===w||w,_=i.allowedAutoPlacements,E=t.options.placement,k=D(E),S=g||(k!==E&&x?function(e){if(D(e)===l)return[];var t=re(e);return[ae(e),t,ae(t)]}(E):[re(E)]),T=[E].concat(S).reduce((function(e,i){return e.concat(D(i)===l?function(e,t){void 0===t&&(t={});var i=t,n=i.placement,o=i.boundary,r=i.rootBoundary,s=i.padding,a=i.flipVariations,l=i.allowedAutoPlacements,d=void 0===l?A:l,u=Z(n),h=u?a?m:m.filter((function(e){return Z(e)===u})):c,p=h.filter((function(e){return d.indexOf(e)>=0}));0===p.length&&(p=h);var f=p.reduce((function(t,i){return t[i]=me(e,{placement:i,boundary:o,rootBoundary:r,padding:s})[D(i)],t}),{});return Object.keys(f).sort((function(e,t){return f[e]-f[t]}))}(t,{placement:i,boundary:v,rootBoundary:C,padding:b,flipVariations:x,allowedAutoPlacements:_}):i)}),[]),M=t.rects.reference,B=t.rects.popper,R=new Map,I=!0,L=T[0],O=0;O=0,U=F?"width":"height",j=me(t,{placement:$,boundary:v,rootBoundary:C,altBoundary:y,padding:b}),W=F?N?s:a:N?r:o;M[U]>B[U]&&(W=re(W));var z=re(W),H=[];if(h&&H.push(j[P]<=0),f&&H.push(j[W]<=0,j[z]<=0),H.every((function(e){return e}))){L=$,I=!1;break}R.set($,H)}if(I)for(var q=function(e){var t=T.find((function(t){var i=R.get(t);if(i)return i.slice(0,e).every((function(e){return e}))}));if(t)return L=t,"break"},V=x?3:1;V>0&&"break"!==q(V);V--);t.placement!==L&&(t.modifiersData[n]._skip=!0,t.placement=L,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function be(e,t,i){return void 0===i&&(i={x:0,y:0}),{top:e.top-t.height-i.y,right:e.right-t.width+i.x,bottom:e.bottom-t.height+i.y,left:e.left-t.width-i.x}}function ve(e){return[o,s,r,a].some((function(t){return e[t]>=0}))}const Ce={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,i=e.name,n=t.rects.reference,o=t.rects.popper,r=t.modifiersData.preventOverflow,s=me(t,{elementContext:"reference"}),a=me(t,{altBoundary:!0}),l=be(s,n),c=be(a,o,r),d=ve(l),u=ve(c);t.modifiersData[i]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:d,hasPopperEscaped:u},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":d,"data-popper-escaped":u})}},ye={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,i=e.options,n=e.name,r=i.offset,l=void 0===r?[0,0]:r,c=A.reduce((function(e,i){return e[i]=function(e,t,i){var n=D(e),r=[a,o].indexOf(n)>=0?-1:1,l="function"==typeof i?i(Object.assign({},t,{placement:e})):i,c=l[0],d=l[1];return c=c||0,d=(d||0)*r,[a,s].indexOf(n)>=0?{x:d,y:c}:{x:c,y:d}}(i,t.rects,l),e}),{}),d=c[t.placement],u=d.x,h=d.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=u,t.modifiersData.popperOffsets.y+=h),t.modifiersData[n]=c}},we={name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,i=e.name;t.modifiersData[i]=ge({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})},data:{}},xe={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,i=e.options,n=e.name,l=i.mainAxis,c=void 0===l||l,u=i.altAxis,h=void 0!==u&&u,p=i.boundary,f=i.rootBoundary,g=i.altBoundary,m=i.padding,A=i.tether,b=void 0===A||A,v=i.tetherOffset,C=void 0===v?0:v,y=me(t,{boundary:p,rootBoundary:f,padding:m,altBoundary:g}),w=D(t.placement),x=Z(t.placement),_=!x,E=G(w),k="x"===E?"y":"x",S=t.modifiersData.popperOffsets,T=t.rects.reference,M=t.rects.popper,B="function"==typeof C?C(Object.assign({},t.rects,{placement:t.placement})):C,R="number"==typeof B?{mainAxis:B,altAxis:B}:Object.assign({mainAxis:0,altAxis:0},B),I=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,L={x:0,y:0};if(S){if(c){var P,N="y"===E?o:a,U="y"===E?r:s,j="y"===E?"height":"width",W=S[E],z=W+y[N],H=W-y[U],q=b?-M[j]/2:0,X=x===d?T[j]:M[j],K=x===d?-M[j]:-T[j],Q=t.elements.arrow,J=b&&Q?F(Q):{width:0,height:0},ee=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},te=ee[N],ie=ee[U],ne=Y(0,T[j],J[j]),oe=_?T[j]/2-q-ne-te-R.mainAxis:X-ne-te-R.mainAxis,re=_?-T[j]/2+q+ne+ie+R.mainAxis:K+ne+ie+R.mainAxis,se=t.elements.arrow&&V(t.elements.arrow),ae=se?"y"===E?se.clientTop||0:se.clientLeft||0:0,le=null!=(P=null==I?void 0:I[E])?P:0,ce=W+re-le,de=Y(b?$(z,W+oe-le-ae):z,W,b?O(H,ce):H);S[E]=de,L[E]=de-W}if(h){var ue,he="x"===E?o:a,pe="x"===E?r:s,fe=S[k],ge="y"===k?"height":"width",Ae=fe+y[he],be=fe-y[pe],ve=-1!==[o,a].indexOf(w),Ce=null!=(ue=null==I?void 0:I[k])?ue:0,ye=ve?Ae:fe-T[ge]-M[ge]-Ce+R.altAxis,we=ve?fe+T[ge]+M[ge]-Ce-R.altAxis:be,xe=b&&ve?function(e,t,i){var n=Y(e,t,i);return n>i?i:n}(ye,fe,we):Y(b?ye:Ae,fe,b?we:be);S[k]=xe,L[k]=xe-fe}t.modifiersData[n]=L}},requiresIfExists:["offset"]};function _e(e,t,i){void 0===i&&(i=!1);var n,o,r=R(t),s=R(t)&&function(e){var t=e.getBoundingClientRect(),i=P(t.width)/e.offsetWidth||1,n=P(t.height)/e.offsetHeight||1;return 1!==i||1!==n}(t),a=z(t),l=N(e,s),c={scrollLeft:0,scrollTop:0},d={x:0,y:0};return(r||!r&&!i)&&(("body"!==T(t)||de(a))&&(c=(n=t)!==M(n)&&R(n)?{scrollLeft:(o=n).scrollLeft,scrollTop:o.scrollTop}:le(n)),R(t)?((d=N(t,!0)).x+=t.clientLeft,d.y+=t.clientTop):a&&(d.x=ce(a))),{x:l.left+c.scrollLeft-d.x,y:l.top+c.scrollTop-d.y,width:l.width,height:l.height}}function Ee(e){var t=new Map,i=new Set,n=[];function o(e){i.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!i.has(e)){var n=t.get(e);n&&o(n)}})),n.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){i.has(e.name)||o(e)})),n}var ke={placement:"bottom",modifiers:[],strategy:"absolute"};function Se(){for(var e=arguments.length,t=new Array(e),i=0;i{let t=e.getAttribute("data-bs-target");if(!t||"#"===t){let i=e.getAttribute("href");if(!i||!i.includes("#")&&!i.startsWith("."))return null;i.includes("#")&&!i.startsWith("#")&&(i=`#${i.split("#")[1]}`),t=i&&"#"!==i?i.trim():null}return t},De=e=>{const t=Le(e);return t&&document.querySelector(t)?t:null},Oe=e=>{const t=Le(e);return t?document.querySelector(t):null},$e=e=>{e.dispatchEvent(new Event(Ie))},Pe=e=>!(!e||"object"!=typeof e)&&(void 0!==e.jquery&&(e=e[0]),void 0!==e.nodeType),Ne=e=>Pe(e)?e.jquery?e[0]:e:"string"==typeof e&&e.length>0?document.querySelector(e):null,Fe=(e,t,i)=>{Object.keys(i).forEach((n=>{const o=i[n],r=t[n],s=r&&Pe(r)?"element":null==(a=r)?`${a}`:{}.toString.call(a).match(/\s([a-z]+)/i)[1].toLowerCase();var a;if(!new RegExp(o).test(s))throw new TypeError(`${e.toUpperCase()}: Option "${n}" provided type "${s}" but expected type "${o}".`)}))},Ue=e=>!(!Pe(e)||0===e.getClientRects().length)&&"visible"===getComputedStyle(e).getPropertyValue("visibility"),je=e=>!e||e.nodeType!==Node.ELEMENT_NODE||!!e.classList.contains("disabled")||(void 0!==e.disabled?e.disabled:e.hasAttribute("disabled")&&"false"!==e.getAttribute("disabled")),We=e=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof e.getRootNode){const t=e.getRootNode();return t instanceof ShadowRoot?t:null}return e instanceof ShadowRoot?e:e.parentNode?We(e.parentNode):null},ze=()=>{},He=e=>{e.offsetHeight},qe=()=>{const{jQuery:e}=window;return e&&!document.body.hasAttribute("data-bs-no-jquery")?e:null},Ve=[],Ge=()=>"rtl"===document.documentElement.dir,Ye=e=>{var t;t=()=>{const t=qe();if(t){const i=e.NAME,n=t.fn[i];t.fn[i]=e.jQueryInterface,t.fn[i].Constructor=e,t.fn[i].noConflict=()=>(t.fn[i]=n,e.jQueryInterface)}},"loading"===document.readyState?(Ve.length||document.addEventListener("DOMContentLoaded",(()=>{Ve.forEach((e=>e()))})),Ve.push(t)):t()},Xe=e=>{"function"==typeof e&&e()},Ke=(e,t,i=!0)=>{if(!i)return void Xe(e);const n=(e=>{if(!e)return 0;let{transitionDuration:t,transitionDelay:i}=window.getComputedStyle(e);const n=Number.parseFloat(t),o=Number.parseFloat(i);return n||o?(t=t.split(",")[0],i=i.split(",")[0],1e3*(Number.parseFloat(t)+Number.parseFloat(i))):0})(t)+5;let o=!1;const r=({target:i})=>{i===t&&(o=!0,t.removeEventListener(Ie,r),Xe(e))};t.addEventListener(Ie,r),setTimeout((()=>{o||$e(t)}),n)},Qe=(e,t,i,n)=>{let o=e.indexOf(t);if(-1===o)return e[!i&&n?e.length-1:0];const r=e.length;return o+=i?1:-1,n&&(o=(o+r)%r),e[Math.max(0,Math.min(o,r-1))]},Ze=/[^.]*(?=\..*)\.|.*/,Je=/\..*/,et=/::\d+$/,tt={};let it=1;const nt={mouseenter:"mouseover",mouseleave:"mouseout"},ot=/^(mouseenter|mouseleave)/i,rt=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function st(e,t){return t&&`${t}::${it++}`||e.uidEvent||it++}function at(e){const t=st(e);return e.uidEvent=t,tt[t]=tt[t]||{},tt[t]}function lt(e,t,i=null){const n=Object.keys(e);for(let o=0,r=n.length;ofunction(t){if(!t.relatedTarget||t.relatedTarget!==t.delegateTarget&&!t.delegateTarget.contains(t.relatedTarget))return e.call(this,t)};n?n=e(n):i=e(i)}const[r,s,a]=ct(t,i,n),l=at(e),c=l[a]||(l[a]={}),d=lt(c,s,r?i:null);if(d)return void(d.oneOff=d.oneOff&&o);const u=st(s,t.replace(Ze,"")),h=r?function(e,t,i){return function n(o){const r=e.querySelectorAll(t);for(let{target:s}=o;s&&s!==this;s=s.parentNode)for(let a=r.length;a--;)if(r[a]===s)return o.delegateTarget=s,n.oneOff&&pt.off(e,o.type,t,i),i.apply(s,[o]);return null}}(e,i,n):function(e,t){return function i(n){return n.delegateTarget=e,i.oneOff&&pt.off(e,n.type,t),t.apply(e,[n])}}(e,i);h.delegationSelector=r?i:null,h.originalHandler=s,h.oneOff=o,h.uidEvent=u,c[u]=h,e.addEventListener(a,h,r)}function ut(e,t,i,n,o){const r=lt(t[i],n,o);r&&(e.removeEventListener(i,r,Boolean(o)),delete t[i][r.uidEvent])}function ht(e){return e=e.replace(Je,""),nt[e]||e}const pt={on(e,t,i,n){dt(e,t,i,n,!1)},one(e,t,i,n){dt(e,t,i,n,!0)},off(e,t,i,n){if("string"!=typeof t||!e)return;const[o,r,s]=ct(t,i,n),a=s!==t,l=at(e),c=t.startsWith(".");if(void 0!==r){if(!l||!l[s])return;return void ut(e,l,s,r,o?i:null)}c&&Object.keys(l).forEach((i=>{!function(e,t,i,n){const o=t[i]||{};Object.keys(o).forEach((r=>{if(r.includes(n)){const n=o[r];ut(e,t,i,n.originalHandler,n.delegationSelector)}}))}(e,l,i,t.slice(1))}));const d=l[s]||{};Object.keys(d).forEach((i=>{const n=i.replace(et,"");if(!a||t.includes(n)){const t=d[i];ut(e,l,s,t.originalHandler,t.delegationSelector)}}))},trigger(e,t,i){if("string"!=typeof t||!e)return null;const n=qe(),o=ht(t),r=t!==o,s=rt.has(o);let a,l=!0,c=!0,d=!1,u=null;return r&&n&&(a=n.Event(t,i),n(e).trigger(a),l=!a.isPropagationStopped(),c=!a.isImmediatePropagationStopped(),d=a.isDefaultPrevented()),s?(u=document.createEvent("HTMLEvents"),u.initEvent(o,l,!0)):u=new CustomEvent(t,{bubbles:l,cancelable:!0}),void 0!==i&&Object.keys(i).forEach((e=>{Object.defineProperty(u,e,{get:()=>i[e]})})),d&&u.preventDefault(),c&&e.dispatchEvent(u),u.defaultPrevented&&void 0!==a&&a.preventDefault(),u}},ft=new Map,gt={set(e,t,i){ft.has(e)||ft.set(e,new Map);const n=ft.get(e);n.has(t)||0===n.size?n.set(t,i):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(n.keys())[0]}.`)},get:(e,t)=>ft.has(e)&&ft.get(e).get(t)||null,remove(e,t){if(!ft.has(e))return;const i=ft.get(e);i.delete(t),0===i.size&&ft.delete(e)}};class mt{constructor(e){(e=Ne(e))&&(this._element=e,gt.set(this._element,this.constructor.DATA_KEY,this))}dispose(){gt.remove(this._element,this.constructor.DATA_KEY),pt.off(this._element,this.constructor.EVENT_KEY),Object.getOwnPropertyNames(this).forEach((e=>{this[e]=null}))}_queueCallback(e,t,i=!0){Ke(e,t,i)}static getInstance(e){return gt.get(Ne(e),this.DATA_KEY)}static getOrCreateInstance(e,t={}){return this.getInstance(e)||new this(e,"object"==typeof t?t:null)}static get VERSION(){return"5.1.3"}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}}const At=(e,t="hide")=>{const i=`click.dismiss${e.EVENT_KEY}`,n=e.NAME;pt.on(document,i,`[data-bs-dismiss="${n}"]`,(function(i){if(["A","AREA"].includes(this.tagName)&&i.preventDefault(),je(this))return;const o=Oe(this)||this.closest(`.${n}`);e.getOrCreateInstance(o)[t]()}))};class bt extends mt{static get NAME(){return"alert"}close(){if(pt.trigger(this._element,"close.bs.alert").defaultPrevented)return;this._element.classList.remove("show");const e=this._element.classList.contains("fade");this._queueCallback((()=>this._destroyElement()),this._element,e)}_destroyElement(){this._element.remove(),pt.trigger(this._element,"closed.bs.alert"),this.dispose()}static jQueryInterface(e){return this.each((function(){const t=bt.getOrCreateInstance(this);if("string"==typeof e){if(void 0===t[e]||e.startsWith("_")||"constructor"===e)throw new TypeError(`No method named "${e}"`);t[e](this)}}))}}At(bt,"close"),Ye(bt);const vt='[data-bs-toggle="button"]';class Ct extends mt{static get NAME(){return"button"}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}static jQueryInterface(e){return this.each((function(){const t=Ct.getOrCreateInstance(this);"toggle"===e&&t[e]()}))}}function yt(e){return"true"===e||"false"!==e&&(e===Number(e).toString()?Number(e):""===e||"null"===e?null:e)}function wt(e){return e.replace(/[A-Z]/g,(e=>`-${e.toLowerCase()}`))}pt.on(document,"click.bs.button.data-api",vt,(e=>{e.preventDefault();const t=e.target.closest(vt);Ct.getOrCreateInstance(t).toggle()})),Ye(Ct);const xt={setDataAttribute(e,t,i){e.setAttribute(`data-bs-${wt(t)}`,i)},removeDataAttribute(e,t){e.removeAttribute(`data-bs-${wt(t)}`)},getDataAttributes(e){if(!e)return{};const t={};return Object.keys(e.dataset).filter((e=>e.startsWith("bs"))).forEach((i=>{let n=i.replace(/^bs/,"");n=n.charAt(0).toLowerCase()+n.slice(1,n.length),t[n]=yt(e.dataset[i])})),t},getDataAttribute:(e,t)=>yt(e.getAttribute(`data-bs-${wt(t)}`)),offset(e){const t=e.getBoundingClientRect();return{top:t.top+window.pageYOffset,left:t.left+window.pageXOffset}},position:e=>({top:e.offsetTop,left:e.offsetLeft})},_t={find:(e,t=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(t,e)),findOne:(e,t=document.documentElement)=>Element.prototype.querySelector.call(t,e),children:(e,t)=>[].concat(...e.children).filter((e=>e.matches(t))),parents(e,t){const i=[];let n=e.parentNode;for(;n&&n.nodeType===Node.ELEMENT_NODE&&3!==n.nodeType;)n.matches(t)&&i.push(n),n=n.parentNode;return i},prev(e,t){let i=e.previousElementSibling;for(;i;){if(i.matches(t))return[i];i=i.previousElementSibling}return[]},next(e,t){let i=e.nextElementSibling;for(;i;){if(i.matches(t))return[i];i=i.nextElementSibling}return[]},focusableChildren(e){const t=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map((e=>`${e}:not([tabindex^="-"])`)).join(", ");return this.find(t,e).filter((e=>!je(e)&&Ue(e)))}},Et="carousel",kt={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},St={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},Tt="next",Mt="prev",Bt="left",Rt="right",It={ArrowLeft:Rt,ArrowRight:Bt},Lt="slid.bs.carousel",Dt="active",Ot=".active.carousel-item";class $t extends mt{constructor(e,t){super(e),this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(t),this._indicatorsElement=_t.findOne(".carousel-indicators",this._element),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent),this._addEventListeners()}static get Default(){return kt}static get NAME(){return Et}next(){this._slide(Tt)}nextWhenVisible(){!document.hidden&&Ue(this._element)&&this.next()}prev(){this._slide(Mt)}pause(e){e||(this._isPaused=!0),_t.findOne(".carousel-item-next, .carousel-item-prev",this._element)&&($e(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null}cycle(e){e||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config&&this._config.interval&&!this._isPaused&&(this._updateInterval(),this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))}to(e){this._activeElement=_t.findOne(Ot,this._element);const t=this._getItemIndex(this._activeElement);if(e>this._items.length-1||e<0)return;if(this._isSliding)return void pt.one(this._element,Lt,(()=>this.to(e)));if(t===e)return this.pause(),void this.cycle();const i=e>t?Tt:Mt;this._slide(i,this._items[e])}_getConfig(e){return e={...kt,...xt.getDataAttributes(this._element),..."object"==typeof e?e:{}},Fe(Et,e,St),e}_handleSwipe(){const e=Math.abs(this.touchDeltaX);if(e<=40)return;const t=e/this.touchDeltaX;this.touchDeltaX=0,t&&this._slide(t>0?Rt:Bt)}_addEventListeners(){this._config.keyboard&&pt.on(this._element,"keydown.bs.carousel",(e=>this._keydown(e))),"hover"===this._config.pause&&(pt.on(this._element,"mouseenter.bs.carousel",(e=>this.pause(e))),pt.on(this._element,"mouseleave.bs.carousel",(e=>this.cycle(e)))),this._config.touch&&this._touchSupported&&this._addTouchEventListeners()}_addTouchEventListeners(){const e=e=>this._pointerEvent&&("pen"===e.pointerType||"touch"===e.pointerType),t=t=>{e(t)?this.touchStartX=t.clientX:this._pointerEvent||(this.touchStartX=t.touches[0].clientX)},i=e=>{this.touchDeltaX=e.touches&&e.touches.length>1?0:e.touches[0].clientX-this.touchStartX},n=t=>{e(t)&&(this.touchDeltaX=t.clientX-this.touchStartX),this._handleSwipe(),"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout((e=>this.cycle(e)),500+this._config.interval))};_t.find(".carousel-item img",this._element).forEach((e=>{pt.on(e,"dragstart.bs.carousel",(e=>e.preventDefault()))})),this._pointerEvent?(pt.on(this._element,"pointerdown.bs.carousel",(e=>t(e))),pt.on(this._element,"pointerup.bs.carousel",(e=>n(e))),this._element.classList.add("pointer-event")):(pt.on(this._element,"touchstart.bs.carousel",(e=>t(e))),pt.on(this._element,"touchmove.bs.carousel",(e=>i(e))),pt.on(this._element,"touchend.bs.carousel",(e=>n(e))))}_keydown(e){if(/input|textarea/i.test(e.target.tagName))return;const t=It[e.key];t&&(e.preventDefault(),this._slide(t))}_getItemIndex(e){return this._items=e&&e.parentNode?_t.find(".carousel-item",e.parentNode):[],this._items.indexOf(e)}_getItemByOrder(e,t){const i=e===Tt;return Qe(this._items,t,i,this._config.wrap)}_triggerSlideEvent(e,t){const i=this._getItemIndex(e),n=this._getItemIndex(_t.findOne(Ot,this._element));return pt.trigger(this._element,"slide.bs.carousel",{relatedTarget:e,direction:t,from:n,to:i})}_setActiveIndicatorElement(e){if(this._indicatorsElement){const t=_t.findOne(".active",this._indicatorsElement);t.classList.remove(Dt),t.removeAttribute("aria-current");const i=_t.find("[data-bs-target]",this._indicatorsElement);for(let t=0;t{pt.trigger(this._element,Lt,{relatedTarget:r,direction:u,from:o,to:s})};if(this._element.classList.contains("slide")){r.classList.add(d),He(r),n.classList.add(c),r.classList.add(c);const e=()=>{r.classList.remove(c,d),r.classList.add(Dt),n.classList.remove(Dt,d,c),this._isSliding=!1,setTimeout(h,0)};this._queueCallback(e,n,!0)}else n.classList.remove(Dt),r.classList.add(Dt),this._isSliding=!1,h();a&&this.cycle()}_directionToOrder(e){return[Rt,Bt].includes(e)?Ge()?e===Bt?Mt:Tt:e===Bt?Tt:Mt:e}_orderToDirection(e){return[Tt,Mt].includes(e)?Ge()?e===Mt?Bt:Rt:e===Mt?Rt:Bt:e}static carouselInterface(e,t){const i=$t.getOrCreateInstance(e,t);let{_config:n}=i;"object"==typeof t&&(n={...n,...t});const o="string"==typeof t?t:n.slide;if("number"==typeof t)i.to(t);else if("string"==typeof o){if(void 0===i[o])throw new TypeError(`No method named "${o}"`);i[o]()}else n.interval&&n.ride&&(i.pause(),i.cycle())}static jQueryInterface(e){return this.each((function(){$t.carouselInterface(this,e)}))}static dataApiClickHandler(e){const t=Oe(this);if(!t||!t.classList.contains("carousel"))return;const i={...xt.getDataAttributes(t),...xt.getDataAttributes(this)},n=this.getAttribute("data-bs-slide-to");n&&(i.interval=!1),$t.carouselInterface(t,i),n&&$t.getInstance(t).to(n),e.preventDefault()}}pt.on(document,"click.bs.carousel.data-api","[data-bs-slide], [data-bs-slide-to]",$t.dataApiClickHandler),pt.on(window,"load.bs.carousel.data-api",(()=>{const e=_t.find('[data-bs-ride="carousel"]');for(let t=0,i=e.length;te===this._element));null!==n&&o.length&&(this._selector=n,this._triggerArray.push(t))}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return Nt}static get NAME(){return Pt}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let e,t=[];if(this._config.parent){const e=_t.find(Ht,this._config.parent);t=_t.find(".collapse.show, .collapse.collapsing",this._config.parent).filter((t=>!e.includes(t)))}const i=_t.findOne(this._selector);if(t.length){const n=t.find((e=>i!==e));if(e=n?Vt.getInstance(n):null,e&&e._isTransitioning)return}if(pt.trigger(this._element,"show.bs.collapse").defaultPrevented)return;t.forEach((t=>{i!==t&&Vt.getOrCreateInstance(t,{toggle:!1}).hide(),e||gt.set(t,"bs.collapse",null)}));const n=this._getDimension();this._element.classList.remove(jt),this._element.classList.add(Wt),this._element.style[n]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const o=`scroll${n[0].toUpperCase()+n.slice(1)}`;this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(Wt),this._element.classList.add(jt,Ut),this._element.style[n]="",pt.trigger(this._element,"shown.bs.collapse")}),this._element,!0),this._element.style[n]=`${this._element[o]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(pt.trigger(this._element,"hide.bs.collapse").defaultPrevented)return;const e=this._getDimension();this._element.style[e]=`${this._element.getBoundingClientRect()[e]}px`,He(this._element),this._element.classList.add(Wt),this._element.classList.remove(jt,Ut);const t=this._triggerArray.length;for(let e=0;e{this._isTransitioning=!1,this._element.classList.remove(Wt),this._element.classList.add(jt),pt.trigger(this._element,"hidden.bs.collapse")}),this._element,!0)}_isShown(e=this._element){return e.classList.contains(Ut)}_getConfig(e){return(e={...Nt,...xt.getDataAttributes(this._element),...e}).toggle=Boolean(e.toggle),e.parent=Ne(e.parent),Fe(Pt,e,Ft),e}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const e=_t.find(Ht,this._config.parent);_t.find(qt,this._config.parent).filter((t=>!e.includes(t))).forEach((e=>{const t=Oe(e);t&&this._addAriaAndCollapsedClass([e],this._isShown(t))}))}_addAriaAndCollapsedClass(e,t){e.length&&e.forEach((e=>{t?e.classList.remove(zt):e.classList.add(zt),e.setAttribute("aria-expanded",t)}))}static jQueryInterface(e){return this.each((function(){const t={};"string"==typeof e&&/show|hide/.test(e)&&(t.toggle=!1);const i=Vt.getOrCreateInstance(this,t);if("string"==typeof e){if(void 0===i[e])throw new TypeError(`No method named "${e}"`);i[e]()}}))}}pt.on(document,"click.bs.collapse.data-api",qt,(function(e){("A"===e.target.tagName||e.delegateTarget&&"A"===e.delegateTarget.tagName)&&e.preventDefault();const t=De(this);_t.find(t).forEach((e=>{Vt.getOrCreateInstance(e,{toggle:!1}).toggle()}))})),Ye(Vt);const Gt="dropdown",Yt="Escape",Xt="Space",Kt="ArrowUp",Qt="ArrowDown",Zt=new RegExp("ArrowUp|ArrowDown|Escape"),Jt="click.bs.dropdown.data-api",ei="keydown.bs.dropdown.data-api",ti="show",ii='[data-bs-toggle="dropdown"]',ni=".dropdown-menu",oi=Ge()?"top-end":"top-start",ri=Ge()?"top-start":"top-end",si=Ge()?"bottom-end":"bottom-start",ai=Ge()?"bottom-start":"bottom-end",li=Ge()?"left-start":"right-start",ci=Ge()?"right-start":"left-start",di={offset:[0,2],boundary:"clippingParents",reference:"toggle",display:"dynamic",popperConfig:null,autoClose:!0},ui={offset:"(array|string|function)",boundary:"(string|element)",reference:"(string|element|object)",display:"string",popperConfig:"(null|object|function)",autoClose:"(boolean|string)"};class hi extends mt{constructor(e,t){super(e),this._popper=null,this._config=this._getConfig(t),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar()}static get Default(){return di}static get DefaultType(){return ui}static get NAME(){return Gt}toggle(){return this._isShown()?this.hide():this.show()}show(){if(je(this._element)||this._isShown(this._menu))return;const e={relatedTarget:this._element};if(pt.trigger(this._element,"show.bs.dropdown",e).defaultPrevented)return;const t=hi.getParentFromElement(this._element);this._inNavbar?xt.setDataAttribute(this._menu,"popper","none"):this._createPopper(t),"ontouchstart"in document.documentElement&&!t.closest(".navbar-nav")&&[].concat(...document.body.children).forEach((e=>pt.on(e,"mouseover",ze))),this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.add(ti),this._element.classList.add(ti),pt.trigger(this._element,"shown.bs.dropdown",e)}hide(){if(je(this._element)||!this._isShown(this._menu))return;const e={relatedTarget:this._element};this._completeHide(e)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(e){pt.trigger(this._element,"hide.bs.dropdown",e).defaultPrevented||("ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach((e=>pt.off(e,"mouseover",ze))),this._popper&&this._popper.destroy(),this._menu.classList.remove(ti),this._element.classList.remove(ti),this._element.setAttribute("aria-expanded","false"),xt.removeDataAttribute(this._menu,"popper"),pt.trigger(this._element,"hidden.bs.dropdown",e))}_getConfig(e){if(e={...this.constructor.Default,...xt.getDataAttributes(this._element),...e},Fe(Gt,e,this.constructor.DefaultType),"object"==typeof e.reference&&!Pe(e.reference)&&"function"!=typeof e.reference.getBoundingClientRect)throw new TypeError(`${Gt.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);return e}_createPopper(e){if(void 0===n)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let t=this._element;"parent"===this._config.reference?t=e:Pe(this._config.reference)?t=Ne(this._config.reference):"object"==typeof this._config.reference&&(t=this._config.reference);const i=this._getPopperConfig(),o=i.modifiers.find((e=>"applyStyles"===e.name&&!1===e.enabled));this._popper=Be(t,this._menu,i),o&&xt.setDataAttribute(this._menu,"popper","static")}_isShown(e=this._element){return e.classList.contains(ti)}_getMenuElement(){return _t.next(this._element,ni)[0]}_getPlacement(){const e=this._element.parentNode;if(e.classList.contains("dropend"))return li;if(e.classList.contains("dropstart"))return ci;const t="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return e.classList.contains("dropup")?t?ri:oi:t?ai:si}_detectNavbar(){return null!==this._element.closest(".navbar")}_getOffset(){const{offset:e}=this._config;return"string"==typeof e?e.split(",").map((e=>Number.parseInt(e,10))):"function"==typeof e?t=>e(t,this._element):e}_getPopperConfig(){const e={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return"static"===this._config.display&&(e.modifiers=[{name:"applyStyles",enabled:!1}]),{...e,..."function"==typeof this._config.popperConfig?this._config.popperConfig(e):this._config.popperConfig}}_selectMenuItem({key:e,target:t}){const i=_t.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter(Ue);i.length&&Qe(i,t,e===Qt,!i.includes(t)).focus()}static jQueryInterface(e){return this.each((function(){const t=hi.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e]()}}))}static clearMenus(e){if(e&&(2===e.button||"keyup"===e.type&&"Tab"!==e.key))return;const t=_t.find(ii);for(let i=0,n=t.length;it+e)),this._setElementAttributes(pi,"paddingRight",(t=>t+e)),this._setElementAttributes(fi,"marginRight",(t=>t-e))}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(e,t,i){const n=this.getWidth();this._applyManipulationCallback(e,(e=>{if(e!==this._element&&window.innerWidth>e.clientWidth+n)return;this._saveInitialAttribute(e,t);const o=window.getComputedStyle(e)[t];e.style[t]=`${i(Number.parseFloat(o))}px`}))}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,"paddingRight"),this._resetElementAttributes(pi,"paddingRight"),this._resetElementAttributes(fi,"marginRight")}_saveInitialAttribute(e,t){const i=e.style[t];i&&xt.setDataAttribute(e,t,i)}_resetElementAttributes(e,t){this._applyManipulationCallback(e,(e=>{const i=xt.getDataAttribute(e,t);void 0===i?e.style.removeProperty(t):(xt.removeDataAttribute(e,t),e.style[t]=i)}))}_applyManipulationCallback(e,t){Pe(e)?t(e):_t.find(e,this._element).forEach(t)}isOverflowing(){return this.getWidth()>0}}const mi={className:"modal-backdrop",isVisible:!0,isAnimated:!1,rootElement:"body",clickCallback:null},Ai={className:"string",isVisible:"boolean",isAnimated:"boolean",rootElement:"(element|string)",clickCallback:"(function|null)"},bi="show",vi="mousedown.bs.backdrop";class Ci{constructor(e){this._config=this._getConfig(e),this._isAppended=!1,this._element=null}show(e){this._config.isVisible?(this._append(),this._config.isAnimated&&He(this._getElement()),this._getElement().classList.add(bi),this._emulateAnimation((()=>{Xe(e)}))):Xe(e)}hide(e){this._config.isVisible?(this._getElement().classList.remove(bi),this._emulateAnimation((()=>{this.dispose(),Xe(e)}))):Xe(e)}_getElement(){if(!this._element){const e=document.createElement("div");e.className=this._config.className,this._config.isAnimated&&e.classList.add("fade"),this._element=e}return this._element}_getConfig(e){return(e={...mi,..."object"==typeof e?e:{}}).rootElement=Ne(e.rootElement),Fe("backdrop",e,Ai),e}_append(){this._isAppended||(this._config.rootElement.append(this._getElement()),pt.on(this._getElement(),vi,(()=>{Xe(this._config.clickCallback)})),this._isAppended=!0)}dispose(){this._isAppended&&(pt.off(this._element,vi),this._element.remove(),this._isAppended=!1)}_emulateAnimation(e){Ke(e,this._getElement(),this._config.isAnimated)}}const yi={trapElement:null,autofocus:!0},wi={trapElement:"element",autofocus:"boolean"},xi=".bs.focustrap",_i="backward";class Ei{constructor(e){this._config=this._getConfig(e),this._isActive=!1,this._lastTabNavDirection=null}activate(){const{trapElement:e,autofocus:t}=this._config;this._isActive||(t&&e.focus(),pt.off(document,xi),pt.on(document,"focusin.bs.focustrap",(e=>this._handleFocusin(e))),pt.on(document,"keydown.tab.bs.focustrap",(e=>this._handleKeydown(e))),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,pt.off(document,xi))}_handleFocusin(e){const{target:t}=e,{trapElement:i}=this._config;if(t===document||t===i||i.contains(t))return;const n=_t.focusableChildren(i);0===n.length?i.focus():this._lastTabNavDirection===_i?n[n.length-1].focus():n[0].focus()}_handleKeydown(e){"Tab"===e.key&&(this._lastTabNavDirection=e.shiftKey?_i:"forward")}_getConfig(e){return e={...yi,..."object"==typeof e?e:{}},Fe("focustrap",e,wi),e}}const ki="modal",Si="Escape",Ti={backdrop:!0,keyboard:!0,focus:!0},Mi={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean"},Bi="hidden.bs.modal",Ri="show.bs.modal",Ii="resize.bs.modal",Li="click.dismiss.bs.modal",Di="keydown.dismiss.bs.modal",Oi="mousedown.dismiss.bs.modal",$i="modal-open",Pi="show",Ni="modal-static";class Fi extends mt{constructor(e,t){super(e),this._config=this._getConfig(t),this._dialog=_t.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollBar=new gi}static get Default(){return Ti}static get NAME(){return ki}toggle(e){return this._isShown?this.hide():this.show(e)}show(e){this._isShown||this._isTransitioning||pt.trigger(this._element,Ri,{relatedTarget:e}).defaultPrevented||(this._isShown=!0,this._isAnimated()&&(this._isTransitioning=!0),this._scrollBar.hide(),document.body.classList.add($i),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),pt.on(this._dialog,Oi,(()=>{pt.one(this._element,"mouseup.dismiss.bs.modal",(e=>{e.target===this._element&&(this._ignoreBackdropClick=!0)}))})),this._showBackdrop((()=>this._showElement(e))))}hide(){if(!this._isShown||this._isTransitioning)return;if(pt.trigger(this._element,"hide.bs.modal").defaultPrevented)return;this._isShown=!1;const e=this._isAnimated();e&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),this._focustrap.deactivate(),this._element.classList.remove(Pi),pt.off(this._element,Li),pt.off(this._dialog,Oi),this._queueCallback((()=>this._hideModal()),this._element,e)}dispose(){[window,this._dialog].forEach((e=>pt.off(e,".bs.modal"))),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new Ci({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new Ei({trapElement:this._element})}_getConfig(e){return e={...Ti,...xt.getDataAttributes(this._element),..."object"==typeof e?e:{}},Fe(ki,e,Mi),e}_showElement(e){const t=this._isAnimated(),i=_t.findOne(".modal-body",this._dialog);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0,i&&(i.scrollTop=0),t&&He(this._element),this._element.classList.add(Pi),this._queueCallback((()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,pt.trigger(this._element,"shown.bs.modal",{relatedTarget:e})}),this._dialog,t)}_setEscapeEvent(){this._isShown?pt.on(this._element,Di,(e=>{this._config.keyboard&&e.key===Si?(e.preventDefault(),this.hide()):this._config.keyboard||e.key!==Si||this._triggerBackdropTransition()})):pt.off(this._element,Di)}_setResizeEvent(){this._isShown?pt.on(window,Ii,(()=>this._adjustDialog())):pt.off(window,Ii)}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide((()=>{document.body.classList.remove($i),this._resetAdjustments(),this._scrollBar.reset(),pt.trigger(this._element,Bi)}))}_showBackdrop(e){pt.on(this._element,Li,(e=>{this._ignoreBackdropClick?this._ignoreBackdropClick=!1:e.target===e.currentTarget&&(!0===this._config.backdrop?this.hide():"static"===this._config.backdrop&&this._triggerBackdropTransition())})),this._backdrop.show(e)}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(pt.trigger(this._element,"hidePrevented.bs.modal").defaultPrevented)return;const{classList:e,scrollHeight:t,style:i}=this._element,n=t>document.documentElement.clientHeight;!n&&"hidden"===i.overflowY||e.contains(Ni)||(n||(i.overflowY="hidden"),e.add(Ni),this._queueCallback((()=>{e.remove(Ni),n||this._queueCallback((()=>{i.overflowY=""}),this._dialog)}),this._dialog),this._element.focus())}_adjustDialog(){const e=this._element.scrollHeight>document.documentElement.clientHeight,t=this._scrollBar.getWidth(),i=t>0;(!i&&e&&!Ge()||i&&!e&&Ge())&&(this._element.style.paddingLeft=`${t}px`),(i&&!e&&!Ge()||!i&&e&&Ge())&&(this._element.style.paddingRight=`${t}px`)}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(e,t){return this.each((function(){const i=Fi.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===i[e])throw new TypeError(`No method named "${e}"`);i[e](t)}}))}}pt.on(document,"click.bs.modal.data-api",'[data-bs-toggle="modal"]',(function(e){const t=Oe(this);["A","AREA"].includes(this.tagName)&&e.preventDefault(),pt.one(t,Ri,(e=>{e.defaultPrevented||pt.one(t,Bi,(()=>{Ue(this)&&this.focus()}))}));const i=_t.findOne(".modal.show");i&&Fi.getInstance(i).hide(),Fi.getOrCreateInstance(t).toggle(this)})),At(Fi),Ye(Fi);const Ui="offcanvas",ji={backdrop:!0,keyboard:!0,scroll:!1},Wi={backdrop:"boolean",keyboard:"boolean",scroll:"boolean"},zi="show",Hi=".offcanvas.show",qi="hidden.bs.offcanvas";class Vi extends mt{constructor(e,t){super(e),this._config=this._getConfig(t),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get NAME(){return Ui}static get Default(){return ji}toggle(e){return this._isShown?this.hide():this.show(e)}show(e){this._isShown||pt.trigger(this._element,"show.bs.offcanvas",{relatedTarget:e}).defaultPrevented||(this._isShown=!0,this._element.style.visibility="visible",this._backdrop.show(),this._config.scroll||(new gi).hide(),this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add(zi),this._queueCallback((()=>{this._config.scroll||this._focustrap.activate(),pt.trigger(this._element,"shown.bs.offcanvas",{relatedTarget:e})}),this._element,!0))}hide(){this._isShown&&(pt.trigger(this._element,"hide.bs.offcanvas").defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.remove(zi),this._backdrop.hide(),this._queueCallback((()=>{this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._element.style.visibility="hidden",this._config.scroll||(new gi).reset(),pt.trigger(this._element,qi)}),this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_getConfig(e){return e={...ji,...xt.getDataAttributes(this._element),..."object"==typeof e?e:{}},Fe(Ui,e,Wi),e}_initializeBackDrop(){return new Ci({className:"offcanvas-backdrop",isVisible:this._config.backdrop,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:()=>this.hide()})}_initializeFocusTrap(){return new Ei({trapElement:this._element})}_addEventListeners(){pt.on(this._element,"keydown.dismiss.bs.offcanvas",(e=>{this._config.keyboard&&"Escape"===e.key&&this.hide()}))}static jQueryInterface(e){return this.each((function(){const t=Vi.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e]||e.startsWith("_")||"constructor"===e)throw new TypeError(`No method named "${e}"`);t[e](this)}}))}}pt.on(document,"click.bs.offcanvas.data-api",'[data-bs-toggle="offcanvas"]',(function(e){const t=Oe(this);if(["A","AREA"].includes(this.tagName)&&e.preventDefault(),je(this))return;pt.one(t,qi,(()=>{Ue(this)&&this.focus()}));const i=_t.findOne(Hi);i&&i!==t&&Vi.getInstance(i).hide(),Vi.getOrCreateInstance(t).toggle(this)})),pt.on(window,"load.bs.offcanvas.data-api",(()=>_t.find(Hi).forEach((e=>Vi.getOrCreateInstance(e).show())))),At(Vi),Ye(Vi);const Gi=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),Yi=/^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i,Xi=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,Ki=(e,t)=>{const i=e.nodeName.toLowerCase();if(t.includes(i))return!Gi.has(i)||Boolean(Yi.test(e.nodeValue)||Xi.test(e.nodeValue));const n=t.filter((e=>e instanceof RegExp));for(let e=0,t=n.length;e{Ki(e,s)||i.removeAttribute(e.nodeName)}))}return n.body.innerHTML}const Zi="tooltip",Ji=new Set(["sanitize","allowList","sanitizeFn"]),en={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(array|string|function)",container:"(string|element|boolean)",fallbackPlacements:"array",boundary:"(string|element)",customClass:"(string|function)",sanitize:"boolean",sanitizeFn:"(null|function)",allowList:"object",popperConfig:"(null|object|function)"},tn={AUTO:"auto",TOP:"top",RIGHT:Ge()?"left":"right",BOTTOM:"bottom",LEFT:Ge()?"right":"left"},nn={animation:!0,template:'',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:[0,0],container:!1,fallbackPlacements:["top","right","bottom","left"],boundary:"clippingParents",customClass:"",sanitize:!0,sanitizeFn:null,allowList:{"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},popperConfig:null},on={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"},rn="fade",sn="show",an="show",ln="out",cn=".tooltip-inner",dn=".modal",un="hide.bs.modal",hn="hover",pn="focus";class fn extends mt{constructor(e,t){if(void 0===n)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(e),this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this._config=this._getConfig(t),this.tip=null,this._setListeners()}static get Default(){return nn}static get NAME(){return Zi}static get Event(){return on}static get DefaultType(){return en}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(e){if(this._isEnabled)if(e){const t=this._initializeOnDelegatedTarget(e);t._activeTrigger.click=!t._activeTrigger.click,t._isWithActiveTrigger()?t._enter(null,t):t._leave(null,t)}else{if(this.getTipElement().classList.contains(sn))return void this._leave(null,this);this._enter(null,this)}}dispose(){clearTimeout(this._timeout),pt.off(this._element.closest(dn),un,this._hideModalHandler),this.tip&&this.tip.remove(),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this.isWithContent()||!this._isEnabled)return;const e=pt.trigger(this._element,this.constructor.Event.SHOW),t=We(this._element),i=null===t?this._element.ownerDocument.documentElement.contains(this._element):t.contains(this._element);if(e.defaultPrevented||!i)return;"tooltip"===this.constructor.NAME&&this.tip&&this.getTitle()!==this.tip.querySelector(cn).innerHTML&&(this._disposePopper(),this.tip.remove(),this.tip=null);const n=this.getTipElement(),o=(e=>{do{e+=Math.floor(1e6*Math.random())}while(document.getElementById(e));return e})(this.constructor.NAME);n.setAttribute("id",o),this._element.setAttribute("aria-describedby",o),this._config.animation&&n.classList.add(rn);const r="function"==typeof this._config.placement?this._config.placement.call(this,n,this._element):this._config.placement,s=this._getAttachment(r);this._addAttachmentClass(s);const{container:a}=this._config;gt.set(n,this.constructor.DATA_KEY,this),this._element.ownerDocument.documentElement.contains(this.tip)||(a.append(n),pt.trigger(this._element,this.constructor.Event.INSERTED)),this._popper?this._popper.update():this._popper=Be(this._element,n,this._getPopperConfig(s)),n.classList.add(sn);const l=this._resolvePossibleFunction(this._config.customClass);l&&n.classList.add(...l.split(" ")),"ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach((e=>{pt.on(e,"mouseover",ze)}));const c=this.tip.classList.contains(rn);this._queueCallback((()=>{const e=this._hoverState;this._hoverState=null,pt.trigger(this._element,this.constructor.Event.SHOWN),e===ln&&this._leave(null,this)}),this.tip,c)}hide(){if(!this._popper)return;const e=this.getTipElement();if(pt.trigger(this._element,this.constructor.Event.HIDE).defaultPrevented)return;e.classList.remove(sn),"ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach((e=>pt.off(e,"mouseover",ze))),this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1;const t=this.tip.classList.contains(rn);this._queueCallback((()=>{this._isWithActiveTrigger()||(this._hoverState!==an&&e.remove(),this._cleanTipClass(),this._element.removeAttribute("aria-describedby"),pt.trigger(this._element,this.constructor.Event.HIDDEN),this._disposePopper())}),this.tip,t),this._hoverState=""}update(){null!==this._popper&&this._popper.update()}isWithContent(){return Boolean(this.getTitle())}getTipElement(){if(this.tip)return this.tip;const e=document.createElement("div");e.innerHTML=this._config.template;const t=e.children[0];return this.setContent(t),t.classList.remove(rn,sn),this.tip=t,this.tip}setContent(e){this._sanitizeAndSetContent(e,this.getTitle(),cn)}_sanitizeAndSetContent(e,t,i){const n=_t.findOne(i,e);t||!n?this.setElementContent(n,t):n.remove()}setElementContent(e,t){if(null!==e)return Pe(t)?(t=Ne(t),void(this._config.html?t.parentNode!==e&&(e.innerHTML="",e.append(t)):e.textContent=t.textContent)):void(this._config.html?(this._config.sanitize&&(t=Qi(t,this._config.allowList,this._config.sanitizeFn)),e.innerHTML=t):e.textContent=t)}getTitle(){const e=this._element.getAttribute("data-bs-original-title")||this._config.title;return this._resolvePossibleFunction(e)}updateAttachment(e){return"right"===e?"end":"left"===e?"start":e}_initializeOnDelegatedTarget(e,t){return t||this.constructor.getOrCreateInstance(e.delegateTarget,this._getDelegateConfig())}_getOffset(){const{offset:e}=this._config;return"string"==typeof e?e.split(",").map((e=>Number.parseInt(e,10))):"function"==typeof e?t=>e(t,this._element):e}_resolvePossibleFunction(e){return"function"==typeof e?e.call(this._element):e}_getPopperConfig(e){const t={placement:e,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"onChange",enabled:!0,phase:"afterWrite",fn:e=>this._handlePopperPlacementChange(e)}],onFirstUpdate:e=>{e.options.placement!==e.placement&&this._handlePopperPlacementChange(e)}};return{...t,..."function"==typeof this._config.popperConfig?this._config.popperConfig(t):this._config.popperConfig}}_addAttachmentClass(e){this.getTipElement().classList.add(`${this._getBasicClassPrefix()}-${this.updateAttachment(e)}`)}_getAttachment(e){return tn[e.toUpperCase()]}_setListeners(){this._config.trigger.split(" ").forEach((e=>{if("click"===e)pt.on(this._element,this.constructor.Event.CLICK,this._config.selector,(e=>this.toggle(e)));else if("manual"!==e){const t=e===hn?this.constructor.Event.MOUSEENTER:this.constructor.Event.FOCUSIN,i=e===hn?this.constructor.Event.MOUSELEAVE:this.constructor.Event.FOCUSOUT;pt.on(this._element,t,this._config.selector,(e=>this._enter(e))),pt.on(this._element,i,this._config.selector,(e=>this._leave(e)))}})),this._hideModalHandler=()=>{this._element&&this.hide()},pt.on(this._element.closest(dn),un,this._hideModalHandler),this._config.selector?this._config={...this._config,trigger:"manual",selector:""}:this._fixTitle()}_fixTitle(){const e=this._element.getAttribute("title"),t=typeof this._element.getAttribute("data-bs-original-title");(e||"string"!==t)&&(this._element.setAttribute("data-bs-original-title",e||""),!e||this._element.getAttribute("aria-label")||this._element.textContent||this._element.setAttribute("aria-label",e),this._element.setAttribute("title",""))}_enter(e,t){t=this._initializeOnDelegatedTarget(e,t),e&&(t._activeTrigger["focusin"===e.type?pn:hn]=!0),t.getTipElement().classList.contains(sn)||t._hoverState===an?t._hoverState=an:(clearTimeout(t._timeout),t._hoverState=an,t._config.delay&&t._config.delay.show?t._timeout=setTimeout((()=>{t._hoverState===an&&t.show()}),t._config.delay.show):t.show())}_leave(e,t){t=this._initializeOnDelegatedTarget(e,t),e&&(t._activeTrigger["focusout"===e.type?pn:hn]=t._element.contains(e.relatedTarget)),t._isWithActiveTrigger()||(clearTimeout(t._timeout),t._hoverState=ln,t._config.delay&&t._config.delay.hide?t._timeout=setTimeout((()=>{t._hoverState===ln&&t.hide()}),t._config.delay.hide):t.hide())}_isWithActiveTrigger(){for(const e in this._activeTrigger)if(this._activeTrigger[e])return!0;return!1}_getConfig(e){const t=xt.getDataAttributes(this._element);return Object.keys(t).forEach((e=>{Ji.has(e)&&delete t[e]})),(e={...this.constructor.Default,...t,..."object"==typeof e&&e?e:{}}).container=!1===e.container?document.body:Ne(e.container),"number"==typeof e.delay&&(e.delay={show:e.delay,hide:e.delay}),"number"==typeof e.title&&(e.title=e.title.toString()),"number"==typeof e.content&&(e.content=e.content.toString()),Fe(Zi,e,this.constructor.DefaultType),e.sanitize&&(e.template=Qi(e.template,e.allowList,e.sanitizeFn)),e}_getDelegateConfig(){const e={};for(const t in this._config)this.constructor.Default[t]!==this._config[t]&&(e[t]=this._config[t]);return e}_cleanTipClass(){const e=this.getTipElement(),t=new RegExp(`(^|\\s)${this._getBasicClassPrefix()}\\S+`,"g"),i=e.getAttribute("class").match(t);null!==i&&i.length>0&&i.map((e=>e.trim())).forEach((t=>e.classList.remove(t)))}_getBasicClassPrefix(){return"bs-tooltip"}_handlePopperPlacementChange(e){const{state:t}=e;t&&(this.tip=t.elements.popper,this._cleanTipClass(),this._addAttachmentClass(this._getAttachment(t.placement)))}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null)}static jQueryInterface(e){return this.each((function(){const t=fn.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e]()}}))}}Ye(fn);const gn={...fn.Default,placement:"right",offset:[0,8],trigger:"click",content:"",template:''},mn={...fn.DefaultType,content:"(string|element|function)"},An={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"};class bn extends fn{static get Default(){return gn}static get NAME(){return"popover"}static get Event(){return An}static get DefaultType(){return mn}isWithContent(){return this.getTitle()||this._getContent()}setContent(e){this._sanitizeAndSetContent(e,this.getTitle(),".popover-header"),this._sanitizeAndSetContent(e,this._getContent(),".popover-body")}_getContent(){return this._resolvePossibleFunction(this._config.content)}_getBasicClassPrefix(){return"bs-popover"}static jQueryInterface(e){return this.each((function(){const t=bn.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e]()}}))}}Ye(bn);const vn="scrollspy",Cn={offset:10,method:"auto",target:""},yn={offset:"number",method:"string",target:"(string|element)"},wn="active",xn=".nav-link, .list-group-item, .dropdown-item",_n="position";class En extends mt{constructor(e,t){super(e),this._scrollElement="BODY"===this._element.tagName?window:this._element,this._config=this._getConfig(t),this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,pt.on(this._scrollElement,"scroll.bs.scrollspy",(()=>this._process())),this.refresh(),this._process()}static get Default(){return Cn}static get NAME(){return vn}refresh(){const e=this._scrollElement===this._scrollElement.window?"offset":_n,t="auto"===this._config.method?e:this._config.method,i=t===_n?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),_t.find(xn,this._config.target).map((e=>{const n=De(e),o=n?_t.findOne(n):null;if(o){const e=o.getBoundingClientRect();if(e.width||e.height)return[xt[t](o).top+i,n]}return null})).filter((e=>e)).sort(((e,t)=>e[0]-t[0])).forEach((e=>{this._offsets.push(e[0]),this._targets.push(e[1])}))}dispose(){pt.off(this._scrollElement,".bs.scrollspy"),super.dispose()}_getConfig(e){return(e={...Cn,...xt.getDataAttributes(this._element),..."object"==typeof e&&e?e:{}}).target=Ne(e.target)||document.documentElement,Fe(vn,e,yn),e}_getScrollTop(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop}_getScrollHeight(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)}_getOffsetHeight(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height}_process(){const e=this._getScrollTop()+this._config.offset,t=this._getScrollHeight(),i=this._config.offset+t-this._getOffsetHeight();if(this._scrollHeight!==t&&this.refresh(),e>=i){const e=this._targets[this._targets.length-1];this._activeTarget!==e&&this._activate(e)}else{if(this._activeTarget&&e0)return this._activeTarget=null,void this._clear();for(let t=this._offsets.length;t--;)this._activeTarget!==this._targets[t]&&e>=this._offsets[t]&&(void 0===this._offsets[t+1]||e`${t}[data-bs-target="${e}"],${t}[href="${e}"]`)),i=_t.findOne(t.join(","),this._config.target);i.classList.add(wn),i.classList.contains("dropdown-item")?_t.findOne(".dropdown-toggle",i.closest(".dropdown")).classList.add(wn):_t.parents(i,".nav, .list-group").forEach((e=>{_t.prev(e,".nav-link, .list-group-item").forEach((e=>e.classList.add(wn))),_t.prev(e,".nav-item").forEach((e=>{_t.children(e,".nav-link").forEach((e=>e.classList.add(wn)))}))})),pt.trigger(this._scrollElement,"activate.bs.scrollspy",{relatedTarget:e})}_clear(){_t.find(xn,this._config.target).filter((e=>e.classList.contains(wn))).forEach((e=>e.classList.remove(wn)))}static jQueryInterface(e){return this.each((function(){const t=En.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e]()}}))}}pt.on(window,"load.bs.scrollspy.data-api",(()=>{_t.find('[data-bs-spy="scroll"]').forEach((e=>new En(e)))})),Ye(En);const kn="active",Sn="fade",Tn="show",Mn=".active",Bn=":scope > li > .active";class Rn extends mt{static get NAME(){return"tab"}show(){if(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&this._element.classList.contains(kn))return;let e;const t=Oe(this._element),i=this._element.closest(".nav, .list-group");if(i){const t="UL"===i.nodeName||"OL"===i.nodeName?Bn:Mn;e=_t.find(t,i),e=e[e.length-1]}const n=e?pt.trigger(e,"hide.bs.tab",{relatedTarget:this._element}):null;if(pt.trigger(this._element,"show.bs.tab",{relatedTarget:e}).defaultPrevented||null!==n&&n.defaultPrevented)return;this._activate(this._element,i);const o=()=>{pt.trigger(e,"hidden.bs.tab",{relatedTarget:this._element}),pt.trigger(this._element,"shown.bs.tab",{relatedTarget:e})};t?this._activate(t,t.parentNode,o):o()}_activate(e,t,i){const n=(!t||"UL"!==t.nodeName&&"OL"!==t.nodeName?_t.children(t,Mn):_t.find(Bn,t))[0],o=i&&n&&n.classList.contains(Sn),r=()=>this._transitionComplete(e,n,i);n&&o?(n.classList.remove(Tn),this._queueCallback(r,e,!0)):r()}_transitionComplete(e,t,i){if(t){t.classList.remove(kn);const e=_t.findOne(":scope > .dropdown-menu .active",t.parentNode);e&&e.classList.remove(kn),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!1)}e.classList.add(kn),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!0),He(e),e.classList.contains(Sn)&&e.classList.add(Tn);let n=e.parentNode;if(n&&"LI"===n.nodeName&&(n=n.parentNode),n&&n.classList.contains("dropdown-menu")){const t=e.closest(".dropdown");t&&_t.find(".dropdown-toggle",t).forEach((e=>e.classList.add(kn))),e.setAttribute("aria-expanded",!0)}i&&i()}static jQueryInterface(e){return this.each((function(){const t=Rn.getOrCreateInstance(this);if("string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e]()}}))}}pt.on(document,"click.bs.tab.data-api",'[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',(function(e){["A","AREA"].includes(this.tagName)&&e.preventDefault(),je(this)||Rn.getOrCreateInstance(this).show()})),Ye(Rn);const In="toast",Ln="hide",Dn="show",On="showing",$n={animation:"boolean",autohide:"boolean",delay:"number"},Pn={animation:!0,autohide:!0,delay:5e3};class Nn extends mt{constructor(e,t){super(e),this._config=this._getConfig(t),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get DefaultType(){return $n}static get Default(){return Pn}static get NAME(){return In}show(){pt.trigger(this._element,"show.bs.toast").defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove(Ln),He(this._element),this._element.classList.add(Dn),this._element.classList.add(On),this._queueCallback((()=>{this._element.classList.remove(On),pt.trigger(this._element,"shown.bs.toast"),this._maybeScheduleHide()}),this._element,this._config.animation))}hide(){this._element.classList.contains(Dn)&&(pt.trigger(this._element,"hide.bs.toast").defaultPrevented||(this._element.classList.add(On),this._queueCallback((()=>{this._element.classList.add(Ln),this._element.classList.remove(On),this._element.classList.remove(Dn),pt.trigger(this._element,"hidden.bs.toast")}),this._element,this._config.animation)))}dispose(){this._clearTimeout(),this._element.classList.contains(Dn)&&this._element.classList.remove(Dn),super.dispose()}_getConfig(e){return e={...Pn,...xt.getDataAttributes(this._element),..."object"==typeof e&&e?e:{}},Fe(In,e,this.constructor.DefaultType),e}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout((()=>{this.hide()}),this._config.delay)))}_onInteraction(e,t){switch(e.type){case"mouseover":case"mouseout":this._hasMouseInteraction=t;break;case"focusin":case"focusout":this._hasKeyboardInteraction=t}if(t)return void this._clearTimeout();const i=e.relatedTarget;this._element===i||this._element.contains(i)||this._maybeScheduleHide()}_setListeners(){pt.on(this._element,"mouseover.bs.toast",(e=>this._onInteraction(e,!0))),pt.on(this._element,"mouseout.bs.toast",(e=>this._onInteraction(e,!1))),pt.on(this._element,"focusin.bs.toast",(e=>this._onInteraction(e,!0))),pt.on(this._element,"focusout.bs.toast",(e=>this._onInteraction(e,!1)))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(e){return this.each((function(){const t=Nn.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e](this)}}))}}At(Nn),Ye(Nn)},72181:(e,t,i)=>{"use strict";i.r(t),i.d(t,{Animation:()=>fi,Animations:()=>mi,ArcElement:()=>Co,BarController:()=>Pi,BarElement:()=>$o,BasePlatform:()=>fn,BasicPlatform:()=>gn,BubbleController:()=>Ni,CategoryScale:()=>_r,Chart:()=>fo,DatasetController:()=>Ti,Decimation:()=>Uo,DomPlatform:()=>Mn,DoughnutController:()=>Fi,Element:()=>Rn,Filler:()=>ir,Interaction:()=>en,Legend:()=>rr,LineController:()=>Ui,LineElement:()=>To,LinearScale:()=>Sr,LogarithmicScale:()=>Mr,PieController:()=>Wi,PointElement:()=>Bo,PolarAreaController:()=>ji,RadarController:()=>zi,RadialLinearScale:()=>$r,Scale:()=>jn,ScatterController:()=>Hi,SubTitle:()=>cr,Ticks:()=>Ln,TimeScale:()=>Hr,TimeSeriesScale:()=>Vr,Title:()=>ar,Tooltip:()=>wr,_adapters:()=>Yi,_detectPlatform:()=>Bn,animator:()=>ui,controllers:()=>qi,defaults:()=>ze,elements:()=>Po,layouts:()=>pn,plugins:()=>xr,registerables:()=>Yr,registry:()=>zn,scales:()=>Gr});const n="undefined"==typeof window?function(e){return e()}:window.requestAnimationFrame;function o(e,t,i){const o=i||(e=>Array.prototype.slice.call(e));let r=!1,s=[];return function(...i){s=o(i),r||(r=!0,n.call(window,(()=>{r=!1,e.apply(t,s)})))}}const r=e=>"start"===e?"left":"end"===e?"right":"center",s=(e,t,i)=>"start"===e?t:"end"===e?i:(t+i)/2;function a(){}const l=function(){let e=0;return function(){return e++}}();function c(e){return null==e}function d(e){if(Array.isArray&&Array.isArray(e))return!0;const t=Object.prototype.toString.call(e);return"[object"===t.slice(0,7)&&"Array]"===t.slice(-6)}function u(e){return null!==e&&"[object Object]"===Object.prototype.toString.call(e)}const h=e=>("number"==typeof e||e instanceof Number)&&isFinite(+e);function p(e,t){return h(e)?e:t}function f(e,t){return void 0===e?t:e}const g=(e,t)=>"string"==typeof e&&e.endsWith("%")?parseFloat(e)/100*t:+e;function m(e,t,i){if(e&&"function"==typeof e.call)return e.apply(i,t)}function A(e,t,i,n){let o,r,s;if(d(e))if(r=e.length,n)for(o=r-1;o>=0;o--)t.call(i,e[o],o);else for(o=0;oi;)e=e[t.slice(i,n)],i=n+1,n=E(t,i);return e}function S(e){return e.charAt(0).toUpperCase()+e.slice(1)}const T=e=>void 0!==e,M=e=>"function"==typeof e,B=(e,t)=>{if(e.size!==t.size)return!1;for(const i of e)if(!t.has(i))return!1;return!0},R=Math.PI,I=2*R,L=I+R,D=Number.POSITIVE_INFINITY,O=R/180,$=R/2,P=R/4,N=2*R/3,F=Math.log10,U=Math.sign;function j(e){const t=Math.round(e);e=z(e,t,e/1e3)?t:e;const i=Math.pow(10,Math.floor(F(e))),n=e/i;return(n<=1?1:n<=2?2:n<=5?5:10)*i}function W(e){return!isNaN(parseFloat(e))&&isFinite(e)}function z(e,t,i){return Math.abs(e-t)l&&c=Math.min(t,i)-n&&e<=Math.max(t,i)+n}const te=e=>0===e||1===e,ie=(e,t,i)=>-Math.pow(2,10*(e-=1))*Math.sin((e-t)*I/i),ne=(e,t,i)=>Math.pow(2,-10*e)*Math.sin((e-t)*I/i)+1,oe={linear:e=>e,easeInQuad:e=>e*e,easeOutQuad:e=>-e*(e-2),easeInOutQuad:e=>(e/=.5)<1?.5*e*e:-.5*(--e*(e-2)-1),easeInCubic:e=>e*e*e,easeOutCubic:e=>(e-=1)*e*e+1,easeInOutCubic:e=>(e/=.5)<1?.5*e*e*e:.5*((e-=2)*e*e+2),easeInQuart:e=>e*e*e*e,easeOutQuart:e=>-((e-=1)*e*e*e-1),easeInOutQuart:e=>(e/=.5)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2),easeInQuint:e=>e*e*e*e*e,easeOutQuint:e=>(e-=1)*e*e*e*e+1,easeInOutQuint:e=>(e/=.5)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2),easeInSine:e=>1-Math.cos(e*$),easeOutSine:e=>Math.sin(e*$),easeInOutSine:e=>-.5*(Math.cos(R*e)-1),easeInExpo:e=>0===e?0:Math.pow(2,10*(e-1)),easeOutExpo:e=>1===e?1:1-Math.pow(2,-10*e),easeInOutExpo:e=>te(e)?e:e<.5?.5*Math.pow(2,10*(2*e-1)):.5*(2-Math.pow(2,-10*(2*e-1))),easeInCirc:e=>e>=1?e:-(Math.sqrt(1-e*e)-1),easeOutCirc:e=>Math.sqrt(1-(e-=1)*e),easeInOutCirc:e=>(e/=.5)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1),easeInElastic:e=>te(e)?e:ie(e,.075,.3),easeOutElastic:e=>te(e)?e:ne(e,.075,.3),easeInOutElastic(e){const t=.1125;return te(e)?e:e<.5?.5*ie(2*e,t,.45):.5+.5*ne(2*e-1,t,.45)},easeInBack(e){const t=1.70158;return e*e*((t+1)*e-t)},easeOutBack(e){const t=1.70158;return(e-=1)*e*((t+1)*e+t)+1},easeInOutBack(e){let t=1.70158;return(e/=.5)<1?e*e*((1+(t*=1.525))*e-t)*.5:.5*((e-=2)*e*((1+(t*=1.525))*e+t)+2)},easeInBounce:e=>1-oe.easeOutBounce(1-e),easeOutBounce(e){const t=7.5625,i=2.75;return e<1/i?t*e*e:e<2/i?t*(e-=1.5/i)*e+.75:e<2.5/i?t*(e-=2.25/i)*e+.9375:t*(e-=2.625/i)*e+.984375},easeInOutBounce:e=>e<.5?.5*oe.easeInBounce(2*e):.5*oe.easeOutBounce(2*e-1)+.5};function re(e){return e+.5|0}const se=(e,t,i)=>Math.max(Math.min(e,i),t);function ae(e){return se(re(2.55*e),0,255)}function le(e){return se(re(255*e),0,255)}function ce(e){return se(re(e/2.55)/100,0,1)}function de(e){return se(re(100*e),0,100)}const ue={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},he=[..."0123456789ABCDEF"],pe=e=>he[15&e],fe=e=>he[(240&e)>>4]+he[15&e],ge=e=>(240&e)>>4==(15&e);const me=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function Ae(e,t,i){const n=t*Math.min(i,1-i),o=(t,o=(t+e/30)%12)=>i-n*Math.max(Math.min(o-3,9-o,1),-1);return[o(0),o(8),o(4)]}function be(e,t,i){const n=(n,o=(n+e/60)%6)=>i-i*t*Math.max(Math.min(o,4-o,1),0);return[n(5),n(3),n(1)]}function ve(e,t,i){const n=Ae(e,1,.5);let o;for(t+i>1&&(o=1/(t+i),t*=o,i*=o),o=0;o<3;o++)n[o]*=1-t-i,n[o]+=t;return n}function Ce(e){const t=e.r/255,i=e.g/255,n=e.b/255,o=Math.max(t,i,n),r=Math.min(t,i,n),s=(o+r)/2;let a,l,c;return o!==r&&(c=o-r,l=s>.5?c/(2-o-r):c/(o+r),a=function(e,t,i,n,o){return e===o?(t-i)/n+(te<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055,Me=e=>e<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4);function Be(e,t,i){if(e){let n=Ce(e);n[t]=Math.max(0,Math.min(n[t]+n[t]*i,0===t?360:1)),n=we(n),e.r=n[0],e.g=n[1],e.b=n[2]}}function Re(e,t){return e?Object.assign(t||{},e):e}function Ie(e){var t={r:0,g:0,b:0,a:255};return Array.isArray(e)?e.length>=3&&(t={r:e[0],g:e[1],b:e[2],a:255},e.length>3&&(t.a=le(e[3]))):(t=Re(e,{r:0,g:0,b:0,a:1})).a=le(t.a),t}function Le(e){return"r"===e.charAt(0)?function(e){const t=Se.exec(e);let i,n,o,r=255;if(t){if(t[7]!==i){const e=+t[7];r=t[8]?ae(e):se(255*e,0,255)}return i=+t[1],n=+t[3],o=+t[5],i=255&(t[2]?ae(i):se(i,0,255)),n=255&(t[4]?ae(n):se(n,0,255)),o=255&(t[6]?ae(o):se(o,0,255)),{r:i,g:n,b:o,a:r}}}(e):function(e){const t=me.exec(e);let i,n=255;if(!t)return;t[5]!==i&&(n=t[6]?ae(+t[5]):le(+t[5]));const o=xe(+t[2]),r=+t[3]/100,s=+t[4]/100;return i="hwb"===t[1]?function(e,t,i){return ye(ve,e,t,i)}(o,r,s):"hsv"===t[1]?function(e,t,i){return ye(be,e,t,i)}(o,r,s):we(o,r,s),{r:i[0],g:i[1],b:i[2],a:n}}(e)}class De{constructor(e){if(e instanceof De)return e;const t=typeof e;let i;var n,o,r;"object"===t?i=Ie(e):"string"===t&&(r=(n=e).length,"#"===n[0]&&(4===r||5===r?o={r:255&17*ue[n[1]],g:255&17*ue[n[2]],b:255&17*ue[n[3]],a:5===r?17*ue[n[4]]:255}:7!==r&&9!==r||(o={r:ue[n[1]]<<4|ue[n[2]],g:ue[n[3]]<<4|ue[n[4]],b:ue[n[5]]<<4|ue[n[6]],a:9===r?ue[n[7]]<<4|ue[n[8]]:255})),i=o||function(e){ke||(ke=function(){const e={},t=Object.keys(Ee),i=Object.keys(_e);let n,o,r,s,a;for(n=0;n>16&255,r>>8&255,255&r]}return e}(),ke.transparent=[0,0,0,0]);const t=ke[e.toLowerCase()];return t&&{r:t[0],g:t[1],b:t[2],a:4===t.length?t[3]:255}}(e)||Le(e)),this._rgb=i,this._valid=!!i}get valid(){return this._valid}get rgb(){var e=Re(this._rgb);return e&&(e.a=ce(e.a)),e}set rgb(e){this._rgb=Ie(e)}rgbString(){return this._valid?(e=this._rgb)&&(e.a<255?`rgba(${e.r}, ${e.g}, ${e.b}, ${ce(e.a)})`:`rgb(${e.r}, ${e.g}, ${e.b})`):void 0;var e}hexString(){return this._valid?(e=this._rgb,t=(e=>ge(e.r)&&ge(e.g)&&ge(e.b)&&ge(e.a))(e)?pe:fe,e?"#"+t(e.r)+t(e.g)+t(e.b)+((e,t)=>e<255?t(e):"")(e.a,t):void 0):void 0;var e,t}hslString(){return this._valid?function(e){if(!e)return;const t=Ce(e),i=t[0],n=de(t[1]),o=de(t[2]);return e.a<255?`hsla(${i}, ${n}%, ${o}%, ${ce(e.a)})`:`hsl(${i}, ${n}%, ${o}%)`}(this._rgb):void 0}mix(e,t){if(e){const i=this.rgb,n=e.rgb;let o;const r=t===o?.5:t,s=2*r-1,a=i.a-n.a,l=((s*a==-1?s:(s+a)/(1+s*a))+1)/2;o=1-l,i.r=255&l*i.r+o*n.r+.5,i.g=255&l*i.g+o*n.g+.5,i.b=255&l*i.b+o*n.b+.5,i.a=r*i.a+(1-r)*n.a,this.rgb=i}return this}interpolate(e,t){return e&&(this._rgb=function(e,t,i){const n=Me(ce(e.r)),o=Me(ce(e.g)),r=Me(ce(e.b));return{r:le(Te(n+i*(Me(ce(t.r))-n))),g:le(Te(o+i*(Me(ce(t.g))-o))),b:le(Te(r+i*(Me(ce(t.b))-r))),a:e.a+i*(t.a-e.a)}}(this._rgb,e._rgb,t)),this}clone(){return new De(this.rgb)}alpha(e){return this._rgb.a=le(e),this}clearer(e){return this._rgb.a*=1-e,this}greyscale(){const e=this._rgb,t=re(.3*e.r+.59*e.g+.11*e.b);return e.r=e.g=e.b=t,this}opaquer(e){return this._rgb.a*=1+e,this}negate(){const e=this._rgb;return e.r=255-e.r,e.g=255-e.g,e.b=255-e.b,this}lighten(e){return Be(this._rgb,2,e),this}darken(e){return Be(this._rgb,2,-e),this}saturate(e){return Be(this._rgb,1,e),this}desaturate(e){return Be(this._rgb,1,-e),this}rotate(e){return function(e,t){var i=Ce(e);i[0]=xe(i[0]+t),i=we(i),e.r=i[0],e.g=i[1],e.b=i[2]}(this._rgb,e),this}}function Oe(e){return new De(e)}function $e(e){if(e&&"object"==typeof e){const t=e.toString();return"[object CanvasPattern]"===t||"[object CanvasGradient]"===t}return!1}function Pe(e){return $e(e)?e:Oe(e)}function Ne(e){return $e(e)?e:Oe(e).saturate(.5).darken(.1).hexString()}const Fe=Object.create(null),Ue=Object.create(null);function je(e,t){if(!t)return e;const i=t.split(".");for(let t=0,n=i.length;te.chart.platform.getDevicePixelRatio(),this.elements={},this.events=["mousemove","mouseout","click","touchstart","touchmove"],this.font={family:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",size:12,style:"normal",lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(e,t)=>Ne(t.backgroundColor),this.hoverBorderColor=(e,t)=>Ne(t.borderColor),this.hoverColor=(e,t)=>Ne(t.color),this.indexAxis="x",this.interaction={mode:"nearest",intersect:!0,includeInvisible:!1},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(e)}set(e,t){return We(this,e,t)}get(e){return je(this,e)}describe(e,t){return We(Ue,e,t)}override(e,t){return We(Fe,e,t)}route(e,t,i,n){const o=je(this,e),r=je(this,i),s="_"+t;Object.defineProperties(o,{[s]:{value:o[t],writable:!0},[t]:{enumerable:!0,get(){const e=this[s],t=r[n];return u(e)?Object.assign({},t,e):f(e,t)},set(e){this[s]=e}}})}}({_scriptable:e=>!e.startsWith("on"),_indexable:e=>"events"!==e,hover:{_fallback:"interaction"},interaction:{_scriptable:!1,_indexable:!1}});function He(e,t,i,n,o){let r=t[o];return r||(r=t[o]=e.measureText(o).width,i.push(o)),r>n&&(n=r),n}function qe(e,t,i,n){let o=(n=n||{}).data=n.data||{},r=n.garbageCollect=n.garbageCollect||[];n.font!==t&&(o=n.data={},r=n.garbageCollect=[],n.font=t),e.save(),e.font=t;let s=0;const a=i.length;let l,c,u,h,p;for(l=0;li.length){for(l=0;l0&&e.stroke()}}function Ke(e,t,i){return i=i||.5,!t||e&&e.x>t.left-i&&e.xt.top-i&&e.y0&&""!==r.strokeColor;let l,u;for(e.save(),e.font=o.string,function(e,t){t.translation&&e.translate(t.translation[0],t.translation[1]),c(t.rotation)||e.rotate(t.rotation),t.color&&(e.fillStyle=t.color),t.textAlign&&(e.textAlign=t.textAlign),t.textBaseline&&(e.textBaseline=t.textBaseline)}(e,r),l=0;lf(e[i],e[t[i]]):t=>e[t]:()=>e;for(const e of o)i[e]=+r(e)||0;return i}function lt(e){return at(e,{top:"y",right:"x",bottom:"y",left:"x"})}function ct(e){return at(e,["topLeft","topRight","bottomLeft","bottomRight"])}function dt(e){const t=lt(e);return t.width=t.left+t.right,t.height=t.top+t.bottom,t}function ut(e,t){e=e||{},t=t||ze.font;let i=f(e.size,t.size);"string"==typeof i&&(i=parseInt(i,10));let n=f(e.style,t.style);n&&!(""+n).match(rt)&&(console.warn('Invalid font style specified: "'+n+'"'),n="");const o={family:f(e.family,t.family),lineHeight:st(f(e.lineHeight,t.lineHeight),i),size:i,style:n,weight:f(e.weight,t.weight),string:""};return o.string=function(e){return!e||c(e.size)||c(e.family)?null:(e.style?e.style+" ":"")+(e.weight?e.weight+" ":"")+e.size+"px "+e.family}(o),o}function ht(e,t,i,n){let o,r,s,a=!0;for(o=0,r=e.length;oe[i]1;)n=r+o>>1,i(n)?r=n:o=n;return{lo:r,hi:o}}const gt=(e,t,i)=>ft(e,i,(n=>e[n][t]ft(e,i,(n=>e[n][t]>=i)),At=["push","pop","shift","splice","unshift"];function bt(e,t){const i=e._chartjs;if(!i)return;const n=i.listeners,o=n.indexOf(t);-1!==o&&n.splice(o,1),n.length>0||(At.forEach((t=>{delete e[t]})),delete e._chartjs)}function vt(e){const t=new Set;let i,n;for(i=0,n=e.length;ie[0])){T(n)||(n=Rt("_fallback",e));const r={[Symbol.toStringTag]:"Object",_cacheable:!0,_scopes:e,_rootScopes:i,_fallback:n,_getTarget:o,override:o=>Ct([o,...e],t,i,n)};return new Proxy(r,{deleteProperty:(t,i)=>(delete t[i],delete t._keys,delete e[0][i],!0),get:(i,n)=>Et(i,n,(()=>function(e,t,i,n){let o;for(const r of t)if(o=Rt(xt(r,e),i),T(o))return _t(e,o)?Mt(i,n,e,o):o}(n,t,e,i))),getOwnPropertyDescriptor:(e,t)=>Reflect.getOwnPropertyDescriptor(e._scopes[0],t),getPrototypeOf:()=>Reflect.getPrototypeOf(e[0]),has:(e,t)=>It(e).includes(t),ownKeys:e=>It(e),set(e,t,i){const n=e._storage||(e._storage=o());return e[t]=n[t]=i,delete e._keys,!0}})}function yt(e,t,i,n){const o={_cacheable:!1,_proxy:e,_context:t,_subProxy:i,_stack:new Set,_descriptors:wt(e,n),setContext:t=>yt(e,t,i,n),override:o=>yt(e.override(o),t,i,n)};return new Proxy(o,{deleteProperty:(t,i)=>(delete t[i],delete e[i],!0),get:(e,t,i)=>Et(e,t,(()=>function(e,t,i){const{_proxy:n,_context:o,_subProxy:r,_descriptors:s}=e;let a=n[t];return M(a)&&s.isScriptable(t)&&(a=function(e,t,i,n){const{_proxy:o,_context:r,_subProxy:s,_stack:a}=i;if(a.has(e))throw new Error("Recursion detected: "+Array.from(a).join("->")+"->"+e);return a.add(e),t=t(r,s||n),a.delete(e),_t(e,t)&&(t=Mt(o._scopes,o,e,t)),t}(t,a,e,i)),d(a)&&a.length&&(a=function(e,t,i,n){const{_proxy:o,_context:r,_subProxy:s,_descriptors:a}=i;if(T(r.index)&&n(e))t=t[r.index%t.length];else if(u(t[0])){const i=t,n=o._scopes.filter((e=>e!==i));t=[];for(const l of i){const i=Mt(n,o,e,l);t.push(yt(i,r,s&&s[e],a))}}return t}(t,a,e,s.isIndexable)),_t(t,a)&&(a=yt(a,o,r&&r[t],s)),a}(e,t,i))),getOwnPropertyDescriptor:(t,i)=>t._descriptors.allKeys?Reflect.has(e,i)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(e,i),getPrototypeOf:()=>Reflect.getPrototypeOf(e),has:(t,i)=>Reflect.has(e,i),ownKeys:()=>Reflect.ownKeys(e),set:(t,i,n)=>(e[i]=n,delete t[i],!0)})}function wt(e,t={scriptable:!0,indexable:!0}){const{_scriptable:i=t.scriptable,_indexable:n=t.indexable,_allKeys:o=t.allKeys}=e;return{allKeys:o,scriptable:i,indexable:n,isScriptable:M(i)?i:()=>i,isIndexable:M(n)?n:()=>n}}const xt=(e,t)=>e?e+S(t):t,_t=(e,t)=>u(t)&&"adapters"!==e&&(null===Object.getPrototypeOf(t)||t.constructor===Object);function Et(e,t,i){if(Object.prototype.hasOwnProperty.call(e,t))return e[t];const n=i();return e[t]=n,n}function kt(e,t,i){return M(e)?e(t,i):e}const St=(e,t)=>!0===e?t:"string"==typeof e?k(t,e):void 0;function Tt(e,t,i,n,o){for(const r of t){const t=St(i,r);if(t){e.add(t);const r=kt(t._fallback,i,o);if(T(r)&&r!==i&&r!==n)return r}else if(!1===t&&T(n)&&i!==n)return null}return!1}function Mt(e,t,i,n){const o=t._rootScopes,r=kt(t._fallback,i,n),s=[...e,...o],a=new Set;a.add(n);let l=Bt(a,s,i,r||i,n);return null!==l&&(!T(r)||r===i||(l=Bt(a,s,r,l,n),null!==l))&&Ct(Array.from(a),[""],o,r,(()=>function(e,t,i){const n=e._getTarget();t in n||(n[t]={});const o=n[t];return d(o)&&u(i)?i:o}(t,i,n)))}function Bt(e,t,i,n,o){for(;i;)i=Tt(e,t,i,n,o);return i}function Rt(e,t){for(const i of t){if(!i)continue;const t=i[e];if(T(t))return t}}function It(e){let t=e._keys;return t||(t=e._keys=function(e){const t=new Set;for(const i of e)for(const e of Object.keys(i).filter((e=>!e.startsWith("_"))))t.add(e);return Array.from(t)}(e._scopes)),t}function Lt(e,t,i,n){const{iScale:o}=e,{key:r="r"}=this._parsing,s=new Array(n);let a,l,c,d;for(a=0,l=n;at"x"===e?"y":"x";function Pt(e,t,i,n){const o=e.skip?t:e,r=t,s=i.skip?t:i,a=X(r,o),l=X(s,r);let c=a/(a+l),d=l/(a+l);c=isNaN(c)?0:c,d=isNaN(d)?0:d;const u=n*c,h=n*d;return{previous:{x:r.x-u*(s.x-o.x),y:r.y-u*(s.y-o.y)},next:{x:r.x+h*(s.x-o.x),y:r.y+h*(s.y-o.y)}}}function Nt(e,t,i){return Math.max(Math.min(e,i),t)}function Ft(e,t,i,n,o){let r,s,a,l;if(t.spanGaps&&(e=e.filter((e=>!e.skip))),"monotone"===t.cubicInterpolationMode)!function(e,t="x"){const i=$t(t),n=e.length,o=Array(n).fill(0),r=Array(n);let s,a,l,c=Ot(e,0);for(s=0;swindow.getComputedStyle(e,null),Ht=["top","right","bottom","left"];function qt(e,t,i){const n={};i=i?"-"+i:"";for(let o=0;o<4;o++){const r=Ht[o];n[r]=parseFloat(e[t+"-"+r+i])||0}return n.width=n.left+n.right,n.height=n.top+n.bottom,n}function Vt(e,t){if("native"in e)return e;const{canvas:i,currentDevicePixelRatio:n}=t,o=zt(i),r="border-box"===o.boxSizing,s=qt(o,"padding"),a=qt(o,"border","width"),{x:l,y:c,box:d}=function(e,t){const i=e.touches,n=i&&i.length?i[0]:e,{offsetX:o,offsetY:r}=n;let s,a,l=!1;if(((e,t,i)=>(e>0||t>0)&&(!i||!i.shadowRoot))(o,r,e.target))s=o,a=r;else{const e=t.getBoundingClientRect();s=n.clientX-e.left,a=n.clientY-e.top,l=!0}return{x:s,y:a,box:l}}(e,i),u=s.left+(d&&a.left),h=s.top+(d&&a.top);let{width:p,height:f}=t;return r&&(p-=s.width+a.width,f-=s.height+a.height),{x:Math.round((l-u)/p*i.width/n),y:Math.round((c-h)/f*i.height/n)}}const Gt=e=>Math.round(10*e)/10;function Yt(e,t,i){const n=t||1,o=Math.floor(e.height*n),r=Math.floor(e.width*n);e.height=o/n,e.width=r/n;const s=e.canvas;return s.style&&(i||!s.style.height&&!s.style.width)&&(s.style.height=`${e.height}px`,s.style.width=`${e.width}px`),(e.currentDevicePixelRatio!==n||s.height!==o||s.width!==r)&&(e.currentDevicePixelRatio=n,s.height=o,s.width=r,e.ctx.setTransform(n,0,0,n,0,0),!0)}const Xt=function(){let e=!1;try{const t={get passive(){return e=!0,!1}};window.addEventListener("test",null,t),window.removeEventListener("test",null,t)}catch(e){}return e}();function Kt(e,t){const i=function(e,t){return zt(e).getPropertyValue(t)}(e,t),n=i&&i.match(/^(\d+)(\.\d+)?px$/);return n?+n[1]:void 0}function Qt(e,t,i,n){return{x:e.x+i*(t.x-e.x),y:e.y+i*(t.y-e.y)}}function Zt(e,t,i,n){return{x:e.x+i*(t.x-e.x),y:"middle"===n?i<.5?e.y:t.y:"after"===n?i<1?e.y:t.y:i>0?t.y:e.y}}function Jt(e,t,i,n){const o={x:e.cp2x,y:e.cp2y},r={x:t.cp1x,y:t.cp1y},s=Qt(e,o,i),a=Qt(o,r,i),l=Qt(r,t,i),c=Qt(s,a,i),d=Qt(a,l,i);return Qt(c,d,i)}const ei=new Map;function ti(e,t,i){return function(e,t){t=t||{};const i=e+JSON.stringify(t);let n=ei.get(i);return n||(n=new Intl.NumberFormat(e,t),ei.set(i,n)),n}(t,i).format(e)}function ii(e,t,i){return e?function(e,t){return{x:i=>e+e+t-i,setWidth(e){t=e},textAlign:e=>"center"===e?e:"right"===e?"left":"right",xPlus:(e,t)=>e-t,leftForLtr:(e,t)=>e-t}}(t,i):{x:e=>e,setWidth(e){},textAlign:e=>e,xPlus:(e,t)=>e+t,leftForLtr:(e,t)=>e}}function ni(e,t){let i,n;"ltr"!==t&&"rtl"!==t||(i=e.canvas.style,n=[i.getPropertyValue("direction"),i.getPropertyPriority("direction")],i.setProperty("direction",t,"important"),e.prevTextDirection=n)}function oi(e,t){void 0!==t&&(delete e.prevTextDirection,e.canvas.style.setProperty("direction",t[0],t[1]))}function ri(e){return"angle"===e?{between:Z,compare:K,normalize:Q}:{between:ee,compare:(e,t)=>e-t,normalize:e=>e}}function si({start:e,end:t,count:i,loop:n,style:o}){return{start:e%i,end:t%i,loop:n&&(t-e+1)%i==0,style:o}}function ai(e,t,i){if(!i)return[e];const{property:n,start:o,end:r}=i,s=t.length,{compare:a,between:l,normalize:c}=ri(n),{start:d,end:u,loop:h,style:p}=function(e,t,i){const{property:n,start:o,end:r}=i,{between:s,normalize:a}=ri(n),l=t.length;let c,d,{start:u,end:h,loop:p}=e;if(p){for(u+=l,h+=l,c=0,d=l;cn({chart:e,initial:t.initial,numSteps:r,currentStep:Math.min(i-t.start,r)})))}_refresh(){this._request||(this._running=!0,this._request=n.call(window,(()=>{this._update(),this._request=null,this._running&&this._refresh()})))}_update(e=Date.now()){let t=0;this._charts.forEach(((i,n)=>{if(!i.running||!i.items.length)return;const o=i.items;let r,s=o.length-1,a=!1;for(;s>=0;--s)r=o[s],r._active?(r._total>i.duration&&(i.duration=r._total),r.tick(e),a=!0):(o[s]=o[o.length-1],o.pop());a&&(n.draw(),this._notify(n,i,e,"progress")),o.length||(i.running=!1,this._notify(n,i,e,"complete"),i.initial=!1),t+=o.length})),this._lastDate=e,0===t&&(this._running=!1)}_getAnims(e){const t=this._charts;let i=t.get(e);return i||(i={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},t.set(e,i)),i}listen(e,t,i){this._getAnims(e).listeners[t].push(i)}add(e,t){t&&t.length&&this._getAnims(e).items.push(...t)}has(e){return this._getAnims(e).items.length>0}start(e){const t=this._charts.get(e);t&&(t.running=!0,t.start=Date.now(),t.duration=t.items.reduce(((e,t)=>Math.max(e,t._duration)),0),this._refresh())}running(e){if(!this._running)return!1;const t=this._charts.get(e);return!!(t&&t.running&&t.items.length)}stop(e){const t=this._charts.get(e);if(!t||!t.items.length)return;const i=t.items;let n=i.length-1;for(;n>=0;--n)i[n].cancel();t.items=[],this._notify(e,t,Date.now(),"complete")}remove(e){return this._charts.delete(e)}};const hi="transparent",pi={boolean:(e,t,i)=>i>.5?t:e,color(e,t,i){const n=Pe(e||hi),o=n.valid&&Pe(t||hi);return o&&o.valid?o.mix(n,i).hexString():t},number:(e,t,i)=>e+(t-e)*i};class fi{constructor(e,t,i,n){const o=t[i];n=ht([e.to,n,o,e.from]);const r=ht([e.from,o,n]);this._active=!0,this._fn=e.fn||pi[e.type||typeof r],this._easing=oe[e.easing]||oe.linear,this._start=Math.floor(Date.now()+(e.delay||0)),this._duration=this._total=Math.floor(e.duration),this._loop=!!e.loop,this._target=t,this._prop=i,this._from=r,this._to=n,this._promises=void 0}active(){return this._active}update(e,t,i){if(this._active){this._notify(!1);const n=this._target[this._prop],o=i-this._start,r=this._duration-o;this._start=i,this._duration=Math.floor(Math.max(r,e.duration)),this._total+=o,this._loop=!!e.loop,this._to=ht([e.to,t,n,e.from]),this._from=ht([e.from,n,t])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(e){const t=e-this._start,i=this._duration,n=this._prop,o=this._from,r=this._loop,s=this._to;let a;if(this._active=o!==s&&(r||t1?2-a:a,a=this._easing(Math.min(1,Math.max(0,a))),this._target[n]=this._fn(o,s,a))}wait(){const e=this._promises||(this._promises=[]);return new Promise(((t,i)=>{e.push({res:t,rej:i})}))}_notify(e){const t=e?"res":"rej",i=this._promises||[];for(let e=0;e"onProgress"!==e&&"onComplete"!==e&&"fn"!==e}),ze.set("animations",{colors:{type:"color",properties:["color","borderColor","backgroundColor"]},numbers:{type:"number",properties:["x","y","borderWidth","radius","tension"]}}),ze.describe("animations",{_fallback:"animation"}),ze.set("transitions",{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:"transparent"},visible:{type:"boolean",duration:0}}},hide:{animations:{colors:{to:"transparent"},visible:{type:"boolean",easing:"linear",fn:e=>0|e}}}});class mi{constructor(e,t){this._chart=e,this._properties=new Map,this.configure(t)}configure(e){if(!u(e))return;const t=this._properties;Object.getOwnPropertyNames(e).forEach((i=>{const n=e[i];if(!u(n))return;const o={};for(const e of gi)o[e]=n[e];(d(n.properties)&&n.properties||[i]).forEach((e=>{e!==i&&t.has(e)||t.set(e,o)}))}))}_animateOptions(e,t){const i=t.options,n=function(e,t){if(!t)return;let i=e.options;if(i)return i.$shared&&(e.options=i=Object.assign({},i,{$shared:!1,$animations:{}})),i;e.options=t}(e,i);if(!n)return[];const o=this._createAnimations(n,i);return i.$shared&&function(e,t){const i=[],n=Object.keys(t);for(let t=0;t{e.options=i}),(()=>{})),o}_createAnimations(e,t){const i=this._properties,n=[],o=e.$animations||(e.$animations={}),r=Object.keys(t),s=Date.now();let a;for(a=r.length-1;a>=0;--a){const l=r[a];if("$"===l.charAt(0))continue;if("options"===l){n.push(...this._animateOptions(e,t));continue}const c=t[l];let d=o[l];const u=i.get(l);if(d){if(u&&d.active()){d.update(u,c,s);continue}d.cancel()}u&&u.duration?(o[l]=d=new fi(u,e,l,c),n.push(d)):e[l]=c}return n}update(e,t){if(0===this._properties.size)return void Object.assign(e,t);const i=this._createAnimations(e,t);return i.length?(ui.add(this._chart,i),!0):void 0}}function Ai(e,t){const i=e&&e.options||{},n=i.reverse,o=void 0===i.min?t:0,r=void 0===i.max?t:0;return{start:n?r:o,end:n?o:r}}function bi(e,t){const i=[],n=e._getSortedDatasetMetas(t);let o,r;for(o=0,r=n.length;o0||!i&&t<0)return o.index}return null}function xi(e,t){const{chart:i,_cachedMeta:n}=e,o=i._stacks||(i._stacks={}),{iScale:r,vScale:s,index:a}=n,l=r.axis,c=s.axis,d=function(e,t,i){return`${e.id}.${t.id}.${i.stack||i.type}`}(r,s,n),u=t.length;let h;for(let e=0;ei[e].axis===t)).shift()}function Ei(e,t){const i=e.controller.index,n=e.vScale&&e.vScale.axis;if(n){t=t||e._parsed;for(const e of t){const t=e._stacks;if(!t||void 0===t[n]||void 0===t[n][i])return;delete t[n][i]}}}const ki=e=>"reset"===e||"none"===e,Si=(e,t)=>t?e:Object.assign({},e);class Ti{constructor(e,t){this.chart=e,this._ctx=e.ctx,this.index=t,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.initialize()}initialize(){const e=this._cachedMeta;this.configure(),this.linkScales(),e._stacked=Ci(e.vScale,e),this.addElements()}updateIndex(e){this.index!==e&&Ei(this._cachedMeta),this.index=e}linkScales(){const e=this.chart,t=this._cachedMeta,i=this.getDataset(),n=(e,t,i,n)=>"x"===e?t:"r"===e?n:i,o=t.xAxisID=f(i.xAxisID,_i(e,"x")),r=t.yAxisID=f(i.yAxisID,_i(e,"y")),s=t.rAxisID=f(i.rAxisID,_i(e,"r")),a=t.indexAxis,l=t.iAxisID=n(a,o,r,s),c=t.vAxisID=n(a,r,o,s);t.xScale=this.getScaleForId(o),t.yScale=this.getScaleForId(r),t.rScale=this.getScaleForId(s),t.iScale=this.getScaleForId(l),t.vScale=this.getScaleForId(c)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(e){return this.chart.scales[e]}_getOtherScale(e){const t=this._cachedMeta;return e===t.iScale?t.vScale:t.iScale}reset(){this._update("reset")}_destroy(){const e=this._cachedMeta;this._data&&bt(this._data,this),e._stacked&&Ei(e)}_dataCheck(){const e=this.getDataset(),t=e.data||(e.data=[]),i=this._data;if(u(t))this._data=function(e){const t=Object.keys(e),i=new Array(t.length);let n,o,r;for(n=0,o=t.length;n{const t="_onData"+S(e),i=n[e];Object.defineProperty(n,e,{configurable:!0,enumerable:!1,value(...e){const o=i.apply(this,e);return n._chartjs.listeners.forEach((i=>{"function"==typeof i[t]&&i[t](...e)})),o}})})))),this._syncList=[],this._data=t}var n}addElements(){const e=this._cachedMeta;this._dataCheck(),this.datasetElementType&&(e.dataset=new this.datasetElementType)}buildOrUpdateElements(e){const t=this._cachedMeta,i=this.getDataset();let n=!1;this._dataCheck();const o=t._stacked;t._stacked=Ci(t.vScale,t),t.stack!==i.stack&&(n=!0,Ei(t),t.stack=i.stack),this._resyncElements(e),(n||o!==t._stacked)&&xi(this,t._parsed)}configure(){const e=this.chart.config,t=e.datasetScopeKeys(this._type),i=e.getOptionScopes(this.getDataset(),t,!0);this.options=e.createResolver(i,this.getContext()),this._parsing=this.options.parsing,this._cachedDataOpts={}}parse(e,t){const{_cachedMeta:i,_data:n}=this,{iScale:o,_stacked:r}=i,s=o.axis;let a,l,c,h=0===e&&t===n.length||i._sorted,p=e>0&&i._parsed[e-1];if(!1===this._parsing)i._parsed=n,i._sorted=!0,c=n;else{c=d(n[e])?this.parseArrayData(i,n,e,t):u(n[e])?this.parseObjectData(i,n,e,t):this.parsePrimitiveData(i,n,e,t);const o=()=>null===l[s]||p&&l[s]e&&!t.hidden&&t._stacked&&{keys:bi(i,!0),values:null})(t,i,this.chart),l={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY},{min:c,max:d}=function(e){const{min:t,max:i,minDefined:n,maxDefined:o}=e.getUserBounds();return{min:n?t:Number.NEGATIVE_INFINITY,max:o?i:Number.POSITIVE_INFINITY}}(s);let u,p;function f(){p=n[u];const t=p[s.axis];return!h(p[e.axis])||c>t||d=0;--u)if(!f()){this.updateRangeFromParsed(l,e,p,a);break}return l}getAllParsedValues(e){const t=this._cachedMeta._parsed,i=[];let n,o,r;for(n=0,o=t.length;n=0&&ethis.getContext(i,n)),d);return p.$shared&&(p.$shared=a,o[r]=Object.freeze(Si(p,a))),p}_resolveAnimations(e,t,i){const n=this.chart,o=this._cachedDataOpts,r=`animation-${t}`,s=o[r];if(s)return s;let a;if(!1!==n.options.animation){const n=this.chart.config,o=n.datasetAnimationScopeKeys(this._type,t),r=n.getOptionScopes(this.getDataset(),o);a=n.createResolver(r,this.getContext(e,i,t))}const l=new mi(n,a&&a.animations);return a&&a._cacheable&&(o[r]=Object.freeze(l)),l}getSharedOptions(e){if(e.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},e))}includeOptions(e,t){return!t||ki(e)||this.chart._animationsDisabled}_getSharedOptions(e,t){const i=this.resolveDataElementOptions(e,t),n=this._sharedOptions,o=this.getSharedOptions(i),r=this.includeOptions(t,o)||o!==n;return this.updateSharedOptions(o,t,i),{sharedOptions:o,includeOptions:r}}updateElement(e,t,i,n){ki(n)?Object.assign(e,i):this._resolveAnimations(t,n).update(e,i)}updateSharedOptions(e,t,i){e&&!ki(t)&&this._resolveAnimations(void 0,t).update(e,i)}_setStyle(e,t,i,n){e.active=n;const o=this.getStyle(t,n);this._resolveAnimations(t,i,n).update(e,{options:!n&&this.getSharedOptions(o)||o})}removeHoverStyle(e,t,i){this._setStyle(e,i,"active",!1)}setHoverStyle(e,t,i){this._setStyle(e,i,"active",!0)}_removeDatasetHoverStyle(){const e=this._cachedMeta.dataset;e&&this._setStyle(e,void 0,"active",!1)}_setDatasetHoverStyle(){const e=this._cachedMeta.dataset;e&&this._setStyle(e,void 0,"active",!0)}_resyncElements(e){const t=this._data,i=this._cachedMeta.data;for(const[e,t,i]of this._syncList)this[e](t,i);this._syncList=[];const n=i.length,o=t.length,r=Math.min(o,n);r&&this.parse(0,r),o>n?this._insertElements(n,o-n,e):o{for(e.length+=t,s=e.length-1;s>=r;s--)e[s]=e[s-t]};for(a(o),s=e;se-t)))}return e._cache.$bar}(t,e.type);let n,o,r,s,a=t._length;const l=()=>{32767!==r&&-32768!==r&&(T(s)&&(a=Math.min(a,Math.abs(r-s)||a)),s=r)};for(n=0,o=i.length;nMath.abs(a)&&(l=a,c=s),t[i.axis]=c,t._custom={barStart:l,barEnd:c,start:o,end:r,min:s,max:a}}(e,t,i,n):t[i.axis]=i.parse(e,n),t}function Ri(e,t,i,n){const o=e.iScale,r=e.vScale,s=o.getLabels(),a=o===r,l=[];let c,d,u,h;for(c=i,d=i+n;ce.x,i="left",n="right"):(t=e.basee.controller.options.grouped)),o=i.options.stacked,r=[],s=e=>{const i=e.controller.getParsed(t),n=i&&i[e.vScale.axis];if(c(n)||isNaN(n))return!0};for(const i of n)if((void 0===t||!s(i))&&((!1===o||-1===r.indexOf(i.stack)||void 0===o&&void 0===i.stack)&&r.push(i.stack),i.index===e))break;return r.length||r.push(void 0),r}_getStackCount(e){return this._getStacks(void 0,e).length}_getStackIndex(e,t,i){const n=this._getStacks(e,i),o=void 0!==t?n.indexOf(t):-1;return-1===o?n.length-1:o}_getRuler(){const e=this.options,t=this._cachedMeta,i=t.iScale,n=[];let o,r;for(o=0,r=t.data.length;o=i?1:-1)}(u,t,r)*o,h===r&&(m-=u/2);const e=t.getPixelForDecimal(0),i=t.getPixelForDecimal(1),n=Math.min(e,i),s=Math.max(e,i);m=Math.max(Math.min(m,s),n),d=m+u}if(m===t.getPixelForValue(r)){const e=U(u)*t.getLineWidthForValue(r)/2;m+=e,u-=e}return{size:u,base:m,head:d,center:d+u/2}}_calculateBarIndexPixels(e,t){const i=t.scale,n=this.options,o=n.skipNull,r=f(n.maxBarThickness,1/0);let s,a;if(t.grouped){const i=o?this._getStackCount(e):t.stackCount,l="flex"===n.barThickness?function(e,t,i,n){const o=t.pixels,r=o[e];let s=e>0?o[e-1]:null,a=e=0;--i)t=Math.max(t,e[i].size(this.resolveDataElementOptions(i))/2);return t>0&&t}getLabelAndValue(e){const t=this._cachedMeta,{xScale:i,yScale:n}=t,o=this.getParsed(e),r=i.getLabelForValue(o.x),s=n.getLabelForValue(o.y),a=o._custom;return{label:t.label,value:"("+r+", "+s+(a?", "+a:"")+")"}}update(e){const t=this._cachedMeta.data;this.updateElements(t,0,t.length,e)}updateElements(e,t,i,n){const o="reset"===n,{iScale:r,vScale:s}=this._cachedMeta,{sharedOptions:a,includeOptions:l}=this._getSharedOptions(t,n),c=r.axis,d=s.axis;for(let u=t;u""}}}};class Fi extends Ti{constructor(e,t){super(e,t),this.enableOptionSharing=!0,this.innerRadius=void 0,this.outerRadius=void 0,this.offsetX=void 0,this.offsetY=void 0}linkScales(){}parse(e,t){const i=this.getDataset().data,n=this._cachedMeta;if(!1===this._parsing)n._parsed=i;else{let o,r,s=e=>+i[e];if(u(i[e])){const{key:e="value"}=this._parsing;s=t=>+k(i[t],e)}for(o=e,r=e+t;oZ(e,a,l,!0)?1:Math.max(t,t*i,n,n*i),f=(e,t,n)=>Z(e,a,l,!0)?-1:Math.min(t,t*i,n,n*i),g=p(0,c,u),m=p($,d,h),A=f(R,c,u),b=f(R+$,d,h);n=(g-A)/2,o=(m-b)/2,r=-(g+A)/2,s=-(m+b)/2}return{ratioX:n,ratioY:o,offsetX:r,offsetY:s}}(h,u,a),b=(i.width-r)/p,v=(i.height-r)/f,C=Math.max(Math.min(b,v)/2,0),y=g(this.options.radius,C),w=(y-Math.max(y*a,0))/this._getVisibleDatasetWeightTotal();this.offsetX=m*y,this.offsetY=A*y,n.total=this.calculateTotal(),this.outerRadius=y-w*this._getRingWeightOffset(this.index),this.innerRadius=Math.max(this.outerRadius-w*d,0),this.updateElements(o,0,o.length,e)}_circumference(e,t){const i=this.options,n=this._cachedMeta,o=this._getCircumference();return t&&i.animation.animateRotate||!this.chart.getDataVisibility(e)||null===n._parsed[e]||n.data[e].hidden?0:this.calculateCircumference(n._parsed[e]*o/I)}updateElements(e,t,i,n){const o="reset"===n,r=this.chart,s=r.chartArea,a=r.options.animation,l=(s.left+s.right)/2,c=(s.top+s.bottom)/2,d=o&&a.animateScale,u=d?0:this.innerRadius,h=d?0:this.outerRadius,{sharedOptions:p,includeOptions:f}=this._getSharedOptions(t,n);let g,m=this._getRotation();for(g=0;g0&&!isNaN(e)?I*(Math.abs(e)/t):0}getLabelAndValue(e){const t=this._cachedMeta,i=this.chart,n=i.data.labels||[],o=ti(t._parsed[e],i.options.locale);return{label:n[e]||"",value:o}}getMaxBorderWidth(e){let t=0;const i=this.chart;let n,o,r,s,a;if(!e)for(n=0,o=i.data.datasets.length;n"spacing"!==e,_indexable:e=>"spacing"!==e},Fi.overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(e){const t=e.data;if(t.labels.length&&t.datasets.length){const{labels:{pointStyle:i}}=e.legend.options;return t.labels.map(((t,n)=>{const o=e.getDatasetMeta(0).controller.getStyle(n);return{text:t,fillStyle:o.backgroundColor,strokeStyle:o.borderColor,lineWidth:o.borderWidth,pointStyle:i,hidden:!e.getDataVisibility(n),index:n}}))}return[]}},onClick(e,t,i){i.chart.toggleDataVisibility(t.index),i.chart.update()}},tooltip:{callbacks:{title:()=>"",label(e){let t=e.label;const i=": "+e.formattedValue;return d(t)?(t=t.slice(),t[0]+=i):t+=i,t}}}}};class Ui extends Ti{initialize(){this.enableOptionSharing=!0,this.supportsDecimation=!0,super.initialize()}update(e){const t=this._cachedMeta,{dataset:i,data:n=[],_dataset:o}=t,r=this.chart._animationsDisabled;let{start:s,count:a}=function(e,t,i){const n=t.length;let o=0,r=n;if(e._sorted){const{iScale:s,_parsed:a}=e,l=s.axis,{min:c,max:d,minDefined:u,maxDefined:h}=s.getUserBounds();u&&(o=J(Math.min(gt(a,s.axis,c).lo,i?n:gt(t,l,s.getPixelForValue(c)).lo),0,n-1)),r=h?J(Math.max(gt(a,s.axis,d).hi+1,i?0:gt(t,l,s.getPixelForValue(d)).hi+1),o,n)-o:n-o}return{start:o,count:r}}(t,n,r);this._drawStart=s,this._drawCount=a,function(e){const{xScale:t,yScale:i,_scaleRanges:n}=e,o={xmin:t.min,xmax:t.max,ymin:i.min,ymax:i.max};if(!n)return e._scaleRanges=o,!0;const r=n.xmin!==t.min||n.xmax!==t.max||n.ymin!==i.min||n.ymax!==i.max;return Object.assign(n,o),r}(t)&&(s=0,a=n.length),i._chart=this.chart,i._datasetIndex=this.index,i._decimated=!!o._decimated,i.points=n;const l=this.resolveDatasetElementOptions(e);this.options.showLine||(l.borderWidth=0),l.segment=this.options.segment,this.updateElement(i,void 0,{animated:!r,options:l},e),this.updateElements(n,s,a,e)}updateElements(e,t,i,n){const o="reset"===n,{iScale:r,vScale:s,_stacked:a,_dataset:l}=this._cachedMeta,{sharedOptions:d,includeOptions:u}=this._getSharedOptions(t,n),h=r.axis,p=s.axis,{spanGaps:f,segment:g}=this.options,m=W(f)?f:Number.POSITIVE_INFINITY,A=this.chart._animationsDisabled||o||"none"===n;let b=t>0&&this.getParsed(t-1);for(let f=t;f0&&Math.abs(i[h]-b[h])>m,g&&(v.parsed=i,v.raw=l.data[f]),u&&(v.options=d||this.resolveDataElementOptions(f,t.active?"active":n)),A||this.updateElement(t,f,v,n),b=i}}getMaxOverflow(){const e=this._cachedMeta,t=e.dataset,i=t.options&&t.options.borderWidth||0,n=e.data||[];if(!n.length)return i;const o=n[0].size(this.resolveDataElementOptions(0)),r=n[n.length-1].size(this.resolveDataElementOptions(n.length-1));return Math.max(i,o,r)/2}draw(){const e=this._cachedMeta;e.dataset.updateControlPoints(this.chart.chartArea,e.iScale.axis),super.draw()}}Ui.id="line",Ui.defaults={datasetElementType:"line",dataElementType:"point",showLine:!0,spanGaps:!1},Ui.overrides={scales:{_index_:{type:"category"},_value_:{type:"linear"}}};class ji extends Ti{constructor(e,t){super(e,t),this.innerRadius=void 0,this.outerRadius=void 0}getLabelAndValue(e){const t=this._cachedMeta,i=this.chart,n=i.data.labels||[],o=ti(t._parsed[e].r,i.options.locale);return{label:n[e]||"",value:o}}parseObjectData(e,t,i,n){return Lt.bind(this)(e,t,i,n)}update(e){const t=this._cachedMeta.data;this._updateRadius(),this.updateElements(t,0,t.length,e)}getMinMax(){const e=this._cachedMeta,t={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY};return e.data.forEach(((e,i)=>{const n=this.getParsed(i).r;!isNaN(n)&&this.chart.getDataVisibility(i)&&(nt.max&&(t.max=n))})),t}_updateRadius(){const e=this.chart,t=e.chartArea,i=e.options,n=Math.min(t.right-t.left,t.bottom-t.top),o=Math.max(n/2,0),r=(o-Math.max(i.cutoutPercentage?o/100*i.cutoutPercentage:1,0))/e.getVisibleDatasetCount();this.outerRadius=o-r*this.index,this.innerRadius=this.outerRadius-r}updateElements(e,t,i,n){const o="reset"===n,r=this.chart,s=r.options.animation,a=this._cachedMeta.rScale,l=a.xCenter,c=a.yCenter,d=a.getIndexAngle(0)-.5*R;let u,h=d;const p=360/this.countVisibleElements();for(u=0;u{!isNaN(this.getParsed(i).r)&&this.chart.getDataVisibility(i)&&t++})),t}_computeAngle(e,t,i){return this.chart.getDataVisibility(e)?q(this.resolveDataElementOptions(e,t).angle||i):0}}ji.id="polarArea",ji.defaults={dataElementType:"arc",animation:{animateRotate:!0,animateScale:!0},animations:{numbers:{type:"number",properties:["x","y","startAngle","endAngle","innerRadius","outerRadius"]}},indexAxis:"r",startAngle:0},ji.overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(e){const t=e.data;if(t.labels.length&&t.datasets.length){const{labels:{pointStyle:i}}=e.legend.options;return t.labels.map(((t,n)=>{const o=e.getDatasetMeta(0).controller.getStyle(n);return{text:t,fillStyle:o.backgroundColor,strokeStyle:o.borderColor,lineWidth:o.borderWidth,pointStyle:i,hidden:!e.getDataVisibility(n),index:n}}))}return[]}},onClick(e,t,i){i.chart.toggleDataVisibility(t.index),i.chart.update()}},tooltip:{callbacks:{title:()=>"",label:e=>e.chart.data.labels[e.dataIndex]+": "+e.formattedValue}}},scales:{r:{type:"radialLinear",angleLines:{display:!1},beginAtZero:!0,grid:{circular:!0},pointLabels:{display:!1},startAngle:0}}};class Wi extends Fi{}Wi.id="pie",Wi.defaults={cutout:0,rotation:0,circumference:360,radius:"100%"};class zi extends Ti{getLabelAndValue(e){const t=this._cachedMeta.vScale,i=this.getParsed(e);return{label:t.getLabels()[e],value:""+t.getLabelForValue(i[t.axis])}}parseObjectData(e,t,i,n){return Lt.bind(this)(e,t,i,n)}update(e){const t=this._cachedMeta,i=t.dataset,n=t.data||[],o=t.iScale.getLabels();if(i.points=n,"resize"!==e){const t=this.resolveDatasetElementOptions(e);this.options.showLine||(t.borderWidth=0);const r={_loop:!0,_fullLoop:o.length===n.length,options:t};this.updateElement(i,void 0,r,e)}this.updateElements(n,0,n.length,e)}updateElements(e,t,i,n){const o=this._cachedMeta.rScale,r="reset"===n;for(let s=t;s"",label:e=>"("+e.label+", "+e.formattedValue+")"}}},scales:{x:{type:"linear"},y:{type:"linear"}}};var qi=Object.freeze({__proto__:null,BarController:Pi,BubbleController:Ni,DoughnutController:Fi,LineController:Ui,PolarAreaController:ji,PieController:Wi,RadarController:zi,ScatterController:Hi});function Vi(){throw new Error("This method is not implemented: Check that a complete date adapter is provided.")}class Gi{constructor(e){this.options=e||{}}formats(){return Vi()}parse(e,t){return Vi()}format(e,t){return Vi()}add(e,t,i){return Vi()}diff(e,t,i){return Vi()}startOf(e,t,i){return Vi()}endOf(e,t){return Vi()}}Gi.override=function(e){Object.assign(Gi.prototype,e)};var Yi={_date:Gi};function Xi(e,t,i,n){const{controller:o,data:r,_sorted:s}=e,a=o._cachedMeta.iScale;if(a&&t===a.axis&&"r"!==t&&s&&r.length){const e=a._reversePixels?mt:gt;if(!n)return e(r,t,i);if(o._sharedOptions){const n=r[0],o="function"==typeof n.getRange&&n.getRange(t);if(o){const n=e(r,t,i-o),s=e(r,t,i+o);return{lo:n.lo,hi:s.hi}}}}return{lo:0,hi:r.length-1}}function Ki(e,t,i,n,o){const r=e.getSortedVisibleDatasetMetas(),s=i[t];for(let e=0,i=r.length;e{e[s](t[i],o)&&(r.push({element:e,datasetIndex:n,index:l}),a=a||e.inRange(t.x,t.y,o))})),n&&!a?[]:r}var en={evaluateInteractionItems:Ki,modes:{index(e,t,i,n){const o=Vt(t,e),r=i.axis||"x",s=i.includeInvisible||!1,a=i.intersect?Qi(e,o,r,n,s):Zi(e,o,r,!1,n,s),l=[];return a.length?(e.getSortedVisibleDatasetMetas().forEach((e=>{const t=a[0].index,i=e.data[t];i&&!i.skip&&l.push({element:i,datasetIndex:e.index,index:t})})),l):[]},dataset(e,t,i,n){const o=Vt(t,e),r=i.axis||"xy",s=i.includeInvisible||!1;let a=i.intersect?Qi(e,o,r,n,s):Zi(e,o,r,!1,n,s);if(a.length>0){const t=a[0].datasetIndex,i=e.getDatasetMeta(t).data;a=[];for(let e=0;eQi(e,Vt(t,e),i.axis||"xy",n,i.includeInvisible||!1),nearest(e,t,i,n){const o=Vt(t,e),r=i.axis||"xy",s=i.includeInvisible||!1;return Zi(e,o,r,i.intersect,n,s)},x:(e,t,i,n)=>Ji(e,Vt(t,e),"x",i.intersect,n),y:(e,t,i,n)=>Ji(e,Vt(t,e),"y",i.intersect,n)}};const tn=["left","top","right","bottom"];function nn(e,t){return e.filter((e=>e.pos===t))}function on(e,t){return e.filter((e=>-1===tn.indexOf(e.pos)&&e.box.axis===t))}function rn(e,t){return e.sort(((e,i)=>{const n=t?i:e,o=t?e:i;return n.weight===o.weight?n.index-o.index:n.weight-o.weight}))}function sn(e,t,i,n){return Math.max(e[i],t[i])+Math.max(e[n],t[n])}function an(e,t){e.top=Math.max(e.top,t.top),e.left=Math.max(e.left,t.left),e.bottom=Math.max(e.bottom,t.bottom),e.right=Math.max(e.right,t.right)}function ln(e,t,i,n){const{pos:o,box:r}=i,s=e.maxPadding;if(!u(o)){i.size&&(e[o]-=i.size);const t=n[i.stack]||{size:0,count:1};t.size=Math.max(t.size,i.horizontal?r.height:r.width),i.size=t.size/t.count,e[o]+=i.size}r.getPadding&&an(s,r.getPadding());const a=Math.max(0,t.outerWidth-sn(s,e,"left","right")),l=Math.max(0,t.outerHeight-sn(s,e,"top","bottom")),c=a!==e.w,d=l!==e.h;return e.w=a,e.h=l,i.horizontal?{same:c,other:d}:{same:d,other:c}}function cn(e,t){const i=t.maxPadding;return function(e){const n={left:0,top:0,right:0,bottom:0};return e.forEach((e=>{n[e]=Math.max(t[e],i[e])})),n}(e?["left","right"]:["top","bottom"])}function dn(e,t,i,n){const o=[];let r,s,a,l,c,d;for(r=0,s=e.length,c=0;re.box.fullSize)),!0),n=rn(nn(t,"left"),!0),o=rn(nn(t,"right")),r=rn(nn(t,"top"),!0),s=rn(nn(t,"bottom")),a=on(t,"x"),l=on(t,"y");return{fullSize:i,leftAndTop:n.concat(r),rightAndBottom:o.concat(l).concat(s).concat(a),chartArea:nn(t,"chartArea"),vertical:n.concat(o).concat(l),horizontal:r.concat(s).concat(a)}}(e.boxes),l=a.vertical,c=a.horizontal;A(e.boxes,(e=>{"function"==typeof e.beforeLayout&&e.beforeLayout()}));const d=l.reduce(((e,t)=>t.box.options&&!1===t.box.options.display?e:e+1),0)||1,u=Object.freeze({outerWidth:t,outerHeight:i,padding:o,availableWidth:r,availableHeight:s,vBoxMaxWidth:r/2/d,hBoxMaxHeight:s/2}),h=Object.assign({},o);an(h,dt(n));const p=Object.assign({maxPadding:h,w:r,h:s,x:o.left,y:o.top},o),f=function(e,t){const i=function(e){const t={};for(const i of e){const{stack:e,pos:n,stackWeight:o}=i;if(!e||!tn.includes(n))continue;const r=t[e]||(t[e]={count:0,placed:0,weight:0,size:0});r.count++,r.weight+=o}return t}(e),{vBoxMaxWidth:n,hBoxMaxHeight:o}=t;let r,s,a;for(r=0,s=e.length;r{const i=t.box;Object.assign(i,e.chartArea),i.update(p.w,p.h,{left:0,top:0,right:0,bottom:0})}))}};class fn{acquireContext(e,t){}releaseContext(e){return!1}addEventListener(e,t,i){}removeEventListener(e,t,i){}getDevicePixelRatio(){return 1}getMaximumSize(e,t,i,n){return t=Math.max(0,t||e.width),i=i||e.height,{width:t,height:Math.max(0,n?Math.floor(t/n):i)}}isAttached(e){return!0}updateConfig(e){}}class gn extends fn{acquireContext(e){return e&&e.getContext&&e.getContext("2d")||null}updateConfig(e){e.options.animation=!1}}const mn={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},An=e=>null===e||""===e,bn=!!Xt&&{passive:!0};function vn(e,t,i){e.canvas.removeEventListener(t,i,bn)}function Cn(e,t){for(const i of e)if(i===t||i.contains(t))return!0}function yn(e,t,i){const n=e.canvas,o=new MutationObserver((e=>{let t=!1;for(const i of e)t=t||Cn(i.addedNodes,n),t=t&&!Cn(i.removedNodes,n);t&&i()}));return o.observe(document,{childList:!0,subtree:!0}),o}function wn(e,t,i){const n=e.canvas,o=new MutationObserver((e=>{let t=!1;for(const i of e)t=t||Cn(i.removedNodes,n),t=t&&!Cn(i.addedNodes,n);t&&i()}));return o.observe(document,{childList:!0,subtree:!0}),o}const xn=new Map;let _n=0;function En(){const e=window.devicePixelRatio;e!==_n&&(_n=e,xn.forEach(((t,i)=>{i.currentDevicePixelRatio!==e&&t()})))}function kn(e,t,i){const n=e.canvas,r=n&&jt(n);if(!r)return;const s=o(((e,t)=>{const n=r.clientWidth;i(e,t),n{const t=e[0],i=t.contentRect.width,n=t.contentRect.height;0===i&&0===n||s(i,n)}));return a.observe(r),function(e,t){xn.size||window.addEventListener("resize",En),xn.set(e,t)}(e,s),a}function Sn(e,t,i){i&&i.disconnect(),"resize"===t&&function(e){xn.delete(e),xn.size||window.removeEventListener("resize",En)}(e)}function Tn(e,t,i){const n=e.canvas,r=o((t=>{null!==e.ctx&&i(function(e,t){const i=mn[e.type]||e.type,{x:n,y:o}=Vt(e,t);return{type:i,chart:t,native:e,x:void 0!==n?n:null,y:void 0!==o?o:null}}(t,e))}),e,(e=>{const t=e[0];return[t,t.offsetX,t.offsetY]}));return function(e,t,i){e.addEventListener(t,i,bn)}(n,t,r),r}class Mn extends fn{acquireContext(e,t){const i=e&&e.getContext&&e.getContext("2d");return i&&i.canvas===e?(function(e,t){const i=e.style,n=e.getAttribute("height"),o=e.getAttribute("width");if(e.$chartjs={initial:{height:n,width:o,style:{display:i.display,height:i.height,width:i.width}}},i.display=i.display||"block",i.boxSizing=i.boxSizing||"border-box",An(o)){const t=Kt(e,"width");void 0!==t&&(e.width=t)}if(An(n))if(""===e.style.height)e.height=e.width/(t||2);else{const t=Kt(e,"height");void 0!==t&&(e.height=t)}}(e,t),i):null}releaseContext(e){const t=e.canvas;if(!t.$chartjs)return!1;const i=t.$chartjs.initial;["height","width"].forEach((e=>{const n=i[e];c(n)?t.removeAttribute(e):t.setAttribute(e,n)}));const n=i.style||{};return Object.keys(n).forEach((e=>{t.style[e]=n[e]})),t.width=t.width,delete t.$chartjs,!0}addEventListener(e,t,i){this.removeEventListener(e,t);const n=e.$proxies||(e.$proxies={}),o={attach:yn,detach:wn,resize:kn}[t]||Tn;n[t]=o(e,t,i)}removeEventListener(e,t){const i=e.$proxies||(e.$proxies={}),n=i[t];n&&(({attach:Sn,detach:Sn,resize:Sn}[t]||vn)(e,t,n),i[t]=void 0)}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(e,t,i,n){return function(e,t,i,n){const o=zt(e),r=qt(o,"margin"),s=Wt(o.maxWidth,e,"clientWidth")||D,a=Wt(o.maxHeight,e,"clientHeight")||D,l=function(e,t,i){let n,o;if(void 0===t||void 0===i){const r=jt(e);if(r){const e=r.getBoundingClientRect(),s=zt(r),a=qt(s,"border","width"),l=qt(s,"padding");t=e.width-l.width-a.width,i=e.height-l.height-a.height,n=Wt(s.maxWidth,r,"clientWidth"),o=Wt(s.maxHeight,r,"clientHeight")}else t=e.clientWidth,i=e.clientHeight}return{width:t,height:i,maxWidth:n||D,maxHeight:o||D}}(e,t,i);let{width:c,height:d}=l;if("content-box"===o.boxSizing){const e=qt(o,"border","width"),t=qt(o,"padding");c-=t.width+e.width,d-=t.height+e.height}return c=Math.max(0,c-r.width),d=Math.max(0,n?Math.floor(c/n):d-r.height),c=Gt(Math.min(c,s,l.maxWidth)),d=Gt(Math.min(d,a,l.maxHeight)),c&&!d&&(d=Gt(c/2)),{width:c,height:d}}(e,t,i,n)}isAttached(e){const t=jt(e);return!(!t||!t.isConnected)}}function Bn(e){return!Ut()||"undefined"!=typeof OffscreenCanvas&&e instanceof OffscreenCanvas?gn:Mn}class Rn{constructor(){this.x=void 0,this.y=void 0,this.active=!1,this.options=void 0,this.$animations=void 0}tooltipPosition(e){const{x:t,y:i}=this.getProps(["x","y"],e);return{x:t,y:i}}hasValue(){return W(this.x)&&W(this.y)}getProps(e,t){const i=this.$animations;if(!t||!i)return this;const n={};return e.forEach((e=>{n[e]=i[e]&&i[e].active()?i[e]._to:this[e]})),n}}Rn.defaults={},Rn.defaultRoutes=void 0;const In={values:e=>d(e)?e:""+e,numeric(e,t,i){if(0===e)return"0";const n=this.chart.options.locale;let o,r=e;if(i.length>1){const t=Math.max(Math.abs(i[0].value),Math.abs(i[i.length-1].value));(t<1e-4||t>1e15)&&(o="scientific"),r=function(e,t){let i=t.length>3?t[2].value-t[1].value:t[1].value-t[0].value;return Math.abs(i)>=1&&e!==Math.floor(e)&&(i=e-Math.floor(e)),i}(e,i)}const s=F(Math.abs(r)),a=Math.max(Math.min(-1*Math.floor(s),20),0),l={notation:o,minimumFractionDigits:a,maximumFractionDigits:a};return Object.assign(l,this.options.ticks.format),ti(e,n,l)},logarithmic(e,t,i){if(0===e)return"0";const n=e/Math.pow(10,Math.floor(F(e)));return 1===n||2===n||5===n?In.numeric.call(this,e,t,i):""}};var Ln={formatters:In};function Dn(e,t,i,n,o){const r=f(n,0),s=Math.min(f(o,e.length),e.length);let a,l,c,d=0;for(i=Math.ceil(i),o&&(a=o-n,i=a/Math.floor(a/i)),c=r;c<0;)d++,c=Math.round(r+d*i);for(l=Math.max(r,0);lt.lineWidth,tickColor:(e,t)=>t.color,offset:!1,borderDash:[],borderDashOffset:0,borderWidth:1},title:{display:!1,text:"",padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:"",padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:Ln.formatters.values,minor:{},major:{},align:"center",crossAlign:"near",showLabelBackdrop:!1,backdropColor:"rgba(255, 255, 255, 0.75)",backdropPadding:2}}),ze.route("scale.ticks","color","","color"),ze.route("scale.grid","color","","borderColor"),ze.route("scale.grid","borderColor","","borderColor"),ze.route("scale.title","color","","color"),ze.describe("scale",{_fallback:!1,_scriptable:e=>!e.startsWith("before")&&!e.startsWith("after")&&"callback"!==e&&"parser"!==e,_indexable:e=>"borderDash"!==e&&"tickBorderDash"!==e}),ze.describe("scales",{_fallback:"scale"}),ze.describe("scale.ticks",{_scriptable:e=>"backdropPadding"!==e&&"callback"!==e,_indexable:e=>"backdropPadding"!==e});const On=(e,t,i)=>"top"===t||"left"===t?e[t]+i:e[t]-i;function $n(e,t){const i=[],n=e.length/t,o=e.length;let r=0;for(;rs+a)))return c}function Nn(e){return e.drawTicks?e.tickLength:0}function Fn(e,t){if(!e.display)return 0;const i=ut(e.font,t),n=dt(e.padding);return(d(e.text)?e.text.length:1)*i.lineHeight+n.height}function Un(e,t,i){let n=r(e);return(i&&"right"!==t||!i&&"right"===t)&&(n=(e=>"left"===e?"right":"right"===e?"left":e)(n)),n}class jn extends Rn{constructor(e){super(),this.id=e.id,this.type=e.type,this.options=void 0,this.ctx=e.ctx,this.chart=e.chart,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this._margins={left:0,right:0,top:0,bottom:0},this.maxWidth=void 0,this.maxHeight=void 0,this.paddingTop=void 0,this.paddingBottom=void 0,this.paddingLeft=void 0,this.paddingRight=void 0,this.axis=void 0,this.labelRotation=void 0,this.min=void 0,this.max=void 0,this._range=void 0,this.ticks=[],this._gridLineItems=null,this._labelItems=null,this._labelSizes=null,this._length=0,this._maxLength=0,this._longestTextCache={},this._startPixel=void 0,this._endPixel=void 0,this._reversePixels=!1,this._userMax=void 0,this._userMin=void 0,this._suggestedMax=void 0,this._suggestedMin=void 0,this._ticksLength=0,this._borderValue=0,this._cache={},this._dataLimitsCached=!1,this.$context=void 0}init(e){this.options=e.setContext(this.getContext()),this.axis=e.axis,this._userMin=this.parse(e.min),this._userMax=this.parse(e.max),this._suggestedMin=this.parse(e.suggestedMin),this._suggestedMax=this.parse(e.suggestedMax)}parse(e,t){return e}getUserBounds(){let{_userMin:e,_userMax:t,_suggestedMin:i,_suggestedMax:n}=this;return e=p(e,Number.POSITIVE_INFINITY),t=p(t,Number.NEGATIVE_INFINITY),i=p(i,Number.POSITIVE_INFINITY),n=p(n,Number.NEGATIVE_INFINITY),{min:p(e,i),max:p(t,n),minDefined:h(e),maxDefined:h(t)}}getMinMax(e){let t,{min:i,max:n,minDefined:o,maxDefined:r}=this.getUserBounds();if(o&&r)return{min:i,max:n};const s=this.getMatchingVisibleMetas();for(let a=0,l=s.length;an?n:i,n=o&&i>n?i:n,{min:p(i,p(n,i)),max:p(n,p(i,n))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){const e=this.chart.data;return this.options.labels||(this.isHorizontal()?e.xLabels:e.yLabels)||e.labels||[]}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){m(this.options.beforeUpdate,[this])}update(e,t,i){const{beginAtZero:n,grace:o,ticks:r}=this.options,s=r.sampleSize;this.beforeUpdate(),this.maxWidth=e,this.maxHeight=t,this._margins=i=Object.assign({left:0,right:0,top:0,bottom:0},i),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+i.left+i.right:this.height+i.top+i.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=function(e,t,i){const{min:n,max:o}=e,r=g(t,(o-n)/2),s=(e,t)=>i&&0===e?0:e+t;return{min:s(n,-Math.abs(r)),max:s(o,r)}}(this,o,n),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();const a=sn)return function(e,t,i,n){let o,r=0,s=i[0];for(n=Math.ceil(n),o=0;oe-t)).pop(),t}(n);for(let e=0,t=r.length-1;eo)return t}return Math.max(o,1)}(o,t,n);if(r>0){let e,i;const n=r>1?Math.round((a-s)/(r-1)):null;for(Dn(t,l,d,c(n)?0:s-n,s),e=0,i=r-1;e=o||i<=1||!this.isHorizontal())return void(this.labelRotation=n);const c=this._getLabelSizes(),d=c.widest.width,u=c.highest.height,h=J(this.chart.width-d,0,this.maxWidth);r=e.offset?this.maxWidth/i:h/(i-1),d+6>r&&(r=h/(i-(e.offset?.5:1)),s=this.maxHeight-Nn(e.grid)-t.padding-Fn(e.title,this.chart.options.font),a=Math.sqrt(d*d+u*u),l=V(Math.min(Math.asin(J((c.highest.height+6)/r,-1,1)),Math.asin(J(s/a,-1,1))-Math.asin(J(u/a,-1,1)))),l=Math.max(n,Math.min(o,l))),this.labelRotation=l}afterCalculateLabelRotation(){m(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){m(this.options.beforeFit,[this])}fit(){const e={width:0,height:0},{chart:t,options:{ticks:i,title:n,grid:o}}=this,r=this._isVisible(),s=this.isHorizontal();if(r){const r=Fn(n,t.options.font);if(s?(e.width=this.maxWidth,e.height=Nn(o)+r):(e.height=this.maxHeight,e.width=Nn(o)+r),i.display&&this.ticks.length){const{first:t,last:n,widest:o,highest:r}=this._getLabelSizes(),a=2*i.padding,l=q(this.labelRotation),c=Math.cos(l),d=Math.sin(l);if(s){const t=i.mirror?0:d*o.width+c*r.height;e.height=Math.min(this.maxHeight,e.height+t+a)}else{const t=i.mirror?0:c*o.width+d*r.height;e.width=Math.min(this.maxWidth,e.width+t+a)}this._calculatePadding(t,n,d,c)}}this._handleMargins(),s?(this.width=this._length=t.width-this._margins.left-this._margins.right,this.height=e.height):(this.width=e.width,this.height=this._length=t.height-this._margins.top-this._margins.bottom)}_calculatePadding(e,t,i,n){const{ticks:{align:o,padding:r},position:s}=this.options,a=0!==this.labelRotation,l="top"!==s&&"x"===this.axis;if(this.isHorizontal()){const s=this.getPixelForTick(0)-this.left,c=this.right-this.getPixelForTick(this.ticks.length-1);let d=0,u=0;a?l?(d=n*e.width,u=i*t.height):(d=i*e.height,u=n*t.width):"start"===o?u=t.width:"end"===o?d=e.width:"inner"!==o&&(d=e.width/2,u=t.width/2),this.paddingLeft=Math.max((d-s+r)*this.width/(this.width-s),0),this.paddingRight=Math.max((u-c+r)*this.width/(this.width-c),0)}else{let i=t.height/2,n=e.height/2;"start"===o?(i=0,n=e.height):"end"===o&&(i=t.height,n=0),this.paddingTop=i+r,this.paddingBottom=n+r}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){m(this.options.afterFit,[this])}isHorizontal(){const{axis:e,position:t}=this.options;return"top"===t||"bottom"===t||"x"===e}isFullSize(){return this.options.fullSize}_convertTicksToLabels(e){let t,i;for(this.beforeTickToLabelConversion(),this.generateTickLabels(e),t=0,i=e.length;t{const i=e.gc,n=i.length/2;let o;if(n>t){for(o=0;o({width:o[e]||0,height:r[e]||0});return{first:_(0),last:_(t-1),widest:_(w),highest:_(x),widths:o,heights:r}}getLabelForValue(e){return e}getPixelForValue(e,t){return NaN}getValueForPixel(e){}getPixelForTick(e){const t=this.ticks;return e<0||e>t.length-1?null:this.getPixelForValue(t[e].value)}getPixelForDecimal(e){this._reversePixels&&(e=1-e);const t=this._startPixel+e*this._length;return J(this._alignToPixels?Ve(this.chart,t,0):t,-32768,32767)}getDecimalForPixel(e){const t=(e-this._startPixel)/this._length;return this._reversePixels?1-t:t}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){const{min:e,max:t}=this;return e<0&&t<0?t:e>0&&t>0?e:0}getContext(e){const t=this.ticks||[];if(e>=0&&es*n?s/i:a/n:a*n0}_computeGridLineItems(e){const t=this.axis,i=this.chart,n=this.options,{grid:o,position:r}=n,s=o.offset,a=this.isHorizontal(),l=this.ticks.length+(s?1:0),c=Nn(o),d=[],h=o.setContext(this.getContext()),p=h.drawBorder?h.borderWidth:0,g=p/2,m=function(e){return Ve(i,e,p)};let A,b,v,C,y,w,x,_,E,k,S,T;if("top"===r)A=m(this.bottom),w=this.bottom-c,_=A-g,k=m(e.top)+g,T=e.bottom;else if("bottom"===r)A=m(this.top),k=e.top,T=m(e.bottom)-g,w=A+g,_=this.top+c;else if("left"===r)A=m(this.right),y=this.right-c,x=A-g,E=m(e.left)+g,S=e.right;else if("right"===r)A=m(this.left),E=e.left,S=m(e.right)-g,y=A+g,x=this.left+c;else if("x"===t){if("center"===r)A=m((e.top+e.bottom)/2+.5);else if(u(r)){const e=Object.keys(r)[0],t=r[e];A=m(this.chart.scales[e].getPixelForValue(t))}k=e.top,T=e.bottom,w=A+g,_=w+c}else if("y"===t){if("center"===r)A=m((e.left+e.right)/2);else if(u(r)){const e=Object.keys(r)[0],t=r[e];A=m(this.chart.scales[e].getPixelForValue(t))}y=A-g,x=y-c,E=e.left,S=e.right}const M=f(n.ticks.maxTicksLimit,l),B=Math.max(1,Math.ceil(l/M));for(b=0;bt.value===e));return i>=0?t.setContext(this.getContext(i)).lineWidth:0}drawGrid(e){const t=this.options.grid,i=this.ctx,n=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(e));let o,r;const s=(e,t,n)=>{n.width&&n.color&&(i.save(),i.lineWidth=n.width,i.strokeStyle=n.color,i.setLineDash(n.borderDash||[]),i.lineDashOffset=n.borderDashOffset,i.beginPath(),i.moveTo(e.x,e.y),i.lineTo(t.x,t.y),i.stroke(),i.restore())};if(t.display)for(o=0,r=n.length;o{this.drawBackground(),this.drawGrid(e),this.drawTitle()}},{z:i+1,draw:()=>{this.drawBorder()}},{z:t,draw:e=>{this.drawLabels(e)}}]:[{z:t,draw:e=>{this.draw(e)}}]}getMatchingVisibleMetas(e){const t=this.chart.getSortedVisibleDatasetMetas(),i=this.axis+"AxisID",n=[];let o,r;for(o=0,r=t.length;o{const n=i.split("."),o=n.pop(),r=[e].concat(n).join("."),s=t[i].split("."),a=s.pop(),l=s.join(".");ze.route(r,o,l,a)}))}(t,e.defaultRoutes),e.descriptors&&ze.describe(t,e.descriptors)}(e,r,i),this.override&&ze.override(e.id,e.overrides)),r}get(e){return this.items[e]}unregister(e){const t=this.items,i=e.id,n=this.scope;i in t&&delete t[i],n&&i in ze[n]&&(delete ze[n][i],this.override&&delete Fe[i])}}var zn=new class{constructor(){this.controllers=new Wn(Ti,"datasets",!0),this.elements=new Wn(Rn,"elements"),this.plugins=new Wn(Object,"plugins"),this.scales=new Wn(jn,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...e){this._each("register",e)}remove(...e){this._each("unregister",e)}addControllers(...e){this._each("register",e,this.controllers)}addElements(...e){this._each("register",e,this.elements)}addPlugins(...e){this._each("register",e,this.plugins)}addScales(...e){this._each("register",e,this.scales)}getController(e){return this._get(e,this.controllers,"controller")}getElement(e){return this._get(e,this.elements,"element")}getPlugin(e){return this._get(e,this.plugins,"plugin")}getScale(e){return this._get(e,this.scales,"scale")}removeControllers(...e){this._each("unregister",e,this.controllers)}removeElements(...e){this._each("unregister",e,this.elements)}removePlugins(...e){this._each("unregister",e,this.plugins)}removeScales(...e){this._each("unregister",e,this.scales)}_each(e,t,i){[...t].forEach((t=>{const n=i||this._getRegistryForType(t);i||n.isForType(t)||n===this.plugins&&t.id?this._exec(e,n,t):A(t,(t=>{const n=i||this._getRegistryForType(t);this._exec(e,n,t)}))}))}_exec(e,t,i){const n=S(e);m(i["before"+n],[],i),t[e](i),m(i["after"+n],[],i)}_getRegistryForType(e){for(let t=0;te.filter((e=>!t.some((t=>e.plugin.id===t.plugin.id))));this._notify(n(t,i),e,"stop"),this._notify(n(i,t),e,"start")}}function qn(e,t){return t||!1!==e?!0===e?{}:e:null}function Vn(e,{plugin:t,local:i},n,o){const r=e.pluginScopeKeys(t),s=e.getOptionScopes(n,r);return i&&t.defaults&&s.push(t.defaults),e.createResolver(s,o,[""],{scriptable:!1,indexable:!1,allKeys:!0})}function Gn(e,t){const i=ze.datasets[e]||{};return((t.datasets||{})[e]||{}).indexAxis||t.indexAxis||i.indexAxis||"x"}function Yn(e,t){return"x"===e||"y"===e?e:t.axis||("top"===(i=t.position)||"bottom"===i?"x":"left"===i||"right"===i?"y":void 0)||e.charAt(0).toLowerCase();var i}function Xn(e){const t=e.options||(e.options={});t.plugins=f(t.plugins,{}),t.scales=function(e,t){const i=Fe[e.type]||{scales:{}},n=t.scales||{},o=Gn(e.type,t),r=Object.create(null),s=Object.create(null);return Object.keys(n).forEach((e=>{const t=n[e];if(!u(t))return console.error(`Invalid scale configuration for scale: ${e}`);if(t._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${e}`);const a=Yn(e,t),l=function(e,t){return e===t?"_index_":"_value_"}(a,o),c=i.scales||{};r[a]=r[a]||e,s[e]=x(Object.create(null),[{axis:a},t,c[a],c[l]])})),e.data.datasets.forEach((i=>{const o=i.type||e.type,a=i.indexAxis||Gn(o,t),l=(Fe[o]||{}).scales||{};Object.keys(l).forEach((e=>{const t=function(e,t){let i=e;return"_index_"===e?i=t:"_value_"===e&&(i="x"===t?"y":"x"),i}(e,a),o=i[t+"AxisID"]||r[t]||t;s[o]=s[o]||Object.create(null),x(s[o],[{axis:t},n[o],l[e]])}))})),Object.keys(s).forEach((e=>{const t=s[e];x(t,[ze.scales[t.type],ze.scale])})),s}(e,t)}function Kn(e){return(e=e||{}).datasets=e.datasets||[],e.labels=e.labels||[],e}const Qn=new Map,Zn=new Set;function Jn(e,t){let i=Qn.get(e);return i||(i=t(),Qn.set(e,i),Zn.add(i)),i}const eo=(e,t,i)=>{const n=k(t,i);void 0!==n&&e.add(n)};class to{constructor(e){this._config=function(e){return(e=e||{}).data=Kn(e.data),Xn(e),e}(e),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(e){this._config.type=e}get data(){return this._config.data}set data(e){this._config.data=Kn(e)}get options(){return this._config.options}set options(e){this._config.options=e}get plugins(){return this._config.plugins}update(){const e=this._config;this.clearCache(),Xn(e)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(e){return Jn(e,(()=>[[`datasets.${e}`,""]]))}datasetAnimationScopeKeys(e,t){return Jn(`${e}.transition.${t}`,(()=>[[`datasets.${e}.transitions.${t}`,`transitions.${t}`],[`datasets.${e}`,""]]))}datasetElementScopeKeys(e,t){return Jn(`${e}-${t}`,(()=>[[`datasets.${e}.elements.${t}`,`datasets.${e}`,`elements.${t}`,""]]))}pluginScopeKeys(e){const t=e.id;return Jn(`${this.type}-plugin-${t}`,(()=>[[`plugins.${t}`,...e.additionalOptionScopes||[]]]))}_cachedScopes(e,t){const i=this._scopeCache;let n=i.get(e);return n&&!t||(n=new Map,i.set(e,n)),n}getOptionScopes(e,t,i){const{options:n,type:o}=this,r=this._cachedScopes(e,i),s=r.get(t);if(s)return s;const a=new Set;t.forEach((t=>{e&&(a.add(e),t.forEach((t=>eo(a,e,t)))),t.forEach((e=>eo(a,n,e))),t.forEach((e=>eo(a,Fe[o]||{},e))),t.forEach((e=>eo(a,ze,e))),t.forEach((e=>eo(a,Ue,e)))}));const l=Array.from(a);return 0===l.length&&l.push(Object.create(null)),Zn.has(t)&&r.set(t,l),l}chartOptionScopes(){const{options:e,type:t}=this;return[e,Fe[t]||{},ze.datasets[t]||{},{type:t},ze,Ue]}resolveNamedOptions(e,t,i,n=[""]){const o={$shared:!0},{resolver:r,subPrefixes:s}=io(this._resolverCache,e,n);let a=r;(function(e,t){const{isScriptable:i,isIndexable:n}=wt(e);for(const o of t){const t=i(o),r=n(o),s=(r||t)&&e[o];if(t&&(M(s)||no(s))||r&&d(s))return!0}return!1})(r,t)&&(o.$shared=!1,a=yt(r,i=M(i)?i():i,this.createResolver(e,i,s)));for(const e of t)o[e]=a[e];return o}createResolver(e,t,i=[""],n){const{resolver:o}=io(this._resolverCache,e,i);return u(t)?yt(o,t,void 0,n):o}}function io(e,t,i){let n=e.get(t);n||(n=new Map,e.set(t,n));const o=i.join();let r=n.get(o);return r||(r={resolver:Ct(t,i),subPrefixes:i.filter((e=>!e.toLowerCase().includes("hover")))},n.set(o,r)),r}const no=e=>u(e)&&Object.getOwnPropertyNames(e).reduce(((t,i)=>t||M(e[i])),!1),oo=["top","bottom","left","right","chartArea"];function ro(e,t){return"top"===e||"bottom"===e||-1===oo.indexOf(e)&&"x"===t}function so(e,t){return function(i,n){return i[e]===n[e]?i[t]-n[t]:i[e]-n[e]}}function ao(e){const t=e.chart,i=t.options.animation;t.notifyPlugins("afterRender"),m(i&&i.onComplete,[e],t)}function lo(e){const t=e.chart,i=t.options.animation;m(i&&i.onProgress,[e],t)}function co(e){return Ut()&&"string"==typeof e?e=document.getElementById(e):e&&e.length&&(e=e[0]),e&&e.canvas&&(e=e.canvas),e}const uo={},ho=e=>{const t=co(e);return Object.values(uo).filter((e=>e.canvas===t)).pop()};function po(e,t,i){const n=Object.keys(e);for(const o of n){const n=+o;if(n>=t){const r=e[o];delete e[o],(i>0||n>t)&&(e[n+i]=r)}}}class fo{constructor(e,t){const i=this.config=new to(t),n=co(e),o=ho(n);if(o)throw new Error("Canvas is already in use. Chart with ID '"+o.id+"' must be destroyed before the canvas with ID '"+o.canvas.id+"' can be reused.");const r=i.createResolver(i.chartOptionScopes(),this.getContext());this.platform=new(i.platform||Bn(n)),this.platform.updateConfig(i);const s=this.platform.acquireContext(n,r.aspectRatio),a=s&&s.canvas,c=a&&a.height,d=a&&a.width;this.id=l(),this.ctx=s,this.canvas=a,this.width=d,this.height=c,this._options=r,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new Hn,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=function(e,t){let i;return function(...n){return t?(clearTimeout(i),i=setTimeout(e,t,n)):e.apply(this,n),t}}((e=>this.update(e)),r.resizeDelay||0),this._dataChanges=[],uo[this.id]=this,s&&a?(ui.listen(this,"complete",ao),ui.listen(this,"progress",lo),this._initialize(),this.attached&&this.update()):console.error("Failed to create chart: can't acquire context from the given item")}get aspectRatio(){const{options:{aspectRatio:e,maintainAspectRatio:t},width:i,height:n,_aspectRatio:o}=this;return c(e)?t&&o?o:n?i/n:null:e}get data(){return this.config.data}set data(e){this.config.data=e}get options(){return this._options}set options(e){this.config.options=e}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():Yt(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return Ge(this.canvas,this.ctx),this}stop(){return ui.stop(this),this}resize(e,t){ui.running(this)?this._resizeBeforeDraw={width:e,height:t}:this._resize(e,t)}_resize(e,t){const i=this.options,n=this.canvas,o=i.maintainAspectRatio&&this.aspectRatio,r=this.platform.getMaximumSize(n,e,t,o),s=i.devicePixelRatio||this.platform.getDevicePixelRatio(),a=this.width?"resize":"attach";this.width=r.width,this.height=r.height,this._aspectRatio=this.aspectRatio,Yt(this,s,!0)&&(this.notifyPlugins("resize",{size:r}),m(i.onResize,[this,r],this),this.attached&&this._doResize(a)&&this.render())}ensureScalesHaveIDs(){A(this.options.scales||{},((e,t)=>{e.id=t}))}buildOrUpdateScales(){const e=this.options,t=e.scales,i=this.scales,n=Object.keys(i).reduce(((e,t)=>(e[t]=!1,e)),{});let o=[];t&&(o=o.concat(Object.keys(t).map((e=>{const i=t[e],n=Yn(e,i),o="r"===n,r="x"===n;return{options:i,dposition:o?"chartArea":r?"bottom":"left",dtype:o?"radialLinear":r?"category":"linear"}})))),A(o,(t=>{const o=t.options,r=o.id,s=Yn(r,o),a=f(o.type,t.dtype);void 0!==o.position&&ro(o.position,s)===ro(t.dposition)||(o.position=t.dposition),n[r]=!0;let l=null;r in i&&i[r].type===a?l=i[r]:(l=new(zn.getScale(a))({id:r,type:a,ctx:this.ctx,chart:this}),i[l.id]=l),l.init(o,e)})),A(n,((e,t)=>{e||delete i[t]})),A(i,(e=>{pn.configure(this,e,e.options),pn.addBox(this,e)}))}_updateMetasets(){const e=this._metasets,t=this.data.datasets.length,i=e.length;if(e.sort(((e,t)=>e.index-t.index)),i>t){for(let e=t;et.length&&delete this._stacks,e.forEach(((e,i)=>{0===t.filter((t=>t===e._dataset)).length&&this._destroyDatasetMeta(i)}))}buildOrUpdateControllers(){const e=[],t=this.data.datasets;let i,n;for(this._removeUnreferencedMetasets(),i=0,n=t.length;i{this.getDatasetMeta(t).controller.reset()}),this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(e){const t=this.config;t.update();const i=this._options=t.createResolver(t.chartOptionScopes(),this.getContext()),n=this._animationsDisabled=!i.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),!1===this.notifyPlugins("beforeUpdate",{mode:e,cancelable:!0}))return;const o=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let r=0;for(let e=0,t=this.data.datasets.length;e{e.reset()})),this._updateDatasets(e),this.notifyPlugins("afterUpdate",{mode:e}),this._layers.sort(so("z","_idx"));const{_active:s,_lastEvent:a}=this;a?this._eventHandler(a,!0):s.length&&this._updateHoverStyles(s,s,!0),this.render()}_updateScales(){A(this.scales,(e=>{pn.removeBox(this,e)})),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){const e=this.options,t=new Set(Object.keys(this._listeners)),i=new Set(e.events);B(t,i)&&!!this._responsiveListeners===e.responsive||(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){const{_hiddenIndices:e}=this,t=this._getUniformDataChanges()||[];for(const{method:i,start:n,count:o}of t)po(e,n,"_removeElements"===i?-o:o)}_getUniformDataChanges(){const e=this._dataChanges;if(!e||!e.length)return;this._dataChanges=[];const t=this.data.datasets.length,i=t=>new Set(e.filter((e=>e[0]===t)).map(((e,t)=>t+","+e.splice(1).join(",")))),n=i(0);for(let e=1;ee.split(","))).map((e=>({method:e[1],start:+e[2],count:+e[3]})))}_updateLayout(e){if(!1===this.notifyPlugins("beforeLayout",{cancelable:!0}))return;pn.update(this,this.width,this.height,e);const t=this.chartArea,i=t.width<=0||t.height<=0;this._layers=[],A(this.boxes,(e=>{i&&"chartArea"===e.position||(e.configure&&e.configure(),this._layers.push(...e._layers()))}),this),this._layers.forEach(((e,t)=>{e._idx=t})),this.notifyPlugins("afterLayout")}_updateDatasets(e){if(!1!==this.notifyPlugins("beforeDatasetsUpdate",{mode:e,cancelable:!0})){for(let e=0,t=this.data.datasets.length;e=0;--t)this._drawDataset(e[t]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(e){const t=this.ctx,i=e._clip,n=!i.disabled,o=this.chartArea,r={meta:e,index:e.index,cancelable:!0};!1!==this.notifyPlugins("beforeDatasetDraw",r)&&(n&&Qe(t,{left:!1===i.left?0:o.left-i.left,right:!1===i.right?this.width:o.right+i.right,top:!1===i.top?0:o.top-i.top,bottom:!1===i.bottom?this.height:o.bottom+i.bottom}),e.controller.draw(),n&&Ze(t),r.cancelable=!1,this.notifyPlugins("afterDatasetDraw",r))}isPointInArea(e){return Ke(e,this.chartArea,this._minPadding)}getElementsAtEventForMode(e,t,i,n){const o=en.modes[t];return"function"==typeof o?o(this,e,i,n):[]}getDatasetMeta(e){const t=this.data.datasets[e],i=this._metasets;let n=i.filter((e=>e&&e._dataset===t)).pop();return n||(n={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:t&&t.order||0,index:e,_dataset:t,_parsed:[],_sorted:!1},i.push(n)),n}getContext(){return this.$context||(this.$context=pt(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(e){const t=this.data.datasets[e];if(!t)return!1;const i=this.getDatasetMeta(e);return"boolean"==typeof i.hidden?!i.hidden:!t.hidden}setDatasetVisibility(e,t){this.getDatasetMeta(e).hidden=!t}toggleDataVisibility(e){this._hiddenIndices[e]=!this._hiddenIndices[e]}getDataVisibility(e){return!this._hiddenIndices[e]}_updateVisibility(e,t,i){const n=i?"show":"hide",o=this.getDatasetMeta(e),r=o.controller._resolveAnimations(void 0,n);T(t)?(o.data[t].hidden=!i,this.update()):(this.setDatasetVisibility(e,i),r.update(o,{visible:i}),this.update((t=>t.datasetIndex===e?n:void 0)))}hide(e,t){this._updateVisibility(e,t,!1)}show(e,t){this._updateVisibility(e,t,!0)}_destroyDatasetMeta(e){const t=this._metasets[e];t&&t.controller&&t.controller._destroy(),delete this._metasets[e]}_stop(){let e,t;for(this.stop(),ui.remove(this),e=0,t=this.data.datasets.length;e{t.addEventListener(this,i,n),e[i]=n},n=(e,t,i)=>{e.offsetX=t,e.offsetY=i,this._eventHandler(e)};A(this.options.events,(e=>i(e,n)))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});const e=this._responsiveListeners,t=this.platform,i=(i,n)=>{t.addEventListener(this,i,n),e[i]=n},n=(i,n)=>{e[i]&&(t.removeEventListener(this,i,n),delete e[i])},o=(e,t)=>{this.canvas&&this.resize(e,t)};let r;const s=()=>{n("attach",s),this.attached=!0,this.resize(),i("resize",o),i("detach",r)};r=()=>{this.attached=!1,n("resize",o),this._stop(),this._resize(0,0),i("attach",s)},t.isAttached(this.canvas)?s():r()}unbindEvents(){A(this._listeners,((e,t)=>{this.platform.removeEventListener(this,t,e)})),this._listeners={},A(this._responsiveListeners,((e,t)=>{this.platform.removeEventListener(this,t,e)})),this._responsiveListeners=void 0}updateHoverStyle(e,t,i){const n=i?"set":"remove";let o,r,s,a;for("dataset"===t&&(o=this.getDatasetMeta(e[0].datasetIndex),o.controller["_"+n+"DatasetHoverStyle"]()),s=0,a=e.length;s{const i=this.getDatasetMeta(e);if(!i)throw new Error("No dataset found at index "+e);return{datasetIndex:e,element:i.data[t],index:t}}));!b(i,t)&&(this._active=i,this._lastEvent=null,this._updateHoverStyles(i,t))}notifyPlugins(e,t,i){return this._plugins.notify(this,e,t,i)}_updateHoverStyles(e,t,i){const n=this.options.hover,o=(e,t)=>e.filter((e=>!t.some((t=>e.datasetIndex===t.datasetIndex&&e.index===t.index)))),r=o(t,e),s=i?e:o(e,t);r.length&&this.updateHoverStyle(r,n.mode,!1),s.length&&n.mode&&this.updateHoverStyle(s,n.mode,!0)}_eventHandler(e,t){const i={event:e,replay:t,cancelable:!0,inChartArea:this.isPointInArea(e)},n=t=>(t.options.events||this.options.events).includes(e.native.type);if(!1===this.notifyPlugins("beforeEvent",i,n))return;const o=this._handleEvent(e,t,i.inChartArea);return i.cancelable=!1,this.notifyPlugins("afterEvent",i,n),(o||i.changed)&&this.render(),this}_handleEvent(e,t,i){const{_active:n=[],options:o}=this,r=t,s=this._getActiveElements(e,n,i,r),a=function(e){return"mouseup"===e.type||"click"===e.type||"contextmenu"===e.type}(e),l=function(e,t,i,n){return i&&"mouseout"!==e.type?n?t:e:null}(e,this._lastEvent,i,a);i&&(this._lastEvent=null,m(o.onHover,[e,s,this],this),a&&m(o.onClick,[e,s,this],this));const c=!b(s,n);return(c||t)&&(this._active=s,this._updateHoverStyles(s,n,t)),this._lastEvent=l,c}_getActiveElements(e,t,i,n){if("mouseout"===e.type)return[];if(!i)return t;const o=this.options.hover;return this.getElementsAtEventForMode(e,o.mode,o,n)}}const go=()=>A(fo.instances,(e=>e._plugins.invalidate())),mo=!0;function Ao(e,t,i){const{startAngle:n,pixelMargin:o,x:r,y:s,outerRadius:a,innerRadius:l}=t;let c=o/a;e.beginPath(),e.arc(r,s,a,n-c,i+c),l>o?(c=o/l,e.arc(r,s,l,i+c,n-c,!0)):e.arc(r,s,o,i+$,n-$),e.closePath(),e.clip()}function bo(e,t,i,n){return{x:i+e*Math.cos(t),y:n+e*Math.sin(t)}}function vo(e,t,i,n,o){const{x:r,y:s,startAngle:a,pixelMargin:l,innerRadius:c}=t,d=Math.max(t.outerRadius+n+i-l,0),u=c>0?c+n+i+l:0;let h=0;const p=o-a;if(n){const e=((c>0?c-n:0)+(d>0?d-n:0))/2;h=(p-(0!==e?p*e/(e+n):p))/2}const f=(p-Math.max(.001,p*d-i/R)/d)/2,g=a+f+h,m=o-f-h,{outerStart:A,outerEnd:b,innerStart:v,innerEnd:C}=function(e,t,i,n){const o=at(e.options.borderRadius,["outerStart","outerEnd","innerStart","innerEnd"]),r=(i-t)/2,s=Math.min(r,n*t/2),a=e=>{const t=(i-Math.min(r,e))*n/2;return J(e,0,Math.min(r,t))};return{outerStart:a(o.outerStart),outerEnd:a(o.outerEnd),innerStart:J(o.innerStart,0,s),innerEnd:J(o.innerEnd,0,s)}}(t,u,d,m-g),y=d-A,w=d-b,x=g+A/y,_=m-b/w,E=u+v,k=u+C,S=g+v/E,T=m-C/k;if(e.beginPath(),e.arc(r,s,d,x,_),b>0){const t=bo(w,_,r,s);e.arc(t.x,t.y,b,_,m+$)}const M=bo(k,m,r,s);if(e.lineTo(M.x,M.y),C>0){const t=bo(k,T,r,s);e.arc(t.x,t.y,C,m+$,T+Math.PI)}if(e.arc(r,s,u,m-C/u,g+v/u,!0),v>0){const t=bo(E,S,r,s);e.arc(t.x,t.y,v,S+Math.PI,g-$)}const B=bo(y,g,r,s);if(e.lineTo(B.x,B.y),A>0){const t=bo(y,x,r,s);e.arc(t.x,t.y,A,g-$,x)}e.closePath()}Object.defineProperties(fo,{defaults:{enumerable:mo,value:ze},instances:{enumerable:mo,value:uo},overrides:{enumerable:mo,value:Fe},registry:{enumerable:mo,value:zn},version:{enumerable:mo,value:"3.8.2"},getChart:{enumerable:mo,value:ho},register:{enumerable:mo,value:(...e)=>{zn.add(...e),go()}},unregister:{enumerable:mo,value:(...e)=>{zn.remove(...e),go()}}});class Co extends Rn{constructor(e){super(),this.options=void 0,this.circumference=void 0,this.startAngle=void 0,this.endAngle=void 0,this.innerRadius=void 0,this.outerRadius=void 0,this.pixelMargin=0,this.fullCircles=0,e&&Object.assign(this,e)}inRange(e,t,i){const n=this.getProps(["x","y"],i),{angle:o,distance:r}=Y(n,{x:e,y:t}),{startAngle:s,endAngle:a,innerRadius:l,outerRadius:c,circumference:d}=this.getProps(["startAngle","endAngle","innerRadius","outerRadius","circumference"],i),u=this.options.spacing/2,h=f(d,a-s)>=I||Z(o,s,a),p=ee(r,l+u,c+u);return h&&p}getCenterPoint(e){const{x:t,y:i,startAngle:n,endAngle:o,innerRadius:r,outerRadius:s}=this.getProps(["x","y","startAngle","endAngle","innerRadius","outerRadius","circumference"],e),{offset:a,spacing:l}=this.options,c=(n+o)/2,d=(r+s+l+a)/2;return{x:t+Math.cos(c)*d,y:i+Math.sin(c)*d}}tooltipPosition(e){return this.getCenterPoint(e)}draw(e){const{options:t,circumference:i}=this,n=(t.offset||0)/2,o=(t.spacing||0)/2;if(this.pixelMargin="inner"===t.borderAlign?.33:0,this.fullCircles=i>I?Math.floor(i/I):0,0===i||this.innerRadius<0||this.outerRadius<0)return;e.save();let r=0;if(n){r=n/2;const t=(this.startAngle+this.endAngle)/2;e.translate(Math.cos(t)*r,Math.sin(t)*r),this.circumference>=R&&(r=n)}e.fillStyle=t.backgroundColor,e.strokeStyle=t.borderColor;const s=function(e,t,i,n){const{fullCircles:o,startAngle:r,circumference:s}=t;let a=t.endAngle;if(o){vo(e,t,i,n,r+I);for(let t=0;ta&&r>a;return{count:n,start:l,loop:t.loop,ilen:c(s+(c?a-e:e))%r,v=()=>{p!==f&&(e.lineTo(m,f),e.lineTo(m,p),e.lineTo(m,g))};for(l&&(u=o[b(0)],e.moveTo(u.x,u.y)),d=0;d<=a;++d){if(u=o[b(d)],u.skip)continue;const t=u.x,i=u.y,n=0|t;n===h?(if&&(f=i),m=(A*m+t)/++A):(v(),e.lineTo(t,i),h=n,A=0,p=f=i),g=i}v()}function ko(e){const t=e.options,i=t.borderDash&&t.borderDash.length;return e._decimated||e._loop||t.tension||"monotone"===t.cubicInterpolationMode||t.stepped||i?_o:Eo}Co.id="arc",Co.defaults={borderAlign:"center",borderColor:"#fff",borderJoinStyle:void 0,borderRadius:0,borderWidth:2,offset:0,spacing:0,angle:void 0},Co.defaultRoutes={backgroundColor:"backgroundColor"};const So="function"==typeof Path2D;class To extends Rn{constructor(e){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,e&&Object.assign(this,e)}updateControlPoints(e,t){const i=this.options;if((i.tension||"monotone"===i.cubicInterpolationMode)&&!i.stepped&&!this._pointsUpdated){const n=i.spanGaps?this._loop:this._fullLoop;Ft(this._points,i,e,n,t),this._pointsUpdated=!0}}set points(e){this._points=e,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=function(e,t){const i=e.points,n=e.options.spanGaps,o=i.length;if(!o)return[];const r=!!e._loop,{start:s,end:a}=function(e,t,i,n){let o=0,r=t-1;if(i&&!n)for(;oo&&e[r%t].skip;)r--;return r%=t,{start:o,end:r}}(i,o,r,n);return function(e,t,i,n){return n&&n.setContext&&i?function(e,t,i,n){const o=e._chart.getContext(),r=ci(e.options),{_datasetIndex:s,options:{spanGaps:a}}=e,l=i.length,c=[];let d=r,u=t[0].start,h=u;function p(e,t,n,o){const r=a?-1:1;if(e!==t){for(e+=l;i[e%l].skip;)e-=r;for(;i[t%l].skip;)t+=r;e%l!=t%l&&(c.push({start:e%l,end:t%l,loop:n,style:o}),d=o,u=t%l)}}for(const e of t){u=a?u:e.start;let t,r=i[u%l];for(h=u+1;h<=e.end;h++){const a=i[h%l];t=ci(n.setContext(pt(o,{type:"segment",p0:r,p1:a,p0DataIndex:(h-1)%l,p1DataIndex:h%l,datasetIndex:s}))),di(t,d)&&p(u,h-1,e.loop,d),r=a,d=t}u"borderDash"!==e&&"fill"!==e};class Bo extends Rn{constructor(e){super(),this.options=void 0,this.parsed=void 0,this.skip=void 0,this.stop=void 0,e&&Object.assign(this,e)}inRange(e,t,i){const n=this.options,{x:o,y:r}=this.getProps(["x","y"],i);return Math.pow(e-o,2)+Math.pow(t-r,2){No(e)}))}var Uo={id:"decimation",defaults:{algorithm:"min-max",enabled:!1},beforeElementsUpdate:(e,t,i)=>{if(!i.enabled)return void Fo(e);const n=e.width;e.data.datasets.forEach(((t,o)=>{const{_data:r,indexAxis:s}=t,a=e.getDatasetMeta(o),l=r||t.data;if("y"===ht([s,e.options.indexAxis]))return;if(!a.controller.supportsDecimation)return;const d=e.scales[a.xAxisID];if("linear"!==d.type&&"time"!==d.type)return;if(e.options.parsing)return;let u,{start:h,count:p}=function(e,t){const i=t.length;let n,o=0;const{iScale:r}=e,{min:s,max:a,minDefined:l,maxDefined:c}=r.getUserBounds();return l&&(o=J(gt(t,r.axis,s).lo,0,i-1)),n=c?J(gt(t,r.axis,a).hi+1,o,i)-o:i-o,{start:o,count:n}}(a,l);if(p<=(i.threshold||4*n))No(t);else{switch(c(r)&&(t._data=l,delete t.data,Object.defineProperty(t,"data",{configurable:!0,enumerable:!0,get:function(){return this._decimated},set:function(e){this._data=e}})),i.algorithm){case"lttb":u=function(e,t,i,n,o){const r=o.samples||n;if(r>=i)return e.slice(t,t+i);const s=[],a=(i-2)/(r-2);let l=0;const c=t+i-1;let d,u,h,p,f,g=t;for(s[l++]=e[g],d=0;dh&&(h=p,u=e[n],f=n);s[l++]=u,g=f}return s[l++]=e[c],s}(l,h,p,n,i);break;case"min-max":u=function(e,t,i,n){let o,r,s,a,l,d,u,h,p,f,g=0,m=0;const A=[],b=t+i-1,v=e[t].x,C=e[b].x-v;for(o=t;of&&(f=a,u=o),g=(m*g+r.x)/++m;else{const i=o-1;if(!c(d)&&!c(u)){const t=Math.min(d,u),n=Math.max(d,u);t!==h&&t!==i&&A.push({...e[t],x:g}),n!==h&&n!==i&&A.push({...e[n],x:g})}o>0&&i!==h&&A.push(e[i]),A.push(r),l=t,m=0,p=f=a,d=u=h=o}}return A}(l,h,p,n);break;default:throw new Error(`Unsupported decimation algorithm '${i.algorithm}'`)}t._decimated=u}}))},destroy(e){Fo(e)}};function jo(e,t,i,n){if(n)return;let o=t[e],r=i[e];return"angle"===e&&(o=Q(o),r=Q(r)),{property:e,start:o,end:r}}function Wo(e,t,i){for(;t>e;t--){const e=i[t];if(!isNaN(e.x)&&!isNaN(e.y))break}return t}function zo(e,t,i,n){return e&&t?n(e[i],t[i]):e?e[i]:t?t[i]:0}function Ho(e,t){let i=[],n=!1;return d(e)?(n=!0,i=e):i=function(e,t){const{x:i=null,y:n=null}=e||{},o=t.points,r=[];return t.segments.forEach((({start:e,end:t})=>{t=Wo(e,t,o);const s=o[e],a=o[t];null!==n?(r.push({x:s.x,y:n}),r.push({x:a.x,y:n})):null!==i&&(r.push({x:i,y:s.y}),r.push({x:i,y:a.y}))})),r}(e,t),i.length?new To({points:i,options:{tension:0},_loop:n,_fullLoop:n}):null}function qo(e){return e&&!1!==e.fill}function Vo(e,t,i){let n=e[t].fill;const o=[t];let r;if(!i)return n;for(;!1!==n&&-1===o.indexOf(n);){if(!h(n))return n;if(r=e[n],!r)return!1;if(r.visible)return n;o.push(n),n=r.fill}return!1}function Go(e,t,i){const n=function(e){const t=e.options,i=t.fill;let n=f(i&&i.target,i);return void 0===n&&(n=!!t.backgroundColor),!1!==n&&null!==n&&(!0===n?"origin":n)}(e);if(u(n))return!isNaN(n.value)&&n;let o=parseFloat(n);return h(o)&&Math.floor(o)===o?function(e,t,i,n){return"-"!==e&&"+"!==e||(i=t+i),!(i===t||i<0||i>=n)&&i}(n[0],t,o,i):["origin","start","end","stack","shape"].indexOf(n)>=0&&n}function Yo(e,t,i){const n=[];for(let o=0;o=0;--t){const i=o[t].$filler;i&&(i.line.updateControlPoints(r,i.axis),n&&i.fill&&Qo(e.ctx,i,r))}},beforeDatasetsDraw(e,t,i){if("beforeDatasetsDraw"!==i.drawTime)return;const n=e.getSortedVisibleDatasetMetas();for(let t=n.length-1;t>=0;--t){const i=n[t].$filler;qo(i)&&Qo(e.ctx,i,e.chartArea)}},beforeDatasetDraw(e,t,i){const n=t.meta.$filler;qo(n)&&"beforeDatasetDraw"===i.drawTime&&Qo(e.ctx,n,e.chartArea)},defaults:{propagate:!0,drawTime:"beforeDatasetDraw"}};const nr=(e,t)=>{let{boxHeight:i=t,boxWidth:n=t}=e;return e.usePointStyle&&(i=Math.min(i,t),n=e.pointStyleWidth||Math.min(n,t)),{boxWidth:n,boxHeight:i,itemHeight:Math.max(t,i)}};class or extends Rn{constructor(e){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=e.chart,this.options=e.options,this.ctx=e.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(e,t,i){this.maxWidth=e,this.maxHeight=t,this._margins=i,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){const e=this.options.labels||{};let t=m(e.generateLabels,[this.chart],this)||[];e.filter&&(t=t.filter((t=>e.filter(t,this.chart.data)))),e.sort&&(t=t.sort(((t,i)=>e.sort(t,i,this.chart.data)))),this.options.reverse&&t.reverse(),this.legendItems=t}fit(){const{options:e,ctx:t}=this;if(!e.display)return void(this.width=this.height=0);const i=e.labels,n=ut(i.font),o=n.size,r=this._computeTitleHeight(),{boxWidth:s,itemHeight:a}=nr(i,o);let l,c;t.font=n.string,this.isHorizontal()?(l=this.maxWidth,c=this._fitRows(r,o,s,a)+10):(c=this.maxHeight,l=this._fitCols(r,o,s,a)+10),this.width=Math.min(l,e.maxWidth||this.maxWidth),this.height=Math.min(c,e.maxHeight||this.maxHeight)}_fitRows(e,t,i,n){const{ctx:o,maxWidth:r,options:{labels:{padding:s}}}=this,a=this.legendHitBoxes=[],l=this.lineWidths=[0],c=n+s;let d=e;o.textAlign="left",o.textBaseline="middle";let u=-1,h=-c;return this.legendItems.forEach(((e,p)=>{const f=i+t/2+o.measureText(e.text).width;(0===p||l[l.length-1]+f+2*s>r)&&(d+=c,l[l.length-(p>0?0:1)]=0,h+=c,u++),a[p]={left:0,top:h,row:u,width:f,height:n},l[l.length-1]+=f+s})),d}_fitCols(e,t,i,n){const{ctx:o,maxHeight:r,options:{labels:{padding:s}}}=this,a=this.legendHitBoxes=[],l=this.columnSizes=[],c=r-e;let d=s,u=0,h=0,p=0,f=0;return this.legendItems.forEach(((e,r)=>{const g=i+t/2+o.measureText(e.text).width;r>0&&h+n+2*s>c&&(d+=u+s,l.push({width:u,height:h}),p+=u+s,f++,u=h=0),a[r]={left:p,top:h,col:f,width:g,height:n},u=Math.max(u,g),h+=n+s})),d+=u,l.push({width:u,height:h}),d}adjustHitBoxes(){if(!this.options.display)return;const e=this._computeTitleHeight(),{legendHitBoxes:t,options:{align:i,labels:{padding:n},rtl:o}}=this,r=ii(o,this.left,this.width);if(this.isHorizontal()){let o=0,a=s(i,this.left+n,this.right-this.lineWidths[o]);for(const l of t)o!==l.row&&(o=l.row,a=s(i,this.left+n,this.right-this.lineWidths[o])),l.top+=this.top+e+n,l.left=r.leftForLtr(r.x(a),l.width),a+=l.width+n}else{let o=0,a=s(i,this.top+e+n,this.bottom-this.columnSizes[o].height);for(const l of t)l.col!==o&&(o=l.col,a=s(i,this.top+e+n,this.bottom-this.columnSizes[o].height)),l.top=a,l.left+=this.left+n,l.left=r.leftForLtr(r.x(l.left),l.width),a+=l.height+n}}isHorizontal(){return"top"===this.options.position||"bottom"===this.options.position}draw(){if(this.options.display){const e=this.ctx;Qe(e,this),this._draw(),Ze(e)}}_draw(){const{options:e,columnSizes:t,lineWidths:i,ctx:n}=this,{align:o,labels:r}=e,a=ze.color,l=ii(e.rtl,this.left,this.width),c=ut(r.font),{color:d,padding:u}=r,h=c.size,p=h/2;let g;this.drawTitle(),n.textAlign=l.textAlign("left"),n.textBaseline="middle",n.lineWidth=.5,n.font=c.string;const{boxWidth:m,boxHeight:A,itemHeight:b}=nr(r,h),v=this.isHorizontal(),C=this._computeTitleHeight();g=v?{x:s(o,this.left+u,this.right-i[0]),y:this.top+u+C,line:0}:{x:this.left+u,y:s(o,this.top+C+u,this.bottom-t[0].height),line:0},ni(this.ctx,e.textDirection);const y=b+u;this.legendItems.forEach(((w,x)=>{n.strokeStyle=w.fontColor||d,n.fillStyle=w.fontColor||d;const _=n.measureText(w.text).width,E=l.textAlign(w.textAlign||(w.textAlign=r.textAlign)),k=m+p+_;let S=g.x,T=g.y;l.setWidth(this.width),v?x>0&&S+k+u>this.right&&(T=g.y+=y,g.line++,S=g.x=s(o,this.left+u,this.right-i[g.line])):x>0&&T+y>this.bottom&&(S=g.x=S+t[g.line].width+u,g.line++,T=g.y=s(o,this.top+C+u,this.bottom-t[g.line].height)),function(e,t,i){if(isNaN(m)||m<=0||isNaN(A)||A<0)return;n.save();const o=f(i.lineWidth,1);if(n.fillStyle=f(i.fillStyle,a),n.lineCap=f(i.lineCap,"butt"),n.lineDashOffset=f(i.lineDashOffset,0),n.lineJoin=f(i.lineJoin,"miter"),n.lineWidth=o,n.strokeStyle=f(i.strokeStyle,a),n.setLineDash(f(i.lineDash,[])),r.usePointStyle){const r={radius:A*Math.SQRT2/2,pointStyle:i.pointStyle,rotation:i.rotation,borderWidth:o},s=l.xPlus(e,m/2);Xe(n,r,s,t+p,m)}else{const r=t+Math.max((h-A)/2,0),s=l.leftForLtr(e,m),a=ct(i.borderRadius);n.beginPath(),Object.values(a).some((e=>0!==e))?nt(n,{x:s,y:r,w:m,h:A,radius:a}):n.rect(s,r,m,A),n.fill(),0!==o&&n.stroke()}n.restore()}(l.x(S),T,w),S=((e,t,i,n)=>e===(n?"left":"right")?i:"center"===e?(t+i)/2:t)(E,S+m+p,v?S+k:this.right,e.rtl),function(e,t,i){tt(n,i.text,e,t+b/2,c,{strikethrough:i.hidden,textAlign:l.textAlign(i.textAlign)})}(l.x(S),T,w),v?g.x+=k+u:g.y+=y})),oi(this.ctx,e.textDirection)}drawTitle(){const e=this.options,t=e.title,i=ut(t.font),n=dt(t.padding);if(!t.display)return;const o=ii(e.rtl,this.left,this.width),a=this.ctx,l=t.position,c=i.size/2,d=n.top+c;let u,h=this.left,p=this.width;if(this.isHorizontal())p=Math.max(...this.lineWidths),u=this.top+d,h=s(e.align,h,this.right-p);else{const t=this.columnSizes.reduce(((e,t)=>Math.max(e,t.height)),0);u=d+s(e.align,this.top,this.bottom-t-e.labels.padding-this._computeTitleHeight())}const f=s(l,h,h+p);a.textAlign=o.textAlign(r(l)),a.textBaseline="middle",a.strokeStyle=t.color,a.fillStyle=t.color,a.font=i.string,tt(a,t.text,f,u,i)}_computeTitleHeight(){const e=this.options.title,t=ut(e.font),i=dt(e.padding);return e.display?t.lineHeight+i.height:0}_getLegendItemAt(e,t){let i,n,o;if(ee(e,this.left,this.right)&&ee(t,this.top,this.bottom))for(o=this.legendHitBoxes,i=0;ie.chart.options.color,boxWidth:40,padding:10,generateLabels(e){const t=e.data.datasets,{labels:{usePointStyle:i,pointStyle:n,textAlign:o,color:r}}=e.legend.options;return e._getSortedDatasetMetas().map((e=>{const s=e.controller.getStyle(i?0:void 0),a=dt(s.borderWidth);return{text:t[e.index].label,fillStyle:s.backgroundColor,fontColor:r,hidden:!e.visible,lineCap:s.borderCapStyle,lineDash:s.borderDash,lineDashOffset:s.borderDashOffset,lineJoin:s.borderJoinStyle,lineWidth:(a.width+a.height)/4,strokeStyle:s.borderColor,pointStyle:n||s.pointStyle,rotation:s.rotation,textAlign:o||s.textAlign,borderRadius:0,datasetIndex:e.index}}),this)}},title:{color:e=>e.chart.options.color,display:!1,position:"center",text:""}},descriptors:{_scriptable:e=>!e.startsWith("on"),labels:{_scriptable:e=>!["generateLabels","filter","sort"].includes(e)}}};class sr extends Rn{constructor(e){super(),this.chart=e.chart,this.options=e.options,this.ctx=e.ctx,this._padding=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(e,t){const i=this.options;if(this.left=0,this.top=0,!i.display)return void(this.width=this.height=this.right=this.bottom=0);this.width=this.right=e,this.height=this.bottom=t;const n=d(i.text)?i.text.length:1;this._padding=dt(i.padding);const o=n*ut(i.font).lineHeight+this._padding.height;this.isHorizontal()?this.height=o:this.width=o}isHorizontal(){const e=this.options.position;return"top"===e||"bottom"===e}_drawArgs(e){const{top:t,left:i,bottom:n,right:o,options:r}=this,a=r.align;let l,c,d,u=0;return this.isHorizontal()?(c=s(a,i,o),d=t+e,l=o-i):("left"===r.position?(c=i+e,d=s(a,n,t),u=-.5*R):(c=o-e,d=s(a,t,n),u=.5*R),l=n-t),{titleX:c,titleY:d,maxWidth:l,rotation:u}}draw(){const e=this.ctx,t=this.options;if(!t.display)return;const i=ut(t.font),n=i.lineHeight/2+this._padding.top,{titleX:o,titleY:s,maxWidth:a,rotation:l}=this._drawArgs(n);tt(e,t.text,0,0,i,{color:t.color,maxWidth:a,rotation:l,textAlign:r(t.align),textBaseline:"middle",translation:[o,s]})}}var ar={id:"title",_element:sr,start(e,t,i){!function(e,t){const i=new sr({ctx:e.ctx,options:t,chart:e});pn.configure(e,i,t),pn.addBox(e,i),e.titleBlock=i}(e,i)},stop(e){const t=e.titleBlock;pn.removeBox(e,t),delete e.titleBlock},beforeUpdate(e,t,i){const n=e.titleBlock;pn.configure(e,n,i),n.options=i},defaults:{align:"center",display:!1,font:{weight:"bold"},fullSize:!0,padding:10,position:"top",text:"",weight:2e3},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}};const lr=new WeakMap;var cr={id:"subtitle",start(e,t,i){const n=new sr({ctx:e.ctx,options:i,chart:e});pn.configure(e,n,i),pn.addBox(e,n),lr.set(e,n)},stop(e){pn.removeBox(e,lr.get(e)),lr.delete(e)},beforeUpdate(e,t,i){const n=lr.get(e);pn.configure(e,n,i),n.options=i},defaults:{align:"center",display:!1,font:{weight:"normal"},fullSize:!0,padding:0,position:"top",text:"",weight:1500},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}};const dr={average(e){if(!e.length)return!1;let t,i,n=0,o=0,r=0;for(t=0,i=e.length;t-1?e.split("\n"):e}function pr(e,t){const{element:i,datasetIndex:n,index:o}=t,r=e.getDatasetMeta(n).controller,{label:s,value:a}=r.getLabelAndValue(o);return{chart:e,label:s,parsed:r.getParsed(o),raw:e.data.datasets[n].data[o],formattedValue:a,dataset:r.getDataset(),dataIndex:o,datasetIndex:n,element:i}}function fr(e,t){const i=e.chart.ctx,{body:n,footer:o,title:r}=e,{boxWidth:s,boxHeight:a}=t,l=ut(t.bodyFont),c=ut(t.titleFont),d=ut(t.footerFont),u=r.length,h=o.length,p=n.length,f=dt(t.padding);let g=f.height,m=0,b=n.reduce(((e,t)=>e+t.before.length+t.lines.length+t.after.length),0);b+=e.beforeBody.length+e.afterBody.length,u&&(g+=u*c.lineHeight+(u-1)*t.titleSpacing+t.titleMarginBottom),b&&(g+=p*(t.displayColors?Math.max(a,l.lineHeight):l.lineHeight)+(b-p)*l.lineHeight+(b-1)*t.bodySpacing),h&&(g+=t.footerMarginTop+h*d.lineHeight+(h-1)*t.footerSpacing);let v=0;const C=function(e){m=Math.max(m,i.measureText(e).width+v)};return i.save(),i.font=c.string,A(e.title,C),i.font=l.string,A(e.beforeBody.concat(e.afterBody),C),v=t.displayColors?s+2+t.boxPadding:0,A(n,(e=>{A(e.before,C),A(e.lines,C),A(e.after,C)})),v=0,i.font=d.string,A(e.footer,C),i.restore(),m+=f.width,{width:m,height:g}}function gr(e,t,i,n){const{x:o,width:r}=i,{width:s,chartArea:{left:a,right:l}}=e;let c="center";return"center"===n?c=o<=(a+l)/2?"left":"right":o<=r/2?c="left":o>=s-r/2&&(c="right"),function(e,t,i,n){const{x:o,width:r}=n,s=i.caretSize+i.caretPadding;return"left"===e&&o+r+s>t.width||"right"===e&&o-r-s<0||void 0}(c,e,t,i)&&(c="center"),c}function mr(e,t,i){const n=i.yAlign||t.yAlign||function(e,t){const{y:i,height:n}=t;return ie.height-n/2?"bottom":"center"}(e,i);return{xAlign:i.xAlign||t.xAlign||gr(e,t,i,n),yAlign:n}}function Ar(e,t,i,n){const{caretSize:o,caretPadding:r,cornerRadius:s}=e,{xAlign:a,yAlign:l}=i,c=o+r,{topLeft:d,topRight:u,bottomLeft:h,bottomRight:p}=ct(s);let f=function(e,t){let{x:i,width:n}=e;return"right"===t?i-=n:"center"===t&&(i-=n/2),i}(t,a);const g=function(e,t,i){let{y:n,height:o}=e;return"top"===t?n+=i:n-="bottom"===t?o+i:o/2,n}(t,l,c);return"center"===l?"left"===a?f+=c:"right"===a&&(f-=c):"left"===a?f-=Math.max(d,h)+o:"right"===a&&(f+=Math.max(u,p)+o),{x:J(f,0,n.width-t.width),y:J(g,0,n.height-t.height)}}function br(e,t,i){const n=dt(i.padding);return"center"===t?e.x+e.width/2:"right"===t?e.x+e.width-n.right:e.x+n.left}function vr(e){return ur([],hr(e))}function Cr(e,t){const i=t&&t.dataset&&t.dataset.tooltip&&t.dataset.tooltip.callbacks;return i?e.override(i):e}class yr extends Rn{constructor(e){super(),this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=e.chart||e._chart,this._chart=this.chart,this.options=e.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(e){this.options=e,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){const e=this._cachedAnimations;if(e)return e;const t=this.chart,i=this.options.setContext(this.getContext()),n=i.enabled&&t.options.animation&&i.animations,o=new mi(this.chart,n);return n._cacheable&&(this._cachedAnimations=Object.freeze(o)),o}getContext(){return this.$context||(this.$context=(this,pt(this.chart.getContext(),{tooltip:this,tooltipItems:this._tooltipItems,type:"tooltip"})))}getTitle(e,t){const{callbacks:i}=t,n=i.beforeTitle.apply(this,[e]),o=i.title.apply(this,[e]),r=i.afterTitle.apply(this,[e]);let s=[];return s=ur(s,hr(n)),s=ur(s,hr(o)),s=ur(s,hr(r)),s}getBeforeBody(e,t){return vr(t.callbacks.beforeBody.apply(this,[e]))}getBody(e,t){const{callbacks:i}=t,n=[];return A(e,(e=>{const t={before:[],lines:[],after:[]},o=Cr(i,e);ur(t.before,hr(o.beforeLabel.call(this,e))),ur(t.lines,o.label.call(this,e)),ur(t.after,hr(o.afterLabel.call(this,e))),n.push(t)})),n}getAfterBody(e,t){return vr(t.callbacks.afterBody.apply(this,[e]))}getFooter(e,t){const{callbacks:i}=t,n=i.beforeFooter.apply(this,[e]),o=i.footer.apply(this,[e]),r=i.afterFooter.apply(this,[e]);let s=[];return s=ur(s,hr(n)),s=ur(s,hr(o)),s=ur(s,hr(r)),s}_createItems(e){const t=this._active,i=this.chart.data,n=[],o=[],r=[];let s,a,l=[];for(s=0,a=t.length;se.filter(t,n,o,i)))),e.itemSort&&(l=l.sort(((t,n)=>e.itemSort(t,n,i)))),A(l,(t=>{const i=Cr(e.callbacks,t);n.push(i.labelColor.call(this,t)),o.push(i.labelPointStyle.call(this,t)),r.push(i.labelTextColor.call(this,t))})),this.labelColors=n,this.labelPointStyles=o,this.labelTextColors=r,this.dataPoints=l,l}update(e,t){const i=this.options.setContext(this.getContext()),n=this._active;let o,r=[];if(n.length){const e=dr[i.position].call(this,n,this._eventPosition);r=this._createItems(i),this.title=this.getTitle(r,i),this.beforeBody=this.getBeforeBody(r,i),this.body=this.getBody(r,i),this.afterBody=this.getAfterBody(r,i),this.footer=this.getFooter(r,i);const t=this._size=fr(this,i),s=Object.assign({},e,t),a=mr(this.chart,i,s),l=Ar(i,s,a,this.chart);this.xAlign=a.xAlign,this.yAlign=a.yAlign,o={opacity:1,x:l.x,y:l.y,width:t.width,height:t.height,caretX:e.x,caretY:e.y}}else 0!==this.opacity&&(o={opacity:0});this._tooltipItems=r,this.$context=void 0,o&&this._resolveAnimations().update(this,o),e&&i.external&&i.external.call(this,{chart:this.chart,tooltip:this,replay:t})}drawCaret(e,t,i,n){const o=this.getCaretPosition(e,i,n);t.lineTo(o.x1,o.y1),t.lineTo(o.x2,o.y2),t.lineTo(o.x3,o.y3)}getCaretPosition(e,t,i){const{xAlign:n,yAlign:o}=this,{caretSize:r,cornerRadius:s}=i,{topLeft:a,topRight:l,bottomLeft:c,bottomRight:d}=ct(s),{x:u,y:h}=e,{width:p,height:f}=t;let g,m,A,b,v,C;return"center"===o?(v=h+f/2,"left"===n?(g=u,m=g-r,b=v+r,C=v-r):(g=u+p,m=g+r,b=v-r,C=v+r),A=g):(m="left"===n?u+Math.max(a,c)+r:"right"===n?u+p-Math.max(l,d)-r:this.caretX,"top"===o?(b=h,v=b-r,g=m-r,A=m+r):(b=h+f,v=b+r,g=m+r,A=m-r),C=b),{x1:g,x2:m,x3:A,y1:b,y2:v,y3:C}}drawTitle(e,t,i){const n=this.title,o=n.length;let r,s,a;if(o){const l=ii(i.rtl,this.x,this.width);for(e.x=br(this,i.titleAlign,i),t.textAlign=l.textAlign(i.titleAlign),t.textBaseline="middle",r=ut(i.titleFont),s=i.titleSpacing,t.fillStyle=i.titleColor,t.font=r.string,a=0;a0!==e))?(e.beginPath(),e.fillStyle=o.multiKeyBackground,nt(e,{x:t,y:g,w:l,h:a,radius:s}),e.fill(),e.stroke(),e.fillStyle=r.backgroundColor,e.beginPath(),nt(e,{x:i,y:g+1,w:l-2,h:a-2,radius:s}),e.fill()):(e.fillStyle=o.multiKeyBackground,e.fillRect(t,g,l,a),e.strokeRect(t,g,l,a),e.fillStyle=r.backgroundColor,e.fillRect(i,g+1,l-2,a-2))}e.fillStyle=this.labelTextColors[i]}drawBody(e,t,i){const{body:n}=this,{bodySpacing:o,bodyAlign:r,displayColors:s,boxHeight:a,boxWidth:l,boxPadding:c}=i,d=ut(i.bodyFont);let u=d.lineHeight,h=0;const p=ii(i.rtl,this.x,this.width),f=function(i){t.fillText(i,p.x(e.x+h),e.y+u/2),e.y+=u+o},g=p.textAlign(r);let m,b,v,C,y,w,x;for(t.textAlign=r,t.textBaseline="middle",t.font=d.string,e.x=br(this,g,i),t.fillStyle=i.bodyColor,A(this.beforeBody,f),h=s&&"right"!==g?"center"===r?l/2+c:l+2+c:0,C=0,w=n.length;C0&&t.stroke()}_updateAnimationTarget(e){const t=this.chart,i=this.$animations,n=i&&i.x,o=i&&i.y;if(n||o){const i=dr[e.position].call(this,this._active,this._eventPosition);if(!i)return;const r=this._size=fr(this,e),s=Object.assign({},i,this._size),a=mr(t,e,s),l=Ar(e,s,a,t);n._to===l.x&&o._to===l.y||(this.xAlign=a.xAlign,this.yAlign=a.yAlign,this.width=r.width,this.height=r.height,this.caretX=i.x,this.caretY=i.y,this._resolveAnimations().update(this,l))}}_willRender(){return!!this.opacity}draw(e){const t=this.options.setContext(this.getContext());let i=this.opacity;if(!i)return;this._updateAnimationTarget(t);const n={width:this.width,height:this.height},o={x:this.x,y:this.y};i=Math.abs(i)<.001?0:i;const r=dt(t.padding),s=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;t.enabled&&s&&(e.save(),e.globalAlpha=i,this.drawBackground(o,e,n,t),ni(e,t.textDirection),o.y+=r.top,this.drawTitle(o,e,t),this.drawBody(o,e,t),this.drawFooter(o,e,t),oi(e,t.textDirection),e.restore())}getActiveElements(){return this._active||[]}setActiveElements(e,t){const i=this._active,n=e.map((({datasetIndex:e,index:t})=>{const i=this.chart.getDatasetMeta(e);if(!i)throw new Error("Cannot find a dataset at index "+e);return{datasetIndex:e,element:i.data[t],index:t}})),o=!b(i,n),r=this._positionChanged(n,t);(o||r)&&(this._active=n,this._eventPosition=t,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(e,t,i=!0){if(t&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;const n=this.options,o=this._active||[],r=this._getActiveElements(e,o,t,i),s=this._positionChanged(r,e),a=t||!b(r,o)||s;return a&&(this._active=r,(n.enabled||n.external)&&(this._eventPosition={x:e.x,y:e.y},this.update(!0,t))),a}_getActiveElements(e,t,i,n){const o=this.options;if("mouseout"===e.type)return[];if(!n)return t;const r=this.chart.getElementsAtEventForMode(e,o.mode,o,i);return o.reverse&&r.reverse(),r}_positionChanged(e,t){const{caretX:i,caretY:n,options:o}=this,r=dr[o.position].call(this,e,t);return!1!==r&&(i!==r.x||n!==r.y)}}yr.positioners=dr;var wr={id:"tooltip",_element:yr,positioners:dr,afterInit(e,t,i){i&&(e.tooltip=new yr({chart:e,options:i}))},beforeUpdate(e,t,i){e.tooltip&&e.tooltip.initialize(i)},reset(e,t,i){e.tooltip&&e.tooltip.initialize(i)},afterDraw(e){const t=e.tooltip;if(t&&t._willRender()){const i={tooltip:t};if(!1===e.notifyPlugins("beforeTooltipDraw",i))return;t.draw(e.ctx),e.notifyPlugins("afterTooltipDraw",i)}},afterEvent(e,t){if(e.tooltip){const i=t.replay;e.tooltip.handleEvent(t.event,i,t.inChartArea)&&(t.changed=!0)}},defaults:{enabled:!0,external:null,position:"average",backgroundColor:"rgba(0,0,0,0.8)",titleColor:"#fff",titleFont:{weight:"bold"},titleSpacing:2,titleMarginBottom:6,titleAlign:"left",bodyColor:"#fff",bodySpacing:2,bodyFont:{},bodyAlign:"left",footerColor:"#fff",footerSpacing:2,footerMarginTop:6,footerFont:{weight:"bold"},footerAlign:"left",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(e,t)=>t.bodyFont.size,boxWidth:(e,t)=>t.bodyFont.size,multiKeyBackground:"#fff",displayColors:!0,boxPadding:0,borderColor:"rgba(0,0,0,0)",borderWidth:0,animation:{duration:400,easing:"easeOutQuart"},animations:{numbers:{type:"number",properties:["x","y","width","height","caretX","caretY"]},opacity:{easing:"linear",duration:200}},callbacks:{beforeTitle:a,title(e){if(e.length>0){const t=e[0],i=t.chart.data.labels,n=i?i.length:0;if(this&&this.options&&"dataset"===this.options.mode)return t.dataset.label||"";if(t.label)return t.label;if(n>0&&t.dataIndex"filter"!==e&&"itemSort"!==e&&"external"!==e,_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:"animation"}},additionalOptionScopes:["interaction"]},xr=Object.freeze({__proto__:null,Decimation:Uo,Filler:ir,Legend:rr,SubTitle:cr,Title:ar,Tooltip:wr});class _r extends jn{constructor(e){super(e),this._startValue=void 0,this._valueRange=0,this._addedLabels=[]}init(e){const t=this._addedLabels;if(t.length){const e=this.getLabels();for(const{index:i,label:n}of t)e[i]===n&&e.splice(i,1);this._addedLabels=[]}super.init(e)}parse(e,t){if(c(e))return null;const i=this.getLabels();return((e,t)=>null===e?null:J(Math.round(e),0,t))(t=isFinite(t)&&i[t]===e?t:function(e,t,i,n){const o=e.indexOf(t);return-1===o?((e,t,i,n)=>("string"==typeof t?(i=e.push(t)-1,n.unshift({index:i,label:t})):isNaN(t)&&(i=null),i))(e,t,i,n):o!==e.lastIndexOf(t)?i:o}(i,e,f(t,e),this._addedLabels),i.length-1)}determineDataLimits(){const{minDefined:e,maxDefined:t}=this.getUserBounds();let{min:i,max:n}=this.getMinMax(!0);"ticks"===this.options.bounds&&(e||(i=0),t||(n=this.getLabels().length-1)),this.min=i,this.max=n}buildTicks(){const e=this.min,t=this.max,i=this.options.offset,n=[];let o=this.getLabels();o=0===e&&t===o.length-1?o:o.slice(e,t+1),this._valueRange=Math.max(o.length-(i?0:1),1),this._startValue=this.min-(i?.5:0);for(let i=e;i<=t;i++)n.push({value:i});return n}getLabelForValue(e){const t=this.getLabels();return e>=0&&et.length-1?null:this.getPixelForValue(t[e].value)}getValueForPixel(e){return Math.round(this._startValue+this.getDecimalForPixel(e)*this._valueRange)}getBasePixel(){return this.bottom}}function Er(e,t,{horizontal:i,minRotation:n}){const o=q(n),r=(i?Math.sin(o):Math.cos(o))||.001,s=.75*t*(""+e).length;return Math.min(t/r,s)}_r.id="category",_r.defaults={ticks:{callback:_r.prototype.getLabelForValue}};class kr extends jn{constructor(e){super(e),this.start=void 0,this.end=void 0,this._startValue=void 0,this._endValue=void 0,this._valueRange=0}parse(e,t){return c(e)||("number"==typeof e||e instanceof Number)&&!isFinite(+e)?null:+e}handleTickRangeOptions(){const{beginAtZero:e}=this.options,{minDefined:t,maxDefined:i}=this.getUserBounds();let{min:n,max:o}=this;const r=e=>n=t?n:e,s=e=>o=i?o:e;if(e){const e=U(n),t=U(o);e<0&&t<0?s(0):e>0&&t>0&&r(0)}if(n===o){let t=1;(o>=Number.MAX_SAFE_INTEGER||n<=Number.MIN_SAFE_INTEGER)&&(t=Math.abs(.05*o)),s(o+t),e||r(n-t)}this.min=n,this.max=o}getTickLimit(){const e=this.options.ticks;let t,{maxTicksLimit:i,stepSize:n}=e;return n?(t=Math.ceil(this.max/n)-Math.floor(this.min/n)+1,t>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${n} would result generating up to ${t} ticks. Limiting to 1000.`),t=1e3)):(t=this.computeTickLimit(),i=i||11),i&&(t=Math.min(i,t)),t}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const e=this.options,t=e.ticks;let i=this.getTickLimit();i=Math.max(2,i);const n=function(e,t){const i=[],{bounds:n,step:o,min:r,max:s,precision:a,count:l,maxTicks:d,maxDigits:u,includeBounds:h}=e,p=o||1,f=d-1,{min:g,max:m}=t,A=!c(r),b=!c(s),v=!c(l),C=(m-g)/(u+1);let y,w,x,_,E=j((m-g)/f/p)*p;if(E<1e-14&&!A&&!b)return[{value:g},{value:m}];_=Math.ceil(m/E)-Math.floor(g/E),_>f&&(E=j(_*E/f/p)*p),c(a)||(y=Math.pow(10,a),E=Math.ceil(E*y)/y),"ticks"===n?(w=Math.floor(g/E)*E,x=Math.ceil(m/E)*E):(w=g,x=m),A&&b&&o&&function(e,t){const i=Math.round(e);return i-t<=e&&i+t>=e}((s-r)/o,E/1e3)?(_=Math.round(Math.min((s-r)/E,d)),E=(s-r)/_,w=r,x=s):v?(w=A?r:w,x=b?s:x,_=l-1,E=(x-w)/_):(_=(x-w)/E,_=z(_,Math.round(_),E/1e3)?Math.round(_):Math.ceil(_));const k=Math.max(G(E),G(w));y=Math.pow(10,c(a)?k:a),w=Math.round(w*y)/y,x=Math.round(x*y)/y;let S=0;for(A&&(h&&w!==r?(i.push({value:r}),w0?i:null;this._zero=!0}determineDataLimits(){const{min:e,max:t}=this.getMinMax(!0);this.min=h(e)?Math.max(0,e):null,this.max=h(t)?Math.max(0,t):null,this.options.beginAtZero&&(this._zero=!0),this.handleTickRangeOptions()}handleTickRangeOptions(){const{minDefined:e,maxDefined:t}=this.getUserBounds();let i=this.min,n=this.max;const o=t=>i=e?i:t,r=e=>n=t?n:e,s=(e,t)=>Math.pow(10,Math.floor(F(e))+t);i===n&&(i<=0?(o(1),r(10)):(o(s(i,-1)),r(s(n,1)))),i<=0&&o(s(n,-1)),n<=0&&r(s(i,1)),this._zero&&this.min!==this._suggestedMin&&i===s(this.min,0)&&o(s(i,-1)),this.min=i,this.max=n}buildTicks(){const e=this.options,t=function(e,t){const i=Math.floor(F(t.max)),n=Math.ceil(t.max/Math.pow(10,i)),o=[];let r=p(e.min,Math.pow(10,Math.floor(F(t.min)))),s=Math.floor(F(r)),a=Math.floor(r/Math.pow(10,s)),l=s<0?Math.pow(10,Math.abs(s)):1;do{o.push({value:r,major:Tr(r)}),++a,10===a&&(a=1,++s,l=s>=0?1:l),r=Math.round(a*Math.pow(10,s)*l)/l}while(so?{start:t-i,end:t}:{start:t,end:t+i}}function Ir(e,t,i,n,o){const r=Math.abs(Math.sin(i)),s=Math.abs(Math.cos(i));let a=0,l=0;n.startt.r&&(a=(n.end-t.r)/r,e.r=Math.max(e.r,t.r+a)),o.startt.b&&(l=(o.end-t.b)/s,e.b=Math.max(e.b,t.b+l))}function Lr(e){return 0===e||180===e?"center":e<180?"left":"right"}function Dr(e,t,i){return 90===i||270===i?e-=t/2:(i>270||i<90)&&(e-=t),e}function Or(e,t,i,n){const{ctx:o}=e;if(i)o.arc(e.xCenter,e.yCenter,t,0,I);else{let i=e.getPointPosition(0,t);o.moveTo(i.x,i.y);for(let r=1;r{const i=m(this.options.pointLabels.callback,[e,t],this);return i||0===i?i:""})).filter(((e,t)=>this.chart.getDataVisibility(t)))}fit(){const e=this.options;e.display&&e.pointLabels.display?function(e){const t={l:e.left+e._padding.left,r:e.right-e._padding.right,t:e.top+e._padding.top,b:e.bottom-e._padding.bottom},i=Object.assign({},t),n=[],o=[],r=e._pointLabels.length,s=e.options.pointLabels,a=s.centerPointLabels?R/r:0;for(let h=0;h=0&&e=0;o--){const t=n.setContext(e.getPointLabelContext(o)),r=ut(t.font),{x:s,y:a,textAlign:l,left:d,top:u,right:h,bottom:p}=e._pointLabelItems[o],{backdropColor:f}=t;if(!c(f)){const e=ct(t.borderRadius),n=dt(t.backdropPadding);i.fillStyle=f;const o=d-n.left,r=u-n.top,s=h-d+n.width,a=p-u+n.height;Object.values(e).some((e=>0!==e))?(i.beginPath(),nt(i,{x:o,y:r,w:s,h:a,radius:e}),i.fill()):i.fillRect(o,r,s,a)}tt(i,e._pointLabels[o],s,a+r.lineHeight/2,r,{color:t.color,textAlign:l,textBaseline:"middle"})}}(this,o),n.display&&this.ticks.forEach(((e,t)=>{0!==t&&(s=this.getDistanceFromCenterForValue(e.value),function(e,t,i,n){const o=e.ctx,r=t.circular,{color:s,lineWidth:a}=t;!r&&!n||!s||!a||i<0||(o.save(),o.strokeStyle=s,o.lineWidth=a,o.setLineDash(t.borderDash),o.lineDashOffset=t.borderDashOffset,o.beginPath(),Or(e,i,r,n),o.closePath(),o.stroke(),o.restore())}(this,n.setContext(this.getContext(t-1)),s,o))})),i.display){for(e.save(),r=o-1;r>=0;r--){const n=i.setContext(this.getPointLabelContext(r)),{color:o,lineWidth:l}=n;l&&o&&(e.lineWidth=l,e.strokeStyle=o,e.setLineDash(n.borderDash),e.lineDashOffset=n.borderDashOffset,s=this.getDistanceFromCenterForValue(t.ticks.reverse?this.min:this.max),a=this.getPointPosition(r,s),e.beginPath(),e.moveTo(this.xCenter,this.yCenter),e.lineTo(a.x,a.y),e.stroke())}e.restore()}}drawBorder(){}drawLabels(){const e=this.ctx,t=this.options,i=t.ticks;if(!i.display)return;const n=this.getIndexAngle(0);let o,r;e.save(),e.translate(this.xCenter,this.yCenter),e.rotate(n),e.textAlign="center",e.textBaseline="middle",this.ticks.forEach(((n,s)=>{if(0===s&&!t.reverse)return;const a=i.setContext(this.getContext(s)),l=ut(a.font);if(o=this.getDistanceFromCenterForValue(this.ticks[s].value),a.showLabelBackdrop){e.font=l.string,r=e.measureText(n.label).width,e.fillStyle=a.backdropColor;const t=dt(a.backdropPadding);e.fillRect(-r/2-t.left,-o-l.size/2-t.top,r+t.width,l.size+t.height)}tt(e,n.label,0,-o,l,{color:a.color})})),e.restore()}drawTitle(){}}$r.id="radialLinear",$r.defaults={display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,lineWidth:1,borderDash:[],borderDashOffset:0},grid:{circular:!1},startAngle:0,ticks:{showLabelBackdrop:!0,callback:Ln.formatters.numeric},pointLabels:{backdropColor:void 0,backdropPadding:2,display:!0,font:{size:10},callback:e=>e,padding:5,centerPointLabels:!1}},$r.defaultRoutes={"angleLines.color":"borderColor","pointLabels.color":"color","ticks.color":"color"},$r.descriptors={angleLines:{_fallback:"grid"}};const Pr={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},Nr=Object.keys(Pr);function Fr(e,t){return e-t}function Ur(e,t){if(c(t))return null;const i=e._adapter,{parser:n,round:o,isoWeekday:r}=e._parseOpts;let s=t;return"function"==typeof n&&(s=n(s)),h(s)||(s="string"==typeof n?i.parse(s,n):i.parse(s)),null===s?null:(o&&(s="week"!==o||!W(r)&&!0!==r?i.startOf(s,o):i.startOf(s,"isoWeek",r)),+s)}function jr(e,t,i,n){const o=Nr.length;for(let r=Nr.indexOf(e);r=t?i[n]:i[o]]=!0}}else e[t]=!0}function zr(e,t,i){const n=[],o={},r=t.length;let s,a;for(s=0;s=0&&(t[l].major=!0);return t}(e,n,o,i):n}class Hr extends jn{constructor(e){super(e),this._cache={data:[],labels:[],all:[]},this._unit="day",this._majorUnit=void 0,this._offsets={},this._normalized=!1,this._parseOpts=void 0}init(e,t){const i=e.time||(e.time={}),n=this._adapter=new Yi._date(e.adapters.date);x(i.displayFormats,n.formats()),this._parseOpts={parser:i.parser,round:i.round,isoWeekday:i.isoWeekday},super.init(e),this._normalized=t.normalized}parse(e,t){return void 0===e?null:Ur(this,e)}beforeLayout(){super.beforeLayout(),this._cache={data:[],labels:[],all:[]}}determineDataLimits(){const e=this.options,t=this._adapter,i=e.time.unit||"day";let{min:n,max:o,minDefined:r,maxDefined:s}=this.getUserBounds();function a(e){r||isNaN(e.min)||(n=Math.min(n,e.min)),s||isNaN(e.max)||(o=Math.max(o,e.max))}r&&s||(a(this._getLabelBounds()),"ticks"===e.bounds&&"labels"===e.ticks.source||a(this.getMinMax(!1))),n=h(n)&&!isNaN(n)?n:+t.startOf(Date.now(),i),o=h(o)&&!isNaN(o)?o:+t.endOf(Date.now(),i)+1,this.min=Math.min(n,o-1),this.max=Math.max(n+1,o)}_getLabelBounds(){const e=this.getLabelTimestamps();let t=Number.POSITIVE_INFINITY,i=Number.NEGATIVE_INFINITY;return e.length&&(t=e[0],i=e[e.length-1]),{min:t,max:i}}buildTicks(){const e=this.options,t=e.time,i=e.ticks,n="labels"===i.source?this.getLabelTimestamps():this._generate();"ticks"===e.bounds&&n.length&&(this.min=this._userMin||n[0],this.max=this._userMax||n[n.length-1]);const o=this.min,r=function(e,t,i){let n=0,o=e.length;for(;nn&&e[o-1]>i;)o--;return n>0||o=Nr.indexOf(i);r--){const i=Nr[r];if(Pr[i].common&&e._adapter.diff(o,n,i)>=t-1)return i}return Nr[i?Nr.indexOf(i):0]}(this,r.length,t.minUnit,this.min,this.max)),this._majorUnit=i.major.enabled&&"year"!==this._unit?function(e){for(let t=Nr.indexOf(e)+1,i=Nr.length;t+e.value)))}initOffsets(e){let t,i,n=0,o=0;this.options.offset&&e.length&&(t=this.getDecimalForValue(e[0]),n=1===e.length?1-t:(this.getDecimalForValue(e[1])-t)/2,i=this.getDecimalForValue(e[e.length-1]),o=1===e.length?i:(i-this.getDecimalForValue(e[e.length-2]))/2);const r=e.length<3?.5:.25;n=J(n,0,r),o=J(o,0,r),this._offsets={start:n,end:o,factor:1/(n+1+o)}}_generate(){const e=this._adapter,t=this.min,i=this.max,n=this.options,o=n.time,r=o.unit||jr(o.minUnit,t,i,this._getLabelCapacity(t)),s=f(o.stepSize,1),a="week"===r&&o.isoWeekday,l=W(a)||!0===a,c={};let d,u,h=t;if(l&&(h=+e.startOf(h,"isoWeek",a)),h=+e.startOf(h,l?"day":r),e.diff(i,t,r)>1e5*s)throw new Error(t+" and "+i+" are too far apart with stepSize of "+s+" "+r);const p="data"===n.ticks.source&&this.getDataTimestamps();for(d=h,u=0;de-t)).map((e=>+e))}getLabelForValue(e){const t=this._adapter,i=this.options.time;return i.tooltipFormat?t.format(e,i.tooltipFormat):t.format(e,i.displayFormats.datetime)}_tickFormatFunction(e,t,i,n){const o=this.options,r=o.time.displayFormats,s=this._unit,a=this._majorUnit,l=s&&r[s],c=a&&r[a],d=i[t],u=a&&c&&d&&d.major,h=this._adapter.format(e,n||(u?c:l)),p=o.ticks.callback;return p?m(p,[h,t,i],this):h}generateTickLabels(e){let t,i,n;for(t=0,i=e.length;t0?s:1}getDataTimestamps(){let e,t,i=this._cache.data||[];if(i.length)return i;const n=this.getMatchingVisibleMetas();if(this._normalized&&n.length)return this._cache.data=n[0].controller.getAllParsedValues(this);for(e=0,t=n.length;e=e[a].pos&&t<=e[l].pos&&({lo:a,hi:l}=gt(e,"pos",t)),({pos:n,time:r}=e[a]),({pos:o,time:s}=e[l])):(t>=e[a].time&&t<=e[l].time&&({lo:a,hi:l}=gt(e,"time",t)),({time:n,pos:r}=e[a]),({time:o,pos:s}=e[l]));const c=o-n;return c?r+(s-r)*(t-n)/c:r}Hr.id="time",Hr.defaults={bounds:"data",adapters:{},time:{parser:!1,unit:!1,round:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{}},ticks:{source:"auto",major:{enabled:!1}}};class Vr extends Hr{constructor(e){super(e),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){const e=this._getTimestampsForTable(),t=this._table=this.buildLookupTable(e);this._minPos=qr(t,this.min),this._tableRange=qr(t,this.max)-this._minPos,super.initOffsets(e)}buildLookupTable(e){const{min:t,max:i}=this,n=[],o=[];let r,s,a,l,c;for(r=0,s=e.length;r=t&&l<=i&&n.push(l);if(n.length<2)return[{time:t,pos:0},{time:i,pos:1}];for(r=0,s=n.length;r{"use strict";i.d(t,{Z:()=>h});var n=i(87537),o=i.n(n),r=i(23645),s=i.n(r),a=i(61667),l=i.n(a),c=new URL(i(69460),i.b),d=s()(o()),u=l()(c);d.push([e.id,"/*!\n * FilePondPluginImagePreview 4.6.11\n * Licensed under MIT, https://opensource.org/licenses/MIT/\n * Please visit https://pqina.nl/filepond/ for details.\n */\n\n/* eslint-disable */\n.filepond--image-preview-markup{position:absolute;left:0;top:0}.filepond--image-preview-wrapper{z-index:2}.filepond--image-preview-overlay{display:block;position:absolute;left:0;top:0;width:100%;min-height:5rem;max-height:7rem;margin:0;opacity:0;z-index:2;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.filepond--image-preview-overlay svg{width:100%;height:auto;color:inherit;max-height:inherit}.filepond--image-preview-overlay-idle{mix-blend-mode:multiply;color:rgba(40,40,40,.85)}.filepond--image-preview-overlay-success{mix-blend-mode:normal;color:#369763}.filepond--image-preview-overlay-failure{mix-blend-mode:normal;color:#c44e47}@supports (-webkit-marquee-repetition:infinite) and ((-o-object-fit:fill) or (object-fit:fill)){.filepond--image-preview-overlay-idle{mix-blend-mode:normal}}.filepond--image-preview-wrapper{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:absolute;left:0;top:0;right:0;height:100%;margin:0;border-radius:.45em;overflow:hidden;background:rgba(0,0,0,.01)}.filepond--image-preview{position:absolute;left:0;top:0;z-index:1;display:flex;align-items:center;height:100%;width:100%;pointer-events:none;background:#222;will-change:transform,opacity}.filepond--image-clip{position:relative;overflow:hidden;margin:0 auto}.filepond--image-clip[data-transparency-indicator=grid] canvas,.filepond--image-clip[data-transparency-indicator=grid] img{background-color:#fff;background-image:url("+u+");background-size:1.25em 1.25em}.filepond--image-bitmap,.filepond--image-vector{position:absolute;left:0;top:0;will-change:transform}.filepond--root[data-style-panel-layout~=integrated] .filepond--image-preview-wrapper{border-radius:0}.filepond--root[data-style-panel-layout~=integrated] .filepond--image-preview{height:100%;display:flex;justify-content:center;align-items:center}.filepond--root[data-style-panel-layout~=circle] .filepond--image-preview-wrapper{border-radius:99999rem}.filepond--root[data-style-panel-layout~=circle] .filepond--image-preview-overlay{top:auto;bottom:0;-webkit-transform:scaleY(-1);transform:scaleY(-1)}.filepond--root[data-style-panel-layout~=circle] .filepond--file .filepond--file-action-button[data-align*=bottom]:not([data-align*=center]){margin-bottom:.325em}.filepond--root[data-style-panel-layout~=circle] .filepond--file [data-align*=left]{left:calc(50% - 3em)}.filepond--root[data-style-panel-layout~=circle] .filepond--file [data-align*=right]{right:calc(50% - 3em)}.filepond--root[data-style-panel-layout~=circle] .filepond--progress-indicator[data-align*=bottom][data-align*=left],.filepond--root[data-style-panel-layout~=circle] .filepond--progress-indicator[data-align*=bottom][data-align*=right]{margin-bottom:.5125em}.filepond--root[data-style-panel-layout~=circle] .filepond--progress-indicator[data-align*=bottom][data-align*=center]{margin-top:0;margin-bottom:.1875em;margin-left:.1875em}","",{version:3,sources:["webpack://./node_modules/filepond-plugin-image-preview/dist/filepond-plugin-image-preview.min.css"],names:[],mappings:"AAAA;;;;EAIE;;AAEF,mBAAmB;AACnB,gCAAgC,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,SAAS,CAAC,iCAAiC,aAAa,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC,wBAAwB,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,qCAAqC,UAAU,CAAC,WAAW,CAAC,aAAa,CAAC,kBAAkB,CAAC,sCAAsC,uBAAuB,CAAC,wBAAwB,CAAC,yCAAyC,qBAAqB,CAAC,aAAa,CAAC,yCAAyC,qBAAqB,CAAC,aAAa,CAAC,gGAAgG,sCAAsC,qBAAqB,CAAC,CAAC,iCAAiC,wBAAwB,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,mBAAmB,CAAC,eAAe,CAAC,0BAA0B,CAAC,yBAAyB,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,kBAAkB,CAAC,WAAW,CAAC,UAAU,CAAC,mBAAmB,CAAC,eAAe,CAAC,6BAA6B,CAAC,sBAAsB,iBAAiB,CAAC,eAAe,CAAC,aAAa,CAAC,2HAA2H,qBAAqB,CAAC,wDAA8L,CAAC,6BAA6B,CAAC,gDAAgD,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,sFAAsF,eAAe,CAAC,8EAA8E,WAAW,CAAC,YAAY,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,kFAAkF,sBAAsB,CAAC,kFAAkF,QAAQ,CAAC,QAAQ,CAAC,4BAA4B,CAAC,oBAAoB,CAAC,6IAA6I,oBAAoB,CAAC,oFAAoF,oBAAoB,CAAC,qFAAqF,qBAAqB,CAAC,2OAA2O,qBAAqB,CAAC,uHAAuH,YAAY,CAAC,qBAAqB,CAAC,mBAAmB",sourcesContent:["/*!\n * FilePondPluginImagePreview 4.6.11\n * Licensed under MIT, https://opensource.org/licenses/MIT/\n * Please visit https://pqina.nl/filepond/ for details.\n */\n\n/* eslint-disable */\n.filepond--image-preview-markup{position:absolute;left:0;top:0}.filepond--image-preview-wrapper{z-index:2}.filepond--image-preview-overlay{display:block;position:absolute;left:0;top:0;width:100%;min-height:5rem;max-height:7rem;margin:0;opacity:0;z-index:2;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.filepond--image-preview-overlay svg{width:100%;height:auto;color:inherit;max-height:inherit}.filepond--image-preview-overlay-idle{mix-blend-mode:multiply;color:rgba(40,40,40,.85)}.filepond--image-preview-overlay-success{mix-blend-mode:normal;color:#369763}.filepond--image-preview-overlay-failure{mix-blend-mode:normal;color:#c44e47}@supports (-webkit-marquee-repetition:infinite) and ((-o-object-fit:fill) or (object-fit:fill)){.filepond--image-preview-overlay-idle{mix-blend-mode:normal}}.filepond--image-preview-wrapper{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:absolute;left:0;top:0;right:0;height:100%;margin:0;border-radius:.45em;overflow:hidden;background:rgba(0,0,0,.01)}.filepond--image-preview{position:absolute;left:0;top:0;z-index:1;display:flex;align-items:center;height:100%;width:100%;pointer-events:none;background:#222;will-change:transform,opacity}.filepond--image-clip{position:relative;overflow:hidden;margin:0 auto}.filepond--image-clip[data-transparency-indicator=grid] canvas,.filepond--image-clip[data-transparency-indicator=grid] img{background-color:#fff;background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' fill='%23eee'%3E%3Cpath d='M0 0h50v50H0M50 50h50v50H50'/%3E%3C/svg%3E\");background-size:1.25em 1.25em}.filepond--image-bitmap,.filepond--image-vector{position:absolute;left:0;top:0;will-change:transform}.filepond--root[data-style-panel-layout~=integrated] .filepond--image-preview-wrapper{border-radius:0}.filepond--root[data-style-panel-layout~=integrated] .filepond--image-preview{height:100%;display:flex;justify-content:center;align-items:center}.filepond--root[data-style-panel-layout~=circle] .filepond--image-preview-wrapper{border-radius:99999rem}.filepond--root[data-style-panel-layout~=circle] .filepond--image-preview-overlay{top:auto;bottom:0;-webkit-transform:scaleY(-1);transform:scaleY(-1)}.filepond--root[data-style-panel-layout~=circle] .filepond--file .filepond--file-action-button[data-align*=bottom]:not([data-align*=center]){margin-bottom:.325em}.filepond--root[data-style-panel-layout~=circle] .filepond--file [data-align*=left]{left:calc(50% - 3em)}.filepond--root[data-style-panel-layout~=circle] .filepond--file [data-align*=right]{right:calc(50% - 3em)}.filepond--root[data-style-panel-layout~=circle] .filepond--progress-indicator[data-align*=bottom][data-align*=left],.filepond--root[data-style-panel-layout~=circle] .filepond--progress-indicator[data-align*=bottom][data-align*=right]{margin-bottom:.5125em}.filepond--root[data-style-panel-layout~=circle] .filepond--progress-indicator[data-align*=bottom][data-align*=center]{margin-top:0;margin-bottom:.1875em;margin-left:.1875em}"],sourceRoot:""}]);const h=d},20017:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var n=i(87537),o=i.n(n),r=i(23645),s=i.n(r)()(o());s.push([e.id,'/*!\n * FilePond 4.30.4\n * Licensed under MIT, https://opensource.org/licenses/MIT/\n * Please visit https://pqina.nl/filepond/ for details.\n */\n\n/* eslint-disable */\n.filepond--assistant{position:absolute;overflow:hidden;height:1px;width:1px;padding:0;border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap}.filepond--browser.filepond--browser{position:absolute;margin:0;padding:0;left:1em;top:1.75em;width:calc(100% - 2em);opacity:0;font-size:0}.filepond--data{position:absolute;width:0;height:0;padding:0;margin:0;border:none;visibility:hidden;pointer-events:none;contain:strict}.filepond--drip{position:absolute;top:0;left:0;right:0;bottom:0;overflow:hidden;opacity:.1;pointer-events:none;border-radius:.5em;background:rgba(0,0,0,.01)}.filepond--drip-blob{-webkit-transform-origin:center center;transform-origin:center center;width:8em;height:8em;margin-left:-4em;margin-top:-4em;background:#292625;border-radius:50%}.filepond--drip-blob,.filepond--drop-label{position:absolute;top:0;left:0;will-change:transform,opacity}.filepond--drop-label{right:0;margin:0;color:#4f4f4f;display:flex;justify-content:center;align-items:center;height:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.filepond--drop-label.filepond--drop-label label{display:block;margin:0;padding:.5em}.filepond--drop-label label{cursor:default;font-size:.875em;font-weight:400;text-align:center;line-height:1.5}.filepond--label-action{text-decoration:underline;-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto;-webkit-text-decoration-color:#a7a4a4;text-decoration-color:#a7a4a4;cursor:pointer}.filepond--root[data-disabled] .filepond--drop-label label{opacity:.5}.filepond--file-action-button.filepond--file-action-button{font-size:1em;width:1.625em;height:1.625em;font-family:inherit;line-height:inherit;margin:0;padding:0;border:none;outline:none;will-change:transform,opacity}.filepond--file-action-button.filepond--file-action-button span{position:absolute;overflow:hidden;height:1px;width:1px;padding:0;border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap}.filepond--file-action-button.filepond--file-action-button svg{width:100%;height:100%}.filepond--file-action-button.filepond--file-action-button:after{position:absolute;left:-.75em;right:-.75em;top:-.75em;bottom:-.75em;content:""}.filepond--file-action-button{cursor:auto;color:#fff;border-radius:50%;background-color:rgba(0,0,0,.5);background-image:none;box-shadow:0 0 0 0 hsla(0,0%,100%,0);transition:box-shadow .25s ease-in}.filepond--file-action-button:focus,.filepond--file-action-button:hover{box-shadow:0 0 0 .125em hsla(0,0%,100%,.9)}.filepond--file-action-button[disabled]{color:hsla(0,0%,100%,.5);background-color:rgba(0,0,0,.25)}.filepond--file-action-button[hidden]{display:none}.filepond--action-edit-item.filepond--action-edit-item{width:2em;height:2em;padding:.1875em}.filepond--action-edit-item.filepond--action-edit-item[data-align*=center]{margin-left:-.1875em}.filepond--action-edit-item.filepond--action-edit-item[data-align*=bottom]{margin-bottom:-.1875em}.filepond--action-edit-item-alt{border:none;line-height:inherit;background:transparent;font-family:inherit;color:inherit;outline:none;padding:0;margin:0 0 0 .25em;pointer-events:all;position:absolute}.filepond--action-edit-item-alt svg{width:1.3125em;height:1.3125em}.filepond--action-edit-item-alt span{font-size:0;opacity:0}.filepond--file-info{position:static;display:flex;flex-direction:column;align-items:flex-start;flex:1;margin:0 .5em 0 0;min-width:0;will-change:transform,opacity;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.filepond--file-info *{margin:0}.filepond--file-info .filepond--file-info-main{font-size:.75em;line-height:1.2;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;width:100%}.filepond--file-info .filepond--file-info-sub{font-size:.625em;opacity:.5;transition:opacity .25s ease-in-out;white-space:nowrap}.filepond--file-info .filepond--file-info-sub:empty{display:none}.filepond--file-status{position:static;display:flex;flex-direction:column;align-items:flex-end;flex-grow:0;flex-shrink:0;margin:0;min-width:2.25em;text-align:right;will-change:transform,opacity;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.filepond--file-status *{margin:0;white-space:nowrap}.filepond--file-status .filepond--file-status-main{font-size:.75em;line-height:1.2}.filepond--file-status .filepond--file-status-sub{font-size:.625em;opacity:.5;transition:opacity .25s ease-in-out}.filepond--file-wrapper.filepond--file-wrapper{border:none;margin:0;padding:0;min-width:0;height:100%}.filepond--file-wrapper.filepond--file-wrapper>legend{position:absolute;overflow:hidden;height:1px;width:1px;padding:0;border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap}.filepond--file{position:static;display:flex;height:100%;align-items:flex-start;padding:.5625em;color:#fff;border-radius:.5em}.filepond--file .filepond--file-status{margin-left:auto;margin-right:2.25em}.filepond--file .filepond--processing-complete-indicator{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:3}.filepond--file .filepond--file-action-button,.filepond--file .filepond--processing-complete-indicator,.filepond--file .filepond--progress-indicator{position:absolute}.filepond--file [data-align*=left]{left:.5625em}.filepond--file [data-align*=right]{right:.5625em}.filepond--file [data-align*=center]{left:calc(50% - .8125em)}.filepond--file [data-align*=bottom]{bottom:1.125em}.filepond--file [data-align=center]{top:calc(50% - .8125em)}.filepond--file .filepond--progress-indicator{margin-top:.1875em}.filepond--file .filepond--progress-indicator[data-align*=right]{margin-right:.1875em}.filepond--file .filepond--progress-indicator[data-align*=left]{margin-left:.1875em}[data-filepond-item-state*=error] .filepond--file-info,[data-filepond-item-state*=invalid] .filepond--file-info,[data-filepond-item-state=cancelled] .filepond--file-info{margin-right:2.25em}[data-filepond-item-state~=processing] .filepond--file-status-sub{opacity:0}[data-filepond-item-state~=processing] .filepond--action-abort-item-processing~.filepond--file-status .filepond--file-status-sub{opacity:.5}[data-filepond-item-state=processing-error] .filepond--file-status-sub{opacity:0}[data-filepond-item-state=processing-error] .filepond--action-retry-item-processing~.filepond--file-status .filepond--file-status-sub{opacity:.5}[data-filepond-item-state=processing-complete] .filepond--action-revert-item-processing svg{-webkit-animation:fall .5s linear .125s both;animation:fall .5s linear .125s both}[data-filepond-item-state=processing-complete] .filepond--file-status-sub{opacity:.5}[data-filepond-item-state=processing-complete] .filepond--file-info-sub,[data-filepond-item-state=processing-complete] .filepond--processing-complete-indicator:not([style*=hidden])~.filepond--file-status .filepond--file-status-sub{opacity:0}[data-filepond-item-state=processing-complete] .filepond--action-revert-item-processing~.filepond--file-info .filepond--file-info-sub{opacity:.5}[data-filepond-item-state*=error] .filepond--file-wrapper,[data-filepond-item-state*=error] .filepond--panel,[data-filepond-item-state*=invalid] .filepond--file-wrapper,[data-filepond-item-state*=invalid] .filepond--panel{-webkit-animation:shake .65s linear both;animation:shake .65s linear both}[data-filepond-item-state*=busy] .filepond--progress-indicator svg{-webkit-animation:spin 1s linear infinite;animation:spin 1s linear infinite}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@-webkit-keyframes shake{10%,90%{-webkit-transform:translateX(-.0625em);transform:translateX(-.0625em)}20%,80%{-webkit-transform:translateX(.125em);transform:translateX(.125em)}30%,50%,70%{-webkit-transform:translateX(-.25em);transform:translateX(-.25em)}40%,60%{-webkit-transform:translateX(.25em);transform:translateX(.25em)}}@keyframes shake{10%,90%{-webkit-transform:translateX(-.0625em);transform:translateX(-.0625em)}20%,80%{-webkit-transform:translateX(.125em);transform:translateX(.125em)}30%,50%,70%{-webkit-transform:translateX(-.25em);transform:translateX(-.25em)}40%,60%{-webkit-transform:translateX(.25em);transform:translateX(.25em)}}@-webkit-keyframes fall{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}70%{opacity:1;-webkit-transform:scale(1.1);transform:scale(1.1);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}to{-webkit-transform:scale(1);transform:scale(1);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}@keyframes fall{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}70%{opacity:1;-webkit-transform:scale(1.1);transform:scale(1.1);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}to{-webkit-transform:scale(1);transform:scale(1);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}.filepond--hopper[data-hopper-state=drag-over]>*{pointer-events:none}.filepond--hopper[data-hopper-state=drag-over]:after{content:"";position:absolute;left:0;top:0;right:0;bottom:0;z-index:100}.filepond--progress-indicator{z-index:103}.filepond--file-action-button{z-index:102}.filepond--file-status{z-index:101}.filepond--file-info{z-index:100}.filepond--item{position:absolute;top:0;left:0;right:0;z-index:1;padding:0;margin:.25em;will-change:transform,opacity}.filepond--item>.filepond--panel{z-index:-1}.filepond--item>.filepond--panel .filepond--panel-bottom{box-shadow:0 .0625em .125em -.0625em rgba(0,0,0,.25)}.filepond--item>.filepond--file-wrapper,.filepond--item>.filepond--panel{transition:opacity .15s ease-out}.filepond--item[data-drag-state]{cursor:-webkit-grab;cursor:grab}.filepond--item[data-drag-state]>.filepond--panel{transition:box-shadow .125s ease-in-out;box-shadow:0 0 0 transparent}.filepond--item[data-drag-state=drag]{cursor:-webkit-grabbing;cursor:grabbing}.filepond--item[data-drag-state=drag]>.filepond--panel{box-shadow:0 .125em .3125em rgba(0,0,0,.325)}.filepond--item[data-drag-state]:not([data-drag-state=idle]){z-index:2}.filepond--item-panel{background-color:#64605e}[data-filepond-item-state=processing-complete] .filepond--item-panel{background-color:#369763}[data-filepond-item-state*=error] .filepond--item-panel,[data-filepond-item-state*=invalid] .filepond--item-panel{background-color:#c44e47}.filepond--item-panel{border-radius:.5em;transition:background-color .25s}.filepond--list-scroller{position:absolute;top:0;left:0;right:0;margin:0;will-change:transform}.filepond--list-scroller[data-state=overflow] .filepond--list{bottom:0;right:0}.filepond--list-scroller[data-state=overflow]{overflow-y:scroll;overflow-x:hidden;-webkit-overflow-scrolling:touch;-webkit-mask:linear-gradient(180deg,#000 calc(100% - .5em),transparent);mask:linear-gradient(180deg,#000 calc(100% - .5em),transparent)}.filepond--list-scroller::-webkit-scrollbar{background:transparent}.filepond--list-scroller::-webkit-scrollbar:vertical{width:1em}.filepond--list-scroller::-webkit-scrollbar:horizontal{height:0}.filepond--list-scroller::-webkit-scrollbar-thumb{background-color:rgba(0,0,0,.3);border-radius:99999px;border:.3125em solid transparent;background-clip:content-box}.filepond--list.filepond--list{position:absolute;top:0;margin:0;padding:0;list-style-type:none;will-change:transform}.filepond--list{left:.75em;right:.75em}.filepond--root[data-style-panel-layout~=integrated]{width:100%;height:100%;max-width:none;margin:0}.filepond--root[data-style-panel-layout~=circle] .filepond--panel-root,.filepond--root[data-style-panel-layout~=integrated] .filepond--panel-root{border-radius:0}.filepond--root[data-style-panel-layout~=circle] .filepond--panel-root>*,.filepond--root[data-style-panel-layout~=integrated] .filepond--panel-root>*{display:none}.filepond--root[data-style-panel-layout~=circle] .filepond--drop-label,.filepond--root[data-style-panel-layout~=integrated] .filepond--drop-label{bottom:0;height:auto;display:flex;justify-content:center;align-items:center;z-index:7}.filepond--root[data-style-panel-layout~=circle] .filepond--item-panel,.filepond--root[data-style-panel-layout~=integrated] .filepond--item-panel{display:none}.filepond--root[data-style-panel-layout~=compact] .filepond--list-scroller,.filepond--root[data-style-panel-layout~=integrated] .filepond--list-scroller{overflow:hidden;height:100%;margin-top:0;margin-bottom:0}.filepond--root[data-style-panel-layout~=compact] .filepond--list,.filepond--root[data-style-panel-layout~=integrated] .filepond--list{left:0;right:0;height:100%}.filepond--root[data-style-panel-layout~=compact] .filepond--item,.filepond--root[data-style-panel-layout~=integrated] .filepond--item{margin:0}.filepond--root[data-style-panel-layout~=compact] .filepond--file-wrapper,.filepond--root[data-style-panel-layout~=integrated] .filepond--file-wrapper{height:100%}.filepond--root[data-style-panel-layout~=compact] .filepond--drop-label,.filepond--root[data-style-panel-layout~=integrated] .filepond--drop-label{z-index:7}.filepond--root[data-style-panel-layout~=circle]{border-radius:99999rem;overflow:hidden}.filepond--root[data-style-panel-layout~=circle]>.filepond--panel{border-radius:inherit}.filepond--root[data-style-panel-layout~=circle]>.filepond--panel>*{display:none}.filepond--root[data-style-panel-layout~=circle] .filepond--file-info,.filepond--root[data-style-panel-layout~=circle] .filepond--file-status{display:none}.filepond--root[data-style-panel-layout~=circle] .filepond--action-edit-item{opacity:1!important;visibility:visible!important}@media not all and (min-resolution:0.001dpcm){@supports (-webkit-appearance:none) and (stroke-color:transparent){.filepond--root[data-style-panel-layout~=circle]{will-change:transform}}}.filepond--panel-root{border-radius:.5em;background-color:#f1f0ef}.filepond--panel{position:absolute;left:0;top:0;right:0;margin:0;height:100%!important;pointer-events:none}.filepond-panel:not([data-scalable=false]){height:auto!important}.filepond--panel[data-scalable=false]>div{display:none}.filepond--panel[data-scalable=true]{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;background-color:transparent!important;border:none!important}.filepond--panel-bottom,.filepond--panel-center,.filepond--panel-top{position:absolute;left:0;top:0;right:0;margin:0;padding:0}.filepond--panel-bottom,.filepond--panel-top{height:.5em}.filepond--panel-top{border-bottom-left-radius:0!important;border-bottom-right-radius:0!important;border-bottom:none!important}.filepond--panel-top:after{content:"";position:absolute;height:2px;left:0;right:0;bottom:-1px;background-color:inherit}.filepond--panel-bottom,.filepond--panel-center{will-change:transform;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform-origin:left top;transform-origin:left top;-webkit-transform:translate3d(0,.5em,0);transform:translate3d(0,.5em,0)}.filepond--panel-bottom{border-top-left-radius:0!important;border-top-right-radius:0!important;border-top:none!important}.filepond--panel-bottom:before{content:"";position:absolute;height:2px;left:0;right:0;top:-1px;background-color:inherit}.filepond--panel-center{height:100px!important;border-top:none!important;border-bottom:none!important;border-radius:0!important}.filepond--panel-center:not([style]){visibility:hidden}.filepond--progress-indicator{position:static;width:1.25em;height:1.25em;color:#fff;margin:0;pointer-events:none;will-change:transform,opacity}.filepond--progress-indicator svg{width:100%;height:100%;vertical-align:top;transform-box:fill-box}.filepond--progress-indicator path{fill:none;stroke:currentColor}.filepond--list-scroller{z-index:6}.filepond--drop-label{z-index:5}.filepond--drip{z-index:3}.filepond--root>.filepond--panel{z-index:2}.filepond--browser{z-index:1}.filepond--root{box-sizing:border-box;position:relative;margin-bottom:1em;font-size:1rem;line-height:normal;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-weight:450;text-align:left;text-rendering:optimizeLegibility;direction:ltr;contain:layout style size}.filepond--root *{box-sizing:inherit;line-height:inherit}.filepond--root :not(text){font-size:inherit}.filepond--root[data-disabled]{pointer-events:none}.filepond--root[data-disabled] .filepond--list-scroller{pointer-events:all}.filepond--root[data-disabled] .filepond--list{pointer-events:none}.filepond--root .filepond--drop-label{min-height:4.75em}.filepond--root .filepond--list-scroller{margin-top:1em;margin-bottom:1em}.filepond--root .filepond--credits{position:absolute;right:0;opacity:.175;line-height:.85;font-size:11px;color:inherit;text-decoration:none;z-index:3;bottom:-14px}.filepond--root .filepond--credits[style]{top:0;bottom:auto;margin-top:14px}',"",{version:3,sources:["webpack://./node_modules/filepond/dist/filepond.min.css"],names:[],mappings:"AAAA;;;;EAIE;;AAEF,mBAAmB;AACnB,qBAAqB,iBAAiB,CAAC,eAAe,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,0BAA0B,CAAC,4BAA4B,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,qCAAqC,iBAAiB,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,sBAAsB,CAAC,SAAS,CAAC,WAAW,CAAC,gBAAgB,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,cAAc,CAAC,gBAAgB,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,UAAU,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,0BAA0B,CAAC,qBAAqB,sCAAsC,CAAC,8BAA8B,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,eAAe,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,2CAA2C,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,6BAA6B,CAAC,sBAAsB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,QAAQ,CAAC,wBAAwB,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,iDAAiD,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,4BAA4B,cAAc,CAAC,gBAAgB,CAAC,eAAe,CAAC,iBAAiB,CAAC,eAAe,CAAC,wBAAwB,yBAAyB,CAAC,gCAAgC,CAAC,6BAA6B,CAAC,qCAAqC,CAAC,6BAA6B,CAAC,cAAc,CAAC,2DAA2D,UAAU,CAAC,2DAA2D,aAAa,CAAC,aAAa,CAAC,cAAc,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC,6BAA6B,CAAC,gEAAgE,iBAAiB,CAAC,eAAe,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,0BAA0B,CAAC,4BAA4B,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,+DAA+D,UAAU,CAAC,WAAW,CAAC,iEAAiE,iBAAiB,CAAC,WAAW,CAAC,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,8BAA8B,WAAW,CAAC,UAAU,CAAC,iBAAiB,CAAC,+BAA+B,CAAC,qBAAqB,CAAC,oCAAoC,CAAC,kCAAkC,CAAC,wEAAwE,0CAA0C,CAAC,wCAAwC,wBAAwB,CAAC,gCAAgC,CAAC,sCAAsC,YAAY,CAAC,uDAAuD,SAAS,CAAC,UAAU,CAAC,eAAe,CAAC,2EAA2E,oBAAoB,CAAC,2EAA2E,sBAAsB,CAAC,gCAAgC,WAAW,CAAC,mBAAmB,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,aAAa,CAAC,YAAY,CAAC,SAAS,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,oCAAoC,cAAc,CAAC,eAAe,CAAC,qCAAqC,WAAW,CAAC,SAAS,CAAC,qBAAqB,eAAe,CAAC,YAAY,CAAC,qBAAqB,CAAC,sBAAsB,CAAC,MAAM,CAAC,iBAAiB,CAAC,WAAW,CAAC,6BAA6B,CAAC,mBAAmB,CAAC,wBAAwB,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,uBAAuB,QAAQ,CAAC,+CAA+C,eAAe,CAAC,eAAe,CAAC,sBAAsB,CAAC,eAAe,CAAC,kBAAkB,CAAC,UAAU,CAAC,8CAA8C,gBAAgB,CAAC,UAAU,CAAC,mCAAmC,CAAC,kBAAkB,CAAC,oDAAoD,YAAY,CAAC,uBAAuB,eAAe,CAAC,YAAY,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,6BAA6B,CAAC,mBAAmB,CAAC,wBAAwB,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,yBAAyB,QAAQ,CAAC,kBAAkB,CAAC,mDAAmD,eAAe,CAAC,eAAe,CAAC,kDAAkD,gBAAgB,CAAC,UAAU,CAAC,mCAAmC,CAAC,+CAA+C,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,WAAW,CAAC,sDAAsD,iBAAiB,CAAC,eAAe,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,0BAA0B,CAAC,4BAA4B,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,gBAAgB,eAAe,CAAC,YAAY,CAAC,WAAW,CAAC,sBAAsB,CAAC,eAAe,CAAC,UAAU,CAAC,kBAAkB,CAAC,uCAAuC,gBAAgB,CAAC,mBAAmB,CAAC,yDAAyD,mBAAmB,CAAC,wBAAwB,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,SAAS,CAAC,qJAAqJ,iBAAiB,CAAC,mCAAmC,YAAY,CAAC,oCAAoC,aAAa,CAAC,qCAAqC,wBAAwB,CAAC,qCAAqC,cAAc,CAAC,oCAAoC,uBAAuB,CAAC,8CAA8C,kBAAkB,CAAC,iEAAiE,oBAAoB,CAAC,gEAAgE,mBAAmB,CAAC,0KAA0K,mBAAmB,CAAC,kEAAkE,SAAS,CAAC,iIAAiI,UAAU,CAAC,uEAAuE,SAAS,CAAC,sIAAsI,UAAU,CAAC,4FAA4F,4CAA4C,CAAC,oCAAoC,CAAC,0EAA0E,UAAU,CAAC,uOAAuO,SAAS,CAAC,sIAAsI,UAAU,CAAC,8NAA8N,wCAAwC,CAAC,gCAAgC,CAAC,mEAAmE,yCAAyC,CAAC,iCAAiC,CAAC,wBAAwB,GAAG,8BAA8B,CAAC,sBAAsB,CAAC,GAAG,+BAA+B,CAAC,uBAAuB,CAAC,CAAC,gBAAgB,GAAG,8BAA8B,CAAC,sBAAsB,CAAC,GAAG,+BAA+B,CAAC,uBAAuB,CAAC,CAAC,yBAAyB,QAAQ,sCAAsC,CAAC,8BAA8B,CAAC,QAAQ,oCAAoC,CAAC,4BAA4B,CAAC,YAAY,oCAAoC,CAAC,4BAA4B,CAAC,QAAQ,mCAAmC,CAAC,2BAA2B,CAAC,CAAC,iBAAiB,QAAQ,sCAAsC,CAAC,8BAA8B,CAAC,QAAQ,oCAAoC,CAAC,4BAA4B,CAAC,YAAY,oCAAoC,CAAC,4BAA4B,CAAC,QAAQ,mCAAmC,CAAC,2BAA2B,CAAC,CAAC,wBAAwB,GAAG,SAAS,CAAC,2BAA2B,CAAC,mBAAmB,CAAC,0CAA0C,CAAC,kCAAkC,CAAC,IAAI,SAAS,CAAC,4BAA4B,CAAC,oBAAoB,CAAC,6CAA6C,CAAC,qCAAqC,CAAC,GAAG,0BAA0B,CAAC,kBAAkB,CAAC,0CAA0C,CAAC,kCAAkC,CAAC,CAAC,gBAAgB,GAAG,SAAS,CAAC,2BAA2B,CAAC,mBAAmB,CAAC,0CAA0C,CAAC,kCAAkC,CAAC,IAAI,SAAS,CAAC,4BAA4B,CAAC,oBAAoB,CAAC,6CAA6C,CAAC,qCAAqC,CAAC,GAAG,0BAA0B,CAAC,kBAAkB,CAAC,0CAA0C,CAAC,kCAAkC,CAAC,CAAC,iDAAiD,mBAAmB,CAAC,qDAAqD,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,8BAA8B,WAAW,CAAC,8BAA8B,WAAW,CAAC,uBAAuB,WAAW,CAAC,qBAAqB,WAAW,CAAC,gBAAgB,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,YAAY,CAAC,6BAA6B,CAAC,iCAAiC,UAAU,CAAC,yDAAyD,oDAAoD,CAAC,yEAAyE,gCAAgC,CAAC,iCAAiC,mBAAmB,CAAC,WAAW,CAAC,kDAAkD,uCAAuC,CAAC,4BAA4B,CAAC,sCAAsC,uBAAuB,CAAC,eAAe,CAAC,uDAAuD,4CAA4C,CAAC,6DAA6D,SAAS,CAAC,sBAAsB,wBAAwB,CAAC,qEAAqE,wBAAwB,CAAC,kHAAkH,wBAAwB,CAAC,sBAAsB,kBAAkB,CAAC,gCAAgC,CAAC,yBAAyB,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC,8DAA8D,QAAQ,CAAC,OAAO,CAAC,8CAA8C,iBAAiB,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,uEAAuE,CAAC,+DAA+D,CAAC,4CAA4C,sBAAsB,CAAC,qDAAqD,SAAS,CAAC,uDAAuD,QAAQ,CAAC,kDAAkD,+BAA+B,CAAC,qBAAqB,CAAC,gCAAgC,CAAC,2BAA2B,CAAC,+BAA+B,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,gBAAgB,UAAU,CAAC,WAAW,CAAC,qDAAqD,UAAU,CAAC,WAAW,CAAC,cAAc,CAAC,QAAQ,CAAC,kJAAkJ,eAAe,CAAC,sJAAsJ,YAAY,CAAC,kJAAkJ,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,SAAS,CAAC,kJAAkJ,YAAY,CAAC,yJAAyJ,eAAe,CAAC,WAAW,CAAC,YAAY,CAAC,eAAe,CAAC,uIAAuI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,uIAAuI,QAAQ,CAAC,uJAAuJ,WAAW,CAAC,mJAAmJ,SAAS,CAAC,iDAAiD,sBAAsB,CAAC,eAAe,CAAC,kEAAkE,qBAAqB,CAAC,oEAAoE,YAAY,CAAC,8IAA8I,YAAY,CAAC,6EAA6E,mBAAmB,CAAC,4BAA4B,CAAC,8CAA8C,mEAAmE,iDAAiD,qBAAqB,CAAC,CAAC,CAAC,sBAAsB,kBAAkB,CAAC,wBAAwB,CAAC,iBAAiB,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,2CAA2C,qBAAqB,CAAC,0CAA0C,YAAY,CAAC,qCAAqC,mCAAmC,CAAC,2BAA2B,CAAC,sCAAsC,CAAC,qBAAqB,CAAC,qEAAqE,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,6CAA6C,WAAW,CAAC,qBAAqB,qCAAqC,CAAC,sCAAsC,CAAC,4BAA4B,CAAC,2BAA2B,UAAU,CAAC,iBAAiB,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,wBAAwB,CAAC,gDAAgD,qBAAqB,CAAC,kCAAkC,CAAC,0BAA0B,CAAC,iCAAiC,CAAC,yBAAyB,CAAC,uCAAuC,CAAC,+BAA+B,CAAC,wBAAwB,kCAAkC,CAAC,mCAAmC,CAAC,yBAAyB,CAAC,+BAA+B,UAAU,CAAC,iBAAiB,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAC,wBAAwB,sBAAsB,CAAC,yBAAyB,CAAC,4BAA4B,CAAC,yBAAyB,CAAC,qCAAqC,iBAAiB,CAAC,8BAA8B,eAAe,CAAC,YAAY,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,mBAAmB,CAAC,6BAA6B,CAAC,kCAAkC,UAAU,CAAC,WAAW,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,mCAAmC,SAAS,CAAC,mBAAmB,CAAC,yBAAyB,SAAS,CAAC,sBAAsB,SAAS,CAAC,gBAAgB,SAAS,CAAC,iCAAiC,SAAS,CAAC,mBAAmB,SAAS,CAAC,gBAAgB,qBAAqB,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,cAAc,CAAC,kBAAkB,CAAC,wIAAwI,CAAC,eAAe,CAAC,eAAe,CAAC,iCAAiC,CAAC,aAAa,CAAC,yBAAyB,CAAC,kBAAkB,kBAAkB,CAAC,mBAAmB,CAAC,2BAA2B,iBAAiB,CAAC,+BAA+B,mBAAmB,CAAC,wDAAwD,kBAAkB,CAAC,+CAA+C,mBAAmB,CAAC,sCAAsC,iBAAiB,CAAC,yCAAyC,cAAc,CAAC,iBAAiB,CAAC,mCAAmC,iBAAiB,CAAC,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,cAAc,CAAC,aAAa,CAAC,oBAAoB,CAAC,SAAS,CAAC,YAAY,CAAC,0CAA0C,KAAK,CAAC,WAAW,CAAC,eAAe",sourcesContent:['/*!\n * FilePond 4.30.4\n * Licensed under MIT, https://opensource.org/licenses/MIT/\n * Please visit https://pqina.nl/filepond/ for details.\n */\n\n/* eslint-disable */\n.filepond--assistant{position:absolute;overflow:hidden;height:1px;width:1px;padding:0;border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap}.filepond--browser.filepond--browser{position:absolute;margin:0;padding:0;left:1em;top:1.75em;width:calc(100% - 2em);opacity:0;font-size:0}.filepond--data{position:absolute;width:0;height:0;padding:0;margin:0;border:none;visibility:hidden;pointer-events:none;contain:strict}.filepond--drip{position:absolute;top:0;left:0;right:0;bottom:0;overflow:hidden;opacity:.1;pointer-events:none;border-radius:.5em;background:rgba(0,0,0,.01)}.filepond--drip-blob{-webkit-transform-origin:center center;transform-origin:center center;width:8em;height:8em;margin-left:-4em;margin-top:-4em;background:#292625;border-radius:50%}.filepond--drip-blob,.filepond--drop-label{position:absolute;top:0;left:0;will-change:transform,opacity}.filepond--drop-label{right:0;margin:0;color:#4f4f4f;display:flex;justify-content:center;align-items:center;height:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.filepond--drop-label.filepond--drop-label label{display:block;margin:0;padding:.5em}.filepond--drop-label label{cursor:default;font-size:.875em;font-weight:400;text-align:center;line-height:1.5}.filepond--label-action{text-decoration:underline;-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto;-webkit-text-decoration-color:#a7a4a4;text-decoration-color:#a7a4a4;cursor:pointer}.filepond--root[data-disabled] .filepond--drop-label label{opacity:.5}.filepond--file-action-button.filepond--file-action-button{font-size:1em;width:1.625em;height:1.625em;font-family:inherit;line-height:inherit;margin:0;padding:0;border:none;outline:none;will-change:transform,opacity}.filepond--file-action-button.filepond--file-action-button span{position:absolute;overflow:hidden;height:1px;width:1px;padding:0;border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap}.filepond--file-action-button.filepond--file-action-button svg{width:100%;height:100%}.filepond--file-action-button.filepond--file-action-button:after{position:absolute;left:-.75em;right:-.75em;top:-.75em;bottom:-.75em;content:""}.filepond--file-action-button{cursor:auto;color:#fff;border-radius:50%;background-color:rgba(0,0,0,.5);background-image:none;box-shadow:0 0 0 0 hsla(0,0%,100%,0);transition:box-shadow .25s ease-in}.filepond--file-action-button:focus,.filepond--file-action-button:hover{box-shadow:0 0 0 .125em hsla(0,0%,100%,.9)}.filepond--file-action-button[disabled]{color:hsla(0,0%,100%,.5);background-color:rgba(0,0,0,.25)}.filepond--file-action-button[hidden]{display:none}.filepond--action-edit-item.filepond--action-edit-item{width:2em;height:2em;padding:.1875em}.filepond--action-edit-item.filepond--action-edit-item[data-align*=center]{margin-left:-.1875em}.filepond--action-edit-item.filepond--action-edit-item[data-align*=bottom]{margin-bottom:-.1875em}.filepond--action-edit-item-alt{border:none;line-height:inherit;background:transparent;font-family:inherit;color:inherit;outline:none;padding:0;margin:0 0 0 .25em;pointer-events:all;position:absolute}.filepond--action-edit-item-alt svg{width:1.3125em;height:1.3125em}.filepond--action-edit-item-alt span{font-size:0;opacity:0}.filepond--file-info{position:static;display:flex;flex-direction:column;align-items:flex-start;flex:1;margin:0 .5em 0 0;min-width:0;will-change:transform,opacity;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.filepond--file-info *{margin:0}.filepond--file-info .filepond--file-info-main{font-size:.75em;line-height:1.2;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;width:100%}.filepond--file-info .filepond--file-info-sub{font-size:.625em;opacity:.5;transition:opacity .25s ease-in-out;white-space:nowrap}.filepond--file-info .filepond--file-info-sub:empty{display:none}.filepond--file-status{position:static;display:flex;flex-direction:column;align-items:flex-end;flex-grow:0;flex-shrink:0;margin:0;min-width:2.25em;text-align:right;will-change:transform,opacity;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.filepond--file-status *{margin:0;white-space:nowrap}.filepond--file-status .filepond--file-status-main{font-size:.75em;line-height:1.2}.filepond--file-status .filepond--file-status-sub{font-size:.625em;opacity:.5;transition:opacity .25s ease-in-out}.filepond--file-wrapper.filepond--file-wrapper{border:none;margin:0;padding:0;min-width:0;height:100%}.filepond--file-wrapper.filepond--file-wrapper>legend{position:absolute;overflow:hidden;height:1px;width:1px;padding:0;border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap}.filepond--file{position:static;display:flex;height:100%;align-items:flex-start;padding:.5625em;color:#fff;border-radius:.5em}.filepond--file .filepond--file-status{margin-left:auto;margin-right:2.25em}.filepond--file .filepond--processing-complete-indicator{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:3}.filepond--file .filepond--file-action-button,.filepond--file .filepond--processing-complete-indicator,.filepond--file .filepond--progress-indicator{position:absolute}.filepond--file [data-align*=left]{left:.5625em}.filepond--file [data-align*=right]{right:.5625em}.filepond--file [data-align*=center]{left:calc(50% - .8125em)}.filepond--file [data-align*=bottom]{bottom:1.125em}.filepond--file [data-align=center]{top:calc(50% - .8125em)}.filepond--file .filepond--progress-indicator{margin-top:.1875em}.filepond--file .filepond--progress-indicator[data-align*=right]{margin-right:.1875em}.filepond--file .filepond--progress-indicator[data-align*=left]{margin-left:.1875em}[data-filepond-item-state*=error] .filepond--file-info,[data-filepond-item-state*=invalid] .filepond--file-info,[data-filepond-item-state=cancelled] .filepond--file-info{margin-right:2.25em}[data-filepond-item-state~=processing] .filepond--file-status-sub{opacity:0}[data-filepond-item-state~=processing] .filepond--action-abort-item-processing~.filepond--file-status .filepond--file-status-sub{opacity:.5}[data-filepond-item-state=processing-error] .filepond--file-status-sub{opacity:0}[data-filepond-item-state=processing-error] .filepond--action-retry-item-processing~.filepond--file-status .filepond--file-status-sub{opacity:.5}[data-filepond-item-state=processing-complete] .filepond--action-revert-item-processing svg{-webkit-animation:fall .5s linear .125s both;animation:fall .5s linear .125s both}[data-filepond-item-state=processing-complete] .filepond--file-status-sub{opacity:.5}[data-filepond-item-state=processing-complete] .filepond--file-info-sub,[data-filepond-item-state=processing-complete] .filepond--processing-complete-indicator:not([style*=hidden])~.filepond--file-status .filepond--file-status-sub{opacity:0}[data-filepond-item-state=processing-complete] .filepond--action-revert-item-processing~.filepond--file-info .filepond--file-info-sub{opacity:.5}[data-filepond-item-state*=error] .filepond--file-wrapper,[data-filepond-item-state*=error] .filepond--panel,[data-filepond-item-state*=invalid] .filepond--file-wrapper,[data-filepond-item-state*=invalid] .filepond--panel{-webkit-animation:shake .65s linear both;animation:shake .65s linear both}[data-filepond-item-state*=busy] .filepond--progress-indicator svg{-webkit-animation:spin 1s linear infinite;animation:spin 1s linear infinite}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@-webkit-keyframes shake{10%,90%{-webkit-transform:translateX(-.0625em);transform:translateX(-.0625em)}20%,80%{-webkit-transform:translateX(.125em);transform:translateX(.125em)}30%,50%,70%{-webkit-transform:translateX(-.25em);transform:translateX(-.25em)}40%,60%{-webkit-transform:translateX(.25em);transform:translateX(.25em)}}@keyframes shake{10%,90%{-webkit-transform:translateX(-.0625em);transform:translateX(-.0625em)}20%,80%{-webkit-transform:translateX(.125em);transform:translateX(.125em)}30%,50%,70%{-webkit-transform:translateX(-.25em);transform:translateX(-.25em)}40%,60%{-webkit-transform:translateX(.25em);transform:translateX(.25em)}}@-webkit-keyframes fall{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}70%{opacity:1;-webkit-transform:scale(1.1);transform:scale(1.1);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}to{-webkit-transform:scale(1);transform:scale(1);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}@keyframes fall{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}70%{opacity:1;-webkit-transform:scale(1.1);transform:scale(1.1);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}to{-webkit-transform:scale(1);transform:scale(1);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}.filepond--hopper[data-hopper-state=drag-over]>*{pointer-events:none}.filepond--hopper[data-hopper-state=drag-over]:after{content:"";position:absolute;left:0;top:0;right:0;bottom:0;z-index:100}.filepond--progress-indicator{z-index:103}.filepond--file-action-button{z-index:102}.filepond--file-status{z-index:101}.filepond--file-info{z-index:100}.filepond--item{position:absolute;top:0;left:0;right:0;z-index:1;padding:0;margin:.25em;will-change:transform,opacity}.filepond--item>.filepond--panel{z-index:-1}.filepond--item>.filepond--panel .filepond--panel-bottom{box-shadow:0 .0625em .125em -.0625em rgba(0,0,0,.25)}.filepond--item>.filepond--file-wrapper,.filepond--item>.filepond--panel{transition:opacity .15s ease-out}.filepond--item[data-drag-state]{cursor:-webkit-grab;cursor:grab}.filepond--item[data-drag-state]>.filepond--panel{transition:box-shadow .125s ease-in-out;box-shadow:0 0 0 transparent}.filepond--item[data-drag-state=drag]{cursor:-webkit-grabbing;cursor:grabbing}.filepond--item[data-drag-state=drag]>.filepond--panel{box-shadow:0 .125em .3125em rgba(0,0,0,.325)}.filepond--item[data-drag-state]:not([data-drag-state=idle]){z-index:2}.filepond--item-panel{background-color:#64605e}[data-filepond-item-state=processing-complete] .filepond--item-panel{background-color:#369763}[data-filepond-item-state*=error] .filepond--item-panel,[data-filepond-item-state*=invalid] .filepond--item-panel{background-color:#c44e47}.filepond--item-panel{border-radius:.5em;transition:background-color .25s}.filepond--list-scroller{position:absolute;top:0;left:0;right:0;margin:0;will-change:transform}.filepond--list-scroller[data-state=overflow] .filepond--list{bottom:0;right:0}.filepond--list-scroller[data-state=overflow]{overflow-y:scroll;overflow-x:hidden;-webkit-overflow-scrolling:touch;-webkit-mask:linear-gradient(180deg,#000 calc(100% - .5em),transparent);mask:linear-gradient(180deg,#000 calc(100% - .5em),transparent)}.filepond--list-scroller::-webkit-scrollbar{background:transparent}.filepond--list-scroller::-webkit-scrollbar:vertical{width:1em}.filepond--list-scroller::-webkit-scrollbar:horizontal{height:0}.filepond--list-scroller::-webkit-scrollbar-thumb{background-color:rgba(0,0,0,.3);border-radius:99999px;border:.3125em solid transparent;background-clip:content-box}.filepond--list.filepond--list{position:absolute;top:0;margin:0;padding:0;list-style-type:none;will-change:transform}.filepond--list{left:.75em;right:.75em}.filepond--root[data-style-panel-layout~=integrated]{width:100%;height:100%;max-width:none;margin:0}.filepond--root[data-style-panel-layout~=circle] .filepond--panel-root,.filepond--root[data-style-panel-layout~=integrated] .filepond--panel-root{border-radius:0}.filepond--root[data-style-panel-layout~=circle] .filepond--panel-root>*,.filepond--root[data-style-panel-layout~=integrated] .filepond--panel-root>*{display:none}.filepond--root[data-style-panel-layout~=circle] .filepond--drop-label,.filepond--root[data-style-panel-layout~=integrated] .filepond--drop-label{bottom:0;height:auto;display:flex;justify-content:center;align-items:center;z-index:7}.filepond--root[data-style-panel-layout~=circle] .filepond--item-panel,.filepond--root[data-style-panel-layout~=integrated] .filepond--item-panel{display:none}.filepond--root[data-style-panel-layout~=compact] .filepond--list-scroller,.filepond--root[data-style-panel-layout~=integrated] .filepond--list-scroller{overflow:hidden;height:100%;margin-top:0;margin-bottom:0}.filepond--root[data-style-panel-layout~=compact] .filepond--list,.filepond--root[data-style-panel-layout~=integrated] .filepond--list{left:0;right:0;height:100%}.filepond--root[data-style-panel-layout~=compact] .filepond--item,.filepond--root[data-style-panel-layout~=integrated] .filepond--item{margin:0}.filepond--root[data-style-panel-layout~=compact] .filepond--file-wrapper,.filepond--root[data-style-panel-layout~=integrated] .filepond--file-wrapper{height:100%}.filepond--root[data-style-panel-layout~=compact] .filepond--drop-label,.filepond--root[data-style-panel-layout~=integrated] .filepond--drop-label{z-index:7}.filepond--root[data-style-panel-layout~=circle]{border-radius:99999rem;overflow:hidden}.filepond--root[data-style-panel-layout~=circle]>.filepond--panel{border-radius:inherit}.filepond--root[data-style-panel-layout~=circle]>.filepond--panel>*{display:none}.filepond--root[data-style-panel-layout~=circle] .filepond--file-info,.filepond--root[data-style-panel-layout~=circle] .filepond--file-status{display:none}.filepond--root[data-style-panel-layout~=circle] .filepond--action-edit-item{opacity:1!important;visibility:visible!important}@media not all and (min-resolution:0.001dpcm){@supports (-webkit-appearance:none) and (stroke-color:transparent){.filepond--root[data-style-panel-layout~=circle]{will-change:transform}}}.filepond--panel-root{border-radius:.5em;background-color:#f1f0ef}.filepond--panel{position:absolute;left:0;top:0;right:0;margin:0;height:100%!important;pointer-events:none}.filepond-panel:not([data-scalable=false]){height:auto!important}.filepond--panel[data-scalable=false]>div{display:none}.filepond--panel[data-scalable=true]{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;background-color:transparent!important;border:none!important}.filepond--panel-bottom,.filepond--panel-center,.filepond--panel-top{position:absolute;left:0;top:0;right:0;margin:0;padding:0}.filepond--panel-bottom,.filepond--panel-top{height:.5em}.filepond--panel-top{border-bottom-left-radius:0!important;border-bottom-right-radius:0!important;border-bottom:none!important}.filepond--panel-top:after{content:"";position:absolute;height:2px;left:0;right:0;bottom:-1px;background-color:inherit}.filepond--panel-bottom,.filepond--panel-center{will-change:transform;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform-origin:left top;transform-origin:left top;-webkit-transform:translate3d(0,.5em,0);transform:translate3d(0,.5em,0)}.filepond--panel-bottom{border-top-left-radius:0!important;border-top-right-radius:0!important;border-top:none!important}.filepond--panel-bottom:before{content:"";position:absolute;height:2px;left:0;right:0;top:-1px;background-color:inherit}.filepond--panel-center{height:100px!important;border-top:none!important;border-bottom:none!important;border-radius:0!important}.filepond--panel-center:not([style]){visibility:hidden}.filepond--progress-indicator{position:static;width:1.25em;height:1.25em;color:#fff;margin:0;pointer-events:none;will-change:transform,opacity}.filepond--progress-indicator svg{width:100%;height:100%;vertical-align:top;transform-box:fill-box}.filepond--progress-indicator path{fill:none;stroke:currentColor}.filepond--list-scroller{z-index:6}.filepond--drop-label{z-index:5}.filepond--drip{z-index:3}.filepond--root>.filepond--panel{z-index:2}.filepond--browser{z-index:1}.filepond--root{box-sizing:border-box;position:relative;margin-bottom:1em;font-size:1rem;line-height:normal;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-weight:450;text-align:left;text-rendering:optimizeLegibility;direction:ltr;contain:layout style size}.filepond--root *{box-sizing:inherit;line-height:inherit}.filepond--root :not(text){font-size:inherit}.filepond--root[data-disabled]{pointer-events:none}.filepond--root[data-disabled] .filepond--list-scroller{pointer-events:all}.filepond--root[data-disabled] .filepond--list{pointer-events:none}.filepond--root .filepond--drop-label{min-height:4.75em}.filepond--root .filepond--list-scroller{margin-top:1em;margin-bottom:1em}.filepond--root .filepond--credits{position:absolute;right:0;opacity:.175;line-height:.85;font-size:11px;color:inherit;text-decoration:none;z-index:3;bottom:-14px}.filepond--root .filepond--credits[style]{top:0;bottom:auto;margin-top:14px}'],sourceRoot:""}]);const a=s},85046:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var n=i(87537),o=i.n(n),r=i(23645),s=i.n(r)()(o());s.push([e.id,"/*!\n * jQuery UI Accordion 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/accordion/#theming\n */\n.ui-accordion .ui-accordion-header {\n\tdisplay: block;\n\tcursor: pointer;\n\tposition: relative;\n\tmargin: 2px 0 0 0;\n\tpadding: .5em .5em .5em .7em;\n\tfont-size: 100%;\n}\n.ui-accordion .ui-accordion-content {\n\tpadding: 1em 2.2em;\n\tborder-top: 0;\n\toverflow: auto;\n}\n","",{version:3,sources:["webpack://./node_modules/jquery-ui/themes/base/accordion.css"],names:[],mappings:"AAAA;;;;;;;;;EASE;AACF;CACC,cAAc;CACd,eAAe;CACf,kBAAkB;CAClB,iBAAiB;CACjB,4BAA4B;CAC5B,eAAe;AAChB;AACA;CACC,kBAAkB;CAClB,aAAa;CACb,cAAc;AACf",sourcesContent:["/*!\n * jQuery UI Accordion 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/accordion/#theming\n */\n.ui-accordion .ui-accordion-header {\n\tdisplay: block;\n\tcursor: pointer;\n\tposition: relative;\n\tmargin: 2px 0 0 0;\n\tpadding: .5em .5em .5em .7em;\n\tfont-size: 100%;\n}\n.ui-accordion .ui-accordion-content {\n\tpadding: 1em 2.2em;\n\tborder-top: 0;\n\toverflow: auto;\n}\n"],sourceRoot:""}]);const a=s},5954:(e,t,i)=>{"use strict";i.d(t,{Z:()=>d});var n=i(87537),o=i.n(n),r=i(23645),s=i.n(r),a=i(27319),l=i(67286),c=s()(o());c.i(a.Z),c.i(l.Z),c.push([e.id,"/*!\n * jQuery UI CSS Framework 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/category/theming/\n */\n","",{version:3,sources:["webpack://./node_modules/jquery-ui/themes/base/all.css"],names:[],mappings:"AAAA;;;;;;;;;EASE",sourcesContent:['/*!\n * jQuery UI CSS Framework 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/category/theming/\n */\n@import "base.css";\n@import "theme.css";\n'],sourceRoot:""}]);const d=c},9057:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var n=i(87537),o=i.n(n),r=i(23645),s=i.n(r)()(o());s.push([e.id,"/*!\n * jQuery UI Autocomplete 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/autocomplete/#theming\n */\n.ui-autocomplete {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tcursor: default;\n}\n","",{version:3,sources:["webpack://./node_modules/jquery-ui/themes/base/autocomplete.css"],names:[],mappings:"AAAA;;;;;;;;;EASE;AACF;CACC,kBAAkB;CAClB,MAAM;CACN,OAAO;CACP,eAAe;AAChB",sourcesContent:["/*!\n * jQuery UI Autocomplete 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/autocomplete/#theming\n */\n.ui-autocomplete {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tcursor: default;\n}\n"],sourceRoot:""}]);const a=s},27319:(e,t,i)=>{"use strict";i.d(t,{Z:()=>S});var n=i(87537),o=i.n(n),r=i(23645),s=i.n(r),a=i(56404),l=i(85046),c=i(9057),d=i(18769),u=i(65388),h=i(53494),p=i(32806),f=i(5557),g=i(1760),m=i(55902),A=i(37318),b=i(45902),v=i(69701),C=i(67801),y=i(81978),w=i(39215),x=i(23241),_=i(12168),E=i(28072),k=s()(o());k.i(a.Z),k.i(l.Z),k.i(c.Z),k.i(d.Z),k.i(u.Z),k.i(h.Z),k.i(p.Z),k.i(f.Z),k.i(g.Z),k.i(m.Z),k.i(A.Z),k.i(b.Z),k.i(v.Z),k.i(C.Z),k.i(y.Z),k.i(w.Z),k.i(x.Z),k.i(_.Z),k.i(E.Z),k.push([e.id,"/*!\n * jQuery UI CSS Framework 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/category/theming/\n */\n","",{version:3,sources:["webpack://./node_modules/jquery-ui/themes/base/base.css"],names:[],mappings:"AAAA;;;;;;;;;EASE",sourcesContent:['/*!\n * jQuery UI CSS Framework 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/category/theming/\n */\n@import url("core.css");\n\n@import url("accordion.css");\n@import url("autocomplete.css");\n@import url("button.css");\n@import url("checkboxradio.css");\n@import url("controlgroup.css");\n@import url("datepicker.css");\n@import url("dialog.css");\n@import url("draggable.css");\n@import url("menu.css");\n@import url("progressbar.css");\n@import url("resizable.css");\n@import url("selectable.css");\n@import url("selectmenu.css");\n@import url("sortable.css");\n@import url("slider.css");\n@import url("spinner.css");\n@import url("tabs.css");\n@import url("tooltip.css");\n'],sourceRoot:""}]);const S=k},18769:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var n=i(87537),o=i.n(n),r=i(23645),s=i.n(r)()(o());s.push([e.id,"/*!\n * jQuery UI Button 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/button/#theming\n */\n.ui-button {\n\tpadding: .4em 1em;\n\tdisplay: inline-block;\n\tposition: relative;\n\tline-height: normal;\n\tmargin-right: .1em;\n\tcursor: pointer;\n\tvertical-align: middle;\n\ttext-align: center;\n\t-webkit-user-select: none;\n\t-moz-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none;\n\n\t/* Support: IE <= 11 */\n\toverflow: visible;\n}\n\n.ui-button,\n.ui-button:link,\n.ui-button:visited,\n.ui-button:hover,\n.ui-button:active {\n\ttext-decoration: none;\n}\n\n/* to make room for the icon, a width needs to be set here */\n.ui-button-icon-only {\n\twidth: 2em;\n\tbox-sizing: border-box;\n\ttext-indent: -9999px;\n\twhite-space: nowrap;\n}\n\n/* no icon support for input elements */\ninput.ui-button.ui-button-icon-only {\n\ttext-indent: 0;\n}\n\n/* button icon element(s) */\n.ui-button-icon-only .ui-icon {\n\tposition: absolute;\n\ttop: 50%;\n\tleft: 50%;\n\tmargin-top: -8px;\n\tmargin-left: -8px;\n}\n\n.ui-button.ui-icon-notext .ui-icon {\n\tpadding: 0;\n\twidth: 2.1em;\n\theight: 2.1em;\n\ttext-indent: -9999px;\n\twhite-space: nowrap;\n\n}\n\ninput.ui-button.ui-icon-notext .ui-icon {\n\twidth: auto;\n\theight: auto;\n\ttext-indent: 0;\n\twhite-space: normal;\n\tpadding: .4em 1em;\n}\n\n/* workarounds */\n/* Support: Firefox 5 - 40 */\ninput.ui-button::-moz-focus-inner,\nbutton.ui-button::-moz-focus-inner {\n\tborder: 0;\n\tpadding: 0;\n}\n","",{version:3,sources:["webpack://./node_modules/jquery-ui/themes/base/button.css"],names:[],mappings:"AAAA;;;;;;;;;EASE;AACF;CACC,iBAAiB;CACjB,qBAAqB;CACrB,kBAAkB;CAClB,mBAAmB;CACnB,kBAAkB;CAClB,eAAe;CACf,sBAAsB;CACtB,kBAAkB;CAClB,yBAAyB;CACzB,sBAAsB;CACtB,qBAAqB;CACrB,iBAAiB;;CAEjB,sBAAsB;CACtB,iBAAiB;AAClB;;AAEA;;;;;CAKC,qBAAqB;AACtB;;AAEA,4DAA4D;AAC5D;CACC,UAAU;CACV,sBAAsB;CACtB,oBAAoB;CACpB,mBAAmB;AACpB;;AAEA,uCAAuC;AACvC;CACC,cAAc;AACf;;AAEA,2BAA2B;AAC3B;CACC,kBAAkB;CAClB,QAAQ;CACR,SAAS;CACT,gBAAgB;CAChB,iBAAiB;AAClB;;AAEA;CACC,UAAU;CACV,YAAY;CACZ,aAAa;CACb,oBAAoB;CACpB,mBAAmB;;AAEpB;;AAEA;CACC,WAAW;CACX,YAAY;CACZ,cAAc;CACd,mBAAmB;CACnB,iBAAiB;AAClB;;AAEA,gBAAgB;AAChB,4BAA4B;AAC5B;;CAEC,SAAS;CACT,UAAU;AACX",sourcesContent:["/*!\n * jQuery UI Button 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/button/#theming\n */\n.ui-button {\n\tpadding: .4em 1em;\n\tdisplay: inline-block;\n\tposition: relative;\n\tline-height: normal;\n\tmargin-right: .1em;\n\tcursor: pointer;\n\tvertical-align: middle;\n\ttext-align: center;\n\t-webkit-user-select: none;\n\t-moz-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none;\n\n\t/* Support: IE <= 11 */\n\toverflow: visible;\n}\n\n.ui-button,\n.ui-button:link,\n.ui-button:visited,\n.ui-button:hover,\n.ui-button:active {\n\ttext-decoration: none;\n}\n\n/* to make room for the icon, a width needs to be set here */\n.ui-button-icon-only {\n\twidth: 2em;\n\tbox-sizing: border-box;\n\ttext-indent: -9999px;\n\twhite-space: nowrap;\n}\n\n/* no icon support for input elements */\ninput.ui-button.ui-button-icon-only {\n\ttext-indent: 0;\n}\n\n/* button icon element(s) */\n.ui-button-icon-only .ui-icon {\n\tposition: absolute;\n\ttop: 50%;\n\tleft: 50%;\n\tmargin-top: -8px;\n\tmargin-left: -8px;\n}\n\n.ui-button.ui-icon-notext .ui-icon {\n\tpadding: 0;\n\twidth: 2.1em;\n\theight: 2.1em;\n\ttext-indent: -9999px;\n\twhite-space: nowrap;\n\n}\n\ninput.ui-button.ui-icon-notext .ui-icon {\n\twidth: auto;\n\theight: auto;\n\ttext-indent: 0;\n\twhite-space: normal;\n\tpadding: .4em 1em;\n}\n\n/* workarounds */\n/* Support: Firefox 5 - 40 */\ninput.ui-button::-moz-focus-inner,\nbutton.ui-button::-moz-focus-inner {\n\tborder: 0;\n\tpadding: 0;\n}\n"],sourceRoot:""}]);const a=s},65388:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var n=i(87537),o=i.n(n),r=i(23645),s=i.n(r)()(o());s.push([e.id,"/*!\n * jQuery UI Checkboxradio 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/checkboxradio/#theming\n */\n\n.ui-checkboxradio-label .ui-icon-background {\n\tbox-shadow: inset 1px 1px 1px #ccc;\n\tborder-radius: .12em;\n\tborder: none;\n}\n.ui-checkboxradio-radio-label .ui-icon-background {\n\twidth: 16px;\n\theight: 16px;\n\tborder-radius: 1em;\n\toverflow: visible;\n\tborder: none;\n}\n.ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon,\n.ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon {\n\tbackground-image: none;\n\twidth: 8px;\n\theight: 8px;\n\tborder-width: 4px;\n\tborder-style: solid;\n}\n.ui-checkboxradio-disabled {\n\tpointer-events: none;\n}\n","",{version:3,sources:["webpack://./node_modules/jquery-ui/themes/base/checkboxradio.css"],names:[],mappings:"AAAA;;;;;;;;;EASE;;AAEF;CACC,kCAAkC;CAClC,oBAAoB;CACpB,YAAY;AACb;AACA;CACC,WAAW;CACX,YAAY;CACZ,kBAAkB;CAClB,iBAAiB;CACjB,YAAY;AACb;AACA;;CAEC,sBAAsB;CACtB,UAAU;CACV,WAAW;CACX,iBAAiB;CACjB,mBAAmB;AACpB;AACA;CACC,oBAAoB;AACrB",sourcesContent:["/*!\n * jQuery UI Checkboxradio 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/checkboxradio/#theming\n */\n\n.ui-checkboxradio-label .ui-icon-background {\n\tbox-shadow: inset 1px 1px 1px #ccc;\n\tborder-radius: .12em;\n\tborder: none;\n}\n.ui-checkboxradio-radio-label .ui-icon-background {\n\twidth: 16px;\n\theight: 16px;\n\tborder-radius: 1em;\n\toverflow: visible;\n\tborder: none;\n}\n.ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon,\n.ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon {\n\tbackground-image: none;\n\twidth: 8px;\n\theight: 8px;\n\tborder-width: 4px;\n\tborder-style: solid;\n}\n.ui-checkboxradio-disabled {\n\tpointer-events: none;\n}\n"],sourceRoot:""}]);const a=s},53494:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var n=i(87537),o=i.n(n),r=i(23645),s=i.n(r)()(o());s.push([e.id,"/*!\n * jQuery UI Controlgroup 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/controlgroup/#theming\n */\n\n.ui-controlgroup {\n\tvertical-align: middle;\n\tdisplay: inline-block;\n}\n.ui-controlgroup > .ui-controlgroup-item {\n\tfloat: left;\n\tmargin-left: 0;\n\tmargin-right: 0;\n}\n.ui-controlgroup > .ui-controlgroup-item:focus,\n.ui-controlgroup > .ui-controlgroup-item.ui-visual-focus {\n\tz-index: 9999;\n}\n.ui-controlgroup-vertical > .ui-controlgroup-item {\n\tdisplay: block;\n\tfloat: none;\n\twidth: 100%;\n\tmargin-top: 0;\n\tmargin-bottom: 0;\n\ttext-align: left;\n}\n.ui-controlgroup-vertical .ui-controlgroup-item {\n\tbox-sizing: border-box;\n}\n.ui-controlgroup .ui-controlgroup-label {\n\tpadding: .4em 1em;\n}\n.ui-controlgroup .ui-controlgroup-label span {\n\tfont-size: 80%;\n}\n.ui-controlgroup-horizontal .ui-controlgroup-label + .ui-controlgroup-item {\n\tborder-left: none;\n}\n.ui-controlgroup-vertical .ui-controlgroup-label + .ui-controlgroup-item {\n\tborder-top: none;\n}\n.ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content {\n\tborder-right: none;\n}\n.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content {\n\tborder-bottom: none;\n}\n\n/* Spinner specific style fixes */\n.ui-controlgroup-vertical .ui-spinner-input {\n\n\t/* Support: IE8 only, Android < 4.4 only */\n\twidth: 75%;\n\twidth: calc( 100% - 2.4em );\n}\n.ui-controlgroup-vertical .ui-spinner .ui-spinner-up {\n\tborder-top-style: solid;\n}\n\n","",{version:3,sources:["webpack://./node_modules/jquery-ui/themes/base/controlgroup.css"],names:[],mappings:"AAAA;;;;;;;;;EASE;;AAEF;CACC,sBAAsB;CACtB,qBAAqB;AACtB;AACA;CACC,WAAW;CACX,cAAc;CACd,eAAe;AAChB;AACA;;CAEC,aAAa;AACd;AACA;CACC,cAAc;CACd,WAAW;CACX,WAAW;CACX,aAAa;CACb,gBAAgB;CAChB,gBAAgB;AACjB;AACA;CACC,sBAAsB;AACvB;AACA;CACC,iBAAiB;AAClB;AACA;CACC,cAAc;AACf;AACA;CACC,iBAAiB;AAClB;AACA;CACC,gBAAgB;AACjB;AACA;CACC,kBAAkB;AACnB;AACA;CACC,mBAAmB;AACpB;;AAEA,iCAAiC;AACjC;;CAEC,0CAA0C;CAC1C,UAAU;CACV,2BAA2B;AAC5B;AACA;CACC,uBAAuB;AACxB",sourcesContent:["/*!\n * jQuery UI Controlgroup 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/controlgroup/#theming\n */\n\n.ui-controlgroup {\n\tvertical-align: middle;\n\tdisplay: inline-block;\n}\n.ui-controlgroup > .ui-controlgroup-item {\n\tfloat: left;\n\tmargin-left: 0;\n\tmargin-right: 0;\n}\n.ui-controlgroup > .ui-controlgroup-item:focus,\n.ui-controlgroup > .ui-controlgroup-item.ui-visual-focus {\n\tz-index: 9999;\n}\n.ui-controlgroup-vertical > .ui-controlgroup-item {\n\tdisplay: block;\n\tfloat: none;\n\twidth: 100%;\n\tmargin-top: 0;\n\tmargin-bottom: 0;\n\ttext-align: left;\n}\n.ui-controlgroup-vertical .ui-controlgroup-item {\n\tbox-sizing: border-box;\n}\n.ui-controlgroup .ui-controlgroup-label {\n\tpadding: .4em 1em;\n}\n.ui-controlgroup .ui-controlgroup-label span {\n\tfont-size: 80%;\n}\n.ui-controlgroup-horizontal .ui-controlgroup-label + .ui-controlgroup-item {\n\tborder-left: none;\n}\n.ui-controlgroup-vertical .ui-controlgroup-label + .ui-controlgroup-item {\n\tborder-top: none;\n}\n.ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content {\n\tborder-right: none;\n}\n.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content {\n\tborder-bottom: none;\n}\n\n/* Spinner specific style fixes */\n.ui-controlgroup-vertical .ui-spinner-input {\n\n\t/* Support: IE8 only, Android < 4.4 only */\n\twidth: 75%;\n\twidth: calc( 100% - 2.4em );\n}\n.ui-controlgroup-vertical .ui-spinner .ui-spinner-up {\n\tborder-top-style: solid;\n}\n\n"],sourceRoot:""}]);const a=s},56404:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var n=i(87537),o=i.n(n),r=i(23645),s=i.n(r)()(o());s.push([e.id,'/*!\n * jQuery UI CSS Framework 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/category/theming/\n */\n\n/* Layout helpers\n----------------------------------*/\n.ui-helper-hidden {\n\tdisplay: none;\n}\n.ui-helper-hidden-accessible {\n\tborder: 0;\n\tclip: rect(0 0 0 0);\n\theight: 1px;\n\tmargin: -1px;\n\toverflow: hidden;\n\tpadding: 0;\n\tposition: absolute;\n\twidth: 1px;\n}\n.ui-helper-reset {\n\tmargin: 0;\n\tpadding: 0;\n\tborder: 0;\n\toutline: 0;\n\tline-height: 1.3;\n\ttext-decoration: none;\n\tfont-size: 100%;\n\tlist-style: none;\n}\n.ui-helper-clearfix:before,\n.ui-helper-clearfix:after {\n\tcontent: "";\n\tdisplay: table;\n\tborder-collapse: collapse;\n}\n.ui-helper-clearfix:after {\n\tclear: both;\n}\n.ui-helper-zfix {\n\twidth: 100%;\n\theight: 100%;\n\ttop: 0;\n\tleft: 0;\n\tposition: absolute;\n\topacity: 0;\n\t-ms-filter: "alpha(opacity=0)"; /* support: IE8 */\n}\n\n.ui-front {\n\tz-index: 100;\n}\n\n\n/* Interaction Cues\n----------------------------------*/\n.ui-state-disabled {\n\tcursor: default !important;\n\tpointer-events: none;\n}\n\n\n/* Icons\n----------------------------------*/\n.ui-icon {\n\tdisplay: inline-block;\n\tvertical-align: middle;\n\tmargin-top: -.25em;\n\tposition: relative;\n\ttext-indent: -99999px;\n\toverflow: hidden;\n\tbackground-repeat: no-repeat;\n}\n\n.ui-widget-icon-block {\n\tleft: 50%;\n\tmargin-left: -8px;\n\tdisplay: block;\n}\n\n/* Misc visuals\n----------------------------------*/\n\n/* Overlays */\n.ui-widget-overlay {\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\twidth: 100%;\n\theight: 100%;\n}\n',"",{version:3,sources:["webpack://./node_modules/jquery-ui/themes/base/core.css"],names:[],mappings:"AAAA;;;;;;;;;EASE;;AAEF;mCACmC;AACnC;CACC,aAAa;AACd;AACA;CACC,SAAS;CACT,mBAAmB;CACnB,WAAW;CACX,YAAY;CACZ,gBAAgB;CAChB,UAAU;CACV,kBAAkB;CAClB,UAAU;AACX;AACA;CACC,SAAS;CACT,UAAU;CACV,SAAS;CACT,UAAU;CACV,gBAAgB;CAChB,qBAAqB;CACrB,eAAe;CACf,gBAAgB;AACjB;AACA;;CAEC,WAAW;CACX,cAAc;CACd,yBAAyB;AAC1B;AACA;CACC,WAAW;AACZ;AACA;CACC,WAAW;CACX,YAAY;CACZ,MAAM;CACN,OAAO;CACP,kBAAkB;CAClB,UAAU;CACV,8BAA8B,EAAE,iBAAiB;AAClD;;AAEA;CACC,YAAY;AACb;;;AAGA;mCACmC;AACnC;CACC,0BAA0B;CAC1B,oBAAoB;AACrB;;;AAGA;mCACmC;AACnC;CACC,qBAAqB;CACrB,sBAAsB;CACtB,kBAAkB;CAClB,kBAAkB;CAClB,qBAAqB;CACrB,gBAAgB;CAChB,4BAA4B;AAC7B;;AAEA;CACC,SAAS;CACT,iBAAiB;CACjB,cAAc;AACf;;AAEA;mCACmC;;AAEnC,aAAa;AACb;CACC,eAAe;CACf,MAAM;CACN,OAAO;CACP,WAAW;CACX,YAAY;AACb",sourcesContent:['/*!\n * jQuery UI CSS Framework 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/category/theming/\n */\n\n/* Layout helpers\n----------------------------------*/\n.ui-helper-hidden {\n\tdisplay: none;\n}\n.ui-helper-hidden-accessible {\n\tborder: 0;\n\tclip: rect(0 0 0 0);\n\theight: 1px;\n\tmargin: -1px;\n\toverflow: hidden;\n\tpadding: 0;\n\tposition: absolute;\n\twidth: 1px;\n}\n.ui-helper-reset {\n\tmargin: 0;\n\tpadding: 0;\n\tborder: 0;\n\toutline: 0;\n\tline-height: 1.3;\n\ttext-decoration: none;\n\tfont-size: 100%;\n\tlist-style: none;\n}\n.ui-helper-clearfix:before,\n.ui-helper-clearfix:after {\n\tcontent: "";\n\tdisplay: table;\n\tborder-collapse: collapse;\n}\n.ui-helper-clearfix:after {\n\tclear: both;\n}\n.ui-helper-zfix {\n\twidth: 100%;\n\theight: 100%;\n\ttop: 0;\n\tleft: 0;\n\tposition: absolute;\n\topacity: 0;\n\t-ms-filter: "alpha(opacity=0)"; /* support: IE8 */\n}\n\n.ui-front {\n\tz-index: 100;\n}\n\n\n/* Interaction Cues\n----------------------------------*/\n.ui-state-disabled {\n\tcursor: default !important;\n\tpointer-events: none;\n}\n\n\n/* Icons\n----------------------------------*/\n.ui-icon {\n\tdisplay: inline-block;\n\tvertical-align: middle;\n\tmargin-top: -.25em;\n\tposition: relative;\n\ttext-indent: -99999px;\n\toverflow: hidden;\n\tbackground-repeat: no-repeat;\n}\n\n.ui-widget-icon-block {\n\tleft: 50%;\n\tmargin-left: -8px;\n\tdisplay: block;\n}\n\n/* Misc visuals\n----------------------------------*/\n\n/* Overlays */\n.ui-widget-overlay {\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\twidth: 100%;\n\theight: 100%;\n}\n'],sourceRoot:""}]);const a=s},32806:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var n=i(87537),o=i.n(n),r=i(23645),s=i.n(r)()(o());s.push([e.id,"/*!\n * jQuery UI Datepicker 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/datepicker/#theming\n */\n.ui-datepicker {\n\twidth: 17em;\n\tpadding: .2em .2em 0;\n\tdisplay: none;\n}\n.ui-datepicker .ui-datepicker-header {\n\tposition: relative;\n\tpadding: .2em 0;\n}\n.ui-datepicker .ui-datepicker-prev,\n.ui-datepicker .ui-datepicker-next {\n\tposition: absolute;\n\ttop: 2px;\n\twidth: 1.8em;\n\theight: 1.8em;\n}\n.ui-datepicker .ui-datepicker-prev-hover,\n.ui-datepicker .ui-datepicker-next-hover {\n\ttop: 1px;\n}\n.ui-datepicker .ui-datepicker-prev {\n\tleft: 2px;\n}\n.ui-datepicker .ui-datepicker-next {\n\tright: 2px;\n}\n.ui-datepicker .ui-datepicker-prev-hover {\n\tleft: 1px;\n}\n.ui-datepicker .ui-datepicker-next-hover {\n\tright: 1px;\n}\n.ui-datepicker .ui-datepicker-prev span,\n.ui-datepicker .ui-datepicker-next span {\n\tdisplay: block;\n\tposition: absolute;\n\tleft: 50%;\n\tmargin-left: -8px;\n\ttop: 50%;\n\tmargin-top: -8px;\n}\n.ui-datepicker .ui-datepicker-title {\n\tmargin: 0 2.3em;\n\tline-height: 1.8em;\n\ttext-align: center;\n}\n.ui-datepicker .ui-datepicker-title select {\n\tfont-size: 1em;\n\tmargin: 1px 0;\n}\n.ui-datepicker select.ui-datepicker-month,\n.ui-datepicker select.ui-datepicker-year {\n\twidth: 45%;\n}\n.ui-datepicker table {\n\twidth: 100%;\n\tfont-size: .9em;\n\tborder-collapse: collapse;\n\tmargin: 0 0 .4em;\n}\n.ui-datepicker th {\n\tpadding: .7em .3em;\n\ttext-align: center;\n\tfont-weight: bold;\n\tborder: 0;\n}\n.ui-datepicker td {\n\tborder: 0;\n\tpadding: 1px;\n}\n.ui-datepicker td span,\n.ui-datepicker td a {\n\tdisplay: block;\n\tpadding: .2em;\n\ttext-align: right;\n\ttext-decoration: none;\n}\n.ui-datepicker .ui-datepicker-buttonpane {\n\tbackground-image: none;\n\tmargin: .7em 0 0 0;\n\tpadding: 0 .2em;\n\tborder-left: 0;\n\tborder-right: 0;\n\tborder-bottom: 0;\n}\n.ui-datepicker .ui-datepicker-buttonpane button {\n\tfloat: right;\n\tmargin: .5em .2em .4em;\n\tcursor: pointer;\n\tpadding: .2em .6em .3em .6em;\n\twidth: auto;\n\toverflow: visible;\n}\n.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {\n\tfloat: left;\n}\n\n/* with multiple calendars */\n.ui-datepicker.ui-datepicker-multi {\n\twidth: auto;\n}\n.ui-datepicker-multi .ui-datepicker-group {\n\tfloat: left;\n}\n.ui-datepicker-multi .ui-datepicker-group table {\n\twidth: 95%;\n\tmargin: 0 auto .4em;\n}\n.ui-datepicker-multi-2 .ui-datepicker-group {\n\twidth: 50%;\n}\n.ui-datepicker-multi-3 .ui-datepicker-group {\n\twidth: 33.3%;\n}\n.ui-datepicker-multi-4 .ui-datepicker-group {\n\twidth: 25%;\n}\n.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,\n.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header {\n\tborder-left-width: 0;\n}\n.ui-datepicker-multi .ui-datepicker-buttonpane {\n\tclear: left;\n}\n.ui-datepicker-row-break {\n\tclear: both;\n\twidth: 100%;\n\tfont-size: 0;\n}\n\n/* RTL support */\n.ui-datepicker-rtl {\n\tdirection: rtl;\n}\n.ui-datepicker-rtl .ui-datepicker-prev {\n\tright: 2px;\n\tleft: auto;\n}\n.ui-datepicker-rtl .ui-datepicker-next {\n\tleft: 2px;\n\tright: auto;\n}\n.ui-datepicker-rtl .ui-datepicker-prev:hover {\n\tright: 1px;\n\tleft: auto;\n}\n.ui-datepicker-rtl .ui-datepicker-next:hover {\n\tleft: 1px;\n\tright: auto;\n}\n.ui-datepicker-rtl .ui-datepicker-buttonpane {\n\tclear: right;\n}\n.ui-datepicker-rtl .ui-datepicker-buttonpane button {\n\tfloat: left;\n}\n.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,\n.ui-datepicker-rtl .ui-datepicker-group {\n\tfloat: right;\n}\n.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,\n.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {\n\tborder-right-width: 0;\n\tborder-left-width: 1px;\n}\n\n/* Icons */\n.ui-datepicker .ui-icon {\n\tdisplay: block;\n\ttext-indent: -99999px;\n\toverflow: hidden;\n\tbackground-repeat: no-repeat;\n\tleft: .5em;\n\ttop: .3em;\n}\n","",{version:3,sources:["webpack://./node_modules/jquery-ui/themes/base/datepicker.css"],names:[],mappings:"AAAA;;;;;;;;;EASE;AACF;CACC,WAAW;CACX,oBAAoB;CACpB,aAAa;AACd;AACA;CACC,kBAAkB;CAClB,eAAe;AAChB;AACA;;CAEC,kBAAkB;CAClB,QAAQ;CACR,YAAY;CACZ,aAAa;AACd;AACA;;CAEC,QAAQ;AACT;AACA;CACC,SAAS;AACV;AACA;CACC,UAAU;AACX;AACA;CACC,SAAS;AACV;AACA;CACC,UAAU;AACX;AACA;;CAEC,cAAc;CACd,kBAAkB;CAClB,SAAS;CACT,iBAAiB;CACjB,QAAQ;CACR,gBAAgB;AACjB;AACA;CACC,eAAe;CACf,kBAAkB;CAClB,kBAAkB;AACnB;AACA;CACC,cAAc;CACd,aAAa;AACd;AACA;;CAEC,UAAU;AACX;AACA;CACC,WAAW;CACX,eAAe;CACf,yBAAyB;CACzB,gBAAgB;AACjB;AACA;CACC,kBAAkB;CAClB,kBAAkB;CAClB,iBAAiB;CACjB,SAAS;AACV;AACA;CACC,SAAS;CACT,YAAY;AACb;AACA;;CAEC,cAAc;CACd,aAAa;CACb,iBAAiB;CACjB,qBAAqB;AACtB;AACA;CACC,sBAAsB;CACtB,kBAAkB;CAClB,eAAe;CACf,cAAc;CACd,eAAe;CACf,gBAAgB;AACjB;AACA;CACC,YAAY;CACZ,sBAAsB;CACtB,eAAe;CACf,4BAA4B;CAC5B,WAAW;CACX,iBAAiB;AAClB;AACA;CACC,WAAW;AACZ;;AAEA,4BAA4B;AAC5B;CACC,WAAW;AACZ;AACA;CACC,WAAW;AACZ;AACA;CACC,UAAU;CACV,mBAAmB;AACpB;AACA;CACC,UAAU;AACX;AACA;CACC,YAAY;AACb;AACA;CACC,UAAU;AACX;AACA;;CAEC,oBAAoB;AACrB;AACA;CACC,WAAW;AACZ;AACA;CACC,WAAW;CACX,WAAW;CACX,YAAY;AACb;;AAEA,gBAAgB;AAChB;CACC,cAAc;AACf;AACA;CACC,UAAU;CACV,UAAU;AACX;AACA;CACC,SAAS;CACT,WAAW;AACZ;AACA;CACC,UAAU;CACV,UAAU;AACX;AACA;CACC,SAAS;CACT,WAAW;AACZ;AACA;CACC,YAAY;AACb;AACA;CACC,WAAW;AACZ;AACA;;CAEC,YAAY;AACb;AACA;;CAEC,qBAAqB;CACrB,sBAAsB;AACvB;;AAEA,UAAU;AACV;CACC,cAAc;CACd,qBAAqB;CACrB,gBAAgB;CAChB,4BAA4B;CAC5B,UAAU;CACV,SAAS;AACV",sourcesContent:["/*!\n * jQuery UI Datepicker 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/datepicker/#theming\n */\n.ui-datepicker {\n\twidth: 17em;\n\tpadding: .2em .2em 0;\n\tdisplay: none;\n}\n.ui-datepicker .ui-datepicker-header {\n\tposition: relative;\n\tpadding: .2em 0;\n}\n.ui-datepicker .ui-datepicker-prev,\n.ui-datepicker .ui-datepicker-next {\n\tposition: absolute;\n\ttop: 2px;\n\twidth: 1.8em;\n\theight: 1.8em;\n}\n.ui-datepicker .ui-datepicker-prev-hover,\n.ui-datepicker .ui-datepicker-next-hover {\n\ttop: 1px;\n}\n.ui-datepicker .ui-datepicker-prev {\n\tleft: 2px;\n}\n.ui-datepicker .ui-datepicker-next {\n\tright: 2px;\n}\n.ui-datepicker .ui-datepicker-prev-hover {\n\tleft: 1px;\n}\n.ui-datepicker .ui-datepicker-next-hover {\n\tright: 1px;\n}\n.ui-datepicker .ui-datepicker-prev span,\n.ui-datepicker .ui-datepicker-next span {\n\tdisplay: block;\n\tposition: absolute;\n\tleft: 50%;\n\tmargin-left: -8px;\n\ttop: 50%;\n\tmargin-top: -8px;\n}\n.ui-datepicker .ui-datepicker-title {\n\tmargin: 0 2.3em;\n\tline-height: 1.8em;\n\ttext-align: center;\n}\n.ui-datepicker .ui-datepicker-title select {\n\tfont-size: 1em;\n\tmargin: 1px 0;\n}\n.ui-datepicker select.ui-datepicker-month,\n.ui-datepicker select.ui-datepicker-year {\n\twidth: 45%;\n}\n.ui-datepicker table {\n\twidth: 100%;\n\tfont-size: .9em;\n\tborder-collapse: collapse;\n\tmargin: 0 0 .4em;\n}\n.ui-datepicker th {\n\tpadding: .7em .3em;\n\ttext-align: center;\n\tfont-weight: bold;\n\tborder: 0;\n}\n.ui-datepicker td {\n\tborder: 0;\n\tpadding: 1px;\n}\n.ui-datepicker td span,\n.ui-datepicker td a {\n\tdisplay: block;\n\tpadding: .2em;\n\ttext-align: right;\n\ttext-decoration: none;\n}\n.ui-datepicker .ui-datepicker-buttonpane {\n\tbackground-image: none;\n\tmargin: .7em 0 0 0;\n\tpadding: 0 .2em;\n\tborder-left: 0;\n\tborder-right: 0;\n\tborder-bottom: 0;\n}\n.ui-datepicker .ui-datepicker-buttonpane button {\n\tfloat: right;\n\tmargin: .5em .2em .4em;\n\tcursor: pointer;\n\tpadding: .2em .6em .3em .6em;\n\twidth: auto;\n\toverflow: visible;\n}\n.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {\n\tfloat: left;\n}\n\n/* with multiple calendars */\n.ui-datepicker.ui-datepicker-multi {\n\twidth: auto;\n}\n.ui-datepicker-multi .ui-datepicker-group {\n\tfloat: left;\n}\n.ui-datepicker-multi .ui-datepicker-group table {\n\twidth: 95%;\n\tmargin: 0 auto .4em;\n}\n.ui-datepicker-multi-2 .ui-datepicker-group {\n\twidth: 50%;\n}\n.ui-datepicker-multi-3 .ui-datepicker-group {\n\twidth: 33.3%;\n}\n.ui-datepicker-multi-4 .ui-datepicker-group {\n\twidth: 25%;\n}\n.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,\n.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header {\n\tborder-left-width: 0;\n}\n.ui-datepicker-multi .ui-datepicker-buttonpane {\n\tclear: left;\n}\n.ui-datepicker-row-break {\n\tclear: both;\n\twidth: 100%;\n\tfont-size: 0;\n}\n\n/* RTL support */\n.ui-datepicker-rtl {\n\tdirection: rtl;\n}\n.ui-datepicker-rtl .ui-datepicker-prev {\n\tright: 2px;\n\tleft: auto;\n}\n.ui-datepicker-rtl .ui-datepicker-next {\n\tleft: 2px;\n\tright: auto;\n}\n.ui-datepicker-rtl .ui-datepicker-prev:hover {\n\tright: 1px;\n\tleft: auto;\n}\n.ui-datepicker-rtl .ui-datepicker-next:hover {\n\tleft: 1px;\n\tright: auto;\n}\n.ui-datepicker-rtl .ui-datepicker-buttonpane {\n\tclear: right;\n}\n.ui-datepicker-rtl .ui-datepicker-buttonpane button {\n\tfloat: left;\n}\n.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,\n.ui-datepicker-rtl .ui-datepicker-group {\n\tfloat: right;\n}\n.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,\n.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {\n\tborder-right-width: 0;\n\tborder-left-width: 1px;\n}\n\n/* Icons */\n.ui-datepicker .ui-icon {\n\tdisplay: block;\n\ttext-indent: -99999px;\n\toverflow: hidden;\n\tbackground-repeat: no-repeat;\n\tleft: .5em;\n\ttop: .3em;\n}\n"],sourceRoot:""}]);const a=s},5557:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var n=i(87537),o=i.n(n),r=i(23645),s=i.n(r)()(o());s.push([e.id,"/*!\n * jQuery UI Dialog 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/dialog/#theming\n */\n.ui-dialog {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tpadding: .2em;\n\toutline: 0;\n}\n.ui-dialog .ui-dialog-titlebar {\n\tpadding: .4em 1em;\n\tposition: relative;\n}\n.ui-dialog .ui-dialog-title {\n\tfloat: left;\n\tmargin: .1em 0;\n\twhite-space: nowrap;\n\twidth: 90%;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n}\n.ui-dialog .ui-dialog-titlebar-close {\n\tposition: absolute;\n\tright: .3em;\n\ttop: 50%;\n\twidth: 20px;\n\tmargin: -10px 0 0 0;\n\tpadding: 1px;\n\theight: 20px;\n}\n.ui-dialog .ui-dialog-content {\n\tposition: relative;\n\tborder: 0;\n\tpadding: .5em 1em;\n\tbackground: none;\n\toverflow: auto;\n}\n.ui-dialog .ui-dialog-buttonpane {\n\ttext-align: left;\n\tborder-width: 1px 0 0 0;\n\tbackground-image: none;\n\tmargin-top: .5em;\n\tpadding: .3em 1em .5em .4em;\n}\n.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {\n\tfloat: right;\n}\n.ui-dialog .ui-dialog-buttonpane button {\n\tmargin: .5em .4em .5em 0;\n\tcursor: pointer;\n}\n.ui-dialog .ui-resizable-n {\n\theight: 2px;\n\ttop: 0;\n}\n.ui-dialog .ui-resizable-e {\n\twidth: 2px;\n\tright: 0;\n}\n.ui-dialog .ui-resizable-s {\n\theight: 2px;\n\tbottom: 0;\n}\n.ui-dialog .ui-resizable-w {\n\twidth: 2px;\n\tleft: 0;\n}\n.ui-dialog .ui-resizable-se,\n.ui-dialog .ui-resizable-sw,\n.ui-dialog .ui-resizable-ne,\n.ui-dialog .ui-resizable-nw {\n\twidth: 7px;\n\theight: 7px;\n}\n.ui-dialog .ui-resizable-se {\n\tright: 0;\n\tbottom: 0;\n}\n.ui-dialog .ui-resizable-sw {\n\tleft: 0;\n\tbottom: 0;\n}\n.ui-dialog .ui-resizable-ne {\n\tright: 0;\n\ttop: 0;\n}\n.ui-dialog .ui-resizable-nw {\n\tleft: 0;\n\ttop: 0;\n}\n.ui-draggable .ui-dialog-titlebar {\n\tcursor: move;\n}\n","",{version:3,sources:["webpack://./node_modules/jquery-ui/themes/base/dialog.css"],names:[],mappings:"AAAA;;;;;;;;;EASE;AACF;CACC,kBAAkB;CAClB,MAAM;CACN,OAAO;CACP,aAAa;CACb,UAAU;AACX;AACA;CACC,iBAAiB;CACjB,kBAAkB;AACnB;AACA;CACC,WAAW;CACX,cAAc;CACd,mBAAmB;CACnB,UAAU;CACV,gBAAgB;CAChB,uBAAuB;AACxB;AACA;CACC,kBAAkB;CAClB,WAAW;CACX,QAAQ;CACR,WAAW;CACX,mBAAmB;CACnB,YAAY;CACZ,YAAY;AACb;AACA;CACC,kBAAkB;CAClB,SAAS;CACT,iBAAiB;CACjB,gBAAgB;CAChB,cAAc;AACf;AACA;CACC,gBAAgB;CAChB,uBAAuB;CACvB,sBAAsB;CACtB,gBAAgB;CAChB,2BAA2B;AAC5B;AACA;CACC,YAAY;AACb;AACA;CACC,wBAAwB;CACxB,eAAe;AAChB;AACA;CACC,WAAW;CACX,MAAM;AACP;AACA;CACC,UAAU;CACV,QAAQ;AACT;AACA;CACC,WAAW;CACX,SAAS;AACV;AACA;CACC,UAAU;CACV,OAAO;AACR;AACA;;;;CAIC,UAAU;CACV,WAAW;AACZ;AACA;CACC,QAAQ;CACR,SAAS;AACV;AACA;CACC,OAAO;CACP,SAAS;AACV;AACA;CACC,QAAQ;CACR,MAAM;AACP;AACA;CACC,OAAO;CACP,MAAM;AACP;AACA;CACC,YAAY;AACb",sourcesContent:["/*!\n * jQuery UI Dialog 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/dialog/#theming\n */\n.ui-dialog {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tpadding: .2em;\n\toutline: 0;\n}\n.ui-dialog .ui-dialog-titlebar {\n\tpadding: .4em 1em;\n\tposition: relative;\n}\n.ui-dialog .ui-dialog-title {\n\tfloat: left;\n\tmargin: .1em 0;\n\twhite-space: nowrap;\n\twidth: 90%;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n}\n.ui-dialog .ui-dialog-titlebar-close {\n\tposition: absolute;\n\tright: .3em;\n\ttop: 50%;\n\twidth: 20px;\n\tmargin: -10px 0 0 0;\n\tpadding: 1px;\n\theight: 20px;\n}\n.ui-dialog .ui-dialog-content {\n\tposition: relative;\n\tborder: 0;\n\tpadding: .5em 1em;\n\tbackground: none;\n\toverflow: auto;\n}\n.ui-dialog .ui-dialog-buttonpane {\n\ttext-align: left;\n\tborder-width: 1px 0 0 0;\n\tbackground-image: none;\n\tmargin-top: .5em;\n\tpadding: .3em 1em .5em .4em;\n}\n.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {\n\tfloat: right;\n}\n.ui-dialog .ui-dialog-buttonpane button {\n\tmargin: .5em .4em .5em 0;\n\tcursor: pointer;\n}\n.ui-dialog .ui-resizable-n {\n\theight: 2px;\n\ttop: 0;\n}\n.ui-dialog .ui-resizable-e {\n\twidth: 2px;\n\tright: 0;\n}\n.ui-dialog .ui-resizable-s {\n\theight: 2px;\n\tbottom: 0;\n}\n.ui-dialog .ui-resizable-w {\n\twidth: 2px;\n\tleft: 0;\n}\n.ui-dialog .ui-resizable-se,\n.ui-dialog .ui-resizable-sw,\n.ui-dialog .ui-resizable-ne,\n.ui-dialog .ui-resizable-nw {\n\twidth: 7px;\n\theight: 7px;\n}\n.ui-dialog .ui-resizable-se {\n\tright: 0;\n\tbottom: 0;\n}\n.ui-dialog .ui-resizable-sw {\n\tleft: 0;\n\tbottom: 0;\n}\n.ui-dialog .ui-resizable-ne {\n\tright: 0;\n\ttop: 0;\n}\n.ui-dialog .ui-resizable-nw {\n\tleft: 0;\n\ttop: 0;\n}\n.ui-draggable .ui-dialog-titlebar {\n\tcursor: move;\n}\n"],sourceRoot:""}]);const a=s},1760:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var n=i(87537),o=i.n(n),r=i(23645),s=i.n(r)()(o());s.push([e.id,"/*!\n * jQuery UI Draggable 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n.ui-draggable-handle {\n\t-ms-touch-action: none;\n\ttouch-action: none;\n}\n","",{version:3,sources:["webpack://./node_modules/jquery-ui/themes/base/draggable.css"],names:[],mappings:"AAAA;;;;;;;EAOE;AACF;CACC,sBAAsB;CACtB,kBAAkB;AACnB",sourcesContent:["/*!\n * jQuery UI Draggable 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n.ui-draggable-handle {\n\t-ms-touch-action: none;\n\ttouch-action: none;\n}\n"],sourceRoot:""}]);const a=s},55902:(e,t,i)=>{"use strict";i.d(t,{Z:()=>h});var n=i(87537),o=i.n(n),r=i(23645),s=i.n(r),a=i(61667),l=i.n(a),c=new URL(i(98811),i.b),d=s()(o()),u=l()(c);d.push([e.id,"/*!\n * jQuery UI Menu 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/menu/#theming\n */\n.ui-menu {\n\tlist-style: none;\n\tpadding: 0;\n\tmargin: 0;\n\tdisplay: block;\n\toutline: 0;\n}\n.ui-menu .ui-menu {\n\tposition: absolute;\n}\n.ui-menu .ui-menu-item {\n\tmargin: 0;\n\tcursor: pointer;\n\t/* support: IE10, see #8844 */\n\tlist-style-image: url("+u+");\n}\n.ui-menu .ui-menu-item-wrapper {\n\tposition: relative;\n\tpadding: 3px 1em 3px .4em;\n}\n.ui-menu .ui-menu-divider {\n\tmargin: 5px 0;\n\theight: 0;\n\tfont-size: 0;\n\tline-height: 0;\n\tborder-width: 1px 0 0 0;\n}\n.ui-menu .ui-state-focus,\n.ui-menu .ui-state-active {\n\tmargin: -1px;\n}\n\n/* icon support */\n.ui-menu-icons {\n\tposition: relative;\n}\n.ui-menu-icons .ui-menu-item-wrapper {\n\tpadding-left: 2em;\n}\n\n/* left-aligned */\n.ui-menu .ui-icon {\n\tposition: absolute;\n\ttop: 0;\n\tbottom: 0;\n\tleft: .2em;\n\tmargin: auto 0;\n}\n\n/* right-aligned */\n.ui-menu .ui-menu-icon {\n\tleft: auto;\n\tright: 0;\n}\n","",{version:3,sources:["webpack://./node_modules/jquery-ui/themes/base/menu.css"],names:[],mappings:"AAAA;;;;;;;;;EASE;AACF;CACC,gBAAgB;CAChB,UAAU;CACV,SAAS;CACT,cAAc;CACd,UAAU;AACX;AACA;CACC,kBAAkB;AACnB;AACA;CACC,SAAS;CACT,eAAe;CACf,6BAA6B;CAC7B,yDAAuG;AACxG;AACA;CACC,kBAAkB;CAClB,yBAAyB;AAC1B;AACA;CACC,aAAa;CACb,SAAS;CACT,YAAY;CACZ,cAAc;CACd,uBAAuB;AACxB;AACA;;CAEC,YAAY;AACb;;AAEA,iBAAiB;AACjB;CACC,kBAAkB;AACnB;AACA;CACC,iBAAiB;AAClB;;AAEA,iBAAiB;AACjB;CACC,kBAAkB;CAClB,MAAM;CACN,SAAS;CACT,UAAU;CACV,cAAc;AACf;;AAEA,kBAAkB;AAClB;CACC,UAAU;CACV,QAAQ;AACT",sourcesContent:['/*!\n * jQuery UI Menu 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/menu/#theming\n */\n.ui-menu {\n\tlist-style: none;\n\tpadding: 0;\n\tmargin: 0;\n\tdisplay: block;\n\toutline: 0;\n}\n.ui-menu .ui-menu {\n\tposition: absolute;\n}\n.ui-menu .ui-menu-item {\n\tmargin: 0;\n\tcursor: pointer;\n\t/* support: IE10, see #8844 */\n\tlist-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");\n}\n.ui-menu .ui-menu-item-wrapper {\n\tposition: relative;\n\tpadding: 3px 1em 3px .4em;\n}\n.ui-menu .ui-menu-divider {\n\tmargin: 5px 0;\n\theight: 0;\n\tfont-size: 0;\n\tline-height: 0;\n\tborder-width: 1px 0 0 0;\n}\n.ui-menu .ui-state-focus,\n.ui-menu .ui-state-active {\n\tmargin: -1px;\n}\n\n/* icon support */\n.ui-menu-icons {\n\tposition: relative;\n}\n.ui-menu-icons .ui-menu-item-wrapper {\n\tpadding-left: 2em;\n}\n\n/* left-aligned */\n.ui-menu .ui-icon {\n\tposition: absolute;\n\ttop: 0;\n\tbottom: 0;\n\tleft: .2em;\n\tmargin: auto 0;\n}\n\n/* right-aligned */\n.ui-menu .ui-menu-icon {\n\tleft: auto;\n\tright: 0;\n}\n'],sourceRoot:""}]);const h=d},37318:(e,t,i)=>{"use strict";i.d(t,{Z:()=>h});var n=i(87537),o=i.n(n),r=i(23645),s=i.n(r),a=i(61667),l=i.n(a),c=new URL(i(27373),i.b),d=s()(o()),u=l()(c);d.push([e.id,"/*!\n * jQuery UI Progressbar 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/progressbar/#theming\n */\n.ui-progressbar {\n\theight: 2em;\n\ttext-align: left;\n\toverflow: hidden;\n}\n.ui-progressbar .ui-progressbar-value {\n\tmargin: -1px;\n\theight: 100%;\n}\n.ui-progressbar .ui-progressbar-overlay {\n\tbackground: url("+u+');\n\theight: 100%;\n\t-ms-filter: "alpha(opacity=25)"; /* support: IE8 */\n\topacity: 0.25;\n}\n.ui-progressbar-indeterminate .ui-progressbar-value {\n\tbackground-image: none;\n}\n',"",{version:3,sources:["webpack://./node_modules/jquery-ui/themes/base/progressbar.css"],names:[],mappings:"AAAA;;;;;;;;;EASE;AACF;CACC,WAAW;CACX,gBAAgB;CAChB,gBAAgB;AACjB;AACA;CACC,YAAY;CACZ,YAAY;AACb;AACA;CACC,mDAAyzE;CACzzE,YAAY;CACZ,+BAA+B,EAAE,iBAAiB;CAClD,aAAa;AACd;AACA;CACC,sBAAsB;AACvB",sourcesContent:['/*!\n * jQuery UI Progressbar 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/progressbar/#theming\n */\n.ui-progressbar {\n\theight: 2em;\n\ttext-align: left;\n\toverflow: hidden;\n}\n.ui-progressbar .ui-progressbar-value {\n\tmargin: -1px;\n\theight: 100%;\n}\n.ui-progressbar .ui-progressbar-overlay {\n\tbackground: url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");\n\theight: 100%;\n\t-ms-filter: "alpha(opacity=25)"; /* support: IE8 */\n\topacity: 0.25;\n}\n.ui-progressbar-indeterminate .ui-progressbar-value {\n\tbackground-image: none;\n}\n'],sourceRoot:""}]);const h=d},45902:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var n=i(87537),o=i.n(n),r=i(23645),s=i.n(r)()(o());s.push([e.id,"/*!\n * jQuery UI Resizable 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n.ui-resizable {\n\tposition: relative;\n}\n.ui-resizable-handle {\n\tposition: absolute;\n\tfont-size: 0.1px;\n\tdisplay: block;\n\t-ms-touch-action: none;\n\ttouch-action: none;\n}\n.ui-resizable-disabled .ui-resizable-handle,\n.ui-resizable-autohide .ui-resizable-handle {\n\tdisplay: none;\n}\n.ui-resizable-n {\n\tcursor: n-resize;\n\theight: 7px;\n\twidth: 100%;\n\ttop: -5px;\n\tleft: 0;\n}\n.ui-resizable-s {\n\tcursor: s-resize;\n\theight: 7px;\n\twidth: 100%;\n\tbottom: -5px;\n\tleft: 0;\n}\n.ui-resizable-e {\n\tcursor: e-resize;\n\twidth: 7px;\n\tright: -5px;\n\ttop: 0;\n\theight: 100%;\n}\n.ui-resizable-w {\n\tcursor: w-resize;\n\twidth: 7px;\n\tleft: -5px;\n\ttop: 0;\n\theight: 100%;\n}\n.ui-resizable-se {\n\tcursor: se-resize;\n\twidth: 12px;\n\theight: 12px;\n\tright: 1px;\n\tbottom: 1px;\n}\n.ui-resizable-sw {\n\tcursor: sw-resize;\n\twidth: 9px;\n\theight: 9px;\n\tleft: -5px;\n\tbottom: -5px;\n}\n.ui-resizable-nw {\n\tcursor: nw-resize;\n\twidth: 9px;\n\theight: 9px;\n\tleft: -5px;\n\ttop: -5px;\n}\n.ui-resizable-ne {\n\tcursor: ne-resize;\n\twidth: 9px;\n\theight: 9px;\n\tright: -5px;\n\ttop: -5px;\n}\n","",{version:3,sources:["webpack://./node_modules/jquery-ui/themes/base/resizable.css"],names:[],mappings:"AAAA;;;;;;;EAOE;AACF;CACC,kBAAkB;AACnB;AACA;CACC,kBAAkB;CAClB,gBAAgB;CAChB,cAAc;CACd,sBAAsB;CACtB,kBAAkB;AACnB;AACA;;CAEC,aAAa;AACd;AACA;CACC,gBAAgB;CAChB,WAAW;CACX,WAAW;CACX,SAAS;CACT,OAAO;AACR;AACA;CACC,gBAAgB;CAChB,WAAW;CACX,WAAW;CACX,YAAY;CACZ,OAAO;AACR;AACA;CACC,gBAAgB;CAChB,UAAU;CACV,WAAW;CACX,MAAM;CACN,YAAY;AACb;AACA;CACC,gBAAgB;CAChB,UAAU;CACV,UAAU;CACV,MAAM;CACN,YAAY;AACb;AACA;CACC,iBAAiB;CACjB,WAAW;CACX,YAAY;CACZ,UAAU;CACV,WAAW;AACZ;AACA;CACC,iBAAiB;CACjB,UAAU;CACV,WAAW;CACX,UAAU;CACV,YAAY;AACb;AACA;CACC,iBAAiB;CACjB,UAAU;CACV,WAAW;CACX,UAAU;CACV,SAAS;AACV;AACA;CACC,iBAAiB;CACjB,UAAU;CACV,WAAW;CACX,WAAW;CACX,SAAS;AACV",sourcesContent:["/*!\n * jQuery UI Resizable 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n.ui-resizable {\n\tposition: relative;\n}\n.ui-resizable-handle {\n\tposition: absolute;\n\tfont-size: 0.1px;\n\tdisplay: block;\n\t-ms-touch-action: none;\n\ttouch-action: none;\n}\n.ui-resizable-disabled .ui-resizable-handle,\n.ui-resizable-autohide .ui-resizable-handle {\n\tdisplay: none;\n}\n.ui-resizable-n {\n\tcursor: n-resize;\n\theight: 7px;\n\twidth: 100%;\n\ttop: -5px;\n\tleft: 0;\n}\n.ui-resizable-s {\n\tcursor: s-resize;\n\theight: 7px;\n\twidth: 100%;\n\tbottom: -5px;\n\tleft: 0;\n}\n.ui-resizable-e {\n\tcursor: e-resize;\n\twidth: 7px;\n\tright: -5px;\n\ttop: 0;\n\theight: 100%;\n}\n.ui-resizable-w {\n\tcursor: w-resize;\n\twidth: 7px;\n\tleft: -5px;\n\ttop: 0;\n\theight: 100%;\n}\n.ui-resizable-se {\n\tcursor: se-resize;\n\twidth: 12px;\n\theight: 12px;\n\tright: 1px;\n\tbottom: 1px;\n}\n.ui-resizable-sw {\n\tcursor: sw-resize;\n\twidth: 9px;\n\theight: 9px;\n\tleft: -5px;\n\tbottom: -5px;\n}\n.ui-resizable-nw {\n\tcursor: nw-resize;\n\twidth: 9px;\n\theight: 9px;\n\tleft: -5px;\n\ttop: -5px;\n}\n.ui-resizable-ne {\n\tcursor: ne-resize;\n\twidth: 9px;\n\theight: 9px;\n\tright: -5px;\n\ttop: -5px;\n}\n"],sourceRoot:""}]);const a=s},69701:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var n=i(87537),o=i.n(n),r=i(23645),s=i.n(r)()(o());s.push([e.id,"/*!\n * jQuery UI Selectable 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n.ui-selectable {\n\t-ms-touch-action: none;\n\ttouch-action: none;\n}\n.ui-selectable-helper {\n\tposition: absolute;\n\tz-index: 100;\n\tborder: 1px dotted black;\n}\n","",{version:3,sources:["webpack://./node_modules/jquery-ui/themes/base/selectable.css"],names:[],mappings:"AAAA;;;;;;;EAOE;AACF;CACC,sBAAsB;CACtB,kBAAkB;AACnB;AACA;CACC,kBAAkB;CAClB,YAAY;CACZ,wBAAwB;AACzB",sourcesContent:["/*!\n * jQuery UI Selectable 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n.ui-selectable {\n\t-ms-touch-action: none;\n\ttouch-action: none;\n}\n.ui-selectable-helper {\n\tposition: absolute;\n\tz-index: 100;\n\tborder: 1px dotted black;\n}\n"],sourceRoot:""}]);const a=s},67801:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var n=i(87537),o=i.n(n),r=i(23645),s=i.n(r)()(o());s.push([e.id,"/*!\n * jQuery UI Selectmenu 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/selectmenu/#theming\n */\n.ui-selectmenu-menu {\n\tpadding: 0;\n\tmargin: 0;\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tdisplay: none;\n}\n.ui-selectmenu-menu .ui-menu {\n\toverflow: auto;\n\toverflow-x: hidden;\n\tpadding-bottom: 1px;\n}\n.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup {\n\tfont-size: 1em;\n\tfont-weight: bold;\n\tline-height: 1.5;\n\tpadding: 2px 0.4em;\n\tmargin: 0.5em 0 0 0;\n\theight: auto;\n\tborder: 0;\n}\n.ui-selectmenu-open {\n\tdisplay: block;\n}\n.ui-selectmenu-text {\n\tdisplay: block;\n\tmargin-right: 20px;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n}\n.ui-selectmenu-button.ui-button {\n\ttext-align: left;\n\twhite-space: nowrap;\n\twidth: 14em;\n}\n.ui-selectmenu-icon.ui-icon {\n\tfloat: right;\n\tmargin-top: 0;\n}\n","",{version:3,sources:["webpack://./node_modules/jquery-ui/themes/base/selectmenu.css"],names:[],mappings:"AAAA;;;;;;;;;EASE;AACF;CACC,UAAU;CACV,SAAS;CACT,kBAAkB;CAClB,MAAM;CACN,OAAO;CACP,aAAa;AACd;AACA;CACC,cAAc;CACd,kBAAkB;CAClB,mBAAmB;AACpB;AACA;CACC,cAAc;CACd,iBAAiB;CACjB,gBAAgB;CAChB,kBAAkB;CAClB,mBAAmB;CACnB,YAAY;CACZ,SAAS;AACV;AACA;CACC,cAAc;AACf;AACA;CACC,cAAc;CACd,kBAAkB;CAClB,gBAAgB;CAChB,uBAAuB;AACxB;AACA;CACC,gBAAgB;CAChB,mBAAmB;CACnB,WAAW;AACZ;AACA;CACC,YAAY;CACZ,aAAa;AACd",sourcesContent:["/*!\n * jQuery UI Selectmenu 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/selectmenu/#theming\n */\n.ui-selectmenu-menu {\n\tpadding: 0;\n\tmargin: 0;\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tdisplay: none;\n}\n.ui-selectmenu-menu .ui-menu {\n\toverflow: auto;\n\toverflow-x: hidden;\n\tpadding-bottom: 1px;\n}\n.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup {\n\tfont-size: 1em;\n\tfont-weight: bold;\n\tline-height: 1.5;\n\tpadding: 2px 0.4em;\n\tmargin: 0.5em 0 0 0;\n\theight: auto;\n\tborder: 0;\n}\n.ui-selectmenu-open {\n\tdisplay: block;\n}\n.ui-selectmenu-text {\n\tdisplay: block;\n\tmargin-right: 20px;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n}\n.ui-selectmenu-button.ui-button {\n\ttext-align: left;\n\twhite-space: nowrap;\n\twidth: 14em;\n}\n.ui-selectmenu-icon.ui-icon {\n\tfloat: right;\n\tmargin-top: 0;\n}\n"],sourceRoot:""}]);const a=s},39215:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var n=i(87537),o=i.n(n),r=i(23645),s=i.n(r)()(o());s.push([e.id,"/*!\n * jQuery UI Slider 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/slider/#theming\n */\n.ui-slider {\n\tposition: relative;\n\ttext-align: left;\n}\n.ui-slider .ui-slider-handle {\n\tposition: absolute;\n\tz-index: 2;\n\twidth: 1.2em;\n\theight: 1.2em;\n\tcursor: pointer;\n\t-ms-touch-action: none;\n\ttouch-action: none;\n}\n.ui-slider .ui-slider-range {\n\tposition: absolute;\n\tz-index: 1;\n\tfont-size: .7em;\n\tdisplay: block;\n\tborder: 0;\n\tbackground-position: 0 0;\n}\n\n/* support: IE8 - See #6727 */\n.ui-slider.ui-state-disabled .ui-slider-handle,\n.ui-slider.ui-state-disabled .ui-slider-range {\n\tfilter: inherit;\n}\n\n.ui-slider-horizontal {\n\theight: .8em;\n}\n.ui-slider-horizontal .ui-slider-handle {\n\ttop: -.3em;\n\tmargin-left: -.6em;\n}\n.ui-slider-horizontal .ui-slider-range {\n\ttop: 0;\n\theight: 100%;\n}\n.ui-slider-horizontal .ui-slider-range-min {\n\tleft: 0;\n}\n.ui-slider-horizontal .ui-slider-range-max {\n\tright: 0;\n}\n\n.ui-slider-vertical {\n\twidth: .8em;\n\theight: 100px;\n}\n.ui-slider-vertical .ui-slider-handle {\n\tleft: -.3em;\n\tmargin-left: 0;\n\tmargin-bottom: -.6em;\n}\n.ui-slider-vertical .ui-slider-range {\n\tleft: 0;\n\twidth: 100%;\n}\n.ui-slider-vertical .ui-slider-range-min {\n\tbottom: 0;\n}\n.ui-slider-vertical .ui-slider-range-max {\n\ttop: 0;\n}\n","",{version:3,sources:["webpack://./node_modules/jquery-ui/themes/base/slider.css"],names:[],mappings:"AAAA;;;;;;;;;EASE;AACF;CACC,kBAAkB;CAClB,gBAAgB;AACjB;AACA;CACC,kBAAkB;CAClB,UAAU;CACV,YAAY;CACZ,aAAa;CACb,eAAe;CACf,sBAAsB;CACtB,kBAAkB;AACnB;AACA;CACC,kBAAkB;CAClB,UAAU;CACV,eAAe;CACf,cAAc;CACd,SAAS;CACT,wBAAwB;AACzB;;AAEA,6BAA6B;AAC7B;;CAEC,eAAe;AAChB;;AAEA;CACC,YAAY;AACb;AACA;CACC,UAAU;CACV,kBAAkB;AACnB;AACA;CACC,MAAM;CACN,YAAY;AACb;AACA;CACC,OAAO;AACR;AACA;CACC,QAAQ;AACT;;AAEA;CACC,WAAW;CACX,aAAa;AACd;AACA;CACC,WAAW;CACX,cAAc;CACd,oBAAoB;AACrB;AACA;CACC,OAAO;CACP,WAAW;AACZ;AACA;CACC,SAAS;AACV;AACA;CACC,MAAM;AACP",sourcesContent:["/*!\n * jQuery UI Slider 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/slider/#theming\n */\n.ui-slider {\n\tposition: relative;\n\ttext-align: left;\n}\n.ui-slider .ui-slider-handle {\n\tposition: absolute;\n\tz-index: 2;\n\twidth: 1.2em;\n\theight: 1.2em;\n\tcursor: pointer;\n\t-ms-touch-action: none;\n\ttouch-action: none;\n}\n.ui-slider .ui-slider-range {\n\tposition: absolute;\n\tz-index: 1;\n\tfont-size: .7em;\n\tdisplay: block;\n\tborder: 0;\n\tbackground-position: 0 0;\n}\n\n/* support: IE8 - See #6727 */\n.ui-slider.ui-state-disabled .ui-slider-handle,\n.ui-slider.ui-state-disabled .ui-slider-range {\n\tfilter: inherit;\n}\n\n.ui-slider-horizontal {\n\theight: .8em;\n}\n.ui-slider-horizontal .ui-slider-handle {\n\ttop: -.3em;\n\tmargin-left: -.6em;\n}\n.ui-slider-horizontal .ui-slider-range {\n\ttop: 0;\n\theight: 100%;\n}\n.ui-slider-horizontal .ui-slider-range-min {\n\tleft: 0;\n}\n.ui-slider-horizontal .ui-slider-range-max {\n\tright: 0;\n}\n\n.ui-slider-vertical {\n\twidth: .8em;\n\theight: 100px;\n}\n.ui-slider-vertical .ui-slider-handle {\n\tleft: -.3em;\n\tmargin-left: 0;\n\tmargin-bottom: -.6em;\n}\n.ui-slider-vertical .ui-slider-range {\n\tleft: 0;\n\twidth: 100%;\n}\n.ui-slider-vertical .ui-slider-range-min {\n\tbottom: 0;\n}\n.ui-slider-vertical .ui-slider-range-max {\n\ttop: 0;\n}\n"],sourceRoot:""}]);const a=s},81978:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var n=i(87537),o=i.n(n),r=i(23645),s=i.n(r)()(o());s.push([e.id,"/*!\n * jQuery UI Sortable 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n.ui-sortable-handle {\n\t-ms-touch-action: none;\n\ttouch-action: none;\n}\n","",{version:3,sources:["webpack://./node_modules/jquery-ui/themes/base/sortable.css"],names:[],mappings:"AAAA;;;;;;;EAOE;AACF;CACC,sBAAsB;CACtB,kBAAkB;AACnB",sourcesContent:["/*!\n * jQuery UI Sortable 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n */\n.ui-sortable-handle {\n\t-ms-touch-action: none;\n\ttouch-action: none;\n}\n"],sourceRoot:""}]);const a=s},23241:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var n=i(87537),o=i.n(n),r=i(23645),s=i.n(r)()(o());s.push([e.id,"/*!\n * jQuery UI Spinner 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/spinner/#theming\n */\n.ui-spinner {\n\tposition: relative;\n\tdisplay: inline-block;\n\toverflow: hidden;\n\tpadding: 0;\n\tvertical-align: middle;\n}\n.ui-spinner-input {\n\tborder: none;\n\tbackground: none;\n\tcolor: inherit;\n\tpadding: .222em 0;\n\tmargin: .2em 0;\n\tvertical-align: middle;\n\tmargin-left: .4em;\n\tmargin-right: 2em;\n}\n.ui-spinner-button {\n\twidth: 1.6em;\n\theight: 50%;\n\tfont-size: .5em;\n\tpadding: 0;\n\tmargin: 0;\n\ttext-align: center;\n\tposition: absolute;\n\tcursor: default;\n\tdisplay: block;\n\toverflow: hidden;\n\tright: 0;\n}\n/* more specificity required here to override default borders */\n.ui-spinner a.ui-spinner-button {\n\tborder-top-style: none;\n\tborder-bottom-style: none;\n\tborder-right-style: none;\n}\n.ui-spinner-up {\n\ttop: 0;\n}\n.ui-spinner-down {\n\tbottom: 0;\n}\n","",{version:3,sources:["webpack://./node_modules/jquery-ui/themes/base/spinner.css"],names:[],mappings:"AAAA;;;;;;;;;EASE;AACF;CACC,kBAAkB;CAClB,qBAAqB;CACrB,gBAAgB;CAChB,UAAU;CACV,sBAAsB;AACvB;AACA;CACC,YAAY;CACZ,gBAAgB;CAChB,cAAc;CACd,iBAAiB;CACjB,cAAc;CACd,sBAAsB;CACtB,iBAAiB;CACjB,iBAAiB;AAClB;AACA;CACC,YAAY;CACZ,WAAW;CACX,eAAe;CACf,UAAU;CACV,SAAS;CACT,kBAAkB;CAClB,kBAAkB;CAClB,eAAe;CACf,cAAc;CACd,gBAAgB;CAChB,QAAQ;AACT;AACA,+DAA+D;AAC/D;CACC,sBAAsB;CACtB,yBAAyB;CACzB,wBAAwB;AACzB;AACA;CACC,MAAM;AACP;AACA;CACC,SAAS;AACV",sourcesContent:["/*!\n * jQuery UI Spinner 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/spinner/#theming\n */\n.ui-spinner {\n\tposition: relative;\n\tdisplay: inline-block;\n\toverflow: hidden;\n\tpadding: 0;\n\tvertical-align: middle;\n}\n.ui-spinner-input {\n\tborder: none;\n\tbackground: none;\n\tcolor: inherit;\n\tpadding: .222em 0;\n\tmargin: .2em 0;\n\tvertical-align: middle;\n\tmargin-left: .4em;\n\tmargin-right: 2em;\n}\n.ui-spinner-button {\n\twidth: 1.6em;\n\theight: 50%;\n\tfont-size: .5em;\n\tpadding: 0;\n\tmargin: 0;\n\ttext-align: center;\n\tposition: absolute;\n\tcursor: default;\n\tdisplay: block;\n\toverflow: hidden;\n\tright: 0;\n}\n/* more specificity required here to override default borders */\n.ui-spinner a.ui-spinner-button {\n\tborder-top-style: none;\n\tborder-bottom-style: none;\n\tborder-right-style: none;\n}\n.ui-spinner-up {\n\ttop: 0;\n}\n.ui-spinner-down {\n\tbottom: 0;\n}\n"],sourceRoot:""}]);const a=s},12168:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var n=i(87537),o=i.n(n),r=i(23645),s=i.n(r)()(o());s.push([e.id,'/*!\n * jQuery UI Tabs 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/tabs/#theming\n */\n.ui-tabs {\n\tposition: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */\n\tpadding: .2em;\n}\n.ui-tabs .ui-tabs-nav {\n\tmargin: 0;\n\tpadding: .2em .2em 0;\n}\n.ui-tabs .ui-tabs-nav li {\n\tlist-style: none;\n\tfloat: left;\n\tposition: relative;\n\ttop: 0;\n\tmargin: 1px .2em 0 0;\n\tborder-bottom-width: 0;\n\tpadding: 0;\n\twhite-space: nowrap;\n}\n.ui-tabs .ui-tabs-nav .ui-tabs-anchor {\n\tfloat: left;\n\tpadding: .5em 1em;\n\ttext-decoration: none;\n}\n.ui-tabs .ui-tabs-nav li.ui-tabs-active {\n\tmargin-bottom: -1px;\n\tpadding-bottom: 1px;\n}\n.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,\n.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,\n.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor {\n\tcursor: text;\n}\n.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor {\n\tcursor: pointer;\n}\n.ui-tabs .ui-tabs-panel {\n\tdisplay: block;\n\tborder-width: 0;\n\tpadding: 1em 1.4em;\n\tbackground: none;\n}\n',"",{version:3,sources:["webpack://./node_modules/jquery-ui/themes/base/tabs.css"],names:[],mappings:"AAAA;;;;;;;;;EASE;AACF;CACC,kBAAkB,CAAC,uIAAuI;CAC1J,aAAa;AACd;AACA;CACC,SAAS;CACT,oBAAoB;AACrB;AACA;CACC,gBAAgB;CAChB,WAAW;CACX,kBAAkB;CAClB,MAAM;CACN,oBAAoB;CACpB,sBAAsB;CACtB,UAAU;CACV,mBAAmB;AACpB;AACA;CACC,WAAW;CACX,iBAAiB;CACjB,qBAAqB;AACtB;AACA;CACC,mBAAmB;CACnB,mBAAmB;AACpB;AACA;;;CAGC,YAAY;AACb;AACA;CACC,eAAe;AAChB;AACA;CACC,cAAc;CACd,eAAe;CACf,kBAAkB;CAClB,gBAAgB;AACjB",sourcesContent:['/*!\n * jQuery UI Tabs 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/tabs/#theming\n */\n.ui-tabs {\n\tposition: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */\n\tpadding: .2em;\n}\n.ui-tabs .ui-tabs-nav {\n\tmargin: 0;\n\tpadding: .2em .2em 0;\n}\n.ui-tabs .ui-tabs-nav li {\n\tlist-style: none;\n\tfloat: left;\n\tposition: relative;\n\ttop: 0;\n\tmargin: 1px .2em 0 0;\n\tborder-bottom-width: 0;\n\tpadding: 0;\n\twhite-space: nowrap;\n}\n.ui-tabs .ui-tabs-nav .ui-tabs-anchor {\n\tfloat: left;\n\tpadding: .5em 1em;\n\ttext-decoration: none;\n}\n.ui-tabs .ui-tabs-nav li.ui-tabs-active {\n\tmargin-bottom: -1px;\n\tpadding-bottom: 1px;\n}\n.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,\n.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,\n.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor {\n\tcursor: text;\n}\n.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor {\n\tcursor: pointer;\n}\n.ui-tabs .ui-tabs-panel {\n\tdisplay: block;\n\tborder-width: 0;\n\tpadding: 1em 1.4em;\n\tbackground: none;\n}\n'],sourceRoot:""}]);const a=s},67286:(e,t,i)=>{"use strict";i.d(t,{Z:()=>w});var n=i(87537),o=i.n(n),r=i(23645),s=i.n(r),a=i(61667),l=i.n(a),c=new URL(i(46658),i.b),d=new URL(i(97681),i.b),u=new URL(i(63405),i.b),h=new URL(i(20285),i.b),p=new URL(i(20136),i.b),f=new URL(i(74807),i.b),g=s()(o()),m=l()(c),A=l()(d),b=l()(u),v=l()(h),C=l()(p),y=l()(f);g.push([e.id,'/*!\n * jQuery UI CSS Framework 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/category/theming/\n *\n * To view and modify this theme, visit http://jqueryui.com/themeroller/\n */\n\n\n/* Component containers\n----------------------------------*/\n.ui-widget {\n\tfont-family: Arial,Helvetica,sans-serif/*{ffDefault}*/;\n\tfont-size: 1em/*{fsDefault}*/;\n}\n.ui-widget .ui-widget {\n\tfont-size: 1em;\n}\n.ui-widget input,\n.ui-widget select,\n.ui-widget textarea,\n.ui-widget button {\n\tfont-family: Arial,Helvetica,sans-serif/*{ffDefault}*/;\n\tfont-size: 1em;\n}\n.ui-widget.ui-widget-content {\n\tborder: 1px solid #c5c5c5/*{borderColorDefault}*/;\n}\n.ui-widget-content {\n\tborder: 1px solid #dddddd/*{borderColorContent}*/;\n\tbackground: #ffffff/*{bgColorContent}*/ /*{bgImgUrlContent}*/ /*{bgContentXPos}*/ /*{bgContentYPos}*/ /*{bgContentRepeat}*/;\n\tcolor: #333333/*{fcContent}*/;\n}\n.ui-widget-content a {\n\tcolor: #333333/*{fcContent}*/;\n}\n.ui-widget-header {\n\tborder: 1px solid #dddddd/*{borderColorHeader}*/;\n\tbackground: #e9e9e9/*{bgColorHeader}*/ /*{bgImgUrlHeader}*/ /*{bgHeaderXPos}*/ /*{bgHeaderYPos}*/ /*{bgHeaderRepeat}*/;\n\tcolor: #333333/*{fcHeader}*/;\n\tfont-weight: bold;\n}\n.ui-widget-header a {\n\tcolor: #333333/*{fcHeader}*/;\n}\n\n/* Interaction states\n----------------------------------*/\n.ui-state-default,\n.ui-widget-content .ui-state-default,\n.ui-widget-header .ui-state-default,\n.ui-button,\n\n/* We use html here because we need a greater specificity to make sure disabled\nworks properly when clicked or hovered */\nhtml .ui-button.ui-state-disabled:hover,\nhtml .ui-button.ui-state-disabled:active {\n\tborder: 1px solid #c5c5c5/*{borderColorDefault}*/;\n\tbackground: #f6f6f6/*{bgColorDefault}*/ /*{bgImgUrlDefault}*/ /*{bgDefaultXPos}*/ /*{bgDefaultYPos}*/ /*{bgDefaultRepeat}*/;\n\tfont-weight: normal/*{fwDefault}*/;\n\tcolor: #454545/*{fcDefault}*/;\n}\n.ui-state-default a,\n.ui-state-default a:link,\n.ui-state-default a:visited,\na.ui-button,\na:link.ui-button,\na:visited.ui-button,\n.ui-button {\n\tcolor: #454545/*{fcDefault}*/;\n\ttext-decoration: none;\n}\n.ui-state-hover,\n.ui-widget-content .ui-state-hover,\n.ui-widget-header .ui-state-hover,\n.ui-state-focus,\n.ui-widget-content .ui-state-focus,\n.ui-widget-header .ui-state-focus,\n.ui-button:hover,\n.ui-button:focus {\n\tborder: 1px solid #cccccc/*{borderColorHover}*/;\n\tbackground: #ededed/*{bgColorHover}*/ /*{bgImgUrlHover}*/ /*{bgHoverXPos}*/ /*{bgHoverYPos}*/ /*{bgHoverRepeat}*/;\n\tfont-weight: normal/*{fwDefault}*/;\n\tcolor: #2b2b2b/*{fcHover}*/;\n}\n.ui-state-hover a,\n.ui-state-hover a:hover,\n.ui-state-hover a:link,\n.ui-state-hover a:visited,\n.ui-state-focus a,\n.ui-state-focus a:hover,\n.ui-state-focus a:link,\n.ui-state-focus a:visited,\na.ui-button:hover,\na.ui-button:focus {\n\tcolor: #2b2b2b/*{fcHover}*/;\n\ttext-decoration: none;\n}\n\n.ui-visual-focus {\n\tbox-shadow: 0 0 3px 1px rgb(94, 158, 214);\n}\n.ui-state-active,\n.ui-widget-content .ui-state-active,\n.ui-widget-header .ui-state-active,\na.ui-button:active,\n.ui-button:active,\n.ui-button.ui-state-active:hover {\n\tborder: 1px solid #003eff/*{borderColorActive}*/;\n\tbackground: #007fff/*{bgColorActive}*/ /*{bgImgUrlActive}*/ /*{bgActiveXPos}*/ /*{bgActiveYPos}*/ /*{bgActiveRepeat}*/;\n\tfont-weight: normal/*{fwDefault}*/;\n\tcolor: #ffffff/*{fcActive}*/;\n}\n.ui-icon-background,\n.ui-state-active .ui-icon-background {\n\tborder: #003eff/*{borderColorActive}*/;\n\tbackground-color: #ffffff/*{fcActive}*/;\n}\n.ui-state-active a,\n.ui-state-active a:link,\n.ui-state-active a:visited {\n\tcolor: #ffffff/*{fcActive}*/;\n\ttext-decoration: none;\n}\n\n/* Interaction Cues\n----------------------------------*/\n.ui-state-highlight,\n.ui-widget-content .ui-state-highlight,\n.ui-widget-header .ui-state-highlight {\n\tborder: 1px solid #dad55e/*{borderColorHighlight}*/;\n\tbackground: #fffa90/*{bgColorHighlight}*/ /*{bgImgUrlHighlight}*/ /*{bgHighlightXPos}*/ /*{bgHighlightYPos}*/ /*{bgHighlightRepeat}*/;\n\tcolor: #777620/*{fcHighlight}*/;\n}\n.ui-state-checked {\n\tborder: 1px solid #dad55e/*{borderColorHighlight}*/;\n\tbackground: #fffa90/*{bgColorHighlight}*/;\n}\n.ui-state-highlight a,\n.ui-widget-content .ui-state-highlight a,\n.ui-widget-header .ui-state-highlight a {\n\tcolor: #777620/*{fcHighlight}*/;\n}\n.ui-state-error,\n.ui-widget-content .ui-state-error,\n.ui-widget-header .ui-state-error {\n\tborder: 1px solid #f1a899/*{borderColorError}*/;\n\tbackground: #fddfdf/*{bgColorError}*/ /*{bgImgUrlError}*/ /*{bgErrorXPos}*/ /*{bgErrorYPos}*/ /*{bgErrorRepeat}*/;\n\tcolor: #5f3f3f/*{fcError}*/;\n}\n.ui-state-error a,\n.ui-widget-content .ui-state-error a,\n.ui-widget-header .ui-state-error a {\n\tcolor: #5f3f3f/*{fcError}*/;\n}\n.ui-state-error-text,\n.ui-widget-content .ui-state-error-text,\n.ui-widget-header .ui-state-error-text {\n\tcolor: #5f3f3f/*{fcError}*/;\n}\n.ui-priority-primary,\n.ui-widget-content .ui-priority-primary,\n.ui-widget-header .ui-priority-primary {\n\tfont-weight: bold;\n}\n.ui-priority-secondary,\n.ui-widget-content .ui-priority-secondary,\n.ui-widget-header .ui-priority-secondary {\n\topacity: .7;\n\t-ms-filter: "alpha(opacity=70)"; /* support: IE8 */\n\tfont-weight: normal;\n}\n.ui-state-disabled,\n.ui-widget-content .ui-state-disabled,\n.ui-widget-header .ui-state-disabled {\n\topacity: .35;\n\t-ms-filter: "alpha(opacity=35)"; /* support: IE8 */\n\tbackground-image: none;\n}\n.ui-state-disabled .ui-icon {\n\t-ms-filter: "alpha(opacity=35)"; /* support: IE8 - See #6059 */\n}\n\n/* Icons\n----------------------------------*/\n\n/* states and images */\n.ui-icon {\n\twidth: 16px;\n\theight: 16px;\n}\n.ui-icon,\n.ui-widget-content .ui-icon {\n\tbackground-image: url('+m+")/*{iconsContent}*/;\n}\n.ui-widget-header .ui-icon {\n\tbackground-image: url("+m+")/*{iconsHeader}*/;\n}\n.ui-state-hover .ui-icon,\n.ui-state-focus .ui-icon,\n.ui-button:hover .ui-icon,\n.ui-button:focus .ui-icon {\n\tbackground-image: url("+A+")/*{iconsHover}*/;\n}\n.ui-state-active .ui-icon,\n.ui-button:active .ui-icon {\n\tbackground-image: url("+b+")/*{iconsActive}*/;\n}\n.ui-state-highlight .ui-icon,\n.ui-button .ui-state-highlight.ui-icon {\n\tbackground-image: url("+v+")/*{iconsHighlight}*/;\n}\n.ui-state-error .ui-icon,\n.ui-state-error-text .ui-icon {\n\tbackground-image: url("+C+")/*{iconsError}*/;\n}\n.ui-button .ui-icon {\n\tbackground-image: url("+y+')/*{iconsDefault}*/;\n}\n\n/* positioning */\n/* Three classes needed to override `.ui-button:hover .ui-icon` */\n.ui-icon-blank.ui-icon-blank.ui-icon-blank {\n\tbackground-image: none;\n}\n.ui-icon-caret-1-n { background-position: 0 0; }\n.ui-icon-caret-1-ne { background-position: -16px 0; }\n.ui-icon-caret-1-e { background-position: -32px 0; }\n.ui-icon-caret-1-se { background-position: -48px 0; }\n.ui-icon-caret-1-s { background-position: -65px 0; }\n.ui-icon-caret-1-sw { background-position: -80px 0; }\n.ui-icon-caret-1-w { background-position: -96px 0; }\n.ui-icon-caret-1-nw { background-position: -112px 0; }\n.ui-icon-caret-2-n-s { background-position: -128px 0; }\n.ui-icon-caret-2-e-w { background-position: -144px 0; }\n.ui-icon-triangle-1-n { background-position: 0 -16px; }\n.ui-icon-triangle-1-ne { background-position: -16px -16px; }\n.ui-icon-triangle-1-e { background-position: -32px -16px; }\n.ui-icon-triangle-1-se { background-position: -48px -16px; }\n.ui-icon-triangle-1-s { background-position: -65px -16px; }\n.ui-icon-triangle-1-sw { background-position: -80px -16px; }\n.ui-icon-triangle-1-w { background-position: -96px -16px; }\n.ui-icon-triangle-1-nw { background-position: -112px -16px; }\n.ui-icon-triangle-2-n-s { background-position: -128px -16px; }\n.ui-icon-triangle-2-e-w { background-position: -144px -16px; }\n.ui-icon-arrow-1-n { background-position: 0 -32px; }\n.ui-icon-arrow-1-ne { background-position: -16px -32px; }\n.ui-icon-arrow-1-e { background-position: -32px -32px; }\n.ui-icon-arrow-1-se { background-position: -48px -32px; }\n.ui-icon-arrow-1-s { background-position: -65px -32px; }\n.ui-icon-arrow-1-sw { background-position: -80px -32px; }\n.ui-icon-arrow-1-w { background-position: -96px -32px; }\n.ui-icon-arrow-1-nw { background-position: -112px -32px; }\n.ui-icon-arrow-2-n-s { background-position: -128px -32px; }\n.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }\n.ui-icon-arrow-2-e-w { background-position: -160px -32px; }\n.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }\n.ui-icon-arrowstop-1-n { background-position: -192px -32px; }\n.ui-icon-arrowstop-1-e { background-position: -208px -32px; }\n.ui-icon-arrowstop-1-s { background-position: -224px -32px; }\n.ui-icon-arrowstop-1-w { background-position: -240px -32px; }\n.ui-icon-arrowthick-1-n { background-position: 1px -48px; }\n.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }\n.ui-icon-arrowthick-1-e { background-position: -32px -48px; }\n.ui-icon-arrowthick-1-se { background-position: -48px -48px; }\n.ui-icon-arrowthick-1-s { background-position: -64px -48px; }\n.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }\n.ui-icon-arrowthick-1-w { background-position: -96px -48px; }\n.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }\n.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }\n.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }\n.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }\n.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }\n.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }\n.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }\n.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }\n.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }\n.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }\n.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }\n.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }\n.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }\n.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }\n.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }\n.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }\n.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }\n.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }\n.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }\n.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }\n.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }\n.ui-icon-arrow-4 { background-position: 0 -80px; }\n.ui-icon-arrow-4-diag { background-position: -16px -80px; }\n.ui-icon-extlink { background-position: -32px -80px; }\n.ui-icon-newwin { background-position: -48px -80px; }\n.ui-icon-refresh { background-position: -64px -80px; }\n.ui-icon-shuffle { background-position: -80px -80px; }\n.ui-icon-transfer-e-w { background-position: -96px -80px; }\n.ui-icon-transferthick-e-w { background-position: -112px -80px; }\n.ui-icon-folder-collapsed { background-position: 0 -96px; }\n.ui-icon-folder-open { background-position: -16px -96px; }\n.ui-icon-document { background-position: -32px -96px; }\n.ui-icon-document-b { background-position: -48px -96px; }\n.ui-icon-note { background-position: -64px -96px; }\n.ui-icon-mail-closed { background-position: -80px -96px; }\n.ui-icon-mail-open { background-position: -96px -96px; }\n.ui-icon-suitcase { background-position: -112px -96px; }\n.ui-icon-comment { background-position: -128px -96px; }\n.ui-icon-person { background-position: -144px -96px; }\n.ui-icon-print { background-position: -160px -96px; }\n.ui-icon-trash { background-position: -176px -96px; }\n.ui-icon-locked { background-position: -192px -96px; }\n.ui-icon-unlocked { background-position: -208px -96px; }\n.ui-icon-bookmark { background-position: -224px -96px; }\n.ui-icon-tag { background-position: -240px -96px; }\n.ui-icon-home { background-position: 0 -112px; }\n.ui-icon-flag { background-position: -16px -112px; }\n.ui-icon-calendar { background-position: -32px -112px; }\n.ui-icon-cart { background-position: -48px -112px; }\n.ui-icon-pencil { background-position: -64px -112px; }\n.ui-icon-clock { background-position: -80px -112px; }\n.ui-icon-disk { background-position: -96px -112px; }\n.ui-icon-calculator { background-position: -112px -112px; }\n.ui-icon-zoomin { background-position: -128px -112px; }\n.ui-icon-zoomout { background-position: -144px -112px; }\n.ui-icon-search { background-position: -160px -112px; }\n.ui-icon-wrench { background-position: -176px -112px; }\n.ui-icon-gear { background-position: -192px -112px; }\n.ui-icon-heart { background-position: -208px -112px; }\n.ui-icon-star { background-position: -224px -112px; }\n.ui-icon-link { background-position: -240px -112px; }\n.ui-icon-cancel { background-position: 0 -128px; }\n.ui-icon-plus { background-position: -16px -128px; }\n.ui-icon-plusthick { background-position: -32px -128px; }\n.ui-icon-minus { background-position: -48px -128px; }\n.ui-icon-minusthick { background-position: -64px -128px; }\n.ui-icon-close { background-position: -80px -128px; }\n.ui-icon-closethick { background-position: -96px -128px; }\n.ui-icon-key { background-position: -112px -128px; }\n.ui-icon-lightbulb { background-position: -128px -128px; }\n.ui-icon-scissors { background-position: -144px -128px; }\n.ui-icon-clipboard { background-position: -160px -128px; }\n.ui-icon-copy { background-position: -176px -128px; }\n.ui-icon-contact { background-position: -192px -128px; }\n.ui-icon-image { background-position: -208px -128px; }\n.ui-icon-video { background-position: -224px -128px; }\n.ui-icon-script { background-position: -240px -128px; }\n.ui-icon-alert { background-position: 0 -144px; }\n.ui-icon-info { background-position: -16px -144px; }\n.ui-icon-notice { background-position: -32px -144px; }\n.ui-icon-help { background-position: -48px -144px; }\n.ui-icon-check { background-position: -64px -144px; }\n.ui-icon-bullet { background-position: -80px -144px; }\n.ui-icon-radio-on { background-position: -96px -144px; }\n.ui-icon-radio-off { background-position: -112px -144px; }\n.ui-icon-pin-w { background-position: -128px -144px; }\n.ui-icon-pin-s { background-position: -144px -144px; }\n.ui-icon-play { background-position: 0 -160px; }\n.ui-icon-pause { background-position: -16px -160px; }\n.ui-icon-seek-next { background-position: -32px -160px; }\n.ui-icon-seek-prev { background-position: -48px -160px; }\n.ui-icon-seek-end { background-position: -64px -160px; }\n.ui-icon-seek-start { background-position: -80px -160px; }\n/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */\n.ui-icon-seek-first { background-position: -80px -160px; }\n.ui-icon-stop { background-position: -96px -160px; }\n.ui-icon-eject { background-position: -112px -160px; }\n.ui-icon-volume-off { background-position: -128px -160px; }\n.ui-icon-volume-on { background-position: -144px -160px; }\n.ui-icon-power { background-position: 0 -176px; }\n.ui-icon-signal-diag { background-position: -16px -176px; }\n.ui-icon-signal { background-position: -32px -176px; }\n.ui-icon-battery-0 { background-position: -48px -176px; }\n.ui-icon-battery-1 { background-position: -64px -176px; }\n.ui-icon-battery-2 { background-position: -80px -176px; }\n.ui-icon-battery-3 { background-position: -96px -176px; }\n.ui-icon-circle-plus { background-position: 0 -192px; }\n.ui-icon-circle-minus { background-position: -16px -192px; }\n.ui-icon-circle-close { background-position: -32px -192px; }\n.ui-icon-circle-triangle-e { background-position: -48px -192px; }\n.ui-icon-circle-triangle-s { background-position: -64px -192px; }\n.ui-icon-circle-triangle-w { background-position: -80px -192px; }\n.ui-icon-circle-triangle-n { background-position: -96px -192px; }\n.ui-icon-circle-arrow-e { background-position: -112px -192px; }\n.ui-icon-circle-arrow-s { background-position: -128px -192px; }\n.ui-icon-circle-arrow-w { background-position: -144px -192px; }\n.ui-icon-circle-arrow-n { background-position: -160px -192px; }\n.ui-icon-circle-zoomin { background-position: -176px -192px; }\n.ui-icon-circle-zoomout { background-position: -192px -192px; }\n.ui-icon-circle-check { background-position: -208px -192px; }\n.ui-icon-circlesmall-plus { background-position: 0 -208px; }\n.ui-icon-circlesmall-minus { background-position: -16px -208px; }\n.ui-icon-circlesmall-close { background-position: -32px -208px; }\n.ui-icon-squaresmall-plus { background-position: -48px -208px; }\n.ui-icon-squaresmall-minus { background-position: -64px -208px; }\n.ui-icon-squaresmall-close { background-position: -80px -208px; }\n.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }\n.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }\n.ui-icon-grip-solid-vertical { background-position: -32px -224px; }\n.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }\n.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }\n.ui-icon-grip-diagonal-se { background-position: -80px -224px; }\n\n\n/* Misc visuals\n----------------------------------*/\n\n/* Corner radius */\n.ui-corner-all,\n.ui-corner-top,\n.ui-corner-left,\n.ui-corner-tl {\n\tborder-top-left-radius: 3px/*{cornerRadius}*/;\n}\n.ui-corner-all,\n.ui-corner-top,\n.ui-corner-right,\n.ui-corner-tr {\n\tborder-top-right-radius: 3px/*{cornerRadius}*/;\n}\n.ui-corner-all,\n.ui-corner-bottom,\n.ui-corner-left,\n.ui-corner-bl {\n\tborder-bottom-left-radius: 3px/*{cornerRadius}*/;\n}\n.ui-corner-all,\n.ui-corner-bottom,\n.ui-corner-right,\n.ui-corner-br {\n\tborder-bottom-right-radius: 3px/*{cornerRadius}*/;\n}\n\n/* Overlays */\n.ui-widget-overlay {\n\tbackground: #aaaaaa/*{bgColorOverlay}*/ /*{bgImgUrlOverlay}*/ /*{bgOverlayXPos}*/ /*{bgOverlayYPos}*/ /*{bgOverlayRepeat}*/;\n\topacity: .3/*{opacityOverlay}*/;\n\t-ms-filter: "alpha(opacity=30)"/*{opacityFilterOverlay}*/; /* support: IE8 */\n}\n.ui-widget-shadow {\n\t-webkit-box-shadow: 0/*{offsetLeftShadow}*/ 0/*{offsetTopShadow}*/ 5px/*{thicknessShadow}*/ #666666/*{bgColorShadow}*/;\n\tbox-shadow: 0/*{offsetLeftShadow}*/ 0/*{offsetTopShadow}*/ 5px/*{thicknessShadow}*/ #666666/*{bgColorShadow}*/;\n}\n',"",{version:3,sources:["webpack://./node_modules/jquery-ui/themes/base/theme.css"],names:[],mappings:"AAAA;;;;;;;;;;;EAWE;;;AAGF;mCACmC;AACnC;CACC,sDAAsD;CACtD,6BAA6B;AAC9B;AACA;CACC,cAAc;AACf;AACA;;;;CAIC,sDAAsD;CACtD,cAAc;AACf;AACA;CACC,iDAAiD;AAClD;AACA;CACC,iDAAiD;CACjD,2HAA2H;CAC3H,6BAA6B;AAC9B;AACA;CACC,6BAA6B;AAC9B;AACA;CACC,gDAAgD;CAChD,sHAAsH;CACtH,4BAA4B;CAC5B,iBAAiB;AAClB;AACA;CACC,4BAA4B;AAC7B;;AAEA;mCACmC;AACnC;;;;;;;;;CASC,iDAAiD;CACjD,2HAA2H;CAC3H,kCAAkC;CAClC,6BAA6B;AAC9B;AACA;;;;;;;CAOC,6BAA6B;CAC7B,qBAAqB;AACtB;AACA;;;;;;;;CAQC,+CAA+C;CAC/C,iHAAiH;CACjH,kCAAkC;CAClC,2BAA2B;AAC5B;AACA;;;;;;;;;;CAUC,2BAA2B;CAC3B,qBAAqB;AACtB;;AAEA;CACC,yCAAyC;AAC1C;AACA;;;;;;CAMC,gDAAgD;CAChD,sHAAsH;CACtH,kCAAkC;CAClC,4BAA4B;AAC7B;AACA;;CAEC,sCAAsC;CACtC,uCAAuC;AACxC;AACA;;;CAGC,4BAA4B;CAC5B,qBAAqB;AACtB;;AAEA;mCACmC;AACnC;;;CAGC,mDAAmD;CACnD,qIAAqI;CACrI,+BAA+B;AAChC;AACA;CACC,mDAAmD;CACnD,yCAAyC;AAC1C;AACA;;;CAGC,+BAA+B;AAChC;AACA;;;CAGC,+CAA+C;CAC/C,iHAAiH;CACjH,2BAA2B;AAC5B;AACA;;;CAGC,2BAA2B;AAC5B;AACA;;;CAGC,2BAA2B;AAC5B;AACA;;;CAGC,iBAAiB;AAClB;AACA;;;CAGC,WAAW;CACX,+BAA+B,EAAE,iBAAiB;CAClD,mBAAmB;AACpB;AACA;;;CAGC,YAAY;CACZ,+BAA+B,EAAE,iBAAiB;CAClD,sBAAsB;AACvB;AACA;CACC,+BAA+B,EAAE,6BAA6B;AAC/D;;AAEA;mCACmC;;AAEnC,sBAAsB;AACtB;CACC,WAAW;CACX,YAAY;AACb;AACA;;CAEC,2EAA6E;AAC9E;AACA;CACC,0EAA4E;AAC7E;AACA;;;;CAIC,yEAA2E;AAC5E;AACA;;CAEC,0EAA4E;AAC7E;AACA;;CAEC,6EAA+E;AAChF;AACA;;CAEC,yEAA2E;AAC5E;AACA;CACC,2EAA6E;AAC9E;;AAEA,gBAAgB;AAChB,iEAAiE;AACjE;CACC,sBAAsB;AACvB;AACA,qBAAqB,wBAAwB,EAAE;AAC/C,sBAAsB,4BAA4B,EAAE;AACpD,qBAAqB,4BAA4B,EAAE;AACnD,sBAAsB,4BAA4B,EAAE;AACpD,qBAAqB,4BAA4B,EAAE;AACnD,sBAAsB,4BAA4B,EAAE;AACpD,qBAAqB,4BAA4B,EAAE;AACnD,sBAAsB,6BAA6B,EAAE;AACrD,uBAAuB,6BAA6B,EAAE;AACtD,uBAAuB,6BAA6B,EAAE;AACtD,wBAAwB,4BAA4B,EAAE;AACtD,yBAAyB,gCAAgC,EAAE;AAC3D,wBAAwB,gCAAgC,EAAE;AAC1D,yBAAyB,gCAAgC,EAAE;AAC3D,wBAAwB,gCAAgC,EAAE;AAC1D,yBAAyB,gCAAgC,EAAE;AAC3D,wBAAwB,gCAAgC,EAAE;AAC1D,yBAAyB,iCAAiC,EAAE;AAC5D,0BAA0B,iCAAiC,EAAE;AAC7D,0BAA0B,iCAAiC,EAAE;AAC7D,qBAAqB,4BAA4B,EAAE;AACnD,sBAAsB,gCAAgC,EAAE;AACxD,qBAAqB,gCAAgC,EAAE;AACvD,sBAAsB,gCAAgC,EAAE;AACxD,qBAAqB,gCAAgC,EAAE;AACvD,sBAAsB,gCAAgC,EAAE;AACxD,qBAAqB,gCAAgC,EAAE;AACvD,sBAAsB,iCAAiC,EAAE;AACzD,uBAAuB,iCAAiC,EAAE;AAC1D,yBAAyB,iCAAiC,EAAE;AAC5D,uBAAuB,iCAAiC,EAAE;AAC1D,yBAAyB,iCAAiC,EAAE;AAC5D,yBAAyB,iCAAiC,EAAE;AAC5D,yBAAyB,iCAAiC,EAAE;AAC5D,yBAAyB,iCAAiC,EAAE;AAC5D,yBAAyB,iCAAiC,EAAE;AAC5D,0BAA0B,8BAA8B,EAAE;AAC1D,2BAA2B,gCAAgC,EAAE;AAC7D,0BAA0B,gCAAgC,EAAE;AAC5D,2BAA2B,gCAAgC,EAAE;AAC7D,0BAA0B,gCAAgC,EAAE;AAC5D,2BAA2B,gCAAgC,EAAE;AAC7D,0BAA0B,gCAAgC,EAAE;AAC5D,2BAA2B,iCAAiC,EAAE;AAC9D,4BAA4B,iCAAiC,EAAE;AAC/D,8BAA8B,iCAAiC,EAAE;AACjE,4BAA4B,iCAAiC,EAAE;AAC/D,8BAA8B,iCAAiC,EAAE;AACjE,8BAA8B,iCAAiC,EAAE;AACjE,8BAA8B,iCAAiC,EAAE;AACjE,8BAA8B,iCAAiC,EAAE;AACjE,8BAA8B,iCAAiC,EAAE;AACjE,gCAAgC,4BAA4B,EAAE;AAC9D,gCAAgC,gCAAgC,EAAE;AAClE,gCAAgC,gCAAgC,EAAE;AAClE,gCAAgC,gCAAgC,EAAE;AAClE,2BAA2B,gCAAgC,EAAE;AAC7D,2BAA2B,gCAAgC,EAAE;AAC7D,2BAA2B,gCAAgC,EAAE;AAC7D,2BAA2B,iCAAiC,EAAE;AAC9D,4BAA4B,iCAAiC,EAAE;AAC/D,4BAA4B,iCAAiC,EAAE;AAC/D,4BAA4B,iCAAiC,EAAE;AAC/D,4BAA4B,iCAAiC,EAAE;AAC/D,mBAAmB,4BAA4B,EAAE;AACjD,wBAAwB,gCAAgC,EAAE;AAC1D,mBAAmB,gCAAgC,EAAE;AACrD,kBAAkB,gCAAgC,EAAE;AACpD,mBAAmB,gCAAgC,EAAE;AACrD,mBAAmB,gCAAgC,EAAE;AACrD,wBAAwB,gCAAgC,EAAE;AAC1D,6BAA6B,iCAAiC,EAAE;AAChE,4BAA4B,4BAA4B,EAAE;AAC1D,uBAAuB,gCAAgC,EAAE;AACzD,oBAAoB,gCAAgC,EAAE;AACtD,sBAAsB,gCAAgC,EAAE;AACxD,gBAAgB,gCAAgC,EAAE;AAClD,uBAAuB,gCAAgC,EAAE;AACzD,qBAAqB,gCAAgC,EAAE;AACvD,oBAAoB,iCAAiC,EAAE;AACvD,mBAAmB,iCAAiC,EAAE;AACtD,kBAAkB,iCAAiC,EAAE;AACrD,iBAAiB,iCAAiC,EAAE;AACpD,iBAAiB,iCAAiC,EAAE;AACpD,kBAAkB,iCAAiC,EAAE;AACrD,oBAAoB,iCAAiC,EAAE;AACvD,oBAAoB,iCAAiC,EAAE;AACvD,eAAe,iCAAiC,EAAE;AAClD,gBAAgB,6BAA6B,EAAE;AAC/C,gBAAgB,iCAAiC,EAAE;AACnD,oBAAoB,iCAAiC,EAAE;AACvD,gBAAgB,iCAAiC,EAAE;AACnD,kBAAkB,iCAAiC,EAAE;AACrD,iBAAiB,iCAAiC,EAAE;AACpD,gBAAgB,iCAAiC,EAAE;AACnD,sBAAsB,kCAAkC,EAAE;AAC1D,kBAAkB,kCAAkC,EAAE;AACtD,mBAAmB,kCAAkC,EAAE;AACvD,kBAAkB,kCAAkC,EAAE;AACtD,kBAAkB,kCAAkC,EAAE;AACtD,gBAAgB,kCAAkC,EAAE;AACpD,iBAAiB,kCAAkC,EAAE;AACrD,gBAAgB,kCAAkC,EAAE;AACpD,gBAAgB,kCAAkC,EAAE;AACpD,kBAAkB,6BAA6B,EAAE;AACjD,gBAAgB,iCAAiC,EAAE;AACnD,qBAAqB,iCAAiC,EAAE;AACxD,iBAAiB,iCAAiC,EAAE;AACpD,sBAAsB,iCAAiC,EAAE;AACzD,iBAAiB,iCAAiC,EAAE;AACpD,sBAAsB,iCAAiC,EAAE;AACzD,eAAe,kCAAkC,EAAE;AACnD,qBAAqB,kCAAkC,EAAE;AACzD,oBAAoB,kCAAkC,EAAE;AACxD,qBAAqB,kCAAkC,EAAE;AACzD,gBAAgB,kCAAkC,EAAE;AACpD,mBAAmB,kCAAkC,EAAE;AACvD,iBAAiB,kCAAkC,EAAE;AACrD,iBAAiB,kCAAkC,EAAE;AACrD,kBAAkB,kCAAkC,EAAE;AACtD,iBAAiB,6BAA6B,EAAE;AAChD,gBAAgB,iCAAiC,EAAE;AACnD,kBAAkB,iCAAiC,EAAE;AACrD,gBAAgB,iCAAiC,EAAE;AACnD,iBAAiB,iCAAiC,EAAE;AACpD,kBAAkB,iCAAiC,EAAE;AACrD,oBAAoB,iCAAiC,EAAE;AACvD,qBAAqB,kCAAkC,EAAE;AACzD,iBAAiB,kCAAkC,EAAE;AACrD,iBAAiB,kCAAkC,EAAE;AACrD,gBAAgB,6BAA6B,EAAE;AAC/C,iBAAiB,iCAAiC,EAAE;AACpD,qBAAqB,iCAAiC,EAAE;AACxD,qBAAqB,iCAAiC,EAAE;AACxD,oBAAoB,iCAAiC,EAAE;AACvD,sBAAsB,iCAAiC,EAAE;AACzD,qEAAqE;AACrE,sBAAsB,iCAAiC,EAAE;AACzD,gBAAgB,iCAAiC,EAAE;AACnD,iBAAiB,kCAAkC,EAAE;AACrD,sBAAsB,kCAAkC,EAAE;AAC1D,qBAAqB,kCAAkC,EAAE;AACzD,iBAAiB,6BAA6B,EAAE;AAChD,uBAAuB,iCAAiC,EAAE;AAC1D,kBAAkB,iCAAiC,EAAE;AACrD,qBAAqB,iCAAiC,EAAE;AACxD,qBAAqB,iCAAiC,EAAE;AACxD,qBAAqB,iCAAiC,EAAE;AACxD,qBAAqB,iCAAiC,EAAE;AACxD,uBAAuB,6BAA6B,EAAE;AACtD,wBAAwB,iCAAiC,EAAE;AAC3D,wBAAwB,iCAAiC,EAAE;AAC3D,6BAA6B,iCAAiC,EAAE;AAChE,6BAA6B,iCAAiC,EAAE;AAChE,6BAA6B,iCAAiC,EAAE;AAChE,6BAA6B,iCAAiC,EAAE;AAChE,0BAA0B,kCAAkC,EAAE;AAC9D,0BAA0B,kCAAkC,EAAE;AAC9D,0BAA0B,kCAAkC,EAAE;AAC9D,0BAA0B,kCAAkC,EAAE;AAC9D,yBAAyB,kCAAkC,EAAE;AAC7D,0BAA0B,kCAAkC,EAAE;AAC9D,wBAAwB,kCAAkC,EAAE;AAC5D,4BAA4B,6BAA6B,EAAE;AAC3D,6BAA6B,iCAAiC,EAAE;AAChE,6BAA6B,iCAAiC,EAAE;AAChE,4BAA4B,iCAAiC,EAAE;AAC/D,6BAA6B,iCAAiC,EAAE;AAChE,6BAA6B,iCAAiC,EAAE;AAChE,gCAAgC,6BAA6B,EAAE;AAC/D,kCAAkC,iCAAiC,EAAE;AACrE,+BAA+B,iCAAiC,EAAE;AAClE,iCAAiC,iCAAiC,EAAE;AACpE,iCAAiC,iCAAiC,EAAE;AACpE,4BAA4B,iCAAiC,EAAE;;;AAG/D;mCACmC;;AAEnC,kBAAkB;AAClB;;;;CAIC,6CAA6C;AAC9C;AACA;;;;CAIC,8CAA8C;AAC/C;AACA;;;;CAIC,gDAAgD;AACjD;AACA;;;;CAIC,iDAAiD;AAClD;;AAEA,aAAa;AACb;CACC,2HAA2H;CAC3H,+BAA+B;CAC/B,yDAAyD,EAAE,iBAAiB;AAC7E;AACA;CACC,sHAAsH;CACtH,8GAA8G;AAC/G",sourcesContent:['/*!\n * jQuery UI CSS Framework 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/category/theming/\n *\n * To view and modify this theme, visit http://jqueryui.com/themeroller/\n */\n\n\n/* Component containers\n----------------------------------*/\n.ui-widget {\n\tfont-family: Arial,Helvetica,sans-serif/*{ffDefault}*/;\n\tfont-size: 1em/*{fsDefault}*/;\n}\n.ui-widget .ui-widget {\n\tfont-size: 1em;\n}\n.ui-widget input,\n.ui-widget select,\n.ui-widget textarea,\n.ui-widget button {\n\tfont-family: Arial,Helvetica,sans-serif/*{ffDefault}*/;\n\tfont-size: 1em;\n}\n.ui-widget.ui-widget-content {\n\tborder: 1px solid #c5c5c5/*{borderColorDefault}*/;\n}\n.ui-widget-content {\n\tborder: 1px solid #dddddd/*{borderColorContent}*/;\n\tbackground: #ffffff/*{bgColorContent}*/ /*{bgImgUrlContent}*/ /*{bgContentXPos}*/ /*{bgContentYPos}*/ /*{bgContentRepeat}*/;\n\tcolor: #333333/*{fcContent}*/;\n}\n.ui-widget-content a {\n\tcolor: #333333/*{fcContent}*/;\n}\n.ui-widget-header {\n\tborder: 1px solid #dddddd/*{borderColorHeader}*/;\n\tbackground: #e9e9e9/*{bgColorHeader}*/ /*{bgImgUrlHeader}*/ /*{bgHeaderXPos}*/ /*{bgHeaderYPos}*/ /*{bgHeaderRepeat}*/;\n\tcolor: #333333/*{fcHeader}*/;\n\tfont-weight: bold;\n}\n.ui-widget-header a {\n\tcolor: #333333/*{fcHeader}*/;\n}\n\n/* Interaction states\n----------------------------------*/\n.ui-state-default,\n.ui-widget-content .ui-state-default,\n.ui-widget-header .ui-state-default,\n.ui-button,\n\n/* We use html here because we need a greater specificity to make sure disabled\nworks properly when clicked or hovered */\nhtml .ui-button.ui-state-disabled:hover,\nhtml .ui-button.ui-state-disabled:active {\n\tborder: 1px solid #c5c5c5/*{borderColorDefault}*/;\n\tbackground: #f6f6f6/*{bgColorDefault}*/ /*{bgImgUrlDefault}*/ /*{bgDefaultXPos}*/ /*{bgDefaultYPos}*/ /*{bgDefaultRepeat}*/;\n\tfont-weight: normal/*{fwDefault}*/;\n\tcolor: #454545/*{fcDefault}*/;\n}\n.ui-state-default a,\n.ui-state-default a:link,\n.ui-state-default a:visited,\na.ui-button,\na:link.ui-button,\na:visited.ui-button,\n.ui-button {\n\tcolor: #454545/*{fcDefault}*/;\n\ttext-decoration: none;\n}\n.ui-state-hover,\n.ui-widget-content .ui-state-hover,\n.ui-widget-header .ui-state-hover,\n.ui-state-focus,\n.ui-widget-content .ui-state-focus,\n.ui-widget-header .ui-state-focus,\n.ui-button:hover,\n.ui-button:focus {\n\tborder: 1px solid #cccccc/*{borderColorHover}*/;\n\tbackground: #ededed/*{bgColorHover}*/ /*{bgImgUrlHover}*/ /*{bgHoverXPos}*/ /*{bgHoverYPos}*/ /*{bgHoverRepeat}*/;\n\tfont-weight: normal/*{fwDefault}*/;\n\tcolor: #2b2b2b/*{fcHover}*/;\n}\n.ui-state-hover a,\n.ui-state-hover a:hover,\n.ui-state-hover a:link,\n.ui-state-hover a:visited,\n.ui-state-focus a,\n.ui-state-focus a:hover,\n.ui-state-focus a:link,\n.ui-state-focus a:visited,\na.ui-button:hover,\na.ui-button:focus {\n\tcolor: #2b2b2b/*{fcHover}*/;\n\ttext-decoration: none;\n}\n\n.ui-visual-focus {\n\tbox-shadow: 0 0 3px 1px rgb(94, 158, 214);\n}\n.ui-state-active,\n.ui-widget-content .ui-state-active,\n.ui-widget-header .ui-state-active,\na.ui-button:active,\n.ui-button:active,\n.ui-button.ui-state-active:hover {\n\tborder: 1px solid #003eff/*{borderColorActive}*/;\n\tbackground: #007fff/*{bgColorActive}*/ /*{bgImgUrlActive}*/ /*{bgActiveXPos}*/ /*{bgActiveYPos}*/ /*{bgActiveRepeat}*/;\n\tfont-weight: normal/*{fwDefault}*/;\n\tcolor: #ffffff/*{fcActive}*/;\n}\n.ui-icon-background,\n.ui-state-active .ui-icon-background {\n\tborder: #003eff/*{borderColorActive}*/;\n\tbackground-color: #ffffff/*{fcActive}*/;\n}\n.ui-state-active a,\n.ui-state-active a:link,\n.ui-state-active a:visited {\n\tcolor: #ffffff/*{fcActive}*/;\n\ttext-decoration: none;\n}\n\n/* Interaction Cues\n----------------------------------*/\n.ui-state-highlight,\n.ui-widget-content .ui-state-highlight,\n.ui-widget-header .ui-state-highlight {\n\tborder: 1px solid #dad55e/*{borderColorHighlight}*/;\n\tbackground: #fffa90/*{bgColorHighlight}*/ /*{bgImgUrlHighlight}*/ /*{bgHighlightXPos}*/ /*{bgHighlightYPos}*/ /*{bgHighlightRepeat}*/;\n\tcolor: #777620/*{fcHighlight}*/;\n}\n.ui-state-checked {\n\tborder: 1px solid #dad55e/*{borderColorHighlight}*/;\n\tbackground: #fffa90/*{bgColorHighlight}*/;\n}\n.ui-state-highlight a,\n.ui-widget-content .ui-state-highlight a,\n.ui-widget-header .ui-state-highlight a {\n\tcolor: #777620/*{fcHighlight}*/;\n}\n.ui-state-error,\n.ui-widget-content .ui-state-error,\n.ui-widget-header .ui-state-error {\n\tborder: 1px solid #f1a899/*{borderColorError}*/;\n\tbackground: #fddfdf/*{bgColorError}*/ /*{bgImgUrlError}*/ /*{bgErrorXPos}*/ /*{bgErrorYPos}*/ /*{bgErrorRepeat}*/;\n\tcolor: #5f3f3f/*{fcError}*/;\n}\n.ui-state-error a,\n.ui-widget-content .ui-state-error a,\n.ui-widget-header .ui-state-error a {\n\tcolor: #5f3f3f/*{fcError}*/;\n}\n.ui-state-error-text,\n.ui-widget-content .ui-state-error-text,\n.ui-widget-header .ui-state-error-text {\n\tcolor: #5f3f3f/*{fcError}*/;\n}\n.ui-priority-primary,\n.ui-widget-content .ui-priority-primary,\n.ui-widget-header .ui-priority-primary {\n\tfont-weight: bold;\n}\n.ui-priority-secondary,\n.ui-widget-content .ui-priority-secondary,\n.ui-widget-header .ui-priority-secondary {\n\topacity: .7;\n\t-ms-filter: "alpha(opacity=70)"; /* support: IE8 */\n\tfont-weight: normal;\n}\n.ui-state-disabled,\n.ui-widget-content .ui-state-disabled,\n.ui-widget-header .ui-state-disabled {\n\topacity: .35;\n\t-ms-filter: "alpha(opacity=35)"; /* support: IE8 */\n\tbackground-image: none;\n}\n.ui-state-disabled .ui-icon {\n\t-ms-filter: "alpha(opacity=35)"; /* support: IE8 - See #6059 */\n}\n\n/* Icons\n----------------------------------*/\n\n/* states and images */\n.ui-icon {\n\twidth: 16px;\n\theight: 16px;\n}\n.ui-icon,\n.ui-widget-content .ui-icon {\n\tbackground-image: url("images/ui-icons_444444_256x240.png")/*{iconsContent}*/;\n}\n.ui-widget-header .ui-icon {\n\tbackground-image: url("images/ui-icons_444444_256x240.png")/*{iconsHeader}*/;\n}\n.ui-state-hover .ui-icon,\n.ui-state-focus .ui-icon,\n.ui-button:hover .ui-icon,\n.ui-button:focus .ui-icon {\n\tbackground-image: url("images/ui-icons_555555_256x240.png")/*{iconsHover}*/;\n}\n.ui-state-active .ui-icon,\n.ui-button:active .ui-icon {\n\tbackground-image: url("images/ui-icons_ffffff_256x240.png")/*{iconsActive}*/;\n}\n.ui-state-highlight .ui-icon,\n.ui-button .ui-state-highlight.ui-icon {\n\tbackground-image: url("images/ui-icons_777620_256x240.png")/*{iconsHighlight}*/;\n}\n.ui-state-error .ui-icon,\n.ui-state-error-text .ui-icon {\n\tbackground-image: url("images/ui-icons_cc0000_256x240.png")/*{iconsError}*/;\n}\n.ui-button .ui-icon {\n\tbackground-image: url("images/ui-icons_777777_256x240.png")/*{iconsDefault}*/;\n}\n\n/* positioning */\n/* Three classes needed to override `.ui-button:hover .ui-icon` */\n.ui-icon-blank.ui-icon-blank.ui-icon-blank {\n\tbackground-image: none;\n}\n.ui-icon-caret-1-n { background-position: 0 0; }\n.ui-icon-caret-1-ne { background-position: -16px 0; }\n.ui-icon-caret-1-e { background-position: -32px 0; }\n.ui-icon-caret-1-se { background-position: -48px 0; }\n.ui-icon-caret-1-s { background-position: -65px 0; }\n.ui-icon-caret-1-sw { background-position: -80px 0; }\n.ui-icon-caret-1-w { background-position: -96px 0; }\n.ui-icon-caret-1-nw { background-position: -112px 0; }\n.ui-icon-caret-2-n-s { background-position: -128px 0; }\n.ui-icon-caret-2-e-w { background-position: -144px 0; }\n.ui-icon-triangle-1-n { background-position: 0 -16px; }\n.ui-icon-triangle-1-ne { background-position: -16px -16px; }\n.ui-icon-triangle-1-e { background-position: -32px -16px; }\n.ui-icon-triangle-1-se { background-position: -48px -16px; }\n.ui-icon-triangle-1-s { background-position: -65px -16px; }\n.ui-icon-triangle-1-sw { background-position: -80px -16px; }\n.ui-icon-triangle-1-w { background-position: -96px -16px; }\n.ui-icon-triangle-1-nw { background-position: -112px -16px; }\n.ui-icon-triangle-2-n-s { background-position: -128px -16px; }\n.ui-icon-triangle-2-e-w { background-position: -144px -16px; }\n.ui-icon-arrow-1-n { background-position: 0 -32px; }\n.ui-icon-arrow-1-ne { background-position: -16px -32px; }\n.ui-icon-arrow-1-e { background-position: -32px -32px; }\n.ui-icon-arrow-1-se { background-position: -48px -32px; }\n.ui-icon-arrow-1-s { background-position: -65px -32px; }\n.ui-icon-arrow-1-sw { background-position: -80px -32px; }\n.ui-icon-arrow-1-w { background-position: -96px -32px; }\n.ui-icon-arrow-1-nw { background-position: -112px -32px; }\n.ui-icon-arrow-2-n-s { background-position: -128px -32px; }\n.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }\n.ui-icon-arrow-2-e-w { background-position: -160px -32px; }\n.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }\n.ui-icon-arrowstop-1-n { background-position: -192px -32px; }\n.ui-icon-arrowstop-1-e { background-position: -208px -32px; }\n.ui-icon-arrowstop-1-s { background-position: -224px -32px; }\n.ui-icon-arrowstop-1-w { background-position: -240px -32px; }\n.ui-icon-arrowthick-1-n { background-position: 1px -48px; }\n.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }\n.ui-icon-arrowthick-1-e { background-position: -32px -48px; }\n.ui-icon-arrowthick-1-se { background-position: -48px -48px; }\n.ui-icon-arrowthick-1-s { background-position: -64px -48px; }\n.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }\n.ui-icon-arrowthick-1-w { background-position: -96px -48px; }\n.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }\n.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }\n.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }\n.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }\n.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }\n.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }\n.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }\n.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }\n.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }\n.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }\n.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }\n.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }\n.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }\n.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }\n.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }\n.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }\n.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }\n.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }\n.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }\n.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }\n.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }\n.ui-icon-arrow-4 { background-position: 0 -80px; }\n.ui-icon-arrow-4-diag { background-position: -16px -80px; }\n.ui-icon-extlink { background-position: -32px -80px; }\n.ui-icon-newwin { background-position: -48px -80px; }\n.ui-icon-refresh { background-position: -64px -80px; }\n.ui-icon-shuffle { background-position: -80px -80px; }\n.ui-icon-transfer-e-w { background-position: -96px -80px; }\n.ui-icon-transferthick-e-w { background-position: -112px -80px; }\n.ui-icon-folder-collapsed { background-position: 0 -96px; }\n.ui-icon-folder-open { background-position: -16px -96px; }\n.ui-icon-document { background-position: -32px -96px; }\n.ui-icon-document-b { background-position: -48px -96px; }\n.ui-icon-note { background-position: -64px -96px; }\n.ui-icon-mail-closed { background-position: -80px -96px; }\n.ui-icon-mail-open { background-position: -96px -96px; }\n.ui-icon-suitcase { background-position: -112px -96px; }\n.ui-icon-comment { background-position: -128px -96px; }\n.ui-icon-person { background-position: -144px -96px; }\n.ui-icon-print { background-position: -160px -96px; }\n.ui-icon-trash { background-position: -176px -96px; }\n.ui-icon-locked { background-position: -192px -96px; }\n.ui-icon-unlocked { background-position: -208px -96px; }\n.ui-icon-bookmark { background-position: -224px -96px; }\n.ui-icon-tag { background-position: -240px -96px; }\n.ui-icon-home { background-position: 0 -112px; }\n.ui-icon-flag { background-position: -16px -112px; }\n.ui-icon-calendar { background-position: -32px -112px; }\n.ui-icon-cart { background-position: -48px -112px; }\n.ui-icon-pencil { background-position: -64px -112px; }\n.ui-icon-clock { background-position: -80px -112px; }\n.ui-icon-disk { background-position: -96px -112px; }\n.ui-icon-calculator { background-position: -112px -112px; }\n.ui-icon-zoomin { background-position: -128px -112px; }\n.ui-icon-zoomout { background-position: -144px -112px; }\n.ui-icon-search { background-position: -160px -112px; }\n.ui-icon-wrench { background-position: -176px -112px; }\n.ui-icon-gear { background-position: -192px -112px; }\n.ui-icon-heart { background-position: -208px -112px; }\n.ui-icon-star { background-position: -224px -112px; }\n.ui-icon-link { background-position: -240px -112px; }\n.ui-icon-cancel { background-position: 0 -128px; }\n.ui-icon-plus { background-position: -16px -128px; }\n.ui-icon-plusthick { background-position: -32px -128px; }\n.ui-icon-minus { background-position: -48px -128px; }\n.ui-icon-minusthick { background-position: -64px -128px; }\n.ui-icon-close { background-position: -80px -128px; }\n.ui-icon-closethick { background-position: -96px -128px; }\n.ui-icon-key { background-position: -112px -128px; }\n.ui-icon-lightbulb { background-position: -128px -128px; }\n.ui-icon-scissors { background-position: -144px -128px; }\n.ui-icon-clipboard { background-position: -160px -128px; }\n.ui-icon-copy { background-position: -176px -128px; }\n.ui-icon-contact { background-position: -192px -128px; }\n.ui-icon-image { background-position: -208px -128px; }\n.ui-icon-video { background-position: -224px -128px; }\n.ui-icon-script { background-position: -240px -128px; }\n.ui-icon-alert { background-position: 0 -144px; }\n.ui-icon-info { background-position: -16px -144px; }\n.ui-icon-notice { background-position: -32px -144px; }\n.ui-icon-help { background-position: -48px -144px; }\n.ui-icon-check { background-position: -64px -144px; }\n.ui-icon-bullet { background-position: -80px -144px; }\n.ui-icon-radio-on { background-position: -96px -144px; }\n.ui-icon-radio-off { background-position: -112px -144px; }\n.ui-icon-pin-w { background-position: -128px -144px; }\n.ui-icon-pin-s { background-position: -144px -144px; }\n.ui-icon-play { background-position: 0 -160px; }\n.ui-icon-pause { background-position: -16px -160px; }\n.ui-icon-seek-next { background-position: -32px -160px; }\n.ui-icon-seek-prev { background-position: -48px -160px; }\n.ui-icon-seek-end { background-position: -64px -160px; }\n.ui-icon-seek-start { background-position: -80px -160px; }\n/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */\n.ui-icon-seek-first { background-position: -80px -160px; }\n.ui-icon-stop { background-position: -96px -160px; }\n.ui-icon-eject { background-position: -112px -160px; }\n.ui-icon-volume-off { background-position: -128px -160px; }\n.ui-icon-volume-on { background-position: -144px -160px; }\n.ui-icon-power { background-position: 0 -176px; }\n.ui-icon-signal-diag { background-position: -16px -176px; }\n.ui-icon-signal { background-position: -32px -176px; }\n.ui-icon-battery-0 { background-position: -48px -176px; }\n.ui-icon-battery-1 { background-position: -64px -176px; }\n.ui-icon-battery-2 { background-position: -80px -176px; }\n.ui-icon-battery-3 { background-position: -96px -176px; }\n.ui-icon-circle-plus { background-position: 0 -192px; }\n.ui-icon-circle-minus { background-position: -16px -192px; }\n.ui-icon-circle-close { background-position: -32px -192px; }\n.ui-icon-circle-triangle-e { background-position: -48px -192px; }\n.ui-icon-circle-triangle-s { background-position: -64px -192px; }\n.ui-icon-circle-triangle-w { background-position: -80px -192px; }\n.ui-icon-circle-triangle-n { background-position: -96px -192px; }\n.ui-icon-circle-arrow-e { background-position: -112px -192px; }\n.ui-icon-circle-arrow-s { background-position: -128px -192px; }\n.ui-icon-circle-arrow-w { background-position: -144px -192px; }\n.ui-icon-circle-arrow-n { background-position: -160px -192px; }\n.ui-icon-circle-zoomin { background-position: -176px -192px; }\n.ui-icon-circle-zoomout { background-position: -192px -192px; }\n.ui-icon-circle-check { background-position: -208px -192px; }\n.ui-icon-circlesmall-plus { background-position: 0 -208px; }\n.ui-icon-circlesmall-minus { background-position: -16px -208px; }\n.ui-icon-circlesmall-close { background-position: -32px -208px; }\n.ui-icon-squaresmall-plus { background-position: -48px -208px; }\n.ui-icon-squaresmall-minus { background-position: -64px -208px; }\n.ui-icon-squaresmall-close { background-position: -80px -208px; }\n.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }\n.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }\n.ui-icon-grip-solid-vertical { background-position: -32px -224px; }\n.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }\n.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }\n.ui-icon-grip-diagonal-se { background-position: -80px -224px; }\n\n\n/* Misc visuals\n----------------------------------*/\n\n/* Corner radius */\n.ui-corner-all,\n.ui-corner-top,\n.ui-corner-left,\n.ui-corner-tl {\n\tborder-top-left-radius: 3px/*{cornerRadius}*/;\n}\n.ui-corner-all,\n.ui-corner-top,\n.ui-corner-right,\n.ui-corner-tr {\n\tborder-top-right-radius: 3px/*{cornerRadius}*/;\n}\n.ui-corner-all,\n.ui-corner-bottom,\n.ui-corner-left,\n.ui-corner-bl {\n\tborder-bottom-left-radius: 3px/*{cornerRadius}*/;\n}\n.ui-corner-all,\n.ui-corner-bottom,\n.ui-corner-right,\n.ui-corner-br {\n\tborder-bottom-right-radius: 3px/*{cornerRadius}*/;\n}\n\n/* Overlays */\n.ui-widget-overlay {\n\tbackground: #aaaaaa/*{bgColorOverlay}*/ /*{bgImgUrlOverlay}*/ /*{bgOverlayXPos}*/ /*{bgOverlayYPos}*/ /*{bgOverlayRepeat}*/;\n\topacity: .3/*{opacityOverlay}*/;\n\t-ms-filter: "alpha(opacity=30)"/*{opacityFilterOverlay}*/; /* support: IE8 */\n}\n.ui-widget-shadow {\n\t-webkit-box-shadow: 0/*{offsetLeftShadow}*/ 0/*{offsetTopShadow}*/ 5px/*{thicknessShadow}*/ #666666/*{bgColorShadow}*/;\n\tbox-shadow: 0/*{offsetLeftShadow}*/ 0/*{offsetTopShadow}*/ 5px/*{thicknessShadow}*/ #666666/*{bgColorShadow}*/;\n}\n'],sourceRoot:""}]);const w=g},28072:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var n=i(87537),o=i.n(n),r=i(23645),s=i.n(r)()(o());s.push([e.id,"/*!\n * jQuery UI Tooltip 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/tooltip/#theming\n */\n.ui-tooltip {\n\tpadding: 8px;\n\tposition: absolute;\n\tz-index: 9999;\n\tmax-width: 300px;\n}\nbody .ui-tooltip {\n\tborder-width: 2px;\n}\n","",{version:3,sources:["webpack://./node_modules/jquery-ui/themes/base/tooltip.css"],names:[],mappings:"AAAA;;;;;;;;;EASE;AACF;CACC,YAAY;CACZ,kBAAkB;CAClB,aAAa;CACb,gBAAgB;AACjB;AACA;CACC,iBAAiB;AAClB",sourcesContent:["/*!\n * jQuery UI Tooltip 1.13.2\n * http://jqueryui.com\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/tooltip/#theming\n */\n.ui-tooltip {\n\tpadding: 8px;\n\tposition: absolute;\n\tz-index: 9999;\n\tmax-width: 300px;\n}\nbody .ui-tooltip {\n\tborder-width: 2px;\n}\n"],sourceRoot:""}]);const a=s},86796:(e,t,i)=>{"use strict";i.d(t,{Z:()=>a});var n=i(87537),o=i.n(n),r=i(23645),s=i.n(r)()(o());s.push([e.id,"/*!\n * Ladda\n * http://lab.hakim.se/ladda\n * MIT licensed\n *\n * Copyright (C) 2018 Hakim El Hattab, http://hakim.se\n */@keyframes ladda-spinner-line-fade{0%,100%{opacity:.22}1%{opacity:1}}.ladda-button{position:relative}.ladda-button .ladda-spinner{position:absolute;z-index:2;display:inline-block;width:32px;top:50%;margin-top:0;opacity:0;pointer-events:none}.ladda-button .ladda-label{position:relative;z-index:3}.ladda-button .ladda-progress{position:absolute;width:0;height:100%;left:0;top:0;background:rgba(0,0,0,.2);display:none;transition:.1s linear all}.ladda-button[data-loading] .ladda-progress{display:block}.ladda-button,.ladda-button .ladda-spinner,.ladda-button .ladda-label{transition:.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all}.ladda-button[data-style=zoom-in],.ladda-button[data-style=zoom-in] .ladda-spinner,.ladda-button[data-style=zoom-in] .ladda-label,.ladda-button[data-style=zoom-out],.ladda-button[data-style=zoom-out] .ladda-spinner,.ladda-button[data-style=zoom-out] .ladda-label{transition:.3s ease all}.ladda-button[data-style=expand-right] .ladda-spinner{right:-6px}.ladda-button[data-style=expand-right][data-size=s] .ladda-spinner,.ladda-button[data-style=expand-right][data-size=xs] .ladda-spinner{right:-12px}.ladda-button[data-style=expand-right][data-loading]{padding-right:56px}.ladda-button[data-style=expand-right][data-loading] .ladda-spinner{opacity:1}.ladda-button[data-style=expand-right][data-loading][data-size=s],.ladda-button[data-style=expand-right][data-loading][data-size=xs]{padding-right:40px}.ladda-button[data-style=expand-left] .ladda-spinner{left:26px}.ladda-button[data-style=expand-left][data-size=s] .ladda-spinner,.ladda-button[data-style=expand-left][data-size=xs] .ladda-spinner{left:4px}.ladda-button[data-style=expand-left][data-loading]{padding-left:56px}.ladda-button[data-style=expand-left][data-loading] .ladda-spinner{opacity:1}.ladda-button[data-style=expand-left][data-loading][data-size=s],.ladda-button[data-style=expand-left][data-loading][data-size=xs]{padding-left:40px}.ladda-button[data-style=expand-up]{overflow:hidden}.ladda-button[data-style=expand-up] .ladda-spinner{top:-32px;left:50%;margin-left:0}.ladda-button[data-style=expand-up][data-loading]{padding-top:54px}.ladda-button[data-style=expand-up][data-loading] .ladda-spinner{opacity:1;top:26px;margin-top:0}.ladda-button[data-style=expand-up][data-loading][data-size=s],.ladda-button[data-style=expand-up][data-loading][data-size=xs]{padding-top:32px}.ladda-button[data-style=expand-up][data-loading][data-size=s] .ladda-spinner,.ladda-button[data-style=expand-up][data-loading][data-size=xs] .ladda-spinner{top:4px}.ladda-button[data-style=expand-down]{overflow:hidden}.ladda-button[data-style=expand-down] .ladda-spinner{top:62px;left:50%;margin-left:0}.ladda-button[data-style=expand-down][data-size=s] .ladda-spinner,.ladda-button[data-style=expand-down][data-size=xs] .ladda-spinner{top:40px}.ladda-button[data-style=expand-down][data-loading]{padding-bottom:54px}.ladda-button[data-style=expand-down][data-loading] .ladda-spinner{opacity:1}.ladda-button[data-style=expand-down][data-loading][data-size=s],.ladda-button[data-style=expand-down][data-loading][data-size=xs]{padding-bottom:32px}.ladda-button[data-style=slide-left]{overflow:hidden}.ladda-button[data-style=slide-left] .ladda-label{position:relative}.ladda-button[data-style=slide-left] .ladda-spinner{left:100%;margin-left:0}.ladda-button[data-style=slide-left][data-loading] .ladda-label{opacity:0;left:-100%}.ladda-button[data-style=slide-left][data-loading] .ladda-spinner{opacity:1;left:50%}.ladda-button[data-style=slide-right]{overflow:hidden}.ladda-button[data-style=slide-right] .ladda-label{position:relative}.ladda-button[data-style=slide-right] .ladda-spinner{right:100%;margin-left:0;left:16px}[dir=rtl] .ladda-button[data-style=slide-right] .ladda-spinner{right:auto}.ladda-button[data-style=slide-right][data-loading] .ladda-label{opacity:0;left:100%}.ladda-button[data-style=slide-right][data-loading] .ladda-spinner{opacity:1;left:50%}.ladda-button[data-style=slide-up]{overflow:hidden}.ladda-button[data-style=slide-up] .ladda-label{position:relative}.ladda-button[data-style=slide-up] .ladda-spinner{left:50%;margin-left:0;margin-top:1em}.ladda-button[data-style=slide-up][data-loading] .ladda-label{opacity:0;top:-1em}.ladda-button[data-style=slide-up][data-loading] .ladda-spinner{opacity:1;margin-top:0}.ladda-button[data-style=slide-down]{overflow:hidden}.ladda-button[data-style=slide-down] .ladda-label{position:relative}.ladda-button[data-style=slide-down] .ladda-spinner{left:50%;margin-left:0;margin-top:-2em}.ladda-button[data-style=slide-down][data-loading] .ladda-label{opacity:0;top:1em}.ladda-button[data-style=slide-down][data-loading] .ladda-spinner{opacity:1;margin-top:0}.ladda-button[data-style=zoom-out]{overflow:hidden}.ladda-button[data-style=zoom-out] .ladda-label{position:relative;display:inline-block}.ladda-button[data-style=zoom-out] .ladda-spinner{left:50%;margin-left:32px;transform:scale(2.5)}.ladda-button[data-style=zoom-out][data-loading] .ladda-label{opacity:0;transform:scale(0.5)}.ladda-button[data-style=zoom-out][data-loading] .ladda-spinner{opacity:1;margin-left:0;transform:none}.ladda-button[data-style=zoom-in]{overflow:hidden}.ladda-button[data-style=zoom-in] .ladda-label{position:relative;display:inline-block}.ladda-button[data-style=zoom-in] .ladda-spinner{left:50%;margin-left:-16px;transform:scale(0.2)}.ladda-button[data-style=zoom-in][data-loading] .ladda-label{opacity:0;transform:scale(2.2)}.ladda-button[data-style=zoom-in][data-loading] .ladda-spinner{opacity:1;margin-left:0;transform:none}.ladda-button[data-style=contract]{overflow:hidden;width:100px}.ladda-button[data-style=contract] .ladda-spinner{left:50%;margin-left:0}.ladda-button[data-style=contract][data-loading]{border-radius:50%;width:52px}.ladda-button[data-style=contract][data-loading] .ladda-label{opacity:0}.ladda-button[data-style=contract][data-loading] .ladda-spinner{opacity:1}.ladda-button[data-style=contract-overlay]{overflow:hidden;width:100px;box-shadow:0px 0px 0px 2000px rgba(0,0,0,0)}.ladda-button[data-style=contract-overlay] .ladda-spinner{left:50%;margin-left:0}.ladda-button[data-style=contract-overlay][data-loading]{border-radius:50%;width:52px;box-shadow:0px 0px 0px 2000px rgba(0,0,0,.8)}.ladda-button[data-style=contract-overlay][data-loading] .ladda-label{opacity:0}.ladda-button[data-style=contract-overlay][data-loading] .ladda-spinner{opacity:1}[dir=rtl] .ladda-spinner>div{left:25% !important}","",{version:3,sources:["webpack://./node_modules/ladda/dist/ladda-themeless.min.css"],names:[],mappings:"AAAA;;;;;;EAME,CAAC,mCAAmC,QAAQ,WAAW,CAAC,GAAG,SAAS,CAAC,CAAC,cAAc,iBAAiB,CAAC,6BAA6B,iBAAiB,CAAC,SAAS,CAAC,oBAAoB,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,mBAAmB,CAAC,2BAA2B,iBAAiB,CAAC,SAAS,CAAC,8BAA8B,iBAAiB,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,YAAY,CAAC,yBAAyB,CAAC,4CAA4C,aAAa,CAAC,sEAAsE,0DAA0D,CAAC,uQAAuQ,uBAAuB,CAAC,sDAAsD,UAAU,CAAC,uIAAuI,WAAW,CAAC,qDAAqD,kBAAkB,CAAC,oEAAoE,SAAS,CAAC,qIAAqI,kBAAkB,CAAC,qDAAqD,SAAS,CAAC,qIAAqI,QAAQ,CAAC,oDAAoD,iBAAiB,CAAC,mEAAmE,SAAS,CAAC,mIAAmI,iBAAiB,CAAC,oCAAoC,eAAe,CAAC,mDAAmD,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,kDAAkD,gBAAgB,CAAC,iEAAiE,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,+HAA+H,gBAAgB,CAAC,6JAA6J,OAAO,CAAC,sCAAsC,eAAe,CAAC,qDAAqD,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,qIAAqI,QAAQ,CAAC,oDAAoD,mBAAmB,CAAC,mEAAmE,SAAS,CAAC,mIAAmI,mBAAmB,CAAC,qCAAqC,eAAe,CAAC,kDAAkD,iBAAiB,CAAC,oDAAoD,SAAS,CAAC,aAAa,CAAC,gEAAgE,SAAS,CAAC,UAAU,CAAC,kEAAkE,SAAS,CAAC,QAAQ,CAAC,sCAAsC,eAAe,CAAC,mDAAmD,iBAAiB,CAAC,qDAAqD,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,+DAA+D,UAAU,CAAC,iEAAiE,SAAS,CAAC,SAAS,CAAC,mEAAmE,SAAS,CAAC,QAAQ,CAAC,mCAAmC,eAAe,CAAC,gDAAgD,iBAAiB,CAAC,kDAAkD,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAC,8DAA8D,SAAS,CAAC,QAAQ,CAAC,gEAAgE,SAAS,CAAC,YAAY,CAAC,qCAAqC,eAAe,CAAC,kDAAkD,iBAAiB,CAAC,oDAAoD,QAAQ,CAAC,aAAa,CAAC,eAAe,CAAC,gEAAgE,SAAS,CAAC,OAAO,CAAC,kEAAkE,SAAS,CAAC,YAAY,CAAC,mCAAmC,eAAe,CAAC,gDAAgD,iBAAiB,CAAC,oBAAoB,CAAC,kDAAkD,QAAQ,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,8DAA8D,SAAS,CAAC,oBAAoB,CAAC,gEAAgE,SAAS,CAAC,aAAa,CAAC,cAAc,CAAC,kCAAkC,eAAe,CAAC,+CAA+C,iBAAiB,CAAC,oBAAoB,CAAC,iDAAiD,QAAQ,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,6DAA6D,SAAS,CAAC,oBAAoB,CAAC,+DAA+D,SAAS,CAAC,aAAa,CAAC,cAAc,CAAC,mCAAmC,eAAe,CAAC,WAAW,CAAC,kDAAkD,QAAQ,CAAC,aAAa,CAAC,iDAAiD,iBAAiB,CAAC,UAAU,CAAC,8DAA8D,SAAS,CAAC,gEAAgE,SAAS,CAAC,2CAA2C,eAAe,CAAC,WAAW,CAAC,2CAA2C,CAAC,0DAA0D,QAAQ,CAAC,aAAa,CAAC,yDAAyD,iBAAiB,CAAC,UAAU,CAAC,4CAA4C,CAAC,sEAAsE,SAAS,CAAC,wEAAwE,SAAS,CAAC,6BAA6B,mBAAmB",sourcesContent:["/*!\n * Ladda\n * http://lab.hakim.se/ladda\n * MIT licensed\n *\n * Copyright (C) 2018 Hakim El Hattab, http://hakim.se\n */@keyframes ladda-spinner-line-fade{0%,100%{opacity:.22}1%{opacity:1}}.ladda-button{position:relative}.ladda-button .ladda-spinner{position:absolute;z-index:2;display:inline-block;width:32px;top:50%;margin-top:0;opacity:0;pointer-events:none}.ladda-button .ladda-label{position:relative;z-index:3}.ladda-button .ladda-progress{position:absolute;width:0;height:100%;left:0;top:0;background:rgba(0,0,0,.2);display:none;transition:.1s linear all}.ladda-button[data-loading] .ladda-progress{display:block}.ladda-button,.ladda-button .ladda-spinner,.ladda-button .ladda-label{transition:.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) all}.ladda-button[data-style=zoom-in],.ladda-button[data-style=zoom-in] .ladda-spinner,.ladda-button[data-style=zoom-in] .ladda-label,.ladda-button[data-style=zoom-out],.ladda-button[data-style=zoom-out] .ladda-spinner,.ladda-button[data-style=zoom-out] .ladda-label{transition:.3s ease all}.ladda-button[data-style=expand-right] .ladda-spinner{right:-6px}.ladda-button[data-style=expand-right][data-size=s] .ladda-spinner,.ladda-button[data-style=expand-right][data-size=xs] .ladda-spinner{right:-12px}.ladda-button[data-style=expand-right][data-loading]{padding-right:56px}.ladda-button[data-style=expand-right][data-loading] .ladda-spinner{opacity:1}.ladda-button[data-style=expand-right][data-loading][data-size=s],.ladda-button[data-style=expand-right][data-loading][data-size=xs]{padding-right:40px}.ladda-button[data-style=expand-left] .ladda-spinner{left:26px}.ladda-button[data-style=expand-left][data-size=s] .ladda-spinner,.ladda-button[data-style=expand-left][data-size=xs] .ladda-spinner{left:4px}.ladda-button[data-style=expand-left][data-loading]{padding-left:56px}.ladda-button[data-style=expand-left][data-loading] .ladda-spinner{opacity:1}.ladda-button[data-style=expand-left][data-loading][data-size=s],.ladda-button[data-style=expand-left][data-loading][data-size=xs]{padding-left:40px}.ladda-button[data-style=expand-up]{overflow:hidden}.ladda-button[data-style=expand-up] .ladda-spinner{top:-32px;left:50%;margin-left:0}.ladda-button[data-style=expand-up][data-loading]{padding-top:54px}.ladda-button[data-style=expand-up][data-loading] .ladda-spinner{opacity:1;top:26px;margin-top:0}.ladda-button[data-style=expand-up][data-loading][data-size=s],.ladda-button[data-style=expand-up][data-loading][data-size=xs]{padding-top:32px}.ladda-button[data-style=expand-up][data-loading][data-size=s] .ladda-spinner,.ladda-button[data-style=expand-up][data-loading][data-size=xs] .ladda-spinner{top:4px}.ladda-button[data-style=expand-down]{overflow:hidden}.ladda-button[data-style=expand-down] .ladda-spinner{top:62px;left:50%;margin-left:0}.ladda-button[data-style=expand-down][data-size=s] .ladda-spinner,.ladda-button[data-style=expand-down][data-size=xs] .ladda-spinner{top:40px}.ladda-button[data-style=expand-down][data-loading]{padding-bottom:54px}.ladda-button[data-style=expand-down][data-loading] .ladda-spinner{opacity:1}.ladda-button[data-style=expand-down][data-loading][data-size=s],.ladda-button[data-style=expand-down][data-loading][data-size=xs]{padding-bottom:32px}.ladda-button[data-style=slide-left]{overflow:hidden}.ladda-button[data-style=slide-left] .ladda-label{position:relative}.ladda-button[data-style=slide-left] .ladda-spinner{left:100%;margin-left:0}.ladda-button[data-style=slide-left][data-loading] .ladda-label{opacity:0;left:-100%}.ladda-button[data-style=slide-left][data-loading] .ladda-spinner{opacity:1;left:50%}.ladda-button[data-style=slide-right]{overflow:hidden}.ladda-button[data-style=slide-right] .ladda-label{position:relative}.ladda-button[data-style=slide-right] .ladda-spinner{right:100%;margin-left:0;left:16px}[dir=rtl] .ladda-button[data-style=slide-right] .ladda-spinner{right:auto}.ladda-button[data-style=slide-right][data-loading] .ladda-label{opacity:0;left:100%}.ladda-button[data-style=slide-right][data-loading] .ladda-spinner{opacity:1;left:50%}.ladda-button[data-style=slide-up]{overflow:hidden}.ladda-button[data-style=slide-up] .ladda-label{position:relative}.ladda-button[data-style=slide-up] .ladda-spinner{left:50%;margin-left:0;margin-top:1em}.ladda-button[data-style=slide-up][data-loading] .ladda-label{opacity:0;top:-1em}.ladda-button[data-style=slide-up][data-loading] .ladda-spinner{opacity:1;margin-top:0}.ladda-button[data-style=slide-down]{overflow:hidden}.ladda-button[data-style=slide-down] .ladda-label{position:relative}.ladda-button[data-style=slide-down] .ladda-spinner{left:50%;margin-left:0;margin-top:-2em}.ladda-button[data-style=slide-down][data-loading] .ladda-label{opacity:0;top:1em}.ladda-button[data-style=slide-down][data-loading] .ladda-spinner{opacity:1;margin-top:0}.ladda-button[data-style=zoom-out]{overflow:hidden}.ladda-button[data-style=zoom-out] .ladda-label{position:relative;display:inline-block}.ladda-button[data-style=zoom-out] .ladda-spinner{left:50%;margin-left:32px;transform:scale(2.5)}.ladda-button[data-style=zoom-out][data-loading] .ladda-label{opacity:0;transform:scale(0.5)}.ladda-button[data-style=zoom-out][data-loading] .ladda-spinner{opacity:1;margin-left:0;transform:none}.ladda-button[data-style=zoom-in]{overflow:hidden}.ladda-button[data-style=zoom-in] .ladda-label{position:relative;display:inline-block}.ladda-button[data-style=zoom-in] .ladda-spinner{left:50%;margin-left:-16px;transform:scale(0.2)}.ladda-button[data-style=zoom-in][data-loading] .ladda-label{opacity:0;transform:scale(2.2)}.ladda-button[data-style=zoom-in][data-loading] .ladda-spinner{opacity:1;margin-left:0;transform:none}.ladda-button[data-style=contract]{overflow:hidden;width:100px}.ladda-button[data-style=contract] .ladda-spinner{left:50%;margin-left:0}.ladda-button[data-style=contract][data-loading]{border-radius:50%;width:52px}.ladda-button[data-style=contract][data-loading] .ladda-label{opacity:0}.ladda-button[data-style=contract][data-loading] .ladda-spinner{opacity:1}.ladda-button[data-style=contract-overlay]{overflow:hidden;width:100px;box-shadow:0px 0px 0px 2000px rgba(0,0,0,0)}.ladda-button[data-style=contract-overlay] .ladda-spinner{left:50%;margin-left:0}.ladda-button[data-style=contract-overlay][data-loading]{border-radius:50%;width:52px;box-shadow:0px 0px 0px 2000px rgba(0,0,0,.8)}.ladda-button[data-style=contract-overlay][data-loading] .ladda-label{opacity:0}.ladda-button[data-style=contract-overlay][data-loading] .ladda-spinner{opacity:1}[dir=rtl] .ladda-spinner>div{left:25% !important}"],sourceRoot:""}]);const a=s},23645:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var i="",n=void 0!==t[5];return t[4]&&(i+="@supports (".concat(t[4],") {")),t[2]&&(i+="@media ".concat(t[2]," {")),n&&(i+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),i+=e(t),n&&(i+="}"),t[2]&&(i+="}"),t[4]&&(i+="}"),i})).join("")},t.i=function(e,i,n,o,r){"string"==typeof e&&(e=[[null,e,void 0]]);var s={};if(n)for(var a=0;a0?" ".concat(d[5]):""," {").concat(d[1],"}")),d[5]=r),i&&(d[2]?(d[1]="@media ".concat(d[2]," {").concat(d[1],"}"),d[2]=i):d[2]=i),o&&(d[4]?(d[1]="@supports (".concat(d[4],") {").concat(d[1],"}"),d[4]=o):d[4]="".concat(o)),t.push(d))}},t}},61667:e=>{"use strict";e.exports=function(e,t){return t||(t={}),e?(e=String(e.__esModule?e.default:e),/^['"].*['"]$/.test(e)&&(e=e.slice(1,-1)),t.hash&&(e+=t.hash),/["'() \t\n]|(%20)/.test(e)||t.needQuotes?'"'.concat(e.replace(/"/g,'\\"').replace(/\n/g,"\\n"),'"'):e):e}},87537:e=>{"use strict";e.exports=function(e){var t=e[1],i=e[3];if(!i)return t;if("function"==typeof btoa){var n=btoa(unescape(encodeURIComponent(JSON.stringify(i)))),o="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(n),r="/*# ".concat(o," */"),s=i.sources.map((function(e){return"/*# sourceURL=".concat(i.sourceRoot||"").concat(e," */")}));return[t].concat(s).concat([r]).join("\n")}return[t].join("\n")}},94277:(e,t,i)=>{e.exports=i.p+"e2edc11d0c5133fcca87ccb38a04f4bb.js"},14113:(e,t,i)=>{e.exports=i.p+"0beea7b55cf3b8c9f9b0bd46170bb30e.js"},81334:(e,t,i)=>{e.exports=i.p+"75d2dae20d7bac5ecfa9dafc48ec04eb.js"},59503:(e,t,i)=>{e.exports=i.p+"42b4ce6de00994aa6bf7db7ff2f931a8.js"},83823:(e,t,i)=>{e.exports=i.p+"c530988d2b1966fd10a4d99fa3877e1b.js"},83526:(e,t,i)=>{e.exports=i.p+"f9891d13237b59ce53f07874ab7a711b.js"},8026:(e,t,i)=>{e.exports=i.p+"7c317e61789b17749dfe6ea294c89b6b.js"},75065:(e,t,i)=>{e.exports=i.p+"50b31dc00a9a56eaf8b513764ed913ab.js"},74422:(e,t,i)=>{e.exports=i.p+"9b8e2282f60f104ff3ace5b905af4d62.js"},29624:(e,t,i)=>{e.exports=i.p+"d5616c7db421e22ad35dbf9468363871.js"},7704:(e,t,i)=>{e.exports=i.p+"c3e2d2e4b4553e0a7525a80fc6969a42.js"},13172:(e,t,i)=>{e.exports=i.p+"1e230a2b3b98f3888c0ed82b4ecb2bf0.js"},71165:(e,t,i)=>{e.exports=i.p+"74fa46809aba9625071aa51bc0a71561.js"},7490:(e,t,i)=>{e.exports=i.p+"1cc82820c232a82b5d8b6cb9e4152af3.js"},19159:(e,t,i)=>{e.exports=i.p+"8874533c7f63c70d09f4d482429e6efe.js"},44666:(e,t,i)=>{e.exports=i.p+"8bf75743fb14fea7cf02a5da1bda79d4.js"},82489:(e,t,i)=>{e.exports=i.p+"55892adefebc0d53993fb108151ed150.js"},46385:(e,t,i)=>{e.exports=i.p+"0a9cd3d62e7f1cd404606c50d9da86fb.js"},13038:(e,t,i)=>{e.exports=i.p+"6292be0125d3720498496eaa7f541618.js"},37097:(e,t,i)=>{e.exports=i.p+"fd40b62490e412d27bc67e660aacae19.js"},63603:(e,t,i)=>{e.exports=i.p+"ad215d7ba317c941cdcc96ae78e86666.js"},95367:(e,t,i)=>{e.exports=i.p+"40e6f6cb52a24a747b1046614db3b164.js"},67863:(e,t,i)=>{e.exports=i.p+"3bbf0faa999b08584dc971eab820113a.js"},87630:(e,t,i)=>{e.exports=i.p+"19e684db1b08c82963634abc8b2c989f.js"},31380:(e,t,i)=>{e.exports=i.p+"0b923a43967ff893ec63b92dc4f19017.js"},61366:(e,t,i)=>{e.exports=i.p+"1850762f1bfaf1a1044765b02b243ed4.js"},91108:(e,t,i)=>{e.exports=i.p+"5ada4185d70a1852b578b2063de58e37.js"},96293:(e,t,i)=>{e.exports=i.p+"03748243ac7148ca150ba06c2919ff81.js"},80029:(e,t,i)=>{e.exports=i.p+"1fe2d583da5f073431d81a6ea13ffc0c.js"},26375:(e,t,i)=>{e.exports=i.p+"760eb6458a048f3cba7bc3ae52ef2ba4.js"},39254:(e,t,i)=>{e.exports=i.p+"cd358d9acaaa7049d85b15ac766fc314.js"},87006:(e,t,i)=>{e.exports=i.p+"b460e24d77f9c0d8b21e65d899840adb.js"},9027:(e,t,i)=>{e.exports=i.p+"aaf5c3a4f1a188fd051577cea7b87209.js"},48032:(e,t,i)=>{e.exports=i.p+"985d6749688c18f94994794f88492444.js"},73398:(e,t,i)=>{e.exports=i.p+"eba5ee3fb1f3e92af88c69e50b2a8fd1.js"},23723:(e,t,i)=>{e.exports=i.p+"4860a6a7c59b9ed5c779f7201dc1f591.js"},54264:(e,t,i)=>{e.exports=i.p+"f0878cc386a608146dbc8fb3b6745c42.js"},42066:(e,t,i)=>{e.exports=i.p+"4a1dab236c2844d28f73c5c128afe299.js"},57382:(e,t,i)=>{e.exports=i.p+"e4565878df49fd4ce3edd3f1022c1695.js"},89323:(e,t,i)=>{e.exports=i.p+"3c71a5c0e85afc5486ee9ac29099843d.js"},51022:(e,t,i)=>{e.exports=i.p+"5e6c2744429a8fac6e536b179c1f31d0.js"},19783:(e,t,i)=>{e.exports=i.p+"8772719d0f76ecabded160e32dc5eb77.js"},73322:(e,t,i)=>{e.exports=i.p+"506d44d8712a22011ce2bec8adbb19b2.js"},33068:(e,t,i)=>{e.exports=i.p+"b2ff96fbe6501ff45c37491b94c96c5f.js"},97944:(e,t,i)=>{e.exports=i.p+"5e37c1ef17a219449c8c6aa37a87a941.js"},56816:(e,t,i)=>{e.exports=i.p+"c7ca9dccbac3af7ebc82b271dd2aa570.js"},14338:(e,t,i)=>{e.exports=i.p+"ecd02712f5a40fcdaa3bfa8190470024.js"},15209:(e,t,i)=>{e.exports=i.p+"4b61fe945e9e73aba22717e5d6f080df.js"},86147:(e,t,i)=>{e.exports=i.p+"3e277a4ce5486a806a00497aea8ecdd3.js"},54967:(e,t,i)=>{e.exports=i.p+"07f148ff205173f8832033bc8858892c.js"},99681:(e,t,i)=>{e.exports=i.p+"bfe3cc7724e8bf4a4b0a281aeb44de98.js"},52988:(e,t,i)=>{e.exports=i.p+"fb59a7c154104a421146ab9e5bd71540.js"},31951:(e,t,i)=>{e.exports=i.p+"44ac2a2398075299754707d4bac7c276.js"},31590:(e,t,i)=>{e.exports=i.p+"7c9c55eb1a1e5c1dfd63631511d9a1f0.js"},61877:(e,t,i)=>{e.exports=i.p+"875e553a27bee88a73df34a90b3058e4.js"},36473:(e,t,i)=>{e.exports=i.p+"2f7c864f08b00c01f04ac22375f7ddd9.js"},45029:(e,t,i)=>{e.exports=i.p+"a7824ec1ab22aeb22bb35ab8bf1ddc4a.js"},62070:(e,t,i)=>{e.exports=i.p+"440f4d477b586c7a6ba4c1c966ca79fc.js"},68721:(e,t,i)=>{e.exports=i.p+"dc1eb6c1c92d7067c72b82b2833a7d2c.js"},65655:(e,t,i)=>{e.exports=i.p+"b25188cf2652d63136d5e54c38abf84e.js"},63030:(e,t,i)=>{e.exports=i.p+"716879b6ef8945d579595d88534ae402.js"},35838:(e,t,i)=>{e.exports=i.p+"e6070e43daf8a9e5f13f515a5a03e66c.js"},90751:(e,t,i)=>{e.exports=i.p+"f4c53706e1721b08e8b2f650c8bd35c4.js"},82501:(e,t,i)=>{e.exports=i.p+"30e80558090a09477e4466af8af4c40e.js"},67593:(e,t,i)=>{e.exports=i.p+"f582d9feb91d31036d3dae4cdaea865f.js"},16281:(e,t,i)=>{e.exports=i.p+"291611f874a2bc54dbc291b52d74c512.js"},46642:(e,t,i)=>{e.exports=i.p+"7c27341a2599ffb713c8fb7beced7601.js"},29514:(e,t,i)=>{e.exports=i.p+"ecd37b343c4dcc8dac849b1c680dcbef.js"},23429:(e,t,i)=>{e.exports=i.p+"e8fa659263d5ca9e0d1be69c048133a8.js"},95187:(e,t,i)=>{e.exports=i.p+"7f407a1006eb830d6f0aaad96c133d26.js"},61417:(e,t,i)=>{e.exports=i.p+"df5710d97a899b672060afaa8c4891c2.js"},69306:(e,t,i)=>{e.exports=i.p+"444ababf8edc26948943fbb45bd06a19.js"},72802:(e,t,i)=>{e.exports=i.p+"28474eb7ee45a125e49cc5cbe69e336f.js"},59901:(e,t,i)=>{e.exports=i.p+"367ad31e6d99d0021d05133b85bb9faf.js"},58135:(e,t,i)=>{e.exports=i.p+"5ebdef8c548fca6c51280e915d6f4c3f.js"},48100:(e,t,i)=>{e.exports=i.p+"8707a7b49421dbbb842506674ff87fa3.js"},51975:(e,t,i)=>{e.exports=i.p+"d7b57d5ebdcade0ce5e047509e06861a.js"},95623:(e,t,i)=>{e.exports=i.p+"34791bf31a4236531bc887b48f872c1c.js"},40361:(e,t,i)=>{e.exports=i.p+"4700af84801dbda8a3880e3469c21130.js"},2550:(e,t,i)=>{e.exports=i.p+"0872e65446d05c1c443180c6280b015f.js"},52501:(e,t,i)=>{e.exports=i.p+"41d8a58fd52b6a06e8d3fb06cdabf67a.js"},85521:(e,t,i)=>{e.exports=i.p+"1b64f97eed4a3837a93f8bdd363295fb.js"},87605:(e,t,i)=>{e.exports=i.p+"a4306aa43824ec1a4ee422b59a851e6f.js"},94977:(e,t,i)=>{e.exports=i.p+"1e26167b5f75d5b94add34f1f4d8b044.js"},12681:(e,t,i)=>{e.exports=i.p+"d1a58542777d072396d7cee5487304f9.js"},70722:(e,t,i)=>{e.exports=i.p+"df37029cdf8359ecac0aebdf4f257d03.js"},54217:(e,t,i)=>{e.exports=i.p+"179a93d3148b7edb72581279c3787d0c.js"},70557:(e,t,i)=>{e.exports=i.p+"c728b4ef87cfd5f561d1601f0867c39d.js"},35050:(e,t,i)=>{e.exports=i.p+"da1c1b1569c4d5872c9a18c29f0b5c90.js"},36493:(e,t,i)=>{e.exports=i.p+"5c53d90bf4029cfd1b6a0945d1cae142.js"},41580:(e,t,i)=>{e.exports=i.p+"dcb197c0214e800da9d9436dfc9437d6.js"},78019:(e,t,i)=>{e.exports=i.p+"abb40a9a6ef0b2fe14c66dcadc9857a2.js"},61226:(e,t,i)=>{e.exports=i.p+"144adc7fc170515d7ad0848f62750212.js"},40618:(e,t,i)=>{e.exports=i.p+"3e3e2243675fa4fb4b320dc57daf2d4f.js"},79461:(e,t,i)=>{e.exports=i.p+"263f7107e9357b1c91997e1a21b59ff5.js"},17002:(e,t,i)=>{e.exports=i.p+"0f418117fac55a859631143ad7d0e833.js"},16358:(e,t,i)=>{e.exports=i.p+"4b425eb8188febc5a89674b89a72d296.js"},92358:(e,t,i)=>{e.exports=i.p+"7d3181e5ababe06834584618705eb4e6.js"},57496:(e,t,i)=>{e.exports=i.p+"af302c14557e2d4ea99ba5d5151b656b.js"},7905:(e,t,i)=>{e.exports=i.p+"7ef082035f74b3d7324f95a7498ea656.js"},34441:(e,t,i)=>{e.exports=i.p+"34b3249d58303435b894a43d3776a5c3.js"},53703:(e,t,i)=>{e.exports=i.p+"4eed3725a00fc2bab78accdb014b7826.js"},61531:(e,t,i)=>{e.exports=i.p+"a98ead014d010899b35ee25c7c225542.js"},23679:(e,t,i)=>{e.exports=i.p+"82fed7ec74be91e0db61c500d9c6d7ee.js"},42478:(e,t,i)=>{e.exports=i.p+"2ddd0346681f9f12fd3a191245aa41df.js"},62926:(e,t,i)=>{e.exports=i.p+"d04707d65591e86810ebc56d48b10810.js"},15460:(e,t,i)=>{e.exports=i.p+"fc00657a30e4c8d53e47374ba0b1e8bf.js"},47051:(e,t,i)=>{e.exports=i.p+"f90003058d7087f15baa27b80bf08c1d.js"},43566:(e,t,i)=>{e.exports=i.p+"2ff54aa3c655216f360438bc7f5b181a.js"},85992:(e,t,i)=>{e.exports=i.p+"47541c23870e955fff15de4be490ba74.js"},66846:(e,t,i)=>{e.exports=i.p+"d30fa4070abd6929228505790744e180.js"},94158:(e,t,i)=>{e.exports=i.p+"c45445ab45defa960329c6f8e6224e57.js"},8164:(e,t,i)=>{e.exports=i.p+"4c2816c26725f7aae5b490142e31112f.js"},97214:(e,t,i)=>{e.exports=i.p+"244b1a234ec1728d0268214de601449d.js"},99193:(e,t,i)=>{e.exports=i.p+"f4b5e6253813413316fa56c85d891303.js"},27036:(e,t,i)=>{e.exports=i.p+"d348e85dc2ed1ebfe2efcb918cb4a10f.js"},61145:(e,t,i)=>{e.exports=i.p+"5da9145440d57c9b84d469253e84898d.js"},9724:(e,t,i)=>{e.exports=i.p+"c32ec7d45ccd947b98fe458a8ca1405b.js"},23094:(e,t,i)=>{e.exports=i.p+"dbd05051a3ecf6b10e2f7b8904153f2d.js"},19999:(e,t,i)=>{e.exports=i.p+"5a67fdd5293af0a35defd2574c05cd04.js"},12562:(e,t,i)=>{e.exports=i.p+"09563004132aabcfcc186943555a92a1.js"},41995:(e,t,i)=>{e.exports=i.p+"3f758ea78954547fed0a8d999691dd7c.js"},52699:(e,t,i)=>{e.exports=i.p+"b98206b2175363f1150c074608603942.js"},71367:(e,t,i)=>{e.exports=i.p+"365b89ceec577ebec0a39c938c2363f0.js"},50951:(e,t,i)=>{e.exports=i.p+"a2d3450d9a39c72312a0afa486269a02.js"},79636:(e,t,i)=>{e.exports=i.p+"a164d0e40c4dfa485dcf8e6d5258d767.js"},58279:(e,t,i)=>{e.exports=i.p+"cf90a39d245bf7e6c1b41c7a9a28f0a1.js"},5765:(e,t,i)=>{e.exports=i.p+"12b520593765ef7e714d7fb3764633ed.js"},39258:(e,t,i)=>{e.exports=i.p+"b0071564b0854c39e3de8b99d66e4dfd.js"},42583:(e,t,i)=>{e.exports=i.p+"80a171b7595d1161735e23dec8efddd6.js"},50149:(e,t,i)=>{e.exports=i.p+"1abc9efccf77fd4527d1c2fc85d87e04.js"},2726:(e,t,i)=>{e.exports=i.p+"28acb3b48578dfd30dd555fff7c822f7.js"},14009:(e,t,i)=>{e.exports=i.p+"57f9654d8ecdebfb02c636e1889af2e4.js"},36877:(e,t,i)=>{e.exports=i.p+"6f09754fd684f82e6c06ae526d15ac80.js"},75599:(e,t,i)=>{e.exports=i.p+"f0548260c0ac6b0e7cdb8909df1a5333.js"},26744:(e,t,i)=>{e.exports=i.p+"bac1da6651107290d1f5c0454d65f51e.js"},85396:(e,t,i)=>{e.exports=i.p+"d1efdca26800423a363b769b1834cfcf.js"},42893:(e,t,i)=>{e.exports=i.p+"c0736a7477d7aac4c669bb94ccae25d9.js"},33665:(e,t,i)=>{e.exports=i.p+"c7c768809bd878e5b62da5b21575c1a8.js"},89030:(e,t,i)=>{e.exports=i.p+"37afa466cdb7fa8fc2e043164d48f29e.js"},17847:(e,t,i)=>{e.exports=i.p+"21245ec9c63e73d83a01441226f0651d.js"},18864:(e,t,i)=>{e.exports=i.p+"4d143a2d103a9e376a9e3b55e680eef7.js"},7251:(e,t,i)=>{e.exports=i.p+"baa5bf4cfefed057a4657a1b02cfa114.js"},69933:(e,t,i)=>{e.exports=i.p+"1324f89bd8db0bae85b79b7f90f6c119.js"},10647:(e,t,i)=>{e.exports=i.p+"866bf6ca5057dcb24503761af061d486.js"},68591:(e,t,i)=>{e.exports=i.p+"b1ac30076824f72cdff7ea29ae0b6801.js"},35661:(e,t,i)=>{e.exports=i.p+"5c96efcfd419a70a93c96557979bc66d.js"},69423:(e,t,i)=>{e.exports=i.p+"b6a6a4adaab4f09a7835ff64a5096198.js"},10857:(e,t,i)=>{e.exports=i.p+"6511453710d760c2682567b40ddb3301.js"},97906:(e,t,i)=>{e.exports=i.p+"010d0560a00a032c33da819e3c86596a.js"},82198:(e,t,i)=>{e.exports=i.p+"8685c29b95a8295b28d826dd1c84a00b.js"},58200:(e,t,i)=>{e.exports=i.p+"114c58e47951fe3f6d25f683e0cd54e7.js"},9904:(e,t,i)=>{e.exports=i.p+"c631c95d9019218dfd22d028f215e1d1.js"},52745:(e,t,i)=>{e.exports=i.p+"aa0619cbb003e1dd873d027494aa84c4.js"},297:(e,t,i)=>{e.exports=i.p+"ee694c1bcbdc9439e50f816c39fd1023.js"},3475:(e,t,i)=>{e.exports=i.p+"a2a705f6bc3a6827d6c94c5978aec36d.js"},18613:(e,t,i)=>{e.exports=i.p+"64c45b6610e353ba59a58afc6dd090ca.js"},63643:(e,t,i)=>{e.exports=i.p+"c7d34fa67452aa932714bde5be811755.js"},49288:(e,t,i)=>{e.exports=i.p+"ec32839f8f3353e66b85450525fa3114.js"},77374:(e,t,i)=>{e.exports=i.p+"2b2fe1a34cdf81c656a47e493ca9d658.js"},2449:(e,t,i)=>{e.exports=i.p+"d2a00e1726c71ca10fbaf4b9c4374458.js"},19934:(e,t,i)=>{e.exports=i.p+"2267d20fd89c81a461e38abecdb8fcdc.js"},24583:(e,t,i)=>{e.exports=i.p+"72b9dbd845087db7875bce3ed63af440.js"},1418:(e,t,i)=>{e.exports=i.p+"e6fb5287a46e030336c006e3f50ade3a.js"},14129:(e,t,i)=>{e.exports=i.p+"89d3c35a5ef97a600927b477a9ba06b4.js"},26363:(e,t,i)=>{e.exports=i.p+"cda6c5c52fa5d595982da0fac9da25a5.js"},97439:(e,t,i)=>{e.exports=i.p+"23da8ba64540ff4aa68a34d3445db680.js"},60832:(e,t,i)=>{e.exports=i.p+"25894751679e07fd95b21d0d3f6c8c8b.js"},3887:(e,t,i)=>{e.exports=i.p+"7c1cd1223bd45600763f8c152ad167d5.js"},58971:(e,t,i)=>{e.exports=i.p+"aaddd877950d1e3bf1b3ef0fc0ff596e.js"},50641:(e,t,i)=>{e.exports=i.p+"3df92508d7112d83474f31fe9590e289.js"},66774:(e,t,i)=>{e.exports=i.p+"d2fe7592ff2fdda099b2b6355abe8c06.js"},70726:(e,t,i)=>{e.exports=i.p+"e6fae0b04a3000a57f22bb25325c8afe.js"},13378:(e,t,i)=>{e.exports=i.p+"8f5997c65fc8937aa89d15d9a7237f63.js"},31033:(e,t,i)=>{e.exports=i.p+"b6df2278bd475169749bab512944b7ec.js"},16178:(e,t,i)=>{e.exports=i.p+"47f0fbf038314894ac52f2d67466b5e9.js"},3434:(e,t,i)=>{e.exports=i.p+"595aef8d8b0a2017e2fc27db5703e0d1.js"},19366:(e,t,i)=>{e.exports=i.p+"adc5e81257ed3f8d70d03cf79150eec1.js"},64117:(e,t,i)=>{e.exports=i.p+"0a858573915ab9b03fe79f98f8c51a04.js"},26979:(e,t,i)=>{e.exports=i.p+"0731d7568a06d2e28351781370bc52bb.js"},7945:(e,t,i)=>{e.exports=i.p+"cb4175466ea600940f2927fa03a217e8.js"},94928:(e,t,i)=>{e.exports=i.p+"88bbfb9fdb8730ffc23f546b42d8d620.js"},35545:(e,t,i)=>{e.exports=i.p+"5d46734b57c7408a41473abcd515b64c.js"},4806:(e,t,i)=>{e.exports=i.p+"5e3f006db26e9b277b1bdbc130611a14.js"},50965:(e,t,i)=>{e.exports=i.p+"c40023acde0f3d5f4806f5fccbb4284b.js"},58322:(e,t,i)=>{e.exports=i.p+"25718a469574ade47e23567d8c543169.js"},16626:(e,t,i)=>{e.exports=i.p+"7493f0c3c9bf268d6ad785019d993dd7.js"},72363:(e,t,i)=>{e.exports=i.p+"e6cf8898b285b71e2abe832717ac7060.js"},53930:(e,t,i)=>{e.exports=i.p+"7bd84be066027e61c84c9c2aa9543c2a.js"},64205:(e,t,i)=>{e.exports=i.p+"c1bc72d79cc6161590fc01c6b139fccd.js"},58488:(e,t,i)=>{e.exports=i.p+"8361542d34c46713c9aff6c4ce65a9a3.js"},61947:(e,t,i)=>{e.exports=i.p+"07101530302fe1d03dcd731992f7a899.js"},99897:(e,t,i)=>{e.exports=i.p+"fd5e2efd3b2d047abe8473f99c650a35.js"},46405:(e,t,i)=>{e.exports=i.p+"f80efec9a63094f19edae0480a0f2cd8.js"},45794:(e,t,i)=>{e.exports=i.p+"b20056c149af6b50c851ecfff90e0ccb.js"},89010:(e,t,i)=>{e.exports=i.p+"6903d8ef977a1424c4e2eb22b96feb77.js"},7535:(e,t,i)=>{e.exports=i.p+"8423f61a6b43ebee39273fd08e332d47.js"},27109:(e,t,i)=>{e.exports=i.p+"75bffda9455d77087f34708ac4e85371.js"},69601:(e,t,i)=>{e.exports=i.p+"c797511423f91a877e7fdffa74d015cb.js"},13889:(e,t,i)=>{e.exports=i.p+"4639c30a609d986a255ccc684404527e.js"},42317:(e,t,i)=>{e.exports=i.p+"16563bfaf4741097d38cc6ce3ccc1a2d.js"},80577:(e,t,i)=>{e.exports=i.p+"6829741216574c4e654ff103fa90d14f.js"},37154:(e,t,i)=>{e.exports=i.p+"4ceabd28d8dc751f41002ebf2b6fed88.js"},26504:(e,t,i)=>{e.exports=i.p+"b02d982ccb1011197a5a24800b178a0a.js"},55240:(e,t,i)=>{e.exports=i.p+"1441681e52f3ae9ab33afbc5517359a0.js"},66816:(e,t,i)=>{e.exports=i.p+"44701e25bb6f2ab9ff18343f2357d1b0.js"},78332:(e,t,i)=>{e.exports=i.p+"2f055ac4066041b9008dd6aebf9df34b.js"},44971:(e,t,i)=>{e.exports=i.p+"d542dda7308361c34af2afb9b70d755a.js"},41072:(e,t,i)=>{e.exports=i.p+"a4bedde07e392f8ebf64341b61f75df2.js"},42820:(e,t,i)=>{e.exports=i.p+"77aaca51c1c32acaf32656d45f4dc017.js"},68089:(e,t,i)=>{e.exports=i.p+"725da29f1643c2263a437c08a1454aea.js"},92688:(e,t,i)=>{e.exports=i.p+"efc14cdf19554635e477781704353ec2.js"},92950:(e,t,i)=>{e.exports=i.p+"eaa55a522fb2cb2f0287711f42344984.js"},3092:(e,t,i)=>{e.exports=i.p+"b808fb222140a85b23ebbe0fffa906d9.js"},89780:(e,t,i)=>{e.exports=i.p+"e874d975c9128dc6eb9a513d088bed9f.js"},91763:(e,t,i)=>{e.exports=i.p+"e7e1a807af3160b342e0a3550cf8f7c5.js"},61743:(e,t,i)=>{e.exports=i.p+"48e9351c5623d4da657ce7d5d0267ea6.js"},52545:(e,t,i)=>{e.exports=i.p+"bb5bab7a675544fe31ddb7f4a77dffb9.js"},18396:(e,t,i)=>{e.exports=i.p+"6fd6a6ddbcbbebe735c9d21e594203ec.js"},32343:(e,t,i)=>{e.exports=i.p+"23bb1a9f279e7a732bfd405350aab114.js"},25860:(e,t,i)=>{e.exports=i.p+"222d52530e9db0a0ec565c6306c5db35.js"},74623:(e,t,i)=>{e.exports=i.p+"1c57b3481f295105588972ffa1305521.js"},39037:(e,t,i)=>{e.exports=i.p+"54b3396acd2c700969248de4b20cbf7c.js"},25581:(e,t,i)=>{e.exports=i.p+"6c67587c2093ac3a19da9f2196e040b7.js"},84039:(e,t,i)=>{e.exports=i.p+"5a496ae20cc576bef1d35972548207cf.js"},23248:(e,t,i)=>{e.exports=i.p+"5e55b301888460bd06c8e26d1011e01a.js"},80428:(e,t,i)=>{e.exports=i.p+"03487ba89c7b63069d63c1b3802a472c.js"},55823:(e,t,i)=>{e.exports=i.p+"b3bb2c8deddd8c2afcf73f6f5d711596.js"},3731:(e,t,i)=>{e.exports=i.p+"64d6924350bd7706850cdc0dcc76ccf6.js"},26557:(e,t,i)=>{e.exports=i.p+"b1f3f77a9279cdb38846ebe13c3438bc.js"},27675:(e,t,i)=>{e.exports=i.p+"1fee62e3e043728a265935971fa26200.js"},63790:(e,t,i)=>{e.exports=i.p+"58598705e7012f4ca1eb1dd21d3c59a5.js"},24689:(e,t,i)=>{e.exports=i.p+"70074e0c785c9a808dea76c7c7d17af3.js"},22505:(e,t,i)=>{e.exports=i.p+"0ec4bf56a876c2bf34ea174c584ce628.js"},39822:(e,t,i)=>{e.exports=i.p+"50c073327491a2ed3bfa2ebb466c4204.js"},67986:(e,t,i)=>{e.exports=i.p+"909adc4a16e0f97d869e3dd16d561430.js"},59212:(e,t,i)=>{e.exports=i.p+"06d958315fc6cdbb28576b03e43203aa.js"},48191:(e,t,i)=>{e.exports=i.p+"c51840077c684be0e7e13339f85cd4a9.js"},7879:(e,t,i)=>{e.exports=i.p+"f79630d85284a7f6dadc25c1d256af0a.js"},53737:(e,t,i)=>{e.exports=i.p+"663234c150f2097f3812c6065491497c.js"},9067:(e,t,i)=>{e.exports=i.p+"7e4099fc2d04c7c1cf96892b962ba4ec.js"},50147:(e,t,i)=>{e.exports=i.p+"6c0a75dc5671c3f237a79f6e45b9891c.js"},61883:(e,t,i)=>{e.exports=i.p+"aa5623ec68d23fedb9c9c115c7d99063.js"},38572:(e,t,i)=>{e.exports=i.p+"4ef80ee74467e0297eec3cc03092da01.js"},54135:(e,t,i)=>{e.exports=i.p+"d83f2acd25388452582e5a4c727255b0.js"},43174:(e,t,i)=>{e.exports=i.p+"4bf3bc1fbdd26ac698fef1bdf26e3ff4.js"},92539:(e,t,i)=>{e.exports=i.p+"70286c33cab463fd576766adecd2d5d9.js"},55250:(e,t,i)=>{e.exports=i.p+"1533058f0ce13acdaa8d5bdc7d147bef.js"},70490:(e,t,i)=>{e.exports=i.p+"8cb83aa3fea85e950c29450b8237fb72.js"},51805:(e,t,i)=>{e.exports=i.p+"03aae8272914723a7bf85b984385032c.js"},66143:(e,t,i)=>{e.exports=i.p+"029ed9161a8d24a9c2ba97124020989d.js"},96850:(e,t,i)=>{e.exports=i.p+"cb652f200fc3dd740b2e7f678a9272ea.js"},50957:(e,t,i)=>{e.exports=i.p+"d43ad5f9bad9a042b49b2592c7639c28.js"},55154:(e,t,i)=>{e.exports=i.p+"d78d3b050ea95b068380d975fd413fd7.js"},61523:(e,t,i)=>{e.exports=i.p+"dfb7dd1fab06b2403f76c23f80b15738.js"},17480:(e,t,i)=>{e.exports=i.p+"28785bea435918d49b290d27bf660baa.js"},57570:(e,t,i)=>{e.exports=i.p+"4736a562251eeaea46dd06892b489f35.js"},9179:(e,t,i)=>{e.exports=i.p+"2dd82c65030101b60dffccedd8741c6e.js"},38639:(e,t,i)=>{e.exports=i.p+"ccde58de5468dd353dbee74d631ebdf0.js"},38096:(e,t,i)=>{e.exports=i.p+"e61779df91186b23e7adf2d1968b2708.js"},81889:(e,t,i)=>{e.exports=i.p+"87932c8321c9985ed3b6979e86d2a50e.js"},19478:(e,t,i)=>{e.exports=i.p+"3567d1ea443427e944a6f189a0898819.js"},56639:(e,t,i)=>{e.exports=i.p+"c80e89199aef31e48addb2b35ea96365.js"},46754:(e,t,i)=>{e.exports=i.p+"5b6a626249d0bc43e412fffa6a9ee177.js"},14349:(e,t,i)=>{e.exports=i.p+"43a0e099f8283dc1c1c6bbd39148d98d.js"},57204:(e,t,i)=>{e.exports=i.p+"57f4109bd1f06be4dc2bcb8ff7eaf1e5.js"},62473:(e,t,i)=>{e.exports=i.p+"cd9a17f94a922c7c88000b1b3cdd67df.js"},22699:(e,t,i)=>{e.exports=i.p+"755114145e5b97e5571a160a39e716db.js"},60380:(e,t,i)=>{e.exports=i.p+"3f55ba1c6515db2f98bb996c1a5bc9e3.js"},3785:(e,t,i)=>{e.exports=i.p+"e9c8f7e13e00284ce126890bf7ac46fd.js"},56051:(e,t,i)=>{e.exports=i.p+"e0adad8a8579bf99f3e22f7c214a5c64.js"},63795:(e,t,i)=>{e.exports=i.p+"3b190e5159c72fb7e27271956772bcba.js"},21666:(e,t,i)=>{e.exports=i.p+"1e4131e1241a5b81d54c7d9cb66b0e87.js"},96014:(e,t,i)=>{e.exports=i.p+"656f53e1b4c6e37a31799737faf6d639.js"},83992:(e,t,i)=>{e.exports=i.p+"6d38cef4a006e6cfe54a6117aba7b600.js"},17841:(e,t,i)=>{e.exports=i.p+"8d9bb1799d9b98db107e84f10132e17f.js"},83129:(e,t,i)=>{e.exports=i.p+"707fa1de4d2096da1951c4bc9d21cb6d.js"},68025:(e,t,i)=>{e.exports=i.p+"02d5c4961ca855a88b1cd3e1b7fa7aa2.js"},46087:(e,t,i)=>{e.exports=i.p+"b881dca9d9a80f61d87374b4bd5a2dd5.js"},66818:(e,t,i)=>{e.exports=i.p+"ffd3b83e8b5878f4785591ff54b1dfff.js"},28327:(e,t,i)=>{e.exports=i.p+"88e2feda80ac8cfb28f1dc0ec833b40d.js"},25009:(e,t,i)=>{e.exports=i.p+"64a5f4d62507d032038dcd76d15188e1.js"},33568:(e,t,i)=>{e.exports=i.p+"aa0eee504d52a12d3a30bbd523afcc34.js"},71353:(e,t,i)=>{e.exports=i.p+"cf26dd07f19bcb5b7efbf057a6cfeb8f.js"},94914:(e,t,i)=>{e.exports=i.p+"cbdbd623038183a8c068dd24ecd90682.js"},98784:(e,t,i)=>{e.exports=i.p+"104959bdb953a3792a203e98d2bf530f.js"},41650:(e,t,i)=>{e.exports=i.p+"4d8cb7033879cb7fcc7a43798e2bde22.js"},84301:(e,t,i)=>{e.exports=i.p+"58aab872dbdb5e1607076e1935130e03.js"},21159:(e,t,i)=>{e.exports=i.p+"ecdb4966f685f3e44b1f28fae46827a3.js"},19900:(e,t,i)=>{e.exports=i.p+"5d3314103b00c8ea165c6f9f6757f794.js"},77584:(e,t,i)=>{e.exports=i.p+"6a7bf4fb4484f6f48d8e4337f126a61d.js"},26610:(e,t,i)=>{e.exports=i.p+"af959c2a870f08dd8abccae97c9b9bae.js"},43273:(e,t,i)=>{e.exports=i.p+"d5f79987405c2169278f8de37bcc9d05.js"},88332:(e,t,i)=>{e.exports=i.p+"de0fd4fd7c2d7a4887cbc99eed91f797.js"},8536:(e,t,i)=>{e.exports=i.p+"740f4264cd757fcf28331fd30daf295e.js"},40456:(e,t,i)=>{e.exports=i.p+"f980fd09c34c277299e2d3f83aebdba5.js"},13946:(e,t,i)=>{e.exports=i.p+"e2b38a8393be2cf23f3894ace3efb1c3.js"},53801:(e,t,i)=>{e.exports=i.p+"27730a0bdc6f430cc85049a46a73a029.js"},4977:(e,t,i)=>{e.exports=i.p+"f5bea0e1099339b99b21ee2d3c0fc489.js"},40782:(e,t,i)=>{e.exports=i.p+"15f3800d33b854ba476c9daf1b9e0326.js"},56622:(e,t,i)=>{e.exports=i.p+"211511e7b374f57ad31acaf49dbdccb1.js"},53899:(e,t,i)=>{e.exports=i.p+"54560f13b36626237959e93b7771a484.js"},75072:(e,t,i)=>{e.exports=i.p+"582e24f5ba929e358fadfc7be4c18025.js"},28719:(e,t,i)=>{e.exports=i.p+"37ee3b5201ae2e2dc5dc8b1b20ad900e.js"},50239:(e,t,i)=>{e.exports=i.p+"cf3f6b1c74c72cb5d02870022dbc9f94.js"},45591:(e,t,i)=>{e.exports=i.p+"9696a4229fb787eeb25b26f1274b75ee.js"},31053:(e,t,i)=>{e.exports=i.p+"cf188b3f83735389d47bb12fc9f7069a.js"},68002:(e,t,i)=>{e.exports=i.p+"ba6b8b3e06cd9d0aee9c69278ee84647.js"},60186:(e,t,i)=>{e.exports=i.p+"130340e2c62b9e858f186dab5f491e55.js"},8262:(e,t,i)=>{e.exports=i.p+"6faa9e5f2a0122d2333fa450337a09b0.js"},14457:(e,t,i)=>{e.exports=i.p+"2fc0239242a898632ca8aa451cb930c2.js"},11506:(e,t,i)=>{e.exports=i.p+"92f4aab5c66f6269c7054c8fbcb3de13.js"},69287:(e,t,i)=>{e.exports=i.p+"63596b4896732fb322ab0496b4be1e74.js"},83935:(e,t,i)=>{e.exports=i.p+"5352ecd8e5f1a2637b48e18cc406edb1.js"},89018:(e,t,i)=>{e.exports=i.p+"5fb6059ab5d7abab7a74eb73028a3aeb.js"},86066:(e,t,i)=>{e.exports=i.p+"5fedbf948ed123687f77167fac1faf8b.js"},6132:(e,t,i)=>{e.exports=i.p+"26fb247a2e0630e1f435cb4d91ec51fd.js"},64543:(e,t,i)=>{e.exports=i.p+"25eda4bb98e40a82cfd5b4bf9fbc06ec.js"},11105:(e,t,i)=>{e.exports=i.p+"3b6e7dc98c47eeafd851ca5072db4be6.js"},55873:(e,t,i)=>{e.exports=i.p+"cbdc4ca43a8c940a6c3f59a8b6f17df5.js"},6214:(e,t,i)=>{e.exports=i.p+"3c5b59a666c5d39d9ba9cc054d36a410.js"},82730:(e,t,i)=>{e.exports=i.p+"13eda3507db9cbfb400f46b9b3ff6553.js"},60835:(e,t,i)=>{e.exports=i.p+"894edcaf39c3c95818e3949d737ed459.js"},80682:(e,t,i)=>{e.exports=i.p+"0a1d9862d917663419ac2dd2e8193267.js"},22554:(e,t,i)=>{e.exports=i.p+"51f903c5ce5284a63196247cffb5ca40.js"},39444:(e,t,i)=>{e.exports=i.p+"e4917fa7632b01d28e99304d32d989f7.js"},58157:(e,t,i)=>{e.exports=i.p+"805cb6232d7a9fa46025d48a43622ecf.js"},87223:(e,t,i)=>{e.exports=i.p+"d79b3962938d65fb85c6f844e86d92d9.js"},94257:(e,t,i)=>{e.exports=i.p+"10132993df2cf9c9423b53a8a44379ab.js"},48119:(e,t,i)=>{e.exports=i.p+"5fc5c77d4df4f5d77f8530f6b23ecd1e.js"},19949:(e,t,i)=>{e.exports=i.p+"cf9c7cbfc2b609b9ae59daeab82719c4.js"},16048:(e,t,i)=>{e.exports=i.p+"870184211838006214be1c23c98672fc.js"},82453:(e,t,i)=>{e.exports=i.p+"d5a6140d581e5c4eb200259ce372f40b.js"},43448:(e,t,i)=>{e.exports=i.p+"a533e643002830be2da76c9527265860.js"},15186:(e,t,i)=>{e.exports=i.p+"83387cb17a7680f59240e7b399e3ac2b.js"},88298:(e,t,i)=>{e.exports=i.p+"37172facd8a534a38f378ca2a9c7c11b.js"},51573:(e,t,i)=>{e.exports=i.p+"a934b622dd8bdcdcdc1dde985a07ac14.js"},1602:(e,t,i)=>{e.exports=i.p+"460c67d8fe31ef229704bd5ab6d1dd26.js"},94334:(e,t,i)=>{e.exports=i.p+"24a3ff38afde257888d755ece9bfd704.js"},18999:(e,t,i)=>{e.exports=i.p+"078dd0bd08c93b1512e3d1b777591b21.js"},8225:(e,t,i)=>{e.exports=i.p+"170487867de05784a96608617bdd544d.js"},72551:(e,t,i)=>{e.exports=i.p+"5861dfe4f2c7823623e82d0619c5bf06.js"},81545:(e,t,i)=>{e.exports=i.p+"2272c6632c52c3e402ab27b8045ab8f1.js"},61005:(e,t,i)=>{e.exports=i.p+"03980cb12dacd26148c22bb61fce440f.js"},47544:(e,t,i)=>{e.exports=i.p+"58c35e5c73bbc1664bbd67c570342aa0.js"},79202:(e,t,i)=>{e.exports=i.p+"fd5bc50b18c9f46380cbe5ec1ac2127b.js"},9032:(e,t,i)=>{e.exports=i.p+"da55f4fe3daed3f79fc4565668ecf7dd.js"},32257:(e,t,i)=>{e.exports=i.p+"4e389cce6fb8f78845fab249bce43c0b.js"},98051:(e,t,i)=>{e.exports=i.p+"17dc98279d24649d3ca77cbce8c44e83.js"},87393:(e,t,i)=>{e.exports=i.p+"a1c8660c5bcc6b6a43a7fb3c351174d9.js"},66154:(e,t,i)=>{e.exports=i.p+"a4d638b976f02f35740be031f996e088.js"},49495:(e,t,i)=>{e.exports=i.p+"e4968d8264b40c14f123f28419eb456d.js"},25791:(e,t,i)=>{e.exports=i.p+"ddbc961769cd2ff4d4a7a136168ebf4c.js"},29601:(e,t,i)=>{e.exports=i.p+"3b544bb2c5a4e7b225a4b50235a0fd6d.js"},10920:(e,t,i)=>{e.exports=i.p+"1034e3807d1bcf55cb564491950237ab.js"},6848:(e,t,i)=>{e.exports=i.p+"b402b938ca2da72e0984a1360eda5897.js"},84980:(e,t,i)=>{e.exports=i.p+"87d6bf8becf2d5ebe2f71fda95a313ea.js"},22147:(e,t,i)=>{e.exports=i.p+"5f3ce6efab3c679ec1ad25ab0b3f6b2f.js"},10655:(e,t,i)=>{e.exports=i.p+"53e3600928916423671f3388e2d67844.js"},52854:(e,t,i)=>{e.exports=i.p+"40dc555a17f1c85020333a41f01dd9ba.js"},87161:(e,t,i)=>{e.exports=i.p+"1b15b9f88acaf59b96e59c6b5f32da12.js"},28337:(e,t,i)=>{e.exports=i.p+"fdf4d851b44839d8fdfa77b3419bce19.js"},83564:(e,t,i)=>{e.exports=i.p+"191feb6103c36b202bc01ba262916cdf.js"},80673:(e,t,i)=>{e.exports=i.p+"621b99ed1a029c36b4e91ec35f36c344.js"},74944:(e,t,i)=>{e.exports=i.p+"b1170472ae4b50e3b0070eb991e502fe.js"},32167:(e,t,i)=>{e.exports=i.p+"9807cf1e443a7440371904b6525f37eb.js"},69459:(e,t,i)=>{e.exports=i.p+"9b1fd9cf4206cc32e84150c49707d811.js"},68967:(e,t,i)=>{e.exports=i.p+"d7d616d4aa8fd3f51d681242853dcde9.js"},48052:(e,t,i)=>{e.exports=i.p+"e6ad50b520736b595970c9e07029c3f1.js"},24675:(e,t,i)=>{e.exports=i.p+"60340be8eea1d704a17f399b3c3f9577.js"},33118:(e,t,i)=>{e.exports=i.p+"7080d2a1db1608264a6d9d9fbaf2cce8.js"},54173:(e,t,i)=>{e.exports=i.p+"e97cfa120fde26da0359ca29afaf3171.js"},90283:(e,t,i)=>{e.exports=i.p+"f326f2f263b1498fedbe1d07d7254d10.js"},52785:(e,t,i)=>{e.exports=i.p+"962969a46fefcace3305abd4d6e14a2e.js"},63104:(e,t,i)=>{e.exports=i.p+"b33ef9b4202539d3690251cb8213a034.js"},62061:(e,t,i)=>{e.exports=i.p+"9671c350e11f1569edb5066cbfeb3334.js"},87872:(e,t,i)=>{e.exports=i.p+"8ed58ed9c7e1cb1ae1f2830d29011ffb.js"},49873:(e,t,i)=>{e.exports=i.p+"dbc87324ecf271d088a2ab0823de9c5d.js"},10172:(e,t,i)=>{e.exports=i.p+"59cc05504a1c823b6d4796bf6b430822.js"},44206:(e,t,i)=>{e.exports=i.p+"b20cd9acf45420fcacfd923754185663.js"},29274:(e,t,i)=>{e.exports=i.p+"894720f1519e5eb34e1b4f33fca7a9dd.js"},19647:(e,t,i)=>{e.exports=i.p+"7dead8e2fcacc316bbfa632cd9f1c9bb.js"},82434:(e,t,i)=>{e.exports=i.p+"7735af777659608bcd8cd6525e3bbe58.js"},82776:(e,t,i)=>{e.exports=i.p+"b0803f33b602bd3b26be70f259e38cee.js"},98557:(e,t,i)=>{e.exports=i.p+"e3ba4b654313ae98884a6c9044197e09.js"},37479:(e,t,i)=>{e.exports=i.p+"73c78b067c792ea8c737746e4671d3e0.js"},99204:(e,t,i)=>{e.exports=i.p+"9600fed6a4508afbbcd2c75923d953c3.js"},77877:(e,t,i)=>{e.exports=i.p+"2183252fe9e1b88fcf2bc454d6fd9273.js"},35056:(e,t,i)=>{e.exports=i.p+"b2742fab9568b63c2274698af5d381fc.js"},64262:(e,t,i)=>{e.exports=i.p+"5ede1aebde9d4e5f5cce2db3044495c7.js"},36529:(e,t,i)=>{e.exports=i.p+"08b9f3e305b5e3e0b81f7848fa7f3b6b.js"},98437:(e,t,i)=>{e.exports=i.p+"91bd2b106800bd7812e2ab5a5fea985b.js"},7722:(e,t,i)=>{e.exports=i.p+"11b2d52156942feeb87b7c608276c49b.js"},79021:(e,t,i)=>{e.exports=i.p+"243c0c0572ab9866e02e18821558a1c5.js"},21197:(e,t,i)=>{e.exports=i.p+"1c02ec6ec024eee3ebb6b34fa8ff316f.js"},77669:(e,t,i)=>{e.exports=i.p+"6abb884bd4f1a54529c00b58c14741cc.js"},37533:(e,t,i)=>{e.exports=i.p+"bc0551f89df16ee262a67c0431544a9e.js"},45626:(e,t,i)=>{e.exports=i.p+"1549fe09fd6b44aca96e2b1b7cbd93d0.js"},46527:(e,t,i)=>{e.exports=i.p+"90bafd962205e96c3285d27cbf95c55c.js"},7406:(e,t,i)=>{e.exports=i.p+"2f5be3e3e9ab852d217168220854ea9b.js"},38267:(e,t,i)=>{e.exports=i.p+"ec2d138afc9cc9e81c4c6ef36ed55228.js"},8845:(e,t,i)=>{e.exports=i.p+"7a9a1dced0e327dc9cb1728bef25641d.js"},44834:(e,t,i)=>{e.exports=i.p+"957970f69802c38a9092b9b6264cc1b9.js"},95498:(e,t,i)=>{e.exports=i.p+"f42342b39da2c42adc65ebcf52839f90.js"},9061:(e,t,i)=>{e.exports=i.p+"e56fe7e8042772742953d0daa47cd621.js"},79580:(e,t,i)=>{e.exports=i.p+"99ade8b6895e3a1c3d6eb70583cb924e.js"},51502:(e,t,i)=>{e.exports=i.p+"9ff6d4a6592c0cb7d0b939113c3a6b31.js"},82266:(e,t,i)=>{e.exports=i.p+"f3c7b9d832aa442df3d140f7697b4f62.js"},37779:(e,t,i)=>{e.exports=i.p+"a5d364d12a8f7691339c497b2e725bcf.js"},35880:(e,t,i)=>{e.exports=i.p+"8ba6618773c9d8d0b4f6ecb785651e2c.js"},36722:(e,t,i)=>{e.exports=i.p+"1cd3d09b5303cc37fa337225ed6a9132.js"},76394:(e,t,i)=>{e.exports=i.p+"e07a0b284934d3a0e8c02c508edc9df1.js"},10754:(e,t,i)=>{e.exports=i.p+"aedbf3a3ece39aab8c9f3b3a3779e79b.js"},24174:(e,t,i)=>{e.exports=i.p+"788819e459cdd8c4c1ef565fd303f519.js"},11911:(e,t,i)=>{e.exports=i.p+"2bcf741e1f2cb07989a722a6ba9c2ea7.js"},52334:(e,t,i)=>{e.exports=i.p+"a2c0fcb443c396b30a11fc1682a29c13.js"},24852:(e,t,i)=>{e.exports=i.p+"6f64da239140d00b81d8b6c523e86daf.js"},13840:(e,t,i)=>{e.exports=i.p+"406884d5525e864955e9f5058526aa02.js"},44884:(e,t,i)=>{e.exports=i.p+"1e029a7f1f64457da4f54254d50ac59b.js"},74474:(e,t,i)=>{e.exports=i.p+"bb4d542cb170b3f7b27a42c69262975b.js"},27067:(e,t,i)=>{e.exports=i.p+"b7b7be8216519adf62d75f123f9c6423.js"},33948:(e,t,i)=>{e.exports=i.p+"97e72973d750ecb3bc2e75b75bf63c5b.js"},20425:(e,t,i)=>{e.exports=i.p+"964646d64dd3196a9c27fe302511414a.js"},21836:(e,t,i)=>{e.exports=i.p+"03371bf1d5cbb1eab58e3a0130d1e9c2.js"},36881:(e,t,i)=>{e.exports=i.p+"f7186078e00d958aa2b316483dfc7e1c.js"},83439:(e,t,i)=>{e.exports=i.p+"0794fa2b9c882c72fa7d586069b61055.js"},14984:(e,t,i)=>{e.exports=i.p+"dee58361556310e6b35b33d429437d9a.js"},52980:(e,t,i)=>{e.exports=i.p+"11dc77ef2ea3a04834945a52f7de2072.js"},72426:(e,t,i)=>{e.exports=i.p+"63b15fb6fc8f897b22a4bf72b7e8452a.js"},93890:(e,t,i)=>{e.exports=i.p+"ca1e3283bd4af4e283f689db0ba6d166.js"},43193:(e,t,i)=>{e.exports=i.p+"e8cbe1a0cf7484ae60feb05951aed769.js"},18236:function(e){e.exports=function(){"use strict";var e=function(e){var t=e.addFilter,i=e.utils,n=i.Type,o=i.replaceInString,r=i.toNaturalFileSize;return t("ALLOW_HOPPER_ITEM",(function(e,t){var i=t.query;if(!i("GET_ALLOW_FILE_SIZE_VALIDATION"))return!0;var n=i("GET_MAX_FILE_SIZE");if(null!==n&&e.size>n)return!1;var o=i("GET_MIN_FILE_SIZE");return!(null!==o&&e.sizea)n({status:{main:i("GET_LABEL_MAX_FILE_SIZE_EXCEEDED"),sub:o(i("GET_LABEL_MAX_FILE_SIZE"),{filesize:r(a,".",i("GET_FILE_SIZE_BASE"),i("GET_FILE_SIZE_LABELS",i))})}});else{var l=i("GET_MIN_FILE_SIZE");if(null!==l&&e.sizec)return void n({status:{main:i("GET_LABEL_MAX_TOTAL_FILE_SIZE_EXCEEDED"),sub:o(i("GET_LABEL_MAX_TOTAL_FILE_SIZE"),{filesize:r(c,".",i("GET_FILE_SIZE_BASE"),i("GET_FILE_SIZE_LABELS",i))})}});t(e)}}}))})),{options:{allowFileSizeValidation:[!0,n.BOOLEAN],maxFileSize:[null,n.INT],minFileSize:[null,n.INT],maxTotalFileSize:[null,n.INT],fileValidateSizeFilter:[null,n.FUNCTION],labelMinFileSizeExceeded:["File is too small",n.STRING],labelMinFileSize:["Minimum file size is {filesize}",n.STRING],labelMaxFileSizeExceeded:["File is too large",n.STRING],labelMaxFileSize:["Maximum file size is {filesize}",n.STRING],labelMaxTotalFileSizeExceeded:["Maximum total size exceeded",n.STRING],labelMaxTotalFileSize:["Maximum total file size is {filesize}",n.STRING]}}};return"undefined"!=typeof window&&void 0!==window.document&&document.dispatchEvent(new CustomEvent("FilePond:pluginloaded",{detail:e})),e}()},90521:function(e){e.exports=function(){"use strict";var e=function(e){var t=e.addFilter,i=e.utils,n=i.Type,o=i.isString,r=i.replaceInString,s=i.guesstimateMimeType,a=i.getExtensionFromFilename,l=i.getFilenameFromURL,c=function(e,t){return e.some((function(e){return/\*$/.test(e)?(i=e,(/^[^/]+/.exec(t)||[]).pop()===i.slice(0,-2)):e===t;var i}))},d=function(e,t,i){if(0===t.length)return!0;var n=function(e){var t="";if(o(e)){var i=l(e),n=a(i);n&&(t=s(n))}else t=e.type;return t}(e);return i?new Promise((function(o,r){i(e,n).then((function(e){c(t,e)?o():r()})).catch(r)})):c(t,n)};return t("SET_ATTRIBUTE_TO_OPTION_MAP",(function(e){return Object.assign(e,{accept:"acceptedFileTypes"})})),t("ALLOW_HOPPER_ITEM",(function(e,t){var i=t.query;return!i("GET_ALLOW_FILE_TYPE_VALIDATION")||d(e,i("GET_ACCEPTED_FILE_TYPES"))})),t("LOAD_FILE",(function(e,t){var i=t.query;return new Promise((function(t,n){if(i("GET_ALLOW_FILE_TYPE_VALIDATION")){var o=i("GET_ACCEPTED_FILE_TYPES"),s=i("GET_FILE_VALIDATE_TYPE_DETECT_TYPE"),a=d(e,o,s),l=function(){var e,t=o.map((e=i("GET_FILE_VALIDATE_TYPE_LABEL_EXPECTED_TYPES_MAP"),function(t){return null!==e[t]&&(e[t]||t)})).filter((function(e){return!1!==e})),s=t.filter((function(e,i){return t.indexOf(e)===i}));n({status:{main:i("GET_LABEL_FILE_TYPE_NOT_ALLOWED"),sub:r(i("GET_FILE_VALIDATE_TYPE_LABEL_EXPECTED_TYPES"),{allTypes:s.join(", "),allButLastType:s.slice(0,-1).join(", "),lastType:s[t.length-1]})}})};if("boolean"==typeof a)return a?t(e):l();a.then((function(){t(e)})).catch(l)}else t(e)}))})),{options:{allowFileTypeValidation:[!0,n.BOOLEAN],acceptedFileTypes:[[],n.ARRAY],labelFileTypeNotAllowed:["File is of invalid type",n.STRING],fileValidateTypeLabelExpectedTypes:["Expects {allButLastType} or {lastType}",n.STRING],fileValidateTypeLabelExpectedTypesMap:[{},n.OBJECT],fileValidateTypeDetectType:[null,n.FUNCTION]}}};return"undefined"!=typeof window&&void 0!==window.document&&document.dispatchEvent(new CustomEvent("FilePond:pluginloaded",{detail:e})),e}()},72965:function(e){e.exports=function(){"use strict";function e(e){this.wrapped=e}function t(t){var i,n;function o(i,n){try{var s=t[i](n),a=s.value,l=a instanceof e;Promise.resolve(l?a.wrapped:a).then((function(e){l?o("next",e):r(s.done?"return":"normal",e)}),(function(e){o("throw",e)}))}catch(e){r("throw",e)}}function r(e,t){switch(e){case"return":i.resolve({value:t,done:!0});break;case"throw":i.reject(t);break;default:i.resolve({value:t,done:!1})}(i=i.next)?o(i.key,i.arg):n=null}this._invoke=function(e,t){return new Promise((function(r,s){var a={key:e,arg:t,resolve:r,reject:s,next:null};n?n=n.next=a:(i=n=a,o(e,t))}))},"function"!=typeof t.return&&(this.return=void 0)}function i(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var i=[],n=!0,o=!1,r=void 0;try{for(var s,a=e[Symbol.iterator]();!(n=(s=a.next()).done)&&(i.push(s.value),!t||i.length!==t);n=!0);}catch(e){o=!0,r=e}finally{try{n||null==a.return||a.return()}finally{if(o)throw r}}return i}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}"function"==typeof Symbol&&Symbol.asyncIterator&&(t.prototype[Symbol.asyncIterator]=function(){return this}),t.prototype.next=function(e){return this._invoke("next",e)},t.prototype.throw=function(e){return this._invoke("throw",e)},t.prototype.return=function(e){return this._invoke("return",e)};var n=function(e,t){return s(e.x*t,e.y*t)},o=function(e,t){return s(e.x+t.x,e.y+t.y)},r=function(e,t,i){var n=Math.cos(t),o=Math.sin(t),r=s(e.x-i.x,e.y-i.y);return s(i.x+n*r.x-o*r.y,i.y+o*r.x+n*r.y)},s=function(){return{x:arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,y:arguments.length>1&&void 0!==arguments[1]?arguments[1]:0}},a=function(e,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,n=arguments.length>3?arguments[3]:void 0;return"string"==typeof e?parseFloat(e)*i:"number"==typeof e?e*(n?t[n]:Math.min(t.width,t.height)):void 0},l=function(e){return null!=e},c=function(e,t){return Object.keys(t).forEach((function(i){return e.setAttribute(i,t[i])}))},d=function(e,t){var i=document.createElementNS("http://www.w3.org/2000/svg",e);return t&&c(i,t),i},u={contain:"xMidYMid meet",cover:"xMidYMid slice"},h={left:"start",center:"middle",right:"end"},p=function(e){return function(t){return d(e,{id:t.id})}},f={image:function(e){var t=d("image",{id:e.id,"stroke-linecap":"round","stroke-linejoin":"round",opacity:"0"});return t.onload=function(){t.setAttribute("opacity",e.opacity||1)},t.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",e.src),t},rect:p("rect"),ellipse:p("ellipse"),text:p("text"),path:p("path"),line:function(e){var t=d("g",{id:e.id,"stroke-linecap":"round","stroke-linejoin":"round"}),i=d("line");t.appendChild(i);var n=d("path");t.appendChild(n);var o=d("path");return t.appendChild(o),t}},g={rect:function(e){return c(e,Object.assign({},e.rect,e.styles))},ellipse:function(e){var t=e.rect.x+.5*e.rect.width,i=e.rect.y+.5*e.rect.height,n=.5*e.rect.width,o=.5*e.rect.height;return c(e,Object.assign({cx:t,cy:i,rx:n,ry:o},e.styles))},image:function(e,t){c(e,Object.assign({},e.rect,e.styles,{preserveAspectRatio:u[t.fit]||"none"}))},text:function(e,t,i,n){var o=a(t.fontSize,i,n),r=t.fontFamily||"sans-serif",s=t.fontWeight||"normal",l=h[t.textAlign]||"start";c(e,Object.assign({},e.rect,e.styles,{"stroke-width":0,"font-weight":s,"font-size":o,"font-family":r,"text-anchor":l})),e.text!==t.text&&(e.text=t.text,e.textContent=t.text.length?t.text:" ")},path:function(e,t,i,n){var o;c(e,Object.assign({},e.styles,{fill:"none",d:(o=t.points.map((function(e){return{x:a(e.x,i,n,"width"),y:a(e.y,i,n,"height")}})),o.map((function(e,t){return"".concat(0===t?"M":"L"," ").concat(e.x," ").concat(e.y)})).join(" "))}))},line:function(e,t,i,l){c(e,Object.assign({},e.rect,e.styles,{fill:"none"}));var d=e.childNodes[0],u=e.childNodes[1],h=e.childNodes[2],p=e.rect,f={x:e.rect.x+e.rect.width,y:e.rect.y+e.rect.height};if(c(d,{x1:p.x,y1:p.y,x2:f.x,y2:f.y}),t.lineDecoration){u.style.display="none",h.style.display="none";var g=function(e){var t=Math.sqrt(e.x*e.x+e.y*e.y);return 0===t?{x:0,y:0}:s(e.x/t,e.y/t)}({x:f.x-p.x,y:f.y-p.y}),m=a(.05,i,l);if(-1!==t.lineDecoration.indexOf("arrow-begin")){var A=n(g,m),b=o(p,A),v=r(p,2,b),C=r(p,-2,b);c(u,{style:"display:block;",d:"M".concat(v.x,",").concat(v.y," L").concat(p.x,",").concat(p.y," L").concat(C.x,",").concat(C.y)})}if(-1!==t.lineDecoration.indexOf("arrow-end")){var y=n(g,-m),w=o(f,y),x=r(f,2,w),_=r(f,-2,w);c(h,{style:"display:block;",d:"M".concat(x.x,",").concat(x.y," L").concat(f.x,",").concat(f.y," L").concat(_.x,",").concat(_.y)})}}}},m=function(e,t,i,n,o){"path"!==t&&(e.rect=function(e,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,n=a(e.x,t,i,"width")||a(e.left,t,i,"width"),o=a(e.y,t,i,"height")||a(e.top,t,i,"height"),r=a(e.width,t,i,"width"),s=a(e.height,t,i,"height"),c=a(e.right,t,i,"width"),d=a(e.bottom,t,i,"height");return l(o)||(o=l(s)&&l(d)?t.height-s-d:d),l(n)||(n=l(r)&&l(c)?t.width-r-c:c),l(r)||(r=l(n)&&l(c)?t.width-n-c:0),l(s)||(s=l(o)&&l(d)?t.height-o-d:0),{x:n||0,y:o||0,width:r||0,height:s||0}}(i,n,o)),e.styles=function(e,t,i){var n=e.borderStyle||e.lineStyle||"solid",o=e.backgroundColor||e.fontColor||"transparent",r=e.borderColor||e.lineColor||"transparent",s=a(e.borderWidth||e.lineWidth,t,i);return{"stroke-linecap":e.lineCap||"round","stroke-linejoin":e.lineJoin||"round","stroke-width":s||0,"stroke-dasharray":"string"==typeof n?"":n.map((function(e){return a(e,t,i)})).join(","),stroke:r,fill:o,opacity:e.opacity||1}}(i,n,o),g[t](e,i,n,o)},A=["x","y","left","top","right","bottom","width","height"],b=function(e){var t=i(e,2),n=t[0],o=t[1],r=o.points?{}:A.reduce((function(e,t){return e[t]="string"==typeof(i=o[t])&&/%/.test(i)?parseFloat(i)/100:i,e;var i}),{});return[n,Object.assign({zIndex:0},o,r)]},v=function(e,t){return e[1].zIndex>t[1].zIndex?1:e[1].zIndex2&&void 0!==arguments[2]?arguments[2]:1,n=e.height/e.width,o=1,r=t,s=1,a=n;a>r&&(s=(a=r)/n);var l=Math.max(o/s,r/a),c=e.width/(i*l*s);return{width:c,height:c*t}},k=function(e,t,i,n){var o=n.x>.5?1-n.x:n.x,r=n.y>.5?1-n.y:n.y,s=2*o*e.width,a=2*r*e.height,l=function(e,t){var i=e.width,n=e.height,o=_(i,t),r=_(n,t),s=y(e.x+Math.abs(o.x),e.y-Math.abs(o.y)),a=y(e.x+e.width+Math.abs(r.y),e.y+Math.abs(r.x)),l=y(e.x-Math.abs(r.y),e.y+e.height-Math.abs(r.x));return{width:x(s,a),height:x(s,l)}}(t,i);return Math.max(l.width/s,l.height/a)},S=function(e,t){var i=e.width,n=i*t;return n>e.height&&(i=(n=e.height)/t),{x:.5*(e.width-i),y:.5*(e.height-n),width:i,height:n}},T={type:"spring",stiffness:.5,damping:.45,mass:10},M=function(e){return e.utils.createView({name:"image-clip",tag:"div",ignoreRect:!0,mixins:{apis:["crop","markup","resize","width","height","dirty","background"],styles:["width","height","opacity"],animations:{opacity:{type:"tween",duration:250}}},didWriteView:function(e){var t=e.root,i=e.props;i.background&&(t.element.style.backgroundColor=i.background)},create:function(t){var i=t.root,n=t.props;i.ref.image=i.appendChildView(i.createChildView(function(e){return e.utils.createView({name:"image-canvas-wrapper",tag:"div",ignoreRect:!0,mixins:{apis:["crop","width","height"],styles:["originX","originY","translateX","translateY","scaleX","scaleY","rotateZ"],animations:{originX:T,originY:T,scaleX:T,scaleY:T,translateX:T,translateY:T,rotateZ:T}},create:function(t){var i=t.root,n=t.props;n.width=n.image.width,n.height=n.image.height,i.ref.bitmap=i.appendChildView(i.createChildView(function(e){return e.utils.createView({name:"image-bitmap",ignoreRect:!0,mixins:{styles:["scaleX","scaleY"]},create:function(e){var t=e.root,i=e.props;t.appendChild(i.image)}})}(e),{image:n.image}))},write:function(e){var t=e.root,i=e.props.crop.flip,n=t.ref.bitmap;n.scaleX=i.horizontal?-1:1,n.scaleY=i.vertical?-1:1}})}(e),Object.assign({},n))),i.ref.createMarkup=function(){i.ref.markup||(i.ref.markup=i.appendChildView(i.createChildView(C(e),Object.assign({},n))))},i.ref.destroyMarkup=function(){i.ref.markup&&(i.removeChildView(i.ref.markup),i.ref.markup=null)};var o=i.query("GET_IMAGE_PREVIEW_TRANSPARENCY_INDICATOR");null!==o&&(i.element.dataset.transparencyIndicator="grid"===o?o:"color")},write:function(e){var t=e.root,i=e.props,n=e.shouldOptimize,o=i.crop,r=i.markup,s=i.resize,a=i.dirty,l=i.width,c=i.height;t.ref.image.crop=o;var d={x:0,y:0,width:l,height:c,center:{x:.5*l,y:.5*c}},u={width:t.ref.image.width,height:t.ref.image.height},h={x:o.center.x*u.width,y:o.center.y*u.height},p={x:d.center.x-u.width*o.center.x,y:d.center.y-u.height*o.center.y},f=2*Math.PI+o.rotation%(2*Math.PI),g=o.aspectRatio||u.height/u.width,m=void 0===o.scaleToFit||o.scaleToFit,A=k(u,S(d,g),f,m?o.center:{x:.5,y:.5}),b=o.zoom*A;r&&r.length?(t.ref.createMarkup(),t.ref.markup.width=l,t.ref.markup.height=c,t.ref.markup.resize=s,t.ref.markup.dirty=a,t.ref.markup.markup=r,t.ref.markup.crop=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=t.zoom,n=t.rotation,o=t.center,r=t.aspectRatio;r||(r=e.height/e.width);var s=E(e,r,i),a={x:.5*s.width,y:.5*s.height},l={x:0,y:0,width:s.width,height:s.height,center:a},c=void 0===t.scaleToFit||t.scaleToFit,d=i*k(e,S(l,r),n,c?o:{x:.5,y:.5});return{widthFloat:s.width/d,heightFloat:s.height/d,width:Math.round(s.width/d),height:Math.round(s.height/d)}}(u,o)):t.ref.markup&&t.ref.destroyMarkup();var v=t.ref.image;if(n)return v.originX=null,v.originY=null,v.translateX=null,v.translateY=null,v.rotateZ=null,v.scaleX=null,void(v.scaleY=null);v.originX=h.x,v.originY=h.y,v.translateX=p.x,v.translateY=p.y,v.rotateZ=f,v.scaleX=b,v.scaleY=b}})},B=0,R=function(){self.onmessage=function(e){createImageBitmap(e.data.message.file).then((function(t){self.postMessage({id:e.data.id,message:t},[t])}))}},I=function(){self.onmessage=function(e){for(var t=e.data.message.imageData,i=e.data.message.colorMatrix,n=t.data,o=n.length,r=i[0],s=i[1],a=i[2],l=i[3],c=i[4],d=i[5],u=i[6],h=i[7],p=i[8],f=i[9],g=i[10],m=i[11],A=i[12],b=i[13],v=i[14],C=i[15],y=i[16],w=i[17],x=i[18],_=i[19],E=0,k=0,S=0,T=0,M=0;E=5&&n<=8){var s=[i,t];t=s[0],i=s[1]}return function(e,t,i,n){-1!==n&&e.transform.apply(e,L[n](t,i))}(r,t,i,n),r.drawImage(e,0,0,t,i),o},O=function(e){return/^image/.test(e.type)&&!/svg/.test(e.type)},$=function(e){var t=Math.min(10/e.width,10/e.height),i=document.createElement("canvas"),n=i.getContext("2d"),o=i.width=Math.ceil(e.width*t),r=i.height=Math.ceil(e.height*t);n.drawImage(e,0,0,o,r);var s=null;try{s=n.getImageData(0,0,o,r).data}catch(e){return null}for(var a=s.length,l=0,c=0,d=0,u=0;u\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n';if(document.querySelector("base")){var o=new URL(window.location.href.replace(window.location.hash,"")).href;n=n.replace(/url\(\#/g,"url("+o+"#")}B++,t.element.classList.add("filepond--image-preview-overlay-".concat(i.status)),t.element.innerHTML=n.replace(/__UID__/g,B)},mixins:{styles:["opacity"],animations:{opacity:{type:"spring",mass:25}}}}),i=function(e){return e.utils.createView({name:"image-preview",tag:"div",ignoreRect:!0,mixins:{apis:["image","crop","markup","resize","dirty","background"],styles:["translateY","scaleX","scaleY","opacity"],animations:{scaleX:T,scaleY:T,translateY:T,opacity:{type:"tween",duration:400}}},create:function(t){var i=t.root,n=t.props;i.ref.clip=i.appendChildView(i.createChildView(M(e),{id:n.id,image:n.image,crop:n.crop,markup:n.markup,resize:n.resize,dirty:n.dirty,background:n.background}))},write:function(e){var t=e.root,i=e.props,n=e.shouldOptimize,o=t.ref.clip,r=i.image,s=i.crop,a=i.markup,l=i.resize,c=i.dirty;if(o.crop=s,o.markup=a,o.resize=l,o.dirty=c,o.opacity=n?0:1,!n&&!t.rect.element.hidden){var d=r.height/r.width,u=s.aspectRatio||d,h=t.rect.inner.width,p=t.rect.inner.height,f=t.query("GET_IMAGE_PREVIEW_HEIGHT"),g=t.query("GET_IMAGE_PREVIEW_MIN_HEIGHT"),m=t.query("GET_IMAGE_PREVIEW_MAX_HEIGHT"),A=t.query("GET_PANEL_ASPECT_RATIO"),b=t.query("GET_ALLOW_MULTIPLE");A&&!b&&(f=h*A,u=A);var v=null!==f?f:Math.max(g,Math.min(h*u,m)),C=v/u;C>h&&(v=(C=h)*u),v>p&&(v=p,C=p/u),o.width=C,o.height=v}}})}(e),n=e.utils.createWorker,o=function(e,t,i){return new Promise((function(o){e.ref.imageData||(e.ref.imageData=i.getContext("2d").getImageData(0,0,i.width,i.height));var r=function(e){var t;try{t=new ImageData(e.width,e.height)}catch(i){t=document.createElement("canvas").getContext("2d").createImageData(e.width,e.height)}return t.data.set(new Uint8ClampedArray(e.data)),t}(e.ref.imageData);if(!t||20!==t.length)return i.getContext("2d").putImageData(r,0,0),o();var s=n(I);s.post({imageData:r,colorMatrix:t},(function(e){i.getContext("2d").putImageData(e,0,0),s.terminate(),o()}),[r.data.buffer])}))},r=function(e){var t=e.root,n=e.props,o=e.image,r=n.id,s=t.query("GET_ITEM",{id:r});if(s){var a,l,c=s.getMetadata("crop")||{center:{x:.5,y:.5},flip:{horizontal:!1,vertical:!1},zoom:1,rotation:0,aspectRatio:null},d=t.query("GET_IMAGE_TRANSFORM_CANVAS_BACKGROUND_COLOR"),u=!1;t.query("GET_IMAGE_PREVIEW_MARKUP_SHOW")&&(a=s.getMetadata("markup")||[],l=s.getMetadata("resize"),u=!0);var h=t.appendChildView(t.createChildView(i,{id:r,image:o,crop:c,resize:l,markup:a,dirty:u,background:d,opacity:0,scaleX:1.15,scaleY:1.15,translateY:15}),t.childViews.length);t.ref.images.push(h),h.opacity=1,h.scaleX=1,h.scaleY=1,h.translateY=0,setTimeout((function(){t.dispatch("DID_IMAGE_PREVIEW_SHOW",{id:r})}),250)}},s=function(e){var t=e.root;t.ref.overlayShadow.opacity=1,t.ref.overlayError.opacity=0,t.ref.overlaySuccess.opacity=0},a=function(e){var t=e.root;t.ref.overlayShadow.opacity=.25,t.ref.overlayError.opacity=1};return e.utils.createView({name:"image-preview-wrapper",create:function(e){var i=e.root;i.ref.images=[],i.ref.imageData=null,i.ref.imageViewBin=[],i.ref.overlayShadow=i.appendChildView(i.createChildView(t,{opacity:0,status:"idle"})),i.ref.overlaySuccess=i.appendChildView(i.createChildView(t,{opacity:0,status:"success"})),i.ref.overlayError=i.appendChildView(i.createChildView(t,{opacity:0,status:"failure"}))},styles:["height"],apis:["height"],destroy:function(e){e.root.ref.images.forEach((function(e){e.image.width=1,e.image.height=1}))},didWriteView:function(e){e.root.ref.images.forEach((function(e){e.dirty=!1}))},write:e.utils.createRoute({DID_IMAGE_PREVIEW_DRAW:function(e){var t=e.root,i=t.ref.images[t.ref.images.length-1];i.translateY=0,i.scaleX=1,i.scaleY=1,i.opacity=1},DID_IMAGE_PREVIEW_CONTAINER_CREATE:function(e){var t,i,n,o=e.root,r=e.props.id,s=o.query("GET_ITEM",r);if(s){var a=URL.createObjectURL(s.file);t=a,i=function(e,t){o.dispatch("DID_IMAGE_PREVIEW_CALCULATE_SIZE",{id:r,width:e,height:t})},(n=new Image).onload=function(){var e=n.naturalWidth,t=n.naturalHeight;n=null,i(e,t)},n.src=t}},DID_FINISH_CALCULATE_PREVIEWSIZE:function(e){var t,i,s=e.root,a=e.props,l=a.id,c=s.query("GET_ITEM",l);if(c){var d=URL.createObjectURL(c.file),u=function(){var e;(e=d,new Promise((function(t,i){var n=new Image;n.crossOrigin="Anonymous",n.onload=function(){t(n)},n.onerror=function(e){i(e)},n.src=e}))).then(h)},h=function(e){URL.revokeObjectURL(d);var t=(c.getMetadata("exif")||{}).orientation||-1,i=e.width,n=e.height;if(i&&n){if(t>=5&&t<=8){var l=[n,i];i=l[0],n=l[1]}var u=Math.max(1,.75*window.devicePixelRatio),h=s.query("GET_IMAGE_PREVIEW_ZOOM_FACTOR")*u,p=n/i,f=s.rect.element.width,g=s.rect.element.height,m=f,A=m*p;p>1?A=(m=Math.min(i,f*h))*p:m=(A=Math.min(n,g*h))/p;var b=D(e,m,A,t),v=function(){var t=s.query("GET_IMAGE_PREVIEW_CALCULATE_AVERAGE_IMAGE_COLOR")?$(data):null;c.setMetadata("color",t,!0),"close"in e&&e.close(),s.ref.overlayShadow.opacity=1,r({root:s,props:a,image:b})},C=c.getMetadata("filter");C?o(s,C,b).then(v):v()}};if(t=c.file,((i=window.navigator.userAgent.match(/Firefox\/([0-9]+)\./))?parseInt(i[1]):null)<=58||!("createImageBitmap"in window)||!O(t))u();else{var p=n(R);p.post({file:c.file},(function(e){p.terminate(),e?h(e):u()}))}}},DID_UPDATE_ITEM_METADATA:function(e){var t,i,n=e.root,s=e.props,a=e.action;if(/crop|filter|markup|resize/.test(a.change.key)&&n.ref.images.length){var l=n.query("GET_ITEM",{id:s.id});if(l)if(/filter/.test(a.change.key)){var c=n.ref.images[n.ref.images.length-1];o(n,a.change.value,c.image)}else if(/crop|markup|resize/.test(a.change.key)){var d=l.getMetadata("crop"),u=n.ref.images[n.ref.images.length-1];if(d&&d.aspectRatio&&u.crop&&u.crop.aspectRatio&&Math.abs(d.aspectRatio-u.crop.aspectRatio)>1e-5){var h=function(e){var t=e.root,i=t.ref.images.shift();return i.opacity=0,i.translateY=-15,t.ref.imageViewBin.push(i),i}({root:n});r({root:n,props:s,image:(t=h.image,(i=i||document.createElement("canvas")).width=t.width,i.height=t.height,i.getContext("2d").drawImage(t,0,0),i)})}else!function(e){var t=e.root,i=e.props,n=t.query("GET_ITEM",{id:i.id});if(n){var o=t.ref.images[t.ref.images.length-1];o.crop=n.getMetadata("crop"),o.background=t.query("GET_IMAGE_TRANSFORM_CANVAS_BACKGROUND_COLOR"),t.query("GET_IMAGE_PREVIEW_MARKUP_SHOW")&&(o.dirty=!0,o.resize=n.getMetadata("resize"),o.markup=n.getMetadata("markup"))}}({root:n,props:s})}}},DID_THROW_ITEM_LOAD_ERROR:a,DID_THROW_ITEM_PROCESSING_ERROR:a,DID_THROW_ITEM_INVALID:a,DID_COMPLETE_ITEM_PROCESSING:function(e){var t=e.root;t.ref.overlayShadow.opacity=.25,t.ref.overlaySuccess.opacity=1},DID_START_ITEM_PROCESSING:s,DID_REVERT_ITEM_PROCESSING:s},(function(e){var t=e.root,i=t.ref.imageViewBin.filter((function(e){return 0===e.opacity}));t.ref.imageViewBin=t.ref.imageViewBin.filter((function(e){return e.opacity>0})),i.forEach((function(e){return function(e,t){e.removeChildView(t),t.image.width=1,t.image.height=1,t._destroy()}(t,e)})),i.length=0}))})},F=function(e){var t=e.addFilter,i=e.utils,n=i.Type,o=i.createRoute,r=i.isFile,s=N(e);return t("CREATE_VIEW",(function(e){var t=e.is,i=e.view,n=e.query;if(t("file")&&n("GET_ALLOW_IMAGE_PREVIEW")){var a=function(e){e.root.ref.shouldRescale=!0};i.registerWriter(o({DID_RESIZE_ROOT:a,DID_STOP_RESIZE:a,DID_LOAD_ITEM:function(e){var t=e.root,o=e.props.id,a=n("GET_ITEM",o);if(a&&r(a.file)&&!a.archived){var l=a.file;if(function(e){return/^image/.test(e.type)}(l)&&n("GET_IMAGE_PREVIEW_FILTER_ITEM")(a)){var c="createImageBitmap"in(window||{}),d=n("GET_IMAGE_PREVIEW_MAX_FILE_SIZE");if(!(!c&&d&&l.size>d)){t.ref.imagePreview=i.appendChildView(i.createChildView(s,{id:o}));var u=t.query("GET_IMAGE_PREVIEW_HEIGHT");u&&t.dispatch("DID_UPDATE_PANEL_HEIGHT",{id:a.id,height:u});var h=!c&&l.size>n("GET_IMAGE_PREVIEW_MAX_INSTANT_PREVIEW_FILE_SIZE");t.dispatch("DID_IMAGE_PREVIEW_CONTAINER_CREATE",{id:o},h)}}}},DID_IMAGE_PREVIEW_CALCULATE_SIZE:function(e){var t=e.root,i=e.action;t.ref.imageWidth=i.width,t.ref.imageHeight=i.height,t.ref.shouldRescale=!0,t.ref.shouldDrawPreview=!0,t.dispatch("KICK")},DID_UPDATE_ITEM_METADATA:function(e){var t=e.root;"crop"===e.action.change.key&&(t.ref.shouldRescale=!0)}},(function(e){var t=e.root,i=e.props;t.ref.imagePreview&&(t.rect.element.hidden||(t.ref.shouldRescale&&(function(e,t){if(e.ref.imagePreview){var i=t.id,n=e.query("GET_ITEM",{id:i});if(n){var o=e.query("GET_PANEL_ASPECT_RATIO"),r=e.query("GET_ITEM_PANEL_ASPECT_RATIO"),s=e.query("GET_IMAGE_PREVIEW_HEIGHT");if(!(o||r||s)){var a=e.ref,l=a.imageWidth,c=a.imageHeight;if(l&&c){var d=e.query("GET_IMAGE_PREVIEW_MIN_HEIGHT"),u=e.query("GET_IMAGE_PREVIEW_MAX_HEIGHT"),h=(n.getMetadata("exif")||{}).orientation||-1;if(h>=5&&h<=8){var p=[c,l];l=p[0],c=p[1]}if(!O(n.file)||e.query("GET_IMAGE_PREVIEW_UPSCALE")){var f=2048/l;l*=f,c*=f}var g=c/l,m=(n.getMetadata("crop")||{}).aspectRatio||g,A=Math.max(d,Math.min(c,u)),b=e.rect.element.width,v=Math.min(b*m,A);e.dispatch("DID_UPDATE_PANEL_HEIGHT",{id:n.id,height:v})}}}}}(t,i),t.ref.shouldRescale=!1),t.ref.shouldDrawPreview&&(requestAnimationFrame((function(){requestAnimationFrame((function(){t.dispatch("DID_FINISH_CALCULATE_PREVIEWSIZE",{id:i.id})}))})),t.ref.shouldDrawPreview=!1)))})))}})),{options:{allowImagePreview:[!0,n.BOOLEAN],imagePreviewFilterItem:[function(){return!0},n.FUNCTION],imagePreviewHeight:[null,n.INT],imagePreviewMinHeight:[44,n.INT],imagePreviewMaxHeight:[256,n.INT],imagePreviewMaxFileSize:[null,n.INT],imagePreviewZoomFactor:[2,n.INT],imagePreviewUpscale:[!1,n.BOOLEAN],imagePreviewMaxInstantPreviewFileSize:[1e6,n.INT],imagePreviewTransparencyIndicator:[null,n.STRING],imagePreviewCalculateAverageImageColor:[!1,n.BOOLEAN],imagePreviewMarkupShow:[!0,n.BOOLEAN],imagePreviewMarkupFilter:[function(){return!0},n.FUNCTION]}}};return"undefined"!=typeof window&&void 0!==window.document&&document.dispatchEvent(new CustomEvent("FilePond:pluginloaded",{detail:F})),F}()},66136:function(e,t){!function(e){"use strict";var t=function(e){return e instanceof HTMLElement},i=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],n=Object.assign({},e),o=[],r=[],s=function(){var e=[].concat(r);r.length=0,e.forEach((function(e){var t=e.type,i=e.data;a(t,i)}))},a=function(e,t,i){!i||document.hidden?(u[e]&&u[e](t),o.push({type:e,data:t})):r.push({type:e,data:t})},l=function(e){for(var t,i=arguments.length,n=new Array(i>1?i-1:0),o=1;o2&&void 0!==arguments[2]?arguments[2]:null;if(null===i)return e.getAttribute(t)||e.hasAttribute(t);e.setAttribute(t,i)},s="http://www.w3.org/2000/svg",a=["svg","path"],l=function(e){return a.includes(e)},c=function(e,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};"object"==typeof t&&(i=t,t=null);var o=l(e)?document.createElementNS(s,e):document.createElement(e);return t&&(l(e)?r(o,"class",t):o.className=t),n(i,(function(e,t){r(o,e,t)})),o},d=function(e){return function(t,i){void 0!==i&&e.children[i]?e.insertBefore(t,e.children[i]):e.appendChild(t)}},u=function(e,t){return function(e,i){return void 0!==i?t.splice(i,0,e):t.push(e),e}},h=function(e,t){return function(i){return t.splice(t.indexOf(i),1),i.element.parentNode&&e.removeChild(i.element),i}},p="undefined"!=typeof window&&void 0!==window.document,f=function(){return p},g="children"in(f()?c("svg"):{})?function(e){return e.children.length}:function(e){return e.childNodes.length},m=function(e,t,i,n){var o=i[0]||e.left,r=i[1]||e.top,s=o+e.width,a=r+e.height*(n[1]||1),l={element:Object.assign({},e),inner:{left:e.left,top:e.top,right:e.right,bottom:e.bottom},outer:{left:o,top:r,right:s,bottom:a}};return t.filter((function(e){return!e.isRectIgnored()})).map((function(e){return e.rect})).forEach((function(e){A(l.inner,Object.assign({},e.inner)),A(l.outer,Object.assign({},e.outer))})),b(l.inner),l.outer.bottom+=l.element.marginBottom,l.outer.right+=l.element.marginRight,b(l.outer),l},A=function(e,t){t.top+=e.top,t.right+=e.left,t.bottom+=e.top,t.left+=e.left,t.bottom>e.bottom&&(e.bottom=t.bottom),t.right>e.right&&(e.right=t.right)},b=function(e){e.width=e.right-e.left,e.height=e.bottom-e.top},v=function(e){return"number"==typeof e},C=function(e,t,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.001;return Math.abs(e-t)0&&void 0!==arguments[0]?arguments[0]:{},t=e.stiffness,i=void 0===t?.5:t,n=e.damping,r=void 0===n?.75:n,s=e.mass,a=void 0===s?10:s,l=null,c=null,d=0,u=!1,h=o({interpolate:function(e,t){if(!u){if(!v(l)||!v(c))return u=!0,void(d=0);C(c+=d+=-(c-l)*i/a,l,d*=r)||t?(c=l,d=0,u=!0,h.onupdate(c),h.oncomplete(c)):h.onupdate(c)}},target:{set:function(e){if(v(e)&&!v(c)&&(c=e),null===l&&(l=e,c=e),c===(l=e)||void 0===l)return u=!0,d=0,h.onupdate(c),void h.oncomplete(c);u=!1},get:function(){return l}},resting:{get:function(){return u}},onupdate:function(e){},oncomplete:function(e){}});return h},tween:function(){var e,t,i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=i.duration,r=void 0===n?500:n,s=i.easing,a=void 0===s?y:s,l=i.delay,c=void 0===l?0:l,d=null,u=!0,h=!1,p=null,f=o({interpolate:function(i,n){u||null===p||(null===d&&(d=i),i-d=r||n?(e=1,t=h?0:1,f.onupdate(t*p),f.oncomplete(t*p),u=!0):(t=e/r,f.onupdate((e>=0?a(h?1-t:t):0)*p))))},target:{get:function(){return h?0:p},set:function(e){if(null===p)return p=e,f.onupdate(e),void f.oncomplete(e);e3&&void 0!==arguments[3]&&arguments[3];(t=Array.isArray(t)?t:[t]).forEach((function(t){e.forEach((function(e){var o=e,r=function(){return i[e]},s=function(t){return i[e]=t};"object"==typeof e&&(o=e.key,r=e.getter||r,s=e.setter||s),t[o]&&!n||(t[o]={get:r,set:s})}))}))},E=function(e){return null!=e},k={opacity:1,scaleX:1,scaleY:1,translateX:0,translateY:0,rotateX:0,rotateY:0,rotateZ:0,originX:0,originY:0},S=function(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!0;for(var i in t)if(t[i]!==e[i])return!0;return!1},T=function(e,t){var i=t.opacity,n=t.perspective,o=t.translateX,r=t.translateY,s=t.scaleX,a=t.scaleY,l=t.rotateX,c=t.rotateY,d=t.rotateZ,u=t.originX,h=t.originY,p=t.width,f=t.height,g="",m="";(E(u)||E(h))&&(m+="transform-origin: "+(u||0)+"px "+(h||0)+"px;"),E(n)&&(g+="perspective("+n+"px) "),(E(o)||E(r))&&(g+="translate3d("+(o||0)+"px, "+(r||0)+"px, 0) "),(E(s)||E(a))&&(g+="scale3d("+(E(s)?s:1)+", "+(E(a)?a:1)+", 1) "),E(d)&&(g+="rotateZ("+d+"rad) "),E(l)&&(g+="rotateX("+l+"rad) "),E(c)&&(g+="rotateY("+c+"rad) "),g.length&&(m+="transform:"+g+";"),E(i)&&(m+="opacity:"+i+";",0===i&&(m+="visibility:hidden;"),i<1&&(m+="pointer-events:none;")),E(f)&&(m+="height:"+f+"px;"),E(p)&&(m+="width:"+p+"px;");var A=e.elementCurrentStyle||"";m.length===A.length&&m===A||(e.style.cssText=m,e.elementCurrentStyle=m)},M={styles:function(e){var t=e.mixinConfig,i=e.viewProps,n=e.viewInternalAPI,o=e.viewExternalAPI,r=e.view,s=Object.assign({},i),a={};_(t,[n,o],i);var l=function(){return r.rect?m(r.rect,r.childViews,[i.translateX||0,i.translateY||0],[i.scaleX||0,i.scaleY||0]):null};return n.rect={get:l},o.rect={get:l},t.forEach((function(e){i[e]=void 0===s[e]?k[e]:s[e]})),{write:function(){if(S(a,i))return T(r.element,i),Object.assign(a,Object.assign({},i)),!0},destroy:function(){}}},listeners:function(e){e.mixinConfig,e.viewProps,e.viewInternalAPI;var t,i=e.viewExternalAPI,n=(e.viewState,e.view),o=[],r=(t=n.element,function(e,i){t.addEventListener(e,i)}),s=function(e){return function(t,i){e.removeEventListener(t,i)}}(n.element);return i.on=function(e,t){o.push({type:e,fn:t}),r(e,t)},i.off=function(e,t){o.splice(o.findIndex((function(i){return i.type===e&&i.fn===t})),1),s(e,t)},{write:function(){return!0},destroy:function(){o.forEach((function(e){s(e.type,e.fn)}))}}},animations:function(e){var t=e.mixinConfig,i=e.viewProps,o=e.viewInternalAPI,r=e.viewExternalAPI,s=Object.assign({},i),a=[];return n(t,(function(e,t){var n=x(t);n&&(n.onupdate=function(t){i[e]=t},n.target=s[e],_([{key:e,setter:function(e){n.target!==e&&(n.target=e)},getter:function(){return i[e]}}],[o,r],i,!0),a.push(n))})),{write:function(e){var t=document.hidden,i=!0;return a.forEach((function(n){n.resting||(i=!1),n.interpolate(e,t)})),i},destroy:function(){}}},apis:function(e){var t=e.mixinConfig,i=e.viewProps,n=e.viewExternalAPI;_(t,n,i)}},B=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return t.layoutCalculated||(e.paddingTop=parseInt(i.paddingTop,10)||0,e.marginTop=parseInt(i.marginTop,10)||0,e.marginRight=parseInt(i.marginRight,10)||0,e.marginBottom=parseInt(i.marginBottom,10)||0,e.marginLeft=parseInt(i.marginLeft,10)||0,t.layoutCalculated=!0),e.left=t.offsetLeft||0,e.top=t.offsetTop||0,e.width=t.offsetWidth||0,e.height=t.offsetHeight||0,e.right=e.left+e.width,e.bottom=e.top+e.height,e.scrollTop=t.scrollTop,e.hidden=null===t.offsetParent,e},R=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.tag,i=void 0===t?"div":t,n=e.name,r=void 0===n?null:n,s=e.attributes,a=void 0===s?{}:s,l=e.read,p=void 0===l?function(){}:l,f=e.write,A=void 0===f?function(){}:f,b=e.create,v=void 0===b?function(){}:b,C=e.destroy,y=void 0===C?function(){}:C,w=e.filterFrameActionsForChild,x=void 0===w?function(e,t){return t}:w,_=e.didCreateView,E=void 0===_?function(){}:_,k=e.didWriteView,S=void 0===k?function(){}:k,T=e.ignoreRect,R=void 0!==T&&T,I=e.ignoreRectUpdate,L=void 0!==I&&I,D=e.mixins,O=void 0===D?[]:D;return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=c(i,"filepond--"+r,a),s=window.getComputedStyle(n,null),l=B(),f=null,b=!1,C=[],w=[],_={},k={},T=[A],I=[p],D=[y],$=function(){return n},P=function(){return C.concat()},N=function(){return _},F=function(e){return function(t,i){return t(e,i)}},U=function(){return f||(f=m(l,C,[0,0],[1,1]))},j=function(){f=null,C.forEach((function(e){return e._read()})),!(L&&l.width&&l.height)&&B(l,n,s);var e={root:Y,props:t,rect:l};I.forEach((function(t){return t(e)}))},W=function(e,i,n){var o=0===i.length;return T.forEach((function(r){!1===r({props:t,root:Y,actions:i,timestamp:e,shouldOptimize:n})&&(o=!1)})),w.forEach((function(t){!1===t.write(e)&&(o=!1)})),C.filter((function(e){return!!e.element.parentNode})).forEach((function(t){t._write(e,x(t,i),n)||(o=!1)})),C.forEach((function(t,r){t.element.parentNode||(Y.appendChild(t.element,r),t._read(),t._write(e,x(t,i),n),o=!1)})),b=o,S({props:t,root:Y,actions:i,timestamp:e}),o},z=function(){w.forEach((function(e){return e.destroy()})),D.forEach((function(e){e({root:Y,props:t})})),C.forEach((function(e){return e._destroy()}))},H={element:{get:$},style:{get:function(){return s}},childViews:{get:P}},q=Object.assign({},H,{rect:{get:U},ref:{get:N},is:function(e){return r===e},appendChild:d(n),createChildView:F(e),linkView:function(e){return C.push(e),e},unlinkView:function(e){C.splice(C.indexOf(e),1)},appendChildView:u(0,C),removeChildView:h(n,C),registerWriter:function(e){return T.push(e)},registerReader:function(e){return I.push(e)},registerDestroyer:function(e){return D.push(e)},invalidateLayout:function(){return n.layoutCalculated=!1},dispatch:e.dispatch,query:e.query}),V={element:{get:$},childViews:{get:P},rect:{get:U},resting:{get:function(){return b}},isRectIgnored:function(){return R},_read:j,_write:W,_destroy:z},G=Object.assign({},H,{rect:{get:function(){return l}}});Object.keys(O).sort((function(e,t){return"styles"===e?1:"styles"===t?-1:0})).forEach((function(e){var i=M[e]({mixinConfig:O[e],viewProps:t,viewState:k,viewInternalAPI:q,viewExternalAPI:V,view:o(G)});i&&w.push(i)}));var Y=o(q);v({root:Y,props:t});var X=g(n);return C.forEach((function(e,t){Y.appendChild(e.element,X+t)})),E(Y),o(V)}},I=function(e,t){return function(i){var n=i.root,o=i.props,r=i.actions,s=void 0===r?[]:r,a=i.timestamp,l=i.shouldOptimize;s.filter((function(t){return e[t.type]})).forEach((function(t){return e[t.type]({root:n,props:o,action:t.data,timestamp:a,shouldOptimize:l})})),t&&t({root:n,props:o,actions:s,timestamp:a,shouldOptimize:l})}},L=function(e,t){return t.parentNode.insertBefore(e,t)},D=function(e,t){return t.parentNode.insertBefore(e,t.nextSibling)},O=function(e){return Array.isArray(e)},$=function(e){return null==e},P=function(e){return e.trim()},N=function(e){return""+e},F=function(e){return"boolean"==typeof e},U=function(e){return F(e)?e:"true"===e},j=function(e){return"string"==typeof e},W=function(e){return v(e)?e:j(e)?N(e).replace(/[a-z]+/gi,""):0},z=function(e){return parseInt(W(e),10)},H=function(e){return parseFloat(W(e))},q=function(e){return v(e)&&isFinite(e)&&Math.floor(e)===e},V=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e3;if(q(e))return e;var i=N(e).trim();return/MB$/i.test(i)?(i=i.replace(/MB$i/,"").trim(),z(i)*t*t):/KB/i.test(i)?(i=i.replace(/KB$i/,"").trim(),z(i)*t):z(i)},G=function(e){return"function"==typeof e},Y={process:"POST",patch:"PATCH",revert:"DELETE",fetch:"GET",restore:"GET",load:"GET"},X=function(e,t,i,n,o){if(null===t)return null;if("function"==typeof t)return t;var r={url:"GET"===i||"PATCH"===i?"?"+e+"=":"",method:i,headers:o,withCredentials:!1,timeout:n,onload:null,ondata:null,onerror:null};if(j(t))return r.url=t,r;if(Object.assign(r,t),j(r.headers)){var s=r.headers.split(/:(.+)/);r.headers={header:s[0],value:s[1]}}return r.withCredentials=U(r.withCredentials),r},K=function(e){return"object"==typeof e&&null!==e},Q=function(e){return O(e)?"array":function(e){return null===e}(e)?"null":q(e)?"int":/^[0-9]+ ?(?:GB|MB|KB)$/gi.test(e)?"bytes":function(e){return K(e)&&j(e.url)&&K(e.process)&&K(e.revert)&&K(e.restore)&&K(e.fetch)}(e)?"api":typeof e},Z={array:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:",";return $(e)?[]:O(e)?e:N(e).split(t).map(P).filter((function(e){return e.length}))},boolean:U,int:function(e){return"bytes"===Q(e)?V(e):z(e)},number:H,float:H,bytes:V,string:function(e){return G(e)?e:N(e)},function:function(e){return function(e){for(var t=self,i=e.split("."),n=null;n=i.shift();)if(!(t=t[n]))return null;return t}(e)},serverapi:function(e){return(i={}).url=j(t=e)?t:t.url||"",i.timeout=t.timeout?parseInt(t.timeout,10):0,i.headers=t.headers?t.headers:{},n(Y,(function(e){i[e]=X(e,t[e],Y[e],i.timeout,i.headers)})),i.process=t.process||j(t)||t.url?i.process:null,i.remove=t.remove||null,delete i.headers,i;var t,i},object:function(e){try{return JSON.parse(e.replace(/{\s*'/g,'{"').replace(/'\s*}/g,'"}').replace(/'\s*:/g,'":').replace(/:\s*'/g,':"').replace(/,\s*'/g,',"').replace(/'\s*,/g,'",'))}catch(e){return null}}},J=function(e,t,i){if(e===t)return e;var n,o=Q(e);if(o!==i){var r=(n=e,Z[i](n));if(o=Q(r),null===r)throw'Trying to assign value with incorrect type to "'+option+'", allowed type: "'+i+'"';e=r}return e},ee=function(e){var t={};return n(e,(function(i){var n,o,r,s=e[i];t[i]=(n=s[0],o=s[1],r=n,{enumerable:!0,get:function(){return r},set:function(e){r=J(e,n,o)}})})),o(t)},te=function(e){return{items:[],listUpdateTimeout:null,itemUpdateTimeout:null,processingQueue:[],options:ee(e)}},ie=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"-";return e.split(/(?=[A-Z])/).map((function(e){return e.toLowerCase()})).join(t)},ne=function(e,t){var i={};return n(t,(function(t){i[t]={get:function(){return e.getState().options[t]},set:function(i){e.dispatch("SET_"+ie(t,"_").toUpperCase(),{value:i})}}})),i},oe=function(e){return function(t,i,o){var r={};return n(e,(function(e){var i=ie(e,"_").toUpperCase();r["SET_"+i]=function(n){try{o.options[e]=n.value}catch(e){}t("DID_SET_"+i,{value:o.options[e]})}})),r}},re=function(e){return function(t){var i={};return n(e,(function(e){i["GET_"+ie(e,"_").toUpperCase()]=function(i){return t.options[e]}})),i}},se=1,ae=2,le=3,ce=4,de=5,ue=function(){return Math.random().toString(36).substring(2,11)};function he(e){this.wrapped=e}function pe(e){var t,i;function n(t,i){try{var r=e[t](i),s=r.value,a=s instanceof he;Promise.resolve(a?s.wrapped:s).then((function(e){a?n("next",e):o(r.done?"return":"normal",e)}),(function(e){n("throw",e)}))}catch(e){o("throw",e)}}function o(e,o){switch(e){case"return":t.resolve({value:o,done:!0});break;case"throw":t.reject(o);break;default:t.resolve({value:o,done:!1})}(t=t.next)?n(t.key,t.arg):i=null}this._invoke=function(e,o){return new Promise((function(r,s){var a={key:e,arg:o,resolve:r,reject:s,next:null};i?i=i.next=a:(t=i=a,n(e,o))}))},"function"!=typeof e.return&&(this.return=void 0)}function fe(e,t){if(null==e)return{};var i,n,o=function(e,t){if(null==e)return{};var i,n,o={},r=Object.keys(e);for(n=0;n=0||(o[i]=e[i]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(o[i]=e[i])}return o}function ge(e){return function(e){if(Array.isArray(e)){for(var t=0,i=new Array(e.length);t1?t-1:0),o=1;o1?t-1:0),o=1;oBrowse',Te.STRING],labelInvalidField:["Field contains invalid files",Te.STRING],labelFileWaitingForSize:["Waiting for size",Te.STRING],labelFileSizeNotAvailable:["Size not available",Te.STRING],labelFileCountSingular:["file in list",Te.STRING],labelFileCountPlural:["files in list",Te.STRING],labelFileLoading:["Loading",Te.STRING],labelFileAdded:["Added",Te.STRING],labelFileLoadError:["Error during load",Te.STRING],labelFileRemoved:["Removed",Te.STRING],labelFileRemoveError:["Error during remove",Te.STRING],labelFileProcessing:["Uploading",Te.STRING],labelFileProcessingComplete:["Upload complete",Te.STRING],labelFileProcessingAborted:["Upload cancelled",Te.STRING],labelFileProcessingError:["Error during upload",Te.STRING],labelFileProcessingRevertError:["Error during revert",Te.STRING],labelTapToCancel:["tap to cancel",Te.STRING],labelTapToRetry:["tap to retry",Te.STRING],labelTapToUndo:["tap to undo",Te.STRING],labelButtonRemoveItem:["Remove",Te.STRING],labelButtonAbortItemLoad:["Abort",Te.STRING],labelButtonRetryItemLoad:["Retry",Te.STRING],labelButtonAbortItemProcessing:["Cancel",Te.STRING],labelButtonUndoItemProcessing:["Undo",Te.STRING],labelButtonRetryItemProcessing:["Retry",Te.STRING],labelButtonProcessItem:["Upload",Te.STRING],iconRemove:['',Te.STRING],iconProcess:['',Te.STRING],iconRetry:['',Te.STRING],iconUndo:['',Te.STRING],iconDone:['',Te.STRING],oninit:[null,Te.FUNCTION],onwarning:[null,Te.FUNCTION],onerror:[null,Te.FUNCTION],onactivatefile:[null,Te.FUNCTION],oninitfile:[null,Te.FUNCTION],onaddfilestart:[null,Te.FUNCTION],onaddfileprogress:[null,Te.FUNCTION],onaddfile:[null,Te.FUNCTION],onprocessfilestart:[null,Te.FUNCTION],onprocessfileprogress:[null,Te.FUNCTION],onprocessfileabort:[null,Te.FUNCTION],onprocessfilerevert:[null,Te.FUNCTION],onprocessfile:[null,Te.FUNCTION],onprocessfiles:[null,Te.FUNCTION],onremovefile:[null,Te.FUNCTION],onpreparefile:[null,Te.FUNCTION],onupdatefiles:[null,Te.FUNCTION],onreorderfiles:[null,Te.FUNCTION],beforeDropFile:[null,Te.FUNCTION],beforeAddFile:[null,Te.FUNCTION],beforeRemoveFile:[null,Te.FUNCTION],beforePrepareFile:[null,Te.FUNCTION],stylePanelLayout:[null,Te.STRING],stylePanelAspectRatio:[null,Te.STRING],styleItemPanelAspectRatio:[null,Te.STRING],styleButtonRemoveItemPosition:["left",Te.STRING],styleButtonProcessItemPosition:["right",Te.STRING],styleLoadIndicatorPosition:["right",Te.STRING],styleProgressIndicatorPosition:["right",Te.STRING],styleButtonRemoveItemAlign:[!1,Te.BOOLEAN],files:[[],Te.ARRAY],credits:[["https://pqina.nl/","Powered by PQINA"],Te.ARRAY]},Oe=function(e,t){return $(t)?e[0]||null:q(t)?e[t]||null:("object"==typeof t&&(t=t.id),e.find((function(e){return e.id===t}))||null)},$e=function(e){if($(e))return e;if(/:/.test(e)){var t=e.split(":");return t[1]/t[0]}return parseFloat(e)},Pe=function(e){return e.filter((function(e){return!e.archived}))},Ne={EMPTY:0,IDLE:1,ERROR:2,BUSY:3,READY:4},Fe=null,Ue=[_e.LOAD_ERROR,_e.PROCESSING_ERROR,_e.PROCESSING_REVERT_ERROR],je=[_e.LOADING,_e.PROCESSING,_e.PROCESSING_QUEUED,_e.INIT],We=[_e.PROCESSING_COMPLETE],ze=function(e){return Ue.includes(e.status)},He=function(e){return je.includes(e.status)},qe=function(e){return We.includes(e.status)},Ve=function(e){return K(e.options.server)&&(K(e.options.server.process)||G(e.options.server.process))},Ge=function(e){return{GET_STATUS:function(){var t=Pe(e.items),i=Ne.EMPTY,n=Ne.ERROR,o=Ne.BUSY,r=Ne.IDLE,s=Ne.READY;return 0===t.length?i:t.some(ze)?n:t.some(He)?o:t.some(qe)?s:r},GET_ITEM:function(t){return Oe(e.items,t)},GET_ACTIVE_ITEM:function(t){return Oe(Pe(e.items),t)},GET_ACTIVE_ITEMS:function(){return Pe(e.items)},GET_ITEMS:function(){return e.items},GET_ITEM_NAME:function(t){var i=Oe(e.items,t);return i?i.filename:null},GET_ITEM_SIZE:function(t){var i=Oe(e.items,t);return i?i.fileSize:null},GET_STYLES:function(){return Object.keys(e.options).filter((function(e){return/^style/.test(e)})).map((function(t){return{name:t,value:e.options[t]}}))},GET_PANEL_ASPECT_RATIO:function(){return/circle/.test(e.options.stylePanelLayout)?1:$e(e.options.stylePanelAspectRatio)},GET_ITEM_PANEL_ASPECT_RATIO:function(){return e.options.styleItemPanelAspectRatio},GET_ITEMS_BY_STATUS:function(t){return Pe(e.items).filter((function(e){return e.status===t}))},GET_TOTAL_ITEMS:function(){return Pe(e.items).length},SHOULD_UPDATE_FILE_INPUT:function(){return e.options.storeAsFile&&function(){if(null===Fe)try{var e=new DataTransfer;e.items.add(new File(["hello world"],"This_Works.txt"));var t=document.createElement("input");t.setAttribute("type","file"),t.files=e.files,Fe=1===t.files.length}catch(e){Fe=!1}return Fe}()&&!Ve(e)},IS_ASYNC:function(){return Ve(e)},GET_FILE_SIZE_LABELS:function(e){return{labelBytes:e("GET_LABEL_FILE_SIZE_BYTES")||void 0,labelKilobytes:e("GET_LABEL_FILE_SIZE_KILOBYTES")||void 0,labelMegabytes:e("GET_LABEL_FILE_SIZE_MEGABYTES")||void 0,labelGigabytes:e("GET_LABEL_FILE_SIZE_GIGABYTES")||void 0}}}},Ye=function(e,t,i){return Math.max(Math.min(i,e),t)},Xe=function(e){return/^\s*data:([a-z]+\/[a-z0-9-+.]+(;[a-z-]+=[a-z0-9-]+)?)?(;base64)?,([a-z0-9!$&',()*+;=\-._~:@\/?%\s]*)\s*$/i.test(e)},Ke=function(e){return e.split("/").pop().split("?").shift()},Qe=function(e){return e.split(".").pop()},Ze=function(e){if("string"!=typeof e)return"";var t=e.split("/").pop();return/svg/.test(t)?"svg":/zip|compressed/.test(t)?"zip":/plain/.test(t)?"txt":/msword/.test(t)?"doc":/[a-z]+/.test(t)?"jpeg"===t?"jpg":t:""},Je=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return(t+e).slice(-t.length)},et=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Date;return e.getFullYear()+"-"+Je(e.getMonth()+1,"00")+"-"+Je(e.getDate(),"00")+"_"+Je(e.getHours(),"00")+"-"+Je(e.getMinutes(),"00")+"-"+Je(e.getSeconds(),"00")},tt=function(e,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,o="string"==typeof i?e.slice(0,e.size,i):e.slice(0,e.size,e.type);return o.lastModifiedDate=new Date,e._relativePath&&(o._relativePath=e._relativePath),j(t)||(t=et()),t&&null===n&&Qe(t)?o.name=t:(n=n||Ze(o.type),o.name=t+(n?"."+n:"")),o},it=function(e,t){var i=window.BlobBuilder=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder;if(i){var n=new i;return n.append(e),n.getBlob(t)}return new Blob([e],{type:t})},nt=function(e){return(/^data:(.+);/.exec(e)||[])[1]||null},ot=function(e){var t=nt(e),i=function(e){return atob(function(e){return e.split(",")[1].replace(/\s/g,"")}(e))}(e);return function(e,t){for(var i=new ArrayBuffer(e.length),n=new Uint8Array(i),o=0;o=200&&s.status<300?n.onload(s):n.onerror(s)},s.onerror=function(){return n.onerror(s)},s.onabort=function(){o=!0,n.onabort()},s.ontimeout=function(){return n.ontimeout(s)},s.open(i.method,t,!0),q(i.timeout)&&(s.timeout=i.timeout),Object.keys(i.headers).forEach((function(e){var t=unescape(encodeURIComponent(i.headers[e]));s.setRequestHeader(e,t)})),i.responseType&&(s.responseType=i.responseType),i.withCredentials&&(s.withCredentials=!0),s.send(e),n},ht=function(e,t,i,n){return{type:e,code:t,body:i,headers:n}},pt=function(e){return function(t){e(ht("error",0,"Timeout",t.getAllResponseHeaders()))}},ft=function(e){return/\?/.test(e)},gt=function(){for(var e="",t=arguments.length,i=new Array(t),n=0;n0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0;if("function"==typeof t)return t;if(!t||!j(t.url))return null;var i=t.onload||function(e){return e},n=t.onerror||function(e){return null};return function(o,r,s,a,l,c){var d=ut(o,gt(e,t.url),Object.assign({},t,{responseType:"blob"}));return d.onload=function(e){var n=e.getAllResponseHeaders(),s=lt(n).name||Ke(o);r(ht("load",e.status,"HEAD"===t.method?null:tt(i(e.response),s),n))},d.onerror=function(e){s(ht("error",e.status,n(e.response)||e.statusText,e.getAllResponseHeaders()))},d.onheaders=function(e){c(ht("headers",e.status,null,e.getAllResponseHeaders()))},d.ontimeout=pt(s),d.onprogress=a,d.onabort=l,d}},At=0,bt=1,vt=2,Ct=3,yt=4,wt=function(e,t,i,n,o,r,s,a,l,c,d){for(var u=[],h=d.chunkTransferId,p=d.chunkServer,f=d.chunkSize,g=d.chunkRetryDelays,m={serverId:h,aborted:!1},A=t.ondata||function(e){return e},b=t.onload||function(e,t){return"HEAD"===t?e.getResponseHeader("Upload-Offset"):e.response},v=t.onerror||function(e){return null},C=Math.floor(n.size/f),y=0;y<=C;y++){var w=y*f,x=n.slice(w,w+f,"application/offset+octet-stream");u[y]={index:y,size:x.size,offset:w,data:x,file:n,progress:0,retries:ge(g),status:At,error:null,request:null,timeout:null}}var _,E,k,S,T=function(e){return e.status===At||e.status===Ct},M=function(t){if(!m.aborted)if(t=t||u.find(T)){t.status=vt,t.progress=null;var i=p.ondata||function(e){return e},o=p.onerror||function(e){return null},a=gt(e,p.url,m.serverId),c="function"==typeof p.headers?p.headers(t):Object.assign({},p.headers,{"Content-Type":"application/offset+octet-stream","Upload-Offset":t.offset,"Upload-Length":n.size,"Upload-Name":n.name}),d=t.request=ut(i(t.data),a,Object.assign({},p,{headers:c}));d.onload=function(){t.status=bt,t.request=null,I()},d.onprogress=function(e,i,n){t.progress=e?i:null,R()},d.onerror=function(e){t.status=Ct,t.request=null,t.error=o(e.response)||e.statusText,B(t)||s(ht("error",e.status,o(e.response)||e.statusText,e.getAllResponseHeaders()))},d.ontimeout=function(e){t.status=Ct,t.request=null,B(t)||pt(s)(e)},d.onabort=function(){t.status=At,t.request=null,l()}}else u.every((function(e){return e.status===bt}))&&r(m.serverId)},B=function(e){return 0!==e.retries.length&&(e.status=yt,clearTimeout(e.timeout),e.timeout=setTimeout((function(){M(e)}),e.retries.shift()),!0)},R=function(){var e=u.reduce((function(e,t){return null===e||null===t.progress?null:e+t.progress}),0);if(null===e)return a(!1,0,0);var t=u.reduce((function(e,t){return e+t.size}),0);a(!0,e,t)},I=function(){u.filter((function(e){return e.status===vt})).length>=1||M()};return m.serverId?(_=function(e){m.aborted||(u.filter((function(t){return t.offsetn.chunkSize,p=u&&(h||n.chunkForce);if(o instanceof Blob&&p)return wt(e,t,i,o,r,s,a,l,c,d,n);var f=t.ondata||function(e){return e},g=t.onload||function(e){return e},m=t.onerror||function(e){return null},A="function"==typeof t.headers?t.headers(o,r)||{}:Object.assign({},t.headers),b=Object.assign({},t,{headers:A}),v=new FormData;K(r)&&v.append(i,JSON.stringify(r)),(o instanceof Blob?[{name:null,file:o}]:o).forEach((function(e){v.append(i,e.file,null===e.name?e.file.name:""+e.name+e.file.name)}));var C=ut(f(v),gt(e,t.url),b);return C.onload=function(e){s(ht("load",e.status,g(e.response),e.getAllResponseHeaders()))},C.onerror=function(e){a(ht("error",e.status,m(e.response)||e.statusText,e.getAllResponseHeaders()))},C.ontimeout=pt(a),C.onprogress=l,C.onabort=c,C}}},_t=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0;if("function"==typeof t)return t;if(!t||!j(t.url))return function(e,t){return t()};var i=t.onload||function(e){return e},n=t.onerror||function(e){return null};return function(o,r,s){var a=ut(o,e+t.url,t);return a.onload=function(e){r(ht("load",e.status,i(e.response),e.getAllResponseHeaders()))},a.onerror=function(e){s(ht("error",e.status,n(e.response)||e.statusText,e.getAllResponseHeaders()))},a.ontimeout=pt(s),a}},Et=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return e+Math.random()*(t-e)},kt=function(e,t){var i={complete:!1,perceivedProgress:0,perceivedPerformanceUpdater:null,progress:null,timestamp:null,perceivedDuration:0,duration:0,request:null,response:null},n=t.allowMinimumUploadDuration,o=function(){i.request&&(i.perceivedPerformanceUpdater.clear(),i.request.abort&&i.request.abort(),i.complete=!0)},r=n?function(){return i.progress?Math.min(i.progress,i.perceivedProgress):null}:function(){return i.progress||null},s=n?function(){return Math.min(i.duration,i.perceivedDuration)}:function(){return i.duration},a=Object.assign({},ve(),{process:function(t,o){var r=function(){0!==i.duration&&null!==i.progress&&a.fire("progress",a.getProgress())},s=function(){i.complete=!0,a.fire("load-perceived",i.response.body)};a.fire("start"),i.timestamp=Date.now(),i.perceivedPerformanceUpdater=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e3,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:25,n=arguments.length>4&&void 0!==arguments[4]?arguments[4]:250,o=null,r=Date.now();return t>0&&function s(){var a=Date.now()-r,l=Et(i,n);a+l>t&&(l=a+l-t);var c=a/t;c>=1||document.hidden?e(1):(e(c),o=setTimeout(s,l))}(),{clear:function(){clearTimeout(o)}}}((function(e){i.perceivedProgress=e,i.perceivedDuration=Date.now()-i.timestamp,r(),i.response&&1===i.perceivedProgress&&!i.complete&&s()}),n?Et(750,1500):0),i.request=e(t,o,(function(e){i.response=K(e)?e:{type:"load",code:200,body:""+e,headers:{}},i.duration=Date.now()-i.timestamp,i.progress=1,a.fire("load",i.response.body),(!n||n&&1===i.perceivedProgress)&&s()}),(function(e){i.perceivedPerformanceUpdater.clear(),a.fire("error",K(e)?e:{type:"error",code:0,body:""+e})}),(function(e,t,n){i.duration=Date.now()-i.timestamp,i.progress=e?t/n:null,r()}),(function(){i.perceivedPerformanceUpdater.clear(),a.fire("abort",i.response?i.response.body:null)}),(function(e){a.fire("transfer",e)}))},abort:o,getProgress:r,getDuration:s,reset:function(){o(),i.complete=!1,i.perceivedProgress=0,i.progress=0,i.timestamp=null,i.perceivedDuration=0,i.duration=0,i.request=null,i.response=null}});return a},St=function(e){return e.substring(0,e.lastIndexOf("."))||e},Tt=function(e){var t=[e.name,e.size,e.type];return e instanceof Blob||Xe(e)?t[0]=e.name||et():Xe(e)?(t[1]=e.length,t[2]=nt(e)):j(e)&&(t[0]=Ke(e),t[1]=0,t[2]="application/octet-stream"),{name:t[0],size:t[1],type:t[2]}},Mt=function(e){return!!(e instanceof File||e instanceof Blob&&e.name)},Bt=function e(t){if(!K(t))return t;var i=O(t)?[]:{};for(var n in t)if(t.hasOwnProperty(n)){var o=t[n];i[n]=o&&K(o)?e(o):o}return i},Rt=function(e,t){var i=function(e,t){return $(t)?0:j(t)?e.findIndex((function(e){return e.id===t})):-1}(e,t);if(!(i<0))return e[i]||null},It=function(e,t,i,n,o,r){var s=ut(null,e,{method:"GET",responseType:"blob"});return s.onload=function(i){var n=i.getAllResponseHeaders(),o=lt(n).name||Ke(e);t(ht("load",i.status,tt(i.response,o),n))},s.onerror=function(e){i(ht("error",e.status,e.statusText,e.getAllResponseHeaders()))},s.onheaders=function(e){r(ht("headers",e.status,null,e.getAllResponseHeaders()))},s.ontimeout=pt(i),s.onprogress=n,s.onabort=o,s},Lt=function(e){return 0===e.indexOf("//")&&(e=location.protocol+e),e.toLowerCase().replace("blob:","").replace(/([a-z])?:\/\//,"$1").split("/")[0]},Dt=function(e){return function(){return G(e)?e.apply(void 0,arguments):e}},Ot=function(e,t){clearTimeout(t.listUpdateTimeout),t.listUpdateTimeout=setTimeout((function(){e("DID_UPDATE_ITEMS",{items:Pe(t.items)})}),0)},$t=function(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),n=1;n0&&void 0!==arguments[0]?arguments[0]:{},n=i.query,o=i.success,r=void 0===o?function(){}:o,s=i.failure,a=void 0===s?function(){}:s,l=fe(i,["query","success","failure"]),c=Oe(e.items,n);c?t(c,r,a,l||{}):a({error:ht("error",0,"Item not found"),file:null})}},Ft=function(e,t,i){return{ABORT_ALL:function(){Pe(i.items).forEach((function(e){e.freeze(),e.abortLoad(),e.abortProcessing()}))},DID_SET_FILES:function(t){var n=t.value,o=(void 0===n?[]:n).map((function(e){return{source:e.source?e.source:e,options:e.options}})),r=Pe(i.items);r.forEach((function(t){o.find((function(e){return e.source===t.source||e.source===t.file}))||e("REMOVE_ITEM",{query:t,remove:!1})})),r=Pe(i.items),o.forEach((function(t,i){r.find((function(e){return e.source===t.source||e.file===t.source}))||e("ADD_ITEM",Object.assign({},t,{interactionMethod:de,index:i}))}))},DID_UPDATE_ITEM_METADATA:function(n){var o=n.id,r=n.action,s=n.change;s.silent||(clearTimeout(i.itemUpdateTimeout),i.itemUpdateTimeout=setTimeout((function(){var n,a=Rt(i.items,o);if(t("IS_ASYNC")){a.origin===Ee.LOCAL&&e("DID_LOAD_ITEM",{id:a.id,error:null,serverFileReference:a.source});var l=function(){setTimeout((function(){e("REQUEST_ITEM_PROCESSING",{query:o})}),32)};return a.status===_e.PROCESSING_COMPLETE?(n=i.options.instantUpload,void a.revert(_t(i.options.server.url,i.options.server.revert),t("GET_FORCE_REVERT")).then(n?l:function(){}).catch((function(){}))):a.status===_e.PROCESSING?function(e){a.abortProcessing().then(e?l:function(){})}(i.options.instantUpload):void(i.options.instantUpload&&l())}Be("SHOULD_PREPARE_OUTPUT",!1,{item:a,query:t,action:r,change:s}).then((function(i){var n=t("GET_BEFORE_PREPARE_FILE");n&&(i=n(a,i)),i&&e("REQUEST_PREPARE_OUTPUT",{query:o,item:a,success:function(t){e("DID_PREPARE_OUTPUT",{id:o,file:t})}},!0)}))}),0))},MOVE_ITEM:function(e){var t=e.query,n=e.index,o=Oe(i.items,t);if(o){var r=i.items.indexOf(o);r!==(n=Ye(n,0,i.items.length-1))&&i.items.splice(n,0,i.items.splice(r,1)[0])}},SORT:function(n){var o=n.compare;Pt(i,o),e("DID_SORT_ITEMS",{items:t("GET_ACTIVE_ITEMS")})},ADD_ITEMS:function(i){var n=i.items,o=i.index,r=i.interactionMethod,s=i.success,a=void 0===s?function(){}:s,l=i.failure,c=void 0===l?function(){}:l,d=o;if(-1===o||void 0===o){var u=t("GET_ITEM_INSERT_LOCATION"),h=t("GET_TOTAL_ITEMS");d="before"===u?0:h}var p=t("GET_IGNORED_FILES"),f=n.filter((function(e){return Mt(e)?!p.includes(e.name.toLowerCase()):!$(e)})).map((function(t){return new Promise((function(i,n){e("ADD_ITEM",{interactionMethod:r,source:t.source||t,success:i,failure:n,index:d++,options:t.options||{}})}))}));Promise.all(f).then(a).catch(c)},ADD_ITEM:function(n){var r=n.source,s=n.index,a=void 0===s?-1:s,l=n.interactionMethod,c=n.success,d=void 0===c?function(){}:c,u=n.failure,h=void 0===u?function(){}:u,p=n.options,f=void 0===p?{}:p;if($(r))h({error:ht("error",0,"No source"),file:null});else if(!Mt(r)||!i.options.ignoredFiles.includes(r.name.toLowerCase())){if(!function(e){var t=Pe(e.items).length;if(!e.options.allowMultiple)return 0===t;var i=e.options.maxFiles;return null===i||t0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=ue(),r={archived:!1,frozen:!1,released:!1,source:null,file:i,serverFileReference:t,transferId:null,processingAborted:!1,status:t?_e.PROCESSING_COMPLETE:_e.INIT,activeLoader:null,activeProcessor:null},s=null,a={},l=function(e){return r.status=e},c=function(e){if(!r.released&&!r.frozen){for(var t=arguments.length,i=new Array(t>1?t-1:0),n=1;n=400&&t.code<500)return e("DID_THROW_ITEM_INVALID",{id:y,error:t,status:{main:n,sub:t.code+" ("+t.body+")"}}),void h({error:t,file:we(v)});e("DID_THROW_ITEM_LOAD_ERROR",{id:y,error:t,status:{main:n,sub:i.options.labelTapToRetry}})})),v.on("load-file-error",(function(t){e("DID_THROW_ITEM_INVALID",{id:y,error:t.status,status:t.status}),h({error:t.status,file:we(v)})})),v.on("load-abort",(function(){e("REMOVE_ITEM",{query:y})})),v.on("load-skip",(function(){e("COMPLETE_LOAD_ITEM",{query:y,item:v,data:{source:r,success:d}})})),v.on("load",(function(){var n=function(n){n?(v.on("metadata-update",(function(t){e("DID_UPDATE_ITEM_METADATA",{id:y,change:t})})),Be("SHOULD_PREPARE_OUTPUT",!1,{item:v,query:t}).then((function(n){var o=t("GET_BEFORE_PREPARE_FILE");o&&(n=o(v,n));var s=function(){e("COMPLETE_LOAD_ITEM",{query:y,item:v,data:{source:r,success:d}}),Ot(e,i)};n?e("REQUEST_PREPARE_OUTPUT",{query:y,item:v,success:function(t){e("DID_PREPARE_OUTPUT",{id:y,file:t}),s()}},!0):s()}))):e("REMOVE_ITEM",{query:y})};Be("DID_LOAD_ITEM",v,{query:t,dispatch:e}).then((function(){$t(t("GET_BEFORE_ADD_FILE"),we(v)).then(n)})).catch((function(t){if(!t||!t.error||!t.status)return n(!1);e("DID_THROW_ITEM_INVALID",{id:y,error:t.error,status:t.status})}))})),v.on("process-start",(function(){e("DID_START_ITEM_PROCESSING",{id:y})})),v.on("process-progress",(function(t){e("DID_UPDATE_ITEM_PROCESS_PROGRESS",{id:y,progress:t})})),v.on("process-error",(function(t){e("DID_THROW_ITEM_PROCESSING_ERROR",{id:y,error:t,status:{main:Dt(i.options.labelFileProcessingError)(t),sub:i.options.labelTapToRetry}})})),v.on("process-revert-error",(function(t){e("DID_THROW_ITEM_PROCESSING_REVERT_ERROR",{id:y,error:t,status:{main:Dt(i.options.labelFileProcessingRevertError)(t),sub:i.options.labelTapToRetry}})})),v.on("process-complete",(function(t){e("DID_COMPLETE_ITEM_PROCESSING",{id:y,error:null,serverFileReference:t}),e("DID_DEFINE_VALUE",{id:y,value:t})})),v.on("process-abort",(function(){e("DID_ABORT_ITEM_PROCESSING",{id:y})})),v.on("process-revert",(function(){e("DID_REVERT_ITEM_PROCESSING",{id:y}),e("DID_DEFINE_VALUE",{id:y,value:null})})),e("DID_ADD_ITEM",{id:y,index:a,interactionMethod:l}),Ot(e,i);var w=i.options.server||{},x=w.url,_=w.load,E=w.restore,k=w.fetch;v.load(r,ct(b===Ee.INPUT?j(r)&&function(e){return(e.indexOf(":")>-1||e.indexOf("//")>-1)&&Lt(location.href)!==Lt(e)}(r)&&k?mt(x,k):It:mt(x,b===Ee.LIMBO?E:_)),(function(e,i,n){Be("LOAD_FILE",e,{query:t}).then(i).catch(n)}))}},REQUEST_PREPARE_OUTPUT:function(e){var i=e.item,n=e.success,o=e.failure,r=void 0===o?function(){}:o,s={error:ht("error",0,"Item not found"),file:null};if(i.archived)return r(s);Be("PREPARE_OUTPUT",i.file,{query:t,item:i}).then((function(e){Be("COMPLETE_PREPARE_OUTPUT",e,{query:t,item:i}).then((function(e){if(i.archived)return r(s);n(e)}))}))},COMPLETE_LOAD_ITEM:function(n){var o=n.item,r=n.data,s=r.success,a=r.source,l=t("GET_ITEM_INSERT_LOCATION");if(G(l)&&a&&Pt(i,l),e("DID_LOAD_ITEM",{id:o.id,error:null,serverFileReference:o.origin===Ee.INPUT?null:a}),s(we(o)),o.origin!==Ee.LOCAL)return o.origin===Ee.LIMBO?(e("DID_COMPLETE_ITEM_PROCESSING",{id:o.id,error:null,serverFileReference:a}),void e("DID_DEFINE_VALUE",{id:o.id,value:o.serverId||a})):void(t("IS_ASYNC")&&i.options.instantUpload&&e("REQUEST_ITEM_PROCESSING",{query:o.id}));e("DID_LOAD_LOCAL_ITEM",{id:o.id})},RETRY_ITEM_LOAD:Nt(i,(function(e){e.retryLoad()})),REQUEST_ITEM_PREPARE:Nt(i,(function(t,i,n){e("REQUEST_PREPARE_OUTPUT",{query:t.id,item:t,success:function(n){e("DID_PREPARE_OUTPUT",{id:t.id,file:n}),i({file:t,output:n})},failure:n},!0)})),REQUEST_ITEM_PROCESSING:Nt(i,(function(n,o,r){if(n.status===_e.IDLE||n.status===_e.PROCESSING_ERROR)n.status!==_e.PROCESSING_QUEUED&&(n.requestProcessing(),e("DID_REQUEST_ITEM_PROCESSING",{id:n.id}),e("PROCESS_ITEM",{query:n,success:o,failure:r},!0));else{var s=function(){return e("REQUEST_ITEM_PROCESSING",{query:n,success:o,failure:r})},a=function(){return document.hidden?s():setTimeout(s,32)};n.status===_e.PROCESSING_COMPLETE||n.status===_e.PROCESSING_REVERT_ERROR?n.revert(_t(i.options.server.url,i.options.server.revert),t("GET_FORCE_REVERT")).then(a).catch((function(){})):n.status===_e.PROCESSING&&n.abortProcessing().then(a)}})),PROCESS_ITEM:Nt(i,(function(n,o,r){var s=t("GET_MAX_PARALLEL_UPLOADS");if(t("GET_ITEMS_BY_STATUS",_e.PROCESSING).length!==s){if(n.status!==_e.PROCESSING){var a=function t(){var n=i.processingQueue.shift();if(n){var o=n.id,r=n.success,s=n.failure,a=Oe(i.items,o);a&&!a.archived?e("PROCESS_ITEM",{query:o,success:r,failure:s},!0):t()}};n.onOnce("process-complete",(function(){o(we(n)),a();var r=i.options.server;if(i.options.instantUpload&&n.origin===Ee.LOCAL&&G(r.remove)){var s=function(){};n.origin=Ee.LIMBO,i.options.server.remove(n.source,s,s)}t("GET_ITEMS_BY_STATUS",_e.PROCESSING_COMPLETE).length===i.items.length&&e("DID_COMPLETE_ITEM_PROCESSING_ALL")})),n.onOnce("process-error",(function(e){r({error:e,file:we(n)}),a()}));var l=i.options;n.process(kt(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0,i=arguments.length>2?arguments[2]:void 0,n=arguments.length>3?arguments[3]:void 0;return"function"==typeof t?function(){for(var e=arguments.length,o=new Array(e),r=0;ri.options.chunkSize||i.options.chunkUploads&&i.options.chunkForce)&&n.revert(_t(i.options.server.url,i.options.server.revert),t("GET_FORCE_REVERT")),a())})),ABORT_ITEM_LOAD:Nt(i,(function(e){e.abortLoad()})),ABORT_ITEM_PROCESSING:Nt(i,(function(t){t.serverId?e("REVERT_ITEM_PROCESSING",{id:t.id}):t.abortProcessing().then((function(){i.options.instantUpload&&e("REMOVE_ITEM",{query:t.id})}))})),REQUEST_REVERT_ITEM_PROCESSING:Nt(i,(function(n){if(i.options.instantUpload){var o=function(t){t&&e("REVERT_ITEM_PROCESSING",{query:n})},r=t("GET_BEFORE_REMOVE_FILE");if(!r)return o(!0);var s=r(we(n));return null==s?o(!0):"boolean"==typeof s?o(s):void("function"==typeof s.then&&s.then(o))}e("REVERT_ITEM_PROCESSING",{query:n})})),REVERT_ITEM_PROCESSING:Nt(i,(function(n){n.revert(_t(i.options.server.url,i.options.server.revert),t("GET_FORCE_REVERT")).then((function(){(i.options.instantUpload||function(e){return!Mt(e.file)}(n))&&e("REMOVE_ITEM",{query:n.id})})).catch((function(){}))})),SET_OPTIONS:function(t){var i=t.options,n=Object.keys(i),o=Ut.filter((function(e){return n.includes(e)}));[].concat(ge(o),ge(Object.keys(i).filter((function(e){return!o.includes(e)})))).forEach((function(t){e("SET_"+ie(t,"_").toUpperCase(),{value:i[t]})}))}}},Ut=["server"],jt=function(e){return document.createElement(e)},Wt=function(e,t){var i=e.childNodes[0];i?t!==i.nodeValue&&(i.nodeValue=t):(i=document.createTextNode(t),e.appendChild(i))},zt=function(e,t,i,n){var o=(n%360-90)*Math.PI/180;return{x:e+i*Math.cos(o),y:t+i*Math.sin(o)}},Ht=function(e,t,i,n,o){var r=1;return o>n&&o-n<=.5&&(r=0),n>o&&n-o>=.5&&(r=0),function(e,t,i,n,o,r){var s=zt(e,t,i,o),a=zt(e,t,i,n);return["M",s.x,s.y,"A",i,i,0,r,0,a.x,a.y].join(" ")}(e,t,i,360*Math.min(.9999,n),360*Math.min(.9999,o),r)},qt=R({tag:"div",name:"progress-indicator",ignoreRectUpdate:!0,ignoreRect:!0,create:function(e){var t=e.root,i=e.props;i.spin=!1,i.progress=0,i.opacity=0;var n=c("svg");t.ref.path=c("path",{"stroke-width":2,"stroke-linecap":"round"}),n.appendChild(t.ref.path),t.ref.svg=n,t.appendChild(n)},write:function(e){var t=e.root,i=e.props;if(0!==i.opacity){i.align&&(t.element.dataset.align=i.align);var n=parseInt(r(t.ref.path,"stroke-width"),10),o=.5*t.rect.element.width,s=0,a=0;i.spin?(s=0,a=.5):(s=0,a=i.progress);var l=Ht(o,o,o-n,s,a);r(t.ref.path,"d",l),r(t.ref.path,"stroke-opacity",i.spin||i.progress>0?1:0)}},mixins:{apis:["progress","spin","align"],styles:["opacity"],animations:{opacity:{type:"tween",duration:500},progress:{type:"spring",stiffness:.95,damping:.65,mass:10}}}}),Vt=R({tag:"button",attributes:{type:"button"},ignoreRect:!0,ignoreRectUpdate:!0,name:"file-action-button",mixins:{apis:["label"],styles:["translateX","translateY","scaleX","scaleY","opacity"],animations:{scaleX:"spring",scaleY:"spring",translateX:"spring",translateY:"spring",opacity:{type:"tween",duration:250}},listeners:!0},create:function(e){var t=e.root,i=e.props;t.element.innerHTML=(i.icon||"")+""+i.label+"",i.isDisabled=!1},write:function(e){var t=e.root,i=e.props,n=i.isDisabled,o=t.query("GET_DISABLED")||0===i.opacity;o&&!n?(i.isDisabled=!0,r(t.element,"disabled","disabled")):!o&&n&&(i.isDisabled=!1,t.element.removeAttribute("disabled"))}}),Gt=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:".",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1e3,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=n.labelBytes,r=void 0===o?"bytes":o,s=n.labelKilobytes,a=void 0===s?"KB":s,l=n.labelMegabytes,c=void 0===l?"MB":l,d=n.labelGigabytes,u=void 0===d?"GB":d,h=i,p=i*i,f=i*i*i;return(e=Math.round(Math.abs(e)))0&&(t.height=t.ref.container.rect.element.height)),o&&(t.ref.panel.height=null),t.ref.panel.height=t.height})),Si=R({create:function(e){var t=e.root,i=e.props;if(t.ref.handleClick=function(e){return t.dispatch("DID_ACTIVATE_ITEM",{id:i.id})},t.element.id="filepond--item-"+i.id,t.element.addEventListener("click",t.ref.handleClick),t.ref.container=t.appendChildView(t.createChildView(bi,{id:i.id})),t.ref.panel=t.appendChildView(t.createChildView(yi,{name:"item-panel"})),t.ref.panel.height=null,i.markedForRemoval=!1,t.query("GET_ALLOW_REORDER")){t.element.dataset.dragState="idle";t.element.addEventListener("pointerdown",(function(e){if(e.isPrimary){var n=!1,o={x:e.pageX,y:e.pageY};i.dragOrigin={x:t.translateX,y:t.translateY},i.dragCenter={x:e.offsetX,y:e.offsetY};var r=(a=t.query("GET_ACTIVE_ITEMS"),l=a.map((function(e){return e.id})),c=void 0,{setIndex:function(e){c=e},getIndex:function(){return c},getItemIndex:function(e){return l.indexOf(e.id)}});t.dispatch("DID_GRAB_ITEM",{id:i.id,dragState:r});var s=function(e){e.isPrimary&&(e.stopPropagation(),e.preventDefault(),i.dragOffset={x:e.pageX-o.x,y:e.pageY-o.y},i.dragOffset.x*i.dragOffset.x+i.dragOffset.y*i.dragOffset.y>16&&!n&&(n=!0,t.element.removeEventListener("click",t.ref.handleClick)),t.dispatch("DID_DRAG_ITEM",{id:i.id,dragState:r}))};document.addEventListener("pointermove",s),document.addEventListener("pointerup",(function e(a){a.isPrimary&&(document.removeEventListener("pointermove",s),document.removeEventListener("pointerup",e),i.dragOffset={x:a.pageX-o.x,y:a.pageY-o.y},t.dispatch("DID_DROP_ITEM",{id:i.id,dragState:r}),n&&setTimeout((function(){return t.element.addEventListener("click",t.ref.handleClick)}),0))}))}var a,l,c}))}},write:ki,destroy:function(e){var t=e.root,i=e.props;t.element.removeEventListener("click",t.ref.handleClick),t.dispatch("RELEASE_ITEM",{query:i.id})},tag:"li",name:"item",mixins:{apis:["id","interactionMethod","markedForRemoval","spawnDate","dragCenter","dragOrigin","dragOffset"],styles:["translateX","translateY","scaleX","scaleY","opacity","height"],animations:{scaleX:xi,scaleY:xi,translateX:wi,translateY:wi,opacity:{type:"tween",duration:150}}}}),Ti=function(e,t){return Math.max(1,Math.floor((e+1)/t))},Mi=function(e,t,i){if(i){var n=e.rect.element.width,o=t.length,r=null;if(0===o||i.topb){if(i.left3&&void 0!==arguments[3]?arguments[3]:0,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1;e.dragOffset?(e.translateX=null,e.translateY=null,e.translateX=e.dragOrigin.x+e.dragOffset.x,e.translateY=e.dragOrigin.y+e.dragOffset.y,e.scaleX=1.025,e.scaleY=1.025):(e.translateX=t,e.translateY=i,Date.now()>e.spawnDate&&(0===e.opacity&&Ii(e,t,i,n,o),e.scaleX=1,e.scaleY=1,e.opacity=1))},Ii=function(e,t,i,n,o){e.interactionMethod===de?(e.translateX=null,e.translateX=t,e.translateY=null,e.translateY=i):e.interactionMethod===ae?(e.translateX=null,e.translateX=t-20*n,e.translateY=null,e.translateY=i-10*o,e.scaleX=.8,e.scaleY=.8):e.interactionMethod===le?(e.translateY=null,e.translateY=i-30):e.interactionMethod===se&&(e.translateX=null,e.translateX=t-30,e.translateY=null)},Li=function(e){return e.rect.element.height+.5*e.rect.element.marginBottom+.5*e.rect.element.marginTop},Di=I({DID_ADD_ITEM:function(e){var t=e.root,i=e.action,n=i.id,o=i.index,r=i.interactionMethod;t.ref.addIndex=o;var s=Date.now(),a=s,l=1;if(r!==de){l=0;var c=t.query("GET_ITEM_INSERT_INTERVAL"),d=s-t.ref.lastItemSpanwDate;a=dl&&(p=l);var f=Math.floor(l/p+1);Bi.setHeight=u*f,Bi.setWidth=h*p;var g={y:Math.floor(d.y/u),x:Math.floor(d.x/h),getGridIndex:function(){return d.y>Bi.getHeight||d.y<0||d.x>Bi.getWidth||d.x<0?c:this.y*p+this.x},getColIndex:function(){for(var e=i.query("GET_ACTIVE_ITEMS"),t=i.childViews.filter((function(e){return e.rect.element.height})),n=e.map((function(e){return t.find((function(t){return t.id===e.id}))})),o=n.findIndex((function(e){return e===a})),r=Li(a),s=n.length,l=s,c=0,u=0,h=0;hh){if(d.y1?g.getGridIndex():g.getColIndex();i.dispatch("MOVE_ITEM",{query:a,index:m});var A=r.getIndex();if(void 0===A||A!==m){if(r.setIndex(m),void 0===A)return;i.dispatch("DID_REORDER_ITEMS",{items:i.query("GET_ACTIVE_ITEMS"),origin:c,target:m})}}}}),Oi=R({create:function(e){var t=e.root;r(t.element,"role","list"),t.ref.lastItemSpanwDate=Date.now()},write:function(e){var t=e.root,i=e.props,n=e.actions,o=e.shouldOptimize;Di({root:t,props:i,actions:n});var r=i.dragCoordinates,s=t.rect.element.width,a=t.childViews.filter((function(e){return e.rect.element.height})),l=t.query("GET_ACTIVE_ITEMS").map((function(e){return a.find((function(t){return t.id===e.id}))})).filter((function(e){return e})),c=r?Mi(t,l,r):null,d=t.ref.addIndex||null;t.ref.addIndex=null;var u=0,h=0,p=0;if(0!==l.length){var f=l[0].rect.element,g=f.marginTop+f.marginBottom,m=f.marginLeft+f.marginRight,A=f.width+m,b=f.height+g,v=Ti(s,A);if(1===v){var C=0,y=0;l.forEach((function(e,t){if(c){var i=t-c;y=-2===i?.25*-g:-1===i?.75*-g:0===i?.75*g:1===i?.25*g:0}o&&(e.translateX=null,e.translateY=null),e.markedForRemoval||Ri(e,0,C+y);var n=(e.rect.element.height+g)*(e.markedForRemoval?e.opacity:1);C+=n}))}else{var w=0,x=0;l.forEach((function(e,t){t===c&&(u=1),t===d&&(p+=1),e.markedForRemoval&&e.opacity<.5&&(h-=1);var i=t+p+u+h,n=i%v,r=Math.floor(i/v),s=n*A,a=r*b,l=Math.sign(s-w),f=Math.sign(a-x);w=s,x=a,e.markedForRemoval||(o&&(e.translateX=null,e.translateY=null),Ri(e,s,a,l,f))}))}}},tag:"ul",name:"list",didWriteView:function(e){var t=e.root;t.childViews.filter((function(e){return e.markedForRemoval&&0===e.opacity&&e.resting})).forEach((function(e){e._destroy(),t.removeChildView(e)}))},filterFrameActionsForChild:function(e,t){return t.filter((function(t){return!t.data||!t.data.id||e.id===t.data.id}))},mixins:{apis:["dragCoordinates"]}}),$i=I({DID_DRAG:function(e){var t=e.root,i=e.props,n=e.action;t.query("GET_ITEM_INSERT_LOCATION_FREEDOM")&&(i.dragCoordinates={left:n.position.scopeLeft-t.ref.list.rect.element.left,top:n.position.scopeTop-(t.rect.outer.top+t.rect.element.marginTop+t.rect.element.scrollTop)})},DID_END_DRAG:function(e){e.props.dragCoordinates=null}}),Pi=R({create:function(e){var t=e.root,i=e.props;t.ref.list=t.appendChildView(t.createChildView(Oi)),i.dragCoordinates=null,i.overflowing=!1},write:function(e){var t=e.root,i=e.props,n=e.actions;if($i({root:t,props:i,actions:n}),t.ref.list.dragCoordinates=i.dragCoordinates,i.overflowing&&!i.overflow&&(i.overflowing=!1,t.element.dataset.state="",t.height=null),i.overflow){var o=Math.round(i.overflow);o!==t.height&&(i.overflowing=!0,t.element.dataset.state="overflow",t.height=o)}},name:"list-scroller",mixins:{apis:["overflow","dragCoordinates"],styles:["height","translateY"],animations:{translateY:"spring"}}}),Ni=function(e,t,i){i?r(e,t,arguments.length>3&&void 0!==arguments[3]?arguments[3]:""):e.removeAttribute(t)},Fi=function(e){var t=e.root,i=e.action;t.query("GET_ALLOW_SYNC_ACCEPT_ATTRIBUTE")&&Ni(t.element,"accept",!!i.value,i.value?i.value.join(","):"")},Ui=function(e){var t=e.root,i=e.action;Ni(t.element,"multiple",i.value)},ji=function(e){var t=e.root,i=e.action;Ni(t.element,"webkitdirectory",i.value)},Wi=function(e){var t=e.root,i=t.query("GET_DISABLED"),n=t.query("GET_ALLOW_BROWSE"),o=i||!n;Ni(t.element,"disabled",o)},zi=function(e){var t=e.root;e.action.value?0===t.query("GET_TOTAL_ITEMS")&&Ni(t.element,"required",!0):Ni(t.element,"required",!1)},Hi=function(e){var t=e.root,i=e.action;Ni(t.element,"capture",!!i.value,!0===i.value?"":i.value)},qi=function(e){var t=e.root,i=t.element;t.query("GET_TOTAL_ITEMS")>0?(Ni(i,"required",!1),Ni(i,"name",!1)):(Ni(i,"name",!0,t.query("GET_NAME")),t.query("GET_CHECK_VALIDITY")&&i.setCustomValidity(""),t.query("GET_REQUIRED")&&Ni(i,"required",!0))},Vi=R({tag:"input",name:"browser",ignoreRect:!0,ignoreRectUpdate:!0,attributes:{type:"file"},create:function(e){var t=e.root,i=e.props;t.element.id="filepond--browser-"+i.id,r(t.element,"name",t.query("GET_NAME")),r(t.element,"aria-controls","filepond--assistant-"+i.id),r(t.element,"aria-labelledby","filepond--drop-label-"+i.id),Fi({root:t,action:{value:t.query("GET_ACCEPTED_FILE_TYPES")}}),Ui({root:t,action:{value:t.query("GET_ALLOW_MULTIPLE")}}),ji({root:t,action:{value:t.query("GET_ALLOW_DIRECTORIES_ONLY")}}),Wi({root:t}),zi({root:t,action:{value:t.query("GET_REQUIRED")}}),Hi({root:t,action:{value:t.query("GET_CAPTURE_METHOD")}}),t.ref.handleChange=function(e){if(t.element.value){var n=Array.from(t.element.files).map((function(e){return e._relativePath=e.webkitRelativePath,e}));setTimeout((function(){i.onload(n),function(e){if(e&&""!==e.value){try{e.value=""}catch(e){}if(e.value){var t=jt("form"),i=e.parentNode,n=e.nextSibling;t.appendChild(e),t.reset(),n?i.insertBefore(e,n):i.appendChild(e)}}}(t.element)}),250)}},t.element.addEventListener("change",t.ref.handleChange)},destroy:function(e){var t=e.root;t.element.removeEventListener("change",t.ref.handleChange)},write:I({DID_LOAD_ITEM:qi,DID_REMOVE_ITEM:qi,DID_THROW_ITEM_INVALID:function(e){var t=e.root;t.query("GET_CHECK_VALIDITY")&&t.element.setCustomValidity(t.query("GET_LABEL_INVALID_FIELD"))},DID_SET_DISABLED:Wi,DID_SET_ALLOW_BROWSE:Wi,DID_SET_ALLOW_DIRECTORIES_ONLY:ji,DID_SET_ALLOW_MULTIPLE:Ui,DID_SET_ACCEPTED_FILE_TYPES:Fi,DID_SET_CAPTURE_METHOD:Hi,DID_SET_REQUIRED:zi})}),Gi=13,Yi=32,Xi=function(e,t){e.innerHTML=t;var i=e.querySelector(".filepond--label-action");return i&&r(i,"tabindex","0"),t},Ki=R({name:"drop-label",ignoreRect:!0,create:function(e){var t=e.root,i=e.props,n=jt("label");r(n,"for","filepond--browser-"+i.id),r(n,"id","filepond--drop-label-"+i.id),r(n,"aria-hidden","true"),t.ref.handleKeyDown=function(e){(e.keyCode===Gi||e.keyCode===Yi)&&(e.preventDefault(),t.ref.label.click())},t.ref.handleClick=function(e){e.target===n||n.contains(e.target)||t.ref.label.click()},n.addEventListener("keydown",t.ref.handleKeyDown),t.element.addEventListener("click",t.ref.handleClick),Xi(n,i.caption),t.appendChild(n),t.ref.label=n},destroy:function(e){var t=e.root;t.ref.label.addEventListener("keydown",t.ref.handleKeyDown),t.element.removeEventListener("click",t.ref.handleClick)},write:I({DID_SET_LABEL_IDLE:function(e){var t=e.root,i=e.action;Xi(t.ref.label,i.value)}}),mixins:{styles:["opacity","translateX","translateY"],animations:{opacity:{type:"tween",duration:150},translateX:"spring",translateY:"spring"}}}),Qi=R({name:"drip-blob",ignoreRect:!0,mixins:{styles:["translateX","translateY","scaleX","scaleY","opacity"],animations:{scaleX:"spring",scaleY:"spring",translateX:"spring",translateY:"spring",opacity:{type:"tween",duration:250}}}}),Zi=I({DID_DRAG:function(e){var t=e.root,i=e.action;t.ref.blob?(t.ref.blob.translateX=i.position.scopeLeft,t.ref.blob.translateY=i.position.scopeTop,t.ref.blob.scaleX=1,t.ref.blob.scaleY=1,t.ref.blob.opacity=1):function(e){var t=e.root,i=.5*t.rect.element.width,n=.5*t.rect.element.height;t.ref.blob=t.appendChildView(t.createChildView(Qi,{opacity:0,scaleX:2.5,scaleY:2.5,translateX:i,translateY:n}))}({root:t})},DID_DROP:function(e){var t=e.root;t.ref.blob&&(t.ref.blob.scaleX=2.5,t.ref.blob.scaleY=2.5,t.ref.blob.opacity=0)},DID_END_DRAG:function(e){var t=e.root;t.ref.blob&&(t.ref.blob.opacity=0)}}),Ji=R({ignoreRect:!0,ignoreRectUpdate:!0,name:"drip",write:function(e){var t=e.root,i=e.props,n=e.actions;Zi({root:t,props:i,actions:n});var o=t.ref.blob;0===n.length&&o&&0===o.opacity&&(t.removeChildView(o),t.ref.blob=null)}}),en=function(e,t){try{var i=new DataTransfer;t.forEach((function(e){e instanceof File?i.items.add(e):i.items.add(new File([e],e.name,{type:e.type}))})),e.files=i.files}catch(e){return!1}return!0},tn=function(e,t){return e.ref.fields[t]},nn=function(e){e.query("GET_ACTIVE_ITEMS").forEach((function(t){e.ref.fields[t.id]&&e.element.appendChild(e.ref.fields[t.id])}))},on=function(e){var t=e.root;return nn(t)},rn=I({DID_SET_DISABLED:function(e){var t=e.root;t.element.disabled=t.query("GET_DISABLED")},DID_ADD_ITEM:function(e){var t=e.root,i=e.action,n=!(t.query("GET_ITEM",i.id).origin===Ee.LOCAL)&&t.query("SHOULD_UPDATE_FILE_INPUT"),o=jt("input");o.type=n?"file":"hidden",o.name=t.query("GET_NAME"),o.disabled=t.query("GET_DISABLED"),t.ref.fields[i.id]=o,nn(t)},DID_LOAD_ITEM:function(e){var t=e.root,i=e.action,n=tn(t,i.id);if(n&&(null!==i.serverFileReference&&(n.value=i.serverFileReference),t.query("SHOULD_UPDATE_FILE_INPUT"))){var o=t.query("GET_ITEM",i.id);en(n,[o.file])}},DID_REMOVE_ITEM:function(e){var t=e.root,i=e.action,n=tn(t,i.id);n&&(n.parentNode&&n.parentNode.removeChild(n),delete t.ref.fields[i.id])},DID_DEFINE_VALUE:function(e){var t=e.root,i=e.action,n=tn(t,i.id);n&&(null===i.value?n.removeAttribute("value"):n.value=i.value,nn(t))},DID_PREPARE_OUTPUT:function(e){var t=e.root,i=e.action;t.query("SHOULD_UPDATE_FILE_INPUT")&&setTimeout((function(){var e=tn(t,i.id);e&&en(e,[i.file])}),0)},DID_REORDER_ITEMS:on,DID_SORT_ITEMS:on}),sn=R({tag:"fieldset",name:"data",create:function(e){return e.root.ref.fields={}},write:rn,ignoreRect:!0}),an=["jpg","jpeg","png","gif","bmp","webp","svg","tiff"],ln=["css","csv","html","txt"],cn={zip:"zip|compressed",epub:"application/epub+zip"},dn=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return e=e.toLowerCase(),an.includes(e)?"image/"+("jpg"===e?"jpeg":"svg"===e?"svg+xml":e):ln.includes(e)?"text/"+e:cn[e]||""},un=function(e){return new Promise((function(t,i){var n=yn(e);if(n.length&&!hn(e))return t(n);pn(e).then(t)}))},hn=function(e){return!!e.files&&e.files.length>0},pn=function(e){return new Promise((function(t,i){var n=(e.items?Array.from(e.items):[]).filter((function(e){return fn(e)})).map((function(e){return gn(e)}));n.length?Promise.all(n).then((function(e){var i=[];e.forEach((function(e){i.push.apply(i,e)})),t(i.filter((function(e){return e})).map((function(e){return e._relativePath||(e._relativePath=e.webkitRelativePath),e})))})).catch(console.error):t(e.files?Array.from(e.files):[])}))},fn=function(e){if(vn(e)){var t=Cn(e);if(t)return t.isFile||t.isDirectory}return"file"===e.kind},gn=function(e){return new Promise((function(t,i){bn(e)?mn(Cn(e)).then(t).catch(i):t([e.getAsFile()])}))},mn=function(e){return new Promise((function(t,i){var n=[],o=0,r=0,s=function(){0===r&&0===o&&t(n)};!function e(t){o++;var a=t.createReader();!function t(){a.readEntries((function(i){if(0===i.length)return o--,void s();i.forEach((function(t){t.isDirectory?e(t):(r++,t.file((function(e){var i=An(e);t.fullPath&&(i._relativePath=t.fullPath),n.push(i),r--,s()})))})),t()}),i)}()}(e)}))},An=function(e){if(e.type.length)return e;var t=e.lastModifiedDate,i=e.name,n=dn(Qe(e.name));return n.length?((e=e.slice(0,e.size,n)).name=i,e.lastModifiedDate=t,e):e},bn=function(e){return vn(e)&&(Cn(e)||{}).isDirectory},vn=function(e){return"webkitGetAsEntry"in e},Cn=function(e){return e.webkitGetAsEntry()},yn=function(e){var t=[];try{if((t=xn(e)).length)return t;t=wn(e)}catch(e){}return t},wn=function(e){var t=e.getData("url");return"string"==typeof t&&t.length?[t]:[]},xn=function(e){var t=e.getData("text/html");if("string"==typeof t&&t.length){var i=t.match(/src\s*=\s*"(.+?)"/);if(i)return[i[1]]}return[]},_n=[],En=function(e){return{pageLeft:e.pageX,pageTop:e.pageY,scopeLeft:e.offsetX||e.layerX,scopeTop:e.offsetY||e.layerY}},kn=function(e){var t=_n.find((function(t){return t.element===e}));if(t)return t;var i=Sn(e);return _n.push(i),i},Sn=function(e){var t=[],i={dragenter:Rn,dragover:In,dragleave:Dn,drop:Ln},o={};n(i,(function(i,n){o[i]=n(e,t),e.addEventListener(i,o[i],!1)}));var r={element:e,addListener:function(s){return t.push(s),function(){t.splice(t.indexOf(s),1),0===t.length&&(_n.splice(_n.indexOf(r),1),n(i,(function(t){e.removeEventListener(t,o[t],!1)})))}}};return r},Tn=function(e,t){var i,n=function(e,t){return"elementFromPoint"in e||(e=document),e.elementFromPoint(t.x,t.y)}("getRootNode"in(i=t)?i.getRootNode():document,{x:e.pageX-window.pageXOffset,y:e.pageY-window.pageYOffset});return n===t||t.contains(n)},Mn=null,Bn=function(e,t){try{e.dropEffect=t}catch(e){}},Rn=function(e,t){return function(e){e.preventDefault(),Mn=e.target,t.forEach((function(t){var i=t.element,n=t.onenter;Tn(e,i)&&(t.state="enter",n(En(e)))}))}},In=function(e,t){return function(e){e.preventDefault();var i=e.dataTransfer;un(i).then((function(n){var o=!1;t.some((function(t){var r=t.filterElement,s=t.element,a=t.onenter,l=t.onexit,c=t.ondrag,d=t.allowdrop;Bn(i,"copy");var u=d(n);if(u)if(Tn(e,s)){if(o=!0,null===t.state)return t.state="enter",void a(En(e));if(t.state="over",r&&!u)return void Bn(i,"none");c(En(e))}else r&&!o&&Bn(i,"none"),t.state&&(t.state=null,l(En(e)));else Bn(i,"none")}))}))}},Ln=function(e,t){return function(e){e.preventDefault();var i=e.dataTransfer;un(i).then((function(i){t.forEach((function(t){var n=t.filterElement,o=t.element,r=t.ondrop,s=t.onexit,a=t.allowdrop;if(t.state=null,!n||Tn(e,o))return a(i)?void r(En(e),i):s(En(e))}))}))}},Dn=function(e,t){return function(e){Mn===e.target&&t.forEach((function(t){var i=t.onexit;t.state=null,i(En(e))}))}},On=function(e,t,i){e.classList.add("filepond--hopper");var n=i.catchesDropsOnPage,o=i.requiresDropOnElement,r=i.filterItems,s=void 0===r?function(e){return e}:r,a=function(e,t,i){var n=kn(t),o={element:e,filterElement:i,state:null,ondrop:function(){},onenter:function(){},ondrag:function(){},onexit:function(){},onload:function(){},allowdrop:function(){}};return o.destroy=n.addListener(o),o}(e,n?document.documentElement:e,o),l="",c="";a.allowdrop=function(e){return t(s(e))},a.ondrop=function(e,i){var n=s(i);t(n)?(c="drag-drop",d.onload(n,e)):d.ondragend(e)},a.ondrag=function(e){d.ondrag(e)},a.onenter=function(e){c="drag-over",d.ondragstart(e)},a.onexit=function(e){c="drag-exit",d.ondragend(e)};var d={updateHopperState:function(){l!==c&&(e.dataset.hopperState=c,l=c)},onload:function(){},ondragstart:function(){},ondrag:function(){},ondragend:function(){},destroy:function(){a.destroy()}};return d},$n=!1,Pn=[],Nn=function(e){var t=document.activeElement;if(t&&/textarea|input/i.test(t.nodeName)){for(var i=!1,n=t;n!==document.body;){if(n.classList.contains("filepond--root")){i=!0;break}n=n.parentNode}if(!i)return}un(e.clipboardData).then((function(e){e.length&&Pn.forEach((function(t){return t(e)}))}))},Fn=function(){var e=function(e){t.onload(e)},t={destroy:function(){var t;t=e,be(Pn,Pn.indexOf(t)),0===Pn.length&&(document.removeEventListener("paste",Nn),$n=!1)},onload:function(){}};return function(e){Pn.includes(e)||(Pn.push(e),$n||($n=!0,document.addEventListener("paste",Nn)))}(e),t},Un=null,jn=null,Wn=[],zn=function(e,t){e.element.textContent=t},Hn=function(e,t,i){var n=e.query("GET_TOTAL_ITEMS");zn(e,i+" "+t+", "+n+" "+(1===n?e.query("GET_LABEL_FILE_COUNT_SINGULAR"):e.query("GET_LABEL_FILE_COUNT_PLURAL"))),clearTimeout(jn),jn=setTimeout((function(){!function(e){e.element.textContent=""}(e)}),1500)},qn=function(e){return e.element.parentNode.contains(document.activeElement)},Vn=function(e){var t=e.root,i=e.action,n=t.query("GET_ITEM",i.id).filename,o=t.query("GET_LABEL_FILE_PROCESSING_ABORTED");zn(t,n+" "+o)},Gn=function(e){var t=e.root,i=e.action,n=t.query("GET_ITEM",i.id).filename;zn(t,i.status.main+" "+n+" "+i.status.sub)},Yn=R({create:function(e){var t=e.root,i=e.props;t.element.id="filepond--assistant-"+i.id,r(t.element,"role","status"),r(t.element,"aria-live","polite"),r(t.element,"aria-relevant","additions")},ignoreRect:!0,ignoreRectUpdate:!0,write:I({DID_LOAD_ITEM:function(e){var t=e.root,i=e.action;if(qn(t)){t.element.textContent="";var n=t.query("GET_ITEM",i.id);Wn.push(n.filename),clearTimeout(Un),Un=setTimeout((function(){Hn(t,Wn.join(", "),t.query("GET_LABEL_FILE_ADDED")),Wn.length=0}),750)}},DID_REMOVE_ITEM:function(e){var t=e.root,i=e.action;if(qn(t)){var n=i.item;Hn(t,n.filename,t.query("GET_LABEL_FILE_REMOVED"))}},DID_COMPLETE_ITEM_PROCESSING:function(e){var t=e.root,i=e.action,n=t.query("GET_ITEM",i.id).filename,o=t.query("GET_LABEL_FILE_PROCESSING_COMPLETE");zn(t,n+" "+o)},DID_ABORT_ITEM_PROCESSING:Vn,DID_REVERT_ITEM_PROCESSING:Vn,DID_THROW_ITEM_REMOVE_ERROR:Gn,DID_THROW_ITEM_LOAD_ERROR:Gn,DID_THROW_ITEM_INVALID:Gn,DID_THROW_ITEM_PROCESSING_ERROR:Gn}),tag:"span",name:"assistant"}),Xn=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"-";return e.replace(new RegExp(t+".","g"),(function(e){return e.charAt(1).toUpperCase()}))},Kn=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:16,i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],n=Date.now(),o=null;return function(){for(var r=arguments.length,s=new Array(r),a=0;a=0?1:0,g=s.find((function(e){return e.markedForRemoval&&e.opacity<.45}))?-1:0,m=s.length+f+g,A=Ti(a,h);return 1===A?s.forEach((function(e){var n=e.rect.element.height+d;i+=n,t+=n*e.opacity})):(i=Math.ceil(m/A)*p,t=i),{visual:t,bounds:i}},eo=function(e){var t=e.ref.measureHeight||null;return{cappedHeight:parseInt(e.style.maxHeight,10)||null,fixedHeight:0===t?null:t}},to=function(e,t){var i=e.query("GET_ALLOW_REPLACE"),n=e.query("GET_ALLOW_MULTIPLE"),o=e.query("GET_TOTAL_ITEMS"),r=e.query("GET_MAX_FILES"),s=t.length;return!n&&s>1?(e.dispatch("DID_THROW_MAX_FILES",{source:t,error:ht("warning",0,"Max files")}),!0):!(!n&&i||!(q(r=n?r:1)&&o+s>r)||(e.dispatch("DID_THROW_MAX_FILES",{source:t,error:ht("warning",0,"Max files")}),0))},io=function(e,t,i){var n=e.childViews[0];return Mi(n,t,{left:i.scopeLeft-n.rect.element.left,top:i.scopeTop-(e.rect.outer.top+e.rect.element.marginTop+e.rect.element.scrollTop)})},no=function(e){var t=e.query("GET_ALLOW_DROP"),i=e.query("GET_DISABLED"),n=t&&!i;if(n&&!e.ref.hopper){var o=On(e.element,(function(t){var i=e.query("GET_BEFORE_DROP_FILE")||function(){return!0};return!e.query("GET_DROP_VALIDATION")||t.every((function(t){return Re("ALLOW_HOPPER_ITEM",t,{query:e.query}).every((function(e){return!0===e}))&&i(t)}))}),{filterItems:function(t){var i=e.query("GET_IGNORED_FILES");return t.filter((function(e){return!Mt(e)||!i.includes(e.name.toLowerCase())}))},catchesDropsOnPage:e.query("GET_DROP_ON_PAGE"),requiresDropOnElement:e.query("GET_DROP_ON_ELEMENT")});o.onload=function(t,i){var n=e.ref.list.childViews[0].childViews.filter((function(e){return e.rect.element.height})),o=e.query("GET_ACTIVE_ITEMS").map((function(e){return n.find((function(t){return t.id===e.id}))})).filter((function(e){return e}));Be("ADD_ITEMS",t,{dispatch:e.dispatch}).then((function(t){if(to(e,t))return!1;e.dispatch("ADD_ITEMS",{items:t,index:io(e.ref.list,o,i),interactionMethod:ae})})),e.dispatch("DID_DROP",{position:i}),e.dispatch("DID_END_DRAG",{position:i})},o.ondragstart=function(t){e.dispatch("DID_START_DRAG",{position:t})},o.ondrag=Kn((function(t){e.dispatch("DID_DRAG",{position:t})})),o.ondragend=function(t){e.dispatch("DID_END_DRAG",{position:t})},e.ref.hopper=o,e.ref.drip=e.appendChildView(e.createChildView(Ji))}else!n&&e.ref.hopper&&(e.ref.hopper.destroy(),e.ref.hopper=null,e.removeChildView(e.ref.drip))},oo=function(e,t){var i=e.query("GET_ALLOW_BROWSE"),n=e.query("GET_DISABLED"),o=i&&!n;o&&!e.ref.browser?e.ref.browser=e.appendChildView(e.createChildView(Vi,Object.assign({},t,{onload:function(t){Be("ADD_ITEMS",t,{dispatch:e.dispatch}).then((function(t){if(to(e,t))return!1;e.dispatch("ADD_ITEMS",{items:t,index:-1,interactionMethod:le})}))}})),0):!o&&e.ref.browser&&(e.removeChildView(e.ref.browser),e.ref.browser=null)},ro=function(e){var t=e.query("GET_ALLOW_PASTE"),i=e.query("GET_DISABLED"),n=t&&!i;n&&!e.ref.paster?(e.ref.paster=Fn(),e.ref.paster.onload=function(t){Be("ADD_ITEMS",t,{dispatch:e.dispatch}).then((function(t){if(to(e,t))return!1;e.dispatch("ADD_ITEMS",{items:t,index:-1,interactionMethod:ce})}))}):!n&&e.ref.paster&&(e.ref.paster.destroy(),e.ref.paster=null)},so=I({DID_SET_ALLOW_BROWSE:function(e){var t=e.root,i=e.props;oo(t,i)},DID_SET_ALLOW_DROP:function(e){var t=e.root;no(t)},DID_SET_ALLOW_PASTE:function(e){var t=e.root;ro(t)},DID_SET_DISABLED:function(e){var t=e.root,i=e.props;no(t),ro(t),oo(t,i),t.query("GET_DISABLED")?t.element.dataset.disabled="disabled":t.element.removeAttribute("data-disabled")}}),ao=R({name:"root",read:function(e){var t=e.root;t.ref.measure&&(t.ref.measureHeight=t.ref.measure.offsetHeight)},create:function(e){var t=e.root,i=e.props,n=t.query("GET_ID");n&&(t.element.id=n);var o=t.query("GET_CLASS_NAME");o&&o.split(" ").filter((function(e){return e.length})).forEach((function(e){t.element.classList.add(e)})),t.ref.label=t.appendChildView(t.createChildView(Ki,Object.assign({},i,{translateY:null,caption:t.query("GET_LABEL_IDLE")}))),t.ref.list=t.appendChildView(t.createChildView(Pi,{translateY:null})),t.ref.panel=t.appendChildView(t.createChildView(yi,{name:"panel-root"})),t.ref.assistant=t.appendChildView(t.createChildView(Yn,Object.assign({},i))),t.ref.data=t.appendChildView(t.createChildView(sn,Object.assign({},i))),t.ref.measure=jt("div"),t.ref.measure.style.height="100%",t.element.appendChild(t.ref.measure),t.ref.bounds=null,t.query("GET_STYLES").filter((function(e){return!$(e.value)})).map((function(e){var i=e.name,n=e.value;t.element.dataset[i]=n})),t.ref.widthPrevious=null,t.ref.widthUpdated=Kn((function(){t.ref.updateHistory=[],t.dispatch("DID_RESIZE_ROOT")}),250),t.ref.previousAspectRatio=null,t.ref.updateHistory=[];var r=window.matchMedia("(pointer: fine) and (hover: hover)").matches,s="PointerEvent"in window;t.query("GET_ALLOW_REORDER")&&s&&!r&&(t.element.addEventListener("touchmove",Qn,{passive:!1}),t.element.addEventListener("gesturestart",Qn));var a=t.query("GET_CREDITS");if(2===a.length){var l=document.createElement("a");l.className="filepond--credits",l.setAttribute("aria-hidden","true"),l.href=a[0],l.tabindex=-1,l.target="_blank",l.rel="noopener noreferrer",l.textContent=a[1],t.element.appendChild(l),t.ref.credits=l}},write:function(e){var t=e.root,i=e.props,n=e.actions;if(so({root:t,props:i,actions:n}),n.filter((function(e){return/^DID_SET_STYLE_/.test(e.type)})).filter((function(e){return!$(e.data.value)})).map((function(e){var i=e.type,n=e.data,o=Xn(i.substring(8).toLowerCase(),"_");t.element.dataset[o]=n.value,t.invalidateLayout()})),!t.rect.element.hidden){t.rect.element.width!==t.ref.widthPrevious&&(t.ref.widthPrevious=t.rect.element.width,t.ref.widthUpdated());var o=t.ref.bounds;o||(o=t.ref.bounds=eo(t),t.element.removeChild(t.ref.measure),t.ref.measure=null);var r=t.ref,s=r.hopper,a=r.label,l=r.list,c=r.panel;s&&s.updateHopperState();var d=t.query("GET_PANEL_ASPECT_RATIO"),u=t.query("GET_ALLOW_MULTIPLE"),h=t.query("GET_TOTAL_ITEMS"),p=h===(u?t.query("GET_MAX_FILES")||1e6:1),f=n.find((function(e){return"DID_ADD_ITEM"===e.type}));if(p&&f){var g=f.data.interactionMethod;a.opacity=0,u?a.translateY=-40:g===se?a.translateX=40:a.translateY=g===le?40:30}else p||(a.opacity=1,a.translateX=0,a.translateY=0);var m=Zn(t),A=Jn(t),b=a.rect.element.height,v=!u||p?0:b,C=p?l.rect.element.marginTop:0,y=0===h?0:l.rect.element.marginBottom,w=v+C+A.visual+y,x=v+C+A.bounds+y;if(l.translateY=Math.max(0,v-l.rect.element.marginTop)-m.top,d){var _=t.rect.element.width,E=_*d;d!==t.ref.previousAspectRatio&&(t.ref.previousAspectRatio=d,t.ref.updateHistory=[]);var k=t.ref.updateHistory;k.push(_);if(k.length>4)for(var S=k.length,T=S-10,M=0,B=S;B>=T;B--)if(k[B]===k[B-2]&&M++,M>=2)return;c.scalable=!1,c.height=E;var R=E-v-(y-m.bottom)-(p?C:0);A.visual>R?l.overflow=R:l.overflow=null,t.height=E}else if(o.fixedHeight){c.scalable=!1;var I=o.fixedHeight-v-(y-m.bottom)-(p?C:0);A.visual>I?l.overflow=I:l.overflow=null}else if(o.cappedHeight){var L=w>=o.cappedHeight,D=Math.min(o.cappedHeight,w);c.scalable=!0,c.height=L?D:D-m.top-m.bottom;var O=D-v-(y-m.bottom)-(p?C:0);w>o.cappedHeight&&A.visual>O?l.overflow=O:l.overflow=null,t.height=Math.min(o.cappedHeight,x-m.top-m.bottom)}else{var P=h>0?m.top+m.bottom:0;c.scalable=!0,c.height=Math.max(b,w-P),t.height=Math.max(b,x-P)}t.ref.credits&&c.heightCurrent&&(t.ref.credits.style.transform="translateY("+c.heightCurrent+"px)")}},destroy:function(e){var t=e.root;t.ref.paster&&t.ref.paster.destroy(),t.ref.hopper&&t.ref.hopper.destroy(),t.element.removeEventListener("touchmove",Qn),t.element.removeEventListener("gesturestart",Qn)},mixins:{styles:["height"]}}),lo=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=null,n=Le(),r=i(te(n),[Ge,re(n)],[Ft,oe(n)]);r.dispatch("SET_OPTIONS",{options:e});var s=function(){document.hidden||r.dispatch("KICK")};document.addEventListener("visibilitychange",s);var a=null,l=!1,c=!1,d=null,u=null,h=function(){l||(l=!0),clearTimeout(a),a=setTimeout((function(){l=!1,d=null,u=null,c&&(c=!1,r.dispatch("DID_STOP_RESIZE"))}),500)};window.addEventListener("resize",h);var p=ao(r,{id:ue()}),f=!1,g=!1,m={_read:function(){l&&(u=window.innerWidth,d||(d=u),c||u===d||(r.dispatch("DID_START_RESIZE"),c=!0)),g&&f&&(f=null===p.element.offsetParent),f||(p._read(),g=p.rect.element.hidden)},_write:function(e){var t=r.processActionQueue().filter((function(e){return!/^SET_/.test(e.type)}));f&&!t.length||(y(t),f=p._write(e,t,c),xe(r.query("GET_ITEMS")),f&&r.processDispatchQueue())}},A=function(e){return function(t){var i={type:e};if(!t)return i;if(t.hasOwnProperty("error")&&(i.error=t.error?Object.assign({},t.error):null),t.status&&(i.status=Object.assign({},t.status)),t.file&&(i.output=t.file),t.source)i.file=t.source;else if(t.item||t.id){var n=t.item?t.item:r.query("GET_ITEM",t.id);i.file=n?we(n):null}return t.items&&(i.items=t.items.map(we)),/progress/.test(e)&&(i.progress=t.progress),t.hasOwnProperty("origin")&&t.hasOwnProperty("target")&&(i.origin=t.origin,i.target=t.target),i}},b={DID_DESTROY:A("destroy"),DID_INIT:A("init"),DID_THROW_MAX_FILES:A("warning"),DID_INIT_ITEM:A("initfile"),DID_START_ITEM_LOAD:A("addfilestart"),DID_UPDATE_ITEM_LOAD_PROGRESS:A("addfileprogress"),DID_LOAD_ITEM:A("addfile"),DID_THROW_ITEM_INVALID:[A("error"),A("addfile")],DID_THROW_ITEM_LOAD_ERROR:[A("error"),A("addfile")],DID_THROW_ITEM_REMOVE_ERROR:[A("error"),A("removefile")],DID_PREPARE_OUTPUT:A("preparefile"),DID_START_ITEM_PROCESSING:A("processfilestart"),DID_UPDATE_ITEM_PROCESS_PROGRESS:A("processfileprogress"),DID_ABORT_ITEM_PROCESSING:A("processfileabort"),DID_COMPLETE_ITEM_PROCESSING:A("processfile"),DID_COMPLETE_ITEM_PROCESSING_ALL:A("processfiles"),DID_REVERT_ITEM_PROCESSING:A("processfilerevert"),DID_THROW_ITEM_PROCESSING_ERROR:[A("error"),A("processfile")],DID_REMOVE_ITEM:A("removefile"),DID_UPDATE_ITEMS:A("updatefiles"),DID_ACTIVATE_ITEM:A("activatefile"),DID_REORDER_ITEMS:A("reorderfiles")},C=function(e){var t=Object.assign({pond:P},e);delete t.type,p.element.dispatchEvent(new CustomEvent("FilePond:"+e.type,{detail:t,bubbles:!0,cancelable:!0,composed:!0}));var i=[];e.hasOwnProperty("error")&&i.push(e.error),e.hasOwnProperty("file")&&i.push(e.file);var n=["type","error","file"];Object.keys(e).filter((function(e){return!n.includes(e)})).forEach((function(t){return i.push(e[t])})),P.fire.apply(P,[e.type].concat(i));var o=r.query("GET_ON"+e.type.toUpperCase());o&&o.apply(void 0,i)},y=function(e){e.length&&e.filter((function(e){return b[e.type]})).forEach((function(e){var t=b[e.type];(Array.isArray(t)?t:[t]).forEach((function(t){"DID_INIT_ITEM"===e.type?C(t(e.data)):setTimeout((function(){C(t(e.data))}),0)}))}))},w=function(e){return r.dispatch("SET_OPTIONS",{options:e})},x=function(e){return r.query("GET_ACTIVE_ITEM",e)},_=function(e){return new Promise((function(t,i){r.dispatch("REQUEST_ITEM_PREPARE",{query:e,success:function(e){t(e)},failure:function(e){i(e)}})}))},E=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise((function(i,n){T([{source:e,options:t}],{index:t.index}).then((function(e){return i(e&&e[0])})).catch(n)}))},k=function(e){return e.file&&e.id},S=function(e,t){return"object"!=typeof e||k(e)||t||(t=e,e=void 0),r.dispatch("REMOVE_ITEM",Object.assign({},t,{query:e})),null===r.query("GET_ACTIVE_ITEM",e)},T=function(){for(var e=arguments.length,t=new Array(e),i=0;i0&&void 0!==arguments[0]?arguments[0]:{},t={};return n(Le(),(function(e,i){t[e]=i[0]})),lo(Object.assign({},t,{},e))},uo=function(e){return Xn(e.replace(/^data-/,""))},ho=function e(t,i){n(i,(function(i,o){n(t,(function(e,n){var r,s=new RegExp(i);if(s.test(e)&&(delete t[e],!1!==o))if(j(o))t[o]=n;else{var a=o.group;K(o)&&!t[a]&&(t[a]={}),t[a][(r=e.replace(s,""),r.charAt(0).toLowerCase()+r.slice(1))]=n}})),o.mapping&&e(t[o.group],o.mapping)}))},po=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=[];n(e.attributes,(function(t){i.push(e.attributes[t])}));var o=i.filter((function(e){return e.name})).reduce((function(t,i){var n=r(e,i.name);return t[uo(i.name)]=n===i.name||n,t}),{});return ho(o,t),o},fo=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i={"^class$":"className","^multiple$":"allowMultiple","^capture$":"captureMethod","^webkitdirectory$":"allowDirectoriesOnly","^server":{group:"server",mapping:{"^process":{group:"process"},"^revert":{group:"revert"},"^fetch":{group:"fetch"},"^restore":{group:"restore"},"^load":{group:"load"}}},"^type$":!1,"^files$":!1};Re("SET_ATTRIBUTE_TO_OPTION_MAP",i);var n=Object.assign({},t),o=po("FIELDSET"===e.nodeName?e.querySelector("input[type=file]"):e,i);Object.keys(o).forEach((function(e){K(o[e])?(K(n[e])||(n[e]={}),Object.assign(n[e],o[e])):n[e]=o[e]})),n.files=(t.files||[]).concat(Array.from(e.querySelectorAll("input:not([type=file])")).map((function(e){return{source:e.value,options:{type:e.dataset.type}}})));var r=co(n);return e.files&&Array.from(e.files).forEach((function(e){r.addFile(e)})),r.replaceElement(e),r},go=function(){return t(arguments.length<=0?void 0:arguments[0])?fo.apply(void 0,arguments):co.apply(void 0,arguments)},mo=["fire","_read","_write"],Ao=function(e){var t={};return Ce(e,t,mo),t},bo=function(e,t){return e.replace(/(?:{([a-zA-Z]+)})/g,(function(e,i){return t[i]}))},vo=function(e){var t=new Blob(["(",e.toString(),")()"],{type:"application/javascript"}),i=URL.createObjectURL(t),n=new Worker(i);return{transfer:function(e,t){},post:function(e,t,i){var o=ue();n.onmessage=function(e){e.data.id===o&&t(e.data.message)},n.postMessage({id:o,message:e},i)},terminate:function(){n.terminate(),URL.revokeObjectURL(i)}}},Co=function(e){return new Promise((function(t,i){var n=new Image;n.onload=function(){t(n)},n.onerror=function(e){i(e)},n.src=e}))},yo=function(e,t){var i=e.slice(0,e.size,e.type);return i.lastModifiedDate=e.lastModifiedDate,i.name=t,i},wo=function(e){return yo(e,e.name)},xo=[],_o=function(e){if(!xo.includes(e)){xo.push(e);var t=e({addFilter:Ie,utils:{Type:Te,forin:n,isString:j,isFile:Mt,toNaturalFileSize:Gt,replaceInString:bo,getExtensionFromFilename:Qe,getFilenameWithoutExtension:St,guesstimateMimeType:dn,getFileFromBlob:tt,getFilenameFromURL:Ke,createRoute:I,createWorker:vo,createView:R,createItemAPI:we,loadImage:Co,copyFile:wo,renameFile:yo,createBlob:it,applyFilterChain:Be,text:Wt,getNumericAspectRatioFromString:$e},views:{fileActionButton:Vt}});i=t.options,Object.assign(De,i)}var i},Eo=(ri=f()&&!("[object OperaMini]"===Object.prototype.toString.call(window.operamini))&&"visibilityState"in document&&"Promise"in window&&"slice"in Blob.prototype&&"URL"in window&&"createObjectURL"in window.URL&&"performance"in window&&("supports"in(window.CSS||{})||/MSIE|Trident/.test(window.navigator.userAgent)),function(){return ri}),ko={apps:[]},So=function(){};if(e.Status={},e.FileStatus={},e.FileOrigin={},e.OptionTypes={},e.create=So,e.destroy=So,e.parse=So,e.find=So,e.registerPlugin=So,e.getOptions=So,e.setOptions=So,Eo()){!function(e,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:60,n="__framePainter";if(window[n])return window[n].readers.push(e),void window[n].writers.push(t);window[n]={readers:[e],writers:[t]};var o=window[n],r=1e3/i,s=null,a=null,l=null,c=null,d=function(){document.hidden?(l=function(){return window.setTimeout((function(){return u(performance.now())}),r)},c=function(){return window.clearTimeout(a)}):(l=function(){return window.requestAnimationFrame(u)},c=function(){return window.cancelAnimationFrame(a)})};document.addEventListener("visibilitychange",(function(){c&&c(),d(),u(performance.now())}));var u=function e(t){a=l(e),s||(s=t);var i=t-s;i<=r||(s=t-i%r,o.readers.forEach((function(e){return e()})),o.writers.forEach((function(e){return e(t)})))};d(),u(performance.now())}((function(){ko.apps.forEach((function(e){return e._read()}))}),(function(e){ko.apps.forEach((function(t){return t._write(e)}))}));var To=function t(){document.dispatchEvent(new CustomEvent("FilePond:loaded",{detail:{supported:Eo,create:e.create,destroy:e.destroy,parse:e.parse,find:e.find,registerPlugin:e.registerPlugin,setOptions:e.setOptions}})),document.removeEventListener("DOMContentLoaded",t)};"loading"!==document.readyState?setTimeout((function(){return To()}),0):document.addEventListener("DOMContentLoaded",To);var Mo=function(){return n(Le(),(function(t,i){e.OptionTypes[t]=i[1]}))};e.Status=Object.assign({},Ne),e.FileOrigin=Object.assign({},Ee),e.FileStatus=Object.assign({},_e),e.OptionTypes={},Mo(),e.create=function(){var t=go.apply(void 0,arguments);return t.on("destroy",e.destroy),ko.apps.push(t),Ao(t)},e.destroy=function(e){var t=ko.apps.findIndex((function(t){return t.isAttachedTo(e)}));return t>=0&&(ko.apps.splice(t,1)[0].restoreElement(),!0)},e.parse=function(t){return Array.from(t.querySelectorAll(".filepond")).filter((function(e){return!ko.apps.find((function(t){return t.isAttachedTo(e)}))})).map((function(t){return e.create(t)}))},e.find=function(e){var t=ko.apps.find((function(t){return t.isAttachedTo(e)}));return t?Ao(t):null},e.registerPlugin=function(){for(var e=arguments.length,t=new Array(e),i=0;i{var n,o;!function(){"use strict";void 0===(o="function"==typeof(n=["jquery","./data","./disable-selection","./focusable","./form","./ie","./keycode","./labels","./jquery-patch.js","./plugin","./safe-active-element","./safe-blur","./scroll-parent","./tabbable","./unique-id","./version"])?n.call(t,i,t,e):n)||(e.exports=o)}()},26400:(e,t,i)=>{var n,o,r;!function(s){"use strict";o=[i(19755),i(85592)],void 0===(r="function"==typeof(n=function(e){return e.extend(e.expr.pseudos,{data:e.expr.createPseudo?e.expr.createPseudo((function(t){return function(i){return!!e.data(i,t)}})):function(t,i,n){return!!e.data(t,n[3])}})})?n.apply(t,o):n)||(e.exports=r)}()},42064:(e,t,i)=>{var n,o,r;!function(s){"use strict";o=[i(19755),i(85592)],void 0===(r="function"==typeof(n=function(e){return e.fn.extend({disableSelection:(t="onselectstart"in document.createElement("div")?"selectstart":"mousedown",function(){return this.on(t+".ui-disableSelection",(function(e){e.preventDefault()}))}),enableSelection:function(){return this.off(".ui-disableSelection")}});var t})?n.apply(t,o):n)||(e.exports=r)}()},21870:(e,t,i)=>{var n,o,r;!function(s){"use strict";o=[i(19755),i(85592)],void 0===(r="function"==typeof(n=function(e){return e.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase())})?n.apply(t,o):n)||(e.exports=r)}()},17053:(e,t,i)=>{var n,o,r;!function(s){"use strict";o=[i(19755),i(85592)],void 0===(r="function"==typeof(n=function(e){return e.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}})?n.apply(t,o):n)||(e.exports=r)}()},31624:(e,t,i)=>{var n,o,r;!function(s){"use strict";o=[i(19755),i(85592)],n=function(e){return e.ui.plugin={add:function(t,i,n){var o,r=e.ui[t].prototype;for(o in n)r.plugins[o]=r.plugins[o]||[],r.plugins[o].push([i,n[o]])},call:function(e,t,i,n){var o,r=e.plugins[t];if(r&&(n||e.element[0].parentNode&&11!==e.element[0].parentNode.nodeType))for(o=0;o{var n,o,r;!function(s){"use strict";o=[i(19755),i(85592)],n=function(e){return function(){var t,i=Math.max,n=Math.abs,o=/left|center|right/,r=/top|center|bottom/,s=/[\+\-]\d+(\.[\d]+)?%?/,a=/^\w+/,l=/%$/,c=e.fn.position;function d(e,t,i){return[parseFloat(e[0])*(l.test(e[0])?t/100:1),parseFloat(e[1])*(l.test(e[1])?i/100:1)]}function u(t,i){return parseInt(e.css(t,i),10)||0}function h(e){return null!=e&&e===e.window}function p(e){var t=e[0];return 9===t.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:h(t)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:t.preventDefault?{width:0,height:0,offset:{top:t.pageY,left:t.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}e.position={scrollbarWidth:function(){if(void 0!==t)return t;var i,n,o=e("
"),r=o.children()[0];return e("body").append(o),i=r.offsetWidth,o.css("overflow","scroll"),i===(n=r.offsetWidth)&&(n=o[0].clientWidth),o.remove(),t=i-n},getScrollInfo:function(t){var i=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),n=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),o="scroll"===i||"auto"===i&&t.width0?"right":"center",vertical:d<0?"top":l>0?"bottom":"middle"};hi(n(l),n(d))?u.important="horizontal":u.important="vertical",t.using.call(this,e,u)}),s.offset(e.extend(E,{using:r}))}))},e.ui.position={fit:{left:function(e,t){var n,o=t.within,r=o.isWindow?o.scrollLeft:o.offset.left,s=o.width,a=e.left-t.collisionPosition.marginLeft,l=r-a,c=a+t.collisionWidth-s-r;t.collisionWidth>s?l>0&&c<=0?(n=e.left+l+t.collisionWidth-s-r,e.left+=l-n):e.left=c>0&&l<=0?r:l>c?r+s-t.collisionWidth:r:l>0?e.left+=l:c>0?e.left-=c:e.left=i(e.left-a,e.left)},top:function(e,t){var n,o=t.within,r=o.isWindow?o.scrollTop:o.offset.top,s=t.within.height,a=e.top-t.collisionPosition.marginTop,l=r-a,c=a+t.collisionHeight-s-r;t.collisionHeight>s?l>0&&c<=0?(n=e.top+l+t.collisionHeight-s-r,e.top+=l-n):e.top=c>0&&l<=0?r:l>c?r+s-t.collisionHeight:r:l>0?e.top+=l:c>0?e.top-=c:e.top=i(e.top-a,e.top)}},flip:{left:function(e,t){var i,o,r=t.within,s=r.offset.left+r.scrollLeft,a=r.width,l=r.isWindow?r.scrollLeft:r.offset.left,c=e.left-t.collisionPosition.marginLeft,d=c-l,u=c+t.collisionWidth-a-l,h="left"===t.my[0]?-t.elemWidth:"right"===t.my[0]?t.elemWidth:0,p="left"===t.at[0]?t.targetWidth:"right"===t.at[0]?-t.targetWidth:0,f=-2*t.offset[0];d<0?((i=e.left+h+p+f+t.collisionWidth-a-s)<0||i0&&((o=e.left-t.collisionPosition.marginLeft+h+p+f-l)>0||n(o)0&&((i=e.top-t.collisionPosition.marginTop+h+p+f-l)>0||n(i){var n,o,r;!function(s){"use strict";o=[i(19755),i(85592)],void 0===(r="function"==typeof(n=function(e){return e.fn.scrollParent=function(t){var i=this.css("position"),n="absolute"===i,o=t?/(auto|scroll|hidden)/:/(auto|scroll)/,r=this.parents().filter((function(){var t=e(this);return(!n||"static"!==t.css("position"))&&o.test(t.css("overflow")+t.css("overflow-y")+t.css("overflow-x"))})).eq(0);return"fixed"!==i&&r.length?r:e(this[0].ownerDocument||document)}})?n.apply(t,o):n)||(e.exports=r)}()},49138:(e,t,i)=>{var n,o,r;!function(s){"use strict";o=[i(19755),i(85592)],void 0===(r="function"==typeof(n=function(e){return e.fn.extend({uniqueId:(t=0,function(){return this.each((function(){this.id||(this.id="ui-id-"+ ++t)}))}),removeUniqueId:function(){return this.each((function(){/^ui-id-\d+$/.test(this.id)&&e(this).removeAttr("id")}))}});var t})?n.apply(t,o):n)||(e.exports=r)}()},85592:(e,t,i)=>{var n,o,r;!function(s){"use strict";o=[i(19755)],void 0===(r="function"==typeof(n=function(e){return e.ui=e.ui||{},e.ui.version="1.13.2"})?n.apply(t,o):n)||(e.exports=r)}()},26891:(e,t,i)=>{var n,o,r;!function(s){"use strict";o=[i(19755),i(85592)],n=function(e){var t,i=0,n=Array.prototype.hasOwnProperty,o=Array.prototype.slice;return e.cleanData=(t=e.cleanData,function(i){var n,o,r;for(r=0;null!=(o=i[r]);r++)(n=e._data(o,"events"))&&n.remove&&e(o).triggerHandler("remove");t(i)}),e.widget=function(t,i,n){var o,r,s,a={},l=t.split(".")[0],c=l+"-"+(t=t.split(".")[1]);return n||(n=i,i=e.Widget),Array.isArray(n)&&(n=e.extend.apply(null,[{}].concat(n))),e.expr.pseudos[c.toLowerCase()]=function(t){return!!e.data(t,c)},e[l]=e[l]||{},o=e[l][t],r=e[l][t]=function(e,t){if(!this||!this._createWidget)return new r(e,t);arguments.length&&this._createWidget(e,t)},e.extend(r,o,{version:n.version,_proto:e.extend({},n),_childConstructors:[]}),(s=new i).options=e.widget.extend({},s.options),e.each(n,(function(e,t){a[e]="function"==typeof t?function(){function n(){return i.prototype[e].apply(this,arguments)}function o(t){return i.prototype[e].apply(this,t)}return function(){var e,i=this._super,r=this._superApply;return this._super=n,this._superApply=o,e=t.apply(this,arguments),this._super=i,this._superApply=r,e}}():t})),r.prototype=e.widget.extend(s,{widgetEventPrefix:o&&s.widgetEventPrefix||t},a,{constructor:r,namespace:l,widgetName:t,widgetFullName:c}),o?(e.each(o._childConstructors,(function(t,i){var n=i.prototype;e.widget(n.namespace+"."+n.widgetName,r,i._proto)})),delete o._childConstructors):i._childConstructors.push(r),e.widget.bridge(t,r),r},e.widget.extend=function(t){for(var i,r,s=o.call(arguments,1),a=0,l=s.length;a",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,n){n=e(n||this.defaultElement||this)[0],this.element=e(n),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=e(),this.hoverable=e(),this.focusable=e(),this.classesElementLookup={},n!==this&&(e.data(n,this.widgetFullName,this),this._on(!0,this.element,{remove:function(e){e.target===n&&this.destroy()}}),this.document=e(n.style?n.ownerDocument:n.document||n),this.window=e(this.document[0].defaultView||this.document[0].parentWindow)),this.options=e.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:e.noop,_create:e.noop,_init:e.noop,destroy:function(){var t=this;this._destroy(),e.each(this.classesElementLookup,(function(e,i){t._removeClass(i,e)})),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:e.noop,widget:function(){return this.element},option:function(t,i){var n,o,r,s=t;if(0===arguments.length)return e.widget.extend({},this.options);if("string"==typeof t)if(s={},n=t.split("."),t=n.shift(),n.length){for(o=s[t]=e.widget.extend({},this.options[t]),r=0;r{var n,o,r;!function(s){"use strict";o=[i(19755),i(21870),i(85592),i(26891)],void 0===(r="function"==typeof(n=function(e){var t=!1;return e(document).on("mouseup",(function(){t=!1})),e.widget("ui.mouse",{version:"1.13.2",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var t=this;this.element.on("mousedown."+this.widgetName,(function(e){return t._mouseDown(e)})).on("click."+this.widgetName,(function(i){if(!0===e.data(i.target,t.widgetName+".preventClickEvent"))return e.removeData(i.target,t.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1})),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(i){if(!t){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(i),this._mouseDownEvent=i;var n=this,o=1===i.which,r=!("string"!=typeof this.options.cancel||!i.target.nodeName)&&e(i.target).closest(this.options.cancel).length;return!(o&&!r&&this._mouseCapture(i)&&(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout((function(){n.mouseDelayMet=!0}),this.options.delay)),this._mouseDistanceMet(i)&&this._mouseDelayMet(i)&&(this._mouseStarted=!1!==this._mouseStart(i),!this._mouseStarted)?(i.preventDefault(),0):(!0===e.data(i.target,this.widgetName+".preventClickEvent")&&e.removeData(i.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(e){return n._mouseMove(e)},this._mouseUpDelegate=function(e){return n._mouseUp(e)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),i.preventDefault(),t=!0,0)))}},_mouseMove:function(t){if(this._mouseMoved){if(e.ui.ie&&(!document.documentMode||document.documentMode<9)&&!t.button)return this._mouseUp(t);if(!t.which)if(t.originalEvent.altKey||t.originalEvent.ctrlKey||t.originalEvent.metaKey||t.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(t)}return(t.which||t.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(t),t.preventDefault()):(this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=!1!==this._mouseStart(this._mouseDownEvent,t),this._mouseStarted?this._mouseDrag(t):this._mouseUp(t)),!this._mouseStarted)},_mouseUp:function(i){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,i.target===this._mouseDownEvent.target&&e.data(i.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(i)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,t=!1,i.preventDefault()},_mouseDistanceMet:function(e){return Math.max(Math.abs(this._mouseDownEvent.pageX-e.pageX),Math.abs(this._mouseDownEvent.pageY-e.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}})})?n.apply(t,o):n)||(e.exports=r)}()},91707:(e,t,i)=>{var n,o,r;!function(s){"use strict";o=[i(19755),i(66177),i(42064),i(31624),i(85592),i(26891)],n=function(e){return e.widget("ui.resizable",e.ui.mouse,{version:"1.13.2",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(e){return parseFloat(e)||0},_isNumber:function(e){return!isNaN(parseFloat(e))},_hasScroll:function(t,i){if("hidden"===e(t).css("overflow"))return!1;var n=i&&"left"===i?"scrollLeft":"scrollTop",o=!1;if(t[n]>0)return!0;try{t[n]=1,o=t[n]>0,t[n]=0}catch(e){}return o},_create:function(){var t,i=this.options,n=this;this._addClass("ui-resizable"),e.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(e("
").css({overflow:"hidden",position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,t={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(t),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(t),this._proportionallyResize()),this._setupHandles(),i.autoHide&&e(this.element).on("mouseenter",(function(){i.disabled||(n._removeClass("ui-resizable-autohide"),n._handles.show())})).on("mouseleave",(function(){i.disabled||n.resizing||(n._addClass("ui-resizable-autohide"),n._handles.hide())})),this._mouseInit()},_destroy:function(){this._mouseDestroy(),this._addedHandles.remove();var t,i=function(t){e(t).removeData("resizable").removeData("ui-resizable").off(".resizable")};return this.elementIsWrapper&&(i(this.element),t=this.element,this.originalElement.css({position:t.css("position"),width:t.outerWidth(),height:t.outerHeight(),top:t.css("top"),left:t.css("left")}).insertAfter(t),t.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(e,t){switch(this._super(e,t),e){case"handles":this._removeHandles(),this._setupHandles();break;case"aspectRatio":this._aspectRatio=!!t}},_setupHandles:function(){var t,i,n,o,r,s=this.options,a=this;if(this.handles=s.handles||(e(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=e(),this._addedHandles=e(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),n=this.handles.split(","),this.handles={},i=0;i"),this._addClass(r,"ui-resizable-handle "+o),r.css({zIndex:s.zIndex}),this.handles[t]=".ui-resizable-"+t,this.element.children(this.handles[t]).length||(this.element.append(r),this._addedHandles=this._addedHandles.add(r));this._renderAxis=function(t){var i,n,o,r;for(i in t=t||this.element,this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=e(this.handles[i]),this._on(this.handles[i],{mousedown:a._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(n=e(this.handles[i],this.element),r=/sw|ne|nw|se|n|s/.test(i)?n.outerHeight():n.outerWidth(),o=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),t.css(o,r),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",(function(){a.resizing||(this.className&&(r=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),a.axis=r&&r[1]?r[1]:"se")})),s.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._addedHandles.remove()},_mouseCapture:function(t){var i,n,o=!1;for(i in this.handles)((n=e(this.handles[i])[0])===t.target||e.contains(n,t.target))&&(o=!0);return!this.options.disabled&&o},_mouseStart:function(t){var i,n,o,r=this.options,s=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),n=this._num(this.helper.css("top")),r.containment&&(i+=e(r.containment).scrollLeft()||0,n+=e(r.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:n},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:s.width(),height:s.height()},this.originalSize=this._helper?{width:s.outerWidth(),height:s.outerHeight()}:{width:s.width(),height:s.height()},this.sizeDiff={width:s.outerWidth()-s.width(),height:s.outerHeight()-s.height()},this.originalPosition={left:i,top:n},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof r.aspectRatio?r.aspectRatio:this.originalSize.width/this.originalSize.height||1,o=e(".ui-resizable-"+this.axis).css("cursor"),e("body").css("cursor","auto"===o?this.axis+"-resize":o),this._addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var i,n,o=this.originalMousePosition,r=this.axis,s=t.pageX-o.left||0,a=t.pageY-o.top||0,l=this._change[r];return this._updatePrevProperties(),!!l&&(i=l.apply(this,[t,s,a]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(i=this._updateRatio(i,t)),i=this._respectSize(i,t),this._updateCache(i),this._propagate("resize",t),n=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),e.isEmptyObject(n)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges()),!1)},_mouseStop:function(t){this.resizing=!1;var i,n,o,r,s,a,l,c=this.options,d=this;return this._helper&&(o=(n=(i=this._proportionallyResizeElements).length&&/textarea/i.test(i[0].nodeName))&&this._hasScroll(i[0],"left")?0:d.sizeDiff.height,r=n?0:d.sizeDiff.width,s={width:d.helper.width()-r,height:d.helper.height()-o},a=parseFloat(d.element.css("left"))+(d.position.left-d.originalPosition.left)||null,l=parseFloat(d.element.css("top"))+(d.position.top-d.originalPosition.top)||null,c.animate||this.element.css(e.extend(s,{top:l,left:a})),d.helper.height(d.size.height),d.helper.width(d.size.width),this._helper&&!c.animate&&this._proportionallyResize()),e("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var e={};return this.position.top!==this.prevPosition.top&&(e.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(e.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(e.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(e.height=this.size.height+"px"),this.helper.css(e),e},_updateVirtualBoundaries:function(e){var t,i,n,o,r,s=this.options;r={minWidth:this._isNumber(s.minWidth)?s.minWidth:0,maxWidth:this._isNumber(s.maxWidth)?s.maxWidth:1/0,minHeight:this._isNumber(s.minHeight)?s.minHeight:0,maxHeight:this._isNumber(s.maxHeight)?s.maxHeight:1/0},(this._aspectRatio||e)&&(t=r.minHeight*this.aspectRatio,n=r.minWidth/this.aspectRatio,i=r.maxHeight*this.aspectRatio,o=r.maxWidth/this.aspectRatio,t>r.minWidth&&(r.minWidth=t),n>r.minHeight&&(r.minHeight=n),ie.width,s=this._isNumber(e.height)&&t.minHeight&&t.minHeight>e.height,a=this.originalPosition.left+this.originalSize.width,l=this.originalPosition.top+this.originalSize.height,c=/sw|nw|w/.test(i),d=/nw|ne|n/.test(i);return r&&(e.width=t.minWidth),s&&(e.height=t.minHeight),n&&(e.width=t.maxWidth),o&&(e.height=t.maxHeight),r&&c&&(e.left=a-t.minWidth),n&&c&&(e.left=a-t.maxWidth),s&&d&&(e.top=l-t.minHeight),o&&d&&(e.top=l-t.maxHeight),e.width||e.height||e.left||!e.top?e.width||e.height||e.top||!e.left||(e.left=null):e.top=null,e},_getPaddingPlusBorderDimensions:function(e){for(var t=0,i=[],n=[e.css("borderTopWidth"),e.css("borderRightWidth"),e.css("borderBottomWidth"),e.css("borderLeftWidth")],o=[e.css("paddingTop"),e.css("paddingRight"),e.css("paddingBottom"),e.css("paddingLeft")];t<4;t++)i[t]=parseFloat(n[t])||0,i[t]+=parseFloat(o[t])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var e,t=0,i=this.helper||this.element;t").css({overflow:"hidden"}),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(e,t){return{width:this.originalSize.width+t}},w:function(e,t){var i=this.originalSize;return{left:this.originalPosition.left+t,width:i.width-t}},n:function(e,t,i){var n=this.originalSize;return{top:this.originalPosition.top+i,height:n.height-i}},s:function(e,t,i){return{height:this.originalSize.height+i}},se:function(t,i,n){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,i,n]))},sw:function(t,i,n){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,i,n]))},ne:function(t,i,n){return e.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,i,n]))},nw:function(t,i,n){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,i,n]))}},_propagate:function(t,i){e.ui.plugin.call(this,t,[i,this.ui()]),"resize"!==t&&this._trigger(t,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),e.ui.plugin.add("resizable","animate",{stop:function(t){var i=e(this).resizable("instance"),n=i.options,o=i._proportionallyResizeElements,r=o.length&&/textarea/i.test(o[0].nodeName),s=r&&i._hasScroll(o[0],"left")?0:i.sizeDiff.height,a=r?0:i.sizeDiff.width,l={width:i.size.width-a,height:i.size.height-s},c=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,d=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(e.extend(l,d&&c?{top:d,left:c}:{}),{duration:n.animateDuration,easing:n.animateEasing,step:function(){var n={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};o&&o.length&&e(o[0]).css({width:n.width,height:n.height}),i._updateCache(n),i._propagate("resize",t)}})}}),e.ui.plugin.add("resizable","containment",{start:function(){var t,i,n,o,r,s,a,l=e(this).resizable("instance"),c=l.options,d=l.element,u=c.containment,h=u instanceof e?u.get(0):/parent/.test(u)?d.parent().get(0):u;h&&(l.containerElement=e(h),/document/.test(u)||u===document?(l.containerOffset={left:0,top:0},l.containerPosition={left:0,top:0},l.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight}):(t=e(h),i=[],e(["Top","Right","Left","Bottom"]).each((function(e,n){i[e]=l._num(t.css("padding"+n))})),l.containerOffset=t.offset(),l.containerPosition=t.position(),l.containerSize={height:t.innerHeight()-i[3],width:t.innerWidth()-i[1]},n=l.containerOffset,o=l.containerSize.height,r=l.containerSize.width,s=l._hasScroll(h,"left")?h.scrollWidth:r,a=l._hasScroll(h)?h.scrollHeight:o,l.parentData={element:h,left:n.left,top:n.top,width:s,height:a}))},resize:function(t){var i,n,o,r,s=e(this).resizable("instance"),a=s.options,l=s.containerOffset,c=s.position,d=s._aspectRatio||t.shiftKey,u={top:0,left:0},h=s.containerElement,p=!0;h[0]!==document&&/static/.test(h.css("position"))&&(u=l),c.left<(s._helper?l.left:0)&&(s.size.width=s.size.width+(s._helper?s.position.left-l.left:s.position.left-u.left),d&&(s.size.height=s.size.width/s.aspectRatio,p=!1),s.position.left=a.helper?l.left:0),c.top<(s._helper?l.top:0)&&(s.size.height=s.size.height+(s._helper?s.position.top-l.top:s.position.top),d&&(s.size.width=s.size.height*s.aspectRatio,p=!1),s.position.top=s._helper?l.top:0),o=s.containerElement.get(0)===s.element.parent().get(0),r=/relative|absolute/.test(s.containerElement.css("position")),o&&r?(s.offset.left=s.parentData.left+s.position.left,s.offset.top=s.parentData.top+s.position.top):(s.offset.left=s.element.offset().left,s.offset.top=s.element.offset().top),i=Math.abs(s.sizeDiff.width+(s._helper?s.offset.left-u.left:s.offset.left-l.left)),n=Math.abs(s.sizeDiff.height+(s._helper?s.offset.top-u.top:s.offset.top-l.top)),i+s.size.width>=s.parentData.width&&(s.size.width=s.parentData.width-i,d&&(s.size.height=s.size.width/s.aspectRatio,p=!1)),n+s.size.height>=s.parentData.height&&(s.size.height=s.parentData.height-n,d&&(s.size.width=s.size.height*s.aspectRatio,p=!1)),p||(s.position.left=s.prevPosition.left,s.position.top=s.prevPosition.top,s.size.width=s.prevSize.width,s.size.height=s.prevSize.height)},stop:function(){var t=e(this).resizable("instance"),i=t.options,n=t.containerOffset,o=t.containerPosition,r=t.containerElement,s=e(t.helper),a=s.offset(),l=s.outerWidth()-t.sizeDiff.width,c=s.outerHeight()-t.sizeDiff.height;t._helper&&!i.animate&&/relative/.test(r.css("position"))&&e(this).css({left:a.left-o.left-n.left,width:l,height:c}),t._helper&&!i.animate&&/static/.test(r.css("position"))&&e(this).css({left:a.left-o.left-n.left,width:l,height:c})}}),e.ui.plugin.add("resizable","alsoResize",{start:function(){var t=e(this).resizable("instance").options;e(t.alsoResize).each((function(){var t=e(this);t.data("ui-resizable-alsoresize",{width:parseFloat(t.width()),height:parseFloat(t.height()),left:parseFloat(t.css("left")),top:parseFloat(t.css("top"))})}))},resize:function(t,i){var n=e(this).resizable("instance"),o=n.options,r=n.originalSize,s=n.originalPosition,a={height:n.size.height-r.height||0,width:n.size.width-r.width||0,top:n.position.top-s.top||0,left:n.position.left-s.left||0};e(o.alsoResize).each((function(){var t=e(this),n=e(this).data("ui-resizable-alsoresize"),o={},r=t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];e.each(r,(function(e,t){var i=(n[t]||0)+(a[t]||0);i&&i>=0&&(o[t]=i||null)})),t.css(o)}))},stop:function(){e(this).removeData("ui-resizable-alsoresize")}}),e.ui.plugin.add("resizable","ghost",{start:function(){var t=e(this).resizable("instance"),i=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),t._addClass(t.ghost,"ui-resizable-ghost"),!1!==e.uiBackCompat&&"string"==typeof t.options.ghost&&t.ghost.addClass(this.options.ghost),t.ghost.appendTo(t.helper)},resize:function(){var t=e(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=e(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),e.ui.plugin.add("resizable","grid",{resize:function(){var t,i=e(this).resizable("instance"),n=i.options,o=i.size,r=i.originalSize,s=i.originalPosition,a=i.axis,l="number"==typeof n.grid?[n.grid,n.grid]:n.grid,c=l[0]||1,d=l[1]||1,u=Math.round((o.width-r.width)/c)*c,h=Math.round((o.height-r.height)/d)*d,p=r.width+u,f=r.height+h,g=n.maxWidth&&n.maxWidthp,b=n.minHeight&&n.minHeight>f;n.grid=l,A&&(p+=c),b&&(f+=d),g&&(p-=c),m&&(f-=d),/^(se|s|e)$/.test(a)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(a)?(i.size.width=p,i.size.height=f,i.position.top=s.top-h):/^(sw)$/.test(a)?(i.size.width=p,i.size.height=f,i.position.left=s.left-u):((f-d<=0||p-c<=0)&&(t=i._getPaddingPlusBorderDimensions(this)),f-d>0?(i.size.height=f,i.position.top=s.top-h):(f=d-t.height,i.size.height=f,i.position.top=s.top+r.height-f),p-c>0?(i.size.width=p,i.position.left=s.left-u):(p=c-t.width,i.size.width=p,i.position.left=s.left+r.width-p))}}),e.ui.resizable},void 0===(r=n.apply(t,o))||(e.exports=r)}()},62526:(e,t,i)=>{var n,o,r;!function(s){"use strict";o=[i(19755),i(66177),i(26400),i(21870),i(40464),i(85592),i(26891)],n=function(e){return e.widget("ui.sortable",e.ui.mouse,{version:"1.13.2",widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_isOverAxis:function(e,t,i){return e>=t&&e=0;e--)this.items[e].item.removeData(this.widgetName+"-item");return this},_mouseCapture:function(t,i){var n=null,o=!1,r=this;return!(this.reverting||this.options.disabled||"static"===this.options.type||(this._refreshItems(t),e(t.target).parents().each((function(){if(e.data(this,r.widgetName+"-item")===r)return n=e(this),!1})),e.data(t.target,r.widgetName+"-item")===r&&(n=e(t.target)),!n||this.options.handle&&!i&&(e(this.options.handle,n).find("*").addBack().each((function(){this===t.target&&(o=!0)})),!o)||(this.currentItem=n,this._removeCurrentsFromItems(),0)))},_mouseStart:function(t,i,n){var o,r,s=this.options;if(this.currentContainer=this,this.refreshPositions(),this.appendTo=e("parent"!==s.appendTo?s.appendTo:this.currentItem.parent()),this.helper=this._createHelper(t),this._cacheHelperProportions(),this._cacheMargins(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},e.extend(this.offset,{click:{left:t.pageX-this.offset.left,top:t.pageY-this.offset.top},relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),s.cursorAt&&this._adjustOffsetFromHelper(s.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!==this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),this.scrollParent=this.placeholder.scrollParent(),e.extend(this.offset,{parent:this._getParentOffset()}),s.containment&&this._setContainment(),s.cursor&&"auto"!==s.cursor&&(r=this.document.find("body"),this.storedCursor=r.css("cursor"),r.css("cursor",s.cursor),this.storedStylesheet=e("").appendTo(r)),s.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",s.zIndex)),s.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",s.opacity)),this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",t,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!n)for(o=this.containers.length-1;o>=0;o--)this.containers[o]._trigger("activate",t,this._uiHash(this));return e.ui.ddmanager&&(e.ui.ddmanager.current=this),e.ui.ddmanager&&!s.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t),this.dragging=!0,this._addClass(this.helper,"ui-sortable-helper"),this.helper.parent().is(this.appendTo)||(this.helper.detach().appendTo(this.appendTo),this.offset.parent=this._getParentOffset()),this.position=this.originalPosition=this._generatePosition(t),this.originalPageX=t.pageX,this.originalPageY=t.pageY,this.lastPositionAbs=this.positionAbs=this._convertPositionTo("absolute"),this._mouseDrag(t),!0},_scroll:function(e){var t=this.options,i=!1;return this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-e.pageY=0;i--)if(o=(n=this.items[i]).item[0],(r=this._intersectsWithPointer(n))&&n.instance===this.currentContainer&&!(o===this.currentItem[0]||this.placeholder[1===r?"next":"prev"]()[0]===o||e.contains(this.placeholder[0],o)||"semi-dynamic"===this.options.type&&e.contains(this.element[0],o))){if(this.direction=1===r?"down":"up","pointer"!==this.options.tolerance&&!this._intersectsWithSides(n))break;this._rearrange(t,n),this._trigger("change",t,this._uiHash());break}return this._contactContainers(t),e.ui.ddmanager&&e.ui.ddmanager.drag(this,t),this._trigger("sort",t,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(t,i){if(t){if(e.ui.ddmanager&&!this.options.dropBehaviour&&e.ui.ddmanager.drop(this,t),this.options.revert){var n=this,o=this.placeholder.offset(),r=this.options.axis,s={};r&&"x"!==r||(s.left=o.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollLeft)),r&&"y"!==r||(s.top=o.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollTop)),this.reverting=!0,e(this.helper).animate(s,parseInt(this.options.revert,10)||500,(function(){n._clear(t)}))}else this._clear(t,i);return!1}},cancel:function(){if(this.dragging){this._mouseUp(new e.Event("mouseup",{target:null})),"original"===this.options.helper?(this.currentItem.css(this._storedCSS),this._removeClass(this.currentItem,"ui-sortable-helper")):this.currentItem.show();for(var t=this.containers.length-1;t>=0;t--)this.containers[t]._trigger("deactivate",null,this._uiHash(this)),this.containers[t].containerCache.over&&(this.containers[t]._trigger("out",null,this._uiHash(this)),this.containers[t].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),"original"!==this.options.helper&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),e.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?e(this.domPosition.prev).after(this.currentItem):e(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(t){var i=this._getItemsAsjQuery(t&&t.connected),n=[];return t=t||{},e(i).each((function(){var i=(e(t.item||this).attr(t.attribute||"id")||"").match(t.expression||/(.+)[\-=_](.+)/);i&&n.push((t.key||i[1]+"[]")+"="+(t.key&&t.expression?i[1]:i[2]))})),!n.length&&t.key&&n.push(t.key+"="),n.join("&")},toArray:function(t){var i=this._getItemsAsjQuery(t&&t.connected),n=[];return t=t||{},i.each((function(){n.push(e(t.item||this).attr(t.attribute||"id")||"")})),n},_intersectsWith:function(e){var t=this.positionAbs.left,i=t+this.helperProportions.width,n=this.positionAbs.top,o=n+this.helperProportions.height,r=e.left,s=r+e.width,a=e.top,l=a+e.height,c=this.offset.click.top,d=this.offset.click.left,u="x"===this.options.axis||n+c>a&&n+cr&&t+de[this.floating?"width":"height"]?p:r0?"down":"up")},_getDragHorizontalDirection:function(){var e=this.positionAbs.left-this.lastPositionAbs.left;return 0!==e&&(e>0?"right":"left")},refresh:function(e){return this._refreshItems(e),this._setHandleClassName(),this.refreshPositions(),this},_connectWith:function(){var e=this.options;return e.connectWith.constructor===String?[e.connectWith]:e.connectWith},_getItemsAsjQuery:function(t){var i,n,o,r,s=[],a=[],l=this._connectWith();if(l&&t)for(i=l.length-1;i>=0;i--)for(n=(o=e(l[i],this.document[0])).length-1;n>=0;n--)(r=e.data(o[n],this.widgetFullName))&&r!==this&&!r.options.disabled&&a.push(["function"==typeof r.options.items?r.options.items.call(r.element):e(r.options.items,r.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),r]);function c(){s.push(this)}for(a.push(["function"==typeof this.options.items?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):e(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]),i=a.length-1;i>=0;i--)a[i][0].each(c);return e(s)},_removeCurrentsFromItems:function(){var t=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=e.grep(this.items,(function(e){for(var i=0;i=0;i--)for(n=(o=e(h[i],this.document[0])).length-1;n>=0;n--)(r=e.data(o[n],this.widgetFullName))&&r!==this&&!r.options.disabled&&(u.push(["function"==typeof r.options.items?r.options.items.call(r.element[0],t,{item:this.currentItem}):e(r.options.items,r.element),r]),this.containers.push(r));for(i=u.length-1;i>=0;i--)for(s=u[i][1],n=0,c=(a=u[i][0]).length;n=0;i--)n=this.items[i],this.currentContainer&&n.instance!==this.currentContainer&&n.item[0]!==this.currentItem[0]||(o=this.options.toleranceElement?e(this.options.toleranceElement,n.item):n.item,t||(n.width=o.outerWidth(),n.height=o.outerHeight()),r=o.offset(),n.left=r.left,n.top=r.top)},refreshPositions:function(e){var t,i;if(this.floating=!!this.items.length&&("x"===this.options.axis||this._isFloating(this.items[0].item)),this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset()),this._refreshItemPositions(e),this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(t=this.containers.length-1;t>=0;t--)i=this.containers[t].element.offset(),this.containers[t].containerCache.left=i.left,this.containers[t].containerCache.top=i.top,this.containers[t].containerCache.width=this.containers[t].element.outerWidth(),this.containers[t].containerCache.height=this.containers[t].element.outerHeight();return this},_createPlaceholder:function(t){var i,n,o=(t=t||this).options;o.placeholder&&o.placeholder.constructor!==String||(i=o.placeholder,n=t.currentItem[0].nodeName.toLowerCase(),o.placeholder={element:function(){var o=e("<"+n+">",t.document[0]);return t._addClass(o,"ui-sortable-placeholder",i||t.currentItem[0].className)._removeClass(o,"ui-sortable-helper"),"tbody"===n?t._createTrPlaceholder(t.currentItem.find("tr").eq(0),e("",t.document[0]).appendTo(o)):"tr"===n?t._createTrPlaceholder(t.currentItem,o):"img"===n&&o.attr("src",t.currentItem.attr("src")),i||o.css("visibility","hidden"),o},update:function(e,r){i&&!o.forcePlaceholderSize||(r.height()&&(!o.forcePlaceholderSize||"tbody"!==n&&"tr"!==n)||r.height(t.currentItem.innerHeight()-parseInt(t.currentItem.css("paddingTop")||0,10)-parseInt(t.currentItem.css("paddingBottom")||0,10)),r.width()||r.width(t.currentItem.innerWidth()-parseInt(t.currentItem.css("paddingLeft")||0,10)-parseInt(t.currentItem.css("paddingRight")||0,10)))}}),t.placeholder=e(o.placeholder.element.call(t.element,t.currentItem)),t.currentItem.after(t.placeholder),o.placeholder.update(t,t.placeholder)},_createTrPlaceholder:function(t,i){var n=this;t.children().each((function(){e(" ",n.document[0]).attr("colspan",e(this).attr("colspan")||1).appendTo(i)}))},_contactContainers:function(t){var i,n,o,r,s,a,l,c,d,u,h=null,p=null;for(i=this.containers.length-1;i>=0;i--)if(!e.contains(this.currentItem[0],this.containers[i].element[0]))if(this._intersectsWith(this.containers[i].containerCache)){if(h&&e.contains(this.containers[i].element[0],h.element[0]))continue;h=this.containers[i],p=i}else this.containers[i].containerCache.over&&(this.containers[i]._trigger("out",t,this._uiHash(this)),this.containers[i].containerCache.over=0);if(h)if(1===this.containers.length)this.containers[p].containerCache.over||(this.containers[p]._trigger("over",t,this._uiHash(this)),this.containers[p].containerCache.over=1);else{for(o=1e4,r=null,s=(d=h.floating||this._isFloating(this.currentItem))?"left":"top",a=d?"width":"height",u=d?"pageX":"pageY",n=this.items.length-1;n>=0;n--)e.contains(this.containers[p].element[0],this.items[n].item[0])&&this.items[n].item[0]!==this.currentItem[0]&&(l=this.items[n].item.offset()[s],c=!1,t[u]-l>this.items[n][a]/2&&(c=!0),Math.abs(t[u]-l)this.containment[2]&&(r=this.containment[2]+this.offset.click.left),t.pageY-this.offset.click.top>this.containment[3]&&(s=this.containment[3]+this.offset.click.top)),o.grid&&(i=this.originalPageY+Math.round((s-this.originalPageY)/o.grid[1])*o.grid[1],s=this.containment?i-this.offset.click.top>=this.containment[1]&&i-this.offset.click.top<=this.containment[3]?i:i-this.offset.click.top>=this.containment[1]?i-o.grid[1]:i+o.grid[1]:i,n=this.originalPageX+Math.round((r-this.originalPageX)/o.grid[0])*o.grid[0],r=this.containment?n-this.offset.click.left>=this.containment[0]&&n-this.offset.click.left<=this.containment[2]?n:n-this.offset.click.left>=this.containment[0]?n-o.grid[0]:n+o.grid[0]:n)),{top:s-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():l?0:a.scrollTop()),left:r-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():l?0:a.scrollLeft())}},_rearrange:function(e,t,i,n){i?i[0].appendChild(this.placeholder[0]):t.item[0].parentNode.insertBefore(this.placeholder[0],"down"===this.direction?t.item[0]:t.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var o=this.counter;this._delay((function(){o===this.counter&&this.refreshPositions(!n)}))},_clear:function(e,t){this.reverting=!1;var i,n=[];if(!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]===this.currentItem[0]){for(i in this._storedCSS)"auto"!==this._storedCSS[i]&&"static"!==this._storedCSS[i]||(this._storedCSS[i]="");this.currentItem.css(this._storedCSS),this._removeClass(this.currentItem,"ui-sortable-helper")}else this.currentItem.show();function o(e,t,i){return function(n){i._trigger(e,n,t._uiHash(t))}}for(this.fromOutside&&!t&&n.push((function(e){this._trigger("receive",e,this._uiHash(this.fromOutside))})),!this.fromOutside&&this.domPosition.prev===this.currentItem.prev().not(".ui-sortable-helper")[0]&&this.domPosition.parent===this.currentItem.parent()[0]||t||n.push((function(e){this._trigger("update",e,this._uiHash())})),this!==this.currentContainer&&(t||(n.push((function(e){this._trigger("remove",e,this._uiHash())})),n.push(function(e){return function(t){e._trigger("receive",t,this._uiHash(this))}}.call(this,this.currentContainer)),n.push(function(e){return function(t){e._trigger("update",t,this._uiHash(this))}}.call(this,this.currentContainer)))),i=this.containers.length-1;i>=0;i--)t||n.push(o("deactivate",this,this.containers[i])),this.containers[i].containerCache.over&&(n.push(o("out",this,this.containers[i])),this.containers[i].containerCache.over=0);if(this.storedCursor&&(this.document.find("body").css("cursor",this.storedCursor),this.storedStylesheet.remove()),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex","auto"===this._storedZIndex?"":this._storedZIndex),this.dragging=!1,t||this._trigger("beforeStop",e,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.cancelHelperRemoval||(this.helper[0]!==this.currentItem[0]&&this.helper.remove(),this.helper=null),!t){for(i=0;i{var n,o,r;!function(s){"use strict";o=[i(19755),i(17053),i(91822),i(49138),i(85592),i(26891)],n=function(e){return e.widget("ui.tooltip",{version:"1.13.2",options:{classes:{"ui-tooltip":"ui-corner-all ui-widget-shadow"},content:function(){var t=e(this).attr("title");return e("").text(t).html()},hide:!0,items:"[title]:not([disabled])",position:{my:"left top+15",at:"left bottom",collision:"flipfit flip"},show:!0,track:!1,close:null,open:null},_addDescribedBy:function(e,t){var i=(e.attr("aria-describedby")||"").split(/\s+/);i.push(t),e.data("ui-tooltip-id",t).attr("aria-describedby",String.prototype.trim.call(i.join(" ")))},_removeDescribedBy:function(t){var i=t.data("ui-tooltip-id"),n=(t.attr("aria-describedby")||"").split(/\s+/),o=e.inArray(i,n);-1!==o&&n.splice(o,1),t.removeData("ui-tooltip-id"),(n=String.prototype.trim.call(n.join(" ")))?t.attr("aria-describedby",n):t.removeAttr("aria-describedby")},_create:function(){this._on({mouseover:"open",focusin:"open"}),this.tooltips={},this.parents={},this.liveRegion=e("
").attr({role:"log","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this.disabledTitles=e([])},_setOption:function(t,i){var n=this;this._super(t,i),"content"===t&&e.each(this.tooltips,(function(e,t){n._updateContent(t.element)}))},_setOptionDisabled:function(e){this[e?"_disable":"_enable"]()},_disable:function(){var t=this;e.each(this.tooltips,(function(i,n){var o=e.Event("blur");o.target=o.currentTarget=n.element[0],t.close(o,!0)})),this.disabledTitles=this.disabledTitles.add(this.element.find(this.options.items).addBack().filter((function(){var t=e(this);if(t.is("[title]"))return t.data("ui-tooltip-title",t.attr("title")).removeAttr("title")})))},_enable:function(){this.disabledTitles.each((function(){var t=e(this);t.data("ui-tooltip-title")&&t.attr("title",t.data("ui-tooltip-title"))})),this.disabledTitles=e([])},open:function(t){var i=this,n=e(t?t.target:this.element).closest(this.options.items);n.length&&!n.data("ui-tooltip-id")&&(n.attr("title")&&n.data("ui-tooltip-title",n.attr("title")),n.data("ui-tooltip-open",!0),t&&"mouseover"===t.type&&n.parents().each((function(){var t,n=e(this);n.data("ui-tooltip-open")&&((t=e.Event("blur")).target=t.currentTarget=this,i.close(t,!0)),n.attr("title")&&(n.uniqueId(),i.parents[this.id]={element:this,title:n.attr("title")},n.attr("title",""))})),this._registerCloseHandlers(t,n),this._updateContent(n,t))},_updateContent:function(e,t){var i,n=this.options.content,o=this,r=t?t.type:null;if("string"==typeof n||n.nodeType||n.jquery)return this._open(t,e,n);(i=n.call(e[0],(function(i){o._delay((function(){e.data("ui-tooltip-open")&&(t&&(t.type=r),this._open(t,e,i))}))})))&&this._open(t,e,i)},_open:function(t,i,n){var o,r,s,a,l=e.extend({},this.options.position);function c(e){l.of=e,r.is(":hidden")||r.position(l)}n&&((o=this._find(i))?o.tooltip.find(".ui-tooltip-content").html(n):(i.is("[title]")&&(t&&"mouseover"===t.type?i.attr("title",""):i.removeAttr("title")),o=this._tooltip(i),r=o.tooltip,this._addDescribedBy(i,r.attr("id")),r.find(".ui-tooltip-content").html(n),this.liveRegion.children().hide(),(a=e("
").html(r.find(".ui-tooltip-content").html())).removeAttr("name").find("[name]").removeAttr("name"),a.removeAttr("id").find("[id]").removeAttr("id"),a.appendTo(this.liveRegion),this.options.track&&t&&/^mouse/.test(t.type)?(this._on(this.document,{mousemove:c}),c(t)):r.position(e.extend({of:i},this.options.position)),r.hide(),this._show(r,this.options.show),this.options.track&&this.options.show&&this.options.show.delay&&(s=this.delayedShow=setInterval((function(){r.is(":visible")&&(c(l.of),clearInterval(s))}),13)),this._trigger("open",t,{tooltip:r})))},_registerCloseHandlers:function(t,i){var n={keyup:function(t){if(t.keyCode===e.ui.keyCode.ESCAPE){var n=e.Event(t);n.currentTarget=i[0],this.close(n,!0)}}};i[0]!==this.element[0]&&(n.remove=function(){var e=this._find(i);e&&this._removeTooltip(e.tooltip)}),t&&"mouseover"!==t.type||(n.mouseleave="close"),t&&"focusin"!==t.type||(n.focusout="close"),this._on(!0,i,n)},close:function(t){var i,n=this,o=e(t?t.currentTarget:this.element),r=this._find(o);r?(i=r.tooltip,r.closing||(clearInterval(this.delayedShow),o.data("ui-tooltip-title")&&!o.attr("title")&&o.attr("title",o.data("ui-tooltip-title")),this._removeDescribedBy(o),r.hiding=!0,i.stop(!0),this._hide(i,this.options.hide,(function(){n._removeTooltip(e(this))})),o.removeData("ui-tooltip-open"),this._off(o,"mouseleave focusout keyup"),o[0]!==this.element[0]&&this._off(o,"remove"),this._off(this.document,"mousemove"),t&&"mouseleave"===t.type&&e.each(this.parents,(function(t,i){e(i.element).attr("title",i.title),delete n.parents[t]})),r.closing=!0,this._trigger("close",t,{tooltip:i}),r.hiding||(r.closing=!1))):o.removeData("ui-tooltip-open")},_tooltip:function(t){var i=e("
").attr("role","tooltip"),n=e("
").appendTo(i),o=i.uniqueId().attr("id");return this._addClass(n,"ui-tooltip-content"),this._addClass(i,"ui-tooltip","ui-widget ui-widget-content"),i.appendTo(this._appendTo(t)),this.tooltips[o]={element:t,tooltip:i}},_find:function(e){var t=e.data("ui-tooltip-id");return t?this.tooltips[t]:null},_removeTooltip:function(e){clearInterval(this.delayedShow),e.remove(),delete this.tooltips[e.attr("id")]},_appendTo:function(e){var t=e.closest(".ui-front, dialog");return t.length||(t=this.document[0].body),t},_destroy:function(){var t=this;e.each(this.tooltips,(function(i,n){var o=e.Event("blur"),r=n.element;o.target=o.currentTarget=r[0],t.close(o,!0),e("#"+i).remove(),r.data("ui-tooltip-title")&&(r.attr("title")||r.attr("title",r.data("ui-tooltip-title")),r.removeData("ui-tooltip-title"))})),this.liveRegion.remove()}}),!1!==e.uiBackCompat&&e.widget("ui.tooltip",e.ui.tooltip,{options:{tooltipClass:null},_tooltip:function(){var e=this._superApply(arguments);return this.options.tooltipClass&&e.tooltip.addClass(this.options.tooltipClass),e}}),e.ui.tooltip},void 0===(r=n.apply(t,o))||(e.exports=r)}()},33559:(e,t,i)=>{var n,o=i(19755);(n=o).fn.qrcode=function(e){var t;function i(e){this.mode=t,this.data=e}function r(e,t){this.typeNumber=e,this.errorCorrectLevel=t,this.modules=null,this.moduleCount=0,this.dataCache=null,this.dataList=[]}function s(e,t){if(null==e.length)throw Error(e.length+"/"+t);for(var i=0;ie||this.moduleCount<=e||0>t||this.moduleCount<=t)throw Error(e+","+t);return this.modules[e][t]},getModuleCount:function(){return this.moduleCount},make:function(){if(1>this.typeNumber){var e=1;for(e=1;40>e;e++){for(var t=a.getRSBlocks(e,this.errorCorrectLevel),i=new l,n=0,o=0;o=i;i++)if(!(-1>=e+i||this.moduleCount<=e+i))for(var n=-1;7>=n;n++)-1>=t+n||this.moduleCount<=t+n||(this.modules[e+i][t+n]=0<=i&&6>=i&&(0==n||6==n)||0<=n&&6>=n&&(0==i||6==i)||2<=i&&4>=i&&2<=n&&4>=n)},getBestMaskPattern:function(){for(var e=0,t=0,i=0;8>i;i++){this.makeImpl(!0,i);var n=c.getLostPoint(this);(0==i||e>n)&&(e=n,t=i)}return t},createMovieClip:function(e,t,i){for(e=e.createEmptyMovieClip(t,i),this.make(),t=0;t=r;r++)for(var s=-2;2>=s;s++)this.modules[n+r][o+s]=-2==r||2==r||-2==s||2==s||0==r&&0==s}},setupTypeNumber:function(e){for(var t=c.getBCHTypeNumber(this.typeNumber),i=0;18>i;i++){var n=!e&&1==(t>>i&1);this.modules[Math.floor(i/3)][i%3+this.moduleCount-8-3]=n}for(i=0;18>i;i++)n=!e&&1==(t>>i&1),this.modules[i%3+this.moduleCount-8-3][Math.floor(i/3)]=n},setupTypeInfo:function(e,t){for(var i=c.getBCHTypeInfo(this.errorCorrectLevel<<3|t),n=0;15>n;n++){var o=!e&&1==(i>>n&1);6>n?this.modules[n][8]=o:8>n?this.modules[n+1][8]=o:this.modules[this.moduleCount-15+n][8]=o}for(n=0;15>n;n++)o=!e&&1==(i>>n&1),8>n?this.modules[8][this.moduleCount-n-1]=o:9>n?this.modules[8][15-n-1+1]=o:this.modules[8][15-n-1]=o;this.modules[this.moduleCount-8][8]=!e},mapData:function(e,t){for(var i=-1,n=this.moduleCount-1,o=7,r=0,s=this.moduleCount-1;0a;a++)if(null==this.modules[n][s-a]){var l=!1;r>>o&1)),c.getMask(t,n,s-a)&&(l=!l),this.modules[n][s-a]=l,-1==--o&&(r++,o=7)}if(0>(n+=i)||this.moduleCount<=n){n-=i,i=-i;break}}}},r.PAD0=236,r.PAD1=17,r.createData=function(e,t,i){t=a.getRSBlocks(e,t);for(var n=new l,o=0;o8*e)throw Error("code length overflow. ("+n.getLengthInBits()+">"+8*e+")");for(n.getLengthInBits()+4<=8*e&&n.put(0,4);0!=n.getLengthInBits()%8;)n.putBit(!1);for(;!(n.getLengthInBits()>=8*e||(n.put(r.PAD0,8),n.getLengthInBits()>=8*e));)n.put(r.PAD1,8);return r.createBytes(n,t)},r.createBytes=function(e,t){for(var i=0,n=0,o=0,r=Array(t.length),a=Array(t.length),l=0;l>>=1;return t},getPatternPosition:function(e){return c.PATTERN_POSITION_TABLE[e-1]},getMask:function(e,t,i){switch(e){case 0:return 0==(t+i)%2;case 1:return 0==t%2;case 2:return 0==i%3;case 3:return 0==(t+i)%3;case 4:return 0==(Math.floor(t/2)+Math.floor(i/3))%2;case 5:return 0==t*i%2+t*i%3;case 6:return 0==(t*i%2+t*i%3)%2;case 7:return 0==(t*i%3+(t+i)%2)%2;default:throw Error("bad maskPattern:"+e)}},getErrorCorrectPolynomial:function(e){for(var t=new s([1],0),i=0;ii)switch(e){case 1:return 10;case 2:return 9;case t:case 8:return 8;default:throw Error("mode:"+e)}else if(27>i)switch(e){case 1:return 12;case 2:return 11;case t:return 16;case 8:return 10;default:throw Error("mode:"+e)}else{if(!(41>i))throw Error("type:"+i);switch(e){case 1:return 14;case 2:return 13;case t:return 16;case 8:return 12;default:throw Error("mode:"+e)}}},getLostPoint:function(e){for(var t=e.getModuleCount(),i=0,n=0;n=a;a++)if(!(0>n+a||t<=n+a))for(var l=-1;1>=l;l++)0>o+l||t<=o+l||0==a&&0==l||s==e.isDark(n+a,o+l)&&r++;5e)throw Error("glog("+e+")");return d.LOG_TABLE[e]},gexp:function(e){for(;0>e;)e+=255;for(;256<=e;)e-=255;return d.EXP_TABLE[e]},EXP_TABLE:Array(256),LOG_TABLE:Array(256)},u=0;8>u;u++)d.EXP_TABLE[u]=1<u;u++)d.EXP_TABLE[u]=d.EXP_TABLE[u-4]^d.EXP_TABLE[u-5]^d.EXP_TABLE[u-6]^d.EXP_TABLE[u-8];for(u=0;255>u;u++)d.LOG_TABLE[d.EXP_TABLE[u]]=u;return s.prototype={get:function(e){return this.num[e]},getLength:function(){return this.num.length},multiply:function(e){for(var t=Array(this.getLength()+e.getLength()-1),i=0;ithis.getLength()-e.getLength())return this;for(var t=d.glog(this.get(0))-d.glog(e.get(0)),i=Array(this.getLength()),n=0;n>>7-e%8&1)},put:function(e,t){for(var i=0;i>>t-i-1&1))},getLengthInBits:function(){return this.length},putBit:function(e){var t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),e&&(this.buffer[t]|=128>>>this.length%8),this.length++}},"string"==typeof e&&(e={text:e}),e=n.extend({},{render:"canvas",width:256,height:256,typeNumber:-1,correctLevel:2,background:"#ffffff",foreground:"#000000"},e),this.each((function(){var t;if("canvas"==e.render){(t=new r(e.typeNumber,e.correctLevel)).addData(e.text),t.make();var i=document.createElement("canvas");i.width=e.width,i.height=e.height;for(var s=i.getContext("2d"),a=e.width/t.getModuleCount(),l=e.height/t.getModuleCount(),c=0;c").css("width",e.width+"px").css("height",e.height+"px").css("border","0px").css("border-collapse","collapse").css("background-color",e.background),s=e.width/t.getModuleCount(),a=e.height/t.getModuleCount(),l=0;l").css("height",a+"px").appendTo(i),d=0;d").css("width",s+"px").css("background-color",t.isDark(l,d)?e.foreground:e.background).appendTo(c);o(t=i).appendTo(this)}))}},19755:function(e,t){var i;!function(t,i){"use strict";"object"==typeof e.exports?e.exports=t.document?i(t,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return i(e)}:i(t)}("undefined"!=typeof window?window:this,(function(n,o){"use strict";var r=[],s=Object.getPrototypeOf,a=r.slice,l=r.flat?function(e){return r.flat.call(e)}:function(e){return r.concat.apply([],e)},c=r.push,d=r.indexOf,u={},h=u.toString,p=u.hasOwnProperty,f=p.toString,g=f.call(Object),m={},A=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},b=function(e){return null!=e&&e===e.window},v=n.document,C={type:!0,src:!0,nonce:!0,noModule:!0};function y(e,t,i){var n,o,r=(i=i||v).createElement("script");if(r.text=e,t)for(n in C)(o=t[n]||t.getAttribute&&t.getAttribute(n))&&r.setAttribute(n,o);i.head.appendChild(r).parentNode.removeChild(r)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?u[h.call(e)]||"object":typeof e}var x="3.6.0",_=function(e,t){return new _.fn.init(e,t)};function E(e){var t=!!e&&"length"in e&&e.length,i=w(e);return!A(e)&&!b(e)&&("array"===i||0===t||"number"==typeof t&&t>0&&t-1 in e)}_.fn=_.prototype={jquery:x,constructor:_,length:0,toArray:function(){return a.call(this)},get:function(e){return null==e?a.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=_.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return _.each(this,e)},map:function(e){return this.pushStack(_.map(this,(function(t,i){return e.call(t,i,t)})))},slice:function(){return this.pushStack(a.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(_.grep(this,(function(e,t){return(t+1)%2})))},odd:function(){return this.pushStack(_.grep(this,(function(e,t){return t%2})))},eq:function(e){var t=this.length,i=+e+(e<0?t:0);return this.pushStack(i>=0&&i+~]|[\\x20\\t\\r\\n\\f])[\\x20\\t\\r\\n\\f]*"),q=new RegExp(P+"|>"),V=new RegExp(U),G=new RegExp("^"+N+"$"),Y={ID:new RegExp("^#("+N+")"),CLASS:new RegExp("^\\.("+N+")"),TAG:new RegExp("^("+N+"|[*])"),ATTR:new RegExp("^"+F),PSEUDO:new RegExp("^"+U),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\([\\x20\\t\\r\\n\\f]*(even|odd|(([+-]|)(\\d*)n|)[\\x20\\t\\r\\n\\f]*(?:([+-]|)[\\x20\\t\\r\\n\\f]*(\\d+)|))[\\x20\\t\\r\\n\\f]*\\)|)","i"),bool:new RegExp("^(?:"+$+")$","i"),needsContext:new RegExp("^[\\x20\\t\\r\\n\\f]*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\([\\x20\\t\\r\\n\\f]*((?:-\\d)?\\d*)[\\x20\\t\\r\\n\\f]*\\)|)(?=[^-]|$)","i")},X=/HTML$/i,K=/^(?:input|select|textarea|button)$/i,Q=/^h\d$/i,Z=/^[^{]+\{\s*\[native \w/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}[\\x20\\t\\r\\n\\f]?|\\\\([^\\r\\n\\f])","g"),ie=function(e,t){var i="0x"+e.slice(1)-65536;return t||(i<0?String.fromCharCode(i+65536):String.fromCharCode(i>>10|55296,1023&i|56320))},ne=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,oe=function(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},re=function(){h()},se=Ce((function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()}),{dir:"parentNode",next:"legend"});try{L.apply(B=D.call(y.childNodes),y.childNodes),B[y.childNodes.length].nodeType}catch(e){L={apply:B.length?function(e,t){I.apply(e,D.call(t))}:function(e,t){for(var i=e.length,n=0;e[i++]=t[n++];);e.length=i-1}}}function ae(e,t,n,o){var r,a,c,d,u,f,A,b=t&&t.ownerDocument,y=t?t.nodeType:9;if(n=n||[],"string"!=typeof e||!e||1!==y&&9!==y&&11!==y)return n;if(!o&&(h(t),t=t||p,g)){if(11!==y&&(u=J.exec(e)))if(r=u[1]){if(9===y){if(!(c=t.getElementById(r)))return n;if(c.id===r)return n.push(c),n}else if(b&&(c=b.getElementById(r))&&v(t,c)&&c.id===r)return n.push(c),n}else{if(u[2])return L.apply(n,t.getElementsByTagName(e)),n;if((r=u[3])&&i.getElementsByClassName&&t.getElementsByClassName)return L.apply(n,t.getElementsByClassName(r)),n}if(i.qsa&&!S[e+" "]&&(!m||!m.test(e))&&(1!==y||"object"!==t.nodeName.toLowerCase())){if(A=e,b=t,1===y&&(q.test(e)||H.test(e))){for((b=ee.test(e)&&Ae(t.parentNode)||t)===t&&i.scope||((d=t.getAttribute("id"))?d=d.replace(ne,oe):t.setAttribute("id",d=C)),a=(f=s(e)).length;a--;)f[a]=(d?"#"+d:":scope")+" "+ve(f[a]);A=f.join(",")}try{return L.apply(n,b.querySelectorAll(A)),n}catch(t){S(e,!0)}finally{d===C&&t.removeAttribute("id")}}}return l(e.replace(W,"$1"),t,n,o)}function le(){var e=[];return function t(i,o){return e.push(i+" ")>n.cacheLength&&delete t[e.shift()],t[i+" "]=o}}function ce(e){return e[C]=!0,e}function de(e){var t=p.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ue(e,t){for(var i=e.split("|"),o=i.length;o--;)n.attrHandle[i[o]]=t}function he(e,t){var i=t&&e,n=i&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(n)return n;if(i)for(;i=i.nextSibling;)if(i===t)return-1;return e?1:-1}function pe(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function fe(e){return function(t){var i=t.nodeName.toLowerCase();return("input"===i||"button"===i)&&t.type===e}}function ge(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&se(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function me(e){return ce((function(t){return t=+t,ce((function(i,n){for(var o,r=e([],i.length,t),s=r.length;s--;)i[o=r[s]]&&(i[o]=!(n[o]=i[o]))}))}))}function Ae(e){return e&&void 0!==e.getElementsByTagName&&e}for(t in i=ae.support={},r=ae.isXML=function(e){var t=e&&e.namespaceURI,i=e&&(e.ownerDocument||e).documentElement;return!X.test(t||i&&i.nodeName||"HTML")},h=ae.setDocument=function(e){var t,o,s=e?e.ownerDocument||e:y;return s!=p&&9===s.nodeType&&s.documentElement?(f=(p=s).documentElement,g=!r(p),y!=p&&(o=p.defaultView)&&o.top!==o&&(o.addEventListener?o.addEventListener("unload",re,!1):o.attachEvent&&o.attachEvent("onunload",re)),i.scope=de((function(e){return f.appendChild(e).appendChild(p.createElement("div")),void 0!==e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length})),i.attributes=de((function(e){return e.className="i",!e.getAttribute("className")})),i.getElementsByTagName=de((function(e){return e.appendChild(p.createComment("")),!e.getElementsByTagName("*").length})),i.getElementsByClassName=Z.test(p.getElementsByClassName),i.getById=de((function(e){return f.appendChild(e).id=C,!p.getElementsByName||!p.getElementsByName(C).length})),i.getById?(n.filter.ID=function(e){var t=e.replace(te,ie);return function(e){return e.getAttribute("id")===t}},n.find.ID=function(e,t){if(void 0!==t.getElementById&&g){var i=t.getElementById(e);return i?[i]:[]}}):(n.filter.ID=function(e){var t=e.replace(te,ie);return function(e){var i=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return i&&i.value===t}},n.find.ID=function(e,t){if(void 0!==t.getElementById&&g){var i,n,o,r=t.getElementById(e);if(r){if((i=r.getAttributeNode("id"))&&i.value===e)return[r];for(o=t.getElementsByName(e),n=0;r=o[n++];)if((i=r.getAttributeNode("id"))&&i.value===e)return[r]}return[]}}),n.find.TAG=i.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):i.qsa?t.querySelectorAll(e):void 0}:function(e,t){var i,n=[],o=0,r=t.getElementsByTagName(e);if("*"===e){for(;i=r[o++];)1===i.nodeType&&n.push(i);return n}return r},n.find.CLASS=i.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&g)return t.getElementsByClassName(e)},A=[],m=[],(i.qsa=Z.test(p.querySelectorAll))&&(de((function(e){var t;f.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&m.push("[*^$]=[\\x20\\t\\r\\n\\f]*(?:''|\"\")"),e.querySelectorAll("[selected]").length||m.push("\\[[\\x20\\t\\r\\n\\f]*(?:value|"+$+")"),e.querySelectorAll("[id~="+C+"-]").length||m.push("~="),(t=p.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||m.push("\\[[\\x20\\t\\r\\n\\f]*name[\\x20\\t\\r\\n\\f]*=[\\x20\\t\\r\\n\\f]*(?:''|\"\")"),e.querySelectorAll(":checked").length||m.push(":checked"),e.querySelectorAll("a#"+C+"+*").length||m.push(".#.+[+~]"),e.querySelectorAll("\\\f"),m.push("[\\r\\n\\f]")})),de((function(e){e.innerHTML="";var t=p.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&m.push("name[\\x20\\t\\r\\n\\f]*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&m.push(":enabled",":disabled"),f.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&m.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),m.push(",.*:")}))),(i.matchesSelector=Z.test(b=f.matches||f.webkitMatchesSelector||f.mozMatchesSelector||f.oMatchesSelector||f.msMatchesSelector))&&de((function(e){i.disconnectedMatch=b.call(e,"*"),b.call(e,"[s!='']:x"),A.push("!=",U)})),m=m.length&&new RegExp(m.join("|")),A=A.length&&new RegExp(A.join("|")),t=Z.test(f.compareDocumentPosition),v=t||Z.test(f.contains)?function(e,t){var i=9===e.nodeType?e.documentElement:e,n=t&&t.parentNode;return e===n||!(!n||1!==n.nodeType||!(i.contains?i.contains(n):e.compareDocumentPosition&&16&e.compareDocumentPosition(n)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},T=t?function(e,t){if(e===t)return u=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!i.sortDetached&&t.compareDocumentPosition(e)===n?e==p||e.ownerDocument==y&&v(y,e)?-1:t==p||t.ownerDocument==y&&v(y,t)?1:d?O(d,e)-O(d,t):0:4&n?-1:1)}:function(e,t){if(e===t)return u=!0,0;var i,n=0,o=e.parentNode,r=t.parentNode,s=[e],a=[t];if(!o||!r)return e==p?-1:t==p?1:o?-1:r?1:d?O(d,e)-O(d,t):0;if(o===r)return he(e,t);for(i=e;i=i.parentNode;)s.unshift(i);for(i=t;i=i.parentNode;)a.unshift(i);for(;s[n]===a[n];)n++;return n?he(s[n],a[n]):s[n]==y?-1:a[n]==y?1:0},p):p},ae.matches=function(e,t){return ae(e,null,null,t)},ae.matchesSelector=function(e,t){if(h(e),i.matchesSelector&&g&&!S[t+" "]&&(!A||!A.test(t))&&(!m||!m.test(t)))try{var n=b.call(e,t);if(n||i.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){S(t,!0)}return ae(t,p,null,[e]).length>0},ae.contains=function(e,t){return(e.ownerDocument||e)!=p&&h(e),v(e,t)},ae.attr=function(e,t){(e.ownerDocument||e)!=p&&h(e);var o=n.attrHandle[t.toLowerCase()],r=o&&M.call(n.attrHandle,t.toLowerCase())?o(e,t,!g):void 0;return void 0!==r?r:i.attributes||!g?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},ae.escape=function(e){return(e+"").replace(ne,oe)},ae.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},ae.uniqueSort=function(e){var t,n=[],o=0,r=0;if(u=!i.detectDuplicates,d=!i.sortStable&&e.slice(0),e.sort(T),u){for(;t=e[r++];)t===e[r]&&(o=n.push(r));for(;o--;)e.splice(n[o],1)}return d=null,e},o=ae.getText=function(e){var t,i="",n=0,r=e.nodeType;if(r){if(1===r||9===r||11===r){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)i+=o(e)}else if(3===r||4===r)return e.nodeValue}else for(;t=e[n++];)i+=o(t);return i},n=ae.selectors={cacheLength:50,createPseudo:ce,match:Y,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ie),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ie),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||ae.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&ae.error(e[0]),e},PSEUDO:function(e){var t,i=!e[6]&&e[2];return Y.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":i&&V.test(i)&&(t=s(i,!0))&&(t=i.indexOf(")",i.length-t)-i.length)&&(e[0]=e[0].slice(0,t),e[2]=i.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ie).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=_[e+" "];return t||(t=new RegExp("(^|[\\x20\\t\\r\\n\\f])"+e+"("+P+"|$)"))&&_(e,(function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")}))},ATTR:function(e,t,i){return function(n){var o=ae.attr(n,e);return null==o?"!="===t:!t||(o+="","="===t?o===i:"!="===t?o!==i:"^="===t?i&&0===o.indexOf(i):"*="===t?i&&o.indexOf(i)>-1:"$="===t?i&&o.slice(-i.length)===i:"~="===t?(" "+o.replace(j," ")+" ").indexOf(i)>-1:"|="===t&&(o===i||o.slice(0,i.length+1)===i+"-"))}},CHILD:function(e,t,i,n,o){var r="nth"!==e.slice(0,3),s="last"!==e.slice(-4),a="of-type"===t;return 1===n&&0===o?function(e){return!!e.parentNode}:function(t,i,l){var c,d,u,h,p,f,g=r!==s?"nextSibling":"previousSibling",m=t.parentNode,A=a&&t.nodeName.toLowerCase(),b=!l&&!a,v=!1;if(m){if(r){for(;g;){for(h=t;h=h[g];)if(a?h.nodeName.toLowerCase()===A:1===h.nodeType)return!1;f=g="only"===e&&!f&&"nextSibling"}return!0}if(f=[s?m.firstChild:m.lastChild],s&&b){for(v=(p=(c=(d=(u=(h=m)[C]||(h[C]={}))[h.uniqueID]||(u[h.uniqueID]={}))[e]||[])[0]===w&&c[1])&&c[2],h=p&&m.childNodes[p];h=++p&&h&&h[g]||(v=p=0)||f.pop();)if(1===h.nodeType&&++v&&h===t){d[e]=[w,p,v];break}}else if(b&&(v=p=(c=(d=(u=(h=t)[C]||(h[C]={}))[h.uniqueID]||(u[h.uniqueID]={}))[e]||[])[0]===w&&c[1]),!1===v)for(;(h=++p&&h&&h[g]||(v=p=0)||f.pop())&&((a?h.nodeName.toLowerCase()!==A:1!==h.nodeType)||!++v||(b&&((d=(u=h[C]||(h[C]={}))[h.uniqueID]||(u[h.uniqueID]={}))[e]=[w,v]),h!==t)););return(v-=o)===n||v%n==0&&v/n>=0}}},PSEUDO:function(e,t){var i,o=n.pseudos[e]||n.setFilters[e.toLowerCase()]||ae.error("unsupported pseudo: "+e);return o[C]?o(t):o.length>1?(i=[e,e,"",t],n.setFilters.hasOwnProperty(e.toLowerCase())?ce((function(e,i){for(var n,r=o(e,t),s=r.length;s--;)e[n=O(e,r[s])]=!(i[n]=r[s])})):function(e){return o(e,0,i)}):o}},pseudos:{not:ce((function(e){var t=[],i=[],n=a(e.replace(W,"$1"));return n[C]?ce((function(e,t,i,o){for(var r,s=n(e,null,o,[]),a=e.length;a--;)(r=s[a])&&(e[a]=!(t[a]=r))})):function(e,o,r){return t[0]=e,n(t,null,r,i),t[0]=null,!i.pop()}})),has:ce((function(e){return function(t){return ae(e,t).length>0}})),contains:ce((function(e){return e=e.replace(te,ie),function(t){return(t.textContent||o(t)).indexOf(e)>-1}})),lang:ce((function(e){return G.test(e||"")||ae.error("unsupported lang: "+e),e=e.replace(te,ie).toLowerCase(),function(t){var i;do{if(i=g?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(i=i.toLowerCase())===e||0===i.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}})),target:function(t){var i=e.location&&e.location.hash;return i&&i.slice(1)===t.id},root:function(e){return e===f},focus:function(e){return e===p.activeElement&&(!p.hasFocus||p.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!n.pseudos.empty(e)},header:function(e){return Q.test(e.nodeName)},input:function(e){return K.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:me((function(){return[0]})),last:me((function(e,t){return[t-1]})),eq:me((function(e,t,i){return[i<0?i+t:i]})),even:me((function(e,t){for(var i=0;it?t:i;--n>=0;)e.push(n);return e})),gt:me((function(e,t,i){for(var n=i<0?i+t:i;++n1?function(t,i,n){for(var o=e.length;o--;)if(!e[o](t,i,n))return!1;return!0}:e[0]}function we(e,t,i,n,o){for(var r,s=[],a=0,l=e.length,c=null!=t;a-1&&(r[c]=!(s[c]=u))}}else A=we(A===s?A.splice(f,A.length):A),o?o(null,s,A,l):L.apply(s,A)}))}function _e(e){for(var t,i,o,r=e.length,s=n.relative[e[0].type],a=s||n.relative[" "],l=s?1:0,d=Ce((function(e){return e===t}),a,!0),u=Ce((function(e){return O(t,e)>-1}),a,!0),h=[function(e,i,n){var o=!s&&(n||i!==c)||((t=i).nodeType?d(e,i,n):u(e,i,n));return t=null,o}];l1&&ye(h),l>1&&ve(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(W,"$1"),i,l0,o=e.length>0,r=function(r,s,a,l,d){var u,f,m,A=0,b="0",v=r&&[],C=[],y=c,x=r||o&&n.find.TAG("*",d),_=w+=null==y?1:Math.random()||.1,E=x.length;for(d&&(c=s==p||s||d);b!==E&&null!=(u=x[b]);b++){if(o&&u){for(f=0,s||u.ownerDocument==p||(h(u),a=!g);m=e[f++];)if(m(u,s||p,a)){l.push(u);break}d&&(w=_)}i&&((u=!m&&u)&&A--,r&&v.push(u))}if(A+=b,i&&b!==A){for(f=0;m=t[f++];)m(v,C,s,a);if(r){if(A>0)for(;b--;)v[b]||C[b]||(C[b]=R.call(l));C=we(C)}L.apply(l,C),d&&!r&&C.length>0&&A+t.length>1&&ae.uniqueSort(l)}return d&&(w=_,c=y),v};return i?ce(r):r}(r,o)),a.selector=e}return a},l=ae.select=function(e,t,i,o){var r,l,c,d,u,h="function"==typeof e&&e,p=!o&&s(e=h.selector||e);if(i=i||[],1===p.length){if((l=p[0]=p[0].slice(0)).length>2&&"ID"===(c=l[0]).type&&9===t.nodeType&&g&&n.relative[l[1].type]){if(!(t=(n.find.ID(c.matches[0].replace(te,ie),t)||[])[0]))return i;h&&(t=t.parentNode),e=e.slice(l.shift().value.length)}for(r=Y.needsContext.test(e)?0:l.length;r--&&(c=l[r],!n.relative[d=c.type]);)if((u=n.find[d])&&(o=u(c.matches[0].replace(te,ie),ee.test(l[0].type)&&Ae(t.parentNode)||t))){if(l.splice(r,1),!(e=o.length&&ve(l)))return L.apply(i,o),i;break}}return(h||a(e,p))(o,t,!g,i,!t||ee.test(e)&&Ae(t.parentNode)||t),i},i.sortStable=C.split("").sort(T).join("")===C,i.detectDuplicates=!!u,h(),i.sortDetached=de((function(e){return 1&e.compareDocumentPosition(p.createElement("fieldset"))})),de((function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")}))||ue("type|href|height|width",(function(e,t,i){if(!i)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)})),i.attributes&&de((function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")}))||ue("value",(function(e,t,i){if(!i&&"input"===e.nodeName.toLowerCase())return e.defaultValue})),de((function(e){return null==e.getAttribute("disabled")}))||ue($,(function(e,t,i){var n;if(!i)return!0===e[t]?t.toLowerCase():(n=e.getAttributeNode(t))&&n.specified?n.value:null})),ae}(n);_.find=k,_.expr=k.selectors,_.expr[":"]=_.expr.pseudos,_.uniqueSort=_.unique=k.uniqueSort,_.text=k.getText,_.isXMLDoc=k.isXML,_.contains=k.contains,_.escapeSelector=k.escape;var S=function(e,t,i){for(var n=[],o=void 0!==i;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(o&&_(e).is(i))break;n.push(e)}return n},T=function(e,t){for(var i=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&i.push(e);return i},M=_.expr.match.needsContext;function B(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var R=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function I(e,t,i){return A(t)?_.grep(e,(function(e,n){return!!t.call(e,n,e)!==i})):t.nodeType?_.grep(e,(function(e){return e===t!==i})):"string"!=typeof t?_.grep(e,(function(e){return d.call(t,e)>-1!==i})):_.filter(t,e,i)}_.filter=function(e,t,i){var n=t[0];return i&&(e=":not("+e+")"),1===t.length&&1===n.nodeType?_.find.matchesSelector(n,e)?[n]:[]:_.find.matches(e,_.grep(t,(function(e){return 1===e.nodeType})))},_.fn.extend({find:function(e){var t,i,n=this.length,o=this;if("string"!=typeof e)return this.pushStack(_(e).filter((function(){for(t=0;t1?_.uniqueSort(i):i},filter:function(e){return this.pushStack(I(this,e||[],!1))},not:function(e){return this.pushStack(I(this,e||[],!0))},is:function(e){return!!I(this,"string"==typeof e&&M.test(e)?_(e):e||[],!1).length}});var L,D=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(_.fn.init=function(e,t,i){var n,o;if(!e)return this;if(i=i||L,"string"==typeof e){if(!(n="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:D.exec(e))||!n[1]&&t)return!t||t.jquery?(t||i).find(e):this.constructor(t).find(e);if(n[1]){if(t=t instanceof _?t[0]:t,_.merge(this,_.parseHTML(n[1],t&&t.nodeType?t.ownerDocument||t:v,!0)),R.test(n[1])&&_.isPlainObject(t))for(n in t)A(this[n])?this[n](t[n]):this.attr(n,t[n]);return this}return(o=v.getElementById(n[2]))&&(this[0]=o,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):A(e)?void 0!==i.ready?i.ready(e):e(_):_.makeArray(e,this)}).prototype=_.fn,L=_(v);var O=/^(?:parents|prev(?:Until|All))/,$={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}_.fn.extend({has:function(e){var t=_(e,this),i=t.length;return this.filter((function(){for(var e=0;e-1:1===i.nodeType&&_.find.matchesSelector(i,e))){r.push(i);break}return this.pushStack(r.length>1?_.uniqueSort(r):r)},index:function(e){return e?"string"==typeof e?d.call(_(e),this[0]):d.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(_.uniqueSort(_.merge(this.get(),_(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),_.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return S(e,"parentNode")},parentsUntil:function(e,t,i){return S(e,"parentNode",i)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return S(e,"nextSibling")},prevAll:function(e){return S(e,"previousSibling")},nextUntil:function(e,t,i){return S(e,"nextSibling",i)},prevUntil:function(e,t,i){return S(e,"previousSibling",i)},siblings:function(e){return T((e.parentNode||{}).firstChild,e)},children:function(e){return T(e.firstChild)},contents:function(e){return null!=e.contentDocument&&s(e.contentDocument)?e.contentDocument:(B(e,"template")&&(e=e.content||e),_.merge([],e.childNodes))}},(function(e,t){_.fn[e]=function(i,n){var o=_.map(this,t,i);return"Until"!==e.slice(-5)&&(n=i),n&&"string"==typeof n&&(o=_.filter(n,o)),this.length>1&&($[e]||_.uniqueSort(o),O.test(e)&&o.reverse()),this.pushStack(o)}}));var N=/[^\x20\t\r\n\f]+/g;function F(e){return e}function U(e){throw e}function j(e,t,i,n){var o;try{e&&A(o=e.promise)?o.call(e).done(t).fail(i):e&&A(o=e.then)?o.call(e,t,i):t.apply(void 0,[e].slice(n))}catch(e){i.apply(void 0,[e])}}_.Callbacks=function(e){e="string"==typeof e?function(e){var t={};return _.each(e.match(N)||[],(function(e,i){t[i]=!0})),t}(e):_.extend({},e);var t,i,n,o,r=[],s=[],a=-1,l=function(){for(o=o||e.once,n=t=!0;s.length;a=-1)for(i=s.shift();++a-1;)r.splice(i,1),i<=a&&a--})),this},has:function(e){return e?_.inArray(e,r)>-1:r.length>0},empty:function(){return r&&(r=[]),this},disable:function(){return o=s=[],r=i="",this},disabled:function(){return!r},lock:function(){return o=s=[],i||t||(r=i=""),this},locked:function(){return!!o},fireWith:function(e,i){return o||(i=[e,(i=i||[]).slice?i.slice():i],s.push(i),t||l()),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!n}};return c},_.extend({Deferred:function(e){var t=[["notify","progress",_.Callbacks("memory"),_.Callbacks("memory"),2],["resolve","done",_.Callbacks("once memory"),_.Callbacks("once memory"),0,"resolved"],["reject","fail",_.Callbacks("once memory"),_.Callbacks("once memory"),1,"rejected"]],i="pending",o={state:function(){return i},always:function(){return r.done(arguments).fail(arguments),this},catch:function(e){return o.then(null,e)},pipe:function(){var e=arguments;return _.Deferred((function(i){_.each(t,(function(t,n){var o=A(e[n[4]])&&e[n[4]];r[n[1]]((function(){var e=o&&o.apply(this,arguments);e&&A(e.promise)?e.promise().progress(i.notify).done(i.resolve).fail(i.reject):i[n[0]+"With"](this,o?[e]:arguments)}))})),e=null})).promise()},then:function(e,i,o){var r=0;function s(e,t,i,o){return function(){var a=this,l=arguments,c=function(){var n,c;if(!(e=r&&(i!==U&&(a=void 0,l=[n]),t.rejectWith(a,l))}};e?d():(_.Deferred.getStackHook&&(d.stackTrace=_.Deferred.getStackHook()),n.setTimeout(d))}}return _.Deferred((function(n){t[0][3].add(s(0,n,A(o)?o:F,n.notifyWith)),t[1][3].add(s(0,n,A(e)?e:F)),t[2][3].add(s(0,n,A(i)?i:U))})).promise()},promise:function(e){return null!=e?_.extend(e,o):o}},r={};return _.each(t,(function(e,n){var s=n[2],a=n[5];o[n[1]]=s.add,a&&s.add((function(){i=a}),t[3-e][2].disable,t[3-e][3].disable,t[0][2].lock,t[0][3].lock),s.add(n[3].fire),r[n[0]]=function(){return r[n[0]+"With"](this===r?void 0:this,arguments),this},r[n[0]+"With"]=s.fireWith})),o.promise(r),e&&e.call(r,r),r},when:function(e){var t=arguments.length,i=t,n=Array(i),o=a.call(arguments),r=_.Deferred(),s=function(e){return function(i){n[e]=this,o[e]=arguments.length>1?a.call(arguments):i,--t||r.resolveWith(n,o)}};if(t<=1&&(j(e,r.done(s(i)).resolve,r.reject,!t),"pending"===r.state()||A(o[i]&&o[i].then)))return r.then();for(;i--;)j(o[i],s(i),r.reject);return r.promise()}});var W=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;_.Deferred.exceptionHook=function(e,t){n.console&&n.console.warn&&e&&W.test(e.name)&&n.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},_.readyException=function(e){n.setTimeout((function(){throw e}))};var z=_.Deferred();function H(){v.removeEventListener("DOMContentLoaded",H),n.removeEventListener("load",H),_.ready()}_.fn.ready=function(e){return z.then(e).catch((function(e){_.readyException(e)})),this},_.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--_.readyWait:_.isReady)||(_.isReady=!0,!0!==e&&--_.readyWait>0||z.resolveWith(v,[_]))}}),_.ready.then=z.then,"complete"===v.readyState||"loading"!==v.readyState&&!v.documentElement.doScroll?n.setTimeout(_.ready):(v.addEventListener("DOMContentLoaded",H),n.addEventListener("load",H));var q=function(e,t,i,n,o,r,s){var a=0,l=e.length,c=null==i;if("object"===w(i))for(a in o=!0,i)q(e,t,a,i[a],!0,r,s);else if(void 0!==n&&(o=!0,A(n)||(s=!0),c&&(s?(t.call(e,n),t=null):(c=t,t=function(e,t,i){return c.call(_(e),i)})),t))for(;a1,null,!0)},removeData:function(e){return this.each((function(){J.remove(this,e)}))}}),_.extend({queue:function(e,t,i){var n;if(e)return t=(t||"fx")+"queue",n=Z.get(e,t),i&&(!n||Array.isArray(i)?n=Z.access(e,t,_.makeArray(i)):n.push(i)),n||[]},dequeue:function(e,t){t=t||"fx";var i=_.queue(e,t),n=i.length,o=i.shift(),r=_._queueHooks(e,t);"inprogress"===o&&(o=i.shift(),n--),o&&("fx"===t&&i.unshift("inprogress"),delete r.stop,o.call(e,(function(){_.dequeue(e,t)}),r)),!n&&r&&r.empty.fire()},_queueHooks:function(e,t){var i=t+"queueHooks";return Z.get(e,i)||Z.access(e,i,{empty:_.Callbacks("once memory").add((function(){Z.remove(e,[t+"queue",i])}))})}}),_.fn.extend({queue:function(e,t){var i=2;return"string"!=typeof e&&(t=e,e="fx",i--),arguments.length\x20\t\r\n\f]*)/i,be=/^$|^module$|\/(?:java|ecma)script/i;fe=v.createDocumentFragment().appendChild(v.createElement("div")),(ge=v.createElement("input")).setAttribute("type","radio"),ge.setAttribute("checked","checked"),ge.setAttribute("name","t"),fe.appendChild(ge),m.checkClone=fe.cloneNode(!0).cloneNode(!0).lastChild.checked,fe.innerHTML="",m.noCloneChecked=!!fe.cloneNode(!0).lastChild.defaultValue,fe.innerHTML="",m.option=!!fe.lastChild;var ve={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function Ce(e,t){var i;return i=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&B(e,t)?_.merge([e],i):i}function ye(e,t){for(var i=0,n=e.length;i",""]);var we=/<|&#?\w+;/;function xe(e,t,i,n,o){for(var r,s,a,l,c,d,u=t.createDocumentFragment(),h=[],p=0,f=e.length;p-1)o&&o.push(r);else if(c=ae(r),s=Ce(u.appendChild(r),"script"),c&&ye(s),i)for(d=0;r=s[d++];)be.test(r.type||"")&&i.push(r);return u}var _e=/^([^.]*)(?:\.(.+)|)/;function Ee(){return!0}function ke(){return!1}function Se(e,t){return e===function(){try{return v.activeElement}catch(e){}}()==("focus"===t)}function Te(e,t,i,n,o,r){var s,a;if("object"==typeof t){for(a in"string"!=typeof i&&(n=n||i,i=void 0),t)Te(e,a,i,n,t[a],r);return e}if(null==n&&null==o?(o=i,n=i=void 0):null==o&&("string"==typeof i?(o=n,n=void 0):(o=n,n=i,i=void 0)),!1===o)o=ke;else if(!o)return e;return 1===r&&(s=o,o=function(e){return _().off(e),s.apply(this,arguments)},o.guid=s.guid||(s.guid=_.guid++)),e.each((function(){_.event.add(this,t,o,n,i)}))}function Me(e,t,i){i?(Z.set(e,t,!1),_.event.add(e,t,{namespace:!1,handler:function(e){var n,o,r=Z.get(this,t);if(1&e.isTrigger&&this[t]){if(r.length)(_.event.special[t]||{}).delegateType&&e.stopPropagation();else if(r=a.call(arguments),Z.set(this,t,r),n=i(this,t),this[t](),r!==(o=Z.get(this,t))||n?Z.set(this,t,!1):o={},r!==o)return e.stopImmediatePropagation(),e.preventDefault(),o&&o.value}else r.length&&(Z.set(this,t,{value:_.event.trigger(_.extend(r[0],_.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Z.get(e,t)&&_.event.add(e,t,Ee)}_.event={global:{},add:function(e,t,i,n,o){var r,s,a,l,c,d,u,h,p,f,g,m=Z.get(e);if(K(e))for(i.handler&&(i=(r=i).handler,o=r.selector),o&&_.find.matchesSelector(se,o),i.guid||(i.guid=_.guid++),(l=m.events)||(l=m.events=Object.create(null)),(s=m.handle)||(s=m.handle=function(t){return void 0!==_&&_.event.triggered!==t.type?_.event.dispatch.apply(e,arguments):void 0}),c=(t=(t||"").match(N)||[""]).length;c--;)p=g=(a=_e.exec(t[c])||[])[1],f=(a[2]||"").split(".").sort(),p&&(u=_.event.special[p]||{},p=(o?u.delegateType:u.bindType)||p,u=_.event.special[p]||{},d=_.extend({type:p,origType:g,data:n,handler:i,guid:i.guid,selector:o,needsContext:o&&_.expr.match.needsContext.test(o),namespace:f.join(".")},r),(h=l[p])||((h=l[p]=[]).delegateCount=0,u.setup&&!1!==u.setup.call(e,n,f,s)||e.addEventListener&&e.addEventListener(p,s)),u.add&&(u.add.call(e,d),d.handler.guid||(d.handler.guid=i.guid)),o?h.splice(h.delegateCount++,0,d):h.push(d),_.event.global[p]=!0)},remove:function(e,t,i,n,o){var r,s,a,l,c,d,u,h,p,f,g,m=Z.hasData(e)&&Z.get(e);if(m&&(l=m.events)){for(c=(t=(t||"").match(N)||[""]).length;c--;)if(p=g=(a=_e.exec(t[c])||[])[1],f=(a[2]||"").split(".").sort(),p){for(u=_.event.special[p]||{},h=l[p=(n?u.delegateType:u.bindType)||p]||[],a=a[2]&&new RegExp("(^|\\.)"+f.join("\\.(?:.*\\.|)")+"(\\.|$)"),s=r=h.length;r--;)d=h[r],!o&&g!==d.origType||i&&i.guid!==d.guid||a&&!a.test(d.namespace)||n&&n!==d.selector&&("**"!==n||!d.selector)||(h.splice(r,1),d.selector&&h.delegateCount--,u.remove&&u.remove.call(e,d));s&&!h.length&&(u.teardown&&!1!==u.teardown.call(e,f,m.handle)||_.removeEvent(e,p,m.handle),delete l[p])}else for(p in l)_.event.remove(e,p+t[c],i,n,!0);_.isEmptyObject(l)&&Z.remove(e,"handle events")}},dispatch:function(e){var t,i,n,o,r,s,a=new Array(arguments.length),l=_.event.fix(e),c=(Z.get(this,"events")||Object.create(null))[l.type]||[],d=_.event.special[l.type]||{};for(a[0]=l,t=1;t=1))for(;c!==this;c=c.parentNode||this)if(1===c.nodeType&&("click"!==e.type||!0!==c.disabled)){for(r=[],s={},i=0;i-1:_.find(o,this,null,[c]).length),s[o]&&r.push(n);r.length&&a.push({elem:c,handlers:r})}return c=this,l\s*$/g;function Le(e,t){return B(e,"table")&&B(11!==t.nodeType?t:t.firstChild,"tr")&&_(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Oe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function $e(e,t){var i,n,o,r,s,a;if(1===t.nodeType){if(Z.hasData(e)&&(a=Z.get(e).events))for(o in Z.remove(t,"handle events"),a)for(i=0,n=a[o].length;i1&&"string"==typeof f&&!m.checkClone&&Re.test(f))return e.each((function(o){var r=e.eq(o);g&&(t[0]=f.call(this,o,r.html())),Ne(r,t,i,n)}));if(h&&(r=(o=xe(t,e[0].ownerDocument,!1,e,n)).firstChild,1===o.childNodes.length&&(o=r),r||n)){for(a=(s=_.map(Ce(o,"script"),De)).length;u0&&ye(s,!l&&Ce(e,"script")),a},cleanData:function(e){for(var t,i,n,o=_.event.special,r=0;void 0!==(i=e[r]);r++)if(K(i)){if(t=i[Z.expando]){if(t.events)for(n in t.events)o[n]?_.event.remove(i,n):_.removeEvent(i,n,t.handle);i[Z.expando]=void 0}i[J.expando]&&(i[J.expando]=void 0)}}}),_.fn.extend({detach:function(e){return Fe(this,e,!0)},remove:function(e){return Fe(this,e)},text:function(e){return q(this,(function(e){return void 0===e?_.text(this):this.empty().each((function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)}))}),null,e,arguments.length)},append:function(){return Ne(this,arguments,(function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Le(this,e).appendChild(e)}))},prepend:function(){return Ne(this,arguments,(function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Le(this,e);t.insertBefore(e,t.firstChild)}}))},before:function(){return Ne(this,arguments,(function(e){this.parentNode&&this.parentNode.insertBefore(e,this)}))},after:function(){return Ne(this,arguments,(function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)}))},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(_.cleanData(Ce(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map((function(){return _.clone(this,e,t)}))},html:function(e){return q(this,(function(e){var t=this[0]||{},i=0,n=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Be.test(e)&&!ve[(Ae.exec(e)||["",""])[1].toLowerCase()]){e=_.htmlPrefilter(e);try{for(;i=0&&(l+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-r-l-a-.5))||0),l}function it(e,t,i){var n=je(e),o=(!m.boxSizingReliable()||i)&&"border-box"===_.css(e,"boxSizing",!1,n),r=o,s=He(e,t,n),a="offset"+t[0].toUpperCase()+t.slice(1);if(Ue.test(s)){if(!i)return s;s="auto"}return(!m.boxSizingReliable()&&o||!m.reliableTrDimensions()&&B(e,"tr")||"auto"===s||!parseFloat(s)&&"inline"===_.css(e,"display",!1,n))&&e.getClientRects().length&&(o="border-box"===_.css(e,"boxSizing",!1,n),(r=a in e)&&(s=e[a])),(s=parseFloat(s)||0)+tt(e,t,i||(o?"border":"content"),r,n,s)+"px"}function nt(e,t,i,n,o){return new nt.prototype.init(e,t,i,n,o)}_.extend({cssHooks:{opacity:{get:function(e,t){if(t){var i=He(e,"opacity");return""===i?"1":i}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,i,n){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,r,s,a=X(t),l=Qe.test(t),c=e.style;if(l||(t=Xe(a)),s=_.cssHooks[t]||_.cssHooks[a],void 0===i)return s&&"get"in s&&void 0!==(o=s.get(e,!1,n))?o:c[t];"string"==(r=typeof i)&&(o=oe.exec(i))&&o[1]&&(i=de(e,t,o),r="number"),null!=i&&i==i&&("number"!==r||l||(i+=o&&o[3]||(_.cssNumber[a]?"":"px")),m.clearCloneStyle||""!==i||0!==t.indexOf("background")||(c[t]="inherit"),s&&"set"in s&&void 0===(i=s.set(e,i,n))||(l?c.setProperty(t,i):c[t]=i))}},css:function(e,t,i,n){var o,r,s,a=X(t);return Qe.test(t)||(t=Xe(a)),(s=_.cssHooks[t]||_.cssHooks[a])&&"get"in s&&(o=s.get(e,!0,i)),void 0===o&&(o=He(e,t,n)),"normal"===o&&t in Je&&(o=Je[t]),""===i||i?(r=parseFloat(o),!0===i||isFinite(r)?r||0:o):o}}),_.each(["height","width"],(function(e,t){_.cssHooks[t]={get:function(e,i,n){if(i)return!Ke.test(_.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?it(e,t,n):We(e,Ze,(function(){return it(e,t,n)}))},set:function(e,i,n){var o,r=je(e),s=!m.scrollboxSize()&&"absolute"===r.position,a=(s||n)&&"border-box"===_.css(e,"boxSizing",!1,r),l=n?tt(e,t,n,a,r):0;return a&&s&&(l-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(r[t])-tt(e,t,"border",!1,r)-.5)),l&&(o=oe.exec(i))&&"px"!==(o[3]||"px")&&(e.style[t]=i,i=_.css(e,t)),et(0,i,l)}}})),_.cssHooks.marginLeft=qe(m.reliableMarginLeft,(function(e,t){if(t)return(parseFloat(He(e,"marginLeft"))||e.getBoundingClientRect().left-We(e,{marginLeft:0},(function(){return e.getBoundingClientRect().left})))+"px"})),_.each({margin:"",padding:"",border:"Width"},(function(e,t){_.cssHooks[e+t]={expand:function(i){for(var n=0,o={},r="string"==typeof i?i.split(" "):[i];n<4;n++)o[e+re[n]+t]=r[n]||r[n-2]||r[0];return o}},"margin"!==e&&(_.cssHooks[e+t].set=et)})),_.fn.extend({css:function(e,t){return q(this,(function(e,t,i){var n,o,r={},s=0;if(Array.isArray(t)){for(n=je(e),o=t.length;s1)}}),_.Tween=nt,nt.prototype={constructor:nt,init:function(e,t,i,n,o,r){this.elem=e,this.prop=i,this.easing=o||_.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=n,this.unit=r||(_.cssNumber[i]?"":"px")},cur:function(){var e=nt.propHooks[this.prop];return e&&e.get?e.get(this):nt.propHooks._default.get(this)},run:function(e){var t,i=nt.propHooks[this.prop];return this.options.duration?this.pos=t=_.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),i&&i.set?i.set(this):nt.propHooks._default.set(this),this}},nt.prototype.init.prototype=nt.prototype,nt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=_.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){_.fx.step[e.prop]?_.fx.step[e.prop](e):1!==e.elem.nodeType||!_.cssHooks[e.prop]&&null==e.elem.style[Xe(e.prop)]?e.elem[e.prop]=e.now:_.style(e.elem,e.prop,e.now+e.unit)}}},nt.propHooks.scrollTop=nt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},_.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},_.fx=nt.prototype.init,_.fx.step={};var ot,rt,st=/^(?:toggle|show|hide)$/,at=/queueHooks$/;function lt(){rt&&(!1===v.hidden&&n.requestAnimationFrame?n.requestAnimationFrame(lt):n.setTimeout(lt,_.fx.interval),_.fx.tick())}function ct(){return n.setTimeout((function(){ot=void 0})),ot=Date.now()}function dt(e,t){var i,n=0,o={height:e};for(t=t?1:0;n<4;n+=2-t)o["margin"+(i=re[n])]=o["padding"+i]=e;return t&&(o.opacity=o.width=e),o}function ut(e,t,i){for(var n,o=(ht.tweeners[t]||[]).concat(ht.tweeners["*"]),r=0,s=o.length;r1)},removeAttr:function(e){return this.each((function(){_.removeAttr(this,e)}))}}),_.extend({attr:function(e,t,i){var n,o,r=e.nodeType;if(3!==r&&8!==r&&2!==r)return void 0===e.getAttribute?_.prop(e,t,i):(1===r&&_.isXMLDoc(e)||(o=_.attrHooks[t.toLowerCase()]||(_.expr.match.bool.test(t)?pt:void 0)),void 0!==i?null===i?void _.removeAttr(e,t):o&&"set"in o&&void 0!==(n=o.set(e,i,t))?n:(e.setAttribute(t,i+""),i):o&&"get"in o&&null!==(n=o.get(e,t))?n:null==(n=_.find.attr(e,t))?void 0:n)},attrHooks:{type:{set:function(e,t){if(!m.radioValue&&"radio"===t&&B(e,"input")){var i=e.value;return e.setAttribute("type",t),i&&(e.value=i),t}}}},removeAttr:function(e,t){var i,n=0,o=t&&t.match(N);if(o&&1===e.nodeType)for(;i=o[n++];)e.removeAttribute(i)}}),pt={set:function(e,t,i){return!1===t?_.removeAttr(e,i):e.setAttribute(i,i),i}},_.each(_.expr.match.bool.source.match(/\w+/g),(function(e,t){var i=ft[t]||_.find.attr;ft[t]=function(e,t,n){var o,r,s=t.toLowerCase();return n||(r=ft[s],ft[s]=o,o=null!=i(e,t,n)?s:null,ft[s]=r),o}}));var gt=/^(?:input|select|textarea|button)$/i,mt=/^(?:a|area)$/i;function At(e){return(e.match(N)||[]).join(" ")}function bt(e){return e.getAttribute&&e.getAttribute("class")||""}function vt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(N)||[]}_.fn.extend({prop:function(e,t){return q(this,_.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each((function(){delete this[_.propFix[e]||e]}))}}),_.extend({prop:function(e,t,i){var n,o,r=e.nodeType;if(3!==r&&8!==r&&2!==r)return 1===r&&_.isXMLDoc(e)||(t=_.propFix[t]||t,o=_.propHooks[t]),void 0!==i?o&&"set"in o&&void 0!==(n=o.set(e,i,t))?n:e[t]=i:o&&"get"in o&&null!==(n=o.get(e,t))?n:e[t]},propHooks:{tabIndex:{get:function(e){var t=_.find.attr(e,"tabindex");return t?parseInt(t,10):gt.test(e.nodeName)||mt.test(e.nodeName)&&e.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),m.optSelected||(_.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),_.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],(function(){_.propFix[this.toLowerCase()]=this})),_.fn.extend({addClass:function(e){var t,i,n,o,r,s,a,l=0;if(A(e))return this.each((function(t){_(this).addClass(e.call(this,t,bt(this)))}));if((t=vt(e)).length)for(;i=this[l++];)if(o=bt(i),n=1===i.nodeType&&" "+At(o)+" "){for(s=0;r=t[s++];)n.indexOf(" "+r+" ")<0&&(n+=r+" ");o!==(a=At(n))&&i.setAttribute("class",a)}return this},removeClass:function(e){var t,i,n,o,r,s,a,l=0;if(A(e))return this.each((function(t){_(this).removeClass(e.call(this,t,bt(this)))}));if(!arguments.length)return this.attr("class","");if((t=vt(e)).length)for(;i=this[l++];)if(o=bt(i),n=1===i.nodeType&&" "+At(o)+" "){for(s=0;r=t[s++];)for(;n.indexOf(" "+r+" ")>-1;)n=n.replace(" "+r+" "," ");o!==(a=At(n))&&i.setAttribute("class",a)}return this},toggleClass:function(e,t){var i=typeof e,n="string"===i||Array.isArray(e);return"boolean"==typeof t&&n?t?this.addClass(e):this.removeClass(e):A(e)?this.each((function(i){_(this).toggleClass(e.call(this,i,bt(this),t),t)})):this.each((function(){var t,o,r,s;if(n)for(o=0,r=_(this),s=vt(e);t=s[o++];)r.hasClass(t)?r.removeClass(t):r.addClass(t);else void 0!==e&&"boolean"!==i||((t=bt(this))&&Z.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":Z.get(this,"__className__")||""))}))},hasClass:function(e){var t,i,n=0;for(t=" "+e+" ";i=this[n++];)if(1===i.nodeType&&(" "+At(bt(i))+" ").indexOf(t)>-1)return!0;return!1}});var Ct=/\r/g;_.fn.extend({val:function(e){var t,i,n,o=this[0];return arguments.length?(n=A(e),this.each((function(i){var o;1===this.nodeType&&(null==(o=n?e.call(this,i,_(this).val()):e)?o="":"number"==typeof o?o+="":Array.isArray(o)&&(o=_.map(o,(function(e){return null==e?"":e+""}))),(t=_.valHooks[this.type]||_.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,o,"value")||(this.value=o))}))):o?(t=_.valHooks[o.type]||_.valHooks[o.nodeName.toLowerCase()])&&"get"in t&&void 0!==(i=t.get(o,"value"))?i:"string"==typeof(i=o.value)?i.replace(Ct,""):null==i?"":i:void 0}}),_.extend({valHooks:{option:{get:function(e){var t=_.find.attr(e,"value");return null!=t?t:At(_.text(e))}},select:{get:function(e){var t,i,n,o=e.options,r=e.selectedIndex,s="select-one"===e.type,a=s?null:[],l=s?r+1:o.length;for(n=r<0?l:s?r:0;n-1)&&(i=!0);return i||(e.selectedIndex=-1),r}}}}),_.each(["radio","checkbox"],(function(){_.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=_.inArray(_(e).val(),t)>-1}},m.checkOn||(_.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})})),m.focusin="onfocusin"in n;var yt=/^(?:focusinfocus|focusoutblur)$/,wt=function(e){e.stopPropagation()};_.extend(_.event,{trigger:function(e,t,i,o){var r,s,a,l,c,d,u,h,f=[i||v],g=p.call(e,"type")?e.type:e,m=p.call(e,"namespace")?e.namespace.split("."):[];if(s=h=a=i=i||v,3!==i.nodeType&&8!==i.nodeType&&!yt.test(g+_.event.triggered)&&(g.indexOf(".")>-1&&(m=g.split("."),g=m.shift(),m.sort()),c=g.indexOf(":")<0&&"on"+g,(e=e[_.expando]?e:new _.Event(g,"object"==typeof e&&e)).isTrigger=o?2:3,e.namespace=m.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=i),t=null==t?[e]:_.makeArray(t,[e]),u=_.event.special[g]||{},o||!u.trigger||!1!==u.trigger.apply(i,t))){if(!o&&!u.noBubble&&!b(i)){for(l=u.delegateType||g,yt.test(l+g)||(s=s.parentNode);s;s=s.parentNode)f.push(s),a=s;a===(i.ownerDocument||v)&&f.push(a.defaultView||a.parentWindow||n)}for(r=0;(s=f[r++])&&!e.isPropagationStopped();)h=s,e.type=r>1?l:u.bindType||g,(d=(Z.get(s,"events")||Object.create(null))[e.type]&&Z.get(s,"handle"))&&d.apply(s,t),(d=c&&s[c])&&d.apply&&K(s)&&(e.result=d.apply(s,t),!1===e.result&&e.preventDefault());return e.type=g,o||e.isDefaultPrevented()||u._default&&!1!==u._default.apply(f.pop(),t)||!K(i)||c&&A(i[g])&&!b(i)&&((a=i[c])&&(i[c]=null),_.event.triggered=g,e.isPropagationStopped()&&h.addEventListener(g,wt),i[g](),e.isPropagationStopped()&&h.removeEventListener(g,wt),_.event.triggered=void 0,a&&(i[c]=a)),e.result}},simulate:function(e,t,i){var n=_.extend(new _.Event,i,{type:e,isSimulated:!0});_.event.trigger(n,null,t)}}),_.fn.extend({trigger:function(e,t){return this.each((function(){_.event.trigger(e,t,this)}))},triggerHandler:function(e,t){var i=this[0];if(i)return _.event.trigger(e,t,i,!0)}}),m.focusin||_.each({focus:"focusin",blur:"focusout"},(function(e,t){var i=function(e){_.event.simulate(t,e.target,_.event.fix(e))};_.event.special[t]={setup:function(){var n=this.ownerDocument||this.document||this,o=Z.access(n,t);o||n.addEventListener(e,i,!0),Z.access(n,t,(o||0)+1)},teardown:function(){var n=this.ownerDocument||this.document||this,o=Z.access(n,t)-1;o?Z.access(n,t,o):(n.removeEventListener(e,i,!0),Z.remove(n,t))}}}));var xt=n.location,_t={guid:Date.now()},Et=/\?/;_.parseXML=function(e){var t,i;if(!e||"string"!=typeof e)return null;try{t=(new n.DOMParser).parseFromString(e,"text/xml")}catch(e){}return i=t&&t.getElementsByTagName("parsererror")[0],t&&!i||_.error("Invalid XML: "+(i?_.map(i.childNodes,(function(e){return e.textContent})).join("\n"):e)),t};var kt=/\[\]$/,St=/\r?\n/g,Tt=/^(?:submit|button|image|reset|file)$/i,Mt=/^(?:input|select|textarea|keygen)/i;function Bt(e,t,i,n){var o;if(Array.isArray(t))_.each(t,(function(t,o){i||kt.test(e)?n(e,o):Bt(e+"["+("object"==typeof o&&null!=o?t:"")+"]",o,i,n)}));else if(i||"object"!==w(t))n(e,t);else for(o in t)Bt(e+"["+o+"]",t[o],i,n)}_.param=function(e,t){var i,n=[],o=function(e,t){var i=A(t)?t():t;n[n.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==i?"":i)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!_.isPlainObject(e))_.each(e,(function(){o(this.name,this.value)}));else for(i in e)Bt(i,e[i],t,o);return n.join("&")},_.fn.extend({serialize:function(){return _.param(this.serializeArray())},serializeArray:function(){return this.map((function(){var e=_.prop(this,"elements");return e?_.makeArray(e):this})).filter((function(){var e=this.type;return this.name&&!_(this).is(":disabled")&&Mt.test(this.nodeName)&&!Tt.test(e)&&(this.checked||!me.test(e))})).map((function(e,t){var i=_(this).val();return null==i?null:Array.isArray(i)?_.map(i,(function(e){return{name:t.name,value:e.replace(St,"\r\n")}})):{name:t.name,value:i.replace(St,"\r\n")}})).get()}});var Rt=/%20/g,It=/#.*$/,Lt=/([?&])_=[^&]*/,Dt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Ot=/^(?:GET|HEAD)$/,$t=/^\/\//,Pt={},Nt={},Ft="*/".concat("*"),Ut=v.createElement("a");function jt(e){return function(t,i){"string"!=typeof t&&(i=t,t="*");var n,o=0,r=t.toLowerCase().match(N)||[];if(A(i))for(;n=r[o++];)"+"===n[0]?(n=n.slice(1)||"*",(e[n]=e[n]||[]).unshift(i)):(e[n]=e[n]||[]).push(i)}}function Wt(e,t,i,n){var o={},r=e===Nt;function s(a){var l;return o[a]=!0,_.each(e[a]||[],(function(e,a){var c=a(t,i,n);return"string"!=typeof c||r||o[c]?r?!(l=c):void 0:(t.dataTypes.unshift(c),s(c),!1)})),l}return s(t.dataTypes[0])||!o["*"]&&s("*")}function zt(e,t){var i,n,o=_.ajaxSettings.flatOptions||{};for(i in t)void 0!==t[i]&&((o[i]?e:n||(n={}))[i]=t[i]);return n&&_.extend(!0,e,n),e}Ut.href=xt.href,_.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:xt.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(xt.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Ft,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":_.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,_.ajaxSettings),t):zt(_.ajaxSettings,e)},ajaxPrefilter:jt(Pt),ajaxTransport:jt(Nt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var i,o,r,s,a,l,c,d,u,h,p=_.ajaxSetup({},t),f=p.context||p,g=p.context&&(f.nodeType||f.jquery)?_(f):_.event,m=_.Deferred(),A=_.Callbacks("once memory"),b=p.statusCode||{},C={},y={},w="canceled",x={readyState:0,getResponseHeader:function(e){var t;if(c){if(!s)for(s={};t=Dt.exec(r);)s[t[1].toLowerCase()+" "]=(s[t[1].toLowerCase()+" "]||[]).concat(t[2]);t=s[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return c?r:null},setRequestHeader:function(e,t){return null==c&&(e=y[e.toLowerCase()]=y[e.toLowerCase()]||e,C[e]=t),this},overrideMimeType:function(e){return null==c&&(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(c)x.always(e[x.status]);else for(t in e)b[t]=[b[t],e[t]];return this},abort:function(e){var t=e||w;return i&&i.abort(t),E(0,t),this}};if(m.promise(x),p.url=((e||p.url||xt.href)+"").replace($t,xt.protocol+"//"),p.type=t.method||t.type||p.method||p.type,p.dataTypes=(p.dataType||"*").toLowerCase().match(N)||[""],null==p.crossDomain){l=v.createElement("a");try{l.href=p.url,l.href=l.href,p.crossDomain=Ut.protocol+"//"+Ut.host!=l.protocol+"//"+l.host}catch(e){p.crossDomain=!0}}if(p.data&&p.processData&&"string"!=typeof p.data&&(p.data=_.param(p.data,p.traditional)),Wt(Pt,p,t,x),c)return x;for(u in(d=_.event&&p.global)&&0==_.active++&&_.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Ot.test(p.type),o=p.url.replace(It,""),p.hasContent?p.data&&p.processData&&0===(p.contentType||"").indexOf("application/x-www-form-urlencoded")&&(p.data=p.data.replace(Rt,"+")):(h=p.url.slice(o.length),p.data&&(p.processData||"string"==typeof p.data)&&(o+=(Et.test(o)?"&":"?")+p.data,delete p.data),!1===p.cache&&(o=o.replace(Lt,"$1"),h=(Et.test(o)?"&":"?")+"_="+_t.guid+++h),p.url=o+h),p.ifModified&&(_.lastModified[o]&&x.setRequestHeader("If-Modified-Since",_.lastModified[o]),_.etag[o]&&x.setRequestHeader("If-None-Match",_.etag[o])),(p.data&&p.hasContent&&!1!==p.contentType||t.contentType)&&x.setRequestHeader("Content-Type",p.contentType),x.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Ft+"; q=0.01":""):p.accepts["*"]),p.headers)x.setRequestHeader(u,p.headers[u]);if(p.beforeSend&&(!1===p.beforeSend.call(f,x,p)||c))return x.abort();if(w="abort",A.add(p.complete),x.done(p.success),x.fail(p.error),i=Wt(Nt,p,t,x)){if(x.readyState=1,d&&g.trigger("ajaxSend",[x,p]),c)return x;p.async&&p.timeout>0&&(a=n.setTimeout((function(){x.abort("timeout")}),p.timeout));try{c=!1,i.send(C,E)}catch(e){if(c)throw e;E(-1,e)}}else E(-1,"No Transport");function E(e,t,s,l){var u,h,v,C,y,w=t;c||(c=!0,a&&n.clearTimeout(a),i=void 0,r=l||"",x.readyState=e>0?4:0,u=e>=200&&e<300||304===e,s&&(C=function(e,t,i){for(var n,o,r,s,a=e.contents,l=e.dataTypes;"*"===l[0];)l.shift(),void 0===n&&(n=e.mimeType||t.getResponseHeader("Content-Type"));if(n)for(o in a)if(a[o]&&a[o].test(n)){l.unshift(o);break}if(l[0]in i)r=l[0];else{for(o in i){if(!l[0]||e.converters[o+" "+l[0]]){r=o;break}s||(s=o)}r=r||s}if(r)return r!==l[0]&&l.unshift(r),i[r]}(p,x,s)),!u&&_.inArray("script",p.dataTypes)>-1&&_.inArray("json",p.dataTypes)<0&&(p.converters["text script"]=function(){}),C=function(e,t,i,n){var o,r,s,a,l,c={},d=e.dataTypes.slice();if(d[1])for(s in e.converters)c[s.toLowerCase()]=e.converters[s];for(r=d.shift();r;)if(e.responseFields[r]&&(i[e.responseFields[r]]=t),!l&&n&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=r,r=d.shift())if("*"===r)r=l;else if("*"!==l&&l!==r){if(!(s=c[l+" "+r]||c["* "+r]))for(o in c)if((a=o.split(" "))[1]===r&&(s=c[l+" "+a[0]]||c["* "+a[0]])){!0===s?s=c[o]:!0!==c[o]&&(r=a[0],d.unshift(a[1]));break}if(!0!==s)if(s&&e.throws)t=s(t);else try{t=s(t)}catch(e){return{state:"parsererror",error:s?e:"No conversion from "+l+" to "+r}}}return{state:"success",data:t}}(p,C,x,u),u?(p.ifModified&&((y=x.getResponseHeader("Last-Modified"))&&(_.lastModified[o]=y),(y=x.getResponseHeader("etag"))&&(_.etag[o]=y)),204===e||"HEAD"===p.type?w="nocontent":304===e?w="notmodified":(w=C.state,h=C.data,u=!(v=C.error))):(v=w,!e&&w||(w="error",e<0&&(e=0))),x.status=e,x.statusText=(t||w)+"",u?m.resolveWith(f,[h,w,x]):m.rejectWith(f,[x,w,v]),x.statusCode(b),b=void 0,d&&g.trigger(u?"ajaxSuccess":"ajaxError",[x,p,u?h:v]),A.fireWith(f,[x,w]),d&&(g.trigger("ajaxComplete",[x,p]),--_.active||_.event.trigger("ajaxStop")))}return x},getJSON:function(e,t,i){return _.get(e,t,i,"json")},getScript:function(e,t){return _.get(e,void 0,t,"script")}}),_.each(["get","post"],(function(e,t){_[t]=function(e,i,n,o){return A(i)&&(o=o||n,n=i,i=void 0),_.ajax(_.extend({url:e,type:t,dataType:o,data:i,success:n},_.isPlainObject(e)&&e))}})),_.ajaxPrefilter((function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")})),_._evalUrl=function(e,t,i){return _.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){_.globalEval(e,t,i)}})},_.fn.extend({wrapAll:function(e){var t;return this[0]&&(A(e)&&(e=e.call(this[0])),t=_(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map((function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e})).append(this)),this},wrapInner:function(e){return A(e)?this.each((function(t){_(this).wrapInner(e.call(this,t))})):this.each((function(){var t=_(this),i=t.contents();i.length?i.wrapAll(e):t.append(e)}))},wrap:function(e){var t=A(e);return this.each((function(i){_(this).wrapAll(t?e.call(this,i):e)}))},unwrap:function(e){return this.parent(e).not("body").each((function(){_(this).replaceWith(this.childNodes)})),this}}),_.expr.pseudos.hidden=function(e){return!_.expr.pseudos.visible(e)},_.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},_.ajaxSettings.xhr=function(){try{return new n.XMLHttpRequest}catch(e){}};var Ht={0:200,1223:204},qt=_.ajaxSettings.xhr();m.cors=!!qt&&"withCredentials"in qt,m.ajax=qt=!!qt,_.ajaxTransport((function(e){var t,i;if(m.cors||qt&&!e.crossDomain)return{send:function(o,r){var s,a=e.xhr();if(a.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(s in e.xhrFields)a[s]=e.xhrFields[s];for(s in e.mimeType&&a.overrideMimeType&&a.overrideMimeType(e.mimeType),e.crossDomain||o["X-Requested-With"]||(o["X-Requested-With"]="XMLHttpRequest"),o)a.setRequestHeader(s,o[s]);t=function(e){return function(){t&&(t=i=a.onload=a.onerror=a.onabort=a.ontimeout=a.onreadystatechange=null,"abort"===e?a.abort():"error"===e?"number"!=typeof a.status?r(0,"error"):r(a.status,a.statusText):r(Ht[a.status]||a.status,a.statusText,"text"!==(a.responseType||"text")||"string"!=typeof a.responseText?{binary:a.response}:{text:a.responseText},a.getAllResponseHeaders()))}},a.onload=t(),i=a.onerror=a.ontimeout=t("error"),void 0!==a.onabort?a.onabort=i:a.onreadystatechange=function(){4===a.readyState&&n.setTimeout((function(){t&&i()}))},t=t("abort");try{a.send(e.hasContent&&e.data||null)}catch(e){if(t)throw e}},abort:function(){t&&t()}}})),_.ajaxPrefilter((function(e){e.crossDomain&&(e.contents.script=!1)})),_.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return _.globalEval(e),e}}}),_.ajaxPrefilter("script",(function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")})),_.ajaxTransport("script",(function(e){var t,i;if(e.crossDomain||e.scriptAttrs)return{send:function(n,o){t=_(" diff --git a/src/Eccube/Resource/template/admin/error.twig b/src/Eccube/Resource/template/admin/error.twig index d65237b9461..40e73106ee3 100644 --- a/src/Eccube/Resource/template/admin/error.twig +++ b/src/Eccube/Resource/template/admin/error.twig @@ -16,8 +16,8 @@ file that was distributed with this source code. {{ error_title }} - - + + diff --git a/src/Eccube/Resource/template/admin/nav.twig b/src/Eccube/Resource/template/admin/nav.twig index e4a9c3b57bc..003d5bc45df 100644 --- a/src/Eccube/Resource/template/admin/nav.twig +++ b/src/Eccube/Resource/template/admin/nav.twig @@ -85,6 +85,11 @@ file that was distributed with this source code. {{ 'admin.info.document'|trans }} +
  • + + {{ 'admin.info.manual'|trans }} + +
  • diff --git a/src/Eccube/Resource/template/admin/pager.twig b/src/Eccube/Resource/template/admin/pager.twig index 4a9f2bae528..0aaf8a0a645 100644 --- a/src/Eccube/Resource/template/admin/pager.twig +++ b/src/Eccube/Resource/template/admin/pager.twig @@ -15,9 +15,10 @@ file that was distributed with this source code. {% if pages.firstPageInRange != 1 %}
  • {# FIXME: Need check pass routes before use default _route from request #} - {{ 'admin.common.first'|trans }}
  • + {% set request = app.request.query.all|merge({'page_no': pages.first}) %} + {% set request = id is defined ? request|merge({'id': id}) : request %} + {{ 'admin.common.first'|trans }} {% endif %} @@ -25,8 +26,10 @@ file that was distributed with this source code. {% if pages.previous is defined %}
  • {# FIXME: Need check pass routes before use default _route from request #} + {% set request = app.request.query.all|merge({'page_no': pages.previous}) %} + {% set request = id is defined ? request|merge({'id': id}) : request %} {{ 'admin.common.prev'|trans }} + href="{{ path(routes ? routes : app.request.attributes.get('_route'), request) }}">{{ 'admin.common.prev'|trans }}
  • {% endif %} @@ -38,8 +41,10 @@ file that was distributed with this source code. {% for page in pages.pagesInRange %}
  • {# FIXME: Need check pass routes before use default _route from request #} + {% set request = app.request.query.all|merge({'page_no': page}) %} + {% set request = id is defined ? request|merge({'id': id}) : request %} + href="{{ path(routes ? routes : app.request.attributes.get('_route'), request) }}"> {{ page }}
  • @@ -54,8 +59,10 @@ file that was distributed with this source code. {% if pages.next is defined %}
  • {# FIXME: Need check pass routes before use default _route from request #} + {% set request = app.request.query.all|merge({'page_no': pages.next}) %} + {% set request = id is defined ? request|merge({'id': id}) : request %} {{ 'admin.common.next'|trans }} + href="{{ path(routes ? routes : app.request.attributes.get('_route'), request) }}">{{ 'admin.common.next'|trans }}
  • {% endif %} @@ -63,9 +70,10 @@ file that was distributed with this source code. {% if pages.last != pages.lastPageInRange %}
  • {# FIXME: Need check pass routes before use default _route from request #} - {{ 'admin.common.last'|trans }}
  • + {% set request = app.request.query.all|merge({'page_no': pages.last}) %} + {% set request = id is defined ? request|merge({'id': id}) : request %} + {{ 'admin.common.last'|trans }} {% endif %} diff --git a/src/Eccube/Resource/template/admin/search_items.twig b/src/Eccube/Resource/template/admin/search_items.twig index 3217e364de8..536ff67533e 100644 --- a/src/Eccube/Resource/template/admin/search_items.twig +++ b/src/Eccube/Resource/template/admin/search_items.twig @@ -38,7 +38,11 @@ file that was distributed with this source code. {%- endif %} {%- endfor -%} {%- else -%} - {{ child.vars.data }} + {%- if child.vars.data is integer -%} + {{ child.vars.data|number_format }} + {%- else -%} + {{ child.vars.data }} + {%- endif -%} {%- endif-%} {%- endif -%} diff --git a/src/Eccube/Resource/template/default/Block/news.twig b/src/Eccube/Resource/template/default/Block/news.twig index 3cc73aed451..6d3b370838b 100644 --- a/src/Eccube/Resource/template/default/Block/news.twig +++ b/src/Eccube/Resource/template/default/Block/news.twig @@ -74,7 +74,7 @@ file that was distributed with this source code.
    - {{ News.description|raw|purify|nl2br }} + {{ News.description|raw|nl2br }} {% if News.url %}
    {{ 'front.block.news.see_details'|trans }} diff --git a/src/Eccube/Resource/template/default/Contact/confirm.twig b/src/Eccube/Resource/template/default/Contact/confirm.twig index 430717ca0cd..4fe68fafc3f 100644 --- a/src/Eccube/Resource/template/default/Contact/confirm.twig +++ b/src/Eccube/Resource/template/default/Contact/confirm.twig @@ -94,7 +94,8 @@ file that was distributed with this source code. {% else %}
    - {{ form_label(f) }} + {% set label_class = f.vars.label_attr.class is defined ? f.vars.label_attr.class : '' %} + {{ form_label(f, f.vars.label, { 'label_attr': {'class': label_class ~ ' ec-label' }}) }}
    diff --git a/src/Eccube/Resource/template/default/Contact/index.twig b/src/Eccube/Resource/template/default/Contact/index.twig index e0ac29ce2a0..79d0a8e18f0 100644 --- a/src/Eccube/Resource/template/default/Contact/index.twig +++ b/src/Eccube/Resource/template/default/Contact/index.twig @@ -128,7 +128,8 @@ file that was distributed with this source code. {% else %}
    - {{ form_label(f) }} + {% set label_class = f.vars.label_attr.class is defined ? f.vars.label_attr.class : '' %} + {{ form_label(f, f.vars.label, { 'label_attr': {'class': label_class ~ ' ec-label' }}) }}
    diff --git a/src/Eccube/Resource/template/default/Entry/confirm.twig b/src/Eccube/Resource/template/default/Entry/confirm.twig index 0d5ec2507e2..b957bb2ffc1 100644 --- a/src/Eccube/Resource/template/default/Entry/confirm.twig +++ b/src/Eccube/Resource/template/default/Entry/confirm.twig @@ -138,7 +138,8 @@ file that was distributed with this source code. {% else %}
    - {{ form_label(f) }} + {% set label_class = f.vars.label_attr.class is defined ? f.vars.label_attr.class : '' %} + {{ form_label(f, f.vars.label, { 'label_attr': {'class': label_class ~ ' ec-label' }}) }}
    diff --git a/src/Eccube/Resource/template/default/Entry/index.twig b/src/Eccube/Resource/template/default/Entry/index.twig index cf8fc87f7e4..c1836e4ff82 100644 --- a/src/Eccube/Resource/template/default/Entry/index.twig +++ b/src/Eccube/Resource/template/default/Entry/index.twig @@ -187,7 +187,8 @@ file that was distributed with this source code. {% else %}
    - {{ form_label(f) }} + {% set label_class = f.vars.label_attr.class is defined ? f.vars.label_attr.class : '' %} + {{ form_label(f, f.vars.label, { 'label_attr': {'class': label_class ~ ' ec-label' }}) }}
    diff --git a/src/Eccube/Resource/template/default/Help/tradelaw.twig b/src/Eccube/Resource/template/default/Help/tradelaw.twig index eb3a1218c4f..3f880cfda00 100644 --- a/src/Eccube/Resource/template/default/Help/tradelaw.twig +++ b/src/Eccube/Resource/template/default/Help/tradelaw.twig @@ -23,7 +23,7 @@ file that was distributed with this source code.
    -
    {{ tradelaw.description|raw|purify }}
    +
    {{ tradelaw.description|raw }}
    {% endfor %}
    diff --git a/src/Eccube/Resource/template/default/Mail/entry_complete.html.twig b/src/Eccube/Resource/template/default/Mail/entry_complete.html.twig index d1864f220ab..abec7af1c98 100644 --- a/src/Eccube/Resource/template/default/Mail/entry_complete.html.twig +++ b/src/Eccube/Resource/template/default/Mail/entry_complete.html.twig @@ -32,7 +32,7 @@ file that was distributed with this source code.
    {{ BaseInfo.shop_name }}でございます。
    この度は会員登録依頼をいただきましてまことに有り難うございます。
    - ショッピングをお楽しみくださいませ。
    + メールアドレスとパスワードでログイン後、ショッピングをお楽しみくださいませ。

    今後ともどうぞ{{ BaseInfo.shop_name }}をよろしくお願い申し上げます。

    diff --git a/src/Eccube/Resource/template/default/Mail/entry_complete.twig b/src/Eccube/Resource/template/default/Mail/entry_complete.twig index fb53e87da33..1a0dad95127 100644 --- a/src/Eccube/Resource/template/default/Mail/entry_complete.twig +++ b/src/Eccube/Resource/template/default/Mail/entry_complete.twig @@ -27,7 +27,7 @@ file that was distributed with this source code. この度は会員登録依頼をいただきましてまことに有り難うございます。 本会員登録が完了いたしました。 -ショッピングをお楽しみくださいませ。 +メールアドレスとパスワードでログイン後、ショッピングをお楽しみくださいませ。 今後ともどうぞ{{ BaseInfo.shop_name }}をよろしくお願い申し上げます。 {% endautoescape %} diff --git a/src/Eccube/Resource/template/default/Mypage/change.twig b/src/Eccube/Resource/template/default/Mypage/change.twig index cb85b95df5d..94cff0acd98 100755 --- a/src/Eccube/Resource/template/default/Mypage/change.twig +++ b/src/Eccube/Resource/template/default/Mypage/change.twig @@ -194,7 +194,8 @@ file that was distributed with this source code. {% else %}
    - {{ form_label(f) }} + {% set label_class = f.vars.label_attr.class is defined ? f.vars.label_attr.class : '' %} + {{ form_label(f, f.vars.label, { 'label_attr': {'class': label_class ~ ' ec-label' }}) }}
    diff --git a/src/Eccube/Resource/template/default/Mypage/delivery_edit.twig b/src/Eccube/Resource/template/default/Mypage/delivery_edit.twig index 715a82c11b9..dd8c6fab2eb 100755 --- a/src/Eccube/Resource/template/default/Mypage/delivery_edit.twig +++ b/src/Eccube/Resource/template/default/Mypage/delivery_edit.twig @@ -124,7 +124,8 @@ file that was distributed with this source code. {% else %}
    - {{ form_label(f) }} + {% set label_class = f.vars.label_attr.class is defined ? f.vars.label_attr.class : '' %} + {{ form_label(f, f.vars.label, { 'label_attr': {'class': label_class ~ ' ec-label' }}) }}
    diff --git a/src/Eccube/Resource/template/default/Product/detail.twig b/src/Eccube/Resource/template/default/Product/detail.twig index f4e1ade4aee..876ebc2233c 100755 --- a/src/Eccube/Resource/template/default/Product/detail.twig +++ b/src/Eccube/Resource/template/default/Product/detail.twig @@ -218,7 +218,7 @@ file that was distributed with this source code. }).done(function(data) { // レスポンス内のメッセージをalertで表示 $.each(data.messages, function() { - $('#ec-modal-header').html(this); + $('#ec-modal-header').text(this); }); $('.ec-modal').show() @@ -269,7 +269,7 @@ file that was distributed with this source code. "@type": "Offer", "url": "{{ url('product_detail', {'id': Product.id}) }}", "priceCurrency": "{{ eccube_config.currency }}", - "price": {{ Product.getPrice02IncTaxMin }}, + "price": {{ Product.getPrice02IncTaxMin ? Product.getPrice02IncTaxMin : 0}}, "availability": "{{ Product.stock_find ? "InStock" : "OutOfStock" }}" } } @@ -432,14 +432,14 @@ file that was distributed with this source code.
    {% endif %} -
    {{ Product.description_detail|raw|nl2br|purify }} +
    {{ Product.description_detail|raw|nl2br }}
    {% if Product.freearea %}
    - {{ include(template_from_string(Product.freearea|purify)) }} + {{ include(template_from_string(Product.freearea)) }}
    {% endif %}
    diff --git a/src/Eccube/Resource/template/default/Product/list.twig b/src/Eccube/Resource/template/default/Product/list.twig index 77a7bf9051f..33227f1c3ba 100644 --- a/src/Eccube/Resource/template/default/Product/list.twig +++ b/src/Eccube/Resource/template/default/Product/list.twig @@ -65,7 +65,7 @@ file that was distributed with this source code. }).done(function(data) { // レスポンス内のメッセージをalertで表示 $.each(data.messages, function() { - $('#ec-modal-header').html(this); + $('#ec-modal-header').text(this); }); $('.ec-modal').show() @@ -158,7 +158,7 @@ file that was distributed with this source code.

    {{ Product.name }}

    {% if Product.description_list %} -

    {{ Product.description_list|raw|nl2br|purify }}

    +

    {{ Product.description_list|raw|nl2br }}

    {% endif %}

    {% if Product.hasProductClass %} diff --git a/src/Eccube/Resource/template/default/Shopping/confirm.twig b/src/Eccube/Resource/template/default/Shopping/confirm.twig index 7dc78587e5e..8f608521bfe 100644 --- a/src/Eccube/Resource/template/default/Shopping/confirm.twig +++ b/src/Eccube/Resource/template/default/Shopping/confirm.twig @@ -170,7 +170,7 @@ file that was distributed with this source code.

    {{ activeTradeLaw.name }}

    - {{ activeTradeLaw.description|raw|purify }} + {{ activeTradeLaw.description|raw }}
    {% endfor %} diff --git a/src/Eccube/Resource/template/default/Shopping/index.twig b/src/Eccube/Resource/template/default/Shopping/index.twig index cf9926c8370..a8019024430 100644 --- a/src/Eccube/Resource/template/default/Shopping/index.twig +++ b/src/Eccube/Resource/template/default/Shopping/index.twig @@ -388,7 +388,7 @@ file that was distributed with this source code.

    {{ activeTradeLaw.name }}

    - {{ activeTradeLaw.description|raw|purify }} + {{ activeTradeLaw.description|raw }}
    {% endfor %} diff --git a/src/Eccube/Resource/template/default/Shopping/login.twig b/src/Eccube/Resource/template/default/Shopping/login.twig index 4e80e6114f8..8717c37a66a 100644 --- a/src/Eccube/Resource/template/default/Shopping/login.twig +++ b/src/Eccube/Resource/template/default/Shopping/login.twig @@ -25,8 +25,8 @@ file that was distributed with this source code.
    - - + + diff --git a/src/Eccube/Resource/template/install/complete.twig b/src/Eccube/Resource/template/install/complete.twig index f9a871ae39e..19ee7ccdb35 100644 --- a/src/Eccube/Resource/template/install/complete.twig +++ b/src/Eccube/Resource/template/install/complete.twig @@ -17,80 +17,103 @@ file that was distributed with this source code. $(function() { var is_sqlite = {% if is_sqlite %}true{% else %}false{% endif %}; var plugin_content = $('#plugins').children().remove(); - $('プラグインを読み込んでいます。しばらくお待ちください...').appendTo('#plugins'); + + var modal = $('#PluginProgressModal'); + var bootstrapModal = new bootstrap.Modal(modal.get(0)); + bootstrapModal.show(); + var progress = $('div.progress', modal).show(); + var progress_message = $('#progress_message'); + modal.find('.modal-footer').hide(); + progress_message.text('システム要件をチェックしています。しばらくお待ちください...'); + $.ajaxSetup({ 'headers': { 'ECCUBE-CSRF-TOKEN': '{{ token }}' } }); - $.get({ url: '{{ url('install_plugins') }}' }, - function (data) { - $('#plugins').children().remove(); - if (data.length === 0) { - $('#plugins_switch').hide(); - return; - } - data.forEach(function (plugin) { - var content = $(plugin_content).clone(); - var url = '{{ url('install_plugin_enable', { 'code': '__code__' }) }}'; - content.find('.btn-toggle').data('url', url.replace(/__code__/, encodeURIComponent(plugin.code))); - content.find('.plugin_name').text(plugin.name); - if (plugin.enabled) { - content.find('.btn-enable') - .addClass('btn-success') - .addClass('active'); - content.find('.btn-disable') - .addClass('btn-default') - } else { - content.find('.btn-enable') - .addClass('btn-default'); - content.find('.btn-disable') - .addClass('btn-success') - .addClass('active'); - } - if (is_sqlite && ['Api42', 'SiteKit42'].includes(plugin.code)) { - content.find('.btn-toggle').text('SQLite3 には対応していません'); + + $.ajax({ + url: '{{ url("install_plugin_check_api") }}', + type: 'put' + }).always(function () { + progress_message.text('プラグインを読み込んでいます。しばらくお待ちください...'); + $.get({ url: '{{ url('install_plugins') }}' }, + function (data) { + $('#plugins').children().remove(); + if (data.length === 0) { + $('#plugins_switch').hide(); + return; } - content.appendTo('#plugins'); - }); - } - ).then(function () { - $('.btn-toggle').on('click', function () { - var btn = $(this).find('.btn'); - btn.toggleClass('active'); - btn.toggleClass('btn-success'); - btn.toggleClass('btn-default'); - var statusText = $(this).find('.btn-success').text(); - var modal = $('#PluginProgressModal'); - var bootstrapModal = new bootstrap.Modal(modal.get(0)); - bootstrapModal.show(); - var progress = $('div.progress', modal).show(); - var progress_message = $('#progress_message'); - modal.find('.modal-footer').hide(); - progress_message.text('プラグインを' + statusText + '化しています...'); - $.ajax( - { - url: $(this).data('url'), - type: 'put' - } - ).done(function(data, textStatus, jqXHR) { - progress.hide(); - bootstrapModal.hide(); - }).fail(function(jqXHR, textStatus, errorThrown) { - modal.find('.modal-footer').show(); - btn.toggleClass('active'); - btn.toggleClass('btn-success'); - btn.toggleClass('btn-default'); - console.log(jqXHR); - console.log(textStatus); - console.log(errorThrown); - if (jqXHR.status == 404) { - progress_message.text('一定時間経過したため' + statusText + '化ができません。管理画面にログインし、オーナーズストア→プラグイン→プラグイン一覧から再度お試しください。'); - } else { - progress_message.text(statusText + '化に失敗しました。'); - } - }); - }) + data.forEach(function (plugin) { + var pluginCode = encodeURIComponent(plugin.code); + var content = $(plugin_content).clone(); + var url = '{{ url('install_plugin_enable', { 'code': '__code__' }) }}'; + content.find('.c-toggleSwitch').data('url', url.replace(/__code__/, pluginCode)); + content.find('.plugin_name').text(plugin.name); + content.find('input[type=checkbox]').attr('id', pluginCode); + content.find('label').attr('for', pluginCode); + if (plugin.enabled) { + content.find('input[type=checkbox]') + .prop('checked', true); + content.find('.c-toggleSwitch__label > span').text('有効'); + } else { + content.find('input[type=checkbox]') + .prop('checked', false); + content.find('.c-toggleSwitch__label > span').text('無効'); + } + if (is_sqlite && ['Api42', 'SiteKit42'].includes(plugin.code)) { + content.find('.c-toggleSwitch').text('SQLite3 には対応していません'); + } + content.appendTo('#plugins'); + }); + } + ).then(function () { + $('#plugins_switch').find('.c-toggleSwitch').each(function () { + var $toggleSwitch = $(this); + $toggleSwitch.find('input[type=checkbox]').on('change', function () { + var $checkbox = $(this); + var status = $checkbox.prop('checked'); + $toggleSwitch.find('.c-toggleSwitch__label > span').text(status ? '有効' : '無効'); + var statusText = $toggleSwitch.find('.c-toggleSwitch__label > span').text(); + bootstrapModal.show(); + progress.show(); + modal.find('.modal-footer').hide(); + progress_message.text('プラグインを' + statusText + '化しています...'); + $.ajax( + { + url: $toggleSwitch.data('url'), + type: 'put' + } + ).done(function(data, textStatus, jqXHR) { + progress.hide(); + bootstrapModal.hide(); + }).fail(function(jqXHR, textStatus, errorThrown) { + modal.find('.modal-footer').show(); + $checkbox.prop('checked', !status); + $toggleSwitch.find('.c-toggleSwitch__label > span').text(!status ? '有効' : '無効'); + bootstrapModal.hide(); + console.log(jqXHR); + console.log(textStatus); + console.log(errorThrown); + if (jqXHR.status == 404) { + progress_message.text('一定時間経過したため' + statusText + '化ができません。管理画面にログインし、オーナーズストア→プラグイン→プラグイン一覧から再度お試しください。'); + } else { + progress_message.text(statusText + '化に失敗しました。'); + } + }); + }); + }); + }).always(function () { + // モーダルをクローズ + progress.hide(); + bootstrapModal.hide(); + + // 管理画面へのボタンを有効化 + $('#go_to_admin_page') + .removeClass('disabled') + .removeAttr('tabindex') + .attr('href', "{{ url('install_plugin_redirect') }}") + }); }); }); @@ -113,9 +136,14 @@ file that was distributed with this source code. __name__ -
    - - +
    +
    + + +
    +
    + 有効 +
    @@ -126,7 +154,9 @@ file that was distributed with this source code.

    {{ 'install.access_admin_page'|trans}}

    {{ 'install.perform_initial_setting'|trans }}

    - +
    diff --git a/src/Eccube/Resource/template/install/step1.twig b/src/Eccube/Resource/template/install/step1.twig index ab88f06be43..75e4c54d808 100644 --- a/src/Eccube/Resource/template/install/step1.twig +++ b/src/Eccube/Resource/template/install/step1.twig @@ -23,7 +23,7 @@ file that was distributed with this source code. {% for message in app.session.flashBag.get('eccube.install.danger') %} diff --git a/src/Eccube/Service/Composer/ComposerApiService.php b/src/Eccube/Service/Composer/ComposerApiService.php index cd748f1811f..1970081dc54 100644 --- a/src/Eccube/Service/Composer/ComposerApiService.php +++ b/src/Eccube/Service/Composer/ComposerApiService.php @@ -94,6 +94,7 @@ public function execInfo($pluginName, $version) * * @param string $packageName format "foo/bar foo/bar:1.0.0" * @param OutputInterface|null $output + * @param string|null $from * * @return string * @@ -101,11 +102,11 @@ public function execInfo($pluginName, $version) * @throws \Doctrine\ORM\NoResultException * @throws \Doctrine\ORM\NonUniqueResultException */ - public function execRequire($packageName, $output = null) + public function execRequire($packageName, $output = null, $from = null) { $packageName = explode(' ', trim($packageName)); - $this->init(); + $this->init(null, $packageName, $from); $this->execConfig('allow-plugins.symfony/flex', ['false']); try { @@ -366,12 +367,14 @@ public function runCommand($commands, $output = null, $init = true) * Init composer console application * * @param BaseInfo|null $BaseInfo + * @param string[] $packageName + * @param string|null $from * * @throws PluginException * @throws \Doctrine\ORM\NoResultException * @throws \Doctrine\ORM\NonUniqueResultException */ - private function init($BaseInfo = null) + private function init($BaseInfo = null, $packageName = [], $from = null) { $BaseInfo = $BaseInfo ?: $this->baseInfoRepository->get(); @@ -385,7 +388,8 @@ private function init($BaseInfo = null) $this->initConsole(); $this->workingDir = $this->workingDir ? $this->workingDir : $this->eccubeConfig['kernel.project_dir']; $url = $this->eccubeConfig['eccube_package_api_url']; - $json = json_encode([ + $config = $this->getConfig(); + $eccube_repository = [ 'type' => 'composer', 'url' => $url, 'options' => [ @@ -393,9 +397,33 @@ private function init($BaseInfo = null) 'header' => ['X-ECCUBE-KEY: '.$BaseInfo->getAuthenticationKey()], ], ], - ]); + ]; + $exclude = []; + if (array_key_exists('eccube', $config['repositories']) + && array_key_exists('exclude', $config['repositories']['eccube'])) { + $exclude = array_map( + function ($package) { + return trim($package); + }, + explode(',', str_replace(['[', ']'], '', $config['repositories']['eccube']['exclude'])) + ); + } + + if ($from !== null) { + $exclude = array_unique(array_merge($exclude, [trim(current($packageName))])); + $this->execConfig('repositories.'.str_replace(['.', '/'], '', strtolower($from)), [json_encode([ + 'type' => 'path', + 'url' => $from, + ])]); + } + + if (!empty($exclude)) { + $eccube_repository['exclude'] = $exclude; + } + $this->execConfig('platform.php', [PHP_MAJOR_VERSION.'.'.PHP_MINOR_VERSION.'.'.PHP_RELEASE_VERSION]); - $this->execConfig('repositories.eccube', [$json]); + $this->execConfig('repositories.eccube', [json_encode($eccube_repository)]); + if (strpos($url, 'http://') === 0) { $this->execConfig('secure-http', ['false']); } @@ -424,8 +452,21 @@ public function configureRepository(BaseInfo $BaseInfo): void private function dropTableToExtra($packageNames) { + $projectRoot = $this->eccubeConfig->get('kernel.project_dir'); + foreach (explode(' ', trim($packageNames)) as $packageName) { - $pluginCode = basename($packageName); + $pluginCode = null; + // 大文字小文字を区別するファイルシステムを考慮して, ディレクトリ名からプラグインコードを取得する + foreach (glob($projectRoot.'/app/Plugin/*', GLOB_ONLYDIR) as $dir) { + if (strtolower(basename($dir)) === strtolower(basename($packageName))) { + $pluginCode = basename($dir); + break; + } + } + if ($pluginCode === null) { + throw new PluginException($packageName.' not found'); + } + $this->pluginContext->setCode($pluginCode); $this->pluginContext->setUninstall(); diff --git a/src/Eccube/Service/CsvExportService.php b/src/Eccube/Service/CsvExportService.php index 9e3ba6b3647..dcc55b782ee 100644 --- a/src/Eccube/Service/CsvExportService.php +++ b/src/Eccube/Service/CsvExportService.php @@ -346,6 +346,10 @@ public function getData(Csv $Csv, $entity) } elseif ($data instanceof \DateTime) { // datetimeの場合は文字列に変換する. return $data->format($this->eccubeConfig['eccube_csv_export_date_format']); + + } elseif (is_bool($data)) { + // booleanの場合は文字列に変換する. + return $data ? '1' : '0'; } else { // スカラ値の場合はそのまま. return $data; diff --git a/src/Eccube/Service/MailService.php b/src/Eccube/Service/MailService.php index 36da38bedbc..2089d756cab 100644 --- a/src/Eccube/Service/MailService.php +++ b/src/Eccube/Service/MailService.php @@ -439,7 +439,7 @@ public function sendAdminCustomerConfirmMail(Customer $Customer, $activateUrl) $message = (new Email()) ->subject('['.$this->BaseInfo->getShopName().'] '.$MailTemplate->getMailSubject()) - ->from(new Address($this->BaseInfo->getEmail03(), $this->BaseInfo->getShopName())) + ->from(new Address($this->BaseInfo->getEmail01(), $this->BaseInfo->getShopName())) ->to($this->convertRFCViolatingEmail($Customer->getEmail())) ->bcc($this->BaseInfo->getEmail01()) ->replyTo($this->BaseInfo->getEmail03()) @@ -551,6 +551,7 @@ public function sendPasswordResetNotificationMail(Customer $Customer, $reset_url ->subject('['.$this->BaseInfo->getShopName().'] '.$MailTemplate->getMailSubject()) ->from(new Address($this->BaseInfo->getEmail01(), $this->BaseInfo->getShopName())) ->to($this->convertRFCViolatingEmail($Customer->getEmail())) + ->bcc($this->BaseInfo->getEmail01()) ->replyTo($this->BaseInfo->getEmail03()) ->returnPath($this->BaseInfo->getEmail04()); diff --git a/src/Eccube/Service/OrderPdfService.php b/src/Eccube/Service/OrderPdfService.php index 412dd706811..0d918e02376 100644 --- a/src/Eccube/Service/OrderPdfService.php +++ b/src/Eccube/Service/OrderPdfService.php @@ -190,9 +190,6 @@ public function makePdf(array $formData) // 出荷番号をStringからarrayに変換 $ids = explode(',', $formData['ids']); - // 空文字列の場合のデフォルトメッセージを設定する - $this->setDefaultData($formData); - foreach ($ids as $id) { $this->lastOrderId = $id; @@ -302,11 +299,15 @@ protected function renderShopData() $this->setBasePosition(); // ショップ名 - $this->lfText(125, 60, $this->baseInfoRepository->getShopName(), 8, 'B'); + $this->lfText(125, 58, $this->baseInfoRepository->getShopName(), 8, 'B'); + + //郵便番号 + $this->lfText(121, 63, "\u{3012}". ' ' . mb_substr($this->baseInfoRepository->getPostalCode(), 0, 3) . ' - ' . mb_substr($this->baseInfoRepository->getPostalCode(), 3, 4), 8); + // 都道府県+所在地 $text = $this->baseInfoRepository->getPref().$this->baseInfoRepository->getAddr01(); - $this->lfText(125, 65, $text, 8); + $this->lfText(125, 66, $text, 8); $this->lfText(125, 69, $this->baseInfoRepository->getAddr02(), 8); // 電話番号 @@ -419,6 +420,10 @@ protected function renderOrderData(Shipping $Shipping) $Order = $Shipping->getOrder(); + // 購入者郵便番号(3012は郵便マークのUTFコード) + $text = "\u{3012}" . ' ' . mb_substr($Shipping->getPostalCode(), 0, 3) . ' - ' . mb_substr($Shipping->getPostalCode(), 3, 4); + $this->lfText(22, 43, $text, 10); + // 購入者都道府県+住所1 // $text = $Order->getPref().$Order->getAddr01(); $text = $Shipping->getPref().$Shipping->getAddr01(); @@ -651,8 +656,6 @@ protected function lfText($x, $y, $text, $size = 0, $style = '') /** * Colored table. * - * TODO: 後の列の高さが大きい場合、表示が乱れる。 - * * @param array $header 出力するラベル名一覧 * @param array $data 出力するデータ * @param array $w 出力するセル幅一覧 @@ -687,18 +690,9 @@ protected function setFancyTable($header, $data, $w) $this->SetFont(''); // Data $fill = 0; - $h = 4; - foreach ($data as $row) { - // 行のの処理 + $writeRow = function($row, $cellHeight, $fill, $isBorder) use($w) { $i = 0; - $h = 4; - $this->Cell(5, $h, '', 0, 0, '', 0, ''); - if ((277 - $this->getY()) < ($h * 4)) { - $this->checkPageBreak($this->PageBreakTrigger + 1); - } - - // Cellの高さを保持 - $cellHeight = 0; + $h = 0; foreach ($row as $col) { // 列の処理 // TODO: 汎用的ではない処理。この指定は呼び出し元で行うようにしたい。 @@ -708,8 +702,6 @@ protected function setFancyTable($header, $data, $w) // セル高さが最大値を保持する if ($h >= $cellHeight) { $cellHeight = $h; - } else { - $this->checkPageBreak($this->PageBreakTrigger + 1); } // 最終列の場合は次の行へ移動 @@ -719,18 +711,37 @@ protected function setFancyTable($header, $data, $w) $this->MultiCell( $w[$i], // セル幅 $cellHeight, // セルの最小の高さ - $col, // 文字列 - 1, // 境界線の描画方法を指定 + !$isBorder ? $col : '', // 文字列 + $isBorder ? 1 : 0, // 境界線の描画方法を指定 $align, // テキストの整列 $fill, // 背景の塗つぶし指定 - $ln // 出力後のカーソルの移動方法 + $ln // 出力後のカーソルの移動方法 ); $h = $this->getLastH(); + $i++; + } + return $cellHeight; + }; - ++$i; + foreach ($data as $row) { + // 行の処理 + $h = 4; + $this->Cell(5, $h, '', 0, 0, '', 0, ''); + if ((277 - $this->getY()) < ($h * 4)) { + $this->checkPageBreak($this->PageBreakTrigger + 1); } + + $x = $this->getX(); + $y = $this->getY(); + // 1度目は文字だけ出力し、行の高さ最大を取得 + $h = $writeRow($row, $h, $fill, false); + $this->setXY($x, $y); + // 2度目に最大の高さに合わせて、境界線を描画 + $writeRow($row, $h, $fill, true); + $fill = !$fill; } + $h = 4; $this->Cell(5, $h, '', 0, 0, '', 0, ''); $this->Cell(array_sum($w), 0, '', 'T'); $this->SetFillColor(255); @@ -757,27 +768,6 @@ protected function setBasePosition($x = null, $y = null) $this->SetY($actualY); } - /** - * データが設定されていない場合にデフォルト値を設定する. - * - * @param array $formData - */ - protected function setDefaultData(array &$formData) - { - $defaultList = [ - 'title' => trans('admin.order.delivery_note_title__default'), - 'message1' => trans('admin.order.delivery_note_message__default1'), - 'message2' => trans('admin.order.delivery_note_message__default2'), - 'message3' => trans('admin.order.delivery_note_message__default3'), - ]; - - foreach ($defaultList as $key => $value) { - if (is_null($formData[$key])) { - $formData[$key] = $value; - } - } - } - /** * Font情報のバックアップ. */ diff --git a/src/Eccube/Service/PointHelper.php b/src/Eccube/Service/PointHelper.php index 3b006612004..6bc0cb8c988 100644 --- a/src/Eccube/Service/PointHelper.php +++ b/src/Eccube/Service/PointHelper.php @@ -122,9 +122,20 @@ public function addPointDiscountItem(ItemHolderInterface $itemHolder, $discount) $TaxInclude = $this->entityManager->find(TaxDisplayType::class, TaxDisplayType::INCLUDED); $Taxation = $this->entityManager->find(TaxType::class, TaxType::NON_TAXABLE); + // 商品明細に保持しているポイント付与率を取得して設定する. + // 商品明細が取得できない場合は店舗基本情報のポイント付与率を設定する. + $Baseinfo = $this->baseInfoRepository->get(); + $pointRate = $Baseinfo->getBasicPointRate(); + // 商品別ポイントは未実装なので, 商品明細のポイント付与率はすべて同じ値が設定されているはず + $ProductOrderItem = $itemHolder->getItems()->getProductClasses()->current(); + if ($ProductOrderItem instanceof OrderItem && $ProductOrderItem->getPointRate() !== null) { + $pointRate = $ProductOrderItem->getPointRate(); + } + $OrderItem = new OrderItem(); $OrderItem->setProductName($DiscountType->getName()) ->setPrice($discount) + ->setPointRate($pointRate) ->setQuantity(1) ->setTax(0) ->setTaxRate(0) diff --git a/src/Eccube/Service/PurchaseFlow/Processor/AddPointProcessor.php b/src/Eccube/Service/PurchaseFlow/Processor/AddPointProcessor.php index 0c0de3daa39..7943ff662b3 100644 --- a/src/Eccube/Service/PurchaseFlow/Processor/AddPointProcessor.php +++ b/src/Eccube/Service/PurchaseFlow/Processor/AddPointProcessor.php @@ -17,6 +17,7 @@ use Eccube\Entity\ItemHolderInterface; use Eccube\Entity\ItemInterface; use Eccube\Entity\Order; +use Eccube\Entity\OrderItem; use Eccube\Repository\BaseInfoRepository; use Eccube\Service\PurchaseFlow\ItemHolderPostValidator; use Eccube\Service\PurchaseFlow\PurchaseContext; @@ -70,7 +71,9 @@ private function calculateAddPoint(ItemHolderInterface $itemHolder) // 明細ごとのポイントを集計 $totalPoint = array_reduce($itemHolder->getItems()->toArray(), function ($carry, ItemInterface $item) use ($basicPointRate) { - $pointRate = $item->isProduct() ? $item->getProductClass()->getPointRate() : null; + + $pointRate = $item->getPointRate() ? $item->getPointRate() : null; + if ($pointRate === null) { $pointRate = $basicPointRate; } diff --git a/src/Eccube/Service/PurchaseFlow/Processor/PointDiffProcessor.php b/src/Eccube/Service/PurchaseFlow/Processor/PointDiffProcessor.php index a6e0c5edfc9..ba8ab5a5d42 100644 --- a/src/Eccube/Service/PurchaseFlow/Processor/PointDiffProcessor.php +++ b/src/Eccube/Service/PurchaseFlow/Processor/PointDiffProcessor.php @@ -66,7 +66,7 @@ protected function validate(ItemHolderInterface $itemHolder, PurchaseContext $co // 所有ポイント < 新規利用ポイント $Customer = $itemHolder->getCustomer(); - if ($Customer->getPoint() < $diffUsePoint) { + if ($diffUsePoint > 0 && $Customer->getPoint() < $diffUsePoint) { $this->throwInvalidItemException('purchase_flow.over_customer_point'); } } diff --git a/src/Eccube/Service/PurchaseFlow/Processor/PointRateProcessor.php b/src/Eccube/Service/PurchaseFlow/Processor/PointRateProcessor.php new file mode 100644 index 00000000000..842803b30e5 --- /dev/null +++ b/src/Eccube/Service/PurchaseFlow/Processor/PointRateProcessor.php @@ -0,0 +1,52 @@ +baseInfoRepository = $baseInfoRepository; + } + + protected function validate(ItemHolderInterface $itemHolder, PurchaseContext $context) + { + if (!$itemHolder instanceof Order) { + return; + } + + foreach ($itemHolder->getOrderItems() as $item) { + if ($item->isProduct() && $item->getProductClass()->getPointRate()) { + $item->setPointRate($item->getProductClass()->getPointRate()); + } else { + $item->setPointRate($this->baseInfoRepository->get()->getBasicPointRate()); + } + } + } +} diff --git a/src/Eccube/Service/PurchaseFlow/Processor/TaxRateChangeValidator.php b/src/Eccube/Service/PurchaseFlow/Processor/TaxRateChangeValidator.php index 638375bbb43..04557b92628 100644 --- a/src/Eccube/Service/PurchaseFlow/Processor/TaxRateChangeValidator.php +++ b/src/Eccube/Service/PurchaseFlow/Processor/TaxRateChangeValidator.php @@ -43,7 +43,7 @@ protected function validate(ItemHolderInterface $itemHolder, PurchaseContext $co return; } - if ($originHolder->getTaxByTaxRate() !== $itemHolder->getTaxByTaxRate()) { + if (!empty(array_diff(array_keys($originHolder->getTaxByTaxRate()), array_keys($itemHolder->getTaxByTaxRate())))) { $this->throwInvalidItemException('purchase_flow.tax_rate_update', null, true); } } diff --git a/src/Eccube/Twig/Extension/EccubeExtension.php b/src/Eccube/Twig/Extension/EccubeExtension.php index 60736c07b94..b21ad3fa875 100644 --- a/src/Eccube/Twig/Extension/EccubeExtension.php +++ b/src/Eccube/Twig/Extension/EccubeExtension.php @@ -24,6 +24,7 @@ use Twig\Extension\AbstractExtension; use Twig\TwigFilter; use Twig\TwigFunction; +use Twig\TwigTest; class EccubeExtension extends AbstractExtension { @@ -82,6 +83,18 @@ public function getFilters() ]; } + /** + * Returns a list of tests. + * + * @return TwigTest[] + */ + public function getTests() + { + return [ + new TwigTest('integer', function ($value) { return is_integer($value); }), + ]; + } + /** * Name of this extension * @@ -278,7 +291,7 @@ public function getClassCategoriesAsJson(Product $Product) * * @param $ext * @param $attr - * @param $iconOnly アイコンのクラス名のみ返す場合はtrue + * @param bool $iconOnly アイコンのクラス名のみ返す場合はtrue * * @return string */ diff --git a/tests/Eccube/Tests/DependencyInjection/Compiler/AutoConfigurationTagPassTest.php b/tests/Eccube/Tests/DependencyInjection/Compiler/AutoConfigurationTagPassTest.php index ac8d518881e..6a4ee67bf87 100644 --- a/tests/Eccube/Tests/DependencyInjection/Compiler/AutoConfigurationTagPassTest.php +++ b/tests/Eccube/Tests/DependencyInjection/Compiler/AutoConfigurationTagPassTest.php @@ -16,7 +16,9 @@ use Doctrine\Common\EventSubscriber; use Eccube\DependencyInjection\Compiler\AutoConfigurationTagPass; use Eccube\Tests\EccubeTestCase; +use Symfony\Component\DependencyInjection\ChildDefinition; use Symfony\Component\DependencyInjection\ContainerBuilder; +use Symfony\Component\RateLimiter\RateLimiterFactory; class AutoConfigurationTagPassTest extends EccubeTestCase { @@ -35,6 +37,21 @@ public function testConfigureDoctrineEventSubscriberTag() $definition = $container->getDefinition(Subscriber::class); self::assertTrue($definition->hasTag('doctrine.event_subscriber')); } + + public function testConfigureRateLimiterTag() + { + $container = new ContainerBuilder(); + $container->register('limiter', RateLimiterFactory::class); + $child = new ChildDefinition('limiter'); + $container->setDefinition('limiter.test', $child); + + self::assertFalse($child->hasTag('eccube_rate_limiter')); + + $container->addCompilerPass(new AutoConfigurationTagPass()); + $container->compile(); + + self::assertTrue($child->hasTag('eccube_rate_limiter')); + } } class Subscriber implements EventSubscriber diff --git a/tests/Eccube/Tests/DependencyInjection/ConfigurationTest.php b/tests/Eccube/Tests/DependencyInjection/ConfigurationTest.php new file mode 100644 index 00000000000..a5e65db3868 --- /dev/null +++ b/tests/Eccube/Tests/DependencyInjection/ConfigurationTest.php @@ -0,0 +1,80 @@ +getConfigTreeBuilder(); + self::assertInstanceOf(TreeBuilder::class, $builder); + } + + public function testProcessConfiguration() + { + $configs = [ + 'eccube' => [ + 'rate_limiter' => [ + 'entry' => [ + 'route' => 'entry', + 'type' => 'ip', + 'method' => ['POST'], + 'params' => ['mode' => 'complete'], + 'limit' => 10, + 'interval' => '30 minutes', + ], + 'shopping_confirm' => [ + 'route' => null, + 'limit' => 10, + 'interval' => '30 minutes', + ], + ], + ], + ]; + $expected = [ + 'rate_limiter' => [ + 'limiters' => [ + 'entry' => [ + 'route' => 'entry', + 'type' => ['ip'], + 'method' => ['POST'], + 'params' => ['mode' => 'complete'], + 'limit' => 10, + 'interval' => '30 minutes', + ], + 'shopping_confirm' => [ + 'route' => null, + 'limit' => 10, + 'interval' => '30 minutes', + 'type' => [], + 'method' => ['POST'], + 'params' => [], + ], + ], + ], + ]; + + $processor = new Processor(); + $configuration = new Configuration(); + $actual = $processor->processConfiguration($configuration, $configs); + + self::assertSame($expected, $actual); + } +} diff --git a/tests/Eccube/Tests/DependencyInjection/EccubeExtensionTest.php b/tests/Eccube/Tests/DependencyInjection/EccubeExtensionTest.php new file mode 100644 index 00000000000..98b68a04473 --- /dev/null +++ b/tests/Eccube/Tests/DependencyInjection/EccubeExtensionTest.php @@ -0,0 +1,48 @@ +extension = new EccubeExtension(); + } + + public function testLoad() + { + $this->extension->load([], new ContainerBuilder()); + self::assertIsArray($this->extension->getProcessedConfigs()); + } + + public function testGetAlias() + { + self::assertSame('eccube', $this->extension->getAlias()); + } + + public function testGetConfiguration() + { + $container = new ContainerBuilder(); + $configuration = $this->extension->getConfiguration([], $container); + self::assertInstanceOf(Configuration::class, $configuration); + } +} diff --git a/tests/Eccube/Tests/EccubeBundleTest.php b/tests/Eccube/Tests/EccubeBundleTest.php new file mode 100644 index 00000000000..681f718fc0d --- /dev/null +++ b/tests/Eccube/Tests/EccubeBundleTest.php @@ -0,0 +1,27 @@ +getContainerExtension(); + self::assertInstanceOf(EccubeExtension::class, $extension); + } +} diff --git a/tests/Eccube/Tests/EventListener/IpAddrListenerTest.php b/tests/Eccube/Tests/EventListener/IpAddrListenerTest.php new file mode 100644 index 00000000000..4eb2088fd40 --- /dev/null +++ b/tests/Eccube/Tests/EventListener/IpAddrListenerTest.php @@ -0,0 +1,141 @@ +true、拒否->false) + return [ + // allowチェック 許可パターン + [[], [], true], // 空 + [['192.168.56.1'], [], true], // IPアドレスのみ + [['192.168.56.1/32'], [], true], // IPアドレスとビットマスク最大値 + [['127.0.0.1', '192.168.56.1/32'], [], true], // 複数行に渡る記述 + + // allowチェック 拒否パターン + [['192.168.56.2'], [], false], // IPアドレスのみ + [['192.168.56.2/32'], [], false], // IPアドレスとビットマスク最大値 + [['127.0.0.1', '192.168.56.2/32'], [], false], // 複数行に渡る記述 + + // denyチェック 拒否パターン + [[], ['192.168.56.1'], false], // IPアドレスのみ + [[], ['192.168.56.1/32'], false], // IPアドレスとビットマスク最大値 + [[], ['127.0.0.1', '192.168.56.1/32'], false], // 複数行に渡る記述 + [['192.168.56.1/32'], ['192.168.56.1/32'], false], // 許可リストで許可後、拒否リストに同様の記述があるため結果拒否される + + // denyチェック 許可パターン + [[], ['192.168.56.2'], true], // IPアドレスのみ + [[], ['192.168.56.2/32'], true], // IPアドレスとビットマスク最大値 + [[], ['127.0.0.1', '192.168.56.2/32'], true], // 複数行に渡る記述 + + ]; + } + + + /** + * @dataProvider ipAddressParams + */ + public function testOnKernelRequest($allowHost, $denyHost, $expected) + { + $event = $this->createStub(RequestEvent::class); + $event->method('isMainRequest') + ->willReturn(true); + + $context = $this->createStub(Context::class); + $context->method('isAdmin') + ->willReturn(false); + + $map = [ + ['eccube_front_allow_hosts', $allowHost], + ['eccube_front_deny_hosts', $denyHost], + ]; + $eccubeConfig = $this->createStub(EccubeConfig::class); + $eccubeConfig->method('offsetGet') + ->will($this->returnValueMap($map)); + + $request = $this->createStub(Request::class); + $request->method('getClientIp') + ->willReturn($this->clientIp); + + $event->method('getRequest') + ->willReturn($request); + + $ipAddrListerner = new IpAddrListener($eccubeConfig, $context); + + $actual = true; + try { + $ipAddrListerner->onKernelRequest($event); + } catch (AccessDeniedHttpException $e) { + $actual = false; + } + + $this->assertSame($expected, $actual); + } + + + /** + * @dataProvider ipAddressParams + */ + public function testOnKernelRequesAdmin($allowHost, $denyHost, $expected) + { + $event = $this->createStub(RequestEvent::class); + $event->method('isMainRequest') + ->willReturn(true); + + $context = $this->createStub(Context::class); + $context->method('isAdmin') + ->willReturn(true); + + $map = [ + ['eccube_admin_allow_hosts', $allowHost], + ['eccube_admin_deny_hosts', $denyHost], + ]; + $eccubeConfig = $this->createStub(EccubeConfig::class); + $eccubeConfig->method('offsetGet') + ->will($this->returnValueMap($map)); + + $request = $this->createStub(Request::class); + $request->method('getClientIp') + ->willReturn($this->clientIp); + + $event->method('getRequest') + ->willReturn($request); + + $ipAddrListerner = new IpAddrListener($eccubeConfig, $context); + + $actual = true; + try { + $ipAddrListerner->onKernelRequest($event); + } catch (AccessDeniedHttpException $e) { + $actual = false; + } + + $this->assertSame($expected, $actual); + } +} diff --git a/tests/Eccube/Tests/EventListener/RateLimiterListenerTest.php b/tests/Eccube/Tests/EventListener/RateLimiterListenerTest.php new file mode 100644 index 00000000000..cbc5c597e15 --- /dev/null +++ b/tests/Eccube/Tests/EventListener/RateLimiterListenerTest.php @@ -0,0 +1,112 @@ +createStub(Request::class); + $request->method('getClientIp') + ->willReturn('127.0.0.1'); + $request->method('getMethod') + ->willReturn('POST'); + $request->method('get') + ->will($this->returnValueMap([ + ['mode', null, 'complete'], + ['next', null, 'confirm'], + ])); + + $request->attributes = new ParameterBag(); + $request->attributes->set('_route', 'test'); + + $Customer = $this->createStub(Customer::class); + $Customer->method('getId') + ->willReturn(1); + + $context = $this->createStub(Context::class); + $context->method('getCurrentUser') + ->willReturn($Customer); + + $event = new ControllerEvent(self::$kernel, function () {}, $request, HttpKernelInterface::MAIN_REQUEST); + + $map = [ + [ + 'eccube_rate_limiter_configs', + [ + 'test' => [ + $limiterId => [ + 'method' => ['POST'], + 'type' => [$type], + 'params' => $params, + ], + ], + ], + ], + ]; + + $config = $this->createStub(EccubeConfig::class); + $config->method('offsetGet') + ->will($this->returnValueMap($map)); + + $i = 0; + $listener = new RateLimiterListener($this->getContainer(), $config, $context); + + try { + $i++; + $listener->onController($event); + $i++; + $listener->onController($event); + self::fail(); + } catch (\Exception $e) { + self::assertInstanceOf(TooManyRequestsHttpException::class, $e); + } + + // 2回目でTooManyRequestsHttpExceptionがthrowされる. + // キャッシュが残っている場合は、bin/console cache:pool:clear rate_limiter.cache --env=test を実行する + self::assertSame(2, $i); + } + + public function onControllerProvider() + { + return [ + ['test_ip', 'ip', []], + ['test_customer', 'customer', []], + ['test_params', 'customer', ['mode' => 'complete', 'next' => 'confirm']], + ]; + } + + public function testGetSubscribedEvents() + { + self::assertSame( + [KernelEvents::CONTROLLER => ['onController', 0]], + RateLimiterListener::getSubscribedEvents() + ); + } +} diff --git a/tests/Eccube/Tests/Fixture/Generator.php b/tests/Eccube/Tests/Fixture/Generator.php index c92b33a82ff..7c2f4e1c15d 100644 --- a/tests/Eccube/Tests/Fixture/Generator.php +++ b/tests/Eccube/Tests/Fixture/Generator.php @@ -14,6 +14,7 @@ namespace Eccube\Tests\Fixture; use Doctrine\ORM\EntityManagerInterface; +use Eccube\Entity\BaseInfo; use Eccube\Entity\Customer; use Eccube\Entity\CustomerAddress; use Eccube\Entity\Delivery; @@ -647,6 +648,8 @@ public function createOrder(Customer $Customer, array $ProductClasses = [], Deli $ItemDeliveryFee = $this->entityManager->find(OrderItemType::class, OrderItemType::DELIVERY_FEE); $ItemCharge = $this->entityManager->find(OrderItemType::class, OrderItemType::CHARGE); $ItemDiscount = $this->entityManager->find(OrderItemType::class, OrderItemType::DISCOUNT); + $BaseInfo = $this->entityManager->getRepository(BaseInfo::class)->get(); + /** @var ProductClass $ProductClass */ foreach ($ProductClasses as $ProductClass) { if (!$ProductClass->isVisible()) { @@ -666,6 +669,7 @@ public function createOrder(Customer $Customer, array $ProductClasses = [], Deli ->setTaxType($Taxation) // 課税 ->setTaxDisplayType($TaxExclude) // 税別 ->setOrderItemType($ItemProduct) // 商品明細 + ->setPointRate($BaseInfo->getBasicPointRate()) ; if ($ProductClass->hasClassCategory1()) { $OrderItem diff --git a/tests/Eccube/Tests/Form/Type/Admin/SecurityTypeTest.php b/tests/Eccube/Tests/Form/Type/Admin/SecurityTypeTest.php index 0acb8ad1b18..a926116c77a 100644 --- a/tests/Eccube/Tests/Form/Type/Admin/SecurityTypeTest.php +++ b/tests/Eccube/Tests/Form/Type/Admin/SecurityTypeTest.php @@ -30,6 +30,8 @@ class SecurityTypeTest extends AbstractTypeTestCase 'admin_route_dir' => 'admin', 'admin_allow_hosts' => '', 'admin_deny_hosts' => '', + 'front_allow_hosts' => '', + 'front_deny_hosts' => '', 'trusted_hosts' => 'localhost', ]; @@ -133,4 +135,66 @@ public function testTrustedHosts() $this->form->submit($this->formData); $this->assertTrue($this->form->isValid()); } + + public function ipAddressParams() + { + return [ + // 正常系(適切なIPアドレス表記として認める) + ['', true], // 空パターン + ['127.0.0.1', true], // IPアドレスのみ + ['192.168.56.1/0', true], // IPアドレスとビットマスク最小値 + ['192.168.56.1/32', true], // IPアドレスとビットマスク最大値 + ["127.0.0.1\n192.168.56.1/32", true], // 複数行に渡る記述 + [str_repeat("127.0.0.1\n", 300), true], // 300回リピート(3000byte以内チェック) + + // 異常系(IPアドレス表記として認めないパターン) + ['a', false], // 表記に従わない記述 + ['192.168.56.1/33', false], // ビットマスク最大値を超えた値 + ['192.168.56.1/a', false], // ビットマスクが不正な値 + ["127.0.0.1\n192.168.56.1/33", false], // 複数行に渡る記述で2行目が不正な値 + ['999.168.56.1/32', false], // IPアドレスの範囲外 + [str_repeat("127.0.0.1\n", 301), false], // 301回リピート(3000byteオーバーチェック) + ]; + } + + /** + * @dataProvider ipAddressParams + */ + public function testFrontAllowHost($ip, $valid) + { + $this->formData['front_allow_hosts'] = $ip; + $this->form->submit($this->formData); + $this->assertSame($valid, $this->form['front_allow_hosts']->isValid()); + } + + /** + * @dataProvider ipAddressParams + */ + public function testFrontDenyHost($ip, $valid) + { + $this->formData['front_deny_hosts'] = $ip; + $this->form->submit($this->formData); + $this->assertSame($valid, $this->form['front_deny_hosts']->isValid()); + } + + + /** + * @dataProvider ipAddressParams + */ + public function testAdminAllowHost($ip, $valid) + { + $this->formData['admin_allow_hosts'] = $ip; + $this->form->submit($this->formData); + $this->assertSame($valid, $this->form['admin_allow_hosts']->isValid()); + } + + /** + * @dataProvider ipAddressParams + */ + public function testAdminDenyHost($ip, $valid) + { + $this->formData['admin_deny_hosts'] = $ip; + $this->form->submit($this->formData); + $this->assertSame($valid, $this->form['admin_deny_hosts']->isValid()); + } } diff --git a/tests/Eccube/Tests/Service/PurchaseFlow/Processor/PointDiffProcessorTest.php b/tests/Eccube/Tests/Service/PurchaseFlow/Processor/PointDiffProcessorTest.php index 11a384755cc..a972b90953c 100644 --- a/tests/Eccube/Tests/Service/PurchaseFlow/Processor/PointDiffProcessorTest.php +++ b/tests/Eccube/Tests/Service/PurchaseFlow/Processor/PointDiffProcessorTest.php @@ -108,6 +108,15 @@ public function usePointOverCustomerPointProvider() [10, 20, 9, true], [10, 20, 10, false], [10, 20, 11, false], + [0, 0, -10, false], + [20, 10, -10, false], + [10, 10, -10, false], + [20, 9, -10, false], + [20, 11, -10, false], + [10, 20, -10, true], + [11, 20, -10, true], + [9, 20, -10, true], + [10, 20, -10, true], ]; } diff --git a/tests/Eccube/Tests/Service/PurchaseFlow/Processor/PointRateProcessorTest.php b/tests/Eccube/Tests/Service/PurchaseFlow/Processor/PointRateProcessorTest.php new file mode 100644 index 00000000000..9d4f3679aac --- /dev/null +++ b/tests/Eccube/Tests/Service/PurchaseFlow/Processor/PointRateProcessorTest.php @@ -0,0 +1,82 @@ +processor = static::getContainer()->get(PointRateProcessor::class); + $this->BaseInfo = $this->entityManager->find(BaseInfo::class, 1); + + $this->Order = $this->createOrder($this->createCustomer()); + foreach($this->Order->getOrderItems() as $OrderItem) { + $OrderItem->setPointRate(null); + } + } + + public function testExecute() + { + $this->processor->execute($this->Order, new PurchaseContext()); + + foreach ($this->Order->getOrderItems() as $OrderItem) { + $this->assertEquals($OrderItem->getPointRate(), $this->BaseInfo->getBasicPointRate()); + } + } + + public function testExecuteProductPointRate() + { + $baseRate = $this->BaseInfo->getBasicPointRate(); + $productPointRate = $baseRate + 1; + + foreach ($this->Order->getProductOrderItems() as $OrderItem) { + $OrderItem->getProductClass()->setPointRate($productPointRate); + } + + $this->processor->execute($this->Order, new PurchaseContext()); + + foreach ($this->Order->getOrderItems() as $OrderItem) { + if ($OrderItem->isProduct()) { + $this->assertEquals($OrderItem->getPointRate(), $productPointRate); + } else { + $this->assertEquals($OrderItem->getPointRate(), $baseRate); + } + } + } + + public function testExecuteCart() + { + $Cart = new Cart(); + $result = $this->processor->execute($Cart, new PurchaseContext()); + $this->assertInstanceOf( ProcessResult::class, $result); + } +} diff --git a/tests/Eccube/Tests/Web/Admin/Content/FileControllerTest.php b/tests/Eccube/Tests/Web/Admin/Content/FileControllerTest.php index 195d9fbacdd..cccd11332a8 100644 --- a/tests/Eccube/Tests/Web/Admin/Content/FileControllerTest.php +++ b/tests/Eccube/Tests/Web/Admin/Content/FileControllerTest.php @@ -42,6 +42,20 @@ public function testView() $this->verify(); } + public function testViewWithFailure() + { + $filepath = $this->getUserDataDir().'/aaa.html'; + $contents = '

    test

    '; + file_put_contents($filepath, $contents); + + $crawler = $this->client->request( + 'GET', + $this->generateUrl('admin_content_file_view').'?file=/../user_data/aaa.html' + ); + $this->assertFalse($this->client->getResponse()->isSuccessful()); + $this->assertSame(404, $this->client->getResponse()->getStatusCode()); + } + public function testDownload() { $filepath = $this->getUserDataDir().'/aaa.html'; @@ -190,26 +204,55 @@ public function testIndexWithUpload() $this->assertTrue(file_exists($this->getUserDataDir().'/bbb.html')); } - public function testUploadIgnoreFiles() + public function dataProviderUploadIgnoreFiles(): array { - $php = $this->getUserDataDir().'/../test.php'; - touch($php); - - $dot = $this->getUserDataDir().'/../.dotfile'; - touch($dot); - - $phpfile = new UploadedFile( - realpath($php), // file path - 'test.php', // original name - 'x-php', // mimeType - null, // error - true // test mode - ); + return [ + ['test.php', 'x-php', 'アップロードできないファイル拡張子です', false], + ['.dotfile', 'text/plain', '.で始まるファイルはアップロードできません。', false], + ['test.jpg', 'image/jpeg', '', true], + ['test.jpeg', 'image/jpeg', '', true], + ['test.png', 'image/png', '', true], + ['test.gif', 'image/gif', '', true], + ['test.webp', 'image/webp', '', true], + ['test.svg', 'image/svg+xml', '', true], + ['test.ico', 'image/ico', '', true], + ['test.html', 'text/html', '', true], + ['test.htm', 'text/htm', '', true], + ['test.js', 'text/javascript', '', true], + ['test.css', 'text/css', '', true], + ['test.txt', 'text/txt', '', true], + ['test.pdf', 'application/pdf', '', true], + ['test.zip', 'application/zip', 'アップロードできないファイル拡張子です', false], + ['test.gz', 'application/gzip', 'アップロードできないファイル拡張子です', false], + ['test.tar', 'application/tar', 'アップロードできないファイル拡張子です', false], + ['test.doc', 'application/msword', 'アップロードできないファイル拡張子です', false], + ['test.xls', 'application/vnd.ms-excel', 'アップロードできないファイル拡張子です', false], + ['test.ppt', 'application/vnd.ms-powerpoint', 'アップロードできないファイル拡張子です', false], + ['test.docx', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'アップロードできないファイル拡張子です', false], + ['test.xlsx', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'アップロードできないファイル拡張子です', false], + ['test.pptx', 'application/vnd.openxmlformats-officedocument.presentationml.presentation', 'アップロードできないファイル拡張子です', false], + ['test.woff', 'application/font-woff', 'アップロードできないファイル拡張子です', false], + ['test.woff2', 'application/font-woff2', 'アップロードできないファイル拡張子です', false], + ['test.ttf', 'application/font-ttf', 'アップロードできないファイル拡張子です', false], + ['test.otf', 'application/font-otf', 'アップロードできないファイル拡張子です', false], + ['test.eot', 'application/vnd.ms-fontobject', 'アップロードできないファイル拡張子です', false], + ['test.xml', 'text/xml', 'アップロードできないファイル拡張子です', false], + ['test.csv', 'text/csv', 'アップロードできないファイル拡張子です', false], + ['test.json', 'application/json', 'アップロードできないファイル拡張子です', false], + ]; + } + /** + * @dataProvider dataProviderUploadIgnoreFiles + */ + public function testUploadIgnoreFiles($fileName, $mimeType, $errorMessage, $exists) + { + $file = $this->getUserDataDir().'/../'.$fileName; + touch($file); - $dotfile = new UploadedFile( - realpath($dot), // file path - '.dotfile', // original name - 'text/plain', // mimeType + $uploadFile = new UploadedFile( + realpath($file), // file path + $file, // original name + $mimeType, // mimeType null, // error true // test mode ); @@ -221,12 +264,12 @@ public function testUploadIgnoreFiles() 'form' => [ '_token' => 'dummy', 'create_file' => '', - 'file' => [$phpfile, $dotfile], + 'file' => [$uploadFile], ], 'mode' => 'upload', 'now_dir' => '/', ], - ['form' => ['file' => [$phpfile, $dotfile]]] + ['form' => ['file' => [$uploadFile]]] ); $messages = $crawler->filter('p.errormsg')->each(function (Crawler $node) { @@ -235,13 +278,14 @@ public function testUploadIgnoreFiles() $this->assertTrue($this->client->getResponse()->isSuccessful()); - $this->assertContains('phpファイルはアップロードできません。', $messages); - $this->assertContains('.で始まるファイルはアップロードできません。', $messages); - $this->assertFalse(file_exists($this->getUserDataDir().'/test.php')); - $this->assertFalse(file_exists($this->getUserDataDir().'/.dotfile')); + $this->assertStringContainsString($errorMessage, implode(',', $messages)); + $this->assertSame($exists, file_exists($this->getUserDataDir().'/'.$fileName)); - unlink($php); - unlink($dot); + if ($exists) { + unlink($this->getUserDataDir().'/'.$fileName); + } else { + unlink($file); + } } public function testUploadInvalidFileName() diff --git a/tests/Eccube/Tests/Web/Admin/Content/NewsControllerTest.php b/tests/Eccube/Tests/Web/Admin/Content/NewsControllerTest.php index 2bc207e2ca8..a41dc69c0b1 100644 --- a/tests/Eccube/Tests/Web/Admin/Content/NewsControllerTest.php +++ b/tests/Eccube/Tests/Web/Admin/Content/NewsControllerTest.php @@ -15,6 +15,7 @@ use Eccube\Repository\NewsRepository; use Eccube\Tests\Web\Admin\AbstractAdminWebTestCase; +use Symfony\Component\DomCrawler\Crawler; class NewsControllerTest extends AbstractAdminWebTestCase { @@ -71,6 +72,62 @@ public function testRoutingAdminContentNewsDelete() $this->assertTrue($this->client->getResponse()->isRedirect($this->generateUrl('admin_content_news'))); } + /** + * 危険なXSS htmlインジェクションが削除されたことを確認するテスト + * + * 下記のものをチェックします。 + * ・ ID属性の追加 + * ・ + safe html +
    ", + 'url' => 'https://example.com', + 'link_method' => 1, + 'visible' => 1, + ]; + + $this->client->request( + 'POST', + $this->generateUrl('admin_content_news_edit', ['id' => $News->getId()]), + ['admin_news' => $formData] + ); + + $crawler = new Crawler($News->getDescription()); + + //
    タグから危険なid属性が削除されていることを確認する。 + // Find that dangerous id attributes are removed from
    tags. + $target = $crawler->filter('#dangerous-id'); + $this->assertEquals(0, $target->count()); + + // 安全なclass属性が出力されているかどうかを確認する。 + // Find if classes (which are safe) have been outputted + $target = $crawler->filter('.safe_to_use_class'); + $this->assertEquals(1, $target->count()); + + // 安全なHTMLが存在するかどうかを確認する + // Find if the safe HTML exists + $this->assertStringContainsString('

    新着情報テスト

    ', $target->outerHtml()); + $this->assertStringContainsString('safe html', $target->outerHtml()); + + // 安全でないスクリプトが存在しないかどうかを確認する + // Find if the unsafe script does not exist + $this->assertStringNotContainsString("", $target->outerHtml()); + } + private function createNews($TestCreator, $sortNo = 1) { $TestNews = new \Eccube\Entity\News(); diff --git a/tests/Eccube/Tests/Web/Admin/Customer/CustomerControllerTest.php b/tests/Eccube/Tests/Web/Admin/Customer/CustomerControllerTest.php index 77b2fe941ef..884221a5a7b 100644 --- a/tests/Eccube/Tests/Web/Admin/Customer/CustomerControllerTest.php +++ b/tests/Eccube/Tests/Web/Admin/Customer/CustomerControllerTest.php @@ -222,6 +222,34 @@ public function testResend() $this->assertStringContainsString($BaseInfo->getEmail02(), $Message->toString()); } + /** + * testResend run multiple times + */ + public function testResendWithMultipleTimes() + { + $Customer = $this->createCustomer(); + $this->client->request( + 'GET', + $this->generateUrl('admin_customer_resend', ['id' => $Customer->getId()]) + ); + $this->assertTrue($this->client->getResponse()->isRedirect($this->generateUrl('admin_customer'))); + $MessageFistTime = $this->getMailerMessage(0); + + $this->client->request( + 'GET', + $this->generateUrl('admin_customer_resend', ['id' => $Customer->getId()]) + ); + $this->assertTrue($this->client->getResponse()->isRedirect($this->generateUrl('admin_customer'))); + $MessageSecondTime = $this->getMailerMessage(0); + + //test mail resend to 仮会員. (シークレットキーが毎回変わることを確認) + $FirstTimeMail = $MessageFistTime->toString(); + $SecondTimeMail = $MessageSecondTime->toString(); + $secretKeyFirstTime = mb_substr($FirstTimeMail, mb_strrpos($FirstTimeMail, '/activate/') + 10, 32); + $secretKeySecondTime = mb_substr($SecondTimeMail, mb_strrpos($SecondTimeMail, '/activate/') + 10, 32); + $this->assertNotEquals($secretKeyFirstTime, $secretKeySecondTime); + } + /** * testDelete */ diff --git a/tests/Eccube/Tests/Web/Admin/Customer/CustomerEditControllerTest.php b/tests/Eccube/Tests/Web/Admin/Customer/CustomerEditControllerTest.php index 37dc8e127a5..0d9bf640bc8 100644 --- a/tests/Eccube/Tests/Web/Admin/Customer/CustomerEditControllerTest.php +++ b/tests/Eccube/Tests/Web/Admin/Customer/CustomerEditControllerTest.php @@ -197,6 +197,50 @@ public function testNotShowProcessingOrder() $this->assertStringContainsString('この会員の購入履歴がありません', $orderListing); } + /** + * testShowOrders + */ + public function testShowOrders() + { + $id = $this->Customer->getId(); + + //add Order paid status for this customer + $Order = $this->createOrder($this->Customer); + $OrderStatus = $this->entityManager->getRepository(\Eccube\Entity\Master\OrderStatus::class)->find(OrderStatus::PAID); + $Order->setOrderStatus($OrderStatus); + $this->Customer->addOrder($Order); + $this->entityManager->persist($this->Customer); + $this->entityManager->flush(); + + $crawler = $this->client->request( + 'GET', + $this->generateUrl('admin_customer_edit', ['id' => $id]) + ); + + // デフォルトの表示件数確認テスト + $this->expected = '50件'; + $this->actual = $crawler->filter('#orderHistory select.form-select > option:selected')->text(); + $this->verify('デフォルトの表示件数確認テスト'); + + // 表示件数入力値は正しくない場合はデフォルトの表示件数になるテスト + $crawler = $this->client->request('GET', $this->generateUrl('admin_customer_edit', ['id' => $id, 'page_no' => 1, 'page_count' => 999999])); + $this->expected = '50件'; + $this->actual = $crawler->filter('#orderHistory select.form-select > option:selected')->text(); + $this->verify('表示件数入力値は正しくない場合はデフォルトの表示件数になるテスト'); + + // 表示件数70件テスト + $crawler = $this->client->request('GET', $this->generateUrl('admin_customer_edit', ['id' => $id, 'page_no' => 1, 'page_count' => 70])); + $this->expected = '70件'; + $this->actual = $crawler->filter('#orderHistory select.form-select > option:selected')->text(); + $this->verify('表示件数70件テスト'); + + // 表示件数はSESSIONから取得するテスト + $crawler = $this->client->request('GET', $this->generateUrl('admin_customer_edit', ['id' => $id, 'page_no' => 1, 'page_count' => 100])); + $this->expected = '100件'; + $this->actual = $crawler->filter('#orderHistory select.form-select > option:selected')->text(); + $this->verify('表示件数はSESSIONから取得するテスト'); + } + /** * testCustomerWithdraw */ diff --git a/tests/Eccube/Tests/Web/Admin/Order/CsvImportControllerTest.php b/tests/Eccube/Tests/Web/Admin/Order/CsvImportControllerTest.php index f90fa3d0e36..66b8e1f3b3c 100644 --- a/tests/Eccube/Tests/Web/Admin/Order/CsvImportControllerTest.php +++ b/tests/Eccube/Tests/Web/Admin/Order/CsvImportControllerTest.php @@ -59,6 +59,50 @@ public function testLoadCsvFlippedColumns() self::assertEquals($this->parseDate('2018-01-23'), $Shipping->getShippingDate()); } + public function testLoadCsvEmptyTrackingNumberCol() + { + $OrderStatus = $this->entityManager->find(OrderStatus::class, OrderStatus::NEW); + $Order = $this->createOrder($this->createCustomer()); + $Order->setOrderStatus($OrderStatus); + $this->entityManager->flush(); + $Shipping = $Order->getShippings()[0]; + self::assertNull($Shipping->getTrackingNumber()); + self::assertNull($Shipping->getShippingDate()); + + $this->loadCsv([ + '出荷ID,お問い合わせ番号,出荷日', + $Shipping->getId().',,2018-01-23', + ]); + + $this->entityManager->refresh($Shipping); + + self::assertEquals('', $Shipping->getTrackingNumber()); + self::assertEquals($this->parseDate('2018-01-23'), $Shipping->getShippingDate()); + } + + public function testLoadCsvNoTrackingNumberCol() + { + $OrderStatus = $this->entityManager->find(OrderStatus::class, OrderStatus::NEW); + $Order = $this->createOrder($this->createCustomer()); + $Order->setOrderStatus($OrderStatus); + $this->entityManager->flush(); + $Shipping = $Order->getShippings()[0]; + self::assertNull($Shipping->getTrackingNumber()); + self::assertNull($Shipping->getShippingDate()); + + $trackingNo = $Shipping->getTrackingNumber(); + + $this->loadCsv([ + '出荷ID,出荷日', + $Shipping->getId().',2018-01-23', + ]); + + $this->entityManager->refresh($Shipping); + + self::assertEquals($trackingNo, $Shipping->getTrackingNumber()); + self::assertEquals($this->parseDate('2018-01-23'), $Shipping->getShippingDate()); + } + /** * @dataProvider loadCsvInvalidFormatProvider */ diff --git a/tests/Eccube/Tests/Web/Admin/Order/OrderPdfControllerTest.php b/tests/Eccube/Tests/Web/Admin/Order/OrderPdfControllerTest.php index 434af1a77d4..7f7769c74d5 100644 --- a/tests/Eccube/Tests/Web/Admin/Order/OrderPdfControllerTest.php +++ b/tests/Eccube/Tests/Web/Admin/Order/OrderPdfControllerTest.php @@ -370,7 +370,7 @@ public function testDownloadWithPreviousInputSuccessWithWeb() $form = $this->getForm($crawler); // fields set to empty. $form->setValues([ - 'order_pdf[title]' => '', + 'order_pdf[title]' => 'title', 'order_pdf[message1]' => '', 'order_pdf[message2]' => '', 'order_pdf[message3]' => '', @@ -394,7 +394,7 @@ public function testDownloadWithPreviousInputSuccessWithWeb() $adminTest = $token->getUser(); $this->assertEquals($adminTest->getId(), $OrderPdf->getMemberId(), '管理ユーザーのIDと一致するはず'); - $this->assertNull($OrderPdf->getTitle()); + $this->assertEquals('title', $OrderPdf->getTitle()); $this->assertNull($OrderPdf->getMessage1()); $this->assertNull($OrderPdf->getMessage2()); $this->assertNull($OrderPdf->getMessage3()); diff --git a/tests/Eccube/Tests/Web/Admin/Product/CsvImportControllerTest.php b/tests/Eccube/Tests/Web/Admin/Product/CsvImportControllerTest.php index f6760f6a102..74bf80003de 100644 --- a/tests/Eccube/Tests/Web/Admin/Product/CsvImportControllerTest.php +++ b/tests/Eccube/Tests/Web/Admin/Product/CsvImportControllerTest.php @@ -942,6 +942,70 @@ public function dataTaxRuleProvider() ]; } + public function testImportProductWithProductClassInvisible() + { + $Product = $this->createProduct('商品規格が1つの商品を生成', 1); + /** @var ProductClass $ProductClass */ + $ProductClass = $Product->getProductClasses()->filter( + function (ProductClass $ProductClass) { + return $ProductClass->getClassCategory1() !== null; + })[0]; + /** @var Generator $faker */ + $faker = $this->getFaker(); + $csv[] = ['商品ID', '公開ステータス(ID)', '商品名', '販売種別(ID)', '在庫数無制限フラグ', '販売価格', '規格分類1(ID)', '規格分類2(ID)', '商品規格表示フラグ']; + $csv[] = [$Product->getId(), + 1, '商品名'.$faker->word.'商品名', 1, 1, $faker->randomNumber(5), + $ProductClass->getClassCategory1()->getId(), + $ProductClass->getClassCategory2() ? $ProductClass->getClassCategory2()->getId() : null, + '0' // 商品規格非表示 + ]; + $this->filepath = $this->createCsvFromArray($csv); + $crawler = $this->scenario(); + + $this->assertMatchesRegularExpression('/CSVファイルをアップロードしました/u', $crawler->filter('div.alert-success')->text()); + + /** @var Product $Product */ + $Product = $this->productRepo->find($Product->getId()); + + foreach ($Product->getProductClasses() as $ProductClass) { + if ($ProductClass->getClassCategory1() !== null) { + $this->assertFalse($ProductClass->isVisible()); + } + } + } + + public function testImportProductWithProductClassVisible() + { + $Product = $this->createProduct('商品規格が1つの商品を生成', 1); + /** @var ProductClass $ProductClass */ + $ProductClass = $Product->getProductClasses()->filter( + function (ProductClass $ProductClass) { + return $ProductClass->getClassCategory1() !== null; + })[0]; + /** @var Generator $faker */ + $faker = $this->getFaker(); + $csv[] = ['商品ID', '公開ステータス(ID)', '商品名', '販売種別(ID)', '在庫数無制限フラグ', '販売価格', '規格分類1(ID)', '規格分類2(ID)', '商品規格表示フラグ']; + $csv[] = [$Product->getId(), + 1, '商品名'.$faker->word.'商品名', 1, 1, $faker->randomNumber(5), + $ProductClass->getClassCategory1()->getId(), + $ProductClass->getClassCategory2() ? $ProductClass->getClassCategory2()->getId() : null, + '1' // 商品規格表示 + ]; + $this->filepath = $this->createCsvFromArray($csv); + $crawler = $this->scenario(); + + $this->assertMatchesRegularExpression('/CSVファイルをアップロードしました/u', $crawler->filter('div.alert-success')->text()); + + /** @var Product $Product */ + $Product = $this->productRepo->find($Product->getId()); + + foreach ($Product->getProductClasses() as $ProductClass) { + if ($ProductClass->getClassCategory1() !== null) { + $this->assertTrue($ProductClass->isVisible()); + } + } + } + /** * 商品を削除する際に、他の商品画像が参照しているファイルは削除せず、それ以外は削除することをテスト */ diff --git a/tests/Eccube/Tests/Web/Admin/Product/ProductClassControllerTest.php b/tests/Eccube/Tests/Web/Admin/Product/ProductClassControllerTest.php index 898dd732cd3..5525ef9d361 100644 --- a/tests/Eccube/Tests/Web/Admin/Product/ProductClassControllerTest.php +++ b/tests/Eccube/Tests/Web/Admin/Product/ProductClassControllerTest.php @@ -13,8 +13,10 @@ namespace Eccube\Tests\Web\Admin\Product; +use Eccube\Common\Constant; use Eccube\Entity\BaseInfo; use Eccube\Entity\Master\RoundingType; +use Eccube\Entity\ProductClass; use Eccube\Entity\TaxRule; use Eccube\Repository\ClassCategoryRepository; use Eccube\Repository\ProductRepository; @@ -653,4 +655,47 @@ public function testProductClassSortByRank() $this->actual = $classCategories[7]; $this->assertStringContainsString($this->expected, $this->actual); } + + /** + * 商品規格の初期化時は物理削除する. + * @see https://github.com/EC-CUBE/ec-cube/pull/5853 + */ + public function testCopyAndInitializeProductClasses() + { + $Product = $this->createProduct(null, 3); // 3個の規格を持つ商品を作成 + $AllProducts = $this->productRepository->findAll(); + $params = [ + 'id' => $Product->getId(), + Constant::TOKEN_NAME => 'dummy', + ]; + $this->client->request('POST', $this->generateUrl('admin_product_product_copy', $params)); + $this->assertTrue($this->client->getResponse()->isRedirect(), '商品コピーが正常に完了しました'); + + + preg_match('|product/product/([0-9]+)/edit|', $this->client->getResponse()->headers->get('Location') ?? '', $matches); + list(,$product_id) = $matches; + $ProductClasses = $this->entityManager->getRepository(ProductClass::class)->findBy( + [ + 'Product' => $product_id, + 'visible' => true + ] + ); + $this->assertCount(3, $ProductClasses, '規格の数が3個であること'); + + $crawler = $this->client->request('GET', $this->generateUrl('admin_product_product_class', ['id' => $product_id])); + + $form = $crawler->selectButton('規格を初期化')->form(); + $this->client->submit($form); + + $crawler = $this->client->followRedirect(); + $this->assertStringContainsString('商品規格を初期化しました', $crawler->filter('.alert-success')->text()); + + $ProductClasses = $this->entityManager->getRepository(ProductClass::class)->findBy( + [ + 'Product' => $product_id + ] + ); + + $this->assertCount(1, $ProductClasses, '規格の数が1個であること'); + } } diff --git a/tests/Eccube/Tests/Web/Admin/Product/ProductControllerTest.php b/tests/Eccube/Tests/Web/Admin/Product/ProductControllerTest.php index 4cb5422e771..5998b2329c5 100644 --- a/tests/Eccube/Tests/Web/Admin/Product/ProductControllerTest.php +++ b/tests/Eccube/Tests/Web/Admin/Product/ProductControllerTest.php @@ -954,6 +954,120 @@ public function testLoadProductClass() $this->assertSame(Response::HTTP_OK, $this->client->getResponse()->getStatusCode()); } + /** + * アップロード画像が save_image にコピーされているか確認する. + */ + public function testEditWithImage() + { + $path = __DIR__.'/../../../../../../html/upload'; + + $fs = new Filesystem(); + // アップロード画像が存在する場合は削除しておく + $fs->remove($path.'/temp_image/new_image.png'); + $fs->remove($path.'/save_image/new_image.png'); + + $fs->copy( + $path.'/save_image/sand-1.png', + $path.'/temp_image/new_image.png' + ); + + $Product = $this->createProduct(null, 0); + $formData = $this->createFormData(); + $formData['add_images'][] = 'new_image.png'; + + $this->client->request( + 'POST', + $this->generateUrl('admin_product_product_edit', ['id' => $Product->getId()]), + ['admin_product' => $formData] + ); + + $rUrl = $this->generateUrl('admin_product_product_edit', ['id' => $Product->getId()]); + $this->assertTrue($this->client->getResponse()->isRedirect($rUrl)); + + $this->assertFileExists($path.'/save_image/new_image.png', 'temp_image の画像が save_imageにコピーされている'); + $fs->remove($path.'/temp_image/new_image.png'); + $fs->remove($path.'/save_image/new_image.png'); + } + + /** + * アップロード画像に相対パスが指定された場合は save_image にコピーされない. + */ + public function testEditWithImageFailure() + { + $path = __DIR__.'/../../../../../../html/upload'; + + $fs = new Filesystem(); + // アップロード画像が存在する場合は削除しておく + $fs->remove($path.'/temp_image/new_image.png'); + $fs->remove($path.'/save_image/new_image.png'); + + $fs->copy( + $path.'/save_image/sand-1.png', + $path.'/temp_image/new_image.png' + ); + + $Product = $this->createProduct(null, 0); + $formData = $this->createFormData(); + $formData['add_images'][] = '../temp_image/new_image.png'; + + $crawler = $this->client->request( + 'POST', + $this->generateUrl('admin_product_product_edit', ['id' => $Product->getId()]), + ['admin_product' => $formData] + ); + + $this->assertStringContainsString('画像のパスが不正です。', $crawler->html()); + + $this->assertFileDoesNotExist($path.'/save_image/new_image.png', 'temp_image の画像が save_imageにコピーされない'); + $fs->remove($path.'/temp_image/new_image.png'); + $fs->remove($path.'/save_image/new_image.png'); + } + + public function testImageLoad() + { + $this->client->request( + 'GET', + $this->generateUrl('admin_product_image_load', ['source' => 'sand-1.png']), + [], + [], + [ + 'HTTP_X-Requested-With' => 'XMLHttpRequest', + ] + ); + + $this->assertSame(Response::HTTP_OK, $this->client->getResponse()->getStatusCode()); + } + + public function testImageLoadWithFailure() + { + $this->client->request( + 'GET', + $this->generateUrl('admin_product_image_load', ['source' => '../save_image/sand-1.png']), + [], + [], + [ + 'HTTP_X-Requested-With' => 'XMLHttpRequest', + ] + ); + + $this->assertSame(Response::HTTP_NOT_FOUND, $this->client->getResponse()->getStatusCode()); + } + + public function testImageLoadWithNotfound() + { + $this->client->request( + 'GET', + $this->generateUrl('admin_product_image_load', ['source' => 'xxxxx.png']), + [], + [], + [ + 'HTTP_X-Requested-With' => 'XMLHttpRequest', + ] + ); + + $this->assertSame(Response::HTTP_NOT_FOUND, $this->client->getResponse()->getStatusCode()); + } + /** * 個別税率編集時のテストデータ * 更新前の税率 / POST値 / 期待値の配列を返す @@ -1108,4 +1222,62 @@ public function test絵文字() $message = $crawler->filter('.ec-searchnavRole__counter > span')->text(); $this->assertSame('1件', $message); } + + /** + * フリーエリア/商品説明/商品説明(一覧)で + * 危険なXSS htmlインジェクションが削除されたことを確認するテスト + * 下記のものをチェックします。 + * ・ ID属性の追加 + * ・ + safe html +
    "; + + $this->client->request( + 'POST', + $this->generateUrl('admin_product_product_edit', ['id' => $Product->getId()]), + ['admin_product' => $formData] + ); + + $crawler = new Crawler($Product->$methodName()); + + //
    タグから危険なid属性が削除されていることを確認する。 + // Find that dangerous id attributes are removed from
    tags. + $target = $crawler->filter('#dangerous-id'); + $this->assertEquals(0, $target->count()); + + // 安全なclass属性が出力されているかどうかを確認する。 + // Find if classes (which are safe) have been outputted + $target = $crawler->filter('.safe_to_use_class'); + $this->assertEquals(1, $target->count()); + + // 安全なHTMLが存在するかどうかを確認する + // Find if the safe HTML exists + $this->assertStringContainsString('

    商品説明文テスト

    ', $target->outerHtml()); + $this->assertStringContainsString('safe html', $target->outerHtml()); + + // 安全でないスクリプトが存在しないかどうかを確認する + // Find if the unsafe script does not exist + $this->assertStringNotContainsString("", $target->outerHtml()); + } + + public function purifyTarget(): array + { + return [ + ['description_list', 'getDescriptionList'], + ['description_detail', 'getDescriptionDetail'], + ['free_area', 'getFreeArea'], + ]; + } } diff --git a/tests/Eccube/Tests/Web/Admin/Setting/Shop/PaymentControllerTest.php b/tests/Eccube/Tests/Web/Admin/Setting/Shop/PaymentControllerTest.php index 239c99be5ec..5d513d45814 100644 --- a/tests/Eccube/Tests/Web/Admin/Setting/Shop/PaymentControllerTest.php +++ b/tests/Eccube/Tests/Web/Admin/Setting/Shop/PaymentControllerTest.php @@ -157,6 +157,80 @@ public function testDeleteFailNotFound() $this->assertSame(404, $this->client->getResponse()->getStatusCode()); } + /** + * アップロード画像が save_image にコピーされているか確認する. + */ + public function testEditWithImage() + { + $path = __DIR__.'/../../../../../../../html/upload'; + + $fs = new Filesystem(); + // アップロード画像が存在する場合は削除しておく + $fs->remove($path.'/temp_image/new_image.png'); + $fs->remove($path.'/save_image/new_image.png'); + + $fs->copy( + $path.'/save_image/sand-1.png', + $path.'/temp_image/new_image.png' + ); + + $formData = $this->createFormData(); + $formData['payment_image'] = 'new_image.png'; + $Payment = $this->paymentRepository->find(1); + + $crawler = $this->client->request('POST', + $this->generateUrl('admin_setting_shop_payment_edit', ['id' => $Payment->getId()]), + [ + 'payment_register' => $formData, + ] + ); + + $this->expected = true; + $this->actual = $this->client->getResponse()->isRedirection(); + $this->verify(); + + $this->assertFileExists($path.'/save_image/new_image.png', 'temp_image の画像が save_imageにコピーされている'); + $fs->remove($path.'/temp_image/new_image.png'); + $fs->remove($path.'/save_image/new_image.png'); + } + + /** + * アップロード画像に相対パスが指定された場合は save_image にコピーされない. + */ + public function testEditWithImageFailure() + { + $path = __DIR__.'/../../../../../../../html/upload'; + + $fs = new Filesystem(); + // アップロード画像が存在する場合は削除しておく + $fs->remove($path.'/temp_image/new_image.png'); + $fs->remove($path.'/save_image/new_image.png'); + + $fs->copy( + $path.'/save_image/sand-1.png', + $path.'/temp_image/new_image.png' + ); + + $formData = $this->createFormData(); + $formData['payment_image'] = '../temp_image/new_image.png'; + $Payment = $this->paymentRepository->find(1); + + $crawler = $this->client->request('POST', + $this->generateUrl('admin_setting_shop_payment_edit', ['id' => $Payment->getId()]), + [ + 'payment_register' => $formData, + ] + ); + + $this->expected = true; + $this->actual = $this->client->getResponse()->isRedirection(); + $this->verify(); + + $this->assertFileNotExists($path.'/save_image/new_image.png', 'temp_image の画像が save_imageにコピーされない'); + $fs->remove($path.'/temp_image/new_image.png'); + $fs->remove($path.'/save_image/new_image.png'); + } + public function testMoveSortNo() { /** @var Payment[] $Payments */ diff --git a/tests/Eccube/Tests/Web/Admin/Setting/System/SecurityControllerTest.php b/tests/Eccube/Tests/Web/Admin/Setting/System/SecurityControllerTest.php index 840be541705..46da7152b1c 100644 --- a/tests/Eccube/Tests/Web/Admin/Setting/System/SecurityControllerTest.php +++ b/tests/Eccube/Tests/Web/Admin/Setting/System/SecurityControllerTest.php @@ -89,6 +89,8 @@ public function testSubmitEmpty() $formData['admin_route_dir'] = null; $formData['admin_allow_hosts'] = null; $formData['admin_deny_hosts'] = null; + $formData['front_allow_hosts'] = null; + $formData['front_deny_hosts'] = null; $formData['force_ssl'] = null; $this->client->request( @@ -115,8 +117,10 @@ public function createFormData() $formData = [ '_token' => 'dummy', 'admin_route_dir' => 'admintest', - 'admin_allow_hosts' => '127.0.0.1', - 'admin_deny_hosts' => '127.0.0.1', + 'admin_allow_hosts' => '127.0.0.1/32', + 'admin_deny_hosts' => '127.0.0.1/32', + 'front_allow_hosts' => '127.0.0.1/32', + 'front_deny_hosts' => '127.0.0.1/32', 'trusted_hosts' => '^127\.0\.0\.1$,^localhost$', ]; diff --git a/tests/Eccube/Tests/Web/ProductControllerTest.php b/tests/Eccube/Tests/Web/ProductControllerTest.php index cc7c85971a7..00e38e64a95 100644 --- a/tests/Eccube/Tests/Web/ProductControllerTest.php +++ b/tests/Eccube/Tests/Web/ProductControllerTest.php @@ -372,143 +372,4 @@ public function testMetaTagsInOutOfStockDetailPage() $this->assertEquals('noindex', $crawler->filter('meta[name="robots"]')->attr('content')); } - - /** - * 商品一覧画面で - * 危険なXSS htmlインジェクションが削除されたことを確認するテスト - * 下記のものをチェックします。 - * ・ ID属性の追加 - * ・ - safe html -
    "); - $this->entityManager->flush(); - - // 1つの新着情報を保存した後にホームページにアクセスする。 - // Request Homepage after saving a single news item - $crawler = $this->client->request('GET', $this->generateUrl('product_list', [], UrlGeneratorInterface::ABSOLUTE_URL)); - $this->assertEquals(200, $this->client->getResponse()->getStatusCode()); - - //
    タグから危険なid属性が削除されていることを確認する。 - // Find that dangerous id attributes are removed from
    tags. - $testNewsArea_notFoundTest = $crawler->filter('#dangerous-id'); - $this->assertEquals(0, $testNewsArea_notFoundTest->count()); - - // 安全なclass属性が出力されているかどうかを確認する。 - // Find if classes (which are safe) have been outputted - $testNewsArea = $crawler->filter('.safe_to_use_class'); - $this->assertEquals(1, $testNewsArea->count()); - - // 安全なHTMLが存在するかどうかを確認する - // Find if the safe HTML exists - $this->assertStringContainsString('

    商品説明分テスト#1

    ', $testNewsArea->outerHtml()); - $this->assertStringContainsString('safe html', $testNewsArea->outerHtml()); - - // 安全でないスクリプトが存在しないかどうかを確認する - // Find if the unsafe script does not exist - $this->assertStringNotContainsString("", $testNewsArea->outerHtml()); - } - - - - /** - * 商品詳細画面で - * 危険なXSS htmlインジェクションが削除されたことを確認するテスト - * 下記のものをチェックします。 - * ・ ID属性の追加 - * ・ - safe html -
    "); - $this->entityManager->flush(); - - // 1つの新着情報を保存した後にホームページにアクセスする。 - // Request Homepage after saving a single news item - $crawler = $this->client->request('GET', $this->generateUrl('product_detail', ['id' => $Product->getId()], UrlGeneratorInterface::ABSOLUTE_URL)); - $this->assertEquals(200, $this->client->getResponse()->getStatusCode()); - - //
    タグから危険なid属性が削除されていることを確認する。 - // Find that dangerous id attributes are removed from
    tags. - $testNewsArea_notFoundTest = $crawler->filter('#dangerous-id'); - $this->assertEquals(0, $testNewsArea_notFoundTest->count()); - - // 安全なclass属性が出力されているかどうかを確認する。 - // Find if classes (which are safe) have been outputted - $testNewsArea = $crawler->filter('.safe_to_use_class'); - $this->assertEquals(1, $testNewsArea->count()); - - // 安全なHTMLが存在するかどうかを確認する - // Find if the safe HTML exists - $this->assertStringContainsString('

    商品説明分テスト#1

    ', $testNewsArea->outerHtml()); - $this->assertStringContainsString('safe html', $testNewsArea->outerHtml()); - - // 安全でないスクリプトが存在しないかどうかを確認する - // Find if the unsafe script does not exist - $this->assertStringNotContainsString("", $testNewsArea->outerHtml()); - } - - /** - * 商品詳細画面(フリーエリア)で - * 危険なXSS htmlインジェクションが削除されたことを確認するテスト - * 下記のものをチェックします。 - * ・ ID属性の追加 - * ・ - safe html -
    "); - $this->entityManager->flush(); - - // 1つの新着情報を保存した後にホームページにアクセスする。 - // Request Homepage after saving a single news item - $crawler = $this->client->request('GET', $this->generateUrl('product_detail', ['id' => $Product->getId()], UrlGeneratorInterface::ABSOLUTE_URL)); - $this->assertEquals(200, $this->client->getResponse()->getStatusCode()); - - //
    タグから危険なid属性が削除されていることを確認する。 - // Find that dangerous id attributes are removed from
    tags. - $testNewsArea_notFoundTest = $crawler->filter('#dangerous-id'); - $this->assertEquals(0, $testNewsArea_notFoundTest->count()); - - // 安全なclass属性が出力されているかどうかを確認する。 - // Find if classes (which are safe) have been outputted - $testNewsArea = $crawler->filter('.safe_to_use_class'); - $this->assertEquals(1, $testNewsArea->count()); - - // 安全なHTMLが存在するかどうかを確認する - // Find if the safe HTML exists - $this->assertStringContainsString('

    商品説明分テスト#1

    ', $testNewsArea->outerHtml()); - $this->assertStringContainsString('safe html', $testNewsArea->outerHtml()); - - // 安全でないスクリプトが存在しないかどうかを確認する - // Find if the unsafe script does not exist - $this->assertStringNotContainsString("", $testNewsArea->outerHtml()); - } } diff --git a/tests/Eccube/Tests/Web/TopControllerTest.php b/tests/Eccube/Tests/Web/TopControllerTest.php index fcd7ace2285..84aa235a315 100644 --- a/tests/Eccube/Tests/Web/TopControllerTest.php +++ b/tests/Eccube/Tests/Web/TopControllerTest.php @@ -33,64 +33,6 @@ public function testCheckFavicon() $this->assertEquals('/html/user_data/assets/img/common/favicon.ico', $node->attr('href')); } - /** - * 危険なXSS htmlインジェクションが削除されたことを確認するテスト - - * 下記のものをチェックします。 - * ・ ID属性の追加 - * ・ - safe html -
    " - ) - ->setUrl('http://example.com/') - ->setLinkMethod(false) - ->setVisible(true) - ->setCreator($Member); - $this->entityManager->persist($TestNews); - $this->entityManager->flush($TestNews); - - // 1つの新着情報を保存した後にホームページにアクセスする。 - // Request Homepage after saving a single news item - $crawler = $this->client->request('GET', $this->generateUrl('homepage')); - $this->assertEquals(200, $this->client->getResponse()->getStatusCode()); - - //
    タグから危険なid属性が削除されていることを確認する。 - // Find that dangerous id attributes are removed from
    tags. - $testNewsArea_notFoundTest = $crawler->filter('#test-news-id'); - $this->assertEquals(0, $testNewsArea_notFoundTest->count()); - - // 安全なclass属性が出力されているかどうかを確認する。 - // Find if classes (which are safe) have been outputted - $testNewsArea = $crawler->filter('.safe_to_use_class'); - $this->assertEquals(1, $testNewsArea->count()); - - // 安全なHTMLが存在するかどうかを確認する - // Find if the safe HTML exists - $this->assertStringContainsString('

    新着情報テスト#1

    ', $testNewsArea->outerHtml()); - $this->assertStringContainsString('safe html', $testNewsArea->outerHtml()); - - // 安全でないスクリプトが存在しないかどうかを確認する - // Find if the unsafe script does not exist - $this->assertStringNotContainsString("", $testNewsArea->outerHtml()); - } - /** * TOPページ metaタグのテスト */ diff --git a/tests/Fixtures/session/common.php b/tests/Fixtures/session/common.php index 9206967b5e0..87c0d38e84b 100644 --- a/tests/Fixtures/session/common.php +++ b/tests/Fixtures/session/common.php @@ -74,10 +74,12 @@ class MockSessionHandler extends \SessionHandler { private $data; + private $sessionId; - public function __construct($data = null) + public function __construct($data = '', $sessionId = null) { $this->data = $data; + $this->sessionId = $sessionId; } public function getData() @@ -173,7 +175,13 @@ public function gc($maxLifetime) protected function doRead($sessionId) { + if (isset($this->sessionId) && $sessionId !== $this->sessionId) { + echo __FUNCTION__ . ": invalid sessionId\n"; + + return ''; + } echo __FUNCTION__.': ', $this->data, "\n"; + $this->sessionId = $sessionId; return $this->data; } @@ -181,6 +189,7 @@ protected function doRead($sessionId) protected function doWrite($sessionId, $data) { echo __FUNCTION__.': ', $data, "\n"; + $this->sessionId = $sessionId; return true; } @@ -188,6 +197,7 @@ protected function doWrite($sessionId, $data) protected function doDestroy($sessionId) { echo __FUNCTION__, "\n"; + $this->sessionId = $sessionId; return true; } diff --git a/tests/Fixtures/session/regenerate.expected b/tests/Fixtures/session/regenerate.expected index bd166b81ef3..c777a58e486 100644 --- a/tests/Fixtures/session/regenerate.expected +++ b/tests/Fixtures/session/regenerate.expected @@ -9,9 +9,8 @@ close open validateId read -doRead: abc|i:123; +doRead: invalid sessionId read -doRead: abc|i:123; write doWrite: abc|i:123; diff --git a/tests/Fixtures/session/regenerate.samesite.expected b/tests/Fixtures/session/regenerate.samesite.expected index b004cc2d826..ead311e3c49 100644 --- a/tests/Fixtures/session/regenerate.samesite.expected +++ b/tests/Fixtures/session/regenerate.samesite.expected @@ -9,9 +9,8 @@ close open validateId read -doRead: abc|i:123; +doRead: invalid sessionId read -doRead: abc|i:123; write doWrite: abc|i:123; diff --git a/tests/Fixtures/session/regenerate.secure.expected b/tests/Fixtures/session/regenerate.secure.expected index d825f44f7cb..95c96f0cccd 100644 --- a/tests/Fixtures/session/regenerate.secure.expected +++ b/tests/Fixtures/session/regenerate.secure.expected @@ -9,9 +9,8 @@ close open validateId read -doRead: abc|i:123; +doRead: invalid sessionId read -doRead: abc|i:123; write doWrite: abc|i:123; diff --git a/zap/selenium/ci/TypeScript/yarn.lock b/zap/selenium/ci/TypeScript/yarn.lock index 00423bca3f9..8a616da67c5 100644 --- a/zap/selenium/ci/TypeScript/yarn.lock +++ b/zap/selenium/ci/TypeScript/yarn.lock @@ -886,7 +886,7 @@ commander@^8.2.0: concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== convert-source-map@^1.7.0: version "1.8.0" @@ -1573,11 +1573,9 @@ json-stringify-safe@~5.0.1: integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= json5@^2.1.2: - version "2.2.0" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" - integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== - dependencies: - minimist "^1.2.5" + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== jsprim@^1.2.2: version "1.4.2" @@ -1645,17 +1643,12 @@ mime@^2.4.6: integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== minimatch@^3.0.3, minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" -minimist@^1.2.5: - version "1.2.6" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" - integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== - ms@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" @@ -1863,9 +1856,9 @@ punycode@^2.1.0, punycode@^2.1.1: integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== qs@~6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== + version "6.5.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" + integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== queue-microtask@^1.2.2: version "1.2.3"