From bba24315cc6e273aacb5cbbd667dfe5ee657f53e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 6 Mar 2024 14:33:07 +0000 Subject: [PATCH] Automatic compilation --- .eslintignore | 3 - .eslintrc | 46 - .github/pull_request_template.md | 11 - .github/workflows/publish-action.yml | 22 - .github/workflows/publish-cli.yml | 41 - .github/workflows/pull_request.yml | 122 - .github/workflows/report.yml | 36 - .github/workflows/update.yml | 34 - .gitignore | 13 - .husky/pre-commit | 4 - .husky/pre-push | 4 - CHANGELOG.md | 186 - README.md | 1060 -- dist/index.js | 22 +- docs/archive-artifacts-github.png | Bin 11987 -> 0 bytes docs/project-hierarchy.png | Bin 11366 -> 0 bytes jest.config.ts | 16 - package-lock.json | 13345 ---------------- package.json | 82 - src/bin/entry-point/cli.ts | 5 - src/bin/entry-point/github-action.ts | 3 - src/bin/runners/cli-runner.ts | 77 - src/bin/runners/github-action-runner.ts | 57 - src/bin/runners/runner.ts | 127 - src/domain/base-git-api-client.ts | 63 - src/domain/checkout.ts | 26 - src/domain/cli.ts | 12 - src/domain/configuration.ts | 63 - src/domain/constants.ts | 8 - src/domain/entry-point.ts | 4 - src/domain/errors.ts | 2 - src/domain/execute-command-result.ts | 14 - src/domain/execute-node-result.ts | 7 - src/domain/execution-phase.ts | 5 - src/domain/flow.ts | 25 - src/domain/github-api-client.ts | 26 - src/domain/inputs.ts | 58 - src/domain/node-execution.ts | 12 - src/domain/node.ts | 8 - src/domain/resume.ts | 11 - src/domain/serializable.ts | 4 - src/domain/treatment-options.ts | 4 - .../arguments/action/action-arguments.ts | 118 - .../cli/build/abstract-pr-command.ts | 24 - .../arguments/cli/build/branch-command.ts | 22 - .../cli/build/build-subcommand-factory.ts | 83 - .../arguments/cli/build/cross-pr-command.ts | 14 - src/service/arguments/cli/build/fd-command.ts | 14 - src/service/arguments/cli/build/resume.ts | 44 - .../arguments/cli/build/single-pr-command.ts | 14 - src/service/arguments/cli/cli-arguments.ts | 54 - .../arguments/cli/command-constructor.ts | 9 - src/service/arguments/cli/tools/plan.ts | 28 - .../arguments/cli/tools/project-list.ts | 22 - .../cli/tools/tool-subcommand-factory.ts | 55 - src/service/artifacts/artifact-service.ts | 66 - src/service/artifacts/upload-service.ts | 168 - src/service/checkout/checkout-service.ts | 310 - .../command/execute-command-service.ts | 199 - src/service/command/executor/bash-executor.ts | 10 - .../executor/command-executor-delegator.ts | 41 - .../command/executor/export-executor.ts | 61 - .../command/treatment/command-builder.ts | 22 - .../treatment/command-treatment-delegator.ts | 23 - .../command/treatment/command-treatment.ts | 5 - .../environment-command-treatment.ts | 21 - .../treatment/maven-command-treatment.ts | 17 - .../treatment/regex-command-treatment.ts | 65 - src/service/config/action-configuration.ts | 85 - src/service/config/base-configuration.ts | 147 - src/service/config/cli-configuration.ts | 236 - src/service/config/configuration-service.ts | 326 - src/service/config/definition-file-reader.ts | 212 - src/service/flow/flow-service.ts | 236 - src/service/git/base-git-api-client.ts | 41 - src/service/git/gerrit-api-client.ts | 151 - src/service/git/git-api-client.ts | 51 - src/service/git/git-api-service.ts | 230 - src/service/git/git-cli.ts | 170 - src/service/git/git-token-service.ts | 57 - src/service/git/github-api-client.ts | 268 - src/service/git/gitlab-api-client.ts | 159 - src/service/inputs/input-service.ts | 24 - .../job-summary/job-summary-service.ts | 149 - src/service/logger/base-logger-service.ts | 47 - src/service/logger/cli-logger-service.ts | 16 - .../logger/github-action-logger-service.ts | 17 - src/service/logger/logger-service.ts | 29 - src/service/logger/logger.ts | 11 - src/service/pre-post/post.ts | 37 - src/service/pre-post/pre-post.ts | 30 - src/service/pre-post/pre.ts | 17 - src/service/tools/abstract-tools.ts | 16 - src/service/tools/plan.ts | 59 - src/service/tools/project-list.ts | 7 - src/service/tools/resume.ts | 182 - src/service/tools/tools-service.ts | 28 - src/utils/date.ts | 14 - src/utils/log.ts | 7 - test/e2e-regression/cli/cli.test.ts | 84 - test/e2e-regression/cli/test.yaml | 36 - test/e2e-regression/cli/tests.json | 55 - .../github-action/action.test.ts | 140 - test/e2e-regression/github-action/test.yaml | 72 - test/e2e-regression/github-action/tests.json | 40 - test/e2e/branch/branch.test.ts | 374 - test/e2e/branch/branch.yaml | 17 - test/e2e/cross-pr/cross-pr.test.ts | 496 - test/e2e/cross-pr/cross-pr.yaml | 16 - .../full-downstream/full-downstream.test.ts | 561 - test/e2e/full-downstream/full-downstream.yaml | 16 - test/e2e/helper/logger.ts | 4 - test/e2e/parallel/parallel-execution.test.ts | 164 - test/e2e/parallel/parallel-execution.yaml | 15 - test/e2e/resources/definition-file.yaml | 45 - test/e2e/resources/dependencies.yaml | 36 - test/e2e/single-pr/single-pr.test.ts | 490 - test/e2e/single-pr/single-pr.yaml | 16 - test/unitary/bin/cli-runner.test.ts | 189 - test/unitary/bin/github-action-runner.test.ts | 194 - test/unitary/bin/runner.test.ts | 162 - .../arguments/action/action-argument.test.ts | 111 - .../arguments/cli/build-branch.test.ts | 130 - .../arguments/cli/build-cross_pr.test.ts | 115 - .../service/arguments/cli/build-fd.test.ts | 117 - .../arguments/cli/build-single.test.ts | 115 - .../arguments/cli/tool-project_list.test.ts | 74 - .../artifacts/artifact-service.test.ts | 68 - .../service/artifacts/upload-service.test.ts | 266 - .../service/checkout/checkout-service.test.ts | 795 - test/unitary/service/checkout/helpers.ts | 79 - .../command/execute-command-service.test.ts | 395 - .../command/executor/bash-executor.test.ts | 34 - .../command-executor-delegator.test.ts | 216 - .../command/executor/export-executor.test.ts | 118 - .../command/treatment/command-builder.test.ts | 36 - .../command-treatment-delegator.test.ts | 32 - .../environment-command-treatment.test.ts | 33 - .../treatment/maven-command-treatment.test.ts | 18 - .../treatment/regex-command-treatment.test.ts | 35 - .../config/action-configuration.test.ts | 245 - .../service/config/cli-configuration.test.ts | 478 - .../config/configuration-service.test.ts | 514 - .../config/definition-file-reader.test.ts | 249 - test/unitary/service/config/projectNodes.json | 127 - .../unitary/service/flow/flow-service.test.ts | 176 - .../unitary/service/git/gerrit-client.test.ts | 171 - .../service/git/git-api-client.test.ts | 43 - test/unitary/service/git/git-api.test.ts | 206 - test/unitary/service/git/git-cli.test.ts | 261 - .../service/git/git-token-service.test.ts | 42 - .../unitary/service/git/github-client.test.ts | 353 - .../unitary/service/git/gitlab-client.test.ts | 239 - .../service/job-summary/expected-summary | 53 - .../job-summary/job-summary-service.test.ts | 236 - .../service/logger/cli-logger-service.test.ts | 106 - .../github-action-logger-service.test.ts | 112 - .../logger/logger-service-factory.test.ts | 48 - test/unitary/service/logger/logger.test.ts | 51 - test/unitary/service/pre-post/post.test.ts | 156 - test/unitary/service/pre-post/pre.test.ts | 50 - test/unitary/service/tools/plan.test.ts | 69 - .../service/tools/project-list.test.ts | 21 - test/unitary/service/tools/resume.test.ts | 699 - .../service/tools/tools-service.test.ts | 38 - test/unitary/util/date.test.ts | 28 - test/unitary/util/log.test.ts | 20 - tsconfig.json | 115 - 168 files changed, 11 insertions(+), 31140 deletions(-) delete mode 100644 .eslintignore delete mode 100644 .eslintrc delete mode 100644 .github/pull_request_template.md delete mode 100644 .github/workflows/publish-action.yml delete mode 100644 .github/workflows/publish-cli.yml delete mode 100644 .github/workflows/pull_request.yml delete mode 100644 .github/workflows/report.yml delete mode 100644 .github/workflows/update.yml delete mode 100644 .gitignore delete mode 100755 .husky/pre-commit delete mode 100755 .husky/pre-push delete mode 100644 CHANGELOG.md delete mode 100644 README.md delete mode 100644 docs/archive-artifacts-github.png delete mode 100644 docs/project-hierarchy.png delete mode 100644 jest.config.ts delete mode 100644 package-lock.json delete mode 100644 package.json delete mode 100644 src/bin/entry-point/cli.ts delete mode 100644 src/bin/entry-point/github-action.ts delete mode 100644 src/bin/runners/cli-runner.ts delete mode 100644 src/bin/runners/github-action-runner.ts delete mode 100644 src/bin/runners/runner.ts delete mode 100644 src/domain/base-git-api-client.ts delete mode 100644 src/domain/checkout.ts delete mode 100644 src/domain/cli.ts delete mode 100644 src/domain/configuration.ts delete mode 100644 src/domain/constants.ts delete mode 100644 src/domain/entry-point.ts delete mode 100644 src/domain/errors.ts delete mode 100644 src/domain/execute-command-result.ts delete mode 100644 src/domain/execute-node-result.ts delete mode 100644 src/domain/execution-phase.ts delete mode 100644 src/domain/flow.ts delete mode 100644 src/domain/github-api-client.ts delete mode 100644 src/domain/inputs.ts delete mode 100644 src/domain/node-execution.ts delete mode 100644 src/domain/node.ts delete mode 100644 src/domain/resume.ts delete mode 100644 src/domain/serializable.ts delete mode 100644 src/domain/treatment-options.ts delete mode 100644 src/service/arguments/action/action-arguments.ts delete mode 100644 src/service/arguments/cli/build/abstract-pr-command.ts delete mode 100644 src/service/arguments/cli/build/branch-command.ts delete mode 100644 src/service/arguments/cli/build/build-subcommand-factory.ts delete mode 100644 src/service/arguments/cli/build/cross-pr-command.ts delete mode 100644 src/service/arguments/cli/build/fd-command.ts delete mode 100644 src/service/arguments/cli/build/resume.ts delete mode 100644 src/service/arguments/cli/build/single-pr-command.ts delete mode 100644 src/service/arguments/cli/cli-arguments.ts delete mode 100644 src/service/arguments/cli/command-constructor.ts delete mode 100644 src/service/arguments/cli/tools/plan.ts delete mode 100644 src/service/arguments/cli/tools/project-list.ts delete mode 100644 src/service/arguments/cli/tools/tool-subcommand-factory.ts delete mode 100644 src/service/artifacts/artifact-service.ts delete mode 100644 src/service/artifacts/upload-service.ts delete mode 100644 src/service/checkout/checkout-service.ts delete mode 100644 src/service/command/execute-command-service.ts delete mode 100644 src/service/command/executor/bash-executor.ts delete mode 100644 src/service/command/executor/command-executor-delegator.ts delete mode 100644 src/service/command/executor/export-executor.ts delete mode 100644 src/service/command/treatment/command-builder.ts delete mode 100644 src/service/command/treatment/command-treatment-delegator.ts delete mode 100644 src/service/command/treatment/command-treatment.ts delete mode 100644 src/service/command/treatment/environment-command-treatment.ts delete mode 100644 src/service/command/treatment/maven-command-treatment.ts delete mode 100644 src/service/command/treatment/regex-command-treatment.ts delete mode 100644 src/service/config/action-configuration.ts delete mode 100644 src/service/config/base-configuration.ts delete mode 100644 src/service/config/cli-configuration.ts delete mode 100644 src/service/config/configuration-service.ts delete mode 100644 src/service/config/definition-file-reader.ts delete mode 100644 src/service/flow/flow-service.ts delete mode 100644 src/service/git/base-git-api-client.ts delete mode 100644 src/service/git/gerrit-api-client.ts delete mode 100644 src/service/git/git-api-client.ts delete mode 100644 src/service/git/git-api-service.ts delete mode 100644 src/service/git/git-cli.ts delete mode 100644 src/service/git/git-token-service.ts delete mode 100644 src/service/git/github-api-client.ts delete mode 100644 src/service/git/gitlab-api-client.ts delete mode 100644 src/service/inputs/input-service.ts delete mode 100644 src/service/job-summary/job-summary-service.ts delete mode 100644 src/service/logger/base-logger-service.ts delete mode 100644 src/service/logger/cli-logger-service.ts delete mode 100644 src/service/logger/github-action-logger-service.ts delete mode 100644 src/service/logger/logger-service.ts delete mode 100644 src/service/logger/logger.ts delete mode 100644 src/service/pre-post/post.ts delete mode 100644 src/service/pre-post/pre-post.ts delete mode 100644 src/service/pre-post/pre.ts delete mode 100644 src/service/tools/abstract-tools.ts delete mode 100644 src/service/tools/plan.ts delete mode 100644 src/service/tools/project-list.ts delete mode 100644 src/service/tools/resume.ts delete mode 100644 src/service/tools/tools-service.ts delete mode 100644 src/utils/date.ts delete mode 100644 src/utils/log.ts delete mode 100644 test/e2e-regression/cli/cli.test.ts delete mode 100644 test/e2e-regression/cli/test.yaml delete mode 100644 test/e2e-regression/cli/tests.json delete mode 100644 test/e2e-regression/github-action/action.test.ts delete mode 100644 test/e2e-regression/github-action/test.yaml delete mode 100644 test/e2e-regression/github-action/tests.json delete mode 100644 test/e2e/branch/branch.test.ts delete mode 100644 test/e2e/branch/branch.yaml delete mode 100644 test/e2e/cross-pr/cross-pr.test.ts delete mode 100644 test/e2e/cross-pr/cross-pr.yaml delete mode 100644 test/e2e/full-downstream/full-downstream.test.ts delete mode 100644 test/e2e/full-downstream/full-downstream.yaml delete mode 100644 test/e2e/helper/logger.ts delete mode 100644 test/e2e/parallel/parallel-execution.test.ts delete mode 100644 test/e2e/parallel/parallel-execution.yaml delete mode 100644 test/e2e/resources/definition-file.yaml delete mode 100644 test/e2e/resources/dependencies.yaml delete mode 100644 test/e2e/single-pr/single-pr.test.ts delete mode 100644 test/e2e/single-pr/single-pr.yaml delete mode 100644 test/unitary/bin/cli-runner.test.ts delete mode 100644 test/unitary/bin/github-action-runner.test.ts delete mode 100644 test/unitary/bin/runner.test.ts delete mode 100644 test/unitary/service/arguments/action/action-argument.test.ts delete mode 100644 test/unitary/service/arguments/cli/build-branch.test.ts delete mode 100644 test/unitary/service/arguments/cli/build-cross_pr.test.ts delete mode 100644 test/unitary/service/arguments/cli/build-fd.test.ts delete mode 100644 test/unitary/service/arguments/cli/build-single.test.ts delete mode 100644 test/unitary/service/arguments/cli/tool-project_list.test.ts delete mode 100644 test/unitary/service/artifacts/artifact-service.test.ts delete mode 100644 test/unitary/service/artifacts/upload-service.test.ts delete mode 100644 test/unitary/service/checkout/checkout-service.test.ts delete mode 100644 test/unitary/service/checkout/helpers.ts delete mode 100644 test/unitary/service/command/execute-command-service.test.ts delete mode 100644 test/unitary/service/command/executor/bash-executor.test.ts delete mode 100644 test/unitary/service/command/executor/command-executor-delegator.test.ts delete mode 100644 test/unitary/service/command/executor/export-executor.test.ts delete mode 100644 test/unitary/service/command/treatment/command-builder.test.ts delete mode 100644 test/unitary/service/command/treatment/command-treatment-delegator.test.ts delete mode 100644 test/unitary/service/command/treatment/environment-command-treatment.test.ts delete mode 100644 test/unitary/service/command/treatment/maven-command-treatment.test.ts delete mode 100644 test/unitary/service/command/treatment/regex-command-treatment.test.ts delete mode 100644 test/unitary/service/config/action-configuration.test.ts delete mode 100644 test/unitary/service/config/cli-configuration.test.ts delete mode 100644 test/unitary/service/config/configuration-service.test.ts delete mode 100644 test/unitary/service/config/definition-file-reader.test.ts delete mode 100644 test/unitary/service/config/projectNodes.json delete mode 100644 test/unitary/service/flow/flow-service.test.ts delete mode 100644 test/unitary/service/git/gerrit-client.test.ts delete mode 100644 test/unitary/service/git/git-api-client.test.ts delete mode 100644 test/unitary/service/git/git-api.test.ts delete mode 100644 test/unitary/service/git/git-cli.test.ts delete mode 100644 test/unitary/service/git/git-token-service.test.ts delete mode 100644 test/unitary/service/git/github-client.test.ts delete mode 100644 test/unitary/service/git/gitlab-client.test.ts delete mode 100644 test/unitary/service/job-summary/expected-summary delete mode 100644 test/unitary/service/job-summary/job-summary-service.test.ts delete mode 100644 test/unitary/service/logger/cli-logger-service.test.ts delete mode 100644 test/unitary/service/logger/github-action-logger-service.test.ts delete mode 100644 test/unitary/service/logger/logger-service-factory.test.ts delete mode 100644 test/unitary/service/logger/logger.test.ts delete mode 100644 test/unitary/service/pre-post/post.test.ts delete mode 100644 test/unitary/service/pre-post/pre.test.ts delete mode 100644 test/unitary/service/tools/plan.test.ts delete mode 100644 test/unitary/service/tools/project-list.test.ts delete mode 100644 test/unitary/service/tools/resume.test.ts delete mode 100644 test/unitary/service/tools/tools-service.test.ts delete mode 100644 test/unitary/util/date.test.ts delete mode 100644 test/unitary/util/log.test.ts delete mode 100644 tsconfig.json diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index c60574ed..00000000 --- a/.eslintignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules/ -build/ -./jest.config.ts \ No newline at end of file diff --git a/.eslintrc b/.eslintrc deleted file mode 100644 index 8e3a467d..00000000 --- a/.eslintrc +++ /dev/null @@ -1,46 +0,0 @@ -{ - "root": true, - "parser": "@typescript-eslint/parser", - "plugins": [ - "@typescript-eslint" - ], - "extends": [ - "eslint:recommended", - "plugin:@typescript-eslint/eslint-recommended", - "plugin:@typescript-eslint/recommended" - ], - "rules": { - "quotes": [ - "error", - "double" - ], - "semi": [ - "error", - "always" - ], - "@typescript-eslint/no-explicit-any": [ - "error", - { - "fixToUnknown": true - } - ], - "curly": "error", - "no-empty": "error", - "no-console": "error", - "no-alert": "error", - "@typescript-eslint/no-non-null-assertion": "off", - "no-unused-vars": "off", - "@typescript-eslint/no-unused-vars": [ - "warn", - { - "varsIgnorePattern": "^_", - "argsIgnorePattern": "^_" - } - ], - "no-fallthrough": "off", - "arrow-parens": [ - "error", - "as-needed" - ] - } -} \ No newline at end of file diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md deleted file mode 100644 index 6ab85eef..00000000 --- a/.github/pull_request_template.md +++ /dev/null @@ -1,11 +0,0 @@ -**Thank you for submitting this pull request** - -fix _(please add the issue ID if it exists)_ - -**referenced Pull Requests**: _(please edit the URLs of referenced pullrequests if they exist)_ - -- paste the link(s) from GitHub here -- link 2 -- link 3 etc. - -> **_Note:_** Please, do not check `dist/index.js` changes. It is automatically generated. diff --git a/.github/workflows/publish-action.yml b/.github/workflows/publish-action.yml deleted file mode 100644 index 3244e77a..00000000 --- a/.github/workflows/publish-action.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: Publish Action - -on: - release: - types: [published, edited] - -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - with: - ref: ${{ github.event.release.tag_name }} - - uses: actions/setup-node@v3 - with: - node-version: 16 - registry-url: https://registry.npmjs.org/ - - run: npm ci - - run: npm run build:action - - uses: JasonEtco/build-and-tag-action@v2 - env: - GITHUB_TOKEN: ${{ github.token }} diff --git a/.github/workflows/publish-cli.yml b/.github/workflows/publish-cli.yml deleted file mode 100644 index 5f168f17..00000000 --- a/.github/workflows/publish-cli.yml +++ /dev/null @@ -1,41 +0,0 @@ -name: Publish CLI - -on: - push: - branches: - - main - paths: - - "package.json" - -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - - uses: actions/setup-node@v3 - with: - node-version: 16 - registry-url: https://registry.npmjs.org/ - - - name: check for version change - id: version-check - uses: EndBug/version-check@v2 - with: - file-url: https://unpkg.com/@kie/build-chain-action@latest/package.json - static-checking: localIsNew - - - run: npm install - if: steps.version-check.outputs.changed == 'true' - - - run: npm run build:cli - if: steps.version-check.outputs.changed == 'true' - - - run: npm publish --access public - if: steps.version-check.outputs.changed == 'true' - env: - NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} - - - run: echo "No change detected in package.json. Won't publish" - if: steps.version-check.outputs.changed == 'false' - diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml deleted file mode 100644 index 1414eaf5..00000000 --- a/.github/workflows/pull_request.yml +++ /dev/null @@ -1,122 +0,0 @@ -# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node -# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions - -name: Pull Request Checks - -on: - pull_request: - paths-ignore: - - 'LICENSE*' - - '.gitignore' - - '.eslintignore' - - '.eslintrc' - - '**.md' - - '.husky/**' - - 'docs/**' - -jobs: - unit: - strategy: - matrix: - node-version: [14.x, 16.x] - os: [ubuntu-latest] - fail-fast: false - runs-on: ${{ matrix.os }} - - steps: - - uses: actions/checkout@v3 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3 - with: - node-version: ${{ matrix.node-version }} - - run: npm ci - - run: npm run test:report - - e2e: - strategy: - matrix: - node-version: [14.x, 16.x] - os: [ubuntu-latest] - fail-fast: false - runs-on: ${{ matrix.os }} - - steps: - - uses: actions/checkout@v3 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3 - with: - node-version: ${{ matrix.node-version }} - - run: npm ci - - run: ACT_LOG=true npm run test:e2e - - name: Upload raw e2e output - if: ${{ always() }} - uses: actions/upload-artifact@v3 - with: - name: e2e-logs-${{ matrix.node-version }}.zip - path: '*.log' - retention-days: 5 - - e2e-regression-cli: - strategy: - matrix: - node-version: [14.x, 16.x] - os: [ubuntu-latest] - fail-fast: false - runs-on: ${{ matrix.os }} - - steps: - - uses: actions/checkout@v3 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3 - with: - node-version: ${{ matrix.node-version }} - - run: npm ci - - run: ACT_LOG=true npm run test:e2e-regression-cli - - name: Upload raw e2e regression output - if: ${{ always() }} - uses: actions/upload-artifact@v3 - with: - name: e2e-regression-cli-logs-${{ matrix.node-version }} - path: '*.log' - retention-days: 5 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - e2e-regression-action: - strategy: - matrix: - node-version: [14.x, 16.x] - os: [ubuntu-latest] - fail-fast: false - runs-on: ${{ matrix.os }} - - steps: - - uses: actions/checkout@v3 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3 - with: - node-version: ${{ matrix.node-version }} - - run: npm ci - - run: ACT_LOG=true npm run test:e2e-regression-action - - name: Upload raw e2e regression output - if: ${{ always() }} - uses: actions/upload-artifact@v3 - with: - name: e2e-regression-action-logs-${{ matrix.node-version }} - path: '*.log' - retention-days: 5 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - package-lock-check: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 - with: - node-version: 16 - - run: npm install - - name: Check if package-lock.json was updated - # Check that Git working tree is clean after running `npm install` - # The `git` command exits with 1 and fails the build if there are any uncommitted changes. - run: git diff HEAD --exit-code diff --git a/.github/workflows/report.yml b/.github/workflows/report.yml deleted file mode 100644 index 8a9a4dee..00000000 --- a/.github/workflows/report.yml +++ /dev/null @@ -1,36 +0,0 @@ -on: - push: - branches: - - main - - typescript/main - -name: coverage report - -jobs: - test-coverage: - name: Publish coverage report - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Setup sonarqube - uses: warchant/setup-sonar-scanner@v3 - - name: coverage report - uses: actions/setup-node@v1 - with: - # node 12 support is deprecated in sonar - node-version: 14 - - run: npm ci - - run: npm run test:report - - run: sonar-scanner - -Dsonar.organization=kiegroup - -Dsonar.projectKey=github-action-build-chain - -Dsonar.projectName="Build Chain" - -Dsonar.sources=$GITHUB_WORKSPACE - -Dsonar.host.url=${{ secrets.SONAR_URL }} - -Dsonar.login=${{ secrets.SONAR_TOKEN }} - -Dsonar.tests=test - -Dsonar.testExecutionReportPaths=test-report.xml - -Dsonar.javascript.lcov.reportPaths=coverage/lcov.info - -Dsonar.exclusions=test/**,**/__mocks__/** - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/update.yml b/.github/workflows/update.yml deleted file mode 100644 index 7593d9ea..00000000 --- a/.github/workflows/update.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: Update build-chain-configuration-reader - -on: - repository_dispatch: - types: [update-build-chain-configuration-reader] - workflow_dispatch: - inputs: - version: - description: Version of https://www.npmjs.com/package/@kie/build-chain-configuration-reader - required: true - -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - with: - persist-credentials: false - - uses: actions/setup-node@v3 - with: - node-version: 16 - - run: npm i @kie/build-chain-configuration-reader@${{ github.event.client_payload.version }} - - run: npm version patch --no-git-tag-version - - name: Create Pull Request - uses: gr2m/create-or-update-pull-request-action@v1.x - env: - GITHUB_TOKEN: ${{ secrets.UPDATE_BUILD_CHAIN }} - with: - title: Update build-chain-configuration-reader to ${{ github.event.client_payload.version }} - body: > - There is a new release of build-chain-configuration-reader. Verify that there are no breaking changes - branch: build-chain-configuration-reader-${{ github.event.client_payload.version }} - commit-message: build-chain-configuration-reader updated - team_reviewers: kiegroup/productization diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 5ae92e3c..00000000 --- a/.gitignore +++ /dev/null @@ -1,13 +0,0 @@ -.env -node_modules/ -*.code-workspace -locally_execution/**/* -test/**/_temp/**/* -build_chain_20*/**/* -coverage/ -test-report.xml -.idea/ -.vscode/ -/build -*.log -dist-e2e/ \ No newline at end of file diff --git a/.husky/pre-commit b/.husky/pre-commit deleted file mode 100755 index 75fac8e1..00000000 --- a/.husky/pre-commit +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env sh -. "$(dirname -- "$0")/_/husky.sh" - -npm run lint diff --git a/.husky/pre-push b/.husky/pre-push deleted file mode 100755 index 5f9ec673..00000000 --- a/.husky/pre-push +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env sh -. "$(dirname -- "$0")/_/husky.sh" - -npm run lint && npm test diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index 6ed37bac..00000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,186 +0,0 @@ -# Changelog - -# v3.3.0 -- Enabled support for Gerrit - -# v3.2.0 -- Enabled support for multiple platforms - -# V3.1.8 - -## Enhancements: -- [ISSUE 391] Make execution summary times easier to read - -# V3.0.3 - -## Bugs: -- [ISSUE 338] Fixed `${{ env.VAR }}` not being substituted correctly - -# V3.0.2 - -## Bugs: -- [ISSUE 333] Fixed CLI ignoring the `--token` flag - -# V3.0.1 - -## Bugs: -- [ISSUE 331] Typo in `definitionFile` option for CLI which lead an invalid definition file location - -# V3.0.0 - -## Enhancements: -- Complete refactor to typescript -- implemented end to end tests - -# V2.6.1 - -## Enhancements: - -- Prints system git version -- [issue 203] Prints execution summary -- additional-flags input -- [ISSUE 103] be able to access definition file from private repositories -- [ISSUE 216] remove -project flag from build branch command -- [ISSUE 217] add skip project execution (spe) feature -- [ISSUE 225] add secrets information for forked projects -- [ISSUE 315] improve message when token is wrong - -## Bugs - -- printLocalCommand definition-file wrong quotes -- the choosen definition file is not printed in case of all placeholders have default values -- [ISSUE 221] `hasForkPullRequest` head from `${fromAuthor}:${branch}` to `${sourceOwner}/${sourceRepo}:${sourceBranch}` - -# V2.6 - -## Enhancements: - -- `@kie/build-chain-configuration-reader` upgraded to `2.2.3` -- definition version moved to 2.1 -- targetExpression mapping -- branch flow from GA -- getForkedProjectName improved -- print execution plan -- --skipExecution flag to skip the command execution and artifacts archiving for all the flow types -- --skipCheckout to skip project checkout. Checkout information will be printed anyway -- print command: the tool will print the command to be copy pasted in order to execute in any environment -- `logger-level` input added. -- debug log improved -- default value for placeholders -- important information posted to Annotations section -- annotations-prefix input to identify the annotations per job - -## Bugs: - -- [issue 153] windows error on joining folder. -- [issue 158] definition file URL improvements GROUP/BRANCH placeholders. -- add starting-project CLI argument to single flow type option. -- starting-project argument missing documentation. -- [issue 176] look up both current and project triggering mappings. -- [issue 137] To avoid getting branches for already closed PRs. -- rename merging base branch to source branch name to avoid Sonar zero issues. - -# V2.5 - -## Enhancements: - -- `custom-command-treatment` CLI option -- `@kie/build-chain-configuration-reader` upgraded to `2.0.4` -- error mapping branches solved -- allow to read definition files from private repositories -- pre/post sections - -# V2.4 - -## Enhancements: - -- `starting-project` input added -- env variables treated from commands -- export command treated -- token not mandatory - -## Bugs: - -- Error treating export commands like `export DROOLS_VERSION=mvn org.apache.maven.plugins:maven-help-plugin:evaluate -Dexpression=project.version | grep ^7` will execute `export DROOLS_VERSION=mvn org.apache.maven.plugins:maven-help-plugin:evaluate -Dexpression=project.version | grep ^7 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -B`. Fixed. - -# V2.3 - -## Enhancements: - -- token added to git commands to avoid private repositories problem from CLI execution -- clone option added - -# V2.2 - -## Enhancements: - -- command line ready -- full downstream flow added either for CLI and github action -- single flow added either for CLI and github action -- @kie/build-chain-configuration-reader dependency upgraded to ^2.0.2 -- branch flow added for CLI -- skip build mechanism -- configuration file version <2.0 is no longer supported -- checkout mechanism improved - -# V2.1 - -[Link](https://github.com/kiegroup/github-action-build-chain/releases/tag/v2.1) - -## Enhancements: - -- @kie/build-chain-configuration-reader dependency upgraded to ^0.0.6 - -# V2.0 - -[Link](https://github.com/kiegroup/github-action-build-chain/releases/tag/v2.0) - -## Enhancements: - -- artifacts in case of failure -- centralized flow definition file -- definition-file input added -- rest of inputs removed since they are not needed anymore -- default configuration for every project -- before and after commands added - -# V1.4 - -[Link](https://github.com/kiegroup/github-action-build-chain/releases/tag/v1.4) - -## Enhancements: - -- archive-artifacts-dependencies -- checkout info summary - -# V1.3 - -[Link](https://github.com/kiegroup/github-action-build-chain/releases/tag/v1.3) - -## Bugs: - -- `Cannot read property 'artifactItems' of undefined` error fixed - -# V1.2 - -[Link](https://github.com/kiegroup/github-action-build-chain/releases/tag/v1.2) - -## Bugs: - -- Mapping error solved - -# V1.1 - -[Link](https://github.com/kiegroup/github-action-build-chain/releases/tag/v1.1) - -- Just contributors added - -# V1.0 - -[Link](https://github.com/kiegroup/github-action-build-chain/releases/tag/v1.0) - -Github action build chain is a tool for github actions to build multiple projects from different repositories in a single action. This tool is trying to solve the problem when a project depends on another project (most probably from the same organization) and one change can/should be performed in different repositories. How can we assure one specific pull request will work with the latest changes from/in the dependant/dependency projects and it won't break something? This is what we call cross-repo pull requests and build-chain is the way we have to solve it. - -- archive artifacts mechanism -- pull request flow -- cross-repo checkout diff --git a/README.md b/README.md deleted file mode 100644 index 1de6fabf..00000000 --- a/README.md +++ /dev/null @@ -1,1060 +0,0 @@ -# Github Action Build Chain - -Github action build chain is a tool for github actions to build multiple projects from different repositories in a single action. -This tool is trying to solve the problem when a project depends on another project (most probably from the same organization) and one change can/should be performed in different repositories. How can we assure one specific pull request will work with the latest changes from/in the dependant/dependency projects and it won't break something? This is what we call **cross-repo pull requests** and **build-chain** is the way we have to solve it. - -Let's consider you have a project hierarchy like: - -![Project hierarchy](/docs/project-hierarchy.png) - -and you want to upstream/downstream build whatever project from this hierarchy, **Github Action Build Chain** provides you the mechanism to easily do it. -You can check [Usage example](#usage-example). - -Just defining the **build chain** flow in every project you want to trigger, the tool will get build information from `dependency-file` input and will execute every command from every project in a single github action. - -Table of content ----------------- - -* **[Github Action Build Chain](#github-action-build-chain)** -* **[Build Chain Flows](#build-chain-flows)** -* **[How to add it to your project(s)](#how-to-add-it-to-your-projects)** -* **[Input Fields](#input-fields)** -* **[Pre/Post sections](#prepost-sections)** -* **[Archiving Artifacts](#archiving-artifacts)** -* **[How to clone project in more than one folder](#how-to-clone-project-in-more-than-one-folder)** -* **[Execution environment](#execution-environment)** -* **[Usage example](#usage-example)** -* **[Local Execution](#local-execution)** -* **[About Commands to Execute](#about-commands-to-execute)** -* **[v2 to v3](#v2-to-v3)** - * **[Using multiple git platforms](#using-multiple-git-platforms)** - * **[Found a regression?](#found-a-regression)** -* **[Limitations](#limitations)** -* **[Development](#development)** -* **[System Requirements](#system-requirements)** - - -## Allowed configuration files versions - -- 2.1 -- 2.2 - -## Build Chain Flows - -### Cross Pull request flow - -- It checks out the current project and reads the workflow information from the YAML file triggering the job. - - - It merges the TARGET_GROUP:PROJECT:TARGET_BRANCH into the SOURCE_GROUP:PROJECT:SOURCE_BRANCH from the pull request triggering the job. - > **_Warning:_** It will fail in case it can't be done automatically, properly informing to please resolve conflicts. - -- It recursively checks out the rest of the dependant projects defined in `definition-file`. - - - For each parent dependency: - - It will look for forked project belonging same github group as the one triggering the job. - - It will try to checkout SOURCE_GROUP:PROJECT:SOURCE_BRANCH. In case the it exists and it has a pull request over the TARGET_GROUP:PROJECT:TARGET_BRANCH it will check it out and will merge it with target branch. - - If previous checkout fails, it will try the same with TARGET_GROUP:PROJECT:SOURCE_BRANCH this time. - - If previous checkout fails, it will checkout TARGET_GROUP:PROJECT:TARGET_BRANCH. - > **_Warning:_** It will fail in case it can't be done automatically, properly informing to please resolve conflicts. - -- Once all the projects are checked out, it will run as many commands are defined in `before`, `after` or root level properties from `build` section for every parent dependency starting from the highest level of the hierarchy to the lowest one. - -- It will archive artifacts in case `archive-artifacts-path` input is defined. - -### Full Downstream flow - -- It checks out the current project and reads the workflow information from the YAML file triggering the job. - - - It merges the TARGET_GROUP:PROJECT:TARGET_BRANCH into the SOURCE_GROUP:PROJECT:SOURCE_BRANCH from the pull request triggering the job. - > **_Warning:_** It will fail in case it can't be done automatically, properly informing to please resolve conflicts. - -- It gets the full downstream project chain (the parents projects plus its children and their dependencies. At the end the whole chain) based on configuration file. -- It recursively checks out the rest of the dependant projects defined in `definition-file`. - - - For each parent dependency: - - It will look for forked project belonging same github group as the one triggering the job. - - It will try to checkout SOURCE_GROUP:PROJECT:SOURCE_BRANCH. In case the it exists and it has a pull request over the TARGET_GROUP:PROJECT:TARGET_BRANCH it will check it out and will merge it with target branch. - - If previous checkout fails, it will try the same with TARGET_GROUP:PROJECT:SOURCE_BRANCH this time. - - If previous checkout fails, it will checkout TARGET_GROUP:PROJECT:TARGET_BRANCH. - > **_Warning:_** It will fail in case it can't be done automatically, properly informing to please resolve conflicts. - -- Once all the projects are checked out, it will run as many commands are defined in `before`, `after` or root level properties from `build` section for every parent dependency starting from the highest level of the hierarchy to the lowest one. - -- It will archive artifacts in case `archive-artifacts-path` input is defined. - -### Single Pull Request flow - -- It checks out the current project and reads the workflow information from the YAML file triggering the job. - - - It merges the TARGET_GROUP:PROJECT:TARGET_BRANCH into the SOURCE_GROUP:PROJECT:SOURCE_BRANCH from the pull request triggering the job. - > **_Warning:_** It will fail in case it can't be done automatically, properly informing to please resolve conflicts. - -- Once the project from the event is checked out, it will run as many commands are defined in `before`, `after` or root level properties from `build` section. - -- It will archive artifacts in case `archive-artifacts-path` input is defined. - -### Branch flow - -- It checks out the whole tree from the `starting-project` project input and reads the workflow information from the YAML file triggering the job. - -- Once the projects from the branch are checked out, it will run as many commands are defined in `before`, `after` or root level properties from `build` section. - -- The flow will archive (in case the archiving is not skipped) a spreadsheet with the execution summary. - -## How to add it to your project(s) - -It is just to add the step (replacing dependencies and commands): - -``` -- name: Build Chain ${{ matrix.java-version }} - id: build-chain - uses: ginxo/github-action-build-chain@BXMSPROD-1025 - with: - definition-file: https://raw.githubusercontent.com/${GROUP}/droolsjbpm-build-bootstrap/${BRANCH}/.ci/pull-request-config.yaml - env: - GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" -``` - -to your existing yaml flow definition or to create a new one. Do the same for the rest of the projects you need. - -> **_Note:_** The `@actions/checkout` step is not needed since is the tool the one which is going to handle what to checkout for every project in the chain. - -## Input Fields - -See [action.yml](action.yml) - -- **definition-file** (mandatory): `path to the file in filesystem | URL to the file`. [See more details](https://github.com/kiegroup/build-chain-configuration-reader#url-format) - - > Example: - > - > ``` - > definition-file: './folder/whatever_definition_file.yaml' - > definition-file: 'http://yourdomain.com/definition-file.yaml' - > definition-file: 'https://raw.githubusercontent.com/kiegroup/droolsjbpm-build-bootstrap/main/.ci/pull-request-config.yaml' - > definition-file: 'https://raw.githubusercontent.com/kiegroup/droolsjbpm-build-bootstrap/${BRANCH}/.ci/pull-request-config.yaml' - > definition-file: 'https://raw.githubusercontent.com/${GROUP}/droolsjbpm-build-bootstrap/${BRANCH}/.ci/pull-request-config.yaml' - > definition-file: 'https://raw.githubusercontent.com/${GROUP}/${PROJECT_NAME}/${BRANCH}/.ci/pull-request-config.yaml' - > ``` - -> **_Note:_** In case you use URL way, remember you should point the file content itself, so in case you want to use https://github.com/kiegroup/droolsjbpm-build-bootstrap/blob/a1efb55f17fd0fd9001b073c999e3fd2a80600a6/.ci/pull-request-config.yaml, `definition-file` value should be https://raw.githubusercontent.com/kiegroup/droolsjbpm-build-bootstrap/a1efb55f17fd0fd9001b073c999e3fd2a80600a6/.ci/pull-request-config.yaml (Raw one for this case) or (using dynamic placeholders) https://raw.githubusercontent.com/${GROUP}/${PROJECT_NAME}/${BRANCH}/.ci/pull-request-config.yaml. - -- **flow-type** (optional. 'cross_pr' by default): The flow you want to execute. Possible values - - - cross_pr: executes the cross pull request flow - - full_downstream: executes the full downstream flow - - branch: executes the branch flow - - single_pr: executes the single pull request flow - -- **starting-project** (optional. the project triggering the job by default): The project you want start building from. The project to construct the tree from. It's not the same as the project triggering the job which is taken from `GITHUB_REPOSITORY` env variable or the github pull request event payload. For instance - - > ``` - > starting-project: 'groupX/projectX' // it will get project dependencies tree from 'groupX/projectX' - > starting-project: 'kiegroup/drools' // it will get project dependencies tree from 'kiegroup/drools' - > ``` - - > **_Note:_** You have to be sure the project tree to start building from, contains the project triggering the job. - -- **logger-level** (optional. 'info' by default): The log level. Possible values - - - info - - trace - - debug - - > ``` - > logger-level: 'info' - > logger-level: 'debug' - > ``` - -- **annotations-prefix** (optional. '' by default): The prefix to be shown on the Github Actions' Annotations title. - - > ``` - > annotations-prefix: "${{ matrix.java-version }}/${{ matrix.maven-version }}" - > annotations-prefix: "My Job Prefix" - > annotations-prefix: "Gradle Version ${{ matrix.gradle-version }}" - > annotations-prefix: "OS ${{ matrix.os }}" - > ``` - -- **enable-parallel-execution** (optional. false by default): By enabling parallel execution, build-chain will try to detect projects that can be executed parallely without any conflicts i.e. no 2 projects where 1 depends on another will be executed parallely. - -- **additional-flags** (optional. '' by default): The chance to define additional flags for the execution, as it is done on the CLI side. Just semicolon (;) separated, like '--skipParallelCheckout;--skipExecution;-t (mvn .\*)||\$1 -s settings.xml'. - - > ``` - > additional-flags: "--fullProjectDependencyTree" - > additional-flags: "--fullProjectDependencyTree;--skipParallelCheckout" - > additional-flags: "--skipParallelCheckout; --fullProjectDependencyTree" - > additional-flags: "--skipParallelCheckout; -t (mvn .*)||$1 -s settings.xml" - > ``` - - > **_Note:_** It has a limitation, the flag values can't contain semicolons (;), otherwise it will be treated as a new flag. - -## Pre/Post sections - -It is possible to define pre and post sections in the definition-file. The idea is to have the chance to execute something before (`pre`) or after (`post`) project checkout and build command execution. - -### PRE - -``` -pre: string | multiline string -``` - -It will be executed even before checking out projects. - -#### Examples - -``` -pre: export VARIABLE_NAME=value -``` - -``` -pre: | - export VARIABLE_NAME=value - echo $VARIABLE_NAME -``` - -### POST - -``` -post: - success: string | multiline string - failure: string | multiline string - always: string | multiline string -``` - -It will be executed after executing all commands for every project and after archiving artifacts. The options are: - -- `success`: it will be executed in case there's no error during build execution. -- `failure`: it will be executed in case there's any error during build execution. -- `always`: it will be always executed. - -#### Examples - -``` -post: - success: echo 'final message in case of no errors' - failure: echo 'final message in case of any error' - always: echo 'final message always printed' -``` - -``` -post: - success: | - echo 'final message in case of no errors 1' - echo 'final message in case of no errors 2' - failure: | - echo 'final message in case of any error' - echo 'final message in case of any error 2' - always: | - echo 'final message always printed' - echo 'final message always printed 2' -``` - -## Archiving Artifacts - -The archive artifacts algorithm is basically copied from [actions/upload-artifact project](https://github.com/actions/upload-artifact) and (manually) transpiled to javascript. The usage is basically the same (the inputs are different named adding `archive-artifacts` prefix and the [Conditional Artifact Upload](https://github.com/actions/upload-artifact#conditional-artifact-upload) is not enabled), so why do we include this `archive artifacts` mechanism in this tool if it's already implemented by another tool? well, because this treats the archive artifacts mechanism for the whole build chain, so in case you define an `archive-artifacts-path` in a different project from the chain, all of them will be uploaded. If you are wondering if you are able to use `actions/upload-artifact` instead of the one we propose, the answer is 'yes', just take into consideration the artifacts will be archived based on the definition from the project triggering the job. - -The `archive-artifacts-path` input brings you the chance to specify if the path will be uploaded in case of build success (default), in case of failure or always for every single path. For example specifying something like `path/to/artifact/world.txt@failure` will archive `path/to/artifact/world.txt` in case of execution failure. You can check [Upload for different execution results](https://github.com/actions/upload-artifact#upload-for-different-execution-results). - -### Upload an Individual File - -```yaml -archive-artifacts: - path: **/dashbuilder-runtime.war -``` - -### Upload an Entire Directory - -```yaml -archive-artifacts: - path: path/to/artifact-folder/ -``` - -### Upload using a Wildcard Pattern - -```yaml -archive-artifacts: - path: path/**/[abc]rtifac?/* -``` - -### Upload using Multiple Paths and Exclusions - -```yaml -archive-artifacts: - path: | - path/output/bin/ - path/output/test-results - !path/**/*.tmp -``` - -### Upload for different execution results - -This is something additional to [@actions/glob](https://github.com/actions/toolkit/tree/main/packages/glob) - -```yaml -archive-artifacts: - path: | - path/output/bin/ - path2/output2/bin2/@success - path/output/test-results@failure - !path/**/*.tmp@always -``` - -- will upload `path/output/bin/` just in case of `success` -- will upload `path2/output2/bin2/` just in case of `success` -- will upload `path/output/test-results` just in case of `failure` -- will upload `!path/**/*.tmp` in every case - -### Path Wildcards - -For supported wildcards along with behavior and documentation, see [@actions/glob](https://github.com/actions/toolkit/tree/main/packages/glob) which is used internally to search for files. - -If a wildcard pattern is used, the path hierarchy will be preserved after the first wildcard pattern. - -``` - path/to/*/directory/foo?.txt => - ∟ path/to/some/directory/foo1.txt - ∟ path/to/some/directory/foo2.txt - ∟ path/to/other/directory/foo1.txt - - would be flattened and uploaded as => - ∟ some/directory/foo1.txt - ∟ some/directory/foo2.txt - ∟ other/directory/foo1.txt -``` - -If multiple paths are provided as input, the least common ancestor of all the search paths will be used as the root directory of the artifact. Exclude paths do not effect the directory structure. - -Relative and absolute file paths are both allowed. Relative paths are rooted against the current working directory. Paths that begin with a wildcard character should be quoted to avoid being interpreted as YAML aliases. - -The [@actions/artifact](https://github.com/actions/toolkit/tree/main/packages/artifact) package is used internally to handle most of the logic around uploading an artifact. There is extra documentation around upload limitations and behavior in the toolkit repository that is worth checking out. - -### Customization if no files are found - -If a path (or paths), result in no files being found for the artifact, the action will succeed but print out a warning. In certain scenarios it may be desirable to fail the action or suppress the warning. The `if-no-files-found` option allows you to customize the behavior of the action if no files are found. - -```yaml -archive-artifacts: - path: path/to/artifact/ - if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn` -``` - -### Conditional Artifact Upload - -not supported (yet) - -### Uploading without artifact name - -You can upload an artifact with or without specifying a name - -```yaml -archive-artifacts: - name: my-artifacts - path: **/dashbuilder-runtime.war -``` - -If not provided, `artifact` will be used as the default name which will manifest itself in the UI after upload. - -### Uploading to the same artifact - -Each artifact behaves as a file share. Uploading to the same artifact multiple times in the same workflow can overwrite and append already uploaded files - -```yaml -# Project A -archive-artifacts: - path: world.txt -``` - -```yaml -# Project B -archive-artifacts: - path: extra-file.txt -``` - -```yaml -# Project C -archive-artifacts: - path: world.txt -``` - -With the following example, the available artifact (named `artifact` which is the default if no name is provided) would contain both `world.txt` and `extra-file.txt`. - -### Environment Variables and Tilde Expansion - -You can use `~` in the path input as a substitute for `$HOME`. Basic tilde expansion is supported. - -```yaml -archive-artifacts: - path: "~/new/**/*" -``` - -### archive-artifacts dependencies usage - -The `dependencies` field allows us to define a set of projects for which we want to upload the artifacts. - -- `none` only artifacts from the starting project will be uploaded -- `all` artifacts from all projects will be uploaded -- `list of projects` artifacts from only a given list of projects will be uploaded - -```yaml -archive-artifacts: - path: "~/new/**/*" - dependencies: "none" -``` - -```yaml -archive-artifacts: - path: "~/new/**/*" - dependencies: "all" -``` - -```yaml -archive-artifacts: - path: "~/new/**/*" - dependencies: | - projectX - projectY -``` - -## Where does the upload go? - -In the top right corner of a workflow run, once the run is over, if you used this action, there will be a `Artifacts` dropdown which you can download items from. Here's a screenshot of what it looks like
- - -There is a trashcan icon that can be used to delete the artifact. This icon will only appear for users who have write permissions to the repository. - -## How to clone project in more than one folder - -It is possible to clone project in more than one folder specifying `clone` field. For example: - -``` - - project: kiegroup/appformer - clone: - - appformer-integration-test - - folderx/appformer-unit-test -``` - -will clone the `kiegroup/appformer` in the `ROOT_FOLDER/PROJECT_FOLDER` and additionally will clone the project folder to `ROOT_FOLDER/PROJECT_FOLDER/appformer-integration-test` and `ROOT_FOLDER/PROJECT_FOLDER/folderx/appformer-unit-test` - -Another example would be: - -``` - - project: group/projectx - clone: another-folder -``` - -will clone the `group/projectx` in the `ROOT_FOLDER/PROJECT_FOLDER` and additionally will clone the project folder to `ROOT_FOLDER/PROJECT_FOLDER/another-folder` - - -## Execution environment - -The environment execution definition is part of the workflow (the `.yml` file) and it depends on the commands you require to execute. If you require to execute maven commands you will have to add the `actions/setup-java@v1` with its java version, or in case you need python commands `actions/setup-python` is the one. You can find different examples in https://github.com/YOURGROUP/YOURPROJECT/actions/new. - -It could be the case where you require a very specific environment to execute your stuff as it is the case for [python3-cekit](https://github.com/kiegroup/github-action-build-chain/tree/python3-cekit). Feel free to propose the environment you need as a pull request to this project: - -- Create a branch based on `python3-cekit` one -- Modify [the Dockerfile from there](https://github.com/kiegroup/github-action-build-chain/blob/python3-cekit/Dockerfile) - -Current environments: - -- **python3-cekit**: python3 + python cekit library + docker + nodejs + yarn latest stable release [Dockerfile](https://github.com/kiegroup/github-action-build-chain/blob/python3-cekit/Dockerfile) - -## Usage example - -Considering the projects hierarchy: - -![Project hierarchy](/docs/project-hierarchy.png) - -You can check how to define build definition files from [Build Chain Configuration Reader documentation](https://github.com/kiegroup/build-chain-configuration-reader) - -### Mapping - -Let's suppose - -``` -- project: E - dependencies: - - project: D - mapping: - dependencies: - default: - - source: 7.x - target: main - C: - - source: main - target: 7.x - - source: 7.x - target: 7.x - D: - - source: main - target: 7.x - - source: 7.x - target: 7.x - dependant: - default: - - source: main - target: 7.x - exclude: - - A - - B -``` - -#### mapping.dependencies - -It is used to define branch mapping between E and its dependencies in case `E` is `projectTriggeringTheJob`. - -In case the `E:7.x` branch build or PR is triggered for this `7.x` target branch: - -- A: no mapping at all, so `7.x` (straight mapping) (since it is excluded) -- B: no mapping at all, so `7.x` (straight mapping) (since it is excluded) -- C:`7.x` (due to `mapping.dependencies.C` source `7.x` mapping) -- D:`7.x` (due to `mapping.dependencies.D` source `7.x` mapping) -- The rest (F,G,H,...): `main` (since `mapping.dependencies.default` mapping defined for source: `7.x`) - -In case the `E:main` branch build or PR is triggered for this `main` target branch: - -- A: no mapping at all, so `main` (straight mapping) (since it is excluded) -- B: no mapping at all, so `main` (straight mapping) (since it is excluded) -- C:`7.x` (due to `mapping.dependencies.C` source `main` mapping) -- D:`7.x` (due to `mapping.dependencies.C` source `main` mapping) -- The rest (F,G,H,...): `main` (since there's no mapping defined for default main branch) - -In case the `E:anyotherbranch` branch build or PR is triggered for this `anyotherbranch` target branch (being `anyotherbranch` whatever the branch name, except `7.x` or `main`): - -- No mapping at all, just straight mapping to `anyotherbranch`. - -#### mapping.dependant - -It is used to define branch mapping between the rest of the projects and project A in case `E` is NOT `projectTriggeringTheJob`. - -In case the `A:7.x` or any other (except `main`) branch build or PR is triggered -> `E:7.x` will be taken (since there's not `mapping.dependant` for `7.x` source) -In case the `A:main` branch build or PR is triggered -> `E:7.x` (due to `mapping.dependant.default` mapping) - -## Docker build - -You can build the `github-action-build-chain` image locally with just executing docker command: - -``` -docker build . -``` - -In case you want to build it for a different openjdk version you just specify a `--build-arg OPENJDK_VERSION` argument: - -``` -docker build --build-arg OPENJDK_VERSION=11 . -``` - -## Local execution - -It's possible to use this tool locally, just follow this steps - -``` -$ npm install -g @kie/build-chain-action -$ build-chain help -Usage: build-chain [options] [command] - -A CLI tool to perform the build chain github actions - -Options: - -h, --help display help for command - -Commands: - build Execute different flows - tools A bunch of utility tools - help [command] display help for command -``` - -either `sudo` and `env GITHUB_TOKEN=...` are optional depending on your local setup. - -> Keep in mind: Whenever the tool is executed from a github check run, the `Printing local execution command` section is printed with the exact command you could copy/paste in order to reproduce it locally. - -### build command - -The build command is used to execute the different flows locally - -```shell -$ build-chain build help -Usage: build-chain build [options] [command] - -Execute different flows - -Options: - -h, --help display help for command - -Commands: - cross_pr [options] Execute cross pull request build chain workflow - full_downstream [options] Execute full downstream build chain workflow - single_pr [options] Execute single pull request build chain workflow - branch [options] Execute branch build chain workflow - help [command] display help for command -``` - -### build command: cross_pr - -Execute pull-request flow - -```shell -$ build-chain build cross_pr --help -Usage: build-chain build cross_pr [options] - -Execute cross pull request build chain workflow - -Options: - -u, --url pull request event url - -p, --startProject The project to start the build from - -f, --defintionFile The definition file, either a path to the filesystem or a URL to it - -o, --outputFolder The folder path to store projects. Default is of the format 'build_chain_yyyymmddHHMMss' (default: - "build_chain_202211229567") - --token The GITHUB_TOKEN. It can be set as an environment variable instead. You can specify multiple tokens - -d, --debug Set debugging mode to true (default: false) - --skipExecution A flag to skip execution and artifacts archiving for all projects. Overrides skipProjectExecution (default: - false) - --skipProjectExecution A flag to skip execution and artifacts archiving for certain projects only - --skipParallelCheckout Checkout the project sequentially (default: false) - --enableParallelExecution Parallely execute projects (default: false) - -t, --customCommandTreatment Each exp must be of the form . Regex defines the regular expression for what you want - to replace with the ReplacementEx - --skipProjectCheckout A list of projects to skip checkout. - --skipCheckout skip checkout for all projects. Overrides skipProjectCheckout (default: false) - -fae, --fail-at-end Only fail the build afterwards; allow all non-impacted builds to continue (default: false) - -h, --help display help for command -``` - -Example: - -```shell -$ build-chain build cross_pr -f https://raw.githubusercontent.com/kiegroup/droolsjbpm-build-bootstrap/main/.ci/pull-request-config.yaml -u https://github.com/kiegroup/kie-wb-distributions/pull/1068 -``` - -### build command: full_downstream - -Execute full downstream (fdb) flow - -```shell -$ build-chain build full_downstream --help -Usage: build-chain build full_downstream [options] - -Execute full downstream build chain workflow - -Options: - -u, --url pull request event url - -p, --startProject The project to start the build from - -f, --defintionFile The definition file, either a path to the filesystem or a URL to it - -o, --outputFolder The folder path to store projects. Default is of the format 'build_chain_yyyymmddHHMMss' (default: - "build_chain_2022112295741") - --token The GITHUB_TOKEN. It can be set as an environment variable instead. You can specify multiple tokens - -d, --debug Set debugging mode to true (default: false) - --skipExecution A flag to skip execution and artifacts archiving for all projects. Overrides skipProjectExecution (default: - false) - --skipProjectExecution A flag to skip execution and artifacts archiving for certain projects only - --skipParallelCheckout Checkout the project sequentially (default: false) - --enableParallelExecution Parallely execute projects (default: false) - -t, --customCommandTreatment Each exp must be of the form . Regex defines the regular expression for what you want - to replace with the ReplacementEx - --skipProjectCheckout A list of projects to skip checkout. - --skipCheckout skip checkout for all projects. Overrides skipProjectCheckout (default: false) - -fae, --fail-at-end Only fail the build afterwards; allow all non-impacted builds to continue (default: false) - -h, --help display help for command -``` - -Example: - -```shell -$ build-chain build full_downstream -f https://raw.githubusercontent.com/kiegroup/droolsjbpm-build-bootstrap/main/.ci/pull-request-config.yaml -u https://github.com/kiegroup/kie-wb-distributions/pull/1068 -``` - -### build command: single_pr - -Execute single pr flow - -```shell -$ build-chain build single_pr --help -Usage: build-chain build single_pr [options] - -Execute single pull request build chain workflow - -Options: - -u, --url pull request event url - -p, --startProject The project to start the build from - -f, --defintionFile The definition file, either a path to the filesystem or a URL to it - -o, --outputFolder The folder path to store projects. Default is of the format 'build_chain_yyyymmddHHMMss' (default: - "build_chain_2022112295912") - --token The GITHUB_TOKEN. It can be set as an environment variable instead. You can specify multiple tokens - -d, --debug Set debugging mode to true (default: false) - --skipExecution A flag to skip execution and artifacts archiving for all projects. Overrides skipProjectExecution (default: - false) - --skipProjectExecution A flag to skip execution and artifacts archiving for certain projects only - --skipParallelCheckout Checkout the project sequentially (default: false) - --enableParallelExecution Parallely execute projects (default: false) - -t, --customCommandTreatment Each exp must be of the form . Regex defines the regular expression for what you want - to replace with the ReplacementEx - --skipProjectCheckout A list of projects to skip checkout. - --skipCheckout skip checkout for all projects. Overrides skipProjectCheckout (default: false) - -fae, --fail-at-end Only fail the build afterwards; allow all non-impacted builds to continue (default: false) - -h, --help display help for command -``` - -Example: - -```shell -$ build-chain build single_pr -f https://raw.githubusercontent.com/kiegroup/droolsjbpm-build-bootstrap/main/.ci/pull-request-config.yaml -u https://github.com/kiegroup/kie-wb-distributions/pull/1068 -``` - -### build command: branch - -Execute branch flow - -```shell -$ build-chain build branch --help -Usage: build-chain build branch [options] - -Execute branch build chain workflow - -Options: - -p, --startProject The project to start the build from - -b, --branch The branch to get the project from - --fullProjectDependencyTree Checks out and execute the whole tree instead of the upstream build (default: false) - -c, --command The command(s) to execute for every project. This will override definition file configuration (just - dependency tree will be taken into account) - -g, --group The group to execute flow. It will take it from project argument in case it's not specified - -f, --defintionFile The definition file, either a path to the filesystem or a URL to it - -o, --outputFolder The folder path to store projects. Default is of the format 'build_chain_yyyymmddHHMMss' (default: - "build_chain_202211221013") - --token The GITHUB_TOKEN. It can be set as an environment variable instead. You can specify multiple tokens - -d, --debug Set debugging mode to true (default: false) - --skipExecution A flag to skip execution and artifacts archiving for all projects. Overrides skipProjectExecution (default: - false) - --skipProjectExecution A flag to skip execution and artifacts archiving for certain projects only - --skipParallelCheckout Checkout the project sequentially (default: false) - --enableParallelExecution Parallely execute projects (default: false) - -t, --customCommandTreatment Each exp must be of the form . Regex defines the regular expression for what you want - to replace with the ReplacementEx - --skipProjectCheckout A list of projects to skip checkout. - --skipCheckout skip checkout for all projects. Overrides skipProjectCheckout (default: false) - -fae, --fail-at-end Only fail the build afterwards; allow all non-impacted builds to continue (default: false) - -h, --help display help for command -``` - -Example: - -```shell -$ build-chain build branch -f https://raw.githubusercontent.com/kiegroup/droolsjbpm-build-bootstrap/main/.ci/pull-request-config.yaml -p=kiegroup/lienzo-tests -b=main -``` - -### build command: resume - -The `resume` command lets you continue your build from the last point of failure. When running any other `build-chain build` commands, it will produce a state file in the current working directory which will store all the data related to its execution. If you run `build-chain build resume` in the same working directory, then `build-chain` will pick up that state file, reconstruct `build-chain build`'s previous state and continue execution from the first point of failure. Note that the tokens are not stored in the state file, so you have to pass them again to the `resume` command using the `--token` option or setting them as env variables. - -```shell -$ build-chain build resume --help -Usage: build-chain build resume [options] - -Resume execution from first point of failure in the previous execution - -Options: - -w, --workspace The workspace in which build chain was executed and the one to resume execution in (default: cwd) - -t, --token The GITHUB_TOKEN. It can be set as an environment variable instead - -d, --debug Set debugging mode to true (default: false) - -p, --startProject Start from the given project instead of the first point of failure (default: false) - -c, --recheckout List of projects to re-checkout and re-build (default: false) - -h, --help display help for command -``` - -#### Custom Command Replacement - -It is possible to define custom expression to replace commands. The expression structure is `RegEx||ReplacementEx` where: - -- `RegEx`: you can define regular expression with or without literals. See [Javascript RegExp](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp) -- `||` just split `RegEx` from `ReplacementEx` -- `ReplacementEx`: See [Javascript String replacement](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace) - -So basically at left side of `||` you define the regular expression where you want to apply string replacement from right side. For example, considering command `mvn clean install` in case we apply `(^mvn .*)||$1 -s ~/.m2/settings.xml` the final command will be `mvn clean install -s ~/.m2/settings.xml` - -### tool command - -There are some utility tools as well - -```shell -$ build-chain tools help -Usage: build-chain tools [options] [command] - -A bunch of utility tools - -Options: - -h, --help display help for command - -Commands: - project-list [options] Prints the projects that will be built given a starting project ordered by precedence - plan Execute build chain without actually cloning or executing projects (like a dry run) - resume [options] Resume execution from first point of failure - help [command] display help for command -``` - -### tool command: plan - -The `plan` command lets you execute build-chain without actually cloning or executing projects, like a dry run. This lets you verify whether build-chain will clone the correct projects, will checkout the correct branch, will merge the correct PRs and will execute the correct commands for each project. To use this command you simply have to pass the arguments that come after `build-chain build` command to `build-chain tools plan` command. For example: - -If you want to see the dry run for the following `build` command: - -```shell -$ build-chain build cross_pr -f definition_file -u event_url -``` - -then, you have to run the following `plan` command: - -```shell -$ build-chain tools plan cross_pr -f definition_file -u event_url -``` - -## About Commands to Execute - -Just consider the library used behind the scenes in order to execute commands is [@actions/exec](https://github.com/actions/toolkit/tree/main/packages/exec), this library has a limitation at https://github.com/actions/toolkit/blob/b5f31bb5a25d129441c294fc81ba7f92f3e978ba/packages/exec/src/exec.ts#L27 where it tries to decide the "tool" to be executed, so in case you need to execute bash or windows commands like conditionals you should use it like this - -### Bash -`bash -c "my command"` -`bash -c "if true; then echo 'it's TRUE'; else echo 'it's FALSE'; fi"` - -### Windows -`cmd /c "my command"` - -> **_Note:_** thanks to https://github.com/actions/toolkit/issues/461#issuecomment-743750804 - -# v2 to v3 - -List of breaking changes from v2 to v3: - -- v2 flow types are deprecated but still supported. Since they are deprecated they might be removed in future releases. Acceptable v3 flowtypes which are consistent across CLI and github action are: - - cross_pr (know as pr or pull-request in v2) - - full_downstream (know as fd or fdb in v2) - - single_pr (know as single in v2) - - branch -- v3 now accepts definition file version 2.2 -- CLI options that have changed: - - v2: `-df` to v3: `-f` - - v2: `-url` to v3: `-u` or `--url` - - v2: `-folder` to v3: `-o` - - v2: `-cct` to v3: `-t` - - v2: `-spc` to v3: `--skipProjectCheckout` - - v2: `-sp` to v3: `-p` -- Project naming convention while checking out a project is now - `OWNER_PROJECT-NAME`. For example if we have `owner/some-name` the project will be checked out as `owner_some-name`. In v2 this would have been checked out as `owner_some_name` - -## Using multiple git platforms - -You can now define multiple git platforms to clone your projects from. Currently only GitHub, GitLab and Gerrit are supported. Refer to [build-chain-configuration-reader](#https://github.com/kiegroup/build-chain-configuration-reader#platforms-only-in-version-23) on how to define multiple platforms. The advanatge of having this is that you can build projects that are hosted on one platform along with projects that are hosted on another platform. - -build-chain runs with a default platform configured. This default platform is used for projects which don't have a platform defined and for reading and loading configuration from the definition file. - -By default, when you run build-chain as a github action the default platform configuration used is GitHub. - -When using build-chain as a CLI tool, build-chain will try to detect the default platform based on the definition file url. If it is not able to detect it from the url, it will use GitHub as the default configuration. If you want to override all of this, you will have the option to define default configuration as CLI options (currently only GitHub and GitLab have default options): - -```shell --ghi, --defaultGithubId default github id --ghti, --defaultGithubTokenId default github token id used to get token from env --gha, --defaultGithubApiUrl default github api url to use --ghs, --defaultGithubServeUrl default github server url to use --gli, --defaultGitlabId default gitlab id --glti, --defaultGitlabTokenId default gitlab token id used to get token from env --gla, --defaultGitlabApiUrl default gitlab api url to use --gls, --defaultGitlabServeUrl default gitlab server url to use -``` - -### Multiple git platforms example - -``` -version: 2.3 - -dependencies: - - project: middleware/build-configurations - platform: rh-gitlab - mapping: - dependencies: - default: - - source: master - target: main - dependant: - default: - - source: main - target: master - - project: business-automation/eng-jenkins-scripts - platform: rh-gerrit - dependencies: - - project: middleware/build-configurations - - project: kiegroup/drools - - - project: kiegroup/drools - platform: github-public - -default: - build-command: - current: echo "default current" - -build: - - project: business-automation/eng-jenkins-scripts - build-command: - current: echo "business-automation/eng-jenkins-scripts" - -platforms: - - id: rh-gitlab - type: gitlab - tokenId: RH_GITLAB_TOKEN - serverUrl: https://gitlab.xxxx.com - apiUrl: https://gitlab.xxxx.com/api/v4 - - - id: rh-gerrit - type: gerrit - tokenId: RH_GERRIT_TOKEN - serverUrl: https://gerrit.xxxx.com - apiUrl: https://gerrit.xxxx.com/r/a -``` - -> **_Note:_** it is possible to specify as many github/gitlab/gerrit platforms as it is required -> **_Note:_** use `github-public`, `gitlab-public` and/or `gerrit-public` identifiers for `https://github.com`, `https://gitlab.com` and/or `https://gerrit.googlesource.com` respectively, no need to define them. -> **_Note:_** use `GITHUB_TOKEN`, `GITLAB_TOKEN` and/or `GERRIT_TOKEN` token for default github/gitlab/gerrit services. - - -## Found a regression? - -We have a built a dynamic agonistic end to end regression testing suite to avoid breaking major features that were working in previous versions. Its dynamic since all the test cases are determined by a json file that anyone can update without knowing the details about the implementation. It is agnostic since it just cares about the final executable that is produced and is not implementation specific. - -If you found a regression please add it to the test.json file is the below format: - -- For cli regression tests each test case is defined in [test/e2e-regression/cli/test.json](test/e2e-regression/cli/tests.json) in the format: - -```typescript -{ - name: string; // name of the test case. typically you can name it corresponding to the issue - cmd: string; // the build-chain cli command used to reproduce the issue - description?: string; // further description of the issue - env?: Record; // any env setup needed - shouldFail?: boolean; // whether the expected result after execution of build-chain is success or failure. by default it expects success - matchOutput?: string[] // any particular strings to match in the output - dontMatchOutput?: string[] // any particular strings we want to make sure aren't there in the output -} -``` - -- For action regression tests each test case is defined in [test/e2e-regression/github-action/test.json](test/e2e-regression/github-action/test.json) in the format: - -```typescript -{ - name: string; // name of the test case. typically you can name it corresponding to the issue - event: string | PullRequestPayload; // it can either be a link to a PR or a JSON object similar to a pull request event payload - description?: string; // further description of the issue - env?: Record; // any env setup needed - shouldFail?: boolean; // whether the expected result after execution of build-chain is success or failure. by default it expects success - matchOutput?: string[] // any particular strings to match in the output - dontMatchOutput?: string[] // any particular strings we want to make sure aren't there in the output - - // it accepts all the inputs that are needed to run build-chain as a github action - "definition-file": string; - "flow-type": string; - "starting-project?": string; - "skip-execution"?: string; - "skip-project-execution"?: string; - "skip-checkout"?: string; - "skip-project-checkout"?: string; - "skip-parallel-checkout"?: string; - "custom-command-treatment"?: string; - "additional-flags"?: string; - "logger-level"?: string; - "annotations-prefix"?: string; -} -``` -# Limitations - -### Zipped Artifact Downloads - -During a workflow run, files are uploaded and downloaded individually using the `upload-artifact` and `download-artifact` actions. However, when a workflow run finishes and an artifact is downloaded from either the UI or through the [download api](https://developer.github.com/v3/actions/artifacts/#download-an-artifact), a zip is dynamically created with all the file contents that were uploaded. There is currently no way to download artifacts after a workflow run finishes in a format other than a zip or to download artifact contents individually. One of the consequences of this limitation is that if a zip is uploaded during a workflow run and then downloaded from the UI, there will be a double zip created. - -### Permission Loss - -:exclamation: File permissions are not maintained during artifact upload :exclamation: For example, if you make a file executable using `chmod` and then upload that file, post-download the file is no longer guaranteed to be set as an executable. - -### Case Insensitive Uploads - -:exclamation: File uploads are case insensitive :exclamation: If you upload `A.txt` and `a.txt` with the same root path, only a single file will be saved and available during download. - -## Github limitations - -### Using secrets on a forked project Github Action - -According to documentation, see [Workflows in forked repositories](https://docs.github.com/en/github-ae@latest/actions/using-workflows/events-that-trigger-workflows#workflows-in-forked-repositories) - -> **_Note:_** With the exception of GITHUB_TOKEN, secrets are not passed to the runner when a workflow is triggered from a forked repository. The GITHUB_TOKEN has read-only permissions in forked repositories. - -Nothing but `GITHUB_TOKEN` secret can be used from a forked project Github Action workflow. So cases like this will store nothing on `${{ env.GITHUB_TOKEN_GOOD_BAD }}`, `${{ env.CIFS_ZID_USER }}` or `${{ env.CIFS_ZID_KEY }}` but it will properly store `GITHUB_TOKEN` on `${{ env.GITHUB_TOKEN_GOOD}}` - -``` - - name: "Run build-chain" - id: build-chain - uses: kiegroup/github-action-build-chain@main - with: - definition-file: whatever-the-file-url/path - env: - GITHUB_TOKEN_GOOD_BAD: "${{ secrets.MY_GH_TOKEN }}" - GITHUB_TOKEN_GOOD: "${{ secrets.GITHUB_TOKEN }}" - CIFS_ZID_USER: "${{ secrets.CIFS_ZID_USER }}" - CIFS_ZID_KEY: "${{ secrets.CIFS_ZID_KEY }}" -``` - -> **_Note:_** Just remember this is not a problem from the tool itself but a limitation from Github Actions in order to avoid exposing sensitive information. - -### inputs usage in runs.image from action.yml - -> Just in case you are interested in adapting this code or in case you want to create your own tool. - -It's not possible to use expressions like `image: "docker://kie-group:github-action-build-chain:{{ inputs.build-chain-build-system }}"`. This way it would be easy to dynamically select image to run with a simple `with` input from flow yml file and we could skip errors like [matrix in uses](#matrix-in-uses). -Just because of this we have to maintain different Dockerfile definitions in different branches and to tag every branch for every version we release like `python3-cekit-v1`. - -## Development - -### Execute CLI - -``` -npm install -npm run build:cli -./build/index.js build ... -``` - -### build-chain-configuration-reader dependency - -The definition files are read thanks to [build-chain-configuration-reader](https://github.com/kiegroup/build-chain-configuration-reader) library so in case you want to modify something from there it's easier if you just [npm link](https://docs.npmjs.com/cli/link) it: - -- clone repository and browse to the folder -- `npm install` it -- (`sudo`) `npm link` -- and then from this project folder execute `npm link @kie/build-chain-configuration-reader` - -### Multi token usage with the help of octokit throttling - -To avoid rate limiting errors, users can pass in multiple tokens that octokit can use while making Github API calls.The idea is that when octokit gets a rate limit error for one token it will use another token from the pool and retry the same request. - -To implement this we used features and plugins from octokit itself. Using the [octokit throttling plugin](https://github.com/octokit/plugin-throttling.js), we attached hooks that are triggered whenever octokit gets a rate limit error. This hook switches out the current token with a new token from a whitelist pool of tokens (these tokens haven't reached their rate limit) and sets that token as the current token. The token which had reached its rate limit is then added to a blacklist where we keep track of after what time that token can become usable. Each time when this hook is triggered we also check whether a token from the blacklist is now available or not. If it is then we add it back to the whitelist for future use. - -Now since we have a dynamically changing current token, we had to create a custom auth strategy for octokit. This auth strategy also installs a hook which is triggered each time octokit makes a request. So before each request, this hook adds the current token to the authorization header. - -### Testing - -#### unit tests -To test your changes you can run -``` -npm test -``` -And to test with coverage report you can run -``` -npm run test:report -``` -#### e2e tests - -To run e2e tests you need [Docker](https://docs.docker.com/get-docker/). Once you have setup docker you can run -``` -npm run test:e2e -``` -To generate log files containing the raw output of the worflows executed during e2e tests you can run -``` -ACT_LOG=true npm run test:e2e -``` - -# System Requirements - -* **Git** >=2.28 -* **NodeJS** >= 14 - diff --git a/dist/index.js b/dist/index.js index 9c4dfeab..b455e529 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1,16 +1,16 @@ -(()=>{var __webpack_modules__={2605:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.create=void 0;const a=r(8802);function create(){return a.DefaultArtifactClient.create()}t.create=create},8802:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var s=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(a.next(e))}catch(e){i(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.DefaultArtifactClient=void 0;const o=n(r(2186));const p=r(183);const c=r(4354);const l=r(6327);const d=r(7398);const u=r(8538);const m=r(5686);const h=r(2222);const g=r(1017);class DefaultArtifactClient{static create(){return new DefaultArtifactClient}uploadArtifact(e,t,r,a){return s(this,void 0,void 0,(function*(){o.info(`Starting artifact upload\nFor more detailed logs during the artifact upload process, enable step-debugging: https://docs.github.com/actions/monitoring-and-troubleshooting-workflows/enabling-debug-logging#enabling-step-debug-logging`);d.checkArtifactName(e);const i=p.getUploadSpecification(e,r,t);const n={artifactName:e,artifactItems:[],size:0,failedItems:[]};const s=new c.UploadHttpClient;if(i.length===0){o.warning(`No files found that can be uploaded`)}else{const t=yield s.createArtifactInFileContainer(e,a);if(!t.fileContainerResourceUrl){o.debug(t.toString());throw new Error("No URL provided by the Artifact Service to upload an artifact to")}o.debug(`Upload Resource URL: ${t.fileContainerResourceUrl}`);o.info(`Container for artifact "${e}" successfully created. Starting upload of file(s)`);const r=yield s.uploadArtifactToFileContainer(t.fileContainerResourceUrl,i,a);o.info(`File upload process has finished. Finalizing the artifact upload`);yield s.patchArtifactSize(r.totalSize,e);if(r.failedItems.length>0){o.info(`Upload finished. There were ${r.failedItems.length} items that failed to upload`)}else{o.info(`Artifact has been finalized. All files have been successfully uploaded!`)}o.info(`\nThe raw size of all the files that were specified for upload is ${r.totalSize} bytes\nThe size of all the files that were uploaded is ${r.uploadSize} bytes. This takes into account any gzip compression used to reduce the upload size, time and storage\n\nNote: The size of downloaded zips can differ significantly from the reported size. For more information see: https://github.com/actions/upload-artifact#zipped-artifact-downloads \r\n`);n.artifactItems=i.map((e=>e.absoluteFilePath));n.size=r.uploadSize;n.failedItems=r.failedItems}return n}))}downloadArtifact(e,t,r){return s(this,void 0,void 0,(function*(){const a=new u.DownloadHttpClient;const i=yield a.listArtifacts();if(i.count===0){throw new Error(`Unable to find any artifacts for the associated workflow`)}const n=i.value.find((t=>t.name===e));if(!n){throw new Error(`Unable to find an artifact with the name: ${e}`)}const s=yield a.getContainerItems(n.name,n.fileContainerResourceUrl);if(!t){t=h.getWorkSpaceDirectory()}t=g.normalize(t);t=g.resolve(t);const p=m.getDownloadSpecification(e,s.value,t,(r===null||r===void 0?void 0:r.createArtifactFolder)||false);if(p.filesToDownload.length===0){o.info(`No downloadable files were found for the artifact: ${n.name}`)}else{yield l.createDirectoriesForArtifact(p.directoryStructure);o.info("Directory structure has been setup for the artifact");yield l.createEmptyFilesForArtifact(p.emptyFilesToCreate);yield a.downloadSingleArtifact(p.filesToDownload)}return{artifactName:e,downloadPath:p.rootDownloadLocation}}))}downloadAllArtifacts(e){return s(this,void 0,void 0,(function*(){const t=new u.DownloadHttpClient;const r=[];const a=yield t.listArtifacts();if(a.count===0){o.info("Unable to find any artifacts for the associated workflow");return r}if(!e){e=h.getWorkSpaceDirectory()}e=g.normalize(e);e=g.resolve(e);let i=0;while(i{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.getRetentionDays=t.getWorkSpaceDirectory=t.getWorkFlowRunId=t.getRuntimeUrl=t.getRuntimeToken=t.getDownloadFileConcurrency=t.getInitialRetryIntervalInMilliseconds=t.getRetryMultiplier=t.getRetryLimit=t.getUploadChunkSize=t.getUploadFileConcurrency=void 0;function getUploadFileConcurrency(){return 2}t.getUploadFileConcurrency=getUploadFileConcurrency;function getUploadChunkSize(){return 8*1024*1024}t.getUploadChunkSize=getUploadChunkSize;function getRetryLimit(){return 5}t.getRetryLimit=getRetryLimit;function getRetryMultiplier(){return 1.5}t.getRetryMultiplier=getRetryMultiplier;function getInitialRetryIntervalInMilliseconds(){return 3e3}t.getInitialRetryIntervalInMilliseconds=getInitialRetryIntervalInMilliseconds;function getDownloadFileConcurrency(){return 2}t.getDownloadFileConcurrency=getDownloadFileConcurrency;function getRuntimeToken(){const e=process.env["ACTIONS_RUNTIME_TOKEN"];if(!e){throw new Error("Unable to get ACTIONS_RUNTIME_TOKEN env variable")}return e}t.getRuntimeToken=getRuntimeToken;function getRuntimeUrl(){const e=process.env["ACTIONS_RUNTIME_URL"];if(!e){throw new Error("Unable to get ACTIONS_RUNTIME_URL env variable")}return e}t.getRuntimeUrl=getRuntimeUrl;function getWorkFlowRunId(){const e=process.env["GITHUB_RUN_ID"];if(!e){throw new Error("Unable to get GITHUB_RUN_ID env variable")}return e}t.getWorkFlowRunId=getWorkFlowRunId;function getWorkSpaceDirectory(){const e=process.env["GITHUB_WORKSPACE"];if(!e){throw new Error("Unable to get GITHUB_WORKSPACE env variable")}return e}t.getWorkSpaceDirectory=getWorkSpaceDirectory;function getRetentionDays(){return process.env["GITHUB_RETENTION_DAYS"]}t.getRetentionDays=getRetentionDays},3549:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const r=[BigInt("0x0000000000000000"),BigInt("0x7F6EF0C830358979"),BigInt("0xFEDDE190606B12F2"),BigInt("0x81B31158505E9B8B"),BigInt("0xC962E5739841B68F"),BigInt("0xB60C15BBA8743FF6"),BigInt("0x37BF04E3F82AA47D"),BigInt("0x48D1F42BC81F2D04"),BigInt("0xA61CECB46814FE75"),BigInt("0xD9721C7C5821770C"),BigInt("0x58C10D24087FEC87"),BigInt("0x27AFFDEC384A65FE"),BigInt("0x6F7E09C7F05548FA"),BigInt("0x1010F90FC060C183"),BigInt("0x91A3E857903E5A08"),BigInt("0xEECD189FA00BD371"),BigInt("0x78E0FF3B88BE6F81"),BigInt("0x078E0FF3B88BE6F8"),BigInt("0x863D1EABE8D57D73"),BigInt("0xF953EE63D8E0F40A"),BigInt("0xB1821A4810FFD90E"),BigInt("0xCEECEA8020CA5077"),BigInt("0x4F5FFBD87094CBFC"),BigInt("0x30310B1040A14285"),BigInt("0xDEFC138FE0AA91F4"),BigInt("0xA192E347D09F188D"),BigInt("0x2021F21F80C18306"),BigInt("0x5F4F02D7B0F40A7F"),BigInt("0x179EF6FC78EB277B"),BigInt("0x68F0063448DEAE02"),BigInt("0xE943176C18803589"),BigInt("0x962DE7A428B5BCF0"),BigInt("0xF1C1FE77117CDF02"),BigInt("0x8EAF0EBF2149567B"),BigInt("0x0F1C1FE77117CDF0"),BigInt("0x7072EF2F41224489"),BigInt("0x38A31B04893D698D"),BigInt("0x47CDEBCCB908E0F4"),BigInt("0xC67EFA94E9567B7F"),BigInt("0xB9100A5CD963F206"),BigInt("0x57DD12C379682177"),BigInt("0x28B3E20B495DA80E"),BigInt("0xA900F35319033385"),BigInt("0xD66E039B2936BAFC"),BigInt("0x9EBFF7B0E12997F8"),BigInt("0xE1D10778D11C1E81"),BigInt("0x606216208142850A"),BigInt("0x1F0CE6E8B1770C73"),BigInt("0x8921014C99C2B083"),BigInt("0xF64FF184A9F739FA"),BigInt("0x77FCE0DCF9A9A271"),BigInt("0x08921014C99C2B08"),BigInt("0x4043E43F0183060C"),BigInt("0x3F2D14F731B68F75"),BigInt("0xBE9E05AF61E814FE"),BigInt("0xC1F0F56751DD9D87"),BigInt("0x2F3DEDF8F1D64EF6"),BigInt("0x50531D30C1E3C78F"),BigInt("0xD1E00C6891BD5C04"),BigInt("0xAE8EFCA0A188D57D"),BigInt("0xE65F088B6997F879"),BigInt("0x9931F84359A27100"),BigInt("0x1882E91B09FCEA8B"),BigInt("0x67EC19D339C963F2"),BigInt("0xD75ADABD7A6E2D6F"),BigInt("0xA8342A754A5BA416"),BigInt("0x29873B2D1A053F9D"),BigInt("0x56E9CBE52A30B6E4"),BigInt("0x1E383FCEE22F9BE0"),BigInt("0x6156CF06D21A1299"),BigInt("0xE0E5DE5E82448912"),BigInt("0x9F8B2E96B271006B"),BigInt("0x71463609127AD31A"),BigInt("0x0E28C6C1224F5A63"),BigInt("0x8F9BD7997211C1E8"),BigInt("0xF0F5275142244891"),BigInt("0xB824D37A8A3B6595"),BigInt("0xC74A23B2BA0EECEC"),BigInt("0x46F932EAEA507767"),BigInt("0x3997C222DA65FE1E"),BigInt("0xAFBA2586F2D042EE"),BigInt("0xD0D4D54EC2E5CB97"),BigInt("0x5167C41692BB501C"),BigInt("0x2E0934DEA28ED965"),BigInt("0x66D8C0F56A91F461"),BigInt("0x19B6303D5AA47D18"),BigInt("0x980521650AFAE693"),BigInt("0xE76BD1AD3ACF6FEA"),BigInt("0x09A6C9329AC4BC9B"),BigInt("0x76C839FAAAF135E2"),BigInt("0xF77B28A2FAAFAE69"),BigInt("0x8815D86ACA9A2710"),BigInt("0xC0C42C4102850A14"),BigInt("0xBFAADC8932B0836D"),BigInt("0x3E19CDD162EE18E6"),BigInt("0x41773D1952DB919F"),BigInt("0x269B24CA6B12F26D"),BigInt("0x59F5D4025B277B14"),BigInt("0xD846C55A0B79E09F"),BigInt("0xA72835923B4C69E6"),BigInt("0xEFF9C1B9F35344E2"),BigInt("0x90973171C366CD9B"),BigInt("0x1124202993385610"),BigInt("0x6E4AD0E1A30DDF69"),BigInt("0x8087C87E03060C18"),BigInt("0xFFE938B633338561"),BigInt("0x7E5A29EE636D1EEA"),BigInt("0x0134D92653589793"),BigInt("0x49E52D0D9B47BA97"),BigInt("0x368BDDC5AB7233EE"),BigInt("0xB738CC9DFB2CA865"),BigInt("0xC8563C55CB19211C"),BigInt("0x5E7BDBF1E3AC9DEC"),BigInt("0x21152B39D3991495"),BigInt("0xA0A63A6183C78F1E"),BigInt("0xDFC8CAA9B3F20667"),BigInt("0x97193E827BED2B63"),BigInt("0xE877CE4A4BD8A21A"),BigInt("0x69C4DF121B863991"),BigInt("0x16AA2FDA2BB3B0E8"),BigInt("0xF86737458BB86399"),BigInt("0x8709C78DBB8DEAE0"),BigInt("0x06BAD6D5EBD3716B"),BigInt("0x79D4261DDBE6F812"),BigInt("0x3105D23613F9D516"),BigInt("0x4E6B22FE23CC5C6F"),BigInt("0xCFD833A67392C7E4"),BigInt("0xB0B6C36E43A74E9D"),BigInt("0x9A6C9329AC4BC9B5"),BigInt("0xE50263E19C7E40CC"),BigInt("0x64B172B9CC20DB47"),BigInt("0x1BDF8271FC15523E"),BigInt("0x530E765A340A7F3A"),BigInt("0x2C608692043FF643"),BigInt("0xADD397CA54616DC8"),BigInt("0xD2BD67026454E4B1"),BigInt("0x3C707F9DC45F37C0"),BigInt("0x431E8F55F46ABEB9"),BigInt("0xC2AD9E0DA4342532"),BigInt("0xBDC36EC59401AC4B"),BigInt("0xF5129AEE5C1E814F"),BigInt("0x8A7C6A266C2B0836"),BigInt("0x0BCF7B7E3C7593BD"),BigInt("0x74A18BB60C401AC4"),BigInt("0xE28C6C1224F5A634"),BigInt("0x9DE29CDA14C02F4D"),BigInt("0x1C518D82449EB4C6"),BigInt("0x633F7D4A74AB3DBF"),BigInt("0x2BEE8961BCB410BB"),BigInt("0x548079A98C8199C2"),BigInt("0xD53368F1DCDF0249"),BigInt("0xAA5D9839ECEA8B30"),BigInt("0x449080A64CE15841"),BigInt("0x3BFE706E7CD4D138"),BigInt("0xBA4D61362C8A4AB3"),BigInt("0xC52391FE1CBFC3CA"),BigInt("0x8DF265D5D4A0EECE"),BigInt("0xF29C951DE49567B7"),BigInt("0x732F8445B4CBFC3C"),BigInt("0x0C41748D84FE7545"),BigInt("0x6BAD6D5EBD3716B7"),BigInt("0x14C39D968D029FCE"),BigInt("0x95708CCEDD5C0445"),BigInt("0xEA1E7C06ED698D3C"),BigInt("0xA2CF882D2576A038"),BigInt("0xDDA178E515432941"),BigInt("0x5C1269BD451DB2CA"),BigInt("0x237C997575283BB3"),BigInt("0xCDB181EAD523E8C2"),BigInt("0xB2DF7122E51661BB"),BigInt("0x336C607AB548FA30"),BigInt("0x4C0290B2857D7349"),BigInt("0x04D364994D625E4D"),BigInt("0x7BBD94517D57D734"),BigInt("0xFA0E85092D094CBF"),BigInt("0x856075C11D3CC5C6"),BigInt("0x134D926535897936"),BigInt("0x6C2362AD05BCF04F"),BigInt("0xED9073F555E26BC4"),BigInt("0x92FE833D65D7E2BD"),BigInt("0xDA2F7716ADC8CFB9"),BigInt("0xA54187DE9DFD46C0"),BigInt("0x24F29686CDA3DD4B"),BigInt("0x5B9C664EFD965432"),BigInt("0xB5517ED15D9D8743"),BigInt("0xCA3F8E196DA80E3A"),BigInt("0x4B8C9F413DF695B1"),BigInt("0x34E26F890DC31CC8"),BigInt("0x7C339BA2C5DC31CC"),BigInt("0x035D6B6AF5E9B8B5"),BigInt("0x82EE7A32A5B7233E"),BigInt("0xFD808AFA9582AA47"),BigInt("0x4D364994D625E4DA"),BigInt("0x3258B95CE6106DA3"),BigInt("0xB3EBA804B64EF628"),BigInt("0xCC8558CC867B7F51"),BigInt("0x8454ACE74E645255"),BigInt("0xFB3A5C2F7E51DB2C"),BigInt("0x7A894D772E0F40A7"),BigInt("0x05E7BDBF1E3AC9DE"),BigInt("0xEB2AA520BE311AAF"),BigInt("0x944455E88E0493D6"),BigInt("0x15F744B0DE5A085D"),BigInt("0x6A99B478EE6F8124"),BigInt("0x224840532670AC20"),BigInt("0x5D26B09B16452559"),BigInt("0xDC95A1C3461BBED2"),BigInt("0xA3FB510B762E37AB"),BigInt("0x35D6B6AF5E9B8B5B"),BigInt("0x4AB846676EAE0222"),BigInt("0xCB0B573F3EF099A9"),BigInt("0xB465A7F70EC510D0"),BigInt("0xFCB453DCC6DA3DD4"),BigInt("0x83DAA314F6EFB4AD"),BigInt("0x0269B24CA6B12F26"),BigInt("0x7D0742849684A65F"),BigInt("0x93CA5A1B368F752E"),BigInt("0xECA4AAD306BAFC57"),BigInt("0x6D17BB8B56E467DC"),BigInt("0x12794B4366D1EEA5"),BigInt("0x5AA8BF68AECEC3A1"),BigInt("0x25C64FA09EFB4AD8"),BigInt("0xA4755EF8CEA5D153"),BigInt("0xDB1BAE30FE90582A"),BigInt("0xBCF7B7E3C7593BD8"),BigInt("0xC399472BF76CB2A1"),BigInt("0x422A5673A732292A"),BigInt("0x3D44A6BB9707A053"),BigInt("0x759552905F188D57"),BigInt("0x0AFBA2586F2D042E"),BigInt("0x8B48B3003F739FA5"),BigInt("0xF42643C80F4616DC"),BigInt("0x1AEB5B57AF4DC5AD"),BigInt("0x6585AB9F9F784CD4"),BigInt("0xE436BAC7CF26D75F"),BigInt("0x9B584A0FFF135E26"),BigInt("0xD389BE24370C7322"),BigInt("0xACE74EEC0739FA5B"),BigInt("0x2D545FB4576761D0"),BigInt("0x523AAF7C6752E8A9"),BigInt("0xC41748D84FE75459"),BigInt("0xBB79B8107FD2DD20"),BigInt("0x3ACAA9482F8C46AB"),BigInt("0x45A459801FB9CFD2"),BigInt("0x0D75ADABD7A6E2D6"),BigInt("0x721B5D63E7936BAF"),BigInt("0xF3A84C3BB7CDF024"),BigInt("0x8CC6BCF387F8795D"),BigInt("0x620BA46C27F3AA2C"),BigInt("0x1D6554A417C62355"),BigInt("0x9CD645FC4798B8DE"),BigInt("0xE3B8B53477AD31A7"),BigInt("0xAB69411FBFB21CA3"),BigInt("0xD407B1D78F8795DA"),BigInt("0x55B4A08FDFD90E51"),BigInt("0x2ADA5047EFEC8728")];class CRC64{constructor(){this._crc=BigInt(0)}update(e){const t=typeof e==="string"?Buffer.from(e):e;let a=CRC64.flip64Bits(this._crc);for(const e of t){const t=Number(a&BigInt(255));a=r[t^e]^a>>BigInt(8)}this._crc=CRC64.flip64Bits(a)}digest(e){switch(e){case"hex":return this._crc.toString(16).toUpperCase();case"base64":return this.toBuffer().toString("base64");default:return this.toBuffer()}}toBuffer(){return Buffer.from([0,8,16,24,32,40,48,56].map((e=>Number(this._crc>>BigInt(e)&BigInt(255)))))}static flip64Bits(e){return(BigInt(1)<s(this,void 0,void 0,(function*(){return t.get(e,r)}))));const i=yield a.readBody();return JSON.parse(i)}))}getContainerItems(e,t){return s(this,void 0,void 0,(function*(){const r=new d.URL(t);r.searchParams.append("itemPath",e);const a=this.downloadHttpManager.getClient(0);const i=l.getDownloadHeaders("application/json");const n=yield v.retryHttpClientRequest("Get Container Items",(()=>s(this,void 0,void 0,(function*(){return a.get(r.toString(),i)}))));const o=yield n.readBody();return JSON.parse(o)}))}downloadSingleArtifact(e){return s(this,void 0,void 0,(function*(){const t=g.getDownloadFileConcurrency();p.debug(`Download file concurrency is set to ${t}`);const r=[...new Array(t).keys()];let a=0;let i=0;p.info(`Total number of files that will be downloaded: ${e.length}`);this.statusReporter.setTotalNumberOfFilesToProcess(e.length);this.statusReporter.start();yield Promise.all(r.map((t=>s(this,void 0,void 0,(function*(){while(a{throw new Error(`Unable to download the artifact: ${e}`)})).finally((()=>{this.statusReporter.stop();this.downloadHttpManager.disposeAndReplaceAllClients()}))}))}downloadIndividualFile(e,t,r){return s(this,void 0,void 0,(function*(){let a=0;const i=g.getRetryLimit();let n=o.createWriteStream(r);const c=l.getDownloadHeaders("application/json",true,true);const makeDownloadRequest=()=>s(this,void 0,void 0,(function*(){const r=this.downloadHttpManager.getClient(e);return yield r.get(t,c)}));const isGzip=e=>"content-encoding"in e&&e["content-encoding"]==="gzip";const backOff=r=>s(this,void 0,void 0,(function*(){a++;if(a>i){return Promise.reject(new Error(`Retry limit has been reached. Unable to download ${t}`))}else{this.downloadHttpManager.disposeAndReplaceClient(e);if(r){p.info(`Backoff due to too many requests, retry #${a}. Waiting for ${r} milliseconds before continuing the download`);yield l.sleep(r)}else{const e=l.getExponentialRetryTimeInMilliseconds(a);p.info(`Exponential backoff for retry #${a}. Waiting for ${e} milliseconds before continuing the download`);yield l.sleep(e)}p.info(`Finished backoff for retry #${a}, continuing with download`)}}));const isAllBytesReceived=(e,t)=>{if(!e||!t||process.env["ACTIONS_ARTIFACT_SKIP_DOWNLOAD_VALIDATION"]){p.info("Skipping download validation.");return true}return parseInt(e)===t};const resetDestinationStream=e=>s(this,void 0,void 0,(function*(){n.close();yield l.rmFile(e);n=o.createWriteStream(e)}));while(a<=i){let e;try{e=yield makeDownloadRequest()}catch(e){p.info("An error occurred while attempting to download a file");console.log(e);yield backOff();continue}let a=false;if(l.isSuccessStatusCode(e.message.statusCode)){try{const t=isGzip(e.message.headers);yield this.pipeResponseToFile(e,n,t);if(t||isAllBytesReceived(e.message.headers["content-length"],yield l.getFileSize(r))){return}else{a=true}}catch(e){a=true}}if(a||l.isRetryableStatusCode(e.message.statusCode)){p.info(`A ${e.message.statusCode} response code has been received while attempting to download an artifact`);resetDestinationStream(r);l.isThrottledStatusCode(e.message.statusCode)?yield backOff(l.tryGetRetryAfterValueTimeInMilliseconds(e.message.headers)):yield backOff()}else{l.displayHttpDiagnostics(e);return Promise.reject(new Error(`Unexpected http ${e.message.statusCode} during download for ${t}`))}}}))}pipeResponseToFile(e,t,r){return s(this,void 0,void 0,(function*(){yield new Promise(((a,i)=>{if(r){const r=c.createGunzip();e.message.on("error",(e=>{p.error(`An error occurred while attempting to read the response stream`);r.close();t.close();i(e)})).pipe(r).on("error",(e=>{p.error(`An error occurred while attempting to decompress the response stream`);t.close();i(e)})).pipe(t).on("close",(()=>{a()})).on("error",(e=>{p.error(`An error occurred while writing a downloaded file to ${t.path}`);i(e)}))}else{e.message.on("error",(e=>{p.error(`An error occurred while attempting to read the response stream`);t.close();i(e)})).pipe(t).on("close",(()=>{a()})).on("error",(e=>{p.error(`An error occurred while writing a downloaded file to ${t.path}`);i(e)}))}}));return}))}}t.DownloadHttpClient=DownloadHttpClient},5686:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.getDownloadSpecification=void 0;const s=n(r(1017));function getDownloadSpecification(e,t,r,a){const i=new Set;const n={rootDownloadLocation:a?s.join(r,e):r,directoryStructure:[],emptyFilesToCreate:[],filesToDownload:[]};for(const o of t){if(o.path.startsWith(`${e}/`)||o.path.startsWith(`${e}\\`)){const t=s.normalize(o.path);const p=s.join(r,a?t:t.replace(e,""));if(o.itemType==="file"){i.add(s.dirname(p));if(o.fileLength===0){n.emptyFilesToCreate.push(p)}else{n.filesToDownload.push({sourceLocation:o.contentLocation,targetPath:p})}}}}n.directoryStructure=Array.from(i);return n}t.getDownloadSpecification=getDownloadSpecification},6527:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.HttpManager=void 0;const a=r(6327);class HttpManager{constructor(e,t){if(e<1){throw new Error("There must be at least one client")}this.userAgent=t;this.clients=new Array(e).fill(a.createHttpClient(t))}getClient(e){return this.clients[e]}disposeAndReplaceClient(e){this.clients[e].dispose();this.clients[e]=a.createHttpClient(this.userAgent)}disposeAndReplaceAllClients(){for(const[e]of this.clients.entries()){this.disposeAndReplaceClient(e)}}}t.HttpManager=HttpManager},7398:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.checkArtifactFilePath=t.checkArtifactName=void 0;const a=r(2186);const i=new Map([['"',' Double quote "'],[":"," Colon :"],["<"," Less than <"],[">"," Greater than >"],["|"," Vertical bar |"],["*"," Asterisk *"],["?"," Question mark ?"],["\r"," Carriage return \\r"],["\n"," Line feed \\n"]]);const n=new Map([...i,["\\"," Backslash \\"],["/"," Forward slash /"]]);function checkArtifactName(e){if(!e){throw new Error(`Artifact name: ${e}, is incorrectly provided`)}for(const[t,r]of n){if(e.includes(t)){throw new Error(`Artifact name is not valid: ${e}. Contains the following character: ${r}\n \nInvalid characters include: ${Array.from(n.values()).toString()}\n \nThese characters are not allowed in the artifact name due to limitations with certain file systems such as NTFS. To maintain file system agnostic behavior, these characters are intentionally not allowed to prevent potential problems with downloads on different file systems.`)}}a.info(`Artifact name is valid!`)}t.checkArtifactName=checkArtifactName;function checkArtifactFilePath(e){if(!e){throw new Error(`Artifact path: ${e}, is incorrectly provided`)}for(const[t,r]of i){if(e.includes(t)){throw new Error(`Artifact path is not valid: ${e}. Contains the following character: ${r}\n \nInvalid characters include: ${Array.from(i.values()).toString()}\n \nThe following characters are not allowed in files that are uploaded due to limitations with certain file systems such as NTFS. To maintain file system agnostic behavior, these characters are intentionally not allowed to prevent potential problems with downloads on different file systems.\n `)}}}t.checkArtifactFilePath=checkArtifactFilePath},755:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var s=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(a.next(e))}catch(e){i(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.retryHttpClientRequest=t.retry=void 0;const o=r(6327);const p=n(r(2186));const c=r(2222);function retry(e,t,r,a){return s(this,void 0,void 0,(function*(){let i=undefined;let n=undefined;let s=false;let c="";let l=undefined;let d=1;while(d<=a){try{i=yield t();n=i.message.statusCode;if(o.isSuccessStatusCode(n)){return i}if(n){l=r.get(n)}s=o.isRetryableStatusCode(n);c=`Artifact service responded with ${n}`}catch(e){s=true;c=e.message}if(!s){p.info(`${e} - Error is not retryable`);if(i){o.displayHttpDiagnostics(i)}break}p.info(`${e} - Attempt ${d} of ${a} failed with error: ${c}`);yield o.sleep(o.getExponentialRetryTimeInMilliseconds(d));d++}if(i){o.displayHttpDiagnostics(i)}if(l){throw Error(`${e} failed: ${l}`)}throw Error(`${e} failed: ${c}`)}))}t.retry=retry;function retryHttpClientRequest(e,t,r=new Map,a=c.getRetryLimit()){return s(this,void 0,void 0,(function*(){return yield retry(e,t,r,a)}))}t.retryHttpClientRequest=retryHttpClientRequest},9081:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.StatusReporter=void 0;const a=r(2186);class StatusReporter{constructor(e){this.totalNumberOfFilesToProcess=0;this.processedCount=0;this.largeFiles=new Map;this.totalFileStatus=undefined;this.displayFrequencyInMilliseconds=e}setTotalNumberOfFilesToProcess(e){this.totalNumberOfFilesToProcess=e;this.processedCount=0}start(){this.totalFileStatus=setInterval((()=>{const e=this.formatPercentage(this.processedCount,this.totalNumberOfFilesToProcess);a.info(`Total file count: ${this.totalNumberOfFilesToProcess} ---- Processed file #${this.processedCount} (${e.slice(0,e.indexOf(".")+2)}%)`)}),this.displayFrequencyInMilliseconds)}updateLargeFileStatus(e,t,r,i){const n=this.formatPercentage(r,i);a.info(`Uploaded ${e} (${n.slice(0,n.indexOf(".")+2)}%) bytes ${t}:${r}`)}stop(){if(this.totalFileStatus){clearInterval(this.totalFileStatus)}}incrementProcessedCount(){this.processedCount++}formatPercentage(e,t){return(e/t*100).toFixed(4).toString()}}t.StatusReporter=StatusReporter},606:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var s=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(a.next(e))}catch(e){i(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};var o=this&&this.__asyncValues||function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],r;return t?t.call(e):(e=typeof __values==="function"?__values(e):e[Symbol.iterator](),r={},verb("next"),verb("throw"),verb("return"),r[Symbol.asyncIterator]=function(){return this},r);function verb(t){r[t]=e[t]&&function(r){return new Promise((function(a,i){r=e[t](r),settle(a,i,r.done,r.value)}))}}function settle(e,t,r,a){Promise.resolve(a).then((function(t){e({value:t,done:r})}),t)}};Object.defineProperty(t,"__esModule",{value:true});t.createGZipFileInBuffer=t.createGZipFileOnDisk=void 0;const p=n(r(7147));const c=n(r(9796));const l=r(3837);const d=l.promisify(p.stat);const u=[".gzip",".zip",".tar.lz",".tar.gz",".tar.bz2",".7z"];function createGZipFileOnDisk(e,t){return s(this,void 0,void 0,(function*(){for(const t of u){if(e.endsWith(t)){return Number.MAX_SAFE_INTEGER}}return new Promise(((r,a)=>{const i=p.createReadStream(e);const n=c.createGzip();const o=p.createWriteStream(t);i.pipe(n).pipe(o);o.on("finish",(()=>s(this,void 0,void 0,(function*(){const e=(yield d(t)).size;r(e)}))));o.on("error",(e=>{console.log(e);a}))}))}))}t.createGZipFileOnDisk=createGZipFileOnDisk;function createGZipFileInBuffer(e){return s(this,void 0,void 0,(function*(){return new Promise((t=>s(this,void 0,void 0,(function*(){var r,a;const i=p.createReadStream(e);const n=c.createGzip();i.pipe(n);const s=[];try{for(var l=o(n),d;d=yield l.next(),!d.done;){const e=d.value;s.push(e)}}catch(e){r={error:e}}finally{try{if(d&&!d.done&&(a=l.return))yield a.call(l)}finally{if(r)throw r.error}}t(Buffer.concat(s))}))))}))}t.createGZipFileInBuffer=createGZipFileInBuffer},4354:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var s=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(a.next(e))}catch(e){i(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.UploadHttpClient=void 0;const o=n(r(7147));const p=n(r(2186));const c=n(r(8065));const l=n(r(2781));const d=r(6327);const u=r(2222);const m=r(3837);const h=r(7310);const g=r(4074);const v=r(9081);const y=r(6255);const b=r(6527);const w=r(606);const x=r(755);const E=m.promisify(o.stat);class UploadHttpClient{constructor(){this.uploadHttpManager=new b.HttpManager(u.getUploadFileConcurrency(),"@actions/artifact-upload");this.statusReporter=new v.StatusReporter(1e4)}createArtifactInFileContainer(e,t){return s(this,void 0,void 0,(function*(){const r={Type:"actions_storage",Name:e};if(t&&t.retentionDays){const e=u.getRetentionDays();r.RetentionDays=d.getProperRetention(t.retentionDays,e)}const a=JSON.stringify(r,null,2);const i=d.getArtifactUrl();const n=this.uploadHttpManager.getClient(0);const o=d.getUploadHeaders("application/json",false);const p=new Map([[y.HttpCodes.Forbidden,"Artifact storage quota has been hit. Unable to upload any new artifacts"],[y.HttpCodes.BadRequest,`The artifact name ${e} is not valid. Request URL ${i}`]]);const c=yield x.retryHttpClientRequest("Create Artifact Container",(()=>s(this,void 0,void 0,(function*(){return n.post(i,a,o)}))),p);const l=yield c.readBody();return JSON.parse(l)}))}uploadArtifactToFileContainer(e,t,r){return s(this,void 0,void 0,(function*(){const a=u.getUploadFileConcurrency();const i=u.getUploadChunkSize();p.debug(`File Concurrency: ${a}, and Chunk Size: ${i}`);const n=[];let o=true;if(r){if(r.continueOnError===false){o=false}}for(const r of t){const t=new h.URL(e);t.searchParams.append("itemPath",r.uploadFilePath);n.push({file:r.absoluteFilePath,resourceUrl:t.toString(),maxChunkSize:i,continueOnError:o})}const c=[...new Array(a).keys()];const l=[];let d=0;let m=0;let v=0;let y=0;let b=false;this.statusReporter.setTotalNumberOfFilesToProcess(t.length);this.statusReporter.start();yield Promise.all(c.map((e=>s(this,void 0,void 0,(function*(){while(do.createReadStream(t.file);m=false;u=a}else{p.debug(`A gzip file created for ${t.file} helped with reducing the size of the original file. The file will be uploaded using gzip.`);i=()=>{const e=new l.PassThrough;e.end(r);return e};u=r.byteLength}const n=yield this.uploadChunk(e,t.resourceUrl,i,0,u-1,u,m,a);if(!n){s=false;d+=u;p.warning(`Aborting upload for ${t.file} due to failure`)}return{isSuccess:s,successfulUploadSize:u-d,totalSize:a}}else{const r=yield c.file();p.debug(`${t.file} is greater than 64k in size. Creating a gzip file on-disk ${r.path} to potentially reduce the upload size`);u=yield w.createGZipFileOnDisk(t.file,r.path);let l=r.path;if(!i&&ao.createReadStream(l,{start:i,end:c,autoClose:false})),i,c,u,m,a);if(!g){s=false;d+=r;p.warning(`Aborting upload for ${t.file} due to failure`);h=true}else{if(u>8388608){this.statusReporter.updateLargeFileStatus(t.file,i,c,u)}}}p.debug(`deleting temporary gzip file ${r.path}`);yield r.cleanup();return{isSuccess:s,successfulUploadSize:u-d,totalSize:a}}}))}uploadChunk(e,t,r,a,i,n,o,c){return s(this,void 0,void 0,(function*(){const l=yield d.digestForStream(r());const m=d.getUploadHeaders("application/octet-stream",true,o,c,i-a+1,d.getContentRange(a,i,n),l);const uploadChunkRequest=()=>s(this,void 0,void 0,(function*(){const a=this.uploadHttpManager.getClient(e);return yield a.sendStream("PUT",t,r(),m)}));let h=0;const g=u.getRetryLimit();const incrementAndCheckRetryLimit=e=>{h++;if(h>g){if(e){d.displayHttpDiagnostics(e)}p.info(`Retry limit has been reached for chunk at offset ${a} to ${t}`);return true}return false};const backOff=t=>s(this,void 0,void 0,(function*(){this.uploadHttpManager.disposeAndReplaceClient(e);if(t){p.info(`Backoff due to too many requests, retry #${h}. Waiting for ${t} milliseconds before continuing the upload`);yield d.sleep(t)}else{const e=d.getExponentialRetryTimeInMilliseconds(h);p.info(`Exponential backoff for retry #${h}. Waiting for ${e} milliseconds before continuing the upload at offset ${a}`);yield d.sleep(e)}p.info(`Finished backoff for retry #${h}, continuing with upload`);return}));while(h<=g){let r;try{r=yield uploadChunkRequest()}catch(t){p.info(`An error has been caught http-client index ${e}, retrying the upload`);console.log(t);if(incrementAndCheckRetryLimit()){return false}yield backOff();continue}yield r.readBody();if(d.isSuccessStatusCode(r.message.statusCode)){return true}else if(d.isRetryableStatusCode(r.message.statusCode)){p.info(`A ${r.message.statusCode} status code has been received, will attempt to retry the upload`);if(incrementAndCheckRetryLimit(r)){return false}d.isThrottledStatusCode(r.message.statusCode)?yield backOff(d.tryGetRetryAfterValueTimeInMilliseconds(r.message.headers)):yield backOff()}else{p.error(`Unexpected response. Unable to upload chunk to ${t}`);d.displayHttpDiagnostics(r);return false}}return false}))}patchArtifactSize(e,t){return s(this,void 0,void 0,(function*(){const r=new h.URL(d.getArtifactUrl());r.searchParams.append("artifactName",t);const a={Size:e};const i=JSON.stringify(a,null,2);p.debug(`URL is ${r.toString()}`);const n=this.uploadHttpManager.getClient(0);const o=d.getUploadHeaders("application/json",false);const c=new Map([[y.HttpCodes.NotFound,`An Artifact with the name ${t} was not found`]]);const l=yield x.retryHttpClientRequest("Finalize artifact upload",(()=>s(this,void 0,void 0,(function*(){return n.patch(r.toString(),i,o)}))),c);yield l.readBody();p.debug(`Artifact ${t} has been successfully uploaded, total size in bytes: ${e}`)}))}}t.UploadHttpClient=UploadHttpClient},183:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.getUploadSpecification=void 0;const s=n(r(7147));const o=r(2186);const p=r(1017);const c=r(7398);function getUploadSpecification(e,t,r){const a=[];if(!s.existsSync(t)){throw new Error(`Provided rootDirectory ${t} does not exist`)}if(!s.lstatSync(t).isDirectory()){throw new Error(`Provided rootDirectory ${t} is not a valid directory`)}t=p.normalize(t);t=p.resolve(t);for(let i of r){if(!s.existsSync(i)){throw new Error(`File ${i} does not exist`)}if(!s.lstatSync(i).isDirectory()){i=p.normalize(i);i=p.resolve(i);if(!i.startsWith(t)){throw new Error(`The rootDirectory: ${t} is not a parent directory of the file: ${i}`)}const r=i.replace(t,"");c.checkArtifactFilePath(r);a.push({absoluteFilePath:i,uploadFilePath:p.join(e,r)})}else{o.debug(`Removing ${i} from rawSearchResults because it is a directory`)}}return a}t.getUploadSpecification=getUploadSpecification},6327:function(e,t,r){"use strict";var a=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(a.next(e))}catch(e){i(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.digestForStream=t.sleep=t.getProperRetention=t.rmFile=t.getFileSize=t.createEmptyFilesForArtifact=t.createDirectoriesForArtifact=t.displayHttpDiagnostics=t.getArtifactUrl=t.createHttpClient=t.getUploadHeaders=t.getDownloadHeaders=t.getContentRange=t.tryGetRetryAfterValueTimeInMilliseconds=t.isThrottledStatusCode=t.isRetryableStatusCode=t.isForbiddenStatusCode=t.isSuccessStatusCode=t.getApiVersion=t.parseEnvNumber=t.getExponentialRetryTimeInMilliseconds=void 0;const n=i(r(6113));const s=r(7147);const o=r(2186);const p=r(6255);const c=r(5526);const l=r(2222);const d=i(r(3549));function getExponentialRetryTimeInMilliseconds(e){if(e<0){throw new Error("RetryCount should not be negative")}else if(e===0){return l.getInitialRetryIntervalInMilliseconds()}const t=l.getInitialRetryIntervalInMilliseconds()*l.getRetryMultiplier()*e;const r=t*l.getRetryMultiplier();return Math.trunc(Math.random()*(r-t)+t)}t.getExponentialRetryTimeInMilliseconds=getExponentialRetryTimeInMilliseconds;function parseEnvNumber(e){const t=Number(process.env[e]);if(Number.isNaN(t)||t<0){return undefined}return t}t.parseEnvNumber=parseEnvNumber;function getApiVersion(){return"6.0-preview"}t.getApiVersion=getApiVersion;function isSuccessStatusCode(e){if(!e){return false}return e>=200&&e<300}t.isSuccessStatusCode=isSuccessStatusCode;function isForbiddenStatusCode(e){if(!e){return false}return e===p.HttpCodes.Forbidden}t.isForbiddenStatusCode=isForbiddenStatusCode;function isRetryableStatusCode(e){if(!e){return false}const t=[p.HttpCodes.BadGateway,p.HttpCodes.GatewayTimeout,p.HttpCodes.InternalServerError,p.HttpCodes.ServiceUnavailable,p.HttpCodes.TooManyRequests,413];return t.includes(e)}t.isRetryableStatusCode=isRetryableStatusCode;function isThrottledStatusCode(e){if(!e){return false}return e===p.HttpCodes.TooManyRequests}t.isThrottledStatusCode=isThrottledStatusCode;function tryGetRetryAfterValueTimeInMilliseconds(e){if(e["retry-after"]){const t=Number(e["retry-after"]);if(!isNaN(t)){o.info(`Retry-After header is present with a value of ${t}`);return t*1e3}o.info(`Returned retry-after header value: ${t} is non-numeric and cannot be used`);return undefined}o.info(`No retry-after header was found. Dumping all headers for diagnostic purposes`);console.log(e);return undefined}t.tryGetRetryAfterValueTimeInMilliseconds=tryGetRetryAfterValueTimeInMilliseconds;function getContentRange(e,t,r){return`bytes ${e}-${t}/${r}`}t.getContentRange=getContentRange;function getDownloadHeaders(e,t,r){const a={};if(e){a["Content-Type"]=e}if(t){a["Connection"]="Keep-Alive";a["Keep-Alive"]="10"}if(r){a["Accept-Encoding"]="gzip";a["Accept"]=`application/octet-stream;api-version=${getApiVersion()}`}else{a["Accept"]=`application/json;api-version=${getApiVersion()}`}return a}t.getDownloadHeaders=getDownloadHeaders;function getUploadHeaders(e,t,r,a,i,n,s){const o={};o["Accept"]=`application/json;api-version=${getApiVersion()}`;if(e){o["Content-Type"]=e}if(t){o["Connection"]="Keep-Alive";o["Keep-Alive"]="10"}if(r){o["Content-Encoding"]="gzip";o["x-tfs-filelength"]=a}if(i){o["Content-Length"]=i}if(n){o["Content-Range"]=n}if(s){o["x-actions-results-crc64"]=s.crc64;o["x-actions-results-md5"]=s.md5}return o}t.getUploadHeaders=getUploadHeaders;function createHttpClient(e){return new p.HttpClient(e,[new c.BearerCredentialHandler(l.getRuntimeToken())])}t.createHttpClient=createHttpClient;function getArtifactUrl(){const e=`${l.getRuntimeUrl()}_apis/pipelines/workflows/${l.getWorkFlowRunId()}/artifacts?api-version=${getApiVersion()}`;o.debug(`Artifact Url: ${e}`);return e}t.getArtifactUrl=getArtifactUrl;function displayHttpDiagnostics(e){o.info(`##### Begin Diagnostic HTTP information #####\nStatus Code: ${e.message.statusCode}\nStatus Message: ${e.message.statusMessage}\nHeader Information: ${JSON.stringify(e.message.headers,undefined,2)}\n###### End Diagnostic HTTP information ######`)}t.displayHttpDiagnostics=displayHttpDiagnostics;function createDirectoriesForArtifact(e){return a(this,void 0,void 0,(function*(){for(const t of e){yield s.promises.mkdir(t,{recursive:true})}}))}t.createDirectoriesForArtifact=createDirectoriesForArtifact;function createEmptyFilesForArtifact(e){return a(this,void 0,void 0,(function*(){for(const t of e){yield(yield s.promises.open(t,"w")).close()}}))}t.createEmptyFilesForArtifact=createEmptyFilesForArtifact;function getFileSize(e){return a(this,void 0,void 0,(function*(){const t=yield s.promises.stat(e);o.debug(`${e} size:(${t.size}) blksize:(${t.blksize}) blocks:(${t.blocks})`);return t.size}))}t.getFileSize=getFileSize;function rmFile(e){return a(this,void 0,void 0,(function*(){yield s.promises.unlink(e)}))}t.rmFile=rmFile;function getProperRetention(e,t){if(e<0){throw new Error("Invalid retention, minimum value is 1.")}let r=e;if(t){const e=parseInt(t);if(!isNaN(e)&&esetTimeout(t,e)))}))}t.sleep=sleep;function digestForStream(e){return a(this,void 0,void 0,(function*(){return new Promise(((t,r)=>{const a=new d.default;const i=n.default.createHash("md5");e.on("data",(e=>{a.update(e);i.update(e)})).on("end",(()=>t({crc64:a.digest("base64"),md5:i.digest("base64")}))).on("error",r)}))}))}t.digestForStream=digestForStream},7351:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.issue=t.issueCommand=void 0;const s=n(r(2037));const o=r(5278);function issueCommand(e,t,r){const a=new Command(e,t,r);process.stdout.write(a.toString()+s.EOL)}t.issueCommand=issueCommand;function issue(e,t=""){issueCommand(e,{},t)}t.issue=issue;const p="::";class Command{constructor(e,t,r){if(!e){e="missing.command"}this.command=e;this.properties=t;this.message=r}toString(){let e=p+this.command;if(this.properties&&Object.keys(this.properties).length>0){e+=" ";let t=true;for(const r in this.properties){if(this.properties.hasOwnProperty(r)){const a=this.properties[r];if(a){if(t){t=false}else{e+=","}e+=`${r}=${escapeProperty(a)}`}}}}e+=`${p}${escapeData(this.message)}`;return e}}function escapeData(e){return o.toCommandValue(e).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A")}function escapeProperty(e){return o.toCommandValue(e).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A").replace(/:/g,"%3A").replace(/,/g,"%2C")}},2186:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var s=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(a.next(e))}catch(e){i(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.getIDToken=t.getState=t.saveState=t.group=t.endGroup=t.startGroup=t.info=t.notice=t.warning=t.error=t.debug=t.isDebug=t.setFailed=t.setCommandEcho=t.setOutput=t.getBooleanInput=t.getMultilineInput=t.getInput=t.addPath=t.setSecret=t.exportVariable=t.ExitCode=void 0;const o=r(7351);const p=r(717);const c=r(5278);const l=n(r(2037));const d=n(r(1017));const u=r(5840);const m=r(8041);var h;(function(e){e[e["Success"]=0]="Success";e[e["Failure"]=1]="Failure"})(h=t.ExitCode||(t.ExitCode={}));function exportVariable(e,t){const r=c.toCommandValue(t);process.env[e]=r;const a=process.env["GITHUB_ENV"]||"";if(a){const t=`ghadelimiter_${u.v4()}`;if(e.includes(t)){throw new Error(`Unexpected input: name should not contain the delimiter "${t}"`)}if(r.includes(t)){throw new Error(`Unexpected input: value should not contain the delimiter "${t}"`)}const a=`${e}<<${t}${l.EOL}${r}${l.EOL}${t}`;p.issueCommand("ENV",a)}else{o.issueCommand("set-env",{name:e},r)}}t.exportVariable=exportVariable;function setSecret(e){o.issueCommand("add-mask",{},e)}t.setSecret=setSecret;function addPath(e){const t=process.env["GITHUB_PATH"]||"";if(t){p.issueCommand("PATH",e)}else{o.issueCommand("add-path",{},e)}process.env["PATH"]=`${e}${d.delimiter}${process.env["PATH"]}`}t.addPath=addPath;function getInput(e,t){const r=process.env[`INPUT_${e.replace(/ /g,"_").toUpperCase()}`]||"";if(t&&t.required&&!r){throw new Error(`Input required and not supplied: ${e}`)}if(t&&t.trimWhitespace===false){return r}return r.trim()}t.getInput=getInput;function getMultilineInput(e,t){const r=getInput(e,t).split("\n").filter((e=>e!==""));return r}t.getMultilineInput=getMultilineInput;function getBooleanInput(e,t){const r=["true","True","TRUE"];const a=["false","False","FALSE"];const i=getInput(e,t);if(r.includes(i))return true;if(a.includes(i))return false;throw new TypeError(`Input does not meet YAML 1.2 "Core Schema" specification: ${e}\n`+`Support boolean input list: \`true | True | TRUE | false | False | FALSE\``)}t.getBooleanInput=getBooleanInput;function setOutput(e,t){process.stdout.write(l.EOL);o.issueCommand("set-output",{name:e},t)}t.setOutput=setOutput;function setCommandEcho(e){o.issue("echo",e?"on":"off")}t.setCommandEcho=setCommandEcho;function setFailed(e){process.exitCode=h.Failure;error(e)}t.setFailed=setFailed;function isDebug(){return process.env["RUNNER_DEBUG"]==="1"}t.isDebug=isDebug;function debug(e){o.issueCommand("debug",{},e)}t.debug=debug;function error(e,t={}){o.issueCommand("error",c.toCommandProperties(t),e instanceof Error?e.toString():e)}t.error=error;function warning(e,t={}){o.issueCommand("warning",c.toCommandProperties(t),e instanceof Error?e.toString():e)}t.warning=warning;function notice(e,t={}){o.issueCommand("notice",c.toCommandProperties(t),e instanceof Error?e.toString():e)}t.notice=notice;function info(e){process.stdout.write(e+l.EOL)}t.info=info;function startGroup(e){o.issue("group",e)}t.startGroup=startGroup;function endGroup(){o.issue("endgroup")}t.endGroup=endGroup;function group(e,t){return s(this,void 0,void 0,(function*(){startGroup(e);let r;try{r=yield t()}finally{endGroup()}return r}))}t.group=group;function saveState(e,t){o.issueCommand("save-state",{name:e},t)}t.saveState=saveState;function getState(e){return process.env[`STATE_${e}`]||""}t.getState=getState;function getIDToken(e){return s(this,void 0,void 0,(function*(){return yield m.OidcClient.getIDToken(e)}))}t.getIDToken=getIDToken;var g=r(1327);Object.defineProperty(t,"summary",{enumerable:true,get:function(){return g.summary}});var v=r(1327);Object.defineProperty(t,"markdownSummary",{enumerable:true,get:function(){return v.markdownSummary}});var y=r(2981);Object.defineProperty(t,"toPosixPath",{enumerable:true,get:function(){return y.toPosixPath}});Object.defineProperty(t,"toWin32Path",{enumerable:true,get:function(){return y.toWin32Path}});Object.defineProperty(t,"toPlatformPath",{enumerable:true,get:function(){return y.toPlatformPath}})},717:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.issueCommand=void 0;const s=n(r(7147));const o=n(r(2037));const p=r(5278);function issueCommand(e,t){const r=process.env[`GITHUB_${e}`];if(!r){throw new Error(`Unable to find environment variable for file command ${e}`)}if(!s.existsSync(r)){throw new Error(`Missing file at path: ${r}`)}s.appendFileSync(r,`${p.toCommandValue(t)}${o.EOL}`,{encoding:"utf8"})}t.issueCommand=issueCommand},8041:function(e,t,r){"use strict";var a=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(a.next(e))}catch(e){i(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.OidcClient=void 0;const i=r(6255);const n=r(5526);const s=r(2186);class OidcClient{static createHttpClient(e=true,t=10){const r={allowRetries:e,maxRetries:t};return new i.HttpClient("actions/oidc-client",[new n.BearerCredentialHandler(OidcClient.getRequestToken())],r)}static getRequestToken(){const e=process.env["ACTIONS_ID_TOKEN_REQUEST_TOKEN"];if(!e){throw new Error("Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable")}return e}static getIDTokenUrl(){const e=process.env["ACTIONS_ID_TOKEN_REQUEST_URL"];if(!e){throw new Error("Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable")}return e}static getCall(e){var t;return a(this,void 0,void 0,(function*(){const r=OidcClient.createHttpClient();const a=yield r.getJson(e).catch((e=>{throw new Error(`Failed to get ID Token. \n \n Error Code : ${e.statusCode}\n \n Error Message: ${e.result.message}`)}));const i=(t=a.result)===null||t===void 0?void 0:t.value;if(!i){throw new Error("Response json body do not have ID Token field")}return i}))}static getIDToken(e){return a(this,void 0,void 0,(function*(){try{let t=OidcClient.getIDTokenUrl();if(e){const r=encodeURIComponent(e);t=`${t}&audience=${r}`}s.debug(`ID token url is ${t}`);const r=yield OidcClient.getCall(t);s.setSecret(r);return r}catch(e){throw new Error(`Error message: ${e.message}`)}}))}}t.OidcClient=OidcClient},2981:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.toPlatformPath=t.toWin32Path=t.toPosixPath=void 0;const s=n(r(1017));function toPosixPath(e){return e.replace(/[\\]/g,"/")}t.toPosixPath=toPosixPath;function toWin32Path(e){return e.replace(/[/]/g,"\\")}t.toWin32Path=toWin32Path;function toPlatformPath(e){return e.replace(/[/\\]/g,s.sep)}t.toPlatformPath=toPlatformPath},1327:function(e,t,r){"use strict";var a=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(a.next(e))}catch(e){i(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.summary=t.markdownSummary=t.SUMMARY_DOCS_URL=t.SUMMARY_ENV_VAR=void 0;const i=r(2037);const n=r(7147);const{access:s,appendFile:o,writeFile:p}=n.promises;t.SUMMARY_ENV_VAR="GITHUB_STEP_SUMMARY";t.SUMMARY_DOCS_URL="https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary";class Summary{constructor(){this._buffer=""}filePath(){return a(this,void 0,void 0,(function*(){if(this._filePath){return this._filePath}const e=process.env[t.SUMMARY_ENV_VAR];if(!e){throw new Error(`Unable to find environment variable for $${t.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`)}try{yield s(e,n.constants.R_OK|n.constants.W_OK)}catch(t){throw new Error(`Unable to access summary file: '${e}'. Check if the file has correct read/write permissions.`)}this._filePath=e;return this._filePath}))}wrap(e,t,r={}){const a=Object.entries(r).map((([e,t])=>` ${e}="${t}"`)).join("");if(!t){return`<${e}${a}>`}return`<${e}${a}>${t}`}write(e){return a(this,void 0,void 0,(function*(){const t=!!(e===null||e===void 0?void 0:e.overwrite);const r=yield this.filePath();const a=t?p:o;yield a(r,this._buffer,{encoding:"utf8"});return this.emptyBuffer()}))}clear(){return a(this,void 0,void 0,(function*(){return this.emptyBuffer().write({overwrite:true})}))}stringify(){return this._buffer}isEmptyBuffer(){return this._buffer.length===0}emptyBuffer(){this._buffer="";return this}addRaw(e,t=false){this._buffer+=e;return t?this.addEOL():this}addEOL(){return this.addRaw(i.EOL)}addCodeBlock(e,t){const r=Object.assign({},t&&{lang:t});const a=this.wrap("pre",this.wrap("code",e),r);return this.addRaw(a).addEOL()}addList(e,t=false){const r=t?"ol":"ul";const a=e.map((e=>this.wrap("li",e))).join("");const i=this.wrap(r,a);return this.addRaw(i).addEOL()}addTable(e){const t=e.map((e=>{const t=e.map((e=>{if(typeof e==="string"){return this.wrap("td",e)}const{header:t,data:r,colspan:a,rowspan:i}=e;const n=t?"th":"td";const s=Object.assign(Object.assign({},a&&{colspan:a}),i&&{rowspan:i});return this.wrap(n,r,s)})).join("");return this.wrap("tr",t)})).join("");const r=this.wrap("table",t);return this.addRaw(r).addEOL()}addDetails(e,t){const r=this.wrap("details",this.wrap("summary",e)+t);return this.addRaw(r).addEOL()}addImage(e,t,r){const{width:a,height:i}=r||{};const n=Object.assign(Object.assign({},a&&{width:a}),i&&{height:i});const s=this.wrap("img",null,Object.assign({src:e,alt:t},n));return this.addRaw(s).addEOL()}addHeading(e,t){const r=`h${t}`;const a=["h1","h2","h3","h4","h5","h6"].includes(r)?r:"h1";const i=this.wrap(a,e);return this.addRaw(i).addEOL()}addSeparator(){const e=this.wrap("hr",null);return this.addRaw(e).addEOL()}addBreak(){const e=this.wrap("br",null);return this.addRaw(e).addEOL()}addQuote(e,t){const r=Object.assign({},t&&{cite:t});const a=this.wrap("blockquote",e,r);return this.addRaw(a).addEOL()}addLink(e,t){const r=this.wrap("a",e,{href:t});return this.addRaw(r).addEOL()}}const c=new Summary;t.markdownSummary=c;t.summary=c},5278:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.toCommandProperties=t.toCommandValue=void 0;function toCommandValue(e){if(e===null||e===undefined){return""}else if(typeof e==="string"||e instanceof String){return e}return JSON.stringify(e)}t.toCommandValue=toCommandValue;function toCommandProperties(e){if(!Object.keys(e).length){return{}}return{title:e.title,file:e.file,line:e.startLine,endLine:e.endLine,col:e.startColumn,endColumn:e.endColumn}}t.toCommandProperties=toCommandProperties},1514:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var s=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(a.next(e))}catch(e){i(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.getExecOutput=t.exec=void 0;const o=r(1576);const p=n(r(8159));function exec(e,t,r){return s(this,void 0,void 0,(function*(){const a=p.argStringToArray(e);if(a.length===0){throw new Error(`Parameter 'commandLine' cannot be null or empty.`)}const i=a[0];t=a.slice(1).concat(t||[]);const n=new p.ToolRunner(i,t,r);return n.exec()}))}t.exec=exec;function getExecOutput(e,t,r){var a,i;return s(this,void 0,void 0,(function*(){let n="";let s="";const p=new o.StringDecoder("utf8");const c=new o.StringDecoder("utf8");const l=(a=r===null||r===void 0?void 0:r.listeners)===null||a===void 0?void 0:a.stdout;const d=(i=r===null||r===void 0?void 0:r.listeners)===null||i===void 0?void 0:i.stderr;const stdErrListener=e=>{s+=c.write(e);if(d){d(e)}};const stdOutListener=e=>{n+=p.write(e);if(l){l(e)}};const u=Object.assign(Object.assign({},r===null||r===void 0?void 0:r.listeners),{stdout:stdOutListener,stderr:stdErrListener});const m=yield exec(e,t,Object.assign(Object.assign({},r),{listeners:u}));n+=p.end();s+=c.end();return{exitCode:m,stdout:n,stderr:s}}))}t.getExecOutput=getExecOutput},8159:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var s=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(a.next(e))}catch(e){i(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.argStringToArray=t.ToolRunner=void 0;const o=n(r(2037));const p=n(r(2361));const c=n(r(2081));const l=n(r(1017));const d=n(r(7436));const u=n(r(1962));const m=r(9512);const h=process.platform==="win32";class ToolRunner extends p.EventEmitter{constructor(e,t,r){super();if(!e){throw new Error("Parameter 'toolPath' cannot be null or empty.")}this.toolPath=e;this.args=t||[];this.options=r||{}}_debug(e){if(this.options.listeners&&this.options.listeners.debug){this.options.listeners.debug(e)}}_getCommandString(e,t){const r=this._getSpawnFileName();const a=this._getSpawnArgs(e);let i=t?"":"[command]";if(h){if(this._isCmdFile()){i+=r;for(const e of a){i+=` ${e}`}}else if(e.windowsVerbatimArguments){i+=`"${r}"`;for(const e of a){i+=` ${e}`}}else{i+=this._windowsQuoteCmdArg(r);for(const e of a){i+=` ${this._windowsQuoteCmdArg(e)}`}}}else{i+=r;for(const e of a){i+=` ${e}`}}return i}_processLineBuffer(e,t,r){try{let a=t+e.toString();let i=a.indexOf(o.EOL);while(i>-1){const e=a.substring(0,i);r(e);a=a.substring(i+o.EOL.length);i=a.indexOf(o.EOL)}return a}catch(e){this._debug(`error processing line. Failed with error ${e}`);return""}}_getSpawnFileName(){if(h){if(this._isCmdFile()){return process.env["COMSPEC"]||"cmd.exe"}}return this.toolPath}_getSpawnArgs(e){if(h){if(this._isCmdFile()){let t=`/D /S /C "${this._windowsQuoteCmdArg(this.toolPath)}`;for(const r of this.args){t+=" ";t+=e.windowsVerbatimArguments?r:this._windowsQuoteCmdArg(r)}t+='"';return[t]}}return this.args}_endsWith(e,t){return e.endsWith(t)}_isCmdFile(){const e=this.toolPath.toUpperCase();return this._endsWith(e,".CMD")||this._endsWith(e,".BAT")}_windowsQuoteCmdArg(e){if(!this._isCmdFile()){return this._uvQuoteCmdArg(e)}if(!e){return'""'}const t=[" ","\t","&","(",")","[","]","{","}","^","=",";","!","'","+",",","`","~","|","<",">",'"'];let r=false;for(const a of e){if(t.some((e=>e===a))){r=true;break}}if(!r){return e}let a='"';let i=true;for(let t=e.length;t>0;t--){a+=e[t-1];if(i&&e[t-1]==="\\"){a+="\\"}else if(e[t-1]==='"'){i=true;a+='"'}else{i=false}}a+='"';return a.split("").reverse().join("")}_uvQuoteCmdArg(e){if(!e){return'""'}if(!e.includes(" ")&&!e.includes("\t")&&!e.includes('"')){return e}if(!e.includes('"')&&!e.includes("\\")){return`"${e}"`}let t='"';let r=true;for(let a=e.length;a>0;a--){t+=e[a-1];if(r&&e[a-1]==="\\"){t+="\\"}else if(e[a-1]==='"'){r=true;t+="\\"}else{r=false}}t+='"';return t.split("").reverse().join("")}_cloneExecOptions(e){e=e||{};const t={cwd:e.cwd||process.cwd(),env:e.env||process.env,silent:e.silent||false,windowsVerbatimArguments:e.windowsVerbatimArguments||false,failOnStdErr:e.failOnStdErr||false,ignoreReturnCode:e.ignoreReturnCode||false,delay:e.delay||1e4};t.outStream=e.outStream||process.stdout;t.errStream=e.errStream||process.stderr;return t}_getSpawnOptions(e,t){e=e||{};const r={};r.cwd=e.cwd;r.env=e.env;r["windowsVerbatimArguments"]=e.windowsVerbatimArguments||this._isCmdFile();if(e.windowsVerbatimArguments){r.argv0=`"${t}"`}return r}exec(){return s(this,void 0,void 0,(function*(){if(!u.isRooted(this.toolPath)&&(this.toolPath.includes("/")||h&&this.toolPath.includes("\\"))){this.toolPath=l.resolve(process.cwd(),this.options.cwd||process.cwd(),this.toolPath)}this.toolPath=yield d.which(this.toolPath,true);return new Promise(((e,t)=>s(this,void 0,void 0,(function*(){this._debug(`exec tool: ${this.toolPath}`);this._debug("arguments:");for(const e of this.args){this._debug(` ${e}`)}const r=this._cloneExecOptions(this.options);if(!r.silent&&r.outStream){r.outStream.write(this._getCommandString(r)+o.EOL)}const a=new ExecState(r,this.toolPath);a.on("debug",(e=>{this._debug(e)}));if(this.options.cwd&&!(yield u.exists(this.options.cwd))){return t(new Error(`The cwd: ${this.options.cwd} does not exist!`))}const i=this._getSpawnFileName();const n=c.spawn(i,this._getSpawnArgs(r),this._getSpawnOptions(this.options,i));let s="";if(n.stdout){n.stdout.on("data",(e=>{if(this.options.listeners&&this.options.listeners.stdout){this.options.listeners.stdout(e)}if(!r.silent&&r.outStream){r.outStream.write(e)}s=this._processLineBuffer(e,s,(e=>{if(this.options.listeners&&this.options.listeners.stdline){this.options.listeners.stdline(e)}}))}))}let p="";if(n.stderr){n.stderr.on("data",(e=>{a.processStderr=true;if(this.options.listeners&&this.options.listeners.stderr){this.options.listeners.stderr(e)}if(!r.silent&&r.errStream&&r.outStream){const t=r.failOnStdErr?r.errStream:r.outStream;t.write(e)}p=this._processLineBuffer(e,p,(e=>{if(this.options.listeners&&this.options.listeners.errline){this.options.listeners.errline(e)}}))}))}n.on("error",(e=>{a.processError=e.message;a.processExited=true;a.processClosed=true;a.CheckComplete()}));n.on("exit",(e=>{a.processExitCode=e;a.processExited=true;this._debug(`Exit code ${e} received from tool '${this.toolPath}'`);a.CheckComplete()}));n.on("close",(e=>{a.processExitCode=e;a.processExited=true;a.processClosed=true;this._debug(`STDIO streams have closed for tool '${this.toolPath}'`);a.CheckComplete()}));a.on("done",((r,a)=>{if(s.length>0){this.emit("stdline",s)}if(p.length>0){this.emit("errline",p)}n.removeAllListeners();if(r){t(r)}else{e(a)}}));if(this.options.input){if(!n.stdin){throw new Error("child process missing stdin")}n.stdin.end(this.options.input)}}))))}))}}t.ToolRunner=ToolRunner;function argStringToArray(e){const t=[];let r=false;let a=false;let i="";function append(e){if(a&&e!=='"'){i+="\\"}i+=e;a=false}for(let n=0;n0){t.push(i);i=""}continue}append(s)}if(i.length>0){t.push(i.trim())}return t}t.argStringToArray=argStringToArray;class ExecState extends p.EventEmitter{constructor(e,t){super();this.processClosed=false;this.processError="";this.processExitCode=0;this.processExited=false;this.processStderr=false;this.delay=1e4;this.done=false;this.timeout=null;if(!t){throw new Error("toolPath must not be empty")}this.options=e;this.toolPath=t;if(e.delay){this.delay=e.delay}}CheckComplete(){if(this.done){return}if(this.processClosed){this._setResult()}else if(this.processExited){this.timeout=m.setTimeout(ExecState.HandleTimeout,this.delay,this)}}_debug(e){this.emit("debug",e)}_setResult(){let e;if(this.processExited){if(this.processError){e=new Error(`There was an error when attempting to execute the process '${this.toolPath}'. This may indicate the process failed to start. Error: ${this.processError}`)}else if(this.processExitCode!==0&&!this.options.ignoreReturnCode){e=new Error(`The process '${this.toolPath}' failed with exit code ${this.processExitCode}`)}else if(this.processStderr&&this.options.failOnStdErr){e=new Error(`The process '${this.toolPath}' failed because one or more lines were written to the STDERR stream`)}}if(this.timeout){clearTimeout(this.timeout);this.timeout=null}this.done=true;this.emit("done",e,this.processExitCode)}static HandleTimeout(e){if(e.done){return}if(!e.processClosed&&e.processExited){const t=`The STDIO streams did not close within ${e.delay/1e3} seconds of the exit event from process '${e.toolPath}'. This may indicate a child process inherited the STDIO streams and has not yet exited.`;e._debug(t)}e._setResult()}}},8090:function(e,t,r){"use strict";var a=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(a.next(e))}catch(e){i(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.hashFiles=t.create=void 0;const i=r(8298);const n=r(2448);function create(e,t){return a(this,void 0,void 0,(function*(){return yield i.DefaultGlobber.create(e,t)}))}t.create=create;function hashFiles(e,t,r=false){return a(this,void 0,void 0,(function*(){let a=true;if(t&&typeof t.followSymbolicLinks==="boolean"){a=t.followSymbolicLinks}const i=yield create(e,{followSymbolicLinks:a});return n.hashFiles(i,r)}))}t.hashFiles=hashFiles},1026:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.getOptions=void 0;const s=n(r(2186));function getOptions(e){const t={followSymbolicLinks:true,implicitDescendants:true,matchDirectories:true,omitBrokenSymbolicLinks:true};if(e){if(typeof e.followSymbolicLinks==="boolean"){t.followSymbolicLinks=e.followSymbolicLinks;s.debug(`followSymbolicLinks '${t.followSymbolicLinks}'`)}if(typeof e.implicitDescendants==="boolean"){t.implicitDescendants=e.implicitDescendants;s.debug(`implicitDescendants '${t.implicitDescendants}'`)}if(typeof e.matchDirectories==="boolean"){t.matchDirectories=e.matchDirectories;s.debug(`matchDirectories '${t.matchDirectories}'`)}if(typeof e.omitBrokenSymbolicLinks==="boolean"){t.omitBrokenSymbolicLinks=e.omitBrokenSymbolicLinks;s.debug(`omitBrokenSymbolicLinks '${t.omitBrokenSymbolicLinks}'`)}}return t}t.getOptions=getOptions},8298:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var s=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(a.next(e))}catch(e){i(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};var o=this&&this.__asyncValues||function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],r;return t?t.call(e):(e=typeof __values==="function"?__values(e):e[Symbol.iterator](),r={},verb("next"),verb("throw"),verb("return"),r[Symbol.asyncIterator]=function(){return this},r);function verb(t){r[t]=e[t]&&function(r){return new Promise((function(a,i){r=e[t](r),settle(a,i,r.done,r.value)}))}}function settle(e,t,r,a){Promise.resolve(a).then((function(t){e({value:t,done:r})}),t)}};var p=this&&this.__await||function(e){return this instanceof p?(this.v=e,this):new p(e)};var c=this&&this.__asyncGenerator||function(e,t,r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var a=r.apply(e,t||[]),i,n=[];return i={},verb("next"),verb("throw"),verb("return"),i[Symbol.asyncIterator]=function(){return this},i;function verb(e){if(a[e])i[e]=function(t){return new Promise((function(r,a){n.push([e,t,r,a])>1||resume(e,t)}))}}function resume(e,t){try{step(a[e](t))}catch(e){settle(n[0][3],e)}}function step(e){e.value instanceof p?Promise.resolve(e.value.v).then(fulfill,reject):settle(n[0][2],e)}function fulfill(e){resume("next",e)}function reject(e){resume("throw",e)}function settle(e,t){if(e(t),n.shift(),n.length)resume(n[0][0],n[0][1])}};Object.defineProperty(t,"__esModule",{value:true});t.DefaultGlobber=void 0;const l=n(r(2186));const d=n(r(7147));const u=n(r(1026));const m=n(r(1017));const h=n(r(9005));const g=r(1063);const v=r(4536);const y=r(9117);const b=process.platform==="win32";class DefaultGlobber{constructor(e){this.patterns=[];this.searchPaths=[];this.options=u.getOptions(e)}getSearchPaths(){return this.searchPaths.slice()}glob(){var e,t;return s(this,void 0,void 0,(function*(){const r=[];try{for(var a=o(this.globGenerator()),i;i=yield a.next(),!i.done;){const e=i.value;r.push(e)}}catch(t){e={error:t}}finally{try{if(i&&!i.done&&(t=a.return))yield t.call(a)}finally{if(e)throw e.error}}return r}))}globGenerator(){return c(this,arguments,(function*globGenerator_1(){const e=u.getOptions(this.options);const t=[];for(const r of this.patterns){t.push(r);if(e.implicitDescendants&&(r.trailingSeparator||r.segments[r.segments.length-1]!=="**")){t.push(new v.Pattern(r.negate,true,r.segments.concat("**")))}}const r=[];for(const e of h.getSearchPaths(t)){l.debug(`Search path '${e}'`);try{yield p(d.promises.lstat(e))}catch(e){if(e.code==="ENOENT"){continue}throw e}r.unshift(new y.SearchState(e,1))}const a=[];while(r.length){const i=r.pop();const n=h.match(t,i.path);const s=!!n||h.partialMatch(t,i.path);if(!n&&!s){continue}const o=yield p(DefaultGlobber.stat(i,e,a));if(!o){continue}if(o.isDirectory()){if(n&g.MatchKind.Directory&&e.matchDirectories){yield yield p(i.path)}else if(!s){continue}const t=i.level+1;const a=(yield p(d.promises.readdir(i.path))).map((e=>new y.SearchState(m.join(i.path,e),t)));r.push(...a.reverse())}else if(n&g.MatchKind.File){yield yield p(i.path)}}}))}static create(e,t){return s(this,void 0,void 0,(function*(){const r=new DefaultGlobber(t);if(b){e=e.replace(/\r\n/g,"\n");e=e.replace(/\r/g,"\n")}const a=e.split("\n").map((e=>e.trim()));for(const e of a){if(!e||e.startsWith("#")){continue}else{r.patterns.push(new v.Pattern(e))}}r.searchPaths.push(...h.getSearchPaths(r.patterns));return r}))}static stat(e,t,r){return s(this,void 0,void 0,(function*(){let a;if(t.followSymbolicLinks){try{a=yield d.promises.stat(e.path)}catch(r){if(r.code==="ENOENT"){if(t.omitBrokenSymbolicLinks){l.debug(`Broken symlink '${e.path}'`);return undefined}throw new Error(`No information found for the path '${e.path}'. This may indicate a broken symbolic link.`)}throw r}}else{a=yield d.promises.lstat(e.path)}if(a.isDirectory()&&t.followSymbolicLinks){const t=yield d.promises.realpath(e.path);while(r.length>=e.level){r.pop()}if(r.some((e=>e===t))){l.debug(`Symlink cycle detected for path '${e.path}' and realpath '${t}'`);return undefined}r.push(t)}return a}))}}t.DefaultGlobber=DefaultGlobber},2448:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var s=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(a.next(e))}catch(e){i(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};var o=this&&this.__asyncValues||function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],r;return t?t.call(e):(e=typeof __values==="function"?__values(e):e[Symbol.iterator](),r={},verb("next"),verb("throw"),verb("return"),r[Symbol.asyncIterator]=function(){return this},r);function verb(t){r[t]=e[t]&&function(r){return new Promise((function(a,i){r=e[t](r),settle(a,i,r.done,r.value)}))}}function settle(e,t,r,a){Promise.resolve(a).then((function(t){e({value:t,done:r})}),t)}};Object.defineProperty(t,"__esModule",{value:true});t.hashFiles=void 0;const p=n(r(6113));const c=n(r(2186));const l=n(r(7147));const d=n(r(2781));const u=n(r(3837));const m=n(r(1017));function hashFiles(e,t=false){var r,a;var i;return s(this,void 0,void 0,(function*(){const n=t?c.info:c.debug;let s=false;const h=(i=process.env["GITHUB_WORKSPACE"])!==null&&i!==void 0?i:process.cwd();const g=p.createHash("sha256");let v=0;try{for(var y=o(e.globGenerator()),b;b=yield y.next(),!b.done;){const e=b.value;n(e);if(!e.startsWith(`${h}${m.sep}`)){n(`Ignore '${e}' since it is not under GITHUB_WORKSPACE.`);continue}if(l.statSync(e).isDirectory()){n(`Skip directory '${e}'.`);continue}const t=p.createHash("sha256");const r=u.promisify(d.pipeline);yield r(l.createReadStream(e),t);g.write(t.digest());v++;if(!s){s=true}}}catch(e){r={error:e}}finally{try{if(b&&!b.done&&(a=y.return))yield a.call(y)}finally{if(r)throw r.error}}g.end();if(s){n(`Found ${v} files to hash.`);return g.digest("hex")}else{n(`No matches found for glob`);return""}}))}t.hashFiles=hashFiles},1063:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.MatchKind=void 0;var r;(function(e){e[e["None"]=0]="None";e[e["Directory"]=1]="Directory";e[e["File"]=2]="File";e[e["All"]=3]="All"})(r=t.MatchKind||(t.MatchKind={}))},1849:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.safeTrimTrailingSeparator=t.normalizeSeparators=t.hasRoot=t.hasAbsoluteRoot=t.ensureAbsoluteRoot=t.dirname=void 0;const o=n(r(1017));const p=s(r(9491));const c=process.platform==="win32";function dirname(e){e=safeTrimTrailingSeparator(e);if(c&&/^\\\\[^\\]+(\\[^\\]+)?$/.test(e)){return e}let t=o.dirname(e);if(c&&/^\\\\[^\\]+\\[^\\]+\\$/.test(t)){t=safeTrimTrailingSeparator(t)}return t}t.dirname=dirname;function ensureAbsoluteRoot(e,t){p.default(e,`ensureAbsoluteRoot parameter 'root' must not be empty`);p.default(t,`ensureAbsoluteRoot parameter 'itemPath' must not be empty`);if(hasAbsoluteRoot(t)){return t}if(c){if(t.match(/^[A-Z]:[^\\/]|^[A-Z]:$/i)){let e=process.cwd();p.default(e.match(/^[A-Z]:\\/i),`Expected current directory to start with an absolute drive root. Actual '${e}'`);if(t[0].toUpperCase()===e[0].toUpperCase()){if(t.length===2){return`${t[0]}:\\${e.substr(3)}`}else{if(!e.endsWith("\\")){e+="\\"}return`${t[0]}:\\${e.substr(3)}${t.substr(2)}`}}else{return`${t[0]}:\\${t.substr(2)}`}}else if(normalizeSeparators(t).match(/^\\$|^\\[^\\]/)){const e=process.cwd();p.default(e.match(/^[A-Z]:\\/i),`Expected current directory to start with an absolute drive root. Actual '${e}'`);return`${e[0]}:\\${t.substr(1)}`}}p.default(hasAbsoluteRoot(e),`ensureAbsoluteRoot parameter 'root' must have an absolute root`);if(e.endsWith("/")||c&&e.endsWith("\\")){}else{e+=o.sep}return e+t}t.ensureAbsoluteRoot=ensureAbsoluteRoot;function hasAbsoluteRoot(e){p.default(e,`hasAbsoluteRoot parameter 'itemPath' must not be empty`);e=normalizeSeparators(e);if(c){return e.startsWith("\\\\")||/^[A-Z]:\\/i.test(e)}return e.startsWith("/")}t.hasAbsoluteRoot=hasAbsoluteRoot;function hasRoot(e){p.default(e,`isRooted parameter 'itemPath' must not be empty`);e=normalizeSeparators(e);if(c){return e.startsWith("\\")||/^[A-Z]:/i.test(e)}return e.startsWith("/")}t.hasRoot=hasRoot;function normalizeSeparators(e){e=e||"";if(c){e=e.replace(/\//g,"\\");const t=/^\\\\+[^\\]/.test(e);return(t?"\\":"")+e.replace(/\\\\+/g,"\\")}return e.replace(/\/\/+/g,"/")}t.normalizeSeparators=normalizeSeparators;function safeTrimTrailingSeparator(e){if(!e){return""}e=normalizeSeparators(e);if(!e.endsWith(o.sep)){return e}if(e===o.sep){return e}if(c&&/^[A-Z]:\\$/i.test(e)){return e}return e.substr(0,e.length-1)}t.safeTrimTrailingSeparator=safeTrimTrailingSeparator},6836:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.Path=void 0;const o=n(r(1017));const p=n(r(1849));const c=s(r(9491));const l=process.platform==="win32";class Path{constructor(e){this.segments=[];if(typeof e==="string"){c.default(e,`Parameter 'itemPath' must not be empty`);e=p.safeTrimTrailingSeparator(e);if(!p.hasRoot(e)){this.segments=e.split(o.sep)}else{let t=e;let r=p.dirname(t);while(r!==t){const e=o.basename(t);this.segments.unshift(e);t=r;r=p.dirname(t)}this.segments.unshift(t)}}else{c.default(e.length>0,`Parameter 'itemPath' must not be an empty array`);for(let t=0;t!e.negate));const t={};for(const r of e){const e=p?r.searchPath.toUpperCase():r.searchPath;t[e]="candidate"}const r=[];for(const a of e){const e=p?a.searchPath.toUpperCase():a.searchPath;if(t[e]==="included"){continue}let i=false;let n=e;let o=s.dirname(n);while(o!==n){if(t[o]){i=true;break}n=o;o=s.dirname(n)}if(!i){r.push(a.searchPath);t[e]="included"}}return r}t.getSearchPaths=getSearchPaths;function match(e,t){let r=o.MatchKind.None;for(const a of e){if(a.negate){r&=~a.match(t)}else{r|=a.match(t)}}return r}t.match=match;function partialMatch(e,t){return e.some((e=>!e.negate&&e.partialMatch(t)))}t.partialMatch=partialMatch},4536:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.Pattern=void 0;const o=n(r(2037));const p=n(r(1017));const c=n(r(1849));const l=s(r(9491));const d=r(3973);const u=r(1063);const m=r(6836);const h=process.platform==="win32";class Pattern{constructor(e,t=false,r,a){this.negate=false;let i;if(typeof e==="string"){i=e.trim()}else{r=r||[];l.default(r.length,`Parameter 'segments' must not empty`);const t=Pattern.getLiteral(r[0]);l.default(t&&c.hasAbsoluteRoot(t),`Parameter 'segments' first element must be a root path`);i=new m.Path(r).toString().trim();if(e){i=`!${i}`}}while(i.startsWith("!")){this.negate=!this.negate;i=i.substr(1).trim()}i=Pattern.fixupPattern(i,a);this.segments=new m.Path(i).segments;this.trailingSeparator=c.normalizeSeparators(i).endsWith(p.sep);i=c.safeTrimTrailingSeparator(i);let n=false;const s=this.segments.map((e=>Pattern.getLiteral(e))).filter((e=>!n&&!(n=e==="")));this.searchPath=new m.Path(s).toString();this.rootRegExp=new RegExp(Pattern.regExpEscape(s[0]),h?"i":"");this.isImplicitPattern=t;const o={dot:true,nobrace:true,nocase:h,nocomment:true,noext:true,nonegate:true};i=h?i.replace(/\\/g,"/"):i;this.minimatch=new d.Minimatch(i,o)}match(e){if(this.segments[this.segments.length-1]==="**"){e=c.normalizeSeparators(e);if(!e.endsWith(p.sep)&&this.isImplicitPattern===false){e=`${e}${p.sep}`}}else{e=c.safeTrimTrailingSeparator(e)}if(this.minimatch.match(e)){return this.trailingSeparator?u.MatchKind.Directory:u.MatchKind.All}return u.MatchKind.None}partialMatch(e){e=c.safeTrimTrailingSeparator(e);if(c.dirname(e)===e){return this.rootRegExp.test(e)}return this.minimatch.matchOne(e.split(h?/\\+/:/\/+/),this.minimatch.set[0],true)}static globEscape(e){return(h?e:e.replace(/\\/g,"\\\\")).replace(/(\[)(?=[^/]+\])/g,"[[]").replace(/\?/g,"[?]").replace(/\*/g,"[*]")}static fixupPattern(e,t){l.default(e,"pattern cannot be empty");const r=new m.Path(e).segments.map((e=>Pattern.getLiteral(e)));l.default(r.every(((e,t)=>(e!=="."||t===0)&&e!=="..")),`Invalid pattern '${e}'. Relative pathing '.' and '..' is not allowed.`);l.default(!c.hasRoot(e)||r[0],`Invalid pattern '${e}'. Root segment must not contain globs.`);e=c.normalizeSeparators(e);if(e==="."||e.startsWith(`.${p.sep}`)){e=Pattern.globEscape(process.cwd())+e.substr(1)}else if(e==="~"||e.startsWith(`~${p.sep}`)){t=t||o.homedir();l.default(t,"Unable to determine HOME directory");l.default(c.hasAbsoluteRoot(t),`Expected HOME directory to be a rooted path. Actual '${t}'`);e=Pattern.globEscape(t)+e.substr(1)}else if(h&&(e.match(/^[A-Z]:$/i)||e.match(/^[A-Z]:[^\\]/i))){let t=c.ensureAbsoluteRoot("C:\\dummy-root",e.substr(0,2));if(e.length>2&&!t.endsWith("\\")){t+="\\"}e=Pattern.globEscape(t)+e.substr(2)}else if(h&&(e==="\\"||e.match(/^\\[^\\]/))){let t=c.ensureAbsoluteRoot("C:\\dummy-root","\\");if(!t.endsWith("\\")){t+="\\"}e=Pattern.globEscape(t)+e.substr(1)}else{e=c.ensureAbsoluteRoot(Pattern.globEscape(process.cwd()),e)}return c.normalizeSeparators(e)}static getLiteral(e){let t="";for(let r=0;r=0){if(a.length>1){return""}if(a){t+=a;r=i;continue}}}t+=a}return t}static regExpEscape(e){return e.replace(/[[\\^$.|?*+()]/g,"\\$&")}}t.Pattern=Pattern},9117:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.SearchState=void 0;class SearchState{constructor(e,t){this.path=e;this.level=t}}t.SearchState=SearchState},5526:function(e,t){"use strict";var r=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(a.next(e))}catch(e){i(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.PersonalAccessTokenCredentialHandler=t.BearerCredentialHandler=t.BasicCredentialHandler=void 0;class BasicCredentialHandler{constructor(e,t){this.username=e;this.password=t}prepareRequest(e){if(!e.headers){throw Error("The request has no headers")}e.headers["Authorization"]=`Basic ${Buffer.from(`${this.username}:${this.password}`).toString("base64")}`}canHandleAuthentication(){return false}handleAuthentication(){return r(this,void 0,void 0,(function*(){throw new Error("not implemented")}))}}t.BasicCredentialHandler=BasicCredentialHandler;class BearerCredentialHandler{constructor(e){this.token=e}prepareRequest(e){if(!e.headers){throw Error("The request has no headers")}e.headers["Authorization"]=`Bearer ${this.token}`}canHandleAuthentication(){return false}handleAuthentication(){return r(this,void 0,void 0,(function*(){throw new Error("not implemented")}))}}t.BearerCredentialHandler=BearerCredentialHandler;class PersonalAccessTokenCredentialHandler{constructor(e){this.token=e}prepareRequest(e){if(!e.headers){throw Error("The request has no headers")}e.headers["Authorization"]=`Basic ${Buffer.from(`PAT:${this.token}`).toString("base64")}`}canHandleAuthentication(){return false}handleAuthentication(){return r(this,void 0,void 0,(function*(){throw new Error("not implemented")}))}}t.PersonalAccessTokenCredentialHandler=PersonalAccessTokenCredentialHandler},6255:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var s=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(a.next(e))}catch(e){i(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.HttpClient=t.isHttps=t.HttpClientResponse=t.HttpClientError=t.getProxyUrl=t.MediaTypes=t.Headers=t.HttpCodes=void 0;const o=n(r(3685));const p=n(r(5687));const c=n(r(9835));const l=n(r(4294));var d;(function(e){e[e["OK"]=200]="OK";e[e["MultipleChoices"]=300]="MultipleChoices";e[e["MovedPermanently"]=301]="MovedPermanently";e[e["ResourceMoved"]=302]="ResourceMoved";e[e["SeeOther"]=303]="SeeOther";e[e["NotModified"]=304]="NotModified";e[e["UseProxy"]=305]="UseProxy";e[e["SwitchProxy"]=306]="SwitchProxy";e[e["TemporaryRedirect"]=307]="TemporaryRedirect";e[e["PermanentRedirect"]=308]="PermanentRedirect";e[e["BadRequest"]=400]="BadRequest";e[e["Unauthorized"]=401]="Unauthorized";e[e["PaymentRequired"]=402]="PaymentRequired";e[e["Forbidden"]=403]="Forbidden";e[e["NotFound"]=404]="NotFound";e[e["MethodNotAllowed"]=405]="MethodNotAllowed";e[e["NotAcceptable"]=406]="NotAcceptable";e[e["ProxyAuthenticationRequired"]=407]="ProxyAuthenticationRequired";e[e["RequestTimeout"]=408]="RequestTimeout";e[e["Conflict"]=409]="Conflict";e[e["Gone"]=410]="Gone";e[e["TooManyRequests"]=429]="TooManyRequests";e[e["InternalServerError"]=500]="InternalServerError";e[e["NotImplemented"]=501]="NotImplemented";e[e["BadGateway"]=502]="BadGateway";e[e["ServiceUnavailable"]=503]="ServiceUnavailable";e[e["GatewayTimeout"]=504]="GatewayTimeout"})(d=t.HttpCodes||(t.HttpCodes={}));var u;(function(e){e["Accept"]="accept";e["ContentType"]="content-type"})(u=t.Headers||(t.Headers={}));var m;(function(e){e["ApplicationJson"]="application/json"})(m=t.MediaTypes||(t.MediaTypes={}));function getProxyUrl(e){const t=c.getProxyUrl(new URL(e));return t?t.href:""}t.getProxyUrl=getProxyUrl;const h=[d.MovedPermanently,d.ResourceMoved,d.SeeOther,d.TemporaryRedirect,d.PermanentRedirect];const g=[d.BadGateway,d.ServiceUnavailable,d.GatewayTimeout];const v=["OPTIONS","GET","DELETE","HEAD"];const y=10;const b=5;class HttpClientError extends Error{constructor(e,t){super(e);this.name="HttpClientError";this.statusCode=t;Object.setPrototypeOf(this,HttpClientError.prototype)}}t.HttpClientError=HttpClientError;class HttpClientResponse{constructor(e){this.message=e}readBody(){return s(this,void 0,void 0,(function*(){return new Promise((e=>s(this,void 0,void 0,(function*(){let t=Buffer.alloc(0);this.message.on("data",(e=>{t=Buffer.concat([t,e])}));this.message.on("end",(()=>{e(t.toString())}))}))))}))}}t.HttpClientResponse=HttpClientResponse;function isHttps(e){const t=new URL(e);return t.protocol==="https:"}t.isHttps=isHttps;class HttpClient{constructor(e,t,r){this._ignoreSslError=false;this._allowRedirects=true;this._allowRedirectDowngrade=false;this._maxRedirects=50;this._allowRetries=false;this._maxRetries=1;this._keepAlive=false;this._disposed=false;this.userAgent=e;this.handlers=t||[];this.requestOptions=r;if(r){if(r.ignoreSslError!=null){this._ignoreSslError=r.ignoreSslError}this._socketTimeout=r.socketTimeout;if(r.allowRedirects!=null){this._allowRedirects=r.allowRedirects}if(r.allowRedirectDowngrade!=null){this._allowRedirectDowngrade=r.allowRedirectDowngrade}if(r.maxRedirects!=null){this._maxRedirects=Math.max(r.maxRedirects,0)}if(r.keepAlive!=null){this._keepAlive=r.keepAlive}if(r.allowRetries!=null){this._allowRetries=r.allowRetries}if(r.maxRetries!=null){this._maxRetries=r.maxRetries}}}options(e,t){return s(this,void 0,void 0,(function*(){return this.request("OPTIONS",e,null,t||{})}))}get(e,t){return s(this,void 0,void 0,(function*(){return this.request("GET",e,null,t||{})}))}del(e,t){return s(this,void 0,void 0,(function*(){return this.request("DELETE",e,null,t||{})}))}post(e,t,r){return s(this,void 0,void 0,(function*(){return this.request("POST",e,t,r||{})}))}patch(e,t,r){return s(this,void 0,void 0,(function*(){return this.request("PATCH",e,t,r||{})}))}put(e,t,r){return s(this,void 0,void 0,(function*(){return this.request("PUT",e,t,r||{})}))}head(e,t){return s(this,void 0,void 0,(function*(){return this.request("HEAD",e,null,t||{})}))}sendStream(e,t,r,a){return s(this,void 0,void 0,(function*(){return this.request(e,t,r,a)}))}getJson(e,t={}){return s(this,void 0,void 0,(function*(){t[u.Accept]=this._getExistingOrDefaultHeader(t,u.Accept,m.ApplicationJson);const r=yield this.get(e,t);return this._processResponse(r,this.requestOptions)}))}postJson(e,t,r={}){return s(this,void 0,void 0,(function*(){const a=JSON.stringify(t,null,2);r[u.Accept]=this._getExistingOrDefaultHeader(r,u.Accept,m.ApplicationJson);r[u.ContentType]=this._getExistingOrDefaultHeader(r,u.ContentType,m.ApplicationJson);const i=yield this.post(e,a,r);return this._processResponse(i,this.requestOptions)}))}putJson(e,t,r={}){return s(this,void 0,void 0,(function*(){const a=JSON.stringify(t,null,2);r[u.Accept]=this._getExistingOrDefaultHeader(r,u.Accept,m.ApplicationJson);r[u.ContentType]=this._getExistingOrDefaultHeader(r,u.ContentType,m.ApplicationJson);const i=yield this.put(e,a,r);return this._processResponse(i,this.requestOptions)}))}patchJson(e,t,r={}){return s(this,void 0,void 0,(function*(){const a=JSON.stringify(t,null,2);r[u.Accept]=this._getExistingOrDefaultHeader(r,u.Accept,m.ApplicationJson);r[u.ContentType]=this._getExistingOrDefaultHeader(r,u.ContentType,m.ApplicationJson);const i=yield this.patch(e,a,r);return this._processResponse(i,this.requestOptions)}))}request(e,t,r,a){return s(this,void 0,void 0,(function*(){if(this._disposed){throw new Error("Client has already been disposed.")}const i=new URL(t);let n=this._prepareRequest(e,i,a);const s=this._allowRetries&&v.includes(e)?this._maxRetries+1:1;let o=0;let p;do{p=yield this.requestRaw(n,r);if(p&&p.message&&p.message.statusCode===d.Unauthorized){let e;for(const t of this.handlers){if(t.canHandleAuthentication(p)){e=t;break}}if(e){return e.handleAuthentication(this,n,r)}else{return p}}let t=this._maxRedirects;while(p.message.statusCode&&h.includes(p.message.statusCode)&&this._allowRedirects&&t>0){const s=p.message.headers["location"];if(!s){break}const o=new URL(s);if(i.protocol==="https:"&&i.protocol!==o.protocol&&!this._allowRedirectDowngrade){throw new Error("Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.")}yield p.readBody();if(o.hostname!==i.hostname){for(const e in a){if(e.toLowerCase()==="authorization"){delete a[e]}}}n=this._prepareRequest(e,o,a);p=yield this.requestRaw(n,r);t--}if(!p.message.statusCode||!g.includes(p.message.statusCode)){return p}o+=1;if(o{function callbackForResult(e,t){if(e){a(e)}else if(!t){a(new Error("Unknown error"))}else{r(t)}}this.requestRawWithCallback(e,t,callbackForResult)}))}))}requestRawWithCallback(e,t,r){if(typeof t==="string"){if(!e.options.headers){e.options.headers={}}e.options.headers["Content-Length"]=Buffer.byteLength(t,"utf8")}let a=false;function handleResult(e,t){if(!a){a=true;r(e,t)}}const i=e.httpModule.request(e.options,(e=>{const t=new HttpClientResponse(e);handleResult(undefined,t)}));let n;i.on("socket",(e=>{n=e}));i.setTimeout(this._socketTimeout||3*6e4,(()=>{if(n){n.end()}handleResult(new Error(`Request timeout: ${e.options.path}`))}));i.on("error",(function(e){handleResult(e)}));if(t&&typeof t==="string"){i.write(t,"utf8")}if(t&&typeof t!=="string"){t.on("close",(function(){i.end()}));t.pipe(i)}else{i.end()}}getAgent(e){const t=new URL(e);return this._getAgent(t)}_prepareRequest(e,t,r){const a={};a.parsedUrl=t;const i=a.parsedUrl.protocol==="https:";a.httpModule=i?p:o;const n=i?443:80;a.options={};a.options.host=a.parsedUrl.hostname;a.options.port=a.parsedUrl.port?parseInt(a.parsedUrl.port):n;a.options.path=(a.parsedUrl.pathname||"")+(a.parsedUrl.search||"");a.options.method=e;a.options.headers=this._mergeHeaders(r);if(this.userAgent!=null){a.options.headers["user-agent"]=this.userAgent}a.options.agent=this._getAgent(a.parsedUrl);if(this.handlers){for(const e of this.handlers){e.prepareRequest(a.options)}}return a}_mergeHeaders(e){if(this.requestOptions&&this.requestOptions.headers){return Object.assign({},lowercaseKeys(this.requestOptions.headers),lowercaseKeys(e||{}))}return lowercaseKeys(e||{})}_getExistingOrDefaultHeader(e,t,r){let a;if(this.requestOptions&&this.requestOptions.headers){a=lowercaseKeys(this.requestOptions.headers)[t]}return e[t]||a||r}_getAgent(e){let t;const r=c.getProxyUrl(e);const a=r&&r.hostname;if(this._keepAlive&&a){t=this._proxyAgent}if(this._keepAlive&&!a){t=this._agent}if(t){return t}const i=e.protocol==="https:";let n=100;if(this.requestOptions){n=this.requestOptions.maxSockets||o.globalAgent.maxSockets}if(r&&r.hostname){const e={maxSockets:n,keepAlive:this._keepAlive,proxy:Object.assign(Object.assign({},(r.username||r.password)&&{proxyAuth:`${r.username}:${r.password}`}),{host:r.hostname,port:r.port})};let a;const s=r.protocol==="https:";if(i){a=s?l.httpsOverHttps:l.httpsOverHttp}else{a=s?l.httpOverHttps:l.httpOverHttp}t=a(e);this._proxyAgent=t}if(this._keepAlive&&!t){const e={keepAlive:this._keepAlive,maxSockets:n};t=i?new p.Agent(e):new o.Agent(e);this._agent=t}if(!t){t=i?p.globalAgent:o.globalAgent}if(i&&this._ignoreSslError){t.options=Object.assign(t.options||{},{rejectUnauthorized:false})}return t}_performExponentialBackoff(e){return s(this,void 0,void 0,(function*(){e=Math.min(y,e);const t=b*Math.pow(2,e);return new Promise((e=>setTimeout((()=>e()),t)))}))}_processResponse(e,t){return s(this,void 0,void 0,(function*(){return new Promise(((r,a)=>s(this,void 0,void 0,(function*(){const i=e.message.statusCode||0;const n={statusCode:i,result:null,headers:{}};if(i===d.NotFound){r(n)}function dateTimeDeserializer(e,t){if(typeof t==="string"){const e=new Date(t);if(!isNaN(e.valueOf())){return e}}return t}let s;let o;try{o=yield e.readBody();if(o&&o.length>0){if(t&&t.deserializeDates){s=JSON.parse(o,dateTimeDeserializer)}else{s=JSON.parse(o)}n.result=s}n.headers=e.message.headers}catch(e){}if(i>299){let e;if(s&&s.message){e=s.message}else if(o&&o.length>0){e=o}else{e=`Failed request: (${i})`}const t=new HttpClientError(e,i);t.result=n.result;a(t)}else{r(n)}}))))}))}}t.HttpClient=HttpClient;const lowercaseKeys=e=>Object.keys(e).reduce(((t,r)=>(t[r.toLowerCase()]=e[r],t)),{})},9835:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.checkBypass=t.getProxyUrl=void 0;function getProxyUrl(e){const t=e.protocol==="https:";if(checkBypass(e)){return undefined}const r=(()=>{if(t){return process.env["https_proxy"]||process.env["HTTPS_PROXY"]}else{return process.env["http_proxy"]||process.env["HTTP_PROXY"]}})();if(r){return new URL(r)}else{return undefined}}t.getProxyUrl=getProxyUrl;function checkBypass(e){if(!e.hostname){return false}const t=process.env["no_proxy"]||process.env["NO_PROXY"]||"";if(!t){return false}let r;if(e.port){r=Number(e.port)}else if(e.protocol==="http:"){r=80}else if(e.protocol==="https:"){r=443}const a=[e.hostname.toUpperCase()];if(typeof r==="number"){a.push(`${a[0]}:${r}`)}for(const e of t.split(",").map((e=>e.trim().toUpperCase())).filter((e=>e))){if(a.some((t=>t===e))){return true}}return false}t.checkBypass=checkBypass},1962:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var s=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(a.next(e))}catch(e){i(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};var o;Object.defineProperty(t,"__esModule",{value:true});t.getCmdPath=t.tryGetExecutablePath=t.isRooted=t.isDirectory=t.exists=t.IS_WINDOWS=t.unlink=t.symlink=t.stat=t.rmdir=t.rename=t.readlink=t.readdir=t.mkdir=t.lstat=t.copyFile=t.chmod=void 0;const p=n(r(7147));const c=n(r(1017));o=p.promises,t.chmod=o.chmod,t.copyFile=o.copyFile,t.lstat=o.lstat,t.mkdir=o.mkdir,t.readdir=o.readdir,t.readlink=o.readlink,t.rename=o.rename,t.rmdir=o.rmdir,t.stat=o.stat,t.symlink=o.symlink,t.unlink=o.unlink;t.IS_WINDOWS=process.platform==="win32";function exists(e){return s(this,void 0,void 0,(function*(){try{yield t.stat(e)}catch(e){if(e.code==="ENOENT"){return false}throw e}return true}))}t.exists=exists;function isDirectory(e,r=false){return s(this,void 0,void 0,(function*(){const a=r?yield t.stat(e):yield t.lstat(e);return a.isDirectory()}))}t.isDirectory=isDirectory;function isRooted(e){e=normalizeSeparators(e);if(!e){throw new Error('isRooted() parameter "p" cannot be empty')}if(t.IS_WINDOWS){return e.startsWith("\\")||/^[A-Z]:/i.test(e)}return e.startsWith("/")}t.isRooted=isRooted;function tryGetExecutablePath(e,r){return s(this,void 0,void 0,(function*(){let a=undefined;try{a=yield t.stat(e)}catch(t){if(t.code!=="ENOENT"){console.log(`Unexpected error attempting to determine if executable file exists '${e}': ${t}`)}}if(a&&a.isFile()){if(t.IS_WINDOWS){const t=c.extname(e).toUpperCase();if(r.some((e=>e.toUpperCase()===t))){return e}}else{if(isUnixExecutable(a)){return e}}}const i=e;for(const n of r){e=i+n;a=undefined;try{a=yield t.stat(e)}catch(t){if(t.code!=="ENOENT"){console.log(`Unexpected error attempting to determine if executable file exists '${e}': ${t}`)}}if(a&&a.isFile()){if(t.IS_WINDOWS){try{const r=c.dirname(e);const a=c.basename(e).toUpperCase();for(const i of yield t.readdir(r)){if(a===i.toUpperCase()){e=c.join(r,i);break}}}catch(t){console.log(`Unexpected error attempting to determine the actual case of the file '${e}': ${t}`)}return e}else{if(isUnixExecutable(a)){return e}}}}return""}))}t.tryGetExecutablePath=tryGetExecutablePath;function normalizeSeparators(e){e=e||"";if(t.IS_WINDOWS){e=e.replace(/\//g,"\\");return e.replace(/\\\\+/g,"\\")}return e.replace(/\/\/+/g,"/")}function isUnixExecutable(e){return(e.mode&1)>0||(e.mode&8)>0&&e.gid===process.getgid()||(e.mode&64)>0&&e.uid===process.getuid()}function getCmdPath(){var e;return(e=process.env["COMSPEC"])!==null&&e!==void 0?e:`cmd.exe`}t.getCmdPath=getCmdPath},7436:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var s=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,i){function fulfilled(e){try{step(a.next(e))}catch(e){i(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){i(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.findInPath=t.which=t.mkdirP=t.rmRF=t.mv=t.cp=void 0;const o=r(9491);const p=n(r(2081));const c=n(r(1017));const l=r(3837);const d=n(r(1962));const u=l.promisify(p.exec);const m=l.promisify(p.execFile);function cp(e,t,r={}){return s(this,void 0,void 0,(function*(){const{force:a,recursive:i,copySourceDirectory:n}=readCopyOptions(r);const s=(yield d.exists(t))?yield d.stat(t):null;if(s&&s.isFile()&&!a){return}const o=s&&s.isDirectory()&&n?c.join(t,c.basename(e)):t;if(!(yield d.exists(e))){throw new Error(`no such file or directory: ${e}`)}const p=yield d.stat(e);if(p.isDirectory()){if(!i){throw new Error(`Failed to copy. ${e} is a directory, but tried to copy without recursive flag.`)}else{yield cpDirRecursive(e,o,0,a)}}else{if(c.relative(e,o)===""){throw new Error(`'${o}' and '${e}' are the same file`)}yield copyFile(e,o,a)}}))}t.cp=cp;function mv(e,t,r={}){return s(this,void 0,void 0,(function*(){if(yield d.exists(t)){let a=true;if(yield d.isDirectory(t)){t=c.join(t,c.basename(e));a=yield d.exists(t)}if(a){if(r.force==null||r.force){yield rmRF(t)}else{throw new Error("Destination already exists")}}}yield mkdirP(c.dirname(t));yield d.rename(e,t)}))}t.mv=mv;function rmRF(e){return s(this,void 0,void 0,(function*(){if(d.IS_WINDOWS){if(/[*"<>|]/.test(e)){throw new Error('File path must not contain `*`, `"`, `<`, `>` or `|` on Windows')}try{const t=d.getCmdPath();if(yield d.isDirectory(e,true)){yield u(`${t} /s /c "rd /s /q "%inputPath%""`,{env:{inputPath:e}})}else{yield u(`${t} /s /c "del /f /a "%inputPath%""`,{env:{inputPath:e}})}}catch(e){if(e.code!=="ENOENT")throw e}try{yield d.unlink(e)}catch(e){if(e.code!=="ENOENT")throw e}}else{let t=false;try{t=yield d.isDirectory(e)}catch(e){if(e.code!=="ENOENT")throw e;return}if(t){yield m(`rm`,[`-rf`,`${e}`])}else{yield d.unlink(e)}}}))}t.rmRF=rmRF;function mkdirP(e){return s(this,void 0,void 0,(function*(){o.ok(e,"a path argument must be provided");yield d.mkdir(e,{recursive:true})}))}t.mkdirP=mkdirP;function which(e,t){return s(this,void 0,void 0,(function*(){if(!e){throw new Error("parameter 'tool' is required")}if(t){const t=yield which(e,false);if(!t){if(d.IS_WINDOWS){throw new Error(`Unable to locate executable file: ${e}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.`)}else{throw new Error(`Unable to locate executable file: ${e}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.`)}}return t}const r=yield findInPath(e);if(r&&r.length>0){return r[0]}return""}))}t.which=which;function findInPath(e){return s(this,void 0,void 0,(function*(){if(!e){throw new Error("parameter 'tool' is required")}const t=[];if(d.IS_WINDOWS&&process.env["PATHEXT"]){for(const e of process.env["PATHEXT"].split(c.delimiter)){if(e){t.push(e)}}}if(d.isRooted(e)){const r=yield d.tryGetExecutablePath(e,t);if(r){return[r]}return[]}if(e.includes(c.sep)){return[]}const r=[];if(process.env.PATH){for(const e of process.env.PATH.split(c.delimiter)){if(e){r.push(e)}}}const a=[];for(const i of r){const r=yield d.tryGetExecutablePath(c.join(i,e),t);if(r){a.push(r)}}return a}))}t.findInPath=findInPath;function readCopyOptions(e){const t=e.force==null?true:e.force;const r=Boolean(e.recursive);const a=e.copySourceDirectory==null?true:Boolean(e.copySourceDirectory);return{force:t,recursive:r,copySourceDirectory:a}}function cpDirRecursive(e,t,r,a){return s(this,void 0,void 0,(function*(){if(r>=255)return;r++;yield mkdirP(t);const i=yield d.readdir(e);for(const n of i){const i=`${e}/${n}`;const s=`${t}/${n}`;const o=yield d.lstat(i);if(o.isDirectory()){yield cpDirRecursive(i,s,r,a)}else{yield copyFile(i,s,a)}}yield d.chmod(t,(yield d.stat(e)).mode)}))}function copyFile(e,t,r){return s(this,void 0,void 0,(function*(){if((yield d.lstat(e)).isSymbolicLink()){try{yield d.lstat(t);yield d.unlink(t)}catch(e){if(e.code==="EPERM"){yield d.chmod(t,"0666");yield d.unlink(t)}}const r=yield d.readlink(e);yield d.symlink(r,t,d.IS_WINDOWS?"junction":null)}else if(!(yield d.exists(t))||r){yield d.copyFile(e,t)}}))}},6809:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.ArchiveDependencies=t.IfNoFile=t.ArchiveOn=void 0;var r;(function(e){e["SUCCESS"]="success";e["FAILURE"]="failure";e["ALWAYS"]="always"})(r=t.ArchiveOn||(t.ArchiveOn={}));var a;(function(e){e["WARN"]="warn";e["ERROR"]="error";e["IGNORE"]="ignore"})(a=t.IfNoFile||(t.IfNoFile={}));var i;(function(e){e["ALL"]="all";e["NONE"]="none"})(i=t.ArchiveDependencies||(t.ArchiveDependencies={}))},8114:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.IfNoFile=t.ArchiveOn=t.ArchiveDependencies=t.getMapping=t.getMappedTarget=t.readDefinitionFile=t.getTreeForProject=t.getOrderedListForTree=t.getOrderedListForProject=t.parentChainFromNode=t.getTree=void 0;const a=r(2253);Object.defineProperty(t,"getTree",{enumerable:true,get:function(){return a.getTree}});Object.defineProperty(t,"parentChainFromNode",{enumerable:true,get:function(){return a.parentChainFromNode}});Object.defineProperty(t,"getOrderedListForProject",{enumerable:true,get:function(){return a.getOrderedListForProject}});Object.defineProperty(t,"getOrderedListForTree",{enumerable:true,get:function(){return a.getOrderedListForTree}});Object.defineProperty(t,"getTreeForProject",{enumerable:true,get:function(){return a.getTreeForProject}});const i=r(5934);Object.defineProperty(t,"readDefinitionFile",{enumerable:true,get:function(){return i.readDefinitionFile}});const n=r(9596);Object.defineProperty(t,"getMappedTarget",{enumerable:true,get:function(){return n.getMappedTarget}});Object.defineProperty(t,"getMapping",{enumerable:true,get:function(){return n.getMapping}});const s=r(6809);Object.defineProperty(t,"ArchiveDependencies",{enumerable:true,get:function(){return s.ArchiveDependencies}});Object.defineProperty(t,"ArchiveOn",{enumerable:true,get:function(){return s.ArchiveOn}});Object.defineProperty(t,"IfNoFile",{enumerable:true,get:function(){return s.IfNoFile}})},5934:function(e,t,r){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.readDefinitionFile=void 0;const i=r(4619);const n=r(3919);const s=r(5265);const o=r(3292);const p=a(r(6545));const c=a(r(1017));async function readDefinitionFile(e,t){try{const r=await getContent(e,t);const a=await(0,s.validateDefinitionFile)(r);let i=undefined;if(a.extends){i=await readDefinitionFile(constructLocation(a.extends,e,t),t);delete a["extends"]}a.pre=extendPre(a.pre,i?i.pre:undefined);a.post=extendPost(a.post,i?i.post:undefined);a.default=extendDefault(a.default,i?i.default:undefined);a.build=extendBuild(a.build,i?i.build:undefined);a.dependencies=await loadDependencies(a.dependencies,i?.dependencies,e,t);targetExpressionToTarget(a.dependencies);return a}catch(t){throw new Error(`Error getting ${e} - ${t}`)}}t.readDefinitionFile=readDefinitionFile;async function loadDependencies(e,t,r,a){let i=[];if(!e){return t??[]}if(!Array.isArray(e)){const t=constructLocation(e,r,a);const n=await readDefinitionFile(t,a);i=n.dependencies}else{i=e}return t?t.concat(i):i}function extendBuild(e,t){if(!t){return e}if(!e){return t}return[...e,...t.filter((t=>!e.find((e=>e.project===t.project))))]}function extendDefault(e,t){if(!t){return e}if(!e){return t}const r=Object.keys(e);return Object.entries(t).reduce(((t,[a,i])=>{const n=e[a];if(Array.isArray(i)&&Array.isArray(n)){t[a]=n.length?n:i}else if(typeof i==="object"){t[a]=r.includes(a)?extendDefault(e[a],i):i}else{t[a]=e[a]??i}return t}),{...e})}function extendPre(e,t){if(!t){return e}if(!e){return t}return e.concat(t)}function extendPost(e,t){if(!t){return e}if(!e){return t}return{success:extendPre(e.success,t.success),always:extendPre(e.always,t.always),failure:extendPre(e.failure,t.failure)}}async function getContent(e,t){if(isURL(e)){const r=(0,n.treatUrl)(e,t?.group,t?.name,t?.branch);const a=await p.default.get(r,{responseType:"text",...t?.token?{headers:{Authorization:`Bearer ${t.token}`}}:{}});return a.data}else{return(0,o.readFile)(e,"utf8")}}function constructLocation(e,t,r){if(isURL(e)){return(0,n.treatUrl)(e,r?.group,r?.name,r?.branch)}else if(isURL(t)){const a=(0,n.treatUrl)(t,r?.group,r?.name,r?.branch);const i=a.lastIndexOf("/");return`${a.slice(0,i)}/${e}`}else{return c.default.join(c.default.dirname(t),e)}}function isURL(e){const t=/^https?:\/\//;return t.test(e)}function targetExpressionToTarget(e){for(const t of e){if(t.mapping?.dependant){executeTargetExpression(t.mapping.dependant)}if(t.mapping?.dependencies){executeTargetExpression(t.mapping.dependencies)}}}function executeTargetExpression(e){for(const[t,r]of Object.entries(e)){e[t]=r.map((e=>e.targetExpression?{source:e.source,target:(0,i.safeEval)(e.targetExpression,e)}:e))}}},698:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.ArchiveArtifactSchema=void 0;const a=r(4428);t.ArchiveArtifactSchema={type:"object",properties:{name:{type:"string",nullable:true},paths:{type:"array",items:{type:"object",properties:{path:{type:"string"},on:{type:"string",enum:["success","failure","always"]}},required:["on","path"]}},"if-no-files-found":{type:"string",enum:["warn","ignore","error"],default:"warn"},dependencies:{oneOf:[{type:"string",enum:["all","none"]},{type:"array",items:a.ProjectNameSchema}]}},required:["paths","if-no-files-found","dependencies"]}},6768:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.BuildSchema=t.BuildCommandSchema=void 0;const a=r(698);const i=r(4428);const n={type:"array",items:{type:"string"}};const s={type:"object",properties:{current:n,upstream:n,downstream:n},required:["current","upstream","downstream"],additionalProperties:false};t.BuildCommandSchema={type:"object",properties:{before:{...s,nullable:true},after:{...s,nullable:true},current:n,upstream:n,downstream:n},required:["current","upstream","downstream"],additionalProperties:false};t.BuildSchema={type:"object",properties:{project:i.ProjectNameSchema,"build-command":{...t.BuildCommandSchema,nullable:true},"archive-artifacts":{...a.ArchiveArtifactSchema,nullable:true},skip:{type:"boolean",nullable:true},clone:{type:"array",items:{type:"string"},nullable:true}},required:["project"],anyOf:[{required:["build-command"]},{required:["archive-artifacts"]},{required:["skip"]}]}},9579:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.DefintionFileSchema=void 0;const a=r(6768);const i=r(9040);t.DefintionFileSchema={type:"object",properties:{version:{type:["string","number"],enum:["2.1",2.1,"2.2",2.2]},dependencies:{type:["string","array"],oneOf:[{type:"string"},i.DependenciesSchema],nullable:true},extends:{type:"string",nullable:true},default:{type:"object",properties:{"build-command":a.BuildCommandSchema},required:["build-command"],nullable:true,additionalProperties:false},build:{type:"array",items:a.BuildSchema,nullable:true},pre:{type:"array",items:{type:"string"},nullable:true},post:{type:"object",properties:{success:{type:"array",items:{type:"string"},nullable:true},always:{type:"array",items:{type:"string"},nullable:true},failure:{type:"array",items:{type:"string"},nullable:true}},nullable:true}},required:["version"],additionalProperties:false}},9040:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.DependenciesSchema=void 0;const a=r(5013);const i=r(4428);t.DependenciesSchema={type:"array",items:{type:"object",properties:{project:i.ProjectNameSchema,dependencies:{type:"array",items:{type:"object",properties:{project:{type:"string"}},required:["project"],additionalProperties:false},nullable:true},mapping:{...a.MappingSchema,nullable:true}},required:["project"],additionalProperties:false}}},5013:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.MappingSchema=void 0;const a=r(4428);const i={type:"object",properties:{source:{type:"string"},target:{type:"string",nullable:true},targetExpression:{type:"string",nullable:true}},required:["source"],oneOf:[{required:["target"]},{required:["targetExpression"]}],additionalProperties:false};const n={type:"object",properties:{default:{type:"array",items:i}},patternProperties:{"^[^/]+/[^/]+$":{type:"array",items:i}},required:["default"],additionalProperties:false};t.MappingSchema={type:"object",properties:{dependencies:{...n,nullable:true},dependant:{...n,nullable:true},exclude:{type:"array",items:a.ProjectNameSchema}},required:["exclude"],anyOf:[{required:["dependencies"]},{required:["dependant"]}],additionalProperties:false}},4428:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.ProjectNameSchema=void 0;t.ProjectNameSchema={type:"string",pattern:"^[^/]+/[^/]+$"}},2253:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.getOrderedListForTree=t.getOrderedListForProject=t.parentChainFromNode=t.getTreeForProject=t.getTree=void 0;const a=r(5934);const i=r(8998);async function getTree(e,t){const r=await(0,a.readDefinitionFile)(e,t);return(0,i.constructTree)(r.dependencies,r.default?.["build-command"],r.build)}t.getTree=getTree;async function getTreeForProject(e,t,r){const a=await getTree(e,r);return lookForProject(a,t)}t.getTreeForProject=getTreeForProject;function parentChainFromNode(e){const t=e.parents.reduce(((e,t)=>{e.push(...parentChainFromNode(t).filter((t=>!e.find((e=>t.project===e.project)))));return e}),[]);t.push(e);return t}t.parentChainFromNode=parentChainFromNode;async function getOrderedListForProject(e,t,r){const a=await getTreeForProject(e,t,r);if(!a){throw new Error(`Project ${t} not found`)}const i=parentChainFromNode(a);const n=childChainFromNode(a);return i.concat(n.slice(1))}t.getOrderedListForProject=getOrderedListForProject;async function getOrderedListForTree(e,t){const r=await getTree(e,t);const a=[];flattenTreeTopToBottom(r,a);return a}t.getOrderedListForTree=getOrderedListForTree;function lookForProject(e,t){return e.find((e=>e.project===t))??e.map((e=>lookForProject(e.children,t))).find((e=>!!e))}function childChainFromNode(e){return e.children.reduce(((e,t)=>{e.push(...childChainFromNode(t).filter((t=>!e.find((e=>e.project===t.project)))));return e}),[e])}function flattenTreeTopToBottom(e,t){if(e.length===0){return}const r=[];e.forEach((e=>{const a=e.parents.every((e=>t.find((t=>t.project===e.project))));if(!t.find((t=>t.project===e.project))&&a){t.push(e)}r.push(...e.children);if(!a){r.push(e)}}));flattenTreeTopToBottom(r,t)}},8998:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.constructTree=void 0;function constructTree(e,t,r){const a=e.reduce(((e,a)=>{const i=constructNode(a,t,r);if(i){e[a.project]=i}return e}),{});return e.reduce(((e,t)=>{if(isRoot(t)&&a[t.project]){e.push(a[t.project])}else{t.dependencies?.forEach((e=>{if(!a[e.project]){throw new Error(`The project ${e.project} does not exist on project list. Please review your project definition file`)}if(a[t.project]){a[e.project].children.push(a[t.project]);a[t.project].parents.push(a[e.project])}}))}return e}),[])}t.constructTree=constructTree;function constructNode(e,t,r){const a=getBuildCommand(e.project,t,r);const i=findBuildConfigForProject(e.project,r);const n=i?.clone;return i?.skip?undefined:{project:e.project,parents:[],children:[],archiveArtifacts:getArchiveArtifacts(e.project,r),mapping:e.mapping,before:a?.before,after:a?.after,commands:{upstream:a?.upstream??[],downstream:a?.downstream??[],current:a?.current??[]},...n?{clone:n}:{}}}function isRoot(e){return!e.dependencies||e.dependencies.length===0}function getArchiveArtifacts(e,t){return t?.find((t=>t.project===e))?.["archive-artifacts"]}function getBuildCommand(e,t,r){const a=findBuildConfigForProject(e,r);const i=a?.["build-command"];if(!i){return t}return{...i,after:i?.after?getDefaultCommandLevel(i.after,t?.after):t?.after,before:i?.before?getDefaultCommandLevel(i.before,t?.before):t?.before,...getDefaultCommandLevel({current:i.current,upstream:i.upstream,downstream:i.downstream},t)}}function getDefaultCommandLevel(e,t){if(!t){return e}const r={...e};Object.entries(e).forEach((([e,a])=>{if(a.length===0){r[e]=t[e]??a}}));return r}function findBuildConfigForProject(e,t){return t?.find((t=>t.project===e))}},9596:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.getMapping=t.getMappedTarget=void 0;function getMappedTarget(e,t,r,a,i){return getMapping(e,t,r,a,i)?.target??i}t.getMappedTarget=getMappedTarget;function getMapping(e,t,r,a,i){if(e===r){return}return getSourceToTargetFromProjectOrDefault(i,r,t?.exclude??[],t?.dependencies)||getSourceToTargetFromProjectOrDefault(i,e,a?.exclude??[],a?.dependant)}t.getMapping=getMapping;function getSourceToTargetFromProjectOrDefault(e,t,r,a){if(!r.includes(t)&&a){return findSourceToTarget(e,a[t])??findSourceToTarget(e,a.default)}}function findSourceToTarget(e,t){return t?.find((t=>t.source===e))??t?.find((t=>!!e.match(new RegExp(`^${t.source}$`))))}},4619:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.safeEval=void 0;function safeEval(e,t){return Function("args",`"use strict";return (${e})`)(t)}t.safeEval=safeEval},3919:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.treatUrl=void 0;const a=r(4619);function treatUrl(e,t,r,a){return replaceExpressions(replacePlaceholders(e,t,r,a))}t.treatUrl=treatUrl;function replacePlaceholders(e,t,r,a){let i=e;const n=/\${([^{}:]+)(:([^{}]*))?}/g;const s=[...e.matchAll(n)];s.forEach((e=>{const n=e[1];let s=e[3]??process.env[n]??"";if(n==="GROUP"&&t){s=t}else if(n==="PROJECT_NAME"&&r){s=r}else if(n==="BRANCH"&&a){s=a}i=i.replace(new RegExp(`\\$\\{${n}(:([^{}]*))?}`,"gi"),s)}));return i}function replaceExpressions(e){let t=e;const r=/%{([^%]+)}/g;const i=[...e.matchAll(r)];i.forEach((e=>{t=t.replace(`%{${e[1]}}`,(0,a.safeEval)(e[1]))}));return t}},5265:function(e,t,r){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.validateDefinitionFile=void 0;const i=r(4083);const n=a(r(5439));const s=r(9579);async function validateDefinitionFile(e){const t=(0,i.parse)(e,reviver);const r=new n.default({useDefaults:"empty",allowUnionTypes:true});const a=r.compile(s.DefintionFileSchema);const o=a(t);if(o){return t}else{throw new Error(JSON.stringify(a.errors))}}t.validateDefinitionFile=validateDefinitionFile;function reviver(e,t){return convertToArray(e,t)||parseMapping(e,t)||parseBuild(e,t)||parseArchiveArtifacts(e,t)||t}function convertToArray(e,t){if(["path","current","upstream","downstream","clone","pre","success","failure","always"].includes(e)&&typeof t==="string"){return t.trim().split("\n")}}function initializeUndefined(e,t,r){if(!t[e]){t[e]=r}return t}function parseMapping(e,t){if(e==="mapping"){const e=t;initializeUndefined("exclude",e,[]);if(e["dependencies"]){initializeUndefined("default",e["dependencies"],[])}if(e["dependant"]){initializeUndefined("default",e["dependant"],[])}return e}}function parseBuild(e,t){if(["before","after","build-command"].includes(e)){const e=t;["upstream","downstream","current"].forEach((t=>{initializeUndefined(t,e,[])}));return e}}function parseArchiveArtifacts(e,t){if(e==="archive-artifacts"){const e=t;initializeUndefined("dependencies",e,"none");if(e["path"]&&Array.isArray(e["path"])){e["paths"]=transformPath(e.path);delete e["path"]}return e}}function transformPath(e){return e.map((e=>{if(typeof e==="string"){const t=e.lastIndexOf("@");return{path:t===-1?e:e.slice(0,t),on:t===-1?"success":e.slice(t+1)}}}))}},5439:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.MissingRefError=t.ValidationError=t.CodeGen=t.Name=t.nil=t.stringify=t.str=t._=t.KeywordCxt=void 0;const a=r(2396);const i=r(5826);const n=r(6658);const s=r(3712);const o=["/properties"];const p="http://json-schema.org/draft-07/schema";class Ajv extends a.default{_addVocabularies(){super._addVocabularies();i.default.forEach((e=>this.addVocabulary(e)));if(this.opts.discriminator)this.addKeyword(n.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema();if(!this.opts.meta)return;const e=this.opts.$data?this.$dataMetaSchema(s,o):s;this.addMetaSchema(e,p,false);this.refs["http://json-schema.org/schema"]=p}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(p)?p:undefined)}}e.exports=t=Ajv;Object.defineProperty(t,"__esModule",{value:true});t["default"]=Ajv;var c=r(4988);Object.defineProperty(t,"KeywordCxt",{enumerable:true,get:function(){return c.KeywordCxt}});var l=r(6035);Object.defineProperty(t,"_",{enumerable:true,get:function(){return l._}});Object.defineProperty(t,"str",{enumerable:true,get:function(){return l.str}});Object.defineProperty(t,"stringify",{enumerable:true,get:function(){return l.stringify}});Object.defineProperty(t,"nil",{enumerable:true,get:function(){return l.nil}});Object.defineProperty(t,"Name",{enumerable:true,get:function(){return l.Name}});Object.defineProperty(t,"CodeGen",{enumerable:true,get:function(){return l.CodeGen}});var d=r(3111);Object.defineProperty(t,"ValidationError",{enumerable:true,get:function(){return d.default}});var u=r(2146);Object.defineProperty(t,"MissingRefError",{enumerable:true,get:function(){return u.default}})},6370:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.regexpCode=t.getEsmExportName=t.getProperty=t.safeStringify=t.stringify=t.strConcat=t.addCodeArg=t.str=t._=t.nil=t._Code=t.Name=t.IDENTIFIER=t._CodeOrName=void 0;class _CodeOrName{}t._CodeOrName=_CodeOrName;t.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;class Name extends _CodeOrName{constructor(e){super();if(!t.IDENTIFIER.test(e))throw new Error("CodeGen: name must be a valid identifier");this.str=e}toString(){return this.str}emptyStr(){return false}get names(){return{[this.str]:1}}}t.Name=Name;class _Code extends _CodeOrName{constructor(e){super();this._items=typeof e==="string"?[e]:e}toString(){return this.str}emptyStr(){if(this._items.length>1)return false;const e=this._items[0];return e===""||e==='""'}get str(){var e;return(e=this._str)!==null&&e!==void 0?e:this._str=this._items.reduce(((e,t)=>`${e}${t}`),"")}get names(){var e;return(e=this._names)!==null&&e!==void 0?e:this._names=this._items.reduce(((e,t)=>{if(t instanceof Name)e[t.str]=(e[t.str]||0)+1;return e}),{})}}t._Code=_Code;t.nil=new _Code("");function _(e,...t){const r=[e[0]];let a=0;while(a{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.or=t.and=t.not=t.CodeGen=t.operators=t.varKinds=t.ValueScopeName=t.ValueScope=t.Scope=t.Name=t.regexpCode=t.stringify=t.getProperty=t.nil=t.strConcat=t.str=t._=void 0;const a=r(6370);const i=r(3149);var n=r(6370);Object.defineProperty(t,"_",{enumerable:true,get:function(){return n._}});Object.defineProperty(t,"str",{enumerable:true,get:function(){return n.str}});Object.defineProperty(t,"strConcat",{enumerable:true,get:function(){return n.strConcat}});Object.defineProperty(t,"nil",{enumerable:true,get:function(){return n.nil}});Object.defineProperty(t,"getProperty",{enumerable:true,get:function(){return n.getProperty}});Object.defineProperty(t,"stringify",{enumerable:true,get:function(){return n.stringify}});Object.defineProperty(t,"regexpCode",{enumerable:true,get:function(){return n.regexpCode}});Object.defineProperty(t,"Name",{enumerable:true,get:function(){return n.Name}});var s=r(3149);Object.defineProperty(t,"Scope",{enumerable:true,get:function(){return s.Scope}});Object.defineProperty(t,"ValueScope",{enumerable:true,get:function(){return s.ValueScope}});Object.defineProperty(t,"ValueScopeName",{enumerable:true,get:function(){return s.ValueScopeName}});Object.defineProperty(t,"varKinds",{enumerable:true,get:function(){return s.varKinds}});t.operators={GT:new a._Code(">"),GTE:new a._Code(">="),LT:new a._Code("<"),LTE:new a._Code("<="),EQ:new a._Code("==="),NEQ:new a._Code("!=="),NOT:new a._Code("!"),OR:new a._Code("||"),AND:new a._Code("&&"),ADD:new a._Code("+")};class Node{optimizeNodes(){return this}optimizeNames(e,t){return this}}class Def extends Node{constructor(e,t,r){super();this.varKind=e;this.name=t;this.rhs=r}render({es5:e,_n:t}){const r=e?i.varKinds.var:this.varKind;const a=this.rhs===undefined?"":` = ${this.rhs}`;return`${r} ${this.name}${a};`+t}optimizeNames(e,t){if(!e[this.name.str])return;if(this.rhs)this.rhs=optimizeExpr(this.rhs,e,t);return this}get names(){return this.rhs instanceof a._CodeOrName?this.rhs.names:{}}}class Assign extends Node{constructor(e,t,r){super();this.lhs=e;this.rhs=t;this.sideEffects=r}render({_n:e}){return`${this.lhs} = ${this.rhs};`+e}optimizeNames(e,t){if(this.lhs instanceof a.Name&&!e[this.lhs.str]&&!this.sideEffects)return;this.rhs=optimizeExpr(this.rhs,e,t);return this}get names(){const e=this.lhs instanceof a.Name?{}:{...this.lhs.names};return addExprNames(e,this.rhs)}}class AssignOp extends Assign{constructor(e,t,r,a){super(e,r,a);this.op=t}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}}class Label extends Node{constructor(e){super();this.label=e;this.names={}}render({_n:e}){return`${this.label}:`+e}}class Break extends Node{constructor(e){super();this.label=e;this.names={}}render({_n:e}){const t=this.label?` ${this.label}`:"";return`break${t};`+e}}class Throw extends Node{constructor(e){super();this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}}class AnyCode extends Node{constructor(e){super();this.code=e}render({_n:e}){return`${this.code};`+e}optimizeNodes(){return`${this.code}`?this:undefined}optimizeNames(e,t){this.code=optimizeExpr(this.code,e,t);return this}get names(){return this.code instanceof a._CodeOrName?this.code.names:{}}}class ParentNode extends Node{constructor(e=[]){super();this.nodes=e}render(e){return this.nodes.reduce(((t,r)=>t+r.render(e)),"")}optimizeNodes(){const{nodes:e}=this;let t=e.length;while(t--){const r=e[t].optimizeNodes();if(Array.isArray(r))e.splice(t,1,...r);else if(r)e[t]=r;else e.splice(t,1)}return e.length>0?this:undefined}optimizeNames(e,t){const{nodes:r}=this;let a=r.length;while(a--){const i=r[a];if(i.optimizeNames(e,t))continue;subtractNames(e,i.names);r.splice(a,1)}return r.length>0?this:undefined}get names(){return this.nodes.reduce(((e,t)=>addNames(e,t.names)),{})}}class BlockNode extends ParentNode{render(e){return"{"+e._n+super.render(e)+"}"+e._n}}class Root extends ParentNode{}class Else extends BlockNode{}Else.kind="else";class If extends BlockNode{constructor(e,t){super(t);this.condition=e}render(e){let t=`if(${this.condition})`+super.render(e);if(this.else)t+="else "+this.else.render(e);return t}optimizeNodes(){super.optimizeNodes();const e=this.condition;if(e===true)return this.nodes;let t=this.else;if(t){const e=t.optimizeNodes();t=this.else=Array.isArray(e)?new Else(e):e}if(t){if(e===false)return t instanceof If?t:t.nodes;if(this.nodes.length)return this;return new If(not(e),t instanceof If?[t]:t.nodes)}if(e===false||!this.nodes.length)return undefined;return this}optimizeNames(e,t){var r;this.else=(r=this.else)===null||r===void 0?void 0:r.optimizeNames(e,t);if(!(super.optimizeNames(e,t)||this.else))return;this.condition=optimizeExpr(this.condition,e,t);return this}get names(){const e=super.names;addExprNames(e,this.condition);if(this.else)addNames(e,this.else.names);return e}}If.kind="if";class For extends BlockNode{}For.kind="for";class ForLoop extends For{constructor(e){super();this.iteration=e}render(e){return`for(${this.iteration})`+super.render(e)}optimizeNames(e,t){if(!super.optimizeNames(e,t))return;this.iteration=optimizeExpr(this.iteration,e,t);return this}get names(){return addNames(super.names,this.iteration.names)}}class ForRange extends For{constructor(e,t,r,a){super();this.varKind=e;this.name=t;this.from=r;this.to=a}render(e){const t=e.es5?i.varKinds.var:this.varKind;const{name:r,from:a,to:n}=this;return`for(${t} ${r}=${a}; ${r}<${n}; ${r}++)`+super.render(e)}get names(){const e=addExprNames(super.names,this.from);return addExprNames(e,this.to)}}class ForIter extends For{constructor(e,t,r,a){super();this.loop=e;this.varKind=t;this.name=r;this.iterable=a}render(e){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(e)}optimizeNames(e,t){if(!super.optimizeNames(e,t))return;this.iterable=optimizeExpr(this.iterable,e,t);return this}get names(){return addNames(super.names,this.iterable.names)}}class Func extends BlockNode{constructor(e,t,r){super();this.name=e;this.args=t;this.async=r}render(e){const t=this.async?"async ":"";return`${t}function ${this.name}(${this.args})`+super.render(e)}}Func.kind="func";class Return extends ParentNode{render(e){return"return "+super.render(e)}}Return.kind="return";class Try extends BlockNode{render(e){let t="try"+super.render(e);if(this.catch)t+=this.catch.render(e);if(this.finally)t+=this.finally.render(e);return t}optimizeNodes(){var e,t;super.optimizeNodes();(e=this.catch)===null||e===void 0?void 0:e.optimizeNodes();(t=this.finally)===null||t===void 0?void 0:t.optimizeNodes();return this}optimizeNames(e,t){var r,a;super.optimizeNames(e,t);(r=this.catch)===null||r===void 0?void 0:r.optimizeNames(e,t);(a=this.finally)===null||a===void 0?void 0:a.optimizeNames(e,t);return this}get names(){const e=super.names;if(this.catch)addNames(e,this.catch.names);if(this.finally)addNames(e,this.finally.names);return e}}class Catch extends BlockNode{constructor(e){super();this.error=e}render(e){return`catch(${this.error})`+super.render(e)}}Catch.kind="catch";class Finally extends BlockNode{render(e){return"finally"+super.render(e)}}Finally.kind="finally";class CodeGen{constructor(e,t={}){this._values={};this._blockStarts=[];this._constants={};this.opts={...t,_n:t.lines?"\n":""};this._extScope=e;this._scope=new i.Scope({parent:e});this._nodes=[new Root]}toString(){return this._root.render(this.opts)}name(e){return this._scope.name(e)}scopeName(e){return this._extScope.name(e)}scopeValue(e,t){const r=this._extScope.value(e,t);const a=this._values[r.prefix]||(this._values[r.prefix]=new Set);a.add(r);return r}getScopeValue(e,t){return this._extScope.getValue(e,t)}scopeRefs(e){return this._extScope.scopeRefs(e,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(e,t,r,a){const i=this._scope.toName(t);if(r!==undefined&&a)this._constants[i.str]=r;this._leafNode(new Def(e,i,r));return i}const(e,t,r){return this._def(i.varKinds.const,e,t,r)}let(e,t,r){return this._def(i.varKinds.let,e,t,r)}var(e,t,r){return this._def(i.varKinds.var,e,t,r)}assign(e,t,r){return this._leafNode(new Assign(e,t,r))}add(e,r){return this._leafNode(new AssignOp(e,t.operators.ADD,r))}code(e){if(typeof e=="function")e();else if(e!==a.nil)this._leafNode(new AnyCode(e));return this}object(...e){const t=["{"];for(const[r,i]of e){if(t.length>1)t.push(",");t.push(r);if(r!==i||this.opts.es5){t.push(":");(0,a.addCodeArg)(t,i)}}t.push("}");return new a._Code(t)}if(e,t,r){this._blockNode(new If(e));if(t&&r){this.code(t).else().code(r).endIf()}else if(t){this.code(t).endIf()}else if(r){throw new Error('CodeGen: "else" body without "then" body')}return this}elseIf(e){return this._elseNode(new If(e))}else(){return this._elseNode(new Else)}endIf(){return this._endBlockNode(If,Else)}_for(e,t){this._blockNode(e);if(t)this.code(t).endFor();return this}for(e,t){return this._for(new ForLoop(e),t)}forRange(e,t,r,a,n=(this.opts.es5?i.varKinds.var:i.varKinds.let)){const s=this._scope.toName(e);return this._for(new ForRange(n,s,t,r),(()=>a(s)))}forOf(e,t,r,n=i.varKinds.const){const s=this._scope.toName(e);if(this.opts.es5){const e=t instanceof a.Name?t:this.var("_arr",t);return this.forRange("_i",0,(0,a._)`${e}.length`,(t=>{this.var(s,(0,a._)`${e}[${t}]`);r(s)}))}return this._for(new ForIter("of",n,s,t),(()=>r(s)))}forIn(e,t,r,n=(this.opts.es5?i.varKinds.var:i.varKinds.const)){if(this.opts.ownProperties){return this.forOf(e,(0,a._)`Object.keys(${t})`,r)}const s=this._scope.toName(e);return this._for(new ForIter("in",n,s,t),(()=>r(s)))}endFor(){return this._endBlockNode(For)}label(e){return this._leafNode(new Label(e))}break(e){return this._leafNode(new Break(e))}return(e){const t=new Return;this._blockNode(t);this.code(e);if(t.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(Return)}try(e,t,r){if(!t&&!r)throw new Error('CodeGen: "try" without "catch" and "finally"');const a=new Try;this._blockNode(a);this.code(e);if(t){const e=this.name("e");this._currNode=a.catch=new Catch(e);t(e)}if(r){this._currNode=a.finally=new Finally;this.code(r)}return this._endBlockNode(Catch,Finally)}throw(e){return this._leafNode(new Throw(e))}block(e,t){this._blockStarts.push(this._nodes.length);if(e)this.code(e).endBlock(t);return this}endBlock(e){const t=this._blockStarts.pop();if(t===undefined)throw new Error("CodeGen: not in self-balancing block");const r=this._nodes.length-t;if(r<0||e!==undefined&&r!==e){throw new Error(`CodeGen: wrong number of nodes: ${r} vs ${e} expected`)}this._nodes.length=t;return this}func(e,t=a.nil,r,i){this._blockNode(new Func(e,t,r));if(i)this.code(i).endFunc();return this}endFunc(){return this._endBlockNode(Func)}optimize(e=1){while(e-- >0){this._root.optimizeNodes();this._root.optimizeNames(this._root.names,this._constants)}}_leafNode(e){this._currNode.nodes.push(e);return this}_blockNode(e){this._currNode.nodes.push(e);this._nodes.push(e)}_endBlockNode(e,t){const r=this._currNode;if(r instanceof e||t&&r instanceof t){this._nodes.pop();return this}throw new Error(`CodeGen: not in block "${t?`${e.kind}/${t.kind}`:e.kind}"`)}_elseNode(e){const t=this._currNode;if(!(t instanceof If)){throw new Error('CodeGen: "else" without "if"')}this._currNode=t.else=e;return this}get _root(){return this._nodes[0]}get _currNode(){const e=this._nodes;return e[e.length-1]}set _currNode(e){const t=this._nodes;t[t.length-1]=e}}t.CodeGen=CodeGen;function addNames(e,t){for(const r in t)e[r]=(e[r]||0)+(t[r]||0);return e}function addExprNames(e,t){return t instanceof a._CodeOrName?addNames(e,t.names):e}function optimizeExpr(e,t,r){if(e instanceof a.Name)return replaceName(e);if(!canOptimize(e))return e;return new a._Code(e._items.reduce(((e,t)=>{if(t instanceof a.Name)t=replaceName(t);if(t instanceof a._Code)e.push(...t._items);else e.push(t);return e}),[]));function replaceName(e){const a=r[e.str];if(a===undefined||t[e.str]!==1)return e;delete t[e.str];return a}function canOptimize(e){return e instanceof a._Code&&e._items.some((e=>e instanceof a.Name&&t[e.str]===1&&r[e.str]!==undefined))}}function subtractNames(e,t){for(const r in t)e[r]=(e[r]||0)-(t[r]||0)}function not(e){return typeof e=="boolean"||typeof e=="number"||e===null?!e:(0,a._)`!${par(e)}`}t.not=not;const o=mappend(t.operators.AND);function and(...e){return e.reduce(o)}t.and=and;const p=mappend(t.operators.OR);function or(...e){return e.reduce(p)}t.or=or;function mappend(e){return(t,r)=>t===a.nil?r:r===a.nil?t:(0,a._)`${par(t)} ${e} ${par(r)}`}function par(e){return e instanceof a.Name?e:(0,a._)`(${e})`}},3149:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.ValueScope=t.ValueScopeName=t.Scope=t.varKinds=t.UsedValueState=void 0;const a=r(6370);class ValueError extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`);this.value=e.value}}var i;(function(e){e[e["Started"]=0]="Started";e[e["Completed"]=1]="Completed"})(i=t.UsedValueState||(t.UsedValueState={}));t.varKinds={const:new a.Name("const"),let:new a.Name("let"),var:new a.Name("var")};class Scope{constructor({prefixes:e,parent:t}={}){this._names={};this._prefixes=e;this._parent=t}toName(e){return e instanceof a.Name?e:this.name(e)}name(e){return new a.Name(this._newName(e))}_newName(e){const t=this._names[e]||this._nameGroup(e);return`${e}${t.index++}`}_nameGroup(e){var t,r;if(((r=(t=this._parent)===null||t===void 0?void 0:t._prefixes)===null||r===void 0?void 0:r.has(e))||this._prefixes&&!this._prefixes.has(e)){throw new Error(`CodeGen: prefix "${e}" is not allowed in this scope`)}return this._names[e]={prefix:e,index:0}}}t.Scope=Scope;class ValueScopeName extends a.Name{constructor(e,t){super(t);this.prefix=e}setValue(e,{property:t,itemIndex:r}){this.value=e;this.scopePath=(0,a._)`.${new a.Name(t)}[${r}]`}}t.ValueScopeName=ValueScopeName;const n=(0,a._)`\n`;class ValueScope extends Scope{constructor(e){super(e);this._values={};this._scope=e.scope;this.opts={...e,_n:e.lines?n:a.nil}}get(){return this._scope}name(e){return new ValueScopeName(e,this._newName(e))}value(e,t){var r;if(t.ref===undefined)throw new Error("CodeGen: ref must be passed in value");const a=this.toName(e);const{prefix:i}=a;const n=(r=t.key)!==null&&r!==void 0?r:t.ref;let s=this._values[i];if(s){const e=s.get(n);if(e)return e}else{s=this._values[i]=new Map}s.set(n,a);const o=this._scope[i]||(this._scope[i]=[]);const p=o.length;o[p]=t.ref;a.setValue(t,{property:i,itemIndex:p});return a}getValue(e,t){const r=this._values[e];if(!r)return;return r.get(t)}scopeRefs(e,t=this._values){return this._reduceValues(t,(t=>{if(t.scopePath===undefined)throw new Error(`CodeGen: name "${t}" has no value`);return(0,a._)`${e}${t.scopePath}`}))}scopeCode(e=this._values,t,r){return this._reduceValues(e,(e=>{if(e.value===undefined)throw new Error(`CodeGen: name "${e}" has no value`);return e.value.code}),t,r)}_reduceValues(e,r,n={},s){let o=a.nil;for(const p in e){const c=e[p];if(!c)continue;const l=n[p]=n[p]||new Map;c.forEach((e=>{if(l.has(e))return;l.set(e,i.Started);let n=r(e);if(n){const r=this.opts.es5?t.varKinds.var:t.varKinds.const;o=(0,a._)`${o}${r} ${e} = ${n};${this.opts._n}`}else if(n=s===null||s===void 0?void 0:s(e)){o=(0,a._)`${o}${n}${this.opts._n}`}else{throw new ValueError(e)}l.set(e,i.Completed)}))}return o}}t.ValueScope=ValueScope},7722:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.extendErrors=t.resetErrorsCount=t.reportExtraError=t.reportError=t.keyword$DataError=t.keywordError=void 0;const a=r(6035);const i=r(407);const n=r(5302);t.keywordError={message:({keyword:e})=>(0,a.str)`must pass "${e}" keyword validation`};t.keyword$DataError={message:({keyword:e,schemaType:t})=>t?(0,a.str)`"${e}" keyword must be ${t} ($data)`:(0,a.str)`"${e}" keyword is invalid ($data)`};function reportError(e,r=t.keywordError,i,n){const{it:s}=e;const{gen:o,compositeRule:p,allErrors:c}=s;const l=errorObjectCode(e,r,i);if(n!==null&&n!==void 0?n:p||c){addError(o,l)}else{returnErrors(s,(0,a._)`[${l}]`)}}t.reportError=reportError;function reportExtraError(e,r=t.keywordError,a){const{it:i}=e;const{gen:s,compositeRule:o,allErrors:p}=i;const c=errorObjectCode(e,r,a);addError(s,c);if(!(o||p)){returnErrors(i,n.default.vErrors)}}t.reportExtraError=reportExtraError;function resetErrorsCount(e,t){e.assign(n.default.errors,t);e.if((0,a._)`${n.default.vErrors} !== null`,(()=>e.if(t,(()=>e.assign((0,a._)`${n.default.vErrors}.length`,t)),(()=>e.assign(n.default.vErrors,null)))))}t.resetErrorsCount=resetErrorsCount;function extendErrors({gen:e,keyword:t,schemaValue:r,data:i,errsCount:s,it:o}){if(s===undefined)throw new Error("ajv implementation error");const p=e.name("err");e.forRange("i",s,n.default.errors,(s=>{e.const(p,(0,a._)`${n.default.vErrors}[${s}]`);e.if((0,a._)`${p}.instancePath === undefined`,(()=>e.assign((0,a._)`${p}.instancePath`,(0,a.strConcat)(n.default.instancePath,o.errorPath))));e.assign((0,a._)`${p}.schemaPath`,(0,a.str)`${o.errSchemaPath}/${t}`);if(o.opts.verbose){e.assign((0,a._)`${p}.schema`,r);e.assign((0,a._)`${p}.data`,i)}}))}t.extendErrors=extendErrors;function addError(e,t){const r=e.const("err",t);e.if((0,a._)`${n.default.vErrors} === null`,(()=>e.assign(n.default.vErrors,(0,a._)`[${r}]`)),(0,a._)`${n.default.vErrors}.push(${r})`);e.code((0,a._)`${n.default.errors}++`)}function returnErrors(e,t){const{gen:r,validateName:i,schemaEnv:n}=e;if(n.$async){r.throw((0,a._)`new ${e.ValidationError}(${t})`)}else{r.assign((0,a._)`${i}.errors`,t);r.return(false)}}const s={keyword:new a.Name("keyword"),schemaPath:new a.Name("schemaPath"),params:new a.Name("params"),propertyName:new a.Name("propertyName"),message:new a.Name("message"),schema:new a.Name("schema"),parentSchema:new a.Name("parentSchema")};function errorObjectCode(e,t,r){const{createErrors:i}=e.it;if(i===false)return(0,a._)`{}`;return errorObject(e,t,r)}function errorObject(e,t,r={}){const{gen:a,it:i}=e;const n=[errorInstancePath(i,r),errorSchemaPath(e,r)];extraErrorProps(e,t,n);return a.object(...n)}function errorInstancePath({errorPath:e},{instancePath:t}){const r=t?(0,a.str)`${e}${(0,i.getErrorPath)(t,i.Type.Str)}`:e;return[n.default.instancePath,(0,a.strConcat)(n.default.instancePath,r)]}function errorSchemaPath({keyword:e,it:{errSchemaPath:t}},{schemaPath:r,parentSchema:n}){let o=n?t:(0,a.str)`${t}/${e}`;if(r){o=(0,a.str)`${o}${(0,i.getErrorPath)(r,i.Type.Str)}`}return[s.schemaPath,o]}function extraErrorProps(e,{params:t,message:r},i){const{keyword:o,data:p,schemaValue:c,it:l}=e;const{opts:d,propertyName:u,topSchemaRef:m,schemaPath:h}=l;i.push([s.keyword,o],[s.params,typeof t=="function"?t(e):t||(0,a._)`{}`]);if(d.messages){i.push([s.message,typeof r=="function"?r(e):r])}if(d.verbose){i.push([s.schema,c],[s.parentSchema,(0,a._)`${m}${h}`],[n.default.data,p])}if(u)i.push([s.propertyName,u])}},9230:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.resolveSchema=t.getCompilingSchema=t.resolveRef=t.compileSchema=t.SchemaEnv=void 0;const a=r(6035);const i=r(3111);const n=r(5302);const s=r(985);const o=r(407);const p=r(4988);class SchemaEnv{constructor(e){var t;this.refs={};this.dynamicAnchors={};let r;if(typeof e.schema=="object")r=e.schema;this.schema=e.schema;this.schemaId=e.schemaId;this.root=e.root||this;this.baseId=(t=e.baseId)!==null&&t!==void 0?t:(0,s.normalizeId)(r===null||r===void 0?void 0:r[e.schemaId||"$id"]);this.schemaPath=e.schemaPath;this.localRefs=e.localRefs;this.meta=e.meta;this.$async=r===null||r===void 0?void 0:r.$async;this.refs={}}}t.SchemaEnv=SchemaEnv;function compileSchema(e){const t=getCompilingSchema.call(this,e);if(t)return t;const r=(0,s.getFullPath)(this.opts.uriResolver,e.root.baseId);const{es5:o,lines:c}=this.opts.code;const{ownProperties:l}=this.opts;const d=new a.CodeGen(this.scope,{es5:o,lines:c,ownProperties:l});let u;if(e.$async){u=d.scopeValue("Error",{ref:i.default,code:(0,a._)`require("ajv/dist/runtime/validation_error").default`})}const m=d.scopeName("validate");e.validateName=m;const h={gen:d,allErrors:this.opts.allErrors,data:n.default.data,parentData:n.default.parentData,parentDataProperty:n.default.parentDataProperty,dataNames:[n.default.data],dataPathArr:[a.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:d.scopeValue("schema",this.opts.code.source===true?{ref:e.schema,code:(0,a.stringify)(e.schema)}:{ref:e.schema}),validateName:m,ValidationError:u,schema:e.schema,schemaEnv:e,rootId:r,baseId:e.baseId||r,schemaPath:a.nil,errSchemaPath:e.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,a._)`""`,opts:this.opts,self:this};let g;try{this._compilations.add(e);(0,p.validateFunctionCode)(h);d.optimize(this.opts.code.optimize);const t=d.toString();g=`${d.scopeRefs(n.default.scope)}return ${t}`;if(this.opts.code.process)g=this.opts.code.process(g,e);const r=new Function(`${n.default.self}`,`${n.default.scope}`,g);const i=r(this,this.scope.get());this.scope.value(m,{ref:i});i.errors=null;i.schema=e.schema;i.schemaEnv=e;if(e.$async)i.$async=true;if(this.opts.code.source===true){i.source={validateName:m,validateCode:t,scopeValues:d._values}}if(this.opts.unevaluated){const{props:e,items:t}=h;i.evaluated={props:e instanceof a.Name?undefined:e,items:t instanceof a.Name?undefined:t,dynamicProps:e instanceof a.Name,dynamicItems:t instanceof a.Name};if(i.source)i.source.evaluated=(0,a.stringify)(i.evaluated)}e.validate=i;return e}catch(t){delete e.validate;delete e.validateName;if(g)this.logger.error("Error compiling schema, function code:",g);throw t}finally{this._compilations.delete(e)}}t.compileSchema=compileSchema;function resolveRef(e,t,r){var a;r=(0,s.resolveUrl)(this.opts.uriResolver,t,r);const i=e.refs[r];if(i)return i;let n=resolve.call(this,e,r);if(n===undefined){const i=(a=e.localRefs)===null||a===void 0?void 0:a[r];const{schemaId:s}=this.opts;if(i)n=new SchemaEnv({schema:i,schemaId:s,root:e,baseId:t})}if(n===undefined)return;return e.refs[r]=inlineOrCompile.call(this,n)}t.resolveRef=resolveRef;function inlineOrCompile(e){if((0,s.inlineRef)(e.schema,this.opts.inlineRefs))return e.schema;return e.validate?e:compileSchema.call(this,e)}function getCompilingSchema(e){for(const t of this._compilations){if(sameSchemaEnv(t,e))return t}}t.getCompilingSchema=getCompilingSchema;function sameSchemaEnv(e,t){return e.schema===t.schema&&e.root===t.root&&e.baseId===t.baseId}function resolve(e,t){let r;while(typeof(r=this.refs[t])=="string")t=r;return r||this.schemas[t]||resolveSchema.call(this,e,t)}function resolveSchema(e,t){const r=this.opts.uriResolver.parse(t);const a=(0,s._getFullPath)(this.opts.uriResolver,r);let i=(0,s.getFullPath)(this.opts.uriResolver,e.baseId,undefined);if(Object.keys(e.schema).length>0&&a===i){return getJsonPointer.call(this,r,e)}const n=(0,s.normalizeId)(a);const o=this.refs[n]||this.schemas[n];if(typeof o=="string"){const t=resolveSchema.call(this,e,o);if(typeof(t===null||t===void 0?void 0:t.schema)!=="object")return;return getJsonPointer.call(this,r,t)}if(typeof(o===null||o===void 0?void 0:o.schema)!=="object")return;if(!o.validate)compileSchema.call(this,o);if(n===(0,s.normalizeId)(t)){const{schema:t}=o;const{schemaId:r}=this.opts;const a=t[r];if(a)i=(0,s.resolveUrl)(this.opts.uriResolver,i,a);return new SchemaEnv({schema:t,schemaId:r,root:e,baseId:i})}return getJsonPointer.call(this,r,o)}t.resolveSchema=resolveSchema;const c=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function getJsonPointer(e,{baseId:t,schema:r,root:a}){var i;if(((i=e.fragment)===null||i===void 0?void 0:i[0])!=="/")return;for(const a of e.fragment.slice(1).split("/")){if(typeof r==="boolean")return;const e=r[(0,o.unescapeFragment)(a)];if(e===undefined)return;r=e;const i=typeof r==="object"&&r[this.opts.schemaId];if(!c.has(a)&&i){t=(0,s.resolveUrl)(this.opts.uriResolver,t,i)}}let n;if(typeof r!="boolean"&&r.$ref&&!(0,o.schemaHasRulesButRef)(r,this.RULES)){const e=(0,s.resolveUrl)(this.opts.uriResolver,t,r.$ref);n=resolveSchema.call(this,a,e)}const{schemaId:p}=this.opts;n=n||new SchemaEnv({schema:r,schemaId:p,root:a,baseId:t});if(n.schema!==n.root.schema)return n;return undefined}},5302:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(6035);const i={data:new a.Name("data"),valCxt:new a.Name("valCxt"),instancePath:new a.Name("instancePath"),parentData:new a.Name("parentData"),parentDataProperty:new a.Name("parentDataProperty"),rootData:new a.Name("rootData"),dynamicAnchors:new a.Name("dynamicAnchors"),vErrors:new a.Name("vErrors"),errors:new a.Name("errors"),this:new a.Name("this"),self:new a.Name("self"),scope:new a.Name("scope"),json:new a.Name("json"),jsonPos:new a.Name("jsonPos"),jsonLen:new a.Name("jsonLen"),jsonPart:new a.Name("jsonPart")};t["default"]=i},2146:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(985);class MissingRefError extends Error{constructor(e,t,r,i){super(i||`can't resolve reference ${r} from id ${t}`);this.missingRef=(0,a.resolveUrl)(e,t,r);this.missingSchema=(0,a.normalizeId)((0,a.getFullPath)(e,this.missingRef))}}t["default"]=MissingRefError},985:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.getSchemaRefs=t.resolveUrl=t.normalizeId=t._getFullPath=t.getFullPath=t.inlineRef=void 0;const a=r(407);const i=r(8206);const n=r(9263);const s=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function inlineRef(e,t=true){if(typeof e=="boolean")return true;if(t===true)return!hasRef(e);if(!t)return false;return countKeys(e)<=t}t.inlineRef=inlineRef;const o=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function hasRef(e){for(const t in e){if(o.has(t))return true;const r=e[t];if(Array.isArray(r)&&r.some(hasRef))return true;if(typeof r=="object"&&hasRef(r))return true}return false}function countKeys(e){let t=0;for(const r in e){if(r==="$ref")return Infinity;t++;if(s.has(r))continue;if(typeof e[r]=="object"){(0,a.eachItem)(e[r],(e=>t+=countKeys(e)))}if(t===Infinity)return Infinity}return t}function getFullPath(e,t="",r){if(r!==false)t=normalizeId(t);const a=e.parse(t);return _getFullPath(e,a)}t.getFullPath=getFullPath;function _getFullPath(e,t){const r=e.serialize(t);return r.split("#")[0]+"#"}t._getFullPath=_getFullPath;const p=/#\/?$/;function normalizeId(e){return e?e.replace(p,""):""}t.normalizeId=normalizeId;function resolveUrl(e,t,r){r=normalizeId(r);return e.resolve(t,r)}t.resolveUrl=resolveUrl;const c=/^[a-z_][-a-z0-9._]*$/i;function getSchemaRefs(e,t){if(typeof e=="boolean")return{};const{schemaId:r,uriResolver:a}=this.opts;const s=normalizeId(e[r]||t);const o={"":s};const p=getFullPath(a,s,false);const l={};const d=new Set;n(e,{allKeys:true},((e,t,a,i)=>{if(i===undefined)return;const n=p+t;let s=o[i];if(typeof e[r]=="string")s=addRef.call(this,e[r]);addAnchor.call(this,e.$anchor);addAnchor.call(this,e.$dynamicAnchor);o[t]=s;function addRef(t){const r=this.opts.uriResolver.resolve;t=normalizeId(s?r(s,t):t);if(d.has(t))throw ambiguos(t);d.add(t);let a=this.refs[t];if(typeof a=="string")a=this.refs[a];if(typeof a=="object"){checkAmbiguosRef(e,a.schema,t)}else if(t!==normalizeId(n)){if(t[0]==="#"){checkAmbiguosRef(e,l[t],t);l[t]=e}else{this.refs[t]=n}}return t}function addAnchor(e){if(typeof e=="string"){if(!c.test(e))throw new Error(`invalid anchor "${e}"`);addRef.call(this,`#${e}`)}}}));return l;function checkAmbiguosRef(e,t,r){if(t!==undefined&&!i(e,t))throw ambiguos(r)}function ambiguos(e){return new Error(`reference "${e}" resolves to more than one schema`)}}t.getSchemaRefs=getSchemaRefs},6731:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.getRules=t.isJSONType=void 0;const r=["string","number","integer","boolean","null","object","array"];const a=new Set(r);function isJSONType(e){return typeof e=="string"&&a.has(e)}t.isJSONType=isJSONType;function getRules(){const e={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...e,integer:true,boolean:true,null:true},rules:[{rules:[]},e.number,e.string,e.array,e.object],post:{rules:[]},all:{},keywords:{}}}t.getRules=getRules},407:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.checkStrictMode=t.getErrorPath=t.Type=t.useFunc=t.setEvaluated=t.evaluatedPropsToName=t.mergeEvaluated=t.eachItem=t.unescapeJsonPointer=t.escapeJsonPointer=t.escapeFragment=t.unescapeFragment=t.schemaRefOrVal=t.schemaHasRulesButRef=t.schemaHasRules=t.checkUnknownRules=t.alwaysValidSchema=t.toHash=void 0;const a=r(6035);const i=r(6370);function toHash(e){const t={};for(const r of e)t[r]=true;return t}t.toHash=toHash;function alwaysValidSchema(e,t){if(typeof t=="boolean")return t;if(Object.keys(t).length===0)return true;checkUnknownRules(e,t);return!schemaHasRules(t,e.self.RULES.all)}t.alwaysValidSchema=alwaysValidSchema;function checkUnknownRules(e,t=e.schema){const{opts:r,self:a}=e;if(!r.strictSchema)return;if(typeof t==="boolean")return;const i=a.RULES.keywords;for(const r in t){if(!i[r])checkStrictMode(e,`unknown keyword: "${r}"`)}}t.checkUnknownRules=checkUnknownRules;function schemaHasRules(e,t){if(typeof e=="boolean")return!e;for(const r in e)if(t[r])return true;return false}t.schemaHasRules=schemaHasRules;function schemaHasRulesButRef(e,t){if(typeof e=="boolean")return!e;for(const r in e)if(r!=="$ref"&&t.all[r])return true;return false}t.schemaHasRulesButRef=schemaHasRulesButRef;function schemaRefOrVal({topSchemaRef:e,schemaPath:t},r,i,n){if(!n){if(typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="string")return(0,a._)`${r}`}return(0,a._)`${e}${t}${(0,a.getProperty)(i)}`}t.schemaRefOrVal=schemaRefOrVal;function unescapeFragment(e){return unescapeJsonPointer(decodeURIComponent(e))}t.unescapeFragment=unescapeFragment;function escapeFragment(e){return encodeURIComponent(escapeJsonPointer(e))}t.escapeFragment=escapeFragment;function escapeJsonPointer(e){if(typeof e=="number")return`${e}`;return e.replace(/~/g,"~0").replace(/\//g,"~1")}t.escapeJsonPointer=escapeJsonPointer;function unescapeJsonPointer(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}t.unescapeJsonPointer=unescapeJsonPointer;function eachItem(e,t){if(Array.isArray(e)){for(const r of e)t(r)}else{t(e)}}t.eachItem=eachItem;function makeMergeEvaluated({mergeNames:e,mergeToName:t,mergeValues:r,resultToName:i}){return(n,s,o,p)=>{const c=o===undefined?s:o instanceof a.Name?(s instanceof a.Name?e(n,s,o):t(n,s,o),o):s instanceof a.Name?(t(n,o,s),s):r(s,o);return p===a.Name&&!(c instanceof a.Name)?i(n,c):c}}t.mergeEvaluated={props:makeMergeEvaluated({mergeNames:(e,t,r)=>e.if((0,a._)`${r} !== true && ${t} !== undefined`,(()=>{e.if((0,a._)`${t} === true`,(()=>e.assign(r,true)),(()=>e.assign(r,(0,a._)`${r} || {}`).code((0,a._)`Object.assign(${r}, ${t})`)))})),mergeToName:(e,t,r)=>e.if((0,a._)`${r} !== true`,(()=>{if(t===true){e.assign(r,true)}else{e.assign(r,(0,a._)`${r} || {}`);setEvaluated(e,r,t)}})),mergeValues:(e,t)=>e===true?true:{...e,...t},resultToName:evaluatedPropsToName}),items:makeMergeEvaluated({mergeNames:(e,t,r)=>e.if((0,a._)`${r} !== true && ${t} !== undefined`,(()=>e.assign(r,(0,a._)`${t} === true ? true : ${r} > ${t} ? ${r} : ${t}`))),mergeToName:(e,t,r)=>e.if((0,a._)`${r} !== true`,(()=>e.assign(r,t===true?true:(0,a._)`${r} > ${t} ? ${r} : ${t}`))),mergeValues:(e,t)=>e===true?true:Math.max(e,t),resultToName:(e,t)=>e.var("items",t)})};function evaluatedPropsToName(e,t){if(t===true)return e.var("props",true);const r=e.var("props",(0,a._)`{}`);if(t!==undefined)setEvaluated(e,r,t);return r}t.evaluatedPropsToName=evaluatedPropsToName;function setEvaluated(e,t,r){Object.keys(r).forEach((r=>e.assign((0,a._)`${t}${(0,a.getProperty)(r)}`,true)))}t.setEvaluated=setEvaluated;const n={};function useFunc(e,t){return e.scopeValue("func",{ref:t,code:n[t.code]||(n[t.code]=new i._Code(t.code))})}t.useFunc=useFunc;var s;(function(e){e[e["Num"]=0]="Num";e[e["Str"]=1]="Str"})(s=t.Type||(t.Type={}));function getErrorPath(e,t,r){if(e instanceof a.Name){const i=t===s.Num;return r?i?(0,a._)`"[" + ${e} + "]"`:(0,a._)`"['" + ${e} + "']"`:i?(0,a._)`"/" + ${e}`:(0,a._)`"/" + ${e}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return r?(0,a.getProperty)(e).toString():"/"+escapeJsonPointer(e)}t.getErrorPath=getErrorPath;function checkStrictMode(e,t,r=e.opts.strictSchema){if(!r)return;t=`strict mode: ${t}`;if(r===true)throw new Error(t);e.self.logger.warn(t)}t.checkStrictMode=checkStrictMode},4019:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.shouldUseRule=t.shouldUseGroup=t.schemaHasRulesForType=void 0;function schemaHasRulesForType({schema:e,self:t},r){const a=t.RULES.types[r];return a&&a!==true&&shouldUseGroup(e,a)}t.schemaHasRulesForType=schemaHasRulesForType;function shouldUseGroup(e,t){return t.rules.some((t=>shouldUseRule(e,t)))}t.shouldUseGroup=shouldUseGroup;function shouldUseRule(e,t){var r;return e[t.keyword]!==undefined||((r=t.definition.implements)===null||r===void 0?void 0:r.some((t=>e[t]!==undefined)))}t.shouldUseRule=shouldUseRule},598:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.boolOrEmptySchema=t.topBoolOrEmptySchema=void 0;const a=r(7722);const i=r(6035);const n=r(5302);const s={message:"boolean schema is false"};function topBoolOrEmptySchema(e){const{gen:t,schema:r,validateName:a}=e;if(r===false){falseSchemaError(e,false)}else if(typeof r=="object"&&r.$async===true){t.return(n.default.data)}else{t.assign((0,i._)`${a}.errors`,null);t.return(true)}}t.topBoolOrEmptySchema=topBoolOrEmptySchema;function boolOrEmptySchema(e,t){const{gen:r,schema:a}=e;if(a===false){r.var(t,false);falseSchemaError(e)}else{r.var(t,true)}}t.boolOrEmptySchema=boolOrEmptySchema;function falseSchemaError(e,t){const{gen:r,data:i}=e;const n={gen:r,keyword:"false schema",data:i,schema:false,schemaCode:false,schemaValue:false,params:{},it:e};(0,a.reportError)(n,s,undefined,t)}},2933:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.reportTypeError=t.checkDataTypes=t.checkDataType=t.coerceAndCheckDataType=t.getJSONTypes=t.getSchemaTypes=t.DataType=void 0;const a=r(6731);const i=r(4019);const n=r(7722);const s=r(6035);const o=r(407);var p;(function(e){e[e["Correct"]=0]="Correct";e[e["Wrong"]=1]="Wrong"})(p=t.DataType||(t.DataType={}));function getSchemaTypes(e){const t=getJSONTypes(e.type);const r=t.includes("null");if(r){if(e.nullable===false)throw new Error("type: null contradicts nullable: false")}else{if(!t.length&&e.nullable!==undefined){throw new Error('"nullable" cannot be used without "type"')}if(e.nullable===true)t.push("null")}return t}t.getSchemaTypes=getSchemaTypes;function getJSONTypes(e){const t=Array.isArray(e)?e:e?[e]:[];if(t.every(a.isJSONType))return t;throw new Error("type must be JSONType or JSONType[]: "+t.join(","))}t.getJSONTypes=getJSONTypes;function coerceAndCheckDataType(e,t){const{gen:r,data:a,opts:n}=e;const s=coerceToTypes(t,n.coerceTypes);const o=t.length>0&&!(s.length===0&&t.length===1&&(0,i.schemaHasRulesForType)(e,t[0]));if(o){const i=checkDataTypes(t,a,n.strictNumbers,p.Wrong);r.if(i,(()=>{if(s.length)coerceData(e,t,s);else reportTypeError(e)}))}return o}t.coerceAndCheckDataType=coerceAndCheckDataType;const c=new Set(["string","number","integer","boolean","null"]);function coerceToTypes(e,t){return t?e.filter((e=>c.has(e)||t==="array"&&e==="array")):[]}function coerceData(e,t,r){const{gen:a,data:i,opts:n}=e;const o=a.let("dataType",(0,s._)`typeof ${i}`);const p=a.let("coerced",(0,s._)`undefined`);if(n.coerceTypes==="array"){a.if((0,s._)`${o} == 'object' && Array.isArray(${i}) && ${i}.length == 1`,(()=>a.assign(i,(0,s._)`${i}[0]`).assign(o,(0,s._)`typeof ${i}`).if(checkDataTypes(t,i,n.strictNumbers),(()=>a.assign(p,i)))))}a.if((0,s._)`${p} !== undefined`);for(const e of r){if(c.has(e)||e==="array"&&n.coerceTypes==="array"){coerceSpecificType(e)}}a.else();reportTypeError(e);a.endIf();a.if((0,s._)`${p} !== undefined`,(()=>{a.assign(i,p);assignParentData(e,p)}));function coerceSpecificType(e){switch(e){case"string":a.elseIf((0,s._)`${o} == "number" || ${o} == "boolean"`).assign(p,(0,s._)`"" + ${i}`).elseIf((0,s._)`${i} === null`).assign(p,(0,s._)`""`);return;case"number":a.elseIf((0,s._)`${o} == "boolean" || ${i} === null - || (${o} == "string" && ${i} && ${i} == +${i})`).assign(p,(0,s._)`+${i}`);return;case"integer":a.elseIf((0,s._)`${o} === "boolean" || ${i} === null - || (${o} === "string" && ${i} && ${i} == +${i} && !(${i} % 1))`).assign(p,(0,s._)`+${i}`);return;case"boolean":a.elseIf((0,s._)`${i} === "false" || ${i} === 0 || ${i} === null`).assign(p,false).elseIf((0,s._)`${i} === "true" || ${i} === 1`).assign(p,true);return;case"null":a.elseIf((0,s._)`${i} === "" || ${i} === 0 || ${i} === false`);a.assign(p,null);return;case"array":a.elseIf((0,s._)`${o} === "string" || ${o} === "number" - || ${o} === "boolean" || ${i} === null`).assign(p,(0,s._)`[${i}]`)}}}function assignParentData({gen:e,parentData:t,parentDataProperty:r},a){e.if((0,s._)`${t} !== undefined`,(()=>e.assign((0,s._)`${t}[${r}]`,a)))}function checkDataType(e,t,r,a=p.Correct){const i=a===p.Correct?s.operators.EQ:s.operators.NEQ;let n;switch(e){case"null":return(0,s._)`${t} ${i} null`;case"array":n=(0,s._)`Array.isArray(${t})`;break;case"object":n=(0,s._)`${t} && typeof ${t} == "object" && !Array.isArray(${t})`;break;case"integer":n=numCond((0,s._)`!(${t} % 1) && !isNaN(${t})`);break;case"number":n=numCond();break;default:return(0,s._)`typeof ${t} ${i} ${e}`}return a===p.Correct?n:(0,s.not)(n);function numCond(e=s.nil){return(0,s.and)((0,s._)`typeof ${t} == "number"`,e,r?(0,s._)`isFinite(${t})`:s.nil)}}t.checkDataType=checkDataType;function checkDataTypes(e,t,r,a){if(e.length===1){return checkDataType(e[0],t,r,a)}let i;const n=(0,o.toHash)(e);if(n.array&&n.object){const e=(0,s._)`typeof ${t} != "object"`;i=n.null?e:(0,s._)`!${t} || ${e}`;delete n.null;delete n.array;delete n.object}else{i=s.nil}if(n.number)delete n.integer;for(const e in n)i=(0,s.and)(i,checkDataType(e,t,r,a));return i}t.checkDataTypes=checkDataTypes;const l={message:({schema:e})=>`must be ${e}`,params:({schema:e,schemaValue:t})=>typeof e=="string"?(0,s._)`{type: ${e}}`:(0,s._)`{type: ${t}}`};function reportTypeError(e){const t=getTypeErrorContext(e);(0,n.reportError)(t,l)}t.reportTypeError=reportTypeError;function getTypeErrorContext(e){const{gen:t,data:r,schema:a}=e;const i=(0,o.schemaRefOrVal)(e,a,"type");return{gen:t,keyword:"type",data:r,schema:a.type,schemaCode:i,schemaValue:i,parentSchema:a,params:{},it:e}}},1871:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.assignDefaults=void 0;const a=r(6035);const i=r(407);function assignDefaults(e,t){const{properties:r,items:a}=e.schema;if(t==="object"&&r){for(const t in r){assignDefault(e,t,r[t].default)}}else if(t==="array"&&Array.isArray(a)){a.forEach(((t,r)=>assignDefault(e,r,t.default)))}}t.assignDefaults=assignDefaults;function assignDefault(e,t,r){const{gen:n,compositeRule:s,data:o,opts:p}=e;if(r===undefined)return;const c=(0,a._)`${o}${(0,a.getProperty)(t)}`;if(s){(0,i.checkStrictMode)(e,`default is ignored for: ${c}`);return}let l=(0,a._)`${c} === undefined`;if(p.useDefaults==="empty"){l=(0,a._)`${l} || ${c} === null || ${c} === ""`}n.if(l,(0,a._)`${c} = ${(0,a.stringify)(r)}`)}},4988:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.getData=t.KeywordCxt=t.validateFunctionCode=void 0;const a=r(598);const i=r(2933);const n=r(4019);const s=r(2933);const o=r(1871);const p=r(6888);const c=r(7640);const l=r(6035);const d=r(5302);const u=r(985);const m=r(407);const h=r(7722);function validateFunctionCode(e){if(isSchemaObj(e)){checkKeywords(e);if(schemaCxtHasRules(e)){topSchemaObjCode(e);return}}validateFunction(e,(()=>(0,a.topBoolOrEmptySchema)(e)))}t.validateFunctionCode=validateFunctionCode;function validateFunction({gen:e,validateName:t,schema:r,schemaEnv:a,opts:i},n){if(i.code.es5){e.func(t,(0,l._)`${d.default.data}, ${d.default.valCxt}`,a.$async,(()=>{e.code((0,l._)`"use strict"; ${funcSourceUrl(r,i)}`);destructureValCxtES5(e,i);e.code(n)}))}else{e.func(t,(0,l._)`${d.default.data}, ${destructureValCxt(i)}`,a.$async,(()=>e.code(funcSourceUrl(r,i)).code(n)))}}function destructureValCxt(e){return(0,l._)`{${d.default.instancePath}="", ${d.default.parentData}, ${d.default.parentDataProperty}, ${d.default.rootData}=${d.default.data}${e.dynamicRef?(0,l._)`, ${d.default.dynamicAnchors}={}`:l.nil}}={}`}function destructureValCxtES5(e,t){e.if(d.default.valCxt,(()=>{e.var(d.default.instancePath,(0,l._)`${d.default.valCxt}.${d.default.instancePath}`);e.var(d.default.parentData,(0,l._)`${d.default.valCxt}.${d.default.parentData}`);e.var(d.default.parentDataProperty,(0,l._)`${d.default.valCxt}.${d.default.parentDataProperty}`);e.var(d.default.rootData,(0,l._)`${d.default.valCxt}.${d.default.rootData}`);if(t.dynamicRef)e.var(d.default.dynamicAnchors,(0,l._)`${d.default.valCxt}.${d.default.dynamicAnchors}`)}),(()=>{e.var(d.default.instancePath,(0,l._)`""`);e.var(d.default.parentData,(0,l._)`undefined`);e.var(d.default.parentDataProperty,(0,l._)`undefined`);e.var(d.default.rootData,d.default.data);if(t.dynamicRef)e.var(d.default.dynamicAnchors,(0,l._)`{}`)}))}function topSchemaObjCode(e){const{schema:t,opts:r,gen:a}=e;validateFunction(e,(()=>{if(r.$comment&&t.$comment)commentKeyword(e);checkNoDefault(e);a.let(d.default.vErrors,null);a.let(d.default.errors,0);if(r.unevaluated)resetEvaluated(e);typeAndKeywords(e);returnResults(e)}));return}function resetEvaluated(e){const{gen:t,validateName:r}=e;e.evaluated=t.const("evaluated",(0,l._)`${r}.evaluated`);t.if((0,l._)`${e.evaluated}.dynamicProps`,(()=>t.assign((0,l._)`${e.evaluated}.props`,(0,l._)`undefined`)));t.if((0,l._)`${e.evaluated}.dynamicItems`,(()=>t.assign((0,l._)`${e.evaluated}.items`,(0,l._)`undefined`)))}function funcSourceUrl(e,t){const r=typeof e=="object"&&e[t.schemaId];return r&&(t.code.source||t.code.process)?(0,l._)`/*# sourceURL=${r} */`:l.nil}function subschemaCode(e,t){if(isSchemaObj(e)){checkKeywords(e);if(schemaCxtHasRules(e)){subSchemaObjCode(e,t);return}}(0,a.boolOrEmptySchema)(e,t)}function schemaCxtHasRules({schema:e,self:t}){if(typeof e=="boolean")return!e;for(const r in e)if(t.RULES.all[r])return true;return false}function isSchemaObj(e){return typeof e.schema!="boolean"}function subSchemaObjCode(e,t){const{schema:r,gen:a,opts:i}=e;if(i.$comment&&r.$comment)commentKeyword(e);updateContext(e);checkAsyncSchema(e);const n=a.const("_errs",d.default.errors);typeAndKeywords(e,n);a.var(t,(0,l._)`${n} === ${d.default.errors}`)}function checkKeywords(e){(0,m.checkUnknownRules)(e);checkRefsAndKeywords(e)}function typeAndKeywords(e,t){if(e.opts.jtd)return schemaKeywords(e,[],false,t);const r=(0,i.getSchemaTypes)(e.schema);const a=(0,i.coerceAndCheckDataType)(e,r);schemaKeywords(e,r,!a,t)}function checkRefsAndKeywords(e){const{schema:t,errSchemaPath:r,opts:a,self:i}=e;if(t.$ref&&a.ignoreKeywordsWithRef&&(0,m.schemaHasRulesButRef)(t,i.RULES)){i.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}}function checkNoDefault(e){const{schema:t,opts:r}=e;if(t.default!==undefined&&r.useDefaults&&r.strictSchema){(0,m.checkStrictMode)(e,"default is ignored in the schema root")}}function updateContext(e){const t=e.schema[e.opts.schemaId];if(t)e.baseId=(0,u.resolveUrl)(e.opts.uriResolver,e.baseId,t)}function checkAsyncSchema(e){if(e.schema.$async&&!e.schemaEnv.$async)throw new Error("async schema in sync schema")}function commentKeyword({gen:e,schemaEnv:t,schema:r,errSchemaPath:a,opts:i}){const n=r.$comment;if(i.$comment===true){e.code((0,l._)`${d.default.self}.logger.log(${n})`)}else if(typeof i.$comment=="function"){const r=(0,l.str)`${a}/$comment`;const i=e.scopeValue("root",{ref:t.root});e.code((0,l._)`${d.default.self}.opts.$comment(${n}, ${r}, ${i}.schema)`)}}function returnResults(e){const{gen:t,schemaEnv:r,validateName:a,ValidationError:i,opts:n}=e;if(r.$async){t.if((0,l._)`${d.default.errors} === 0`,(()=>t.return(d.default.data)),(()=>t.throw((0,l._)`new ${i}(${d.default.vErrors})`)))}else{t.assign((0,l._)`${a}.errors`,d.default.vErrors);if(n.unevaluated)assignEvaluated(e);t.return((0,l._)`${d.default.errors} === 0`)}}function assignEvaluated({gen:e,evaluated:t,props:r,items:a}){if(r instanceof l.Name)e.assign((0,l._)`${t}.props`,r);if(a instanceof l.Name)e.assign((0,l._)`${t}.items`,a)}function schemaKeywords(e,t,r,a){const{gen:i,schema:o,data:p,allErrors:c,opts:u,self:h}=e;const{RULES:g}=h;if(o.$ref&&(u.ignoreKeywordsWithRef||!(0,m.schemaHasRulesButRef)(o,g))){i.block((()=>keywordCode(e,"$ref",g.all.$ref.definition)));return}if(!u.jtd)checkStrictTypes(e,t);i.block((()=>{for(const e of g.rules)groupKeywords(e);groupKeywords(g.post)}));function groupKeywords(m){if(!(0,n.shouldUseGroup)(o,m))return;if(m.type){i.if((0,s.checkDataType)(m.type,p,u.strictNumbers));iterateKeywords(e,m);if(t.length===1&&t[0]===m.type&&r){i.else();(0,s.reportTypeError)(e)}i.endIf()}else{iterateKeywords(e,m)}if(!c)i.if((0,l._)`${d.default.errors} === ${a||0}`)}}function iterateKeywords(e,t){const{gen:r,schema:a,opts:{useDefaults:i}}=e;if(i)(0,o.assignDefaults)(e,t.type);r.block((()=>{for(const r of t.rules){if((0,n.shouldUseRule)(a,r)){keywordCode(e,r.keyword,r.definition,t.type)}}}))}function checkStrictTypes(e,t){if(e.schemaEnv.meta||!e.opts.strictTypes)return;checkContextTypes(e,t);if(!e.opts.allowUnionTypes)checkMultipleTypes(e,t);checkKeywordTypes(e,e.dataTypes)}function checkContextTypes(e,t){if(!t.length)return;if(!e.dataTypes.length){e.dataTypes=t;return}t.forEach((t=>{if(!includesType(e.dataTypes,t)){strictTypesError(e,`type "${t}" not allowed by context "${e.dataTypes.join(",")}"`)}}));narrowSchemaTypes(e,t)}function checkMultipleTypes(e,t){if(t.length>1&&!(t.length===2&&t.includes("null"))){strictTypesError(e,"use allowUnionTypes to allow union type keyword")}}function checkKeywordTypes(e,t){const r=e.self.RULES.all;for(const a in r){const i=r[a];if(typeof i=="object"&&(0,n.shouldUseRule)(e.schema,i)){const{type:r}=i.definition;if(r.length&&!r.some((e=>hasApplicableType(t,e)))){strictTypesError(e,`missing type "${r.join(",")}" for keyword "${a}"`)}}}}function hasApplicableType(e,t){return e.includes(t)||t==="number"&&e.includes("integer")}function includesType(e,t){return e.includes(t)||t==="integer"&&e.includes("number")}function narrowSchemaTypes(e,t){const r=[];for(const a of e.dataTypes){if(includesType(t,a))r.push(a);else if(t.includes("integer")&&a==="number")r.push("integer")}e.dataTypes=r}function strictTypesError(e,t){const r=e.schemaEnv.baseId+e.errSchemaPath;t+=` at "${r}" (strictTypes)`;(0,m.checkStrictMode)(e,t,e.opts.strictTypes)}class KeywordCxt{constructor(e,t,r){(0,p.validateKeywordUsage)(e,t,r);this.gen=e.gen;this.allErrors=e.allErrors;this.keyword=r;this.data=e.data;this.schema=e.schema[r];this.$data=t.$data&&e.opts.$data&&this.schema&&this.schema.$data;this.schemaValue=(0,m.schemaRefOrVal)(e,this.schema,r,this.$data);this.schemaType=t.schemaType;this.parentSchema=e.schema;this.params={};this.it=e;this.def=t;if(this.$data){this.schemaCode=e.gen.const("vSchema",getData(this.$data,e))}else{this.schemaCode=this.schemaValue;if(!(0,p.validSchemaType)(this.schema,t.schemaType,t.allowUndefined)){throw new Error(`${r} value must be ${JSON.stringify(t.schemaType)}`)}}if("code"in t?t.trackErrors:t.errors!==false){this.errsCount=e.gen.const("_errs",d.default.errors)}}result(e,t,r){this.failResult((0,l.not)(e),t,r)}failResult(e,t,r){this.gen.if(e);if(r)r();else this.error();if(t){this.gen.else();t();if(this.allErrors)this.gen.endIf()}else{if(this.allErrors)this.gen.endIf();else this.gen.else()}}pass(e,t){this.failResult((0,l.not)(e),undefined,t)}fail(e){if(e===undefined){this.error();if(!this.allErrors)this.gen.if(false);return}this.gen.if(e);this.error();if(this.allErrors)this.gen.endIf();else this.gen.else()}fail$data(e){if(!this.$data)return this.fail(e);const{schemaCode:t}=this;this.fail((0,l._)`${t} !== undefined && (${(0,l.or)(this.invalid$data(),e)})`)}error(e,t,r){if(t){this.setParams(t);this._error(e,r);this.setParams({});return}this._error(e,r)}_error(e,t){(e?h.reportExtraError:h.reportError)(this,this.def.error,t)}$dataError(){(0,h.reportError)(this,this.def.$dataError||h.keyword$DataError)}reset(){if(this.errsCount===undefined)throw new Error('add "trackErrors" to keyword definition');(0,h.resetErrorsCount)(this.gen,this.errsCount)}ok(e){if(!this.allErrors)this.gen.if(e)}setParams(e,t){if(t)Object.assign(this.params,e);else this.params=e}block$data(e,t,r=l.nil){this.gen.block((()=>{this.check$data(e,r);t()}))}check$data(e=l.nil,t=l.nil){if(!this.$data)return;const{gen:r,schemaCode:a,schemaType:i,def:n}=this;r.if((0,l.or)((0,l._)`${a} === undefined`,t));if(e!==l.nil)r.assign(e,true);if(i.length||n.validateSchema){r.elseIf(this.invalid$data());this.$dataError();if(e!==l.nil)r.assign(e,false)}r.else()}invalid$data(){const{gen:e,schemaCode:t,schemaType:r,def:a,it:i}=this;return(0,l.or)(wrong$DataType(),invalid$DataSchema());function wrong$DataType(){if(r.length){if(!(t instanceof l.Name))throw new Error("ajv implementation error");const e=Array.isArray(r)?r:[r];return(0,l._)`${(0,s.checkDataTypes)(e,t,i.opts.strictNumbers,s.DataType.Wrong)}`}return l.nil}function invalid$DataSchema(){if(a.validateSchema){const r=e.scopeValue("validate$data",{ref:a.validateSchema});return(0,l._)`!${r}(${t})`}return l.nil}}subschema(e,t){const r=(0,c.getSubschema)(this.it,e);(0,c.extendSubschemaData)(r,this.it,e);(0,c.extendSubschemaMode)(r,e);const a={...this.it,...r,items:undefined,props:undefined};subschemaCode(a,t);return a}mergeEvaluated(e,t){const{it:r,gen:a}=this;if(!r.opts.unevaluated)return;if(r.props!==true&&e.props!==undefined){r.props=m.mergeEvaluated.props(a,e.props,r.props,t)}if(r.items!==true&&e.items!==undefined){r.items=m.mergeEvaluated.items(a,e.items,r.items,t)}}mergeValidEvaluated(e,t){const{it:r,gen:a}=this;if(r.opts.unevaluated&&(r.props!==true||r.items!==true)){a.if(t,(()=>this.mergeEvaluated(e,l.Name)));return true}}}t.KeywordCxt=KeywordCxt;function keywordCode(e,t,r,a){const i=new KeywordCxt(e,r,t);if("code"in r){r.code(i,a)}else if(i.$data&&r.validate){(0,p.funcKeywordCode)(i,r)}else if("macro"in r){(0,p.macroKeywordCode)(i,r)}else if(r.compile||r.validate){(0,p.funcKeywordCode)(i,r)}}const g=/^\/(?:[^~]|~0|~1)*$/;const v=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function getData(e,{dataLevel:t,dataNames:r,dataPathArr:a}){let i;let n;if(e==="")return d.default.rootData;if(e[0]==="/"){if(!g.test(e))throw new Error(`Invalid JSON-pointer: ${e}`);i=e;n=d.default.rootData}else{const s=v.exec(e);if(!s)throw new Error(`Invalid JSON-pointer: ${e}`);const o=+s[1];i=s[2];if(i==="#"){if(o>=t)throw new Error(errorMsg("property/index",o));return a[t-o]}if(o>t)throw new Error(errorMsg("data",o));n=r[t-o];if(!i)return n}let s=n;const o=i.split("/");for(const e of o){if(e){n=(0,l._)`${n}${(0,l.getProperty)((0,m.unescapeJsonPointer)(e))}`;s=(0,l._)`${s} && ${n}`}}return s;function errorMsg(e,r){return`Cannot access ${e} ${r} levels up, current level is ${t}`}}t.getData=getData},6888:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.validateKeywordUsage=t.validSchemaType=t.funcKeywordCode=t.macroKeywordCode=void 0;const a=r(6035);const i=r(5302);const n=r(982);const s=r(7722);function macroKeywordCode(e,t){const{gen:r,keyword:i,schema:n,parentSchema:s,it:o}=e;const p=t.macro.call(o.self,n,s,o);const c=useKeyword(r,i,p);if(o.opts.validateSchema!==false)o.self.validateSchema(p,true);const l=r.name("valid");e.subschema({schema:p,schemaPath:a.nil,errSchemaPath:`${o.errSchemaPath}/${i}`,topSchemaRef:c,compositeRule:true},l);e.pass(l,(()=>e.error(true)))}t.macroKeywordCode=macroKeywordCode;function funcKeywordCode(e,t){var r;const{gen:s,keyword:o,schema:p,parentSchema:c,$data:l,it:d}=e;checkAsyncKeyword(d,t);const u=!l&&t.compile?t.compile.call(d.self,p,c,d):t.validate;const m=useKeyword(s,o,u);const h=s.let("valid");e.block$data(h,validateKeyword);e.ok((r=t.valid)!==null&&r!==void 0?r:h);function validateKeyword(){if(t.errors===false){assignValid();if(t.modifying)modifyData(e);reportErrs((()=>e.error()))}else{const r=t.async?validateAsync():validateSync();if(t.modifying)modifyData(e);reportErrs((()=>addErrs(e,r)))}}function validateAsync(){const e=s.let("ruleErrs",null);s.try((()=>assignValid((0,a._)`await `)),(t=>s.assign(h,false).if((0,a._)`${t} instanceof ${d.ValidationError}`,(()=>s.assign(e,(0,a._)`${t}.errors`)),(()=>s.throw(t)))));return e}function validateSync(){const e=(0,a._)`${m}.errors`;s.assign(e,null);assignValid(a.nil);return e}function assignValid(r=(t.async?(0,a._)`await `:a.nil)){const o=d.opts.passContext?i.default.this:i.default.self;const p=!("compile"in t&&!l||t.schema===false);s.assign(h,(0,a._)`${r}${(0,n.callValidateCode)(e,m,o,p)}`,t.modifying)}function reportErrs(e){var r;s.if((0,a.not)((r=t.valid)!==null&&r!==void 0?r:h),e)}}t.funcKeywordCode=funcKeywordCode;function modifyData(e){const{gen:t,data:r,it:i}=e;t.if(i.parentData,(()=>t.assign(r,(0,a._)`${i.parentData}[${i.parentDataProperty}]`)))}function addErrs(e,t){const{gen:r}=e;r.if((0,a._)`Array.isArray(${t})`,(()=>{r.assign(i.default.vErrors,(0,a._)`${i.default.vErrors} === null ? ${t} : ${i.default.vErrors}.concat(${t})`).assign(i.default.errors,(0,a._)`${i.default.vErrors}.length`);(0,s.extendErrors)(e)}),(()=>e.error()))}function checkAsyncKeyword({schemaEnv:e},t){if(t.async&&!e.$async)throw new Error("async keyword in sync schema")}function useKeyword(e,t,r){if(r===undefined)throw new Error(`keyword "${t}" failed to compile`);return e.scopeValue("keyword",typeof r=="function"?{ref:r}:{ref:r,code:(0,a.stringify)(r)})}function validSchemaType(e,t,r=false){return!t.length||t.some((t=>t==="array"?Array.isArray(e):t==="object"?e&&typeof e=="object"&&!Array.isArray(e):typeof e==t||r&&typeof e=="undefined"))}t.validSchemaType=validSchemaType;function validateKeywordUsage({schema:e,opts:t,self:r,errSchemaPath:a},i,n){if(Array.isArray(i.keyword)?!i.keyword.includes(n):i.keyword!==n){throw new Error("ajv implementation error")}const s=i.dependencies;if(s===null||s===void 0?void 0:s.some((t=>!Object.prototype.hasOwnProperty.call(e,t)))){throw new Error(`parent schema must have dependencies of ${n}: ${s.join(",")}`)}if(i.validateSchema){const s=i.validateSchema(e[n]);if(!s){const e=`keyword "${n}" value is invalid at path "${a}": `+r.errorsText(i.validateSchema.errors);if(t.validateSchema==="log")r.logger.error(e);else throw new Error(e)}}}t.validateKeywordUsage=validateKeywordUsage},7640:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.extendSubschemaMode=t.extendSubschemaData=t.getSubschema=void 0;const a=r(6035);const i=r(407);function getSubschema(e,{keyword:t,schemaProp:r,schema:n,schemaPath:s,errSchemaPath:o,topSchemaRef:p}){if(t!==undefined&&n!==undefined){throw new Error('both "keyword" and "schema" passed, only one allowed')}if(t!==undefined){const n=e.schema[t];return r===undefined?{schema:n,schemaPath:(0,a._)`${e.schemaPath}${(0,a.getProperty)(t)}`,errSchemaPath:`${e.errSchemaPath}/${t}`}:{schema:n[r],schemaPath:(0,a._)`${e.schemaPath}${(0,a.getProperty)(t)}${(0,a.getProperty)(r)}`,errSchemaPath:`${e.errSchemaPath}/${t}/${(0,i.escapeFragment)(r)}`}}if(n!==undefined){if(s===undefined||o===undefined||p===undefined){throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"')}return{schema:n,schemaPath:s,topSchemaRef:p,errSchemaPath:o}}throw new Error('either "keyword" or "schema" must be passed')}t.getSubschema=getSubschema;function extendSubschemaData(e,t,{dataProp:r,dataPropType:n,data:s,dataTypes:o,propertyName:p}){if(s!==undefined&&r!==undefined){throw new Error('both "data" and "dataProp" passed, only one allowed')}const{gen:c}=t;if(r!==undefined){const{errorPath:s,dataPathArr:o,opts:p}=t;const l=c.let("data",(0,a._)`${t.data}${(0,a.getProperty)(r)}`,true);dataContextProps(l);e.errorPath=(0,a.str)`${s}${(0,i.getErrorPath)(r,n,p.jsPropertySyntax)}`;e.parentDataProperty=(0,a._)`${r}`;e.dataPathArr=[...o,e.parentDataProperty]}if(s!==undefined){const t=s instanceof a.Name?s:c.let("data",s,true);dataContextProps(t);if(p!==undefined)e.propertyName=p}if(o)e.dataTypes=o;function dataContextProps(r){e.data=r;e.dataLevel=t.dataLevel+1;e.dataTypes=[];t.definedProperties=new Set;e.parentData=t.data;e.dataNames=[...t.dataNames,r]}}t.extendSubschemaData=extendSubschemaData;function extendSubschemaMode(e,{jtdDiscriminator:t,jtdMetadata:r,compositeRule:a,createErrors:i,allErrors:n}){if(a!==undefined)e.compositeRule=a;if(i!==undefined)e.createErrors=i;if(n!==undefined)e.allErrors=n;e.jtdDiscriminator=t;e.jtdMetadata=r}t.extendSubschemaMode=extendSubschemaMode},2396:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.CodeGen=t.Name=t.nil=t.stringify=t.str=t._=t.KeywordCxt=void 0;var a=r(4988);Object.defineProperty(t,"KeywordCxt",{enumerable:true,get:function(){return a.KeywordCxt}});var i=r(6035);Object.defineProperty(t,"_",{enumerable:true,get:function(){return i._}});Object.defineProperty(t,"str",{enumerable:true,get:function(){return i.str}});Object.defineProperty(t,"stringify",{enumerable:true,get:function(){return i.stringify}});Object.defineProperty(t,"nil",{enumerable:true,get:function(){return i.nil}});Object.defineProperty(t,"Name",{enumerable:true,get:function(){return i.Name}});Object.defineProperty(t,"CodeGen",{enumerable:true,get:function(){return i.CodeGen}});const n=r(3111);const s=r(2146);const o=r(6731);const p=r(9230);const c=r(6035);const l=r(985);const d=r(2933);const u=r(407);const m=r(7063);const h=r(1744);const defaultRegExp=(e,t)=>new RegExp(e,t);defaultRegExp.code="new RegExp";const g=["removeAdditional","useDefaults","coerceTypes"];const v=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]);const y={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."};const b={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'};const w=200;function requiredOptions(e){var t,r,a,i,n,s,o,p,c,l,d,u,m,g,v,y,b,x,E,S,T,k,C,O,P;const A=e.strict;const D=(t=e.code)===null||t===void 0?void 0:t.optimize;const N=D===true||D===undefined?1:D||0;const R=(a=(r=e.code)===null||r===void 0?void 0:r.regExp)!==null&&a!==void 0?a:defaultRegExp;const j=(i=e.uriResolver)!==null&&i!==void 0?i:h.default;return{strictSchema:(s=(n=e.strictSchema)!==null&&n!==void 0?n:A)!==null&&s!==void 0?s:true,strictNumbers:(p=(o=e.strictNumbers)!==null&&o!==void 0?o:A)!==null&&p!==void 0?p:true,strictTypes:(l=(c=e.strictTypes)!==null&&c!==void 0?c:A)!==null&&l!==void 0?l:"log",strictTuples:(u=(d=e.strictTuples)!==null&&d!==void 0?d:A)!==null&&u!==void 0?u:"log",strictRequired:(g=(m=e.strictRequired)!==null&&m!==void 0?m:A)!==null&&g!==void 0?g:false,code:e.code?{...e.code,optimize:N,regExp:R}:{optimize:N,regExp:R},loopRequired:(v=e.loopRequired)!==null&&v!==void 0?v:w,loopEnum:(y=e.loopEnum)!==null&&y!==void 0?y:w,meta:(b=e.meta)!==null&&b!==void 0?b:true,messages:(x=e.messages)!==null&&x!==void 0?x:true,inlineRefs:(E=e.inlineRefs)!==null&&E!==void 0?E:true,schemaId:(S=e.schemaId)!==null&&S!==void 0?S:"$id",addUsedSchema:(T=e.addUsedSchema)!==null&&T!==void 0?T:true,validateSchema:(k=e.validateSchema)!==null&&k!==void 0?k:true,validateFormats:(C=e.validateFormats)!==null&&C!==void 0?C:true,unicodeRegExp:(O=e.unicodeRegExp)!==null&&O!==void 0?O:true,int32range:(P=e.int32range)!==null&&P!==void 0?P:true,uriResolver:j}}class Ajv{constructor(e={}){this.schemas={};this.refs={};this.formats={};this._compilations=new Set;this._loading={};this._cache=new Map;e=this.opts={...e,...requiredOptions(e)};const{es5:t,lines:r}=this.opts.code;this.scope=new c.ValueScope({scope:{},prefixes:v,es5:t,lines:r});this.logger=getLogger(e.logger);const a=e.validateFormats;e.validateFormats=false;this.RULES=(0,o.getRules)();checkOptions.call(this,y,e,"NOT SUPPORTED");checkOptions.call(this,b,e,"DEPRECATED","warn");this._metaOpts=getMetaSchemaOptions.call(this);if(e.formats)addInitialFormats.call(this);this._addVocabularies();this._addDefaultMetaSchema();if(e.keywords)addInitialKeywords.call(this,e.keywords);if(typeof e.meta=="object")this.addMetaSchema(e.meta);addInitialSchemas.call(this);e.validateFormats=a}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){const{$data:e,meta:t,schemaId:r}=this.opts;let a=m;if(r==="id"){a={...m};a.id=a.$id;delete a.$id}if(t&&e)this.addMetaSchema(a,a[r],false)}defaultMeta(){const{meta:e,schemaId:t}=this.opts;return this.opts.defaultMeta=typeof e=="object"?e[t]||e:undefined}validate(e,t){let r;if(typeof e=="string"){r=this.getSchema(e);if(!r)throw new Error(`no schema with key or ref "${e}"`)}else{r=this.compile(e)}const a=r(t);if(!("$async"in r))this.errors=r.errors;return a}compile(e,t){const r=this._addSchema(e,t);return r.validate||this._compileSchemaEnv(r)}compileAsync(e,t){if(typeof this.opts.loadSchema!="function"){throw new Error("options.loadSchema should be a function")}const{loadSchema:r}=this.opts;return runCompileAsync.call(this,e,t);async function runCompileAsync(e,t){await loadMetaSchema.call(this,e.$schema);const r=this._addSchema(e,t);return r.validate||_compileAsync.call(this,r)}async function loadMetaSchema(e){if(e&&!this.getSchema(e)){await runCompileAsync.call(this,{$ref:e},true)}}async function _compileAsync(e){try{return this._compileSchemaEnv(e)}catch(t){if(!(t instanceof s.default))throw t;checkLoaded.call(this,t);await loadMissingSchema.call(this,t.missingSchema);return _compileAsync.call(this,e)}}function checkLoaded({missingSchema:e,missingRef:t}){if(this.refs[e]){throw new Error(`AnySchema ${e} is loaded but ${t} cannot be resolved`)}}async function loadMissingSchema(e){const r=await _loadSchema.call(this,e);if(!this.refs[e])await loadMetaSchema.call(this,r.$schema);if(!this.refs[e])this.addSchema(r,e,t)}async function _loadSchema(e){const t=this._loading[e];if(t)return t;try{return await(this._loading[e]=r(e))}finally{delete this._loading[e]}}}addSchema(e,t,r,a=this.opts.validateSchema){if(Array.isArray(e)){for(const t of e)this.addSchema(t,undefined,r,a);return this}let i;if(typeof e==="object"){const{schemaId:t}=this.opts;i=e[t];if(i!==undefined&&typeof i!="string"){throw new Error(`schema ${t} must be string`)}}t=(0,l.normalizeId)(t||i);this._checkUnique(t);this.schemas[t]=this._addSchema(e,r,t,a,true);return this}addMetaSchema(e,t,r=this.opts.validateSchema){this.addSchema(e,t,true,r);return this}validateSchema(e,t){if(typeof e=="boolean")return true;let r;r=e.$schema;if(r!==undefined&&typeof r!="string"){throw new Error("$schema must be a string")}r=r||this.opts.defaultMeta||this.defaultMeta();if(!r){this.logger.warn("meta-schema not available");this.errors=null;return true}const a=this.validate(r,e);if(!a&&t){const e="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(e);else throw new Error(e)}return a}getSchema(e){let t;while(typeof(t=getSchEnv.call(this,e))=="string")e=t;if(t===undefined){const{schemaId:r}=this.opts;const a=new p.SchemaEnv({schema:{},schemaId:r});t=p.resolveSchema.call(this,a,e);if(!t)return;this.refs[e]=t}return t.validate||this._compileSchemaEnv(t)}removeSchema(e){if(e instanceof RegExp){this._removeAllSchemas(this.schemas,e);this._removeAllSchemas(this.refs,e);return this}switch(typeof e){case"undefined":this._removeAllSchemas(this.schemas);this._removeAllSchemas(this.refs);this._cache.clear();return this;case"string":{const t=getSchEnv.call(this,e);if(typeof t=="object")this._cache.delete(t.schema);delete this.schemas[e];delete this.refs[e];return this}case"object":{const t=e;this._cache.delete(t);let r=e[this.opts.schemaId];if(r){r=(0,l.normalizeId)(r);delete this.schemas[r];delete this.refs[r]}return this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(e){for(const t of e)this.addKeyword(t);return this}addKeyword(e,t){let r;if(typeof e=="string"){r=e;if(typeof t=="object"){this.logger.warn("these parameters are deprecated, see docs for addKeyword");t.keyword=r}}else if(typeof e=="object"&&t===undefined){t=e;r=t.keyword;if(Array.isArray(r)&&!r.length){throw new Error("addKeywords: keyword must be string or non-empty array")}}else{throw new Error("invalid addKeywords parameters")}checkKeyword.call(this,r,t);if(!t){(0,u.eachItem)(r,(e=>addRule.call(this,e)));return this}keywordMetaschema.call(this,t);const a={...t,type:(0,d.getJSONTypes)(t.type),schemaType:(0,d.getJSONTypes)(t.schemaType)};(0,u.eachItem)(r,a.type.length===0?e=>addRule.call(this,e,a):e=>a.type.forEach((t=>addRule.call(this,e,a,t))));return this}getKeyword(e){const t=this.RULES.all[e];return typeof t=="object"?t.definition:!!t}removeKeyword(e){const{RULES:t}=this;delete t.keywords[e];delete t.all[e];for(const r of t.rules){const t=r.rules.findIndex((t=>t.keyword===e));if(t>=0)r.rules.splice(t,1)}return this}addFormat(e,t){if(typeof t=="string")t=new RegExp(t);this.formats[e]=t;return this}errorsText(e=this.errors,{separator:t=", ",dataVar:r="data"}={}){if(!e||e.length===0)return"No errors";return e.map((e=>`${r}${e.instancePath} ${e.message}`)).reduce(((e,r)=>e+t+r))}$dataMetaSchema(e,t){const r=this.RULES.all;e=JSON.parse(JSON.stringify(e));for(const a of t){const t=a.split("/").slice(1);let i=e;for(const e of t)i=i[e];for(const e in r){const t=r[e];if(typeof t!="object")continue;const{$data:a}=t.definition;const n=i[e];if(a&&n)i[e]=schemaOrData(n)}}return e}_removeAllSchemas(e,t){for(const r in e){const a=e[r];if(!t||t.test(r)){if(typeof a=="string"){delete e[r]}else if(a&&!a.meta){this._cache.delete(a.schema);delete e[r]}}}}_addSchema(e,t,r,a=this.opts.validateSchema,i=this.opts.addUsedSchema){let n;const{schemaId:s}=this.opts;if(typeof e=="object"){n=e[s]}else{if(this.opts.jtd)throw new Error("schema must be object");else if(typeof e!="boolean")throw new Error("schema must be object or boolean")}let o=this._cache.get(e);if(o!==undefined)return o;r=(0,l.normalizeId)(n||r);const c=l.getSchemaRefs.call(this,e,r);o=new p.SchemaEnv({schema:e,schemaId:s,meta:t,baseId:r,localRefs:c});this._cache.set(o.schema,o);if(i&&!r.startsWith("#")){if(r)this._checkUnique(r);this.refs[r]=o}if(a)this.validateSchema(e,true);return o}_checkUnique(e){if(this.schemas[e]||this.refs[e]){throw new Error(`schema with key or id "${e}" already exists`)}}_compileSchemaEnv(e){if(e.meta)this._compileMetaSchema(e);else p.compileSchema.call(this,e);if(!e.validate)throw new Error("ajv implementation error");return e.validate}_compileMetaSchema(e){const t=this.opts;this.opts=this._metaOpts;try{p.compileSchema.call(this,e)}finally{this.opts=t}}}t["default"]=Ajv;Ajv.ValidationError=n.default;Ajv.MissingRefError=s.default;function checkOptions(e,t,r,a="error"){for(const i in e){const n=i;if(n in t)this.logger[a](`${r}: option ${i}. ${e[n]}`)}}function getSchEnv(e){e=(0,l.normalizeId)(e);return this.schemas[e]||this.refs[e]}function addInitialSchemas(){const e=this.opts.schemas;if(!e)return;if(Array.isArray(e))this.addSchema(e);else for(const t in e)this.addSchema(e[t],t)}function addInitialFormats(){for(const e in this.opts.formats){const t=this.opts.formats[e];if(t)this.addFormat(e,t)}}function addInitialKeywords(e){if(Array.isArray(e)){this.addVocabulary(e);return}this.logger.warn("keywords option as map is deprecated, pass array");for(const t in e){const r=e[t];if(!r.keyword)r.keyword=t;this.addKeyword(r)}}function getMetaSchemaOptions(){const e={...this.opts};for(const t of g)delete e[t];return e}const x={log(){},warn(){},error(){}};function getLogger(e){if(e===false)return x;if(e===undefined)return console;if(e.log&&e.warn&&e.error)return e;throw new Error("logger must implement log, warn and error methods")}const E=/^[a-z_$][a-z0-9_$:-]*$/i;function checkKeyword(e,t){const{RULES:r}=this;(0,u.eachItem)(e,(e=>{if(r.keywords[e])throw new Error(`Keyword ${e} is already defined`);if(!E.test(e))throw new Error(`Keyword ${e} has invalid name`)}));if(!t)return;if(t.$data&&!("code"in t||"validate"in t)){throw new Error('$data keyword must have "code" or "validate" function')}}function addRule(e,t,r){var a;const i=t===null||t===void 0?void 0:t.post;if(r&&i)throw new Error('keyword with "post" flag cannot have "type"');const{RULES:n}=this;let s=i?n.post:n.rules.find((({type:e})=>e===r));if(!s){s={type:r,rules:[]};n.rules.push(s)}n.keywords[e]=true;if(!t)return;const o={keyword:e,definition:{...t,type:(0,d.getJSONTypes)(t.type),schemaType:(0,d.getJSONTypes)(t.schemaType)}};if(t.before)addBeforeRule.call(this,s,o,t.before);else s.rules.push(o);n.all[e]=o;(a=t.implements)===null||a===void 0?void 0:a.forEach((e=>this.addKeyword(e)))}function addBeforeRule(e,t,r){const a=e.rules.findIndex((e=>e.keyword===r));if(a>=0){e.rules.splice(a,0,t)}else{e.rules.push(t);this.logger.warn(`rule ${r} is not defined`)}}function keywordMetaschema(e){let{metaSchema:t}=e;if(t===undefined)return;if(e.$data&&this.opts.$data)t=schemaOrData(t);e.validateSchema=this.compile(t,true)}const S={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function schemaOrData(e){return{anyOf:[e,S]}}},4735:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(8206);a.code='require("ajv/dist/runtime/equal").default';t["default"]=a},100:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});function ucs2length(e){const t=e.length;let r=0;let a=0;let i;while(a=55296&&i<=56319&&a{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(20);a.code='require("ajv/dist/runtime/uri").default';t["default"]=a},3111:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});class ValidationError extends Error{constructor(e){super("validation failed");this.errors=e;this.ajv=this.validation=true}}t["default"]=ValidationError},7184:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.validateAdditionalItems=void 0;const a=r(6035);const i=r(407);const n={message:({params:{len:e}})=>(0,a.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,a._)`{limit: ${e}}`};const s={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:n,code(e){const{parentSchema:t,it:r}=e;const{items:a}=t;if(!Array.isArray(a)){(0,i.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}validateAdditionalItems(e,a)}};function validateAdditionalItems(e,t){const{gen:r,schema:n,data:s,keyword:o,it:p}=e;p.items=true;const c=r.const("len",(0,a._)`${s}.length`);if(n===false){e.setParams({len:t.length});e.pass((0,a._)`${c} <= ${t.length}`)}else if(typeof n=="object"&&!(0,i.alwaysValidSchema)(p,n)){const i=r.var("valid",(0,a._)`${c} <= ${t.length}`);r.if((0,a.not)(i),(()=>validateItems(i)));e.ok(i)}function validateItems(n){r.forRange("i",t.length,c,(t=>{e.subschema({keyword:o,dataProp:t,dataPropType:i.Type.Num},n);if(!p.allErrors)r.if((0,a.not)(n),(()=>r.break()))}))}}t.validateAdditionalItems=validateAdditionalItems;t["default"]=s},3347:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(982);const i=r(6035);const n=r(5302);const s=r(407);const o={message:"must NOT have additional properties",params:({params:e})=>(0,i._)`{additionalProperty: ${e.additionalProperty}}`};const p={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:true,trackErrors:true,error:o,code(e){const{gen:t,schema:r,parentSchema:o,data:p,errsCount:c,it:l}=e;if(!c)throw new Error("ajv implementation error");const{allErrors:d,opts:u}=l;l.props=true;if(u.removeAdditional!=="all"&&(0,s.alwaysValidSchema)(l,r))return;const m=(0,a.allSchemaProperties)(o.properties);const h=(0,a.allSchemaProperties)(o.patternProperties);checkAdditionalProperties();e.ok((0,i._)`${c} === ${n.default.errors}`);function checkAdditionalProperties(){t.forIn("key",p,(e=>{if(!m.length&&!h.length)additionalPropertyCode(e);else t.if(isAdditional(e),(()=>additionalPropertyCode(e)))}))}function isAdditional(r){let n;if(m.length>8){const e=(0,s.schemaRefOrVal)(l,o.properties,"properties");n=(0,a.isOwnProperty)(t,e,r)}else if(m.length){n=(0,i.or)(...m.map((e=>(0,i._)`${r} === ${e}`)))}else{n=i.nil}if(h.length){n=(0,i.or)(n,...h.map((t=>(0,i._)`${(0,a.usePattern)(e,t)}.test(${r})`)))}return(0,i.not)(n)}function deleteAdditional(e){t.code((0,i._)`delete ${p}[${e}]`)}function additionalPropertyCode(a){if(u.removeAdditional==="all"||u.removeAdditional&&r===false){deleteAdditional(a);return}if(r===false){e.setParams({additionalProperty:a});e.error();if(!d)t.break();return}if(typeof r=="object"&&!(0,s.alwaysValidSchema)(l,r)){const r=t.name("valid");if(u.removeAdditional==="failing"){applyAdditionalSchema(a,r,false);t.if((0,i.not)(r),(()=>{e.reset();deleteAdditional(a)}))}else{applyAdditionalSchema(a,r);if(!d)t.if((0,i.not)(r),(()=>t.break()))}}}function applyAdditionalSchema(t,r,a){const i={keyword:"additionalProperties",dataProp:t,dataPropType:s.Type.Str};if(a===false){Object.assign(i,{compositeRule:true,createErrors:false,allErrors:false})}e.subschema(i,r)}}};t["default"]=p},8870:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(407);const i={keyword:"allOf",schemaType:"array",code(e){const{gen:t,schema:r,it:i}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");const n=t.name("valid");r.forEach(((t,r)=>{if((0,a.alwaysValidSchema)(i,t))return;const s=e.subschema({keyword:"allOf",schemaProp:r},n);e.ok(n);e.mergeEvaluated(s)}))}};t["default"]=i},7155:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(982);const i={keyword:"anyOf",schemaType:"array",trackErrors:true,code:a.validateUnion,error:{message:"must match a schema in anyOf"}};t["default"]=i},8711:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(6035);const i=r(407);const n={message:({params:{min:e,max:t}})=>t===undefined?(0,a.str)`must contain at least ${e} valid item(s)`:(0,a.str)`must contain at least ${e} and no more than ${t} valid item(s)`,params:({params:{min:e,max:t}})=>t===undefined?(0,a._)`{minContains: ${e}}`:(0,a._)`{minContains: ${e}, maxContains: ${t}}`};const s={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:true,error:n,code(e){const{gen:t,schema:r,parentSchema:n,data:s,it:o}=e;let p;let c;const{minContains:l,maxContains:d}=n;if(o.opts.next){p=l===undefined?1:l;c=d}else{p=1}const u=t.const("len",(0,a._)`${s}.length`);e.setParams({min:p,max:c});if(c===undefined&&p===0){(0,i.checkStrictMode)(o,`"minContains" == 0 without "maxContains": "contains" keyword ignored`);return}if(c!==undefined&&p>c){(0,i.checkStrictMode)(o,`"minContains" > "maxContains" is always invalid`);e.fail();return}if((0,i.alwaysValidSchema)(o,r)){let t=(0,a._)`${u} >= ${p}`;if(c!==undefined)t=(0,a._)`${t} && ${u} <= ${c}`;e.pass(t);return}o.items=true;const m=t.name("valid");if(c===undefined&&p===1){validateItems(m,(()=>t.if(m,(()=>t.break()))))}else if(p===0){t.let(m,true);if(c!==undefined)t.if((0,a._)`${s}.length > 0`,validateItemsWithCount)}else{t.let(m,false);validateItemsWithCount()}e.result(m,(()=>e.reset()));function validateItemsWithCount(){const e=t.name("_valid");const r=t.let("count",0);validateItems(e,(()=>t.if(e,(()=>checkLimits(r)))))}function validateItems(r,a){t.forRange("i",0,u,(t=>{e.subschema({keyword:"contains",dataProp:t,dataPropType:i.Type.Num,compositeRule:true},r);a()}))}function checkLimits(e){t.code((0,a._)`${e}++`);if(c===undefined){t.if((0,a._)`${e} >= ${p}`,(()=>t.assign(m,true).break()))}else{t.if((0,a._)`${e} > ${c}`,(()=>t.assign(m,false).break()));if(p===1)t.assign(m,true);else t.if((0,a._)`${e} >= ${p}`,(()=>t.assign(m,true)))}}}};t["default"]=s},6482:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.validateSchemaDeps=t.validatePropertyDeps=t.error=void 0;const a=r(6035);const i=r(407);const n=r(982);t.error={message:({params:{property:e,depsCount:t,deps:r}})=>{const i=t===1?"property":"properties";return(0,a.str)`must have ${i} ${r} when property ${e} is present`},params:({params:{property:e,depsCount:t,deps:r,missingProperty:i}})=>(0,a._)`{property: ${e}, - missingProperty: ${i}, +(()=>{var __webpack_modules__={2605:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.create=void 0;const a=r(8802);function create(){return a.DefaultArtifactClient.create()}t.create=create},8802:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);n(t,e);return t};var s=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,n){function fulfilled(e){try{step(a.next(e))}catch(e){n(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){n(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.DefaultArtifactClient=void 0;const o=i(r(2186));const p=r(183);const c=r(4354);const l=r(6327);const d=r(7398);const u=r(8538);const m=r(5686);const h=r(2222);const g=r(1017);class DefaultArtifactClient{static create(){return new DefaultArtifactClient}uploadArtifact(e,t,r,a){return s(this,void 0,void 0,(function*(){o.info(`Starting artifact upload\nFor more detailed logs during the artifact upload process, enable step-debugging: https://docs.github.com/actions/monitoring-and-troubleshooting-workflows/enabling-debug-logging#enabling-step-debug-logging`);d.checkArtifactName(e);const n=p.getUploadSpecification(e,r,t);const i={artifactName:e,artifactItems:[],size:0,failedItems:[]};const s=new c.UploadHttpClient;if(n.length===0){o.warning(`No files found that can be uploaded`)}else{const t=yield s.createArtifactInFileContainer(e,a);if(!t.fileContainerResourceUrl){o.debug(t.toString());throw new Error("No URL provided by the Artifact Service to upload an artifact to")}o.debug(`Upload Resource URL: ${t.fileContainerResourceUrl}`);o.info(`Container for artifact "${e}" successfully created. Starting upload of file(s)`);const r=yield s.uploadArtifactToFileContainer(t.fileContainerResourceUrl,n,a);o.info(`File upload process has finished. Finalizing the artifact upload`);yield s.patchArtifactSize(r.totalSize,e);if(r.failedItems.length>0){o.info(`Upload finished. There were ${r.failedItems.length} items that failed to upload`)}else{o.info(`Artifact has been finalized. All files have been successfully uploaded!`)}o.info(`\nThe raw size of all the files that were specified for upload is ${r.totalSize} bytes\nThe size of all the files that were uploaded is ${r.uploadSize} bytes. This takes into account any gzip compression used to reduce the upload size, time and storage\n\nNote: The size of downloaded zips can differ significantly from the reported size. For more information see: https://github.com/actions/upload-artifact#zipped-artifact-downloads \r\n`);i.artifactItems=n.map((e=>e.absoluteFilePath));i.size=r.uploadSize;i.failedItems=r.failedItems}return i}))}downloadArtifact(e,t,r){return s(this,void 0,void 0,(function*(){const a=new u.DownloadHttpClient;const n=yield a.listArtifacts();if(n.count===0){throw new Error(`Unable to find any artifacts for the associated workflow`)}const i=n.value.find((t=>t.name===e));if(!i){throw new Error(`Unable to find an artifact with the name: ${e}`)}const s=yield a.getContainerItems(i.name,i.fileContainerResourceUrl);if(!t){t=h.getWorkSpaceDirectory()}t=g.normalize(t);t=g.resolve(t);const p=m.getDownloadSpecification(e,s.value,t,(r===null||r===void 0?void 0:r.createArtifactFolder)||false);if(p.filesToDownload.length===0){o.info(`No downloadable files were found for the artifact: ${i.name}`)}else{yield l.createDirectoriesForArtifact(p.directoryStructure);o.info("Directory structure has been setup for the artifact");yield l.createEmptyFilesForArtifact(p.emptyFilesToCreate);yield a.downloadSingleArtifact(p.filesToDownload)}return{artifactName:e,downloadPath:p.rootDownloadLocation}}))}downloadAllArtifacts(e){return s(this,void 0,void 0,(function*(){const t=new u.DownloadHttpClient;const r=[];const a=yield t.listArtifacts();if(a.count===0){o.info("Unable to find any artifacts for the associated workflow");return r}if(!e){e=h.getWorkSpaceDirectory()}e=g.normalize(e);e=g.resolve(e);let n=0;while(n{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.getRetentionDays=t.getWorkSpaceDirectory=t.getWorkFlowRunId=t.getRuntimeUrl=t.getRuntimeToken=t.getDownloadFileConcurrency=t.getInitialRetryIntervalInMilliseconds=t.getRetryMultiplier=t.getRetryLimit=t.getUploadChunkSize=t.getUploadFileConcurrency=void 0;function getUploadFileConcurrency(){return 2}t.getUploadFileConcurrency=getUploadFileConcurrency;function getUploadChunkSize(){return 8*1024*1024}t.getUploadChunkSize=getUploadChunkSize;function getRetryLimit(){return 5}t.getRetryLimit=getRetryLimit;function getRetryMultiplier(){return 1.5}t.getRetryMultiplier=getRetryMultiplier;function getInitialRetryIntervalInMilliseconds(){return 3e3}t.getInitialRetryIntervalInMilliseconds=getInitialRetryIntervalInMilliseconds;function getDownloadFileConcurrency(){return 2}t.getDownloadFileConcurrency=getDownloadFileConcurrency;function getRuntimeToken(){const e=process.env["ACTIONS_RUNTIME_TOKEN"];if(!e){throw new Error("Unable to get ACTIONS_RUNTIME_TOKEN env variable")}return e}t.getRuntimeToken=getRuntimeToken;function getRuntimeUrl(){const e=process.env["ACTIONS_RUNTIME_URL"];if(!e){throw new Error("Unable to get ACTIONS_RUNTIME_URL env variable")}return e}t.getRuntimeUrl=getRuntimeUrl;function getWorkFlowRunId(){const e=process.env["GITHUB_RUN_ID"];if(!e){throw new Error("Unable to get GITHUB_RUN_ID env variable")}return e}t.getWorkFlowRunId=getWorkFlowRunId;function getWorkSpaceDirectory(){const e=process.env["GITHUB_WORKSPACE"];if(!e){throw new Error("Unable to get GITHUB_WORKSPACE env variable")}return e}t.getWorkSpaceDirectory=getWorkSpaceDirectory;function getRetentionDays(){return process.env["GITHUB_RETENTION_DAYS"]}t.getRetentionDays=getRetentionDays},3549:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const r=[BigInt("0x0000000000000000"),BigInt("0x7F6EF0C830358979"),BigInt("0xFEDDE190606B12F2"),BigInt("0x81B31158505E9B8B"),BigInt("0xC962E5739841B68F"),BigInt("0xB60C15BBA8743FF6"),BigInt("0x37BF04E3F82AA47D"),BigInt("0x48D1F42BC81F2D04"),BigInt("0xA61CECB46814FE75"),BigInt("0xD9721C7C5821770C"),BigInt("0x58C10D24087FEC87"),BigInt("0x27AFFDEC384A65FE"),BigInt("0x6F7E09C7F05548FA"),BigInt("0x1010F90FC060C183"),BigInt("0x91A3E857903E5A08"),BigInt("0xEECD189FA00BD371"),BigInt("0x78E0FF3B88BE6F81"),BigInt("0x078E0FF3B88BE6F8"),BigInt("0x863D1EABE8D57D73"),BigInt("0xF953EE63D8E0F40A"),BigInt("0xB1821A4810FFD90E"),BigInt("0xCEECEA8020CA5077"),BigInt("0x4F5FFBD87094CBFC"),BigInt("0x30310B1040A14285"),BigInt("0xDEFC138FE0AA91F4"),BigInt("0xA192E347D09F188D"),BigInt("0x2021F21F80C18306"),BigInt("0x5F4F02D7B0F40A7F"),BigInt("0x179EF6FC78EB277B"),BigInt("0x68F0063448DEAE02"),BigInt("0xE943176C18803589"),BigInt("0x962DE7A428B5BCF0"),BigInt("0xF1C1FE77117CDF02"),BigInt("0x8EAF0EBF2149567B"),BigInt("0x0F1C1FE77117CDF0"),BigInt("0x7072EF2F41224489"),BigInt("0x38A31B04893D698D"),BigInt("0x47CDEBCCB908E0F4"),BigInt("0xC67EFA94E9567B7F"),BigInt("0xB9100A5CD963F206"),BigInt("0x57DD12C379682177"),BigInt("0x28B3E20B495DA80E"),BigInt("0xA900F35319033385"),BigInt("0xD66E039B2936BAFC"),BigInt("0x9EBFF7B0E12997F8"),BigInt("0xE1D10778D11C1E81"),BigInt("0x606216208142850A"),BigInt("0x1F0CE6E8B1770C73"),BigInt("0x8921014C99C2B083"),BigInt("0xF64FF184A9F739FA"),BigInt("0x77FCE0DCF9A9A271"),BigInt("0x08921014C99C2B08"),BigInt("0x4043E43F0183060C"),BigInt("0x3F2D14F731B68F75"),BigInt("0xBE9E05AF61E814FE"),BigInt("0xC1F0F56751DD9D87"),BigInt("0x2F3DEDF8F1D64EF6"),BigInt("0x50531D30C1E3C78F"),BigInt("0xD1E00C6891BD5C04"),BigInt("0xAE8EFCA0A188D57D"),BigInt("0xE65F088B6997F879"),BigInt("0x9931F84359A27100"),BigInt("0x1882E91B09FCEA8B"),BigInt("0x67EC19D339C963F2"),BigInt("0xD75ADABD7A6E2D6F"),BigInt("0xA8342A754A5BA416"),BigInt("0x29873B2D1A053F9D"),BigInt("0x56E9CBE52A30B6E4"),BigInt("0x1E383FCEE22F9BE0"),BigInt("0x6156CF06D21A1299"),BigInt("0xE0E5DE5E82448912"),BigInt("0x9F8B2E96B271006B"),BigInt("0x71463609127AD31A"),BigInt("0x0E28C6C1224F5A63"),BigInt("0x8F9BD7997211C1E8"),BigInt("0xF0F5275142244891"),BigInt("0xB824D37A8A3B6595"),BigInt("0xC74A23B2BA0EECEC"),BigInt("0x46F932EAEA507767"),BigInt("0x3997C222DA65FE1E"),BigInt("0xAFBA2586F2D042EE"),BigInt("0xD0D4D54EC2E5CB97"),BigInt("0x5167C41692BB501C"),BigInt("0x2E0934DEA28ED965"),BigInt("0x66D8C0F56A91F461"),BigInt("0x19B6303D5AA47D18"),BigInt("0x980521650AFAE693"),BigInt("0xE76BD1AD3ACF6FEA"),BigInt("0x09A6C9329AC4BC9B"),BigInt("0x76C839FAAAF135E2"),BigInt("0xF77B28A2FAAFAE69"),BigInt("0x8815D86ACA9A2710"),BigInt("0xC0C42C4102850A14"),BigInt("0xBFAADC8932B0836D"),BigInt("0x3E19CDD162EE18E6"),BigInt("0x41773D1952DB919F"),BigInt("0x269B24CA6B12F26D"),BigInt("0x59F5D4025B277B14"),BigInt("0xD846C55A0B79E09F"),BigInt("0xA72835923B4C69E6"),BigInt("0xEFF9C1B9F35344E2"),BigInt("0x90973171C366CD9B"),BigInt("0x1124202993385610"),BigInt("0x6E4AD0E1A30DDF69"),BigInt("0x8087C87E03060C18"),BigInt("0xFFE938B633338561"),BigInt("0x7E5A29EE636D1EEA"),BigInt("0x0134D92653589793"),BigInt("0x49E52D0D9B47BA97"),BigInt("0x368BDDC5AB7233EE"),BigInt("0xB738CC9DFB2CA865"),BigInt("0xC8563C55CB19211C"),BigInt("0x5E7BDBF1E3AC9DEC"),BigInt("0x21152B39D3991495"),BigInt("0xA0A63A6183C78F1E"),BigInt("0xDFC8CAA9B3F20667"),BigInt("0x97193E827BED2B63"),BigInt("0xE877CE4A4BD8A21A"),BigInt("0x69C4DF121B863991"),BigInt("0x16AA2FDA2BB3B0E8"),BigInt("0xF86737458BB86399"),BigInt("0x8709C78DBB8DEAE0"),BigInt("0x06BAD6D5EBD3716B"),BigInt("0x79D4261DDBE6F812"),BigInt("0x3105D23613F9D516"),BigInt("0x4E6B22FE23CC5C6F"),BigInt("0xCFD833A67392C7E4"),BigInt("0xB0B6C36E43A74E9D"),BigInt("0x9A6C9329AC4BC9B5"),BigInt("0xE50263E19C7E40CC"),BigInt("0x64B172B9CC20DB47"),BigInt("0x1BDF8271FC15523E"),BigInt("0x530E765A340A7F3A"),BigInt("0x2C608692043FF643"),BigInt("0xADD397CA54616DC8"),BigInt("0xD2BD67026454E4B1"),BigInt("0x3C707F9DC45F37C0"),BigInt("0x431E8F55F46ABEB9"),BigInt("0xC2AD9E0DA4342532"),BigInt("0xBDC36EC59401AC4B"),BigInt("0xF5129AEE5C1E814F"),BigInt("0x8A7C6A266C2B0836"),BigInt("0x0BCF7B7E3C7593BD"),BigInt("0x74A18BB60C401AC4"),BigInt("0xE28C6C1224F5A634"),BigInt("0x9DE29CDA14C02F4D"),BigInt("0x1C518D82449EB4C6"),BigInt("0x633F7D4A74AB3DBF"),BigInt("0x2BEE8961BCB410BB"),BigInt("0x548079A98C8199C2"),BigInt("0xD53368F1DCDF0249"),BigInt("0xAA5D9839ECEA8B30"),BigInt("0x449080A64CE15841"),BigInt("0x3BFE706E7CD4D138"),BigInt("0xBA4D61362C8A4AB3"),BigInt("0xC52391FE1CBFC3CA"),BigInt("0x8DF265D5D4A0EECE"),BigInt("0xF29C951DE49567B7"),BigInt("0x732F8445B4CBFC3C"),BigInt("0x0C41748D84FE7545"),BigInt("0x6BAD6D5EBD3716B7"),BigInt("0x14C39D968D029FCE"),BigInt("0x95708CCEDD5C0445"),BigInt("0xEA1E7C06ED698D3C"),BigInt("0xA2CF882D2576A038"),BigInt("0xDDA178E515432941"),BigInt("0x5C1269BD451DB2CA"),BigInt("0x237C997575283BB3"),BigInt("0xCDB181EAD523E8C2"),BigInt("0xB2DF7122E51661BB"),BigInt("0x336C607AB548FA30"),BigInt("0x4C0290B2857D7349"),BigInt("0x04D364994D625E4D"),BigInt("0x7BBD94517D57D734"),BigInt("0xFA0E85092D094CBF"),BigInt("0x856075C11D3CC5C6"),BigInt("0x134D926535897936"),BigInt("0x6C2362AD05BCF04F"),BigInt("0xED9073F555E26BC4"),BigInt("0x92FE833D65D7E2BD"),BigInt("0xDA2F7716ADC8CFB9"),BigInt("0xA54187DE9DFD46C0"),BigInt("0x24F29686CDA3DD4B"),BigInt("0x5B9C664EFD965432"),BigInt("0xB5517ED15D9D8743"),BigInt("0xCA3F8E196DA80E3A"),BigInt("0x4B8C9F413DF695B1"),BigInt("0x34E26F890DC31CC8"),BigInt("0x7C339BA2C5DC31CC"),BigInt("0x035D6B6AF5E9B8B5"),BigInt("0x82EE7A32A5B7233E"),BigInt("0xFD808AFA9582AA47"),BigInt("0x4D364994D625E4DA"),BigInt("0x3258B95CE6106DA3"),BigInt("0xB3EBA804B64EF628"),BigInt("0xCC8558CC867B7F51"),BigInt("0x8454ACE74E645255"),BigInt("0xFB3A5C2F7E51DB2C"),BigInt("0x7A894D772E0F40A7"),BigInt("0x05E7BDBF1E3AC9DE"),BigInt("0xEB2AA520BE311AAF"),BigInt("0x944455E88E0493D6"),BigInt("0x15F744B0DE5A085D"),BigInt("0x6A99B478EE6F8124"),BigInt("0x224840532670AC20"),BigInt("0x5D26B09B16452559"),BigInt("0xDC95A1C3461BBED2"),BigInt("0xA3FB510B762E37AB"),BigInt("0x35D6B6AF5E9B8B5B"),BigInt("0x4AB846676EAE0222"),BigInt("0xCB0B573F3EF099A9"),BigInt("0xB465A7F70EC510D0"),BigInt("0xFCB453DCC6DA3DD4"),BigInt("0x83DAA314F6EFB4AD"),BigInt("0x0269B24CA6B12F26"),BigInt("0x7D0742849684A65F"),BigInt("0x93CA5A1B368F752E"),BigInt("0xECA4AAD306BAFC57"),BigInt("0x6D17BB8B56E467DC"),BigInt("0x12794B4366D1EEA5"),BigInt("0x5AA8BF68AECEC3A1"),BigInt("0x25C64FA09EFB4AD8"),BigInt("0xA4755EF8CEA5D153"),BigInt("0xDB1BAE30FE90582A"),BigInt("0xBCF7B7E3C7593BD8"),BigInt("0xC399472BF76CB2A1"),BigInt("0x422A5673A732292A"),BigInt("0x3D44A6BB9707A053"),BigInt("0x759552905F188D57"),BigInt("0x0AFBA2586F2D042E"),BigInt("0x8B48B3003F739FA5"),BigInt("0xF42643C80F4616DC"),BigInt("0x1AEB5B57AF4DC5AD"),BigInt("0x6585AB9F9F784CD4"),BigInt("0xE436BAC7CF26D75F"),BigInt("0x9B584A0FFF135E26"),BigInt("0xD389BE24370C7322"),BigInt("0xACE74EEC0739FA5B"),BigInt("0x2D545FB4576761D0"),BigInt("0x523AAF7C6752E8A9"),BigInt("0xC41748D84FE75459"),BigInt("0xBB79B8107FD2DD20"),BigInt("0x3ACAA9482F8C46AB"),BigInt("0x45A459801FB9CFD2"),BigInt("0x0D75ADABD7A6E2D6"),BigInt("0x721B5D63E7936BAF"),BigInt("0xF3A84C3BB7CDF024"),BigInt("0x8CC6BCF387F8795D"),BigInt("0x620BA46C27F3AA2C"),BigInt("0x1D6554A417C62355"),BigInt("0x9CD645FC4798B8DE"),BigInt("0xE3B8B53477AD31A7"),BigInt("0xAB69411FBFB21CA3"),BigInt("0xD407B1D78F8795DA"),BigInt("0x55B4A08FDFD90E51"),BigInt("0x2ADA5047EFEC8728")];class CRC64{constructor(){this._crc=BigInt(0)}update(e){const t=typeof e==="string"?Buffer.from(e):e;let a=CRC64.flip64Bits(this._crc);for(const e of t){const t=Number(a&BigInt(255));a=r[t^e]^a>>BigInt(8)}this._crc=CRC64.flip64Bits(a)}digest(e){switch(e){case"hex":return this._crc.toString(16).toUpperCase();case"base64":return this.toBuffer().toString("base64");default:return this.toBuffer()}}toBuffer(){return Buffer.from([0,8,16,24,32,40,48,56].map((e=>Number(this._crc>>BigInt(e)&BigInt(255)))))}static flip64Bits(e){return(BigInt(1)<s(this,void 0,void 0,(function*(){return t.get(e,r)}))));const n=yield a.readBody();return JSON.parse(n)}))}getContainerItems(e,t){return s(this,void 0,void 0,(function*(){const r=new d.URL(t);r.searchParams.append("itemPath",e);const a=this.downloadHttpManager.getClient(0);const n=l.getDownloadHeaders("application/json");const i=yield v.retryHttpClientRequest("Get Container Items",(()=>s(this,void 0,void 0,(function*(){return a.get(r.toString(),n)}))));const o=yield i.readBody();return JSON.parse(o)}))}downloadSingleArtifact(e){return s(this,void 0,void 0,(function*(){const t=g.getDownloadFileConcurrency();p.debug(`Download file concurrency is set to ${t}`);const r=[...new Array(t).keys()];let a=0;let n=0;p.info(`Total number of files that will be downloaded: ${e.length}`);this.statusReporter.setTotalNumberOfFilesToProcess(e.length);this.statusReporter.start();yield Promise.all(r.map((t=>s(this,void 0,void 0,(function*(){while(a{throw new Error(`Unable to download the artifact: ${e}`)})).finally((()=>{this.statusReporter.stop();this.downloadHttpManager.disposeAndReplaceAllClients()}))}))}downloadIndividualFile(e,t,r){return s(this,void 0,void 0,(function*(){let a=0;const n=g.getRetryLimit();let i=o.createWriteStream(r);const c=l.getDownloadHeaders("application/json",true,true);const makeDownloadRequest=()=>s(this,void 0,void 0,(function*(){const r=this.downloadHttpManager.getClient(e);return yield r.get(t,c)}));const isGzip=e=>"content-encoding"in e&&e["content-encoding"]==="gzip";const backOff=r=>s(this,void 0,void 0,(function*(){a++;if(a>n){return Promise.reject(new Error(`Retry limit has been reached. Unable to download ${t}`))}else{this.downloadHttpManager.disposeAndReplaceClient(e);if(r){p.info(`Backoff due to too many requests, retry #${a}. Waiting for ${r} milliseconds before continuing the download`);yield l.sleep(r)}else{const e=l.getExponentialRetryTimeInMilliseconds(a);p.info(`Exponential backoff for retry #${a}. Waiting for ${e} milliseconds before continuing the download`);yield l.sleep(e)}p.info(`Finished backoff for retry #${a}, continuing with download`)}}));const isAllBytesReceived=(e,t)=>{if(!e||!t||process.env["ACTIONS_ARTIFACT_SKIP_DOWNLOAD_VALIDATION"]){p.info("Skipping download validation.");return true}return parseInt(e)===t};const resetDestinationStream=e=>s(this,void 0,void 0,(function*(){i.close();yield l.rmFile(e);i=o.createWriteStream(e)}));while(a<=n){let e;try{e=yield makeDownloadRequest()}catch(e){p.info("An error occurred while attempting to download a file");console.log(e);yield backOff();continue}let a=false;if(l.isSuccessStatusCode(e.message.statusCode)){try{const t=isGzip(e.message.headers);yield this.pipeResponseToFile(e,i,t);if(t||isAllBytesReceived(e.message.headers["content-length"],yield l.getFileSize(r))){return}else{a=true}}catch(e){a=true}}if(a||l.isRetryableStatusCode(e.message.statusCode)){p.info(`A ${e.message.statusCode} response code has been received while attempting to download an artifact`);resetDestinationStream(r);l.isThrottledStatusCode(e.message.statusCode)?yield backOff(l.tryGetRetryAfterValueTimeInMilliseconds(e.message.headers)):yield backOff()}else{l.displayHttpDiagnostics(e);return Promise.reject(new Error(`Unexpected http ${e.message.statusCode} during download for ${t}`))}}}))}pipeResponseToFile(e,t,r){return s(this,void 0,void 0,(function*(){yield new Promise(((a,n)=>{if(r){const r=c.createGunzip();e.message.on("error",(e=>{p.error(`An error occurred while attempting to read the response stream`);r.close();t.close();n(e)})).pipe(r).on("error",(e=>{p.error(`An error occurred while attempting to decompress the response stream`);t.close();n(e)})).pipe(t).on("close",(()=>{a()})).on("error",(e=>{p.error(`An error occurred while writing a downloaded file to ${t.path}`);n(e)}))}else{e.message.on("error",(e=>{p.error(`An error occurred while attempting to read the response stream`);t.close();n(e)})).pipe(t).on("close",(()=>{a()})).on("error",(e=>{p.error(`An error occurred while writing a downloaded file to ${t.path}`);n(e)}))}}));return}))}}t.DownloadHttpClient=DownloadHttpClient},5686:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);n(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.getDownloadSpecification=void 0;const s=i(r(1017));function getDownloadSpecification(e,t,r,a){const n=new Set;const i={rootDownloadLocation:a?s.join(r,e):r,directoryStructure:[],emptyFilesToCreate:[],filesToDownload:[]};for(const o of t){if(o.path.startsWith(`${e}/`)||o.path.startsWith(`${e}\\`)){const t=s.normalize(o.path);const p=s.join(r,a?t:t.replace(e,""));if(o.itemType==="file"){n.add(s.dirname(p));if(o.fileLength===0){i.emptyFilesToCreate.push(p)}else{i.filesToDownload.push({sourceLocation:o.contentLocation,targetPath:p})}}}}i.directoryStructure=Array.from(n);return i}t.getDownloadSpecification=getDownloadSpecification},6527:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.HttpManager=void 0;const a=r(6327);class HttpManager{constructor(e,t){if(e<1){throw new Error("There must be at least one client")}this.userAgent=t;this.clients=new Array(e).fill(a.createHttpClient(t))}getClient(e){return this.clients[e]}disposeAndReplaceClient(e){this.clients[e].dispose();this.clients[e]=a.createHttpClient(this.userAgent)}disposeAndReplaceAllClients(){for(const[e]of this.clients.entries()){this.disposeAndReplaceClient(e)}}}t.HttpManager=HttpManager},7398:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.checkArtifactFilePath=t.checkArtifactName=void 0;const a=r(2186);const n=new Map([['"',' Double quote "'],[":"," Colon :"],["<"," Less than <"],[">"," Greater than >"],["|"," Vertical bar |"],["*"," Asterisk *"],["?"," Question mark ?"],["\r"," Carriage return \\r"],["\n"," Line feed \\n"]]);const i=new Map([...n,["\\"," Backslash \\"],["/"," Forward slash /"]]);function checkArtifactName(e){if(!e){throw new Error(`Artifact name: ${e}, is incorrectly provided`)}for(const[t,r]of i){if(e.includes(t)){throw new Error(`Artifact name is not valid: ${e}. Contains the following character: ${r}\n \nInvalid characters include: ${Array.from(i.values()).toString()}\n \nThese characters are not allowed in the artifact name due to limitations with certain file systems such as NTFS. To maintain file system agnostic behavior, these characters are intentionally not allowed to prevent potential problems with downloads on different file systems.`)}}a.info(`Artifact name is valid!`)}t.checkArtifactName=checkArtifactName;function checkArtifactFilePath(e){if(!e){throw new Error(`Artifact path: ${e}, is incorrectly provided`)}for(const[t,r]of n){if(e.includes(t)){throw new Error(`Artifact path is not valid: ${e}. Contains the following character: ${r}\n \nInvalid characters include: ${Array.from(n.values()).toString()}\n \nThe following characters are not allowed in files that are uploaded due to limitations with certain file systems such as NTFS. To maintain file system agnostic behavior, these characters are intentionally not allowed to prevent potential problems with downloads on different file systems.\n `)}}}t.checkArtifactFilePath=checkArtifactFilePath},755:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);n(t,e);return t};var s=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,n){function fulfilled(e){try{step(a.next(e))}catch(e){n(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){n(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.retryHttpClientRequest=t.retry=void 0;const o=r(6327);const p=i(r(2186));const c=r(2222);function retry(e,t,r,a){return s(this,void 0,void 0,(function*(){let n=undefined;let i=undefined;let s=false;let c="";let l=undefined;let d=1;while(d<=a){try{n=yield t();i=n.message.statusCode;if(o.isSuccessStatusCode(i)){return n}if(i){l=r.get(i)}s=o.isRetryableStatusCode(i);c=`Artifact service responded with ${i}`}catch(e){s=true;c=e.message}if(!s){p.info(`${e} - Error is not retryable`);if(n){o.displayHttpDiagnostics(n)}break}p.info(`${e} - Attempt ${d} of ${a} failed with error: ${c}`);yield o.sleep(o.getExponentialRetryTimeInMilliseconds(d));d++}if(n){o.displayHttpDiagnostics(n)}if(l){throw Error(`${e} failed: ${l}`)}throw Error(`${e} failed: ${c}`)}))}t.retry=retry;function retryHttpClientRequest(e,t,r=new Map,a=c.getRetryLimit()){return s(this,void 0,void 0,(function*(){return yield retry(e,t,r,a)}))}t.retryHttpClientRequest=retryHttpClientRequest},9081:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.StatusReporter=void 0;const a=r(2186);class StatusReporter{constructor(e){this.totalNumberOfFilesToProcess=0;this.processedCount=0;this.largeFiles=new Map;this.totalFileStatus=undefined;this.displayFrequencyInMilliseconds=e}setTotalNumberOfFilesToProcess(e){this.totalNumberOfFilesToProcess=e;this.processedCount=0}start(){this.totalFileStatus=setInterval((()=>{const e=this.formatPercentage(this.processedCount,this.totalNumberOfFilesToProcess);a.info(`Total file count: ${this.totalNumberOfFilesToProcess} ---- Processed file #${this.processedCount} (${e.slice(0,e.indexOf(".")+2)}%)`)}),this.displayFrequencyInMilliseconds)}updateLargeFileStatus(e,t,r,n){const i=this.formatPercentage(r,n);a.info(`Uploaded ${e} (${i.slice(0,i.indexOf(".")+2)}%) bytes ${t}:${r}`)}stop(){if(this.totalFileStatus){clearInterval(this.totalFileStatus)}}incrementProcessedCount(){this.processedCount++}formatPercentage(e,t){return(e/t*100).toFixed(4).toString()}}t.StatusReporter=StatusReporter},4804:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);n(t,e);return t};var s=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,n){function fulfilled(e){try{step(a.next(e))}catch(e){n(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){n(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};var o=this&&this.__asyncValues||function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],r;return t?t.call(e):(e=typeof __values==="function"?__values(e):e[Symbol.iterator](),r={},verb("next"),verb("throw"),verb("return"),r[Symbol.asyncIterator]=function(){return this},r);function verb(t){r[t]=e[t]&&function(r){return new Promise((function(a,n){r=e[t](r),settle(a,n,r.done,r.value)}))}}function settle(e,t,r,a){Promise.resolve(a).then((function(t){e({value:t,done:r})}),t)}};Object.defineProperty(t,"__esModule",{value:true});t.createGZipFileInBuffer=t.createGZipFileOnDisk=void 0;const p=i(r(7147));const c=i(r(9796));const l=r(3837);const d=l.promisify(p.stat);const u=[".gzip",".zip",".tar.lz",".tar.gz",".tar.bz2",".7z"];function createGZipFileOnDisk(e,t){return s(this,void 0,void 0,(function*(){for(const t of u){if(e.endsWith(t)){return Number.MAX_SAFE_INTEGER}}return new Promise(((r,a)=>{const n=p.createReadStream(e);const i=c.createGzip();const o=p.createWriteStream(t);n.pipe(i).pipe(o);o.on("finish",(()=>s(this,void 0,void 0,(function*(){const e=(yield d(t)).size;r(e)}))));o.on("error",(e=>{console.log(e);a}))}))}))}t.createGZipFileOnDisk=createGZipFileOnDisk;function createGZipFileInBuffer(e){return s(this,void 0,void 0,(function*(){return new Promise((t=>s(this,void 0,void 0,(function*(){var r,a;const n=p.createReadStream(e);const i=c.createGzip();n.pipe(i);const s=[];try{for(var l=o(i),d;d=yield l.next(),!d.done;){const e=d.value;s.push(e)}}catch(e){r={error:e}}finally{try{if(d&&!d.done&&(a=l.return))yield a.call(l)}finally{if(r)throw r.error}}t(Buffer.concat(s))}))))}))}t.createGZipFileInBuffer=createGZipFileInBuffer},4354:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);n(t,e);return t};var s=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,n){function fulfilled(e){try{step(a.next(e))}catch(e){n(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){n(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.UploadHttpClient=void 0;const o=i(r(7147));const p=i(r(2186));const c=i(r(8065));const l=i(r(2781));const d=r(6327);const u=r(2222);const m=r(3837);const h=r(7310);const g=r(4074);const v=r(9081);const y=r(6255);const b=r(6527);const w=r(4804);const x=r(755);const E=m.promisify(o.stat);class UploadHttpClient{constructor(){this.uploadHttpManager=new b.HttpManager(u.getUploadFileConcurrency(),"@actions/artifact-upload");this.statusReporter=new v.StatusReporter(1e4)}createArtifactInFileContainer(e,t){return s(this,void 0,void 0,(function*(){const r={Type:"actions_storage",Name:e};if(t&&t.retentionDays){const e=u.getRetentionDays();r.RetentionDays=d.getProperRetention(t.retentionDays,e)}const a=JSON.stringify(r,null,2);const n=d.getArtifactUrl();const i=this.uploadHttpManager.getClient(0);const o=d.getUploadHeaders("application/json",false);const p=new Map([[y.HttpCodes.Forbidden,"Artifact storage quota has been hit. Unable to upload any new artifacts"],[y.HttpCodes.BadRequest,`The artifact name ${e} is not valid. Request URL ${n}`]]);const c=yield x.retryHttpClientRequest("Create Artifact Container",(()=>s(this,void 0,void 0,(function*(){return i.post(n,a,o)}))),p);const l=yield c.readBody();return JSON.parse(l)}))}uploadArtifactToFileContainer(e,t,r){return s(this,void 0,void 0,(function*(){const a=u.getUploadFileConcurrency();const n=u.getUploadChunkSize();p.debug(`File Concurrency: ${a}, and Chunk Size: ${n}`);const i=[];let o=true;if(r){if(r.continueOnError===false){o=false}}for(const r of t){const t=new h.URL(e);t.searchParams.append("itemPath",r.uploadFilePath);i.push({file:r.absoluteFilePath,resourceUrl:t.toString(),maxChunkSize:n,continueOnError:o})}const c=[...new Array(a).keys()];const l=[];let d=0;let m=0;let v=0;let y=0;let b=false;this.statusReporter.setTotalNumberOfFilesToProcess(t.length);this.statusReporter.start();yield Promise.all(c.map((e=>s(this,void 0,void 0,(function*(){while(do.createReadStream(t.file);m=false;u=a}else{p.debug(`A gzip file created for ${t.file} helped with reducing the size of the original file. The file will be uploaded using gzip.`);n=()=>{const e=new l.PassThrough;e.end(r);return e};u=r.byteLength}const i=yield this.uploadChunk(e,t.resourceUrl,n,0,u-1,u,m,a);if(!i){s=false;d+=u;p.warning(`Aborting upload for ${t.file} due to failure`)}return{isSuccess:s,successfulUploadSize:u-d,totalSize:a}}else{const r=yield c.file();p.debug(`${t.file} is greater than 64k in size. Creating a gzip file on-disk ${r.path} to potentially reduce the upload size`);u=yield w.createGZipFileOnDisk(t.file,r.path);let l=r.path;if(!n&&ao.createReadStream(l,{start:n,end:c,autoClose:false})),n,c,u,m,a);if(!g){s=false;d+=r;p.warning(`Aborting upload for ${t.file} due to failure`);h=true}else{if(u>8388608){this.statusReporter.updateLargeFileStatus(t.file,n,c,u)}}}p.debug(`deleting temporary gzip file ${r.path}`);yield r.cleanup();return{isSuccess:s,successfulUploadSize:u-d,totalSize:a}}}))}uploadChunk(e,t,r,a,n,i,o,c){return s(this,void 0,void 0,(function*(){const l=yield d.digestForStream(r());const m=d.getUploadHeaders("application/octet-stream",true,o,c,n-a+1,d.getContentRange(a,n,i),l);const uploadChunkRequest=()=>s(this,void 0,void 0,(function*(){const a=this.uploadHttpManager.getClient(e);return yield a.sendStream("PUT",t,r(),m)}));let h=0;const g=u.getRetryLimit();const incrementAndCheckRetryLimit=e=>{h++;if(h>g){if(e){d.displayHttpDiagnostics(e)}p.info(`Retry limit has been reached for chunk at offset ${a} to ${t}`);return true}return false};const backOff=t=>s(this,void 0,void 0,(function*(){this.uploadHttpManager.disposeAndReplaceClient(e);if(t){p.info(`Backoff due to too many requests, retry #${h}. Waiting for ${t} milliseconds before continuing the upload`);yield d.sleep(t)}else{const e=d.getExponentialRetryTimeInMilliseconds(h);p.info(`Exponential backoff for retry #${h}. Waiting for ${e} milliseconds before continuing the upload at offset ${a}`);yield d.sleep(e)}p.info(`Finished backoff for retry #${h}, continuing with upload`);return}));while(h<=g){let r;try{r=yield uploadChunkRequest()}catch(t){p.info(`An error has been caught http-client index ${e}, retrying the upload`);console.log(t);if(incrementAndCheckRetryLimit()){return false}yield backOff();continue}yield r.readBody();if(d.isSuccessStatusCode(r.message.statusCode)){return true}else if(d.isRetryableStatusCode(r.message.statusCode)){p.info(`A ${r.message.statusCode} status code has been received, will attempt to retry the upload`);if(incrementAndCheckRetryLimit(r)){return false}d.isThrottledStatusCode(r.message.statusCode)?yield backOff(d.tryGetRetryAfterValueTimeInMilliseconds(r.message.headers)):yield backOff()}else{p.error(`Unexpected response. Unable to upload chunk to ${t}`);d.displayHttpDiagnostics(r);return false}}return false}))}patchArtifactSize(e,t){return s(this,void 0,void 0,(function*(){const r=new h.URL(d.getArtifactUrl());r.searchParams.append("artifactName",t);const a={Size:e};const n=JSON.stringify(a,null,2);p.debug(`URL is ${r.toString()}`);const i=this.uploadHttpManager.getClient(0);const o=d.getUploadHeaders("application/json",false);const c=new Map([[y.HttpCodes.NotFound,`An Artifact with the name ${t} was not found`]]);const l=yield x.retryHttpClientRequest("Finalize artifact upload",(()=>s(this,void 0,void 0,(function*(){return i.patch(r.toString(),n,o)}))),c);yield l.readBody();p.debug(`Artifact ${t} has been successfully uploaded, total size in bytes: ${e}`)}))}}t.UploadHttpClient=UploadHttpClient},183:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);n(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.getUploadSpecification=void 0;const s=i(r(7147));const o=r(2186);const p=r(1017);const c=r(7398);function getUploadSpecification(e,t,r){const a=[];if(!s.existsSync(t)){throw new Error(`Provided rootDirectory ${t} does not exist`)}if(!s.lstatSync(t).isDirectory()){throw new Error(`Provided rootDirectory ${t} is not a valid directory`)}t=p.normalize(t);t=p.resolve(t);for(let n of r){if(!s.existsSync(n)){throw new Error(`File ${n} does not exist`)}if(!s.lstatSync(n).isDirectory()){n=p.normalize(n);n=p.resolve(n);if(!n.startsWith(t)){throw new Error(`The rootDirectory: ${t} is not a parent directory of the file: ${n}`)}const r=n.replace(t,"");c.checkArtifactFilePath(r);a.push({absoluteFilePath:n,uploadFilePath:p.join(e,r)})}else{o.debug(`Removing ${n} from rawSearchResults because it is a directory`)}}return a}t.getUploadSpecification=getUploadSpecification},6327:function(e,t,r){"use strict";var a=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,n){function fulfilled(e){try{step(a.next(e))}catch(e){n(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){n(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.digestForStream=t.sleep=t.getProperRetention=t.rmFile=t.getFileSize=t.createEmptyFilesForArtifact=t.createDirectoriesForArtifact=t.displayHttpDiagnostics=t.getArtifactUrl=t.createHttpClient=t.getUploadHeaders=t.getDownloadHeaders=t.getContentRange=t.tryGetRetryAfterValueTimeInMilliseconds=t.isThrottledStatusCode=t.isRetryableStatusCode=t.isForbiddenStatusCode=t.isSuccessStatusCode=t.getApiVersion=t.parseEnvNumber=t.getExponentialRetryTimeInMilliseconds=void 0;const i=n(r(6113));const s=r(7147);const o=r(2186);const p=r(6255);const c=r(5526);const l=r(2222);const d=n(r(3549));function getExponentialRetryTimeInMilliseconds(e){if(e<0){throw new Error("RetryCount should not be negative")}else if(e===0){return l.getInitialRetryIntervalInMilliseconds()}const t=l.getInitialRetryIntervalInMilliseconds()*l.getRetryMultiplier()*e;const r=t*l.getRetryMultiplier();return Math.trunc(Math.random()*(r-t)+t)}t.getExponentialRetryTimeInMilliseconds=getExponentialRetryTimeInMilliseconds;function parseEnvNumber(e){const t=Number(process.env[e]);if(Number.isNaN(t)||t<0){return undefined}return t}t.parseEnvNumber=parseEnvNumber;function getApiVersion(){return"6.0-preview"}t.getApiVersion=getApiVersion;function isSuccessStatusCode(e){if(!e){return false}return e>=200&&e<300}t.isSuccessStatusCode=isSuccessStatusCode;function isForbiddenStatusCode(e){if(!e){return false}return e===p.HttpCodes.Forbidden}t.isForbiddenStatusCode=isForbiddenStatusCode;function isRetryableStatusCode(e){if(!e){return false}const t=[p.HttpCodes.BadGateway,p.HttpCodes.GatewayTimeout,p.HttpCodes.InternalServerError,p.HttpCodes.ServiceUnavailable,p.HttpCodes.TooManyRequests,413];return t.includes(e)}t.isRetryableStatusCode=isRetryableStatusCode;function isThrottledStatusCode(e){if(!e){return false}return e===p.HttpCodes.TooManyRequests}t.isThrottledStatusCode=isThrottledStatusCode;function tryGetRetryAfterValueTimeInMilliseconds(e){if(e["retry-after"]){const t=Number(e["retry-after"]);if(!isNaN(t)){o.info(`Retry-After header is present with a value of ${t}`);return t*1e3}o.info(`Returned retry-after header value: ${t} is non-numeric and cannot be used`);return undefined}o.info(`No retry-after header was found. Dumping all headers for diagnostic purposes`);console.log(e);return undefined}t.tryGetRetryAfterValueTimeInMilliseconds=tryGetRetryAfterValueTimeInMilliseconds;function getContentRange(e,t,r){return`bytes ${e}-${t}/${r}`}t.getContentRange=getContentRange;function getDownloadHeaders(e,t,r){const a={};if(e){a["Content-Type"]=e}if(t){a["Connection"]="Keep-Alive";a["Keep-Alive"]="10"}if(r){a["Accept-Encoding"]="gzip";a["Accept"]=`application/octet-stream;api-version=${getApiVersion()}`}else{a["Accept"]=`application/json;api-version=${getApiVersion()}`}return a}t.getDownloadHeaders=getDownloadHeaders;function getUploadHeaders(e,t,r,a,n,i,s){const o={};o["Accept"]=`application/json;api-version=${getApiVersion()}`;if(e){o["Content-Type"]=e}if(t){o["Connection"]="Keep-Alive";o["Keep-Alive"]="10"}if(r){o["Content-Encoding"]="gzip";o["x-tfs-filelength"]=a}if(n){o["Content-Length"]=n}if(i){o["Content-Range"]=i}if(s){o["x-actions-results-crc64"]=s.crc64;o["x-actions-results-md5"]=s.md5}return o}t.getUploadHeaders=getUploadHeaders;function createHttpClient(e){return new p.HttpClient(e,[new c.BearerCredentialHandler(l.getRuntimeToken())])}t.createHttpClient=createHttpClient;function getArtifactUrl(){const e=`${l.getRuntimeUrl()}_apis/pipelines/workflows/${l.getWorkFlowRunId()}/artifacts?api-version=${getApiVersion()}`;o.debug(`Artifact Url: ${e}`);return e}t.getArtifactUrl=getArtifactUrl;function displayHttpDiagnostics(e){o.info(`##### Begin Diagnostic HTTP information #####\nStatus Code: ${e.message.statusCode}\nStatus Message: ${e.message.statusMessage}\nHeader Information: ${JSON.stringify(e.message.headers,undefined,2)}\n###### End Diagnostic HTTP information ######`)}t.displayHttpDiagnostics=displayHttpDiagnostics;function createDirectoriesForArtifact(e){return a(this,void 0,void 0,(function*(){for(const t of e){yield s.promises.mkdir(t,{recursive:true})}}))}t.createDirectoriesForArtifact=createDirectoriesForArtifact;function createEmptyFilesForArtifact(e){return a(this,void 0,void 0,(function*(){for(const t of e){yield(yield s.promises.open(t,"w")).close()}}))}t.createEmptyFilesForArtifact=createEmptyFilesForArtifact;function getFileSize(e){return a(this,void 0,void 0,(function*(){const t=yield s.promises.stat(e);o.debug(`${e} size:(${t.size}) blksize:(${t.blksize}) blocks:(${t.blocks})`);return t.size}))}t.getFileSize=getFileSize;function rmFile(e){return a(this,void 0,void 0,(function*(){yield s.promises.unlink(e)}))}t.rmFile=rmFile;function getProperRetention(e,t){if(e<0){throw new Error("Invalid retention, minimum value is 1.")}let r=e;if(t){const e=parseInt(t);if(!isNaN(e)&&esetTimeout(t,e)))}))}t.sleep=sleep;function digestForStream(e){return a(this,void 0,void 0,(function*(){return new Promise(((t,r)=>{const a=new d.default;const n=i.default.createHash("md5");e.on("data",(e=>{a.update(e);n.update(e)})).on("end",(()=>t({crc64:a.digest("base64"),md5:n.digest("base64")}))).on("error",r)}))}))}t.digestForStream=digestForStream},7351:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);n(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.issue=t.issueCommand=void 0;const s=i(r(2037));const o=r(5278);function issueCommand(e,t,r){const a=new Command(e,t,r);process.stdout.write(a.toString()+s.EOL)}t.issueCommand=issueCommand;function issue(e,t=""){issueCommand(e,{},t)}t.issue=issue;const p="::";class Command{constructor(e,t,r){if(!e){e="missing.command"}this.command=e;this.properties=t;this.message=r}toString(){let e=p+this.command;if(this.properties&&Object.keys(this.properties).length>0){e+=" ";let t=true;for(const r in this.properties){if(this.properties.hasOwnProperty(r)){const a=this.properties[r];if(a){if(t){t=false}else{e+=","}e+=`${r}=${escapeProperty(a)}`}}}}e+=`${p}${escapeData(this.message)}`;return e}}function escapeData(e){return o.toCommandValue(e).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A")}function escapeProperty(e){return o.toCommandValue(e).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A").replace(/:/g,"%3A").replace(/,/g,"%2C")}},2186:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);n(t,e);return t};var s=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,n){function fulfilled(e){try{step(a.next(e))}catch(e){n(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){n(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.getIDToken=t.getState=t.saveState=t.group=t.endGroup=t.startGroup=t.info=t.notice=t.warning=t.error=t.debug=t.isDebug=t.setFailed=t.setCommandEcho=t.setOutput=t.getBooleanInput=t.getMultilineInput=t.getInput=t.addPath=t.setSecret=t.exportVariable=t.ExitCode=void 0;const o=r(7351);const p=r(717);const c=r(5278);const l=i(r(2037));const d=i(r(1017));const u=r(5840);const m=r(8041);var h;(function(e){e[e["Success"]=0]="Success";e[e["Failure"]=1]="Failure"})(h=t.ExitCode||(t.ExitCode={}));function exportVariable(e,t){const r=c.toCommandValue(t);process.env[e]=r;const a=process.env["GITHUB_ENV"]||"";if(a){const t=`ghadelimiter_${u.v4()}`;if(e.includes(t)){throw new Error(`Unexpected input: name should not contain the delimiter "${t}"`)}if(r.includes(t)){throw new Error(`Unexpected input: value should not contain the delimiter "${t}"`)}const a=`${e}<<${t}${l.EOL}${r}${l.EOL}${t}`;p.issueCommand("ENV",a)}else{o.issueCommand("set-env",{name:e},r)}}t.exportVariable=exportVariable;function setSecret(e){o.issueCommand("add-mask",{},e)}t.setSecret=setSecret;function addPath(e){const t=process.env["GITHUB_PATH"]||"";if(t){p.issueCommand("PATH",e)}else{o.issueCommand("add-path",{},e)}process.env["PATH"]=`${e}${d.delimiter}${process.env["PATH"]}`}t.addPath=addPath;function getInput(e,t){const r=process.env[`INPUT_${e.replace(/ /g,"_").toUpperCase()}`]||"";if(t&&t.required&&!r){throw new Error(`Input required and not supplied: ${e}`)}if(t&&t.trimWhitespace===false){return r}return r.trim()}t.getInput=getInput;function getMultilineInput(e,t){const r=getInput(e,t).split("\n").filter((e=>e!==""));return r}t.getMultilineInput=getMultilineInput;function getBooleanInput(e,t){const r=["true","True","TRUE"];const a=["false","False","FALSE"];const n=getInput(e,t);if(r.includes(n))return true;if(a.includes(n))return false;throw new TypeError(`Input does not meet YAML 1.2 "Core Schema" specification: ${e}\n`+`Support boolean input list: \`true | True | TRUE | false | False | FALSE\``)}t.getBooleanInput=getBooleanInput;function setOutput(e,t){process.stdout.write(l.EOL);o.issueCommand("set-output",{name:e},t)}t.setOutput=setOutput;function setCommandEcho(e){o.issue("echo",e?"on":"off")}t.setCommandEcho=setCommandEcho;function setFailed(e){process.exitCode=h.Failure;error(e)}t.setFailed=setFailed;function isDebug(){return process.env["RUNNER_DEBUG"]==="1"}t.isDebug=isDebug;function debug(e){o.issueCommand("debug",{},e)}t.debug=debug;function error(e,t={}){o.issueCommand("error",c.toCommandProperties(t),e instanceof Error?e.toString():e)}t.error=error;function warning(e,t={}){o.issueCommand("warning",c.toCommandProperties(t),e instanceof Error?e.toString():e)}t.warning=warning;function notice(e,t={}){o.issueCommand("notice",c.toCommandProperties(t),e instanceof Error?e.toString():e)}t.notice=notice;function info(e){process.stdout.write(e+l.EOL)}t.info=info;function startGroup(e){o.issue("group",e)}t.startGroup=startGroup;function endGroup(){o.issue("endgroup")}t.endGroup=endGroup;function group(e,t){return s(this,void 0,void 0,(function*(){startGroup(e);let r;try{r=yield t()}finally{endGroup()}return r}))}t.group=group;function saveState(e,t){o.issueCommand("save-state",{name:e},t)}t.saveState=saveState;function getState(e){return process.env[`STATE_${e}`]||""}t.getState=getState;function getIDToken(e){return s(this,void 0,void 0,(function*(){return yield m.OidcClient.getIDToken(e)}))}t.getIDToken=getIDToken;var g=r(1327);Object.defineProperty(t,"summary",{enumerable:true,get:function(){return g.summary}});var v=r(1327);Object.defineProperty(t,"markdownSummary",{enumerable:true,get:function(){return v.markdownSummary}});var y=r(2981);Object.defineProperty(t,"toPosixPath",{enumerable:true,get:function(){return y.toPosixPath}});Object.defineProperty(t,"toWin32Path",{enumerable:true,get:function(){return y.toWin32Path}});Object.defineProperty(t,"toPlatformPath",{enumerable:true,get:function(){return y.toPlatformPath}})},717:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);n(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.issueCommand=void 0;const s=i(r(7147));const o=i(r(2037));const p=r(5278);function issueCommand(e,t){const r=process.env[`GITHUB_${e}`];if(!r){throw new Error(`Unable to find environment variable for file command ${e}`)}if(!s.existsSync(r)){throw new Error(`Missing file at path: ${r}`)}s.appendFileSync(r,`${p.toCommandValue(t)}${o.EOL}`,{encoding:"utf8"})}t.issueCommand=issueCommand},8041:function(e,t,r){"use strict";var a=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,n){function fulfilled(e){try{step(a.next(e))}catch(e){n(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){n(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.OidcClient=void 0;const n=r(6255);const i=r(5526);const s=r(2186);class OidcClient{static createHttpClient(e=true,t=10){const r={allowRetries:e,maxRetries:t};return new n.HttpClient("actions/oidc-client",[new i.BearerCredentialHandler(OidcClient.getRequestToken())],r)}static getRequestToken(){const e=process.env["ACTIONS_ID_TOKEN_REQUEST_TOKEN"];if(!e){throw new Error("Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable")}return e}static getIDTokenUrl(){const e=process.env["ACTIONS_ID_TOKEN_REQUEST_URL"];if(!e){throw new Error("Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable")}return e}static getCall(e){var t;return a(this,void 0,void 0,(function*(){const r=OidcClient.createHttpClient();const a=yield r.getJson(e).catch((e=>{throw new Error(`Failed to get ID Token. \n \n Error Code : ${e.statusCode}\n \n Error Message: ${e.result.message}`)}));const n=(t=a.result)===null||t===void 0?void 0:t.value;if(!n){throw new Error("Response json body do not have ID Token field")}return n}))}static getIDToken(e){return a(this,void 0,void 0,(function*(){try{let t=OidcClient.getIDTokenUrl();if(e){const r=encodeURIComponent(e);t=`${t}&audience=${r}`}s.debug(`ID token url is ${t}`);const r=yield OidcClient.getCall(t);s.setSecret(r);return r}catch(e){throw new Error(`Error message: ${e.message}`)}}))}}t.OidcClient=OidcClient},2981:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);n(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.toPlatformPath=t.toWin32Path=t.toPosixPath=void 0;const s=i(r(1017));function toPosixPath(e){return e.replace(/[\\]/g,"/")}t.toPosixPath=toPosixPath;function toWin32Path(e){return e.replace(/[/]/g,"\\")}t.toWin32Path=toWin32Path;function toPlatformPath(e){return e.replace(/[/\\]/g,s.sep)}t.toPlatformPath=toPlatformPath},1327:function(e,t,r){"use strict";var a=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,n){function fulfilled(e){try{step(a.next(e))}catch(e){n(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){n(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.summary=t.markdownSummary=t.SUMMARY_DOCS_URL=t.SUMMARY_ENV_VAR=void 0;const n=r(2037);const i=r(7147);const{access:s,appendFile:o,writeFile:p}=i.promises;t.SUMMARY_ENV_VAR="GITHUB_STEP_SUMMARY";t.SUMMARY_DOCS_URL="https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary";class Summary{constructor(){this._buffer=""}filePath(){return a(this,void 0,void 0,(function*(){if(this._filePath){return this._filePath}const e=process.env[t.SUMMARY_ENV_VAR];if(!e){throw new Error(`Unable to find environment variable for $${t.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`)}try{yield s(e,i.constants.R_OK|i.constants.W_OK)}catch(t){throw new Error(`Unable to access summary file: '${e}'. Check if the file has correct read/write permissions.`)}this._filePath=e;return this._filePath}))}wrap(e,t,r={}){const a=Object.entries(r).map((([e,t])=>` ${e}="${t}"`)).join("");if(!t){return`<${e}${a}>`}return`<${e}${a}>${t}`}write(e){return a(this,void 0,void 0,(function*(){const t=!!(e===null||e===void 0?void 0:e.overwrite);const r=yield this.filePath();const a=t?p:o;yield a(r,this._buffer,{encoding:"utf8"});return this.emptyBuffer()}))}clear(){return a(this,void 0,void 0,(function*(){return this.emptyBuffer().write({overwrite:true})}))}stringify(){return this._buffer}isEmptyBuffer(){return this._buffer.length===0}emptyBuffer(){this._buffer="";return this}addRaw(e,t=false){this._buffer+=e;return t?this.addEOL():this}addEOL(){return this.addRaw(n.EOL)}addCodeBlock(e,t){const r=Object.assign({},t&&{lang:t});const a=this.wrap("pre",this.wrap("code",e),r);return this.addRaw(a).addEOL()}addList(e,t=false){const r=t?"ol":"ul";const a=e.map((e=>this.wrap("li",e))).join("");const n=this.wrap(r,a);return this.addRaw(n).addEOL()}addTable(e){const t=e.map((e=>{const t=e.map((e=>{if(typeof e==="string"){return this.wrap("td",e)}const{header:t,data:r,colspan:a,rowspan:n}=e;const i=t?"th":"td";const s=Object.assign(Object.assign({},a&&{colspan:a}),n&&{rowspan:n});return this.wrap(i,r,s)})).join("");return this.wrap("tr",t)})).join("");const r=this.wrap("table",t);return this.addRaw(r).addEOL()}addDetails(e,t){const r=this.wrap("details",this.wrap("summary",e)+t);return this.addRaw(r).addEOL()}addImage(e,t,r){const{width:a,height:n}=r||{};const i=Object.assign(Object.assign({},a&&{width:a}),n&&{height:n});const s=this.wrap("img",null,Object.assign({src:e,alt:t},i));return this.addRaw(s).addEOL()}addHeading(e,t){const r=`h${t}`;const a=["h1","h2","h3","h4","h5","h6"].includes(r)?r:"h1";const n=this.wrap(a,e);return this.addRaw(n).addEOL()}addSeparator(){const e=this.wrap("hr",null);return this.addRaw(e).addEOL()}addBreak(){const e=this.wrap("br",null);return this.addRaw(e).addEOL()}addQuote(e,t){const r=Object.assign({},t&&{cite:t});const a=this.wrap("blockquote",e,r);return this.addRaw(a).addEOL()}addLink(e,t){const r=this.wrap("a",e,{href:t});return this.addRaw(r).addEOL()}}const c=new Summary;t.markdownSummary=c;t.summary=c},5278:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.toCommandProperties=t.toCommandValue=void 0;function toCommandValue(e){if(e===null||e===undefined){return""}else if(typeof e==="string"||e instanceof String){return e}return JSON.stringify(e)}t.toCommandValue=toCommandValue;function toCommandProperties(e){if(!Object.keys(e).length){return{}}return{title:e.title,file:e.file,line:e.startLine,endLine:e.endLine,col:e.startColumn,endColumn:e.endColumn}}t.toCommandProperties=toCommandProperties},1514:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);n(t,e);return t};var s=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,n){function fulfilled(e){try{step(a.next(e))}catch(e){n(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){n(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.getExecOutput=t.exec=void 0;const o=r(1576);const p=i(r(8159));function exec(e,t,r){return s(this,void 0,void 0,(function*(){const a=p.argStringToArray(e);if(a.length===0){throw new Error(`Parameter 'commandLine' cannot be null or empty.`)}const n=a[0];t=a.slice(1).concat(t||[]);const i=new p.ToolRunner(n,t,r);return i.exec()}))}t.exec=exec;function getExecOutput(e,t,r){var a,n;return s(this,void 0,void 0,(function*(){let i="";let s="";const p=new o.StringDecoder("utf8");const c=new o.StringDecoder("utf8");const l=(a=r===null||r===void 0?void 0:r.listeners)===null||a===void 0?void 0:a.stdout;const d=(n=r===null||r===void 0?void 0:r.listeners)===null||n===void 0?void 0:n.stderr;const stdErrListener=e=>{s+=c.write(e);if(d){d(e)}};const stdOutListener=e=>{i+=p.write(e);if(l){l(e)}};const u=Object.assign(Object.assign({},r===null||r===void 0?void 0:r.listeners),{stdout:stdOutListener,stderr:stdErrListener});const m=yield exec(e,t,Object.assign(Object.assign({},r),{listeners:u}));i+=p.end();s+=c.end();return{exitCode:m,stdout:i,stderr:s}}))}t.getExecOutput=getExecOutput},8159:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);n(t,e);return t};var s=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,n){function fulfilled(e){try{step(a.next(e))}catch(e){n(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){n(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.argStringToArray=t.ToolRunner=void 0;const o=i(r(2037));const p=i(r(2361));const c=i(r(2081));const l=i(r(1017));const d=i(r(7436));const u=i(r(1962));const m=r(9512);const h=process.platform==="win32";class ToolRunner extends p.EventEmitter{constructor(e,t,r){super();if(!e){throw new Error("Parameter 'toolPath' cannot be null or empty.")}this.toolPath=e;this.args=t||[];this.options=r||{}}_debug(e){if(this.options.listeners&&this.options.listeners.debug){this.options.listeners.debug(e)}}_getCommandString(e,t){const r=this._getSpawnFileName();const a=this._getSpawnArgs(e);let n=t?"":"[command]";if(h){if(this._isCmdFile()){n+=r;for(const e of a){n+=` ${e}`}}else if(e.windowsVerbatimArguments){n+=`"${r}"`;for(const e of a){n+=` ${e}`}}else{n+=this._windowsQuoteCmdArg(r);for(const e of a){n+=` ${this._windowsQuoteCmdArg(e)}`}}}else{n+=r;for(const e of a){n+=` ${e}`}}return n}_processLineBuffer(e,t,r){try{let a=t+e.toString();let n=a.indexOf(o.EOL);while(n>-1){const e=a.substring(0,n);r(e);a=a.substring(n+o.EOL.length);n=a.indexOf(o.EOL)}return a}catch(e){this._debug(`error processing line. Failed with error ${e}`);return""}}_getSpawnFileName(){if(h){if(this._isCmdFile()){return process.env["COMSPEC"]||"cmd.exe"}}return this.toolPath}_getSpawnArgs(e){if(h){if(this._isCmdFile()){let t=`/D /S /C "${this._windowsQuoteCmdArg(this.toolPath)}`;for(const r of this.args){t+=" ";t+=e.windowsVerbatimArguments?r:this._windowsQuoteCmdArg(r)}t+='"';return[t]}}return this.args}_endsWith(e,t){return e.endsWith(t)}_isCmdFile(){const e=this.toolPath.toUpperCase();return this._endsWith(e,".CMD")||this._endsWith(e,".BAT")}_windowsQuoteCmdArg(e){if(!this._isCmdFile()){return this._uvQuoteCmdArg(e)}if(!e){return'""'}const t=[" ","\t","&","(",")","[","]","{","}","^","=",";","!","'","+",",","`","~","|","<",">",'"'];let r=false;for(const a of e){if(t.some((e=>e===a))){r=true;break}}if(!r){return e}let a='"';let n=true;for(let t=e.length;t>0;t--){a+=e[t-1];if(n&&e[t-1]==="\\"){a+="\\"}else if(e[t-1]==='"'){n=true;a+='"'}else{n=false}}a+='"';return a.split("").reverse().join("")}_uvQuoteCmdArg(e){if(!e){return'""'}if(!e.includes(" ")&&!e.includes("\t")&&!e.includes('"')){return e}if(!e.includes('"')&&!e.includes("\\")){return`"${e}"`}let t='"';let r=true;for(let a=e.length;a>0;a--){t+=e[a-1];if(r&&e[a-1]==="\\"){t+="\\"}else if(e[a-1]==='"'){r=true;t+="\\"}else{r=false}}t+='"';return t.split("").reverse().join("")}_cloneExecOptions(e){e=e||{};const t={cwd:e.cwd||process.cwd(),env:e.env||process.env,silent:e.silent||false,windowsVerbatimArguments:e.windowsVerbatimArguments||false,failOnStdErr:e.failOnStdErr||false,ignoreReturnCode:e.ignoreReturnCode||false,delay:e.delay||1e4};t.outStream=e.outStream||process.stdout;t.errStream=e.errStream||process.stderr;return t}_getSpawnOptions(e,t){e=e||{};const r={};r.cwd=e.cwd;r.env=e.env;r["windowsVerbatimArguments"]=e.windowsVerbatimArguments||this._isCmdFile();if(e.windowsVerbatimArguments){r.argv0=`"${t}"`}return r}exec(){return s(this,void 0,void 0,(function*(){if(!u.isRooted(this.toolPath)&&(this.toolPath.includes("/")||h&&this.toolPath.includes("\\"))){this.toolPath=l.resolve(process.cwd(),this.options.cwd||process.cwd(),this.toolPath)}this.toolPath=yield d.which(this.toolPath,true);return new Promise(((e,t)=>s(this,void 0,void 0,(function*(){this._debug(`exec tool: ${this.toolPath}`);this._debug("arguments:");for(const e of this.args){this._debug(` ${e}`)}const r=this._cloneExecOptions(this.options);if(!r.silent&&r.outStream){r.outStream.write(this._getCommandString(r)+o.EOL)}const a=new ExecState(r,this.toolPath);a.on("debug",(e=>{this._debug(e)}));if(this.options.cwd&&!(yield u.exists(this.options.cwd))){return t(new Error(`The cwd: ${this.options.cwd} does not exist!`))}const n=this._getSpawnFileName();const i=c.spawn(n,this._getSpawnArgs(r),this._getSpawnOptions(this.options,n));let s="";if(i.stdout){i.stdout.on("data",(e=>{if(this.options.listeners&&this.options.listeners.stdout){this.options.listeners.stdout(e)}if(!r.silent&&r.outStream){r.outStream.write(e)}s=this._processLineBuffer(e,s,(e=>{if(this.options.listeners&&this.options.listeners.stdline){this.options.listeners.stdline(e)}}))}))}let p="";if(i.stderr){i.stderr.on("data",(e=>{a.processStderr=true;if(this.options.listeners&&this.options.listeners.stderr){this.options.listeners.stderr(e)}if(!r.silent&&r.errStream&&r.outStream){const t=r.failOnStdErr?r.errStream:r.outStream;t.write(e)}p=this._processLineBuffer(e,p,(e=>{if(this.options.listeners&&this.options.listeners.errline){this.options.listeners.errline(e)}}))}))}i.on("error",(e=>{a.processError=e.message;a.processExited=true;a.processClosed=true;a.CheckComplete()}));i.on("exit",(e=>{a.processExitCode=e;a.processExited=true;this._debug(`Exit code ${e} received from tool '${this.toolPath}'`);a.CheckComplete()}));i.on("close",(e=>{a.processExitCode=e;a.processExited=true;a.processClosed=true;this._debug(`STDIO streams have closed for tool '${this.toolPath}'`);a.CheckComplete()}));a.on("done",((r,a)=>{if(s.length>0){this.emit("stdline",s)}if(p.length>0){this.emit("errline",p)}i.removeAllListeners();if(r){t(r)}else{e(a)}}));if(this.options.input){if(!i.stdin){throw new Error("child process missing stdin")}i.stdin.end(this.options.input)}}))))}))}}t.ToolRunner=ToolRunner;function argStringToArray(e){const t=[];let r=false;let a=false;let n="";function append(e){if(a&&e!=='"'){n+="\\"}n+=e;a=false}for(let i=0;i0){t.push(n);n=""}continue}append(s)}if(n.length>0){t.push(n.trim())}return t}t.argStringToArray=argStringToArray;class ExecState extends p.EventEmitter{constructor(e,t){super();this.processClosed=false;this.processError="";this.processExitCode=0;this.processExited=false;this.processStderr=false;this.delay=1e4;this.done=false;this.timeout=null;if(!t){throw new Error("toolPath must not be empty")}this.options=e;this.toolPath=t;if(e.delay){this.delay=e.delay}}CheckComplete(){if(this.done){return}if(this.processClosed){this._setResult()}else if(this.processExited){this.timeout=m.setTimeout(ExecState.HandleTimeout,this.delay,this)}}_debug(e){this.emit("debug",e)}_setResult(){let e;if(this.processExited){if(this.processError){e=new Error(`There was an error when attempting to execute the process '${this.toolPath}'. This may indicate the process failed to start. Error: ${this.processError}`)}else if(this.processExitCode!==0&&!this.options.ignoreReturnCode){e=new Error(`The process '${this.toolPath}' failed with exit code ${this.processExitCode}`)}else if(this.processStderr&&this.options.failOnStdErr){e=new Error(`The process '${this.toolPath}' failed because one or more lines were written to the STDERR stream`)}}if(this.timeout){clearTimeout(this.timeout);this.timeout=null}this.done=true;this.emit("done",e,this.processExitCode)}static HandleTimeout(e){if(e.done){return}if(!e.processClosed&&e.processExited){const t=`The STDIO streams did not close within ${e.delay/1e3} seconds of the exit event from process '${e.toolPath}'. This may indicate a child process inherited the STDIO streams and has not yet exited.`;e._debug(t)}e._setResult()}}},8090:function(e,t,r){"use strict";var a=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,n){function fulfilled(e){try{step(a.next(e))}catch(e){n(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){n(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.hashFiles=t.create=void 0;const n=r(8298);const i=r(2448);function create(e,t){return a(this,void 0,void 0,(function*(){return yield n.DefaultGlobber.create(e,t)}))}t.create=create;function hashFiles(e,t,r=false){return a(this,void 0,void 0,(function*(){let a=true;if(t&&typeof t.followSymbolicLinks==="boolean"){a=t.followSymbolicLinks}const n=yield create(e,{followSymbolicLinks:a});return i.hashFiles(n,r)}))}t.hashFiles=hashFiles},1026:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);n(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.getOptions=void 0;const s=i(r(2186));function getOptions(e){const t={followSymbolicLinks:true,implicitDescendants:true,matchDirectories:true,omitBrokenSymbolicLinks:true};if(e){if(typeof e.followSymbolicLinks==="boolean"){t.followSymbolicLinks=e.followSymbolicLinks;s.debug(`followSymbolicLinks '${t.followSymbolicLinks}'`)}if(typeof e.implicitDescendants==="boolean"){t.implicitDescendants=e.implicitDescendants;s.debug(`implicitDescendants '${t.implicitDescendants}'`)}if(typeof e.matchDirectories==="boolean"){t.matchDirectories=e.matchDirectories;s.debug(`matchDirectories '${t.matchDirectories}'`)}if(typeof e.omitBrokenSymbolicLinks==="boolean"){t.omitBrokenSymbolicLinks=e.omitBrokenSymbolicLinks;s.debug(`omitBrokenSymbolicLinks '${t.omitBrokenSymbolicLinks}'`)}}return t}t.getOptions=getOptions},8298:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);n(t,e);return t};var s=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,n){function fulfilled(e){try{step(a.next(e))}catch(e){n(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){n(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};var o=this&&this.__asyncValues||function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],r;return t?t.call(e):(e=typeof __values==="function"?__values(e):e[Symbol.iterator](),r={},verb("next"),verb("throw"),verb("return"),r[Symbol.asyncIterator]=function(){return this},r);function verb(t){r[t]=e[t]&&function(r){return new Promise((function(a,n){r=e[t](r),settle(a,n,r.done,r.value)}))}}function settle(e,t,r,a){Promise.resolve(a).then((function(t){e({value:t,done:r})}),t)}};var p=this&&this.__await||function(e){return this instanceof p?(this.v=e,this):new p(e)};var c=this&&this.__asyncGenerator||function(e,t,r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var a=r.apply(e,t||[]),n,i=[];return n={},verb("next"),verb("throw"),verb("return"),n[Symbol.asyncIterator]=function(){return this},n;function verb(e){if(a[e])n[e]=function(t){return new Promise((function(r,a){i.push([e,t,r,a])>1||resume(e,t)}))}}function resume(e,t){try{step(a[e](t))}catch(e){settle(i[0][3],e)}}function step(e){e.value instanceof p?Promise.resolve(e.value.v).then(fulfill,reject):settle(i[0][2],e)}function fulfill(e){resume("next",e)}function reject(e){resume("throw",e)}function settle(e,t){if(e(t),i.shift(),i.length)resume(i[0][0],i[0][1])}};Object.defineProperty(t,"__esModule",{value:true});t.DefaultGlobber=void 0;const l=i(r(2186));const d=i(r(7147));const u=i(r(1026));const m=i(r(1017));const h=i(r(9005));const g=r(1063);const v=r(4536);const y=r(9117);const b=process.platform==="win32";class DefaultGlobber{constructor(e){this.patterns=[];this.searchPaths=[];this.options=u.getOptions(e)}getSearchPaths(){return this.searchPaths.slice()}glob(){var e,t;return s(this,void 0,void 0,(function*(){const r=[];try{for(var a=o(this.globGenerator()),n;n=yield a.next(),!n.done;){const e=n.value;r.push(e)}}catch(t){e={error:t}}finally{try{if(n&&!n.done&&(t=a.return))yield t.call(a)}finally{if(e)throw e.error}}return r}))}globGenerator(){return c(this,arguments,(function*globGenerator_1(){const e=u.getOptions(this.options);const t=[];for(const r of this.patterns){t.push(r);if(e.implicitDescendants&&(r.trailingSeparator||r.segments[r.segments.length-1]!=="**")){t.push(new v.Pattern(r.negate,true,r.segments.concat("**")))}}const r=[];for(const e of h.getSearchPaths(t)){l.debug(`Search path '${e}'`);try{yield p(d.promises.lstat(e))}catch(e){if(e.code==="ENOENT"){continue}throw e}r.unshift(new y.SearchState(e,1))}const a=[];while(r.length){const n=r.pop();const i=h.match(t,n.path);const s=!!i||h.partialMatch(t,n.path);if(!i&&!s){continue}const o=yield p(DefaultGlobber.stat(n,e,a));if(!o){continue}if(o.isDirectory()){if(i&g.MatchKind.Directory&&e.matchDirectories){yield yield p(n.path)}else if(!s){continue}const t=n.level+1;const a=(yield p(d.promises.readdir(n.path))).map((e=>new y.SearchState(m.join(n.path,e),t)));r.push(...a.reverse())}else if(i&g.MatchKind.File){yield yield p(n.path)}}}))}static create(e,t){return s(this,void 0,void 0,(function*(){const r=new DefaultGlobber(t);if(b){e=e.replace(/\r\n/g,"\n");e=e.replace(/\r/g,"\n")}const a=e.split("\n").map((e=>e.trim()));for(const e of a){if(!e||e.startsWith("#")){continue}else{r.patterns.push(new v.Pattern(e))}}r.searchPaths.push(...h.getSearchPaths(r.patterns));return r}))}static stat(e,t,r){return s(this,void 0,void 0,(function*(){let a;if(t.followSymbolicLinks){try{a=yield d.promises.stat(e.path)}catch(r){if(r.code==="ENOENT"){if(t.omitBrokenSymbolicLinks){l.debug(`Broken symlink '${e.path}'`);return undefined}throw new Error(`No information found for the path '${e.path}'. This may indicate a broken symbolic link.`)}throw r}}else{a=yield d.promises.lstat(e.path)}if(a.isDirectory()&&t.followSymbolicLinks){const t=yield d.promises.realpath(e.path);while(r.length>=e.level){r.pop()}if(r.some((e=>e===t))){l.debug(`Symlink cycle detected for path '${e.path}' and realpath '${t}'`);return undefined}r.push(t)}return a}))}}t.DefaultGlobber=DefaultGlobber},2448:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);n(t,e);return t};var s=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,n){function fulfilled(e){try{step(a.next(e))}catch(e){n(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){n(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};var o=this&&this.__asyncValues||function(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],r;return t?t.call(e):(e=typeof __values==="function"?__values(e):e[Symbol.iterator](),r={},verb("next"),verb("throw"),verb("return"),r[Symbol.asyncIterator]=function(){return this},r);function verb(t){r[t]=e[t]&&function(r){return new Promise((function(a,n){r=e[t](r),settle(a,n,r.done,r.value)}))}}function settle(e,t,r,a){Promise.resolve(a).then((function(t){e({value:t,done:r})}),t)}};Object.defineProperty(t,"__esModule",{value:true});t.hashFiles=void 0;const p=i(r(6113));const c=i(r(2186));const l=i(r(7147));const d=i(r(2781));const u=i(r(3837));const m=i(r(1017));function hashFiles(e,t=false){var r,a;var n;return s(this,void 0,void 0,(function*(){const i=t?c.info:c.debug;let s=false;const h=(n=process.env["GITHUB_WORKSPACE"])!==null&&n!==void 0?n:process.cwd();const g=p.createHash("sha256");let v=0;try{for(var y=o(e.globGenerator()),b;b=yield y.next(),!b.done;){const e=b.value;i(e);if(!e.startsWith(`${h}${m.sep}`)){i(`Ignore '${e}' since it is not under GITHUB_WORKSPACE.`);continue}if(l.statSync(e).isDirectory()){i(`Skip directory '${e}'.`);continue}const t=p.createHash("sha256");const r=u.promisify(d.pipeline);yield r(l.createReadStream(e),t);g.write(t.digest());v++;if(!s){s=true}}}catch(e){r={error:e}}finally{try{if(b&&!b.done&&(a=y.return))yield a.call(y)}finally{if(r)throw r.error}}g.end();if(s){i(`Found ${v} files to hash.`);return g.digest("hex")}else{i(`No matches found for glob`);return""}}))}t.hashFiles=hashFiles},1063:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.MatchKind=void 0;var r;(function(e){e[e["None"]=0]="None";e[e["Directory"]=1]="Directory";e[e["File"]=2]="File";e[e["All"]=3]="All"})(r=t.MatchKind||(t.MatchKind={}))},1849:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);n(t,e);return t};var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.safeTrimTrailingSeparator=t.normalizeSeparators=t.hasRoot=t.hasAbsoluteRoot=t.ensureAbsoluteRoot=t.dirname=void 0;const o=i(r(1017));const p=s(r(9491));const c=process.platform==="win32";function dirname(e){e=safeTrimTrailingSeparator(e);if(c&&/^\\\\[^\\]+(\\[^\\]+)?$/.test(e)){return e}let t=o.dirname(e);if(c&&/^\\\\[^\\]+\\[^\\]+\\$/.test(t)){t=safeTrimTrailingSeparator(t)}return t}t.dirname=dirname;function ensureAbsoluteRoot(e,t){p.default(e,`ensureAbsoluteRoot parameter 'root' must not be empty`);p.default(t,`ensureAbsoluteRoot parameter 'itemPath' must not be empty`);if(hasAbsoluteRoot(t)){return t}if(c){if(t.match(/^[A-Z]:[^\\/]|^[A-Z]:$/i)){let e=process.cwd();p.default(e.match(/^[A-Z]:\\/i),`Expected current directory to start with an absolute drive root. Actual '${e}'`);if(t[0].toUpperCase()===e[0].toUpperCase()){if(t.length===2){return`${t[0]}:\\${e.substr(3)}`}else{if(!e.endsWith("\\")){e+="\\"}return`${t[0]}:\\${e.substr(3)}${t.substr(2)}`}}else{return`${t[0]}:\\${t.substr(2)}`}}else if(normalizeSeparators(t).match(/^\\$|^\\[^\\]/)){const e=process.cwd();p.default(e.match(/^[A-Z]:\\/i),`Expected current directory to start with an absolute drive root. Actual '${e}'`);return`${e[0]}:\\${t.substr(1)}`}}p.default(hasAbsoluteRoot(e),`ensureAbsoluteRoot parameter 'root' must have an absolute root`);if(e.endsWith("/")||c&&e.endsWith("\\")){}else{e+=o.sep}return e+t}t.ensureAbsoluteRoot=ensureAbsoluteRoot;function hasAbsoluteRoot(e){p.default(e,`hasAbsoluteRoot parameter 'itemPath' must not be empty`);e=normalizeSeparators(e);if(c){return e.startsWith("\\\\")||/^[A-Z]:\\/i.test(e)}return e.startsWith("/")}t.hasAbsoluteRoot=hasAbsoluteRoot;function hasRoot(e){p.default(e,`isRooted parameter 'itemPath' must not be empty`);e=normalizeSeparators(e);if(c){return e.startsWith("\\")||/^[A-Z]:/i.test(e)}return e.startsWith("/")}t.hasRoot=hasRoot;function normalizeSeparators(e){e=e||"";if(c){e=e.replace(/\//g,"\\");const t=/^\\\\+[^\\]/.test(e);return(t?"\\":"")+e.replace(/\\\\+/g,"\\")}return e.replace(/\/\/+/g,"/")}t.normalizeSeparators=normalizeSeparators;function safeTrimTrailingSeparator(e){if(!e){return""}e=normalizeSeparators(e);if(!e.endsWith(o.sep)){return e}if(e===o.sep){return e}if(c&&/^[A-Z]:\\$/i.test(e)){return e}return e.substr(0,e.length-1)}t.safeTrimTrailingSeparator=safeTrimTrailingSeparator},6836:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);n(t,e);return t};var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.Path=void 0;const o=i(r(1017));const p=i(r(1849));const c=s(r(9491));const l=process.platform==="win32";class Path{constructor(e){this.segments=[];if(typeof e==="string"){c.default(e,`Parameter 'itemPath' must not be empty`);e=p.safeTrimTrailingSeparator(e);if(!p.hasRoot(e)){this.segments=e.split(o.sep)}else{let t=e;let r=p.dirname(t);while(r!==t){const e=o.basename(t);this.segments.unshift(e);t=r;r=p.dirname(t)}this.segments.unshift(t)}}else{c.default(e.length>0,`Parameter 'itemPath' must not be an empty array`);for(let t=0;t!e.negate));const t={};for(const r of e){const e=p?r.searchPath.toUpperCase():r.searchPath;t[e]="candidate"}const r=[];for(const a of e){const e=p?a.searchPath.toUpperCase():a.searchPath;if(t[e]==="included"){continue}let n=false;let i=e;let o=s.dirname(i);while(o!==i){if(t[o]){n=true;break}i=o;o=s.dirname(i)}if(!n){r.push(a.searchPath);t[e]="included"}}return r}t.getSearchPaths=getSearchPaths;function match(e,t){let r=o.MatchKind.None;for(const a of e){if(a.negate){r&=~a.match(t)}else{r|=a.match(t)}}return r}t.match=match;function partialMatch(e,t){return e.some((e=>!e.negate&&e.partialMatch(t)))}t.partialMatch=partialMatch},4536:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);n(t,e);return t};var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.Pattern=void 0;const o=i(r(2037));const p=i(r(1017));const c=i(r(1849));const l=s(r(9491));const d=r(3973);const u=r(1063);const m=r(6836);const h=process.platform==="win32";class Pattern{constructor(e,t=false,r,a){this.negate=false;let n;if(typeof e==="string"){n=e.trim()}else{r=r||[];l.default(r.length,`Parameter 'segments' must not empty`);const t=Pattern.getLiteral(r[0]);l.default(t&&c.hasAbsoluteRoot(t),`Parameter 'segments' first element must be a root path`);n=new m.Path(r).toString().trim();if(e){n=`!${n}`}}while(n.startsWith("!")){this.negate=!this.negate;n=n.substr(1).trim()}n=Pattern.fixupPattern(n,a);this.segments=new m.Path(n).segments;this.trailingSeparator=c.normalizeSeparators(n).endsWith(p.sep);n=c.safeTrimTrailingSeparator(n);let i=false;const s=this.segments.map((e=>Pattern.getLiteral(e))).filter((e=>!i&&!(i=e==="")));this.searchPath=new m.Path(s).toString();this.rootRegExp=new RegExp(Pattern.regExpEscape(s[0]),h?"i":"");this.isImplicitPattern=t;const o={dot:true,nobrace:true,nocase:h,nocomment:true,noext:true,nonegate:true};n=h?n.replace(/\\/g,"/"):n;this.minimatch=new d.Minimatch(n,o)}match(e){if(this.segments[this.segments.length-1]==="**"){e=c.normalizeSeparators(e);if(!e.endsWith(p.sep)&&this.isImplicitPattern===false){e=`${e}${p.sep}`}}else{e=c.safeTrimTrailingSeparator(e)}if(this.minimatch.match(e)){return this.trailingSeparator?u.MatchKind.Directory:u.MatchKind.All}return u.MatchKind.None}partialMatch(e){e=c.safeTrimTrailingSeparator(e);if(c.dirname(e)===e){return this.rootRegExp.test(e)}return this.minimatch.matchOne(e.split(h?/\\+/:/\/+/),this.minimatch.set[0],true)}static globEscape(e){return(h?e:e.replace(/\\/g,"\\\\")).replace(/(\[)(?=[^/]+\])/g,"[[]").replace(/\?/g,"[?]").replace(/\*/g,"[*]")}static fixupPattern(e,t){l.default(e,"pattern cannot be empty");const r=new m.Path(e).segments.map((e=>Pattern.getLiteral(e)));l.default(r.every(((e,t)=>(e!=="."||t===0)&&e!=="..")),`Invalid pattern '${e}'. Relative pathing '.' and '..' is not allowed.`);l.default(!c.hasRoot(e)||r[0],`Invalid pattern '${e}'. Root segment must not contain globs.`);e=c.normalizeSeparators(e);if(e==="."||e.startsWith(`.${p.sep}`)){e=Pattern.globEscape(process.cwd())+e.substr(1)}else if(e==="~"||e.startsWith(`~${p.sep}`)){t=t||o.homedir();l.default(t,"Unable to determine HOME directory");l.default(c.hasAbsoluteRoot(t),`Expected HOME directory to be a rooted path. Actual '${t}'`);e=Pattern.globEscape(t)+e.substr(1)}else if(h&&(e.match(/^[A-Z]:$/i)||e.match(/^[A-Z]:[^\\]/i))){let t=c.ensureAbsoluteRoot("C:\\dummy-root",e.substr(0,2));if(e.length>2&&!t.endsWith("\\")){t+="\\"}e=Pattern.globEscape(t)+e.substr(2)}else if(h&&(e==="\\"||e.match(/^\\[^\\]/))){let t=c.ensureAbsoluteRoot("C:\\dummy-root","\\");if(!t.endsWith("\\")){t+="\\"}e=Pattern.globEscape(t)+e.substr(1)}else{e=c.ensureAbsoluteRoot(Pattern.globEscape(process.cwd()),e)}return c.normalizeSeparators(e)}static getLiteral(e){let t="";for(let r=0;r=0){if(a.length>1){return""}if(a){t+=a;r=n;continue}}}t+=a}return t}static regExpEscape(e){return e.replace(/[[\\^$.|?*+()]/g,"\\$&")}}t.Pattern=Pattern},9117:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.SearchState=void 0;class SearchState{constructor(e,t){this.path=e;this.level=t}}t.SearchState=SearchState},5526:function(e,t){"use strict";var r=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,n){function fulfilled(e){try{step(a.next(e))}catch(e){n(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){n(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.PersonalAccessTokenCredentialHandler=t.BearerCredentialHandler=t.BasicCredentialHandler=void 0;class BasicCredentialHandler{constructor(e,t){this.username=e;this.password=t}prepareRequest(e){if(!e.headers){throw Error("The request has no headers")}e.headers["Authorization"]=`Basic ${Buffer.from(`${this.username}:${this.password}`).toString("base64")}`}canHandleAuthentication(){return false}handleAuthentication(){return r(this,void 0,void 0,(function*(){throw new Error("not implemented")}))}}t.BasicCredentialHandler=BasicCredentialHandler;class BearerCredentialHandler{constructor(e){this.token=e}prepareRequest(e){if(!e.headers){throw Error("The request has no headers")}e.headers["Authorization"]=`Bearer ${this.token}`}canHandleAuthentication(){return false}handleAuthentication(){return r(this,void 0,void 0,(function*(){throw new Error("not implemented")}))}}t.BearerCredentialHandler=BearerCredentialHandler;class PersonalAccessTokenCredentialHandler{constructor(e){this.token=e}prepareRequest(e){if(!e.headers){throw Error("The request has no headers")}e.headers["Authorization"]=`Basic ${Buffer.from(`PAT:${this.token}`).toString("base64")}`}canHandleAuthentication(){return false}handleAuthentication(){return r(this,void 0,void 0,(function*(){throw new Error("not implemented")}))}}t.PersonalAccessTokenCredentialHandler=PersonalAccessTokenCredentialHandler},6255:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);n(t,e);return t};var s=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,n){function fulfilled(e){try{step(a.next(e))}catch(e){n(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){n(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.HttpClient=t.isHttps=t.HttpClientResponse=t.HttpClientError=t.getProxyUrl=t.MediaTypes=t.Headers=t.HttpCodes=void 0;const o=i(r(3685));const p=i(r(5687));const c=i(r(9835));const l=i(r(4294));var d;(function(e){e[e["OK"]=200]="OK";e[e["MultipleChoices"]=300]="MultipleChoices";e[e["MovedPermanently"]=301]="MovedPermanently";e[e["ResourceMoved"]=302]="ResourceMoved";e[e["SeeOther"]=303]="SeeOther";e[e["NotModified"]=304]="NotModified";e[e["UseProxy"]=305]="UseProxy";e[e["SwitchProxy"]=306]="SwitchProxy";e[e["TemporaryRedirect"]=307]="TemporaryRedirect";e[e["PermanentRedirect"]=308]="PermanentRedirect";e[e["BadRequest"]=400]="BadRequest";e[e["Unauthorized"]=401]="Unauthorized";e[e["PaymentRequired"]=402]="PaymentRequired";e[e["Forbidden"]=403]="Forbidden";e[e["NotFound"]=404]="NotFound";e[e["MethodNotAllowed"]=405]="MethodNotAllowed";e[e["NotAcceptable"]=406]="NotAcceptable";e[e["ProxyAuthenticationRequired"]=407]="ProxyAuthenticationRequired";e[e["RequestTimeout"]=408]="RequestTimeout";e[e["Conflict"]=409]="Conflict";e[e["Gone"]=410]="Gone";e[e["TooManyRequests"]=429]="TooManyRequests";e[e["InternalServerError"]=500]="InternalServerError";e[e["NotImplemented"]=501]="NotImplemented";e[e["BadGateway"]=502]="BadGateway";e[e["ServiceUnavailable"]=503]="ServiceUnavailable";e[e["GatewayTimeout"]=504]="GatewayTimeout"})(d=t.HttpCodes||(t.HttpCodes={}));var u;(function(e){e["Accept"]="accept";e["ContentType"]="content-type"})(u=t.Headers||(t.Headers={}));var m;(function(e){e["ApplicationJson"]="application/json"})(m=t.MediaTypes||(t.MediaTypes={}));function getProxyUrl(e){const t=c.getProxyUrl(new URL(e));return t?t.href:""}t.getProxyUrl=getProxyUrl;const h=[d.MovedPermanently,d.ResourceMoved,d.SeeOther,d.TemporaryRedirect,d.PermanentRedirect];const g=[d.BadGateway,d.ServiceUnavailable,d.GatewayTimeout];const v=["OPTIONS","GET","DELETE","HEAD"];const y=10;const b=5;class HttpClientError extends Error{constructor(e,t){super(e);this.name="HttpClientError";this.statusCode=t;Object.setPrototypeOf(this,HttpClientError.prototype)}}t.HttpClientError=HttpClientError;class HttpClientResponse{constructor(e){this.message=e}readBody(){return s(this,void 0,void 0,(function*(){return new Promise((e=>s(this,void 0,void 0,(function*(){let t=Buffer.alloc(0);this.message.on("data",(e=>{t=Buffer.concat([t,e])}));this.message.on("end",(()=>{e(t.toString())}))}))))}))}}t.HttpClientResponse=HttpClientResponse;function isHttps(e){const t=new URL(e);return t.protocol==="https:"}t.isHttps=isHttps;class HttpClient{constructor(e,t,r){this._ignoreSslError=false;this._allowRedirects=true;this._allowRedirectDowngrade=false;this._maxRedirects=50;this._allowRetries=false;this._maxRetries=1;this._keepAlive=false;this._disposed=false;this.userAgent=e;this.handlers=t||[];this.requestOptions=r;if(r){if(r.ignoreSslError!=null){this._ignoreSslError=r.ignoreSslError}this._socketTimeout=r.socketTimeout;if(r.allowRedirects!=null){this._allowRedirects=r.allowRedirects}if(r.allowRedirectDowngrade!=null){this._allowRedirectDowngrade=r.allowRedirectDowngrade}if(r.maxRedirects!=null){this._maxRedirects=Math.max(r.maxRedirects,0)}if(r.keepAlive!=null){this._keepAlive=r.keepAlive}if(r.allowRetries!=null){this._allowRetries=r.allowRetries}if(r.maxRetries!=null){this._maxRetries=r.maxRetries}}}options(e,t){return s(this,void 0,void 0,(function*(){return this.request("OPTIONS",e,null,t||{})}))}get(e,t){return s(this,void 0,void 0,(function*(){return this.request("GET",e,null,t||{})}))}del(e,t){return s(this,void 0,void 0,(function*(){return this.request("DELETE",e,null,t||{})}))}post(e,t,r){return s(this,void 0,void 0,(function*(){return this.request("POST",e,t,r||{})}))}patch(e,t,r){return s(this,void 0,void 0,(function*(){return this.request("PATCH",e,t,r||{})}))}put(e,t,r){return s(this,void 0,void 0,(function*(){return this.request("PUT",e,t,r||{})}))}head(e,t){return s(this,void 0,void 0,(function*(){return this.request("HEAD",e,null,t||{})}))}sendStream(e,t,r,a){return s(this,void 0,void 0,(function*(){return this.request(e,t,r,a)}))}getJson(e,t={}){return s(this,void 0,void 0,(function*(){t[u.Accept]=this._getExistingOrDefaultHeader(t,u.Accept,m.ApplicationJson);const r=yield this.get(e,t);return this._processResponse(r,this.requestOptions)}))}postJson(e,t,r={}){return s(this,void 0,void 0,(function*(){const a=JSON.stringify(t,null,2);r[u.Accept]=this._getExistingOrDefaultHeader(r,u.Accept,m.ApplicationJson);r[u.ContentType]=this._getExistingOrDefaultHeader(r,u.ContentType,m.ApplicationJson);const n=yield this.post(e,a,r);return this._processResponse(n,this.requestOptions)}))}putJson(e,t,r={}){return s(this,void 0,void 0,(function*(){const a=JSON.stringify(t,null,2);r[u.Accept]=this._getExistingOrDefaultHeader(r,u.Accept,m.ApplicationJson);r[u.ContentType]=this._getExistingOrDefaultHeader(r,u.ContentType,m.ApplicationJson);const n=yield this.put(e,a,r);return this._processResponse(n,this.requestOptions)}))}patchJson(e,t,r={}){return s(this,void 0,void 0,(function*(){const a=JSON.stringify(t,null,2);r[u.Accept]=this._getExistingOrDefaultHeader(r,u.Accept,m.ApplicationJson);r[u.ContentType]=this._getExistingOrDefaultHeader(r,u.ContentType,m.ApplicationJson);const n=yield this.patch(e,a,r);return this._processResponse(n,this.requestOptions)}))}request(e,t,r,a){return s(this,void 0,void 0,(function*(){if(this._disposed){throw new Error("Client has already been disposed.")}const n=new URL(t);let i=this._prepareRequest(e,n,a);const s=this._allowRetries&&v.includes(e)?this._maxRetries+1:1;let o=0;let p;do{p=yield this.requestRaw(i,r);if(p&&p.message&&p.message.statusCode===d.Unauthorized){let e;for(const t of this.handlers){if(t.canHandleAuthentication(p)){e=t;break}}if(e){return e.handleAuthentication(this,i,r)}else{return p}}let t=this._maxRedirects;while(p.message.statusCode&&h.includes(p.message.statusCode)&&this._allowRedirects&&t>0){const s=p.message.headers["location"];if(!s){break}const o=new URL(s);if(n.protocol==="https:"&&n.protocol!==o.protocol&&!this._allowRedirectDowngrade){throw new Error("Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.")}yield p.readBody();if(o.hostname!==n.hostname){for(const e in a){if(e.toLowerCase()==="authorization"){delete a[e]}}}i=this._prepareRequest(e,o,a);p=yield this.requestRaw(i,r);t--}if(!p.message.statusCode||!g.includes(p.message.statusCode)){return p}o+=1;if(o{function callbackForResult(e,t){if(e){a(e)}else if(!t){a(new Error("Unknown error"))}else{r(t)}}this.requestRawWithCallback(e,t,callbackForResult)}))}))}requestRawWithCallback(e,t,r){if(typeof t==="string"){if(!e.options.headers){e.options.headers={}}e.options.headers["Content-Length"]=Buffer.byteLength(t,"utf8")}let a=false;function handleResult(e,t){if(!a){a=true;r(e,t)}}const n=e.httpModule.request(e.options,(e=>{const t=new HttpClientResponse(e);handleResult(undefined,t)}));let i;n.on("socket",(e=>{i=e}));n.setTimeout(this._socketTimeout||3*6e4,(()=>{if(i){i.end()}handleResult(new Error(`Request timeout: ${e.options.path}`))}));n.on("error",(function(e){handleResult(e)}));if(t&&typeof t==="string"){n.write(t,"utf8")}if(t&&typeof t!=="string"){t.on("close",(function(){n.end()}));t.pipe(n)}else{n.end()}}getAgent(e){const t=new URL(e);return this._getAgent(t)}_prepareRequest(e,t,r){const a={};a.parsedUrl=t;const n=a.parsedUrl.protocol==="https:";a.httpModule=n?p:o;const i=n?443:80;a.options={};a.options.host=a.parsedUrl.hostname;a.options.port=a.parsedUrl.port?parseInt(a.parsedUrl.port):i;a.options.path=(a.parsedUrl.pathname||"")+(a.parsedUrl.search||"");a.options.method=e;a.options.headers=this._mergeHeaders(r);if(this.userAgent!=null){a.options.headers["user-agent"]=this.userAgent}a.options.agent=this._getAgent(a.parsedUrl);if(this.handlers){for(const e of this.handlers){e.prepareRequest(a.options)}}return a}_mergeHeaders(e){if(this.requestOptions&&this.requestOptions.headers){return Object.assign({},lowercaseKeys(this.requestOptions.headers),lowercaseKeys(e||{}))}return lowercaseKeys(e||{})}_getExistingOrDefaultHeader(e,t,r){let a;if(this.requestOptions&&this.requestOptions.headers){a=lowercaseKeys(this.requestOptions.headers)[t]}return e[t]||a||r}_getAgent(e){let t;const r=c.getProxyUrl(e);const a=r&&r.hostname;if(this._keepAlive&&a){t=this._proxyAgent}if(this._keepAlive&&!a){t=this._agent}if(t){return t}const n=e.protocol==="https:";let i=100;if(this.requestOptions){i=this.requestOptions.maxSockets||o.globalAgent.maxSockets}if(r&&r.hostname){const e={maxSockets:i,keepAlive:this._keepAlive,proxy:Object.assign(Object.assign({},(r.username||r.password)&&{proxyAuth:`${r.username}:${r.password}`}),{host:r.hostname,port:r.port})};let a;const s=r.protocol==="https:";if(n){a=s?l.httpsOverHttps:l.httpsOverHttp}else{a=s?l.httpOverHttps:l.httpOverHttp}t=a(e);this._proxyAgent=t}if(this._keepAlive&&!t){const e={keepAlive:this._keepAlive,maxSockets:i};t=n?new p.Agent(e):new o.Agent(e);this._agent=t}if(!t){t=n?p.globalAgent:o.globalAgent}if(n&&this._ignoreSslError){t.options=Object.assign(t.options||{},{rejectUnauthorized:false})}return t}_performExponentialBackoff(e){return s(this,void 0,void 0,(function*(){e=Math.min(y,e);const t=b*Math.pow(2,e);return new Promise((e=>setTimeout((()=>e()),t)))}))}_processResponse(e,t){return s(this,void 0,void 0,(function*(){return new Promise(((r,a)=>s(this,void 0,void 0,(function*(){const n=e.message.statusCode||0;const i={statusCode:n,result:null,headers:{}};if(n===d.NotFound){r(i)}function dateTimeDeserializer(e,t){if(typeof t==="string"){const e=new Date(t);if(!isNaN(e.valueOf())){return e}}return t}let s;let o;try{o=yield e.readBody();if(o&&o.length>0){if(t&&t.deserializeDates){s=JSON.parse(o,dateTimeDeserializer)}else{s=JSON.parse(o)}i.result=s}i.headers=e.message.headers}catch(e){}if(n>299){let e;if(s&&s.message){e=s.message}else if(o&&o.length>0){e=o}else{e=`Failed request: (${n})`}const t=new HttpClientError(e,n);t.result=i.result;a(t)}else{r(i)}}))))}))}}t.HttpClient=HttpClient;const lowercaseKeys=e=>Object.keys(e).reduce(((t,r)=>(t[r.toLowerCase()]=e[r],t)),{})},9835:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.checkBypass=t.getProxyUrl=void 0;function getProxyUrl(e){const t=e.protocol==="https:";if(checkBypass(e)){return undefined}const r=(()=>{if(t){return process.env["https_proxy"]||process.env["HTTPS_PROXY"]}else{return process.env["http_proxy"]||process.env["HTTP_PROXY"]}})();if(r){return new URL(r)}else{return undefined}}t.getProxyUrl=getProxyUrl;function checkBypass(e){if(!e.hostname){return false}const t=process.env["no_proxy"]||process.env["NO_PROXY"]||"";if(!t){return false}let r;if(e.port){r=Number(e.port)}else if(e.protocol==="http:"){r=80}else if(e.protocol==="https:"){r=443}const a=[e.hostname.toUpperCase()];if(typeof r==="number"){a.push(`${a[0]}:${r}`)}for(const e of t.split(",").map((e=>e.trim().toUpperCase())).filter((e=>e))){if(a.some((t=>t===e))){return true}}return false}t.checkBypass=checkBypass},1962:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);n(t,e);return t};var s=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,n){function fulfilled(e){try{step(a.next(e))}catch(e){n(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){n(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};var o;Object.defineProperty(t,"__esModule",{value:true});t.getCmdPath=t.tryGetExecutablePath=t.isRooted=t.isDirectory=t.exists=t.IS_WINDOWS=t.unlink=t.symlink=t.stat=t.rmdir=t.rename=t.readlink=t.readdir=t.mkdir=t.lstat=t.copyFile=t.chmod=void 0;const p=i(r(7147));const c=i(r(1017));o=p.promises,t.chmod=o.chmod,t.copyFile=o.copyFile,t.lstat=o.lstat,t.mkdir=o.mkdir,t.readdir=o.readdir,t.readlink=o.readlink,t.rename=o.rename,t.rmdir=o.rmdir,t.stat=o.stat,t.symlink=o.symlink,t.unlink=o.unlink;t.IS_WINDOWS=process.platform==="win32";function exists(e){return s(this,void 0,void 0,(function*(){try{yield t.stat(e)}catch(e){if(e.code==="ENOENT"){return false}throw e}return true}))}t.exists=exists;function isDirectory(e,r=false){return s(this,void 0,void 0,(function*(){const a=r?yield t.stat(e):yield t.lstat(e);return a.isDirectory()}))}t.isDirectory=isDirectory;function isRooted(e){e=normalizeSeparators(e);if(!e){throw new Error('isRooted() parameter "p" cannot be empty')}if(t.IS_WINDOWS){return e.startsWith("\\")||/^[A-Z]:/i.test(e)}return e.startsWith("/")}t.isRooted=isRooted;function tryGetExecutablePath(e,r){return s(this,void 0,void 0,(function*(){let a=undefined;try{a=yield t.stat(e)}catch(t){if(t.code!=="ENOENT"){console.log(`Unexpected error attempting to determine if executable file exists '${e}': ${t}`)}}if(a&&a.isFile()){if(t.IS_WINDOWS){const t=c.extname(e).toUpperCase();if(r.some((e=>e.toUpperCase()===t))){return e}}else{if(isUnixExecutable(a)){return e}}}const n=e;for(const i of r){e=n+i;a=undefined;try{a=yield t.stat(e)}catch(t){if(t.code!=="ENOENT"){console.log(`Unexpected error attempting to determine if executable file exists '${e}': ${t}`)}}if(a&&a.isFile()){if(t.IS_WINDOWS){try{const r=c.dirname(e);const a=c.basename(e).toUpperCase();for(const n of yield t.readdir(r)){if(a===n.toUpperCase()){e=c.join(r,n);break}}}catch(t){console.log(`Unexpected error attempting to determine the actual case of the file '${e}': ${t}`)}return e}else{if(isUnixExecutable(a)){return e}}}}return""}))}t.tryGetExecutablePath=tryGetExecutablePath;function normalizeSeparators(e){e=e||"";if(t.IS_WINDOWS){e=e.replace(/\//g,"\\");return e.replace(/\\\\+/g,"\\")}return e.replace(/\/\/+/g,"/")}function isUnixExecutable(e){return(e.mode&1)>0||(e.mode&8)>0&&e.gid===process.getgid()||(e.mode&64)>0&&e.uid===process.getuid()}function getCmdPath(){var e;return(e=process.env["COMSPEC"])!==null&&e!==void 0?e:`cmd.exe`}t.getCmdPath=getCmdPath},7436:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.hasOwnProperty.call(e,r))a(t,e,r);n(t,e);return t};var s=this&&this.__awaiter||function(e,t,r,a){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,n){function fulfilled(e){try{step(a.next(e))}catch(e){n(e)}}function rejected(e){try{step(a["throw"](e))}catch(e){n(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((a=a.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.findInPath=t.which=t.mkdirP=t.rmRF=t.mv=t.cp=void 0;const o=r(9491);const p=i(r(2081));const c=i(r(1017));const l=r(3837);const d=i(r(1962));const u=l.promisify(p.exec);const m=l.promisify(p.execFile);function cp(e,t,r={}){return s(this,void 0,void 0,(function*(){const{force:a,recursive:n,copySourceDirectory:i}=readCopyOptions(r);const s=(yield d.exists(t))?yield d.stat(t):null;if(s&&s.isFile()&&!a){return}const o=s&&s.isDirectory()&&i?c.join(t,c.basename(e)):t;if(!(yield d.exists(e))){throw new Error(`no such file or directory: ${e}`)}const p=yield d.stat(e);if(p.isDirectory()){if(!n){throw new Error(`Failed to copy. ${e} is a directory, but tried to copy without recursive flag.`)}else{yield cpDirRecursive(e,o,0,a)}}else{if(c.relative(e,o)===""){throw new Error(`'${o}' and '${e}' are the same file`)}yield copyFile(e,o,a)}}))}t.cp=cp;function mv(e,t,r={}){return s(this,void 0,void 0,(function*(){if(yield d.exists(t)){let a=true;if(yield d.isDirectory(t)){t=c.join(t,c.basename(e));a=yield d.exists(t)}if(a){if(r.force==null||r.force){yield rmRF(t)}else{throw new Error("Destination already exists")}}}yield mkdirP(c.dirname(t));yield d.rename(e,t)}))}t.mv=mv;function rmRF(e){return s(this,void 0,void 0,(function*(){if(d.IS_WINDOWS){if(/[*"<>|]/.test(e)){throw new Error('File path must not contain `*`, `"`, `<`, `>` or `|` on Windows')}try{const t=d.getCmdPath();if(yield d.isDirectory(e,true)){yield u(`${t} /s /c "rd /s /q "%inputPath%""`,{env:{inputPath:e}})}else{yield u(`${t} /s /c "del /f /a "%inputPath%""`,{env:{inputPath:e}})}}catch(e){if(e.code!=="ENOENT")throw e}try{yield d.unlink(e)}catch(e){if(e.code!=="ENOENT")throw e}}else{let t=false;try{t=yield d.isDirectory(e)}catch(e){if(e.code!=="ENOENT")throw e;return}if(t){yield m(`rm`,[`-rf`,`${e}`])}else{yield d.unlink(e)}}}))}t.rmRF=rmRF;function mkdirP(e){return s(this,void 0,void 0,(function*(){o.ok(e,"a path argument must be provided");yield d.mkdir(e,{recursive:true})}))}t.mkdirP=mkdirP;function which(e,t){return s(this,void 0,void 0,(function*(){if(!e){throw new Error("parameter 'tool' is required")}if(t){const t=yield which(e,false);if(!t){if(d.IS_WINDOWS){throw new Error(`Unable to locate executable file: ${e}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.`)}else{throw new Error(`Unable to locate executable file: ${e}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.`)}}return t}const r=yield findInPath(e);if(r&&r.length>0){return r[0]}return""}))}t.which=which;function findInPath(e){return s(this,void 0,void 0,(function*(){if(!e){throw new Error("parameter 'tool' is required")}const t=[];if(d.IS_WINDOWS&&process.env["PATHEXT"]){for(const e of process.env["PATHEXT"].split(c.delimiter)){if(e){t.push(e)}}}if(d.isRooted(e)){const r=yield d.tryGetExecutablePath(e,t);if(r){return[r]}return[]}if(e.includes(c.sep)){return[]}const r=[];if(process.env.PATH){for(const e of process.env.PATH.split(c.delimiter)){if(e){r.push(e)}}}const a=[];for(const n of r){const r=yield d.tryGetExecutablePath(c.join(n,e),t);if(r){a.push(r)}}return a}))}t.findInPath=findInPath;function readCopyOptions(e){const t=e.force==null?true:e.force;const r=Boolean(e.recursive);const a=e.copySourceDirectory==null?true:Boolean(e.copySourceDirectory);return{force:t,recursive:r,copySourceDirectory:a}}function cpDirRecursive(e,t,r,a){return s(this,void 0,void 0,(function*(){if(r>=255)return;r++;yield mkdirP(t);const n=yield d.readdir(e);for(const i of n){const n=`${e}/${i}`;const s=`${t}/${i}`;const o=yield d.lstat(n);if(o.isDirectory()){yield cpDirRecursive(n,s,r,a)}else{yield copyFile(n,s,a)}}yield d.chmod(t,(yield d.stat(e)).mode)}))}function copyFile(e,t,r){return s(this,void 0,void 0,(function*(){if((yield d.lstat(e)).isSymbolicLink()){try{yield d.lstat(t);yield d.unlink(t)}catch(e){if(e.code==="EPERM"){yield d.chmod(t,"0666");yield d.unlink(t)}}const r=yield d.readlink(e);yield d.symlink(r,t,d.IS_WINDOWS?"junction":null)}else if(!(yield d.exists(t))||r){yield d.copyFile(e,t)}}))}},6809:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.ArchiveDependencies=t.IfNoFile=t.ArchiveOn=void 0;var r;(function(e){e["SUCCESS"]="success";e["FAILURE"]="failure";e["ALWAYS"]="always"})(r=t.ArchiveOn||(t.ArchiveOn={}));var a;(function(e){e["WARN"]="warn";e["ERROR"]="error";e["IGNORE"]="ignore"})(a=t.IfNoFile||(t.IfNoFile={}));var n;(function(e){e["ALL"]="all";e["NONE"]="none"})(n=t.ArchiveDependencies||(t.ArchiveDependencies={}))},4424:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.Visited=void 0;var r;(function(e){e[e["VISITED_ALL"]=0]="VISITED_ALL";e[e["VISITING_OUTGOING"]=1]="VISITING_OUTGOING";e[e["VISITED_OUTGOING"]=2]="VISITED_OUTGOING";e[e["VISITING_INCOMING"]=3]="VISITING_INCOMING";e[e["VISITED_NONE"]=4]="VISITED_NONE"})(r=t.Visited||(t.Visited={}))},5690:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.DEFAULT_GERRIT_PLATFORM=t.DEFAULT_GITLAB_PLATFORM=t.DEFAULT_GITHUB_PLATFORM=t.PlatformType=void 0;var r;(function(e){e["GITHUB"]="github";e["GITLAB"]="gitlab";e["GERRIT"]="gerrit"})(r=t.PlatformType||(t.PlatformType={}));t.DEFAULT_GITHUB_PLATFORM={id:"github-public",type:r.GITHUB,serverUrl:"https://github.com",apiUrl:"https://api.github.com",tokenId:"GITHUB_TOKEN"};t.DEFAULT_GITLAB_PLATFORM={id:"gitlab-public",type:r.GITLAB,serverUrl:"https://gitlab.com",apiUrl:"https://gitlab.com/api/v4",tokenId:"GITLAB_TOKEN"};t.DEFAULT_GERRIT_PLATFORM={id:"gerrit-public",type:r.GERRIT,serverUrl:"https://gerrit.googlesource.com",apiUrl:"https://gerrit.googlesource.com",tokenId:"GERRIT_TOKEN"}},4301:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.getFullDownstreamProjects=t.getUpstreamProjects=void 0;const a=r(4424);const n=r(5934);const i=r(9360);const s=r(7727);async function getUpstreamProjects(e,t,r){const a=await(0,n.readDefinitionFile)(e,r);const o=(0,i.constructGraph)(a.dependencies);return dfs(t,o,true).map((e=>(0,s.constructNode)(e,a.default?.["build-command"],a.build,o[e.project].depth)))}t.getUpstreamProjects=getUpstreamProjects;async function getFullDownstreamProjects(e,t,r){const a=await(0,n.readDefinitionFile)(e,r);const o=(0,i.constructGraph)(a.dependencies);return dfs(t,o).map((e=>(0,s.constructNode)(e,a.default?.["build-command"],a.build,o[e.project].depth)))}t.getFullDownstreamProjects=getFullDownstreamProjects;function dfs(e,t,r=false){const n=[];const i=Object.keys(t).reduce(((e,t)=>{e[t]=a.Visited.VISITED_NONE;return e}),{});if(r){visitOutgoingEdges(e,t,i,n)}else{visit(e,t,i,n)}return n}function visitOutgoingEdges(e,t,r,n){if(r[e]===a.Visited.VISITING_OUTGOING){throw new Error("Cycle detected")}if(r[e]===a.Visited.VISITED_NONE){r[e]=a.Visited.VISITING_OUTGOING;let i=t[e].depth;for(const a of t[e].outgoing){const e=visitOutgoingEdges(a,t,r,n);if(e>i){i=e}}t[e].depth=i+1;r[e]=a.Visited.VISITED_OUTGOING;n.push(t[e].dependency)}return t[e].depth}function visit(e,t,r,n){visitOutgoingEdges(e,t,r,n);if(r[e]!==a.Visited.VISITED_ALL){if(r[e]===a.Visited.VISITING_INCOMING){throw new Error("Cycle detected")}r[e]=a.Visited.VISITING_INCOMING;for(const a of t[e].incoming){visit(a,t,r,n)}r[e]=a.Visited.VISITED_ALL}}},8114:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.DEFAULT_GITLAB_PLATFORM=t.DEFAULT_GITHUB_PLATFORM=t.PlatformType=t.IfNoFile=t.ArchiveOn=t.ArchiveDependencies=t.getFullDownstreamProjects=t.getUpstreamProjects=t.getMapping=t.getMappedTarget=t.readDefinitionFile=t.getTreeForProject=t.getOrderedListForTree=t.getOrderedListForProject=t.parentChainFromNode=t.getTree=void 0;const a=r(2253);Object.defineProperty(t,"getTree",{enumerable:true,get:function(){return a.getTree}});Object.defineProperty(t,"parentChainFromNode",{enumerable:true,get:function(){return a.parentChainFromNode}});Object.defineProperty(t,"getOrderedListForProject",{enumerable:true,get:function(){return a.getOrderedListForProject}});Object.defineProperty(t,"getOrderedListForTree",{enumerable:true,get:function(){return a.getOrderedListForTree}});Object.defineProperty(t,"getTreeForProject",{enumerable:true,get:function(){return a.getTreeForProject}});const n=r(5934);Object.defineProperty(t,"readDefinitionFile",{enumerable:true,get:function(){return n.readDefinitionFile}});const i=r(9596);Object.defineProperty(t,"getMappedTarget",{enumerable:true,get:function(){return i.getMappedTarget}});Object.defineProperty(t,"getMapping",{enumerable:true,get:function(){return i.getMapping}});const s=r(6809);Object.defineProperty(t,"ArchiveDependencies",{enumerable:true,get:function(){return s.ArchiveDependencies}});Object.defineProperty(t,"ArchiveOn",{enumerable:true,get:function(){return s.ArchiveOn}});Object.defineProperty(t,"IfNoFile",{enumerable:true,get:function(){return s.IfNoFile}});const o=r(4301);Object.defineProperty(t,"getFullDownstreamProjects",{enumerable:true,get:function(){return o.getFullDownstreamProjects}});Object.defineProperty(t,"getUpstreamProjects",{enumerable:true,get:function(){return o.getUpstreamProjects}});const p=r(5690);Object.defineProperty(t,"PlatformType",{enumerable:true,get:function(){return p.PlatformType}});Object.defineProperty(t,"DEFAULT_GITHUB_PLATFORM",{enumerable:true,get:function(){return p.DEFAULT_GITHUB_PLATFORM}});Object.defineProperty(t,"DEFAULT_GITLAB_PLATFORM",{enumerable:true,get:function(){return p.DEFAULT_GITLAB_PLATFORM}})},5934:function(e,t,r){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.readDefinitionFile=void 0;const n=r(4619);const i=r(3919);const s=r(5265);const o=r(3292);const p=a(r(6077));const c=a(r(1017));async function readDefinitionFile(e,t){try{const r=await getContent(e,t);const a=await(0,s.validateDefinitionFile)(r);let n=undefined;if(a.extends){n=await readDefinitionFile(constructLocation(a.extends,e,t),t);delete a["extends"]}a.pre=extendPre(a.pre,n?n.pre:undefined);a.post=extendPost(a.post,n?n.post:undefined);a.default=extendDefault(a.default,n?n.default:undefined);a.build=extendBuild(a.build,n?n.build:undefined);a.dependencies=await loadDependencies(a.dependencies,n?.dependencies,e,t);targetExpressionToTarget(a.dependencies);return a}catch(t){throw new Error(`Error getting ${e} - ${t}`)}}t.readDefinitionFile=readDefinitionFile;async function loadDependencies(e,t,r,a){let n=[];if(!e){return t??[]}if(!Array.isArray(e)){const t=constructLocation(e,r,a);const i=await readDefinitionFile(t,a);n=i.dependencies}else{n=e}return t?n.concat(t.filter((e=>!n.find((t=>e.project===t.project))))):n}function extendBuild(e,t){if(!t){return e}if(!e){return t}return[...e,...t.filter((t=>!e.find((e=>e.project===t.project))))]}function extendDefault(e,t){if(!t){return e}if(!e){return t}const r=Object.keys(e);return Object.entries(t).reduce(((t,[a,n])=>{const i=e[a];if(Array.isArray(n)&&Array.isArray(i)){t[a]=i.length?i:n}else if(typeof n==="object"){t[a]=r.includes(a)?extendDefault(e[a],n):n}else{t[a]=e[a]??n}return t}),{...e})}function extendPre(e,t){if(!t){return e}if(!e){return t}return e.concat(t)}function extendPost(e,t){if(!t){return e}if(!e){return t}return{success:extendPre(e.success,t.success),always:extendPre(e.always,t.always),failure:extendPre(e.failure,t.failure)}}async function getContent(e,t){if(isURL(e)){const r=(0,i.treatUrl)(e,t?.group,t?.name,t?.branch);const a=await p.default.get(r,{responseType:"text",...t?.token?{headers:{Authorization:`Bearer ${t.token}`}}:{}});return a.data}else{return(0,o.readFile)(e,"utf8")}}function constructLocation(e,t,r){if(isURL(e)){return(0,i.treatUrl)(e,r?.group,r?.name,r?.branch)}else if(isURL(t)){const a=(0,i.treatUrl)(t,r?.group,r?.name,r?.branch);const n=a.lastIndexOf("/");return`${a.slice(0,n)}/${e}`}else{return c.default.join(c.default.dirname(t),e)}}function isURL(e){const t=/^https?:\/\//;return t.test(e)}function targetExpressionToTarget(e){for(const t of e){if(t.mapping?.dependant){executeTargetExpression(t.mapping.dependant)}if(t.mapping?.dependencies){executeTargetExpression(t.mapping.dependencies)}}}function executeTargetExpression(e){for(const[t,r]of Object.entries(e)){e[t]=r.map((e=>e.targetExpression?{source:e.source,target:(0,n.safeEval)(e.targetExpression,e)}:e))}}},698:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.ArchiveArtifactSchema=void 0;const a=r(4428);t.ArchiveArtifactSchema={type:"object",properties:{name:{type:"string",nullable:true},paths:{type:"array",items:{type:"object",properties:{path:{type:"string"},on:{type:"string",enum:["success","failure","always"]}},required:["on","path"]}},"if-no-files-found":{type:"string",enum:["warn","ignore","error"],default:"warn"},dependencies:{oneOf:[{type:"string",enum:["all","none"]},{type:"array",items:a.ProjectNameSchema}]}},required:["paths","if-no-files-found","dependencies"]}},6768:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.BuildSchema=t.BuildCommandSchema=void 0;const a=r(698);const n=r(4428);const i={type:"array",items:{type:"string"}};const s={type:"object",properties:{current:i,upstream:i,downstream:i},required:["current","upstream","downstream"],additionalProperties:false};t.BuildCommandSchema={type:"object",properties:{before:{...s,nullable:true},after:{...s,nullable:true},current:i,upstream:i,downstream:i},required:["current","upstream","downstream"],additionalProperties:false};t.BuildSchema={type:"object",properties:{project:n.ProjectNameSchema,"build-command":{...t.BuildCommandSchema,nullable:true},"archive-artifacts":{...a.ArchiveArtifactSchema,nullable:true},skip:{type:"boolean",nullable:true},clone:{type:"array",items:{type:"string"},nullable:true}},required:["project"],anyOf:[{required:["build-command"]},{required:["archive-artifacts"]},{required:["skip"]}]}},9579:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.DefintionFileSchema=void 0;const a=r(6768);const n=r(9040);const i=r(5163);t.DefintionFileSchema={type:"object",properties:{version:{type:["string","number"],enum:["2.1",2.1,"2.2",2.2,"2.3",2.3]},dependencies:{type:["string","array"],oneOf:[{type:"string"},n.DependenciesSchema],nullable:true},extends:{type:"string",nullable:true},default:{type:"object",properties:{"build-command":a.BuildCommandSchema},required:["build-command"],nullable:true,additionalProperties:false},build:{type:"array",items:a.BuildSchema,nullable:true},pre:{type:"array",items:{type:"string"},nullable:true},post:{type:"object",properties:{success:{type:"array",items:{type:"string"},nullable:true},always:{type:"array",items:{type:"string"},nullable:true},failure:{type:"array",items:{type:"string"},nullable:true}},nullable:true},platforms:{type:"array",items:i.PlatformSchema,nullable:true}},if:{properties:{version:{not:{enum:["2.3",2.3]}}}},then:{properties:{dependencies:{type:["string","array"],oneOf:[{type:"string"},n.DefinitionFileVersionToDependencySchema["2.2"]],nullable:true},platforms:false}},required:["version"],additionalProperties:false}},9040:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.DefinitionFileVersionToDependencySchema=t.DependenciesSchema=void 0;const a=r(5013);const n=r(4428);t.DependenciesSchema={type:"array",items:{type:"object",properties:{project:n.ProjectNameSchema,platform:{type:"string",nullable:true},dependencies:{type:"array",items:{type:"object",properties:{project:{type:"string"}},required:["project"],additionalProperties:false},nullable:true},mapping:{...a.MappingSchema,nullable:true}},required:["project"],additionalProperties:false}};t.DefinitionFileVersionToDependencySchema={2.3:t.DependenciesSchema,2.2:{...t.DependenciesSchema,items:{...t.DependenciesSchema.items,properties:{...t.DependenciesSchema.items.properties,platform:false}}}}},5013:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.MappingSchema=void 0;const a=r(4428);const n={type:"object",properties:{source:{type:"string"},target:{type:"string",nullable:true},targetExpression:{type:"string",nullable:true}},required:["source"],oneOf:[{required:["target"]},{required:["targetExpression"]}],additionalProperties:false};const i={type:"object",properties:{default:{type:"array",items:n}},patternProperties:{"^[^/]+/[^/]+$":{type:"array",items:n}},required:["default"],additionalProperties:false};t.MappingSchema={type:"object",properties:{dependencies:{...i,nullable:true},dependant:{...i,nullable:true},exclude:{type:"array",items:a.ProjectNameSchema}},required:["exclude"],anyOf:[{required:["dependencies"]},{required:["dependant"]}],additionalProperties:false}},5163:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.PlatformSchema=void 0;const a=r(5690);t.PlatformSchema={type:"object",properties:{name:{type:"string",nullable:true},id:{type:"string",not:{type:"string",enum:[a.DEFAULT_GITHUB_PLATFORM.id,a.DEFAULT_GITLAB_PLATFORM.id,a.DEFAULT_GERRIT_PLATFORM.id]}},serverUrl:{type:"string"},type:{type:"string",enum:[a.PlatformType.GITHUB,a.PlatformType.GITLAB,a.PlatformType.GERRIT]},apiUrl:{type:"string"},tokenId:{type:"string"}},required:["apiUrl","id","type","serverUrl","tokenId"],allOf:[{if:{properties:{type:{enum:[a.PlatformType.GITHUB]}}},then:{properties:{apiUrl:{default:a.DEFAULT_GITHUB_PLATFORM.apiUrl},serverUrl:{default:a.DEFAULT_GITHUB_PLATFORM.serverUrl},tokenId:{default:a.DEFAULT_GITHUB_PLATFORM.tokenId}}}},{if:{properties:{type:{enum:[a.PlatformType.GITLAB]}}},then:{properties:{apiUrl:{default:a.DEFAULT_GITLAB_PLATFORM.apiUrl},serverUrl:{default:a.DEFAULT_GITLAB_PLATFORM.serverUrl},tokenId:{default:a.DEFAULT_GITLAB_PLATFORM.tokenId}}}},{if:{properties:{type:{enum:[a.PlatformType.GERRIT]}}},then:{properties:{apiUrl:{default:a.DEFAULT_GERRIT_PLATFORM.apiUrl},serverUrl:{default:a.DEFAULT_GERRIT_PLATFORM.serverUrl},tokenId:{default:a.DEFAULT_GERRIT_PLATFORM.tokenId}}}}]}},4428:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.ProjectNameSchema=void 0;t.ProjectNameSchema={type:"string",pattern:"^[^/]+/[^/]+$"}},2253:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.getOrderedListForTree=t.getOrderedListForProject=t.parentChainFromNode=t.getTreeForProject=t.getTree=void 0;const a=r(5934);const n=r(8998);async function getTree(e,t){const r=await(0,a.readDefinitionFile)(e,t);return(0,n.constructTree)(r.dependencies,r.default?.["build-command"],r.build)}t.getTree=getTree;async function getTreeForProject(e,t,r){const a=await getTree(e,r);return lookForProject(a,t)}t.getTreeForProject=getTreeForProject;function parentChainFromNode(e){const t=e.parents.reduce(((e,t)=>{e.push(...parentChainFromNode(t).filter((t=>!e.find((e=>t.project===e.project)))));return e}),[]);t.push(e);return t}t.parentChainFromNode=parentChainFromNode;async function getOrderedListForProject(e,t,r){const a=await getTreeForProject(e,t,r);if(!a){throw new Error(`Project ${t} not found`)}return getOrderedList(a)}t.getOrderedListForProject=getOrderedListForProject;async function getOrderedListForTree(e,t){const r=await getTree(e,t);const a=[];flattenTreeTopToBottom(r,a);return a}t.getOrderedListForTree=getOrderedListForTree;function lookForProject(e,t){return e.find((e=>e.project===t))??e.map((e=>lookForProject(e.children,t))).find((e=>!!e))}function flattenTreeTopToBottom(e,t){if(e.length===0){return}const r=[];e.forEach((e=>{const a=e.parents.every((e=>t.find((t=>t.project===e.project))));if(!t.find((t=>t.project===e.project))&&a){t.push(e)}r.push(...e.children);if(!a){r.push(e)}}));flattenTreeTopToBottom(r,t)}async function getOrderedList(e){const t=getFinalLeavesFromTree([e]);return t.map((e=>parentChainFromNode(e))).sort(((e,t)=>t.length-e.length)).reduce(((e,t)=>{e.push(...t.filter((t=>!e.map((e=>e.project)).includes(t.project))));return e}),[])}function getFinalLeavesFromTree(e,t=[],r=[]){if(e&&e.length>0){const a=[...r];const n=e.filter((e=>!a.includes(e.project))).reduce(((e,t)=>{e.push(...t.children.filter((t=>!e.map((e=>e.project)).includes(t.project))));return e}),[]);r.push(...e.map((e=>e.project)));getFinalLeavesFromTree(n,t,r);t.push(...e.filter((e=>(!e.children||e.children.length===0)&&!t.map((e=>e.project)).includes(e.project))));return t}else{return[]}}},9360:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.constructGraph=void 0;function constructGraph(e){const t=e.reduce(((e,t)=>{initializeVertex(t,e);return e}),{});const r=e.reduce(((e,t)=>{t.dependencies?.forEach((r=>{if(!e[r.project]){throw new Error(`The project ${r.project} does not exist on project list. Please review your project definition file`)}e[t.project].outgoing.add(r.project);e[r.project].incoming.add(t.project)}));return e}),t);return r}t.constructGraph=constructGraph;function initializeVertex(e,t){if(!t[e.project]){t[e.project]={incoming:new Set,outgoing:new Set,dependency:e,depth:-1}}}},7727:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.constructNode=void 0;function constructNode(e,t,r,a=0){const n=findBuildConfigForProject(e.project,r);const i=n?.clone;const s=!n?.skip?getBuildCommand(e.project,t,r):undefined;return{project:e.project,parents:[],children:[],archiveArtifacts:getArchiveArtifacts(e.project,r),mapping:e.mapping,before:s?.before,after:s?.after,depth:a,commands:{upstream:s?.upstream??[],downstream:s?.downstream??[],current:s?.current??[]},...i?{clone:i}:{},platformId:e.platform}}t.constructNode=constructNode;function getArchiveArtifacts(e,t){return t?.find((t=>t.project===e))?.["archive-artifacts"]}function getBuildCommand(e,t,r){const a=findBuildConfigForProject(e,r);const n=a?.["build-command"];if(!n){return t}return{...n,after:n?.after?getDefaultCommandLevel(n.after,t?.after):t?.after,before:n?.before?getDefaultCommandLevel(n.before,t?.before):t?.before,...getDefaultCommandLevel({current:n.current,upstream:n.upstream,downstream:n.downstream},t)}}function getDefaultCommandLevel(e,t){if(!t){return e}const r={...e};Object.entries(e).forEach((([e,a])=>{if(a.length===0){r[e]=t[e]??a}}));return r}function findBuildConfigForProject(e,t){return t?.find((t=>t.project===e))}},8998:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.constructTree=void 0;const a=r(7727);function constructTree(e,t,r){const n=e.reduce(((e,n)=>{const i=(0,a.constructNode)(n,t,r);if(i){e[n.project]=i}return e}),{});return e.reduce(((t,r)=>{if(isRoot(r)&&n[r.project]){t.push(n[r.project])}else{const t=r.dependencies?.map((e=>e.project))??[];t.forEach((a=>{if(!n[a]){throw new Error(`The project ${a} does not exist on project list. Please review your project definition file`)}if(n[r.project]&&!reachableThroughOtherParents(e,t,a)){n[a].children.push(n[r.project]);n[r.project].parents.push(n[a])}}))}return t}),[])}t.constructTree=constructTree;function isRoot(e){return!e.dependencies||e.dependencies.length===0}function reachableThroughOtherParents(e,t,r){for(const a of t){const t=e.find((e=>e.project===a))?.dependencies?.map((e=>e.project));if(t?.includes(r)||reachableThroughOtherParents(e,t??[],r)){return true}}return false}},9596:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.getMapping=t.getMappedTarget=void 0;function getMappedTarget(e,t,r,a,n){return getMapping(e,t,r,a,n)?.target??n}t.getMappedTarget=getMappedTarget;function getMapping(e,t,r,a,n){if(e===r){return}return getSourceToTargetFromProjectOrDefault(n,r,t?.exclude??[],t?.dependencies)||getSourceToTargetFromProjectOrDefault(n,e,a?.exclude??[],a?.dependant)}t.getMapping=getMapping;function getSourceToTargetFromProjectOrDefault(e,t,r,a){if(!r.includes(t)&&a){return findSourceToTarget(e,a[t])??findSourceToTarget(e,a.default)}}function findSourceToTarget(e,t){return t?.find((t=>t.source===e))??t?.find((t=>!!e.match(new RegExp(`^${t.source}$`))))}},4619:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.safeEval=void 0;function safeEval(e,t){try{return Function("args",`"use strict";return (${e})`)(t)}catch(e){return undefined}}t.safeEval=safeEval},3919:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.treatUrl=void 0;const a=r(4619);function treatUrl(e,t,r,a){return replacePlaceholders(replaceExpressions(e),t,r,a)}t.treatUrl=treatUrl;function replacePlaceholders(e,t,r,a){let n=e;const i=/\${([^{}:]+)(:([^{}]*))?}/g;const s=[...e.matchAll(i)];s.forEach((e=>{const i=e[1];let s=process.env[i]??e[3]??"";if(i==="GROUP"&&t){s=t}else if(i==="PROJECT_NAME"&&r){s=r}else if(i==="BRANCH"&&a){s=a}n=n.replace(new RegExp(`\\$\\{${i}(:([^{}]*))?}`,"gi"),s)}));return n}function replaceExpressions(e){let t=e;const r=/%{([^%]+)}/g;const n=[...e.matchAll(r)];n.forEach((e=>{t=t.replace(`%{${e[1]}}`,(0,a.safeEval)(e[1]))}));return t}},5265:function(e,t,r){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.validateDefinitionFile=void 0;const n=r(4083);const i=a(r(5439));const s=r(9579);async function validateDefinitionFile(e){const t=(0,n.parse)(e,reviver);const r=new i.default({useDefaults:"empty",allowUnionTypes:true});const a=r.compile(s.DefintionFileSchema);const o=a(t);if(o){return t}else{throw new Error(JSON.stringify(a.errors))}}t.validateDefinitionFile=validateDefinitionFile;function reviver(e,t){return convertToArray(e,t)||parseMapping(e,t)||parseBuild(e,t)||parseArchiveArtifacts(e,t)||t}function convertToArray(e,t){if(["path","current","upstream","downstream","clone","pre","success","failure","always"].includes(e)&&typeof t==="string"){return t.trim().split("\n")}}function initializeUndefined(e,t,r){if(!t[e]){t[e]=r}return t}function parseMapping(e,t){if(e==="mapping"){const e=t;initializeUndefined("exclude",e,[]);if(e["dependencies"]){initializeUndefined("default",e["dependencies"],[])}if(e["dependant"]){initializeUndefined("default",e["dependant"],[])}return e}}function parseBuild(e,t){if(["before","after","build-command"].includes(e)){const e=t;["upstream","downstream","current"].forEach((t=>{initializeUndefined(t,e,[])}));return e}}function parseArchiveArtifacts(e,t){if(e==="archive-artifacts"){const e=t;initializeUndefined("dependencies",e,"none");if(e["path"]&&Array.isArray(e["path"])){e["paths"]=transformPath(e.path);delete e["path"]}return e}}function transformPath(e){return e.map((e=>{if(typeof e==="string"){const t=e.lastIndexOf("@");return{path:t===-1?e:e.slice(0,t),on:t===-1?"success":e.slice(t+1)}}}))}},5439:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.MissingRefError=t.ValidationError=t.CodeGen=t.Name=t.nil=t.stringify=t.str=t._=t.KeywordCxt=void 0;const a=r(2396);const n=r(5826);const i=r(6658);const s=r(3712);const o=["/properties"];const p="http://json-schema.org/draft-07/schema";class Ajv extends a.default{_addVocabularies(){super._addVocabularies();n.default.forEach((e=>this.addVocabulary(e)));if(this.opts.discriminator)this.addKeyword(i.default)}_addDefaultMetaSchema(){super._addDefaultMetaSchema();if(!this.opts.meta)return;const e=this.opts.$data?this.$dataMetaSchema(s,o):s;this.addMetaSchema(e,p,false);this.refs["http://json-schema.org/schema"]=p}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(p)?p:undefined)}}e.exports=t=Ajv;Object.defineProperty(t,"__esModule",{value:true});t["default"]=Ajv;var c=r(4988);Object.defineProperty(t,"KeywordCxt",{enumerable:true,get:function(){return c.KeywordCxt}});var l=r(6035);Object.defineProperty(t,"_",{enumerable:true,get:function(){return l._}});Object.defineProperty(t,"str",{enumerable:true,get:function(){return l.str}});Object.defineProperty(t,"stringify",{enumerable:true,get:function(){return l.stringify}});Object.defineProperty(t,"nil",{enumerable:true,get:function(){return l.nil}});Object.defineProperty(t,"Name",{enumerable:true,get:function(){return l.Name}});Object.defineProperty(t,"CodeGen",{enumerable:true,get:function(){return l.CodeGen}});var d=r(3111);Object.defineProperty(t,"ValidationError",{enumerable:true,get:function(){return d.default}});var u=r(2146);Object.defineProperty(t,"MissingRefError",{enumerable:true,get:function(){return u.default}})},6370:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.regexpCode=t.getEsmExportName=t.getProperty=t.safeStringify=t.stringify=t.strConcat=t.addCodeArg=t.str=t._=t.nil=t._Code=t.Name=t.IDENTIFIER=t._CodeOrName=void 0;class _CodeOrName{}t._CodeOrName=_CodeOrName;t.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;class Name extends _CodeOrName{constructor(e){super();if(!t.IDENTIFIER.test(e))throw new Error("CodeGen: name must be a valid identifier");this.str=e}toString(){return this.str}emptyStr(){return false}get names(){return{[this.str]:1}}}t.Name=Name;class _Code extends _CodeOrName{constructor(e){super();this._items=typeof e==="string"?[e]:e}toString(){return this.str}emptyStr(){if(this._items.length>1)return false;const e=this._items[0];return e===""||e==='""'}get str(){var e;return(e=this._str)!==null&&e!==void 0?e:this._str=this._items.reduce(((e,t)=>`${e}${t}`),"")}get names(){var e;return(e=this._names)!==null&&e!==void 0?e:this._names=this._items.reduce(((e,t)=>{if(t instanceof Name)e[t.str]=(e[t.str]||0)+1;return e}),{})}}t._Code=_Code;t.nil=new _Code("");function _(e,...t){const r=[e[0]];let a=0;while(a{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.or=t.and=t.not=t.CodeGen=t.operators=t.varKinds=t.ValueScopeName=t.ValueScope=t.Scope=t.Name=t.regexpCode=t.stringify=t.getProperty=t.nil=t.strConcat=t.str=t._=void 0;const a=r(6370);const n=r(3149);var i=r(6370);Object.defineProperty(t,"_",{enumerable:true,get:function(){return i._}});Object.defineProperty(t,"str",{enumerable:true,get:function(){return i.str}});Object.defineProperty(t,"strConcat",{enumerable:true,get:function(){return i.strConcat}});Object.defineProperty(t,"nil",{enumerable:true,get:function(){return i.nil}});Object.defineProperty(t,"getProperty",{enumerable:true,get:function(){return i.getProperty}});Object.defineProperty(t,"stringify",{enumerable:true,get:function(){return i.stringify}});Object.defineProperty(t,"regexpCode",{enumerable:true,get:function(){return i.regexpCode}});Object.defineProperty(t,"Name",{enumerable:true,get:function(){return i.Name}});var s=r(3149);Object.defineProperty(t,"Scope",{enumerable:true,get:function(){return s.Scope}});Object.defineProperty(t,"ValueScope",{enumerable:true,get:function(){return s.ValueScope}});Object.defineProperty(t,"ValueScopeName",{enumerable:true,get:function(){return s.ValueScopeName}});Object.defineProperty(t,"varKinds",{enumerable:true,get:function(){return s.varKinds}});t.operators={GT:new a._Code(">"),GTE:new a._Code(">="),LT:new a._Code("<"),LTE:new a._Code("<="),EQ:new a._Code("==="),NEQ:new a._Code("!=="),NOT:new a._Code("!"),OR:new a._Code("||"),AND:new a._Code("&&"),ADD:new a._Code("+")};class Node{optimizeNodes(){return this}optimizeNames(e,t){return this}}class Def extends Node{constructor(e,t,r){super();this.varKind=e;this.name=t;this.rhs=r}render({es5:e,_n:t}){const r=e?n.varKinds.var:this.varKind;const a=this.rhs===undefined?"":` = ${this.rhs}`;return`${r} ${this.name}${a};`+t}optimizeNames(e,t){if(!e[this.name.str])return;if(this.rhs)this.rhs=optimizeExpr(this.rhs,e,t);return this}get names(){return this.rhs instanceof a._CodeOrName?this.rhs.names:{}}}class Assign extends Node{constructor(e,t,r){super();this.lhs=e;this.rhs=t;this.sideEffects=r}render({_n:e}){return`${this.lhs} = ${this.rhs};`+e}optimizeNames(e,t){if(this.lhs instanceof a.Name&&!e[this.lhs.str]&&!this.sideEffects)return;this.rhs=optimizeExpr(this.rhs,e,t);return this}get names(){const e=this.lhs instanceof a.Name?{}:{...this.lhs.names};return addExprNames(e,this.rhs)}}class AssignOp extends Assign{constructor(e,t,r,a){super(e,r,a);this.op=t}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}}class Label extends Node{constructor(e){super();this.label=e;this.names={}}render({_n:e}){return`${this.label}:`+e}}class Break extends Node{constructor(e){super();this.label=e;this.names={}}render({_n:e}){const t=this.label?` ${this.label}`:"";return`break${t};`+e}}class Throw extends Node{constructor(e){super();this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}}class AnyCode extends Node{constructor(e){super();this.code=e}render({_n:e}){return`${this.code};`+e}optimizeNodes(){return`${this.code}`?this:undefined}optimizeNames(e,t){this.code=optimizeExpr(this.code,e,t);return this}get names(){return this.code instanceof a._CodeOrName?this.code.names:{}}}class ParentNode extends Node{constructor(e=[]){super();this.nodes=e}render(e){return this.nodes.reduce(((t,r)=>t+r.render(e)),"")}optimizeNodes(){const{nodes:e}=this;let t=e.length;while(t--){const r=e[t].optimizeNodes();if(Array.isArray(r))e.splice(t,1,...r);else if(r)e[t]=r;else e.splice(t,1)}return e.length>0?this:undefined}optimizeNames(e,t){const{nodes:r}=this;let a=r.length;while(a--){const n=r[a];if(n.optimizeNames(e,t))continue;subtractNames(e,n.names);r.splice(a,1)}return r.length>0?this:undefined}get names(){return this.nodes.reduce(((e,t)=>addNames(e,t.names)),{})}}class BlockNode extends ParentNode{render(e){return"{"+e._n+super.render(e)+"}"+e._n}}class Root extends ParentNode{}class Else extends BlockNode{}Else.kind="else";class If extends BlockNode{constructor(e,t){super(t);this.condition=e}render(e){let t=`if(${this.condition})`+super.render(e);if(this.else)t+="else "+this.else.render(e);return t}optimizeNodes(){super.optimizeNodes();const e=this.condition;if(e===true)return this.nodes;let t=this.else;if(t){const e=t.optimizeNodes();t=this.else=Array.isArray(e)?new Else(e):e}if(t){if(e===false)return t instanceof If?t:t.nodes;if(this.nodes.length)return this;return new If(not(e),t instanceof If?[t]:t.nodes)}if(e===false||!this.nodes.length)return undefined;return this}optimizeNames(e,t){var r;this.else=(r=this.else)===null||r===void 0?void 0:r.optimizeNames(e,t);if(!(super.optimizeNames(e,t)||this.else))return;this.condition=optimizeExpr(this.condition,e,t);return this}get names(){const e=super.names;addExprNames(e,this.condition);if(this.else)addNames(e,this.else.names);return e}}If.kind="if";class For extends BlockNode{}For.kind="for";class ForLoop extends For{constructor(e){super();this.iteration=e}render(e){return`for(${this.iteration})`+super.render(e)}optimizeNames(e,t){if(!super.optimizeNames(e,t))return;this.iteration=optimizeExpr(this.iteration,e,t);return this}get names(){return addNames(super.names,this.iteration.names)}}class ForRange extends For{constructor(e,t,r,a){super();this.varKind=e;this.name=t;this.from=r;this.to=a}render(e){const t=e.es5?n.varKinds.var:this.varKind;const{name:r,from:a,to:i}=this;return`for(${t} ${r}=${a}; ${r}<${i}; ${r}++)`+super.render(e)}get names(){const e=addExprNames(super.names,this.from);return addExprNames(e,this.to)}}class ForIter extends For{constructor(e,t,r,a){super();this.loop=e;this.varKind=t;this.name=r;this.iterable=a}render(e){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(e)}optimizeNames(e,t){if(!super.optimizeNames(e,t))return;this.iterable=optimizeExpr(this.iterable,e,t);return this}get names(){return addNames(super.names,this.iterable.names)}}class Func extends BlockNode{constructor(e,t,r){super();this.name=e;this.args=t;this.async=r}render(e){const t=this.async?"async ":"";return`${t}function ${this.name}(${this.args})`+super.render(e)}}Func.kind="func";class Return extends ParentNode{render(e){return"return "+super.render(e)}}Return.kind="return";class Try extends BlockNode{render(e){let t="try"+super.render(e);if(this.catch)t+=this.catch.render(e);if(this.finally)t+=this.finally.render(e);return t}optimizeNodes(){var e,t;super.optimizeNodes();(e=this.catch)===null||e===void 0?void 0:e.optimizeNodes();(t=this.finally)===null||t===void 0?void 0:t.optimizeNodes();return this}optimizeNames(e,t){var r,a;super.optimizeNames(e,t);(r=this.catch)===null||r===void 0?void 0:r.optimizeNames(e,t);(a=this.finally)===null||a===void 0?void 0:a.optimizeNames(e,t);return this}get names(){const e=super.names;if(this.catch)addNames(e,this.catch.names);if(this.finally)addNames(e,this.finally.names);return e}}class Catch extends BlockNode{constructor(e){super();this.error=e}render(e){return`catch(${this.error})`+super.render(e)}}Catch.kind="catch";class Finally extends BlockNode{render(e){return"finally"+super.render(e)}}Finally.kind="finally";class CodeGen{constructor(e,t={}){this._values={};this._blockStarts=[];this._constants={};this.opts={...t,_n:t.lines?"\n":""};this._extScope=e;this._scope=new n.Scope({parent:e});this._nodes=[new Root]}toString(){return this._root.render(this.opts)}name(e){return this._scope.name(e)}scopeName(e){return this._extScope.name(e)}scopeValue(e,t){const r=this._extScope.value(e,t);const a=this._values[r.prefix]||(this._values[r.prefix]=new Set);a.add(r);return r}getScopeValue(e,t){return this._extScope.getValue(e,t)}scopeRefs(e){return this._extScope.scopeRefs(e,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(e,t,r,a){const n=this._scope.toName(t);if(r!==undefined&&a)this._constants[n.str]=r;this._leafNode(new Def(e,n,r));return n}const(e,t,r){return this._def(n.varKinds.const,e,t,r)}let(e,t,r){return this._def(n.varKinds.let,e,t,r)}var(e,t,r){return this._def(n.varKinds.var,e,t,r)}assign(e,t,r){return this._leafNode(new Assign(e,t,r))}add(e,r){return this._leafNode(new AssignOp(e,t.operators.ADD,r))}code(e){if(typeof e=="function")e();else if(e!==a.nil)this._leafNode(new AnyCode(e));return this}object(...e){const t=["{"];for(const[r,n]of e){if(t.length>1)t.push(",");t.push(r);if(r!==n||this.opts.es5){t.push(":");(0,a.addCodeArg)(t,n)}}t.push("}");return new a._Code(t)}if(e,t,r){this._blockNode(new If(e));if(t&&r){this.code(t).else().code(r).endIf()}else if(t){this.code(t).endIf()}else if(r){throw new Error('CodeGen: "else" body without "then" body')}return this}elseIf(e){return this._elseNode(new If(e))}else(){return this._elseNode(new Else)}endIf(){return this._endBlockNode(If,Else)}_for(e,t){this._blockNode(e);if(t)this.code(t).endFor();return this}for(e,t){return this._for(new ForLoop(e),t)}forRange(e,t,r,a,i=(this.opts.es5?n.varKinds.var:n.varKinds.let)){const s=this._scope.toName(e);return this._for(new ForRange(i,s,t,r),(()=>a(s)))}forOf(e,t,r,i=n.varKinds.const){const s=this._scope.toName(e);if(this.opts.es5){const e=t instanceof a.Name?t:this.var("_arr",t);return this.forRange("_i",0,(0,a._)`${e}.length`,(t=>{this.var(s,(0,a._)`${e}[${t}]`);r(s)}))}return this._for(new ForIter("of",i,s,t),(()=>r(s)))}forIn(e,t,r,i=(this.opts.es5?n.varKinds.var:n.varKinds.const)){if(this.opts.ownProperties){return this.forOf(e,(0,a._)`Object.keys(${t})`,r)}const s=this._scope.toName(e);return this._for(new ForIter("in",i,s,t),(()=>r(s)))}endFor(){return this._endBlockNode(For)}label(e){return this._leafNode(new Label(e))}break(e){return this._leafNode(new Break(e))}return(e){const t=new Return;this._blockNode(t);this.code(e);if(t.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(Return)}try(e,t,r){if(!t&&!r)throw new Error('CodeGen: "try" without "catch" and "finally"');const a=new Try;this._blockNode(a);this.code(e);if(t){const e=this.name("e");this._currNode=a.catch=new Catch(e);t(e)}if(r){this._currNode=a.finally=new Finally;this.code(r)}return this._endBlockNode(Catch,Finally)}throw(e){return this._leafNode(new Throw(e))}block(e,t){this._blockStarts.push(this._nodes.length);if(e)this.code(e).endBlock(t);return this}endBlock(e){const t=this._blockStarts.pop();if(t===undefined)throw new Error("CodeGen: not in self-balancing block");const r=this._nodes.length-t;if(r<0||e!==undefined&&r!==e){throw new Error(`CodeGen: wrong number of nodes: ${r} vs ${e} expected`)}this._nodes.length=t;return this}func(e,t=a.nil,r,n){this._blockNode(new Func(e,t,r));if(n)this.code(n).endFunc();return this}endFunc(){return this._endBlockNode(Func)}optimize(e=1){while(e-- >0){this._root.optimizeNodes();this._root.optimizeNames(this._root.names,this._constants)}}_leafNode(e){this._currNode.nodes.push(e);return this}_blockNode(e){this._currNode.nodes.push(e);this._nodes.push(e)}_endBlockNode(e,t){const r=this._currNode;if(r instanceof e||t&&r instanceof t){this._nodes.pop();return this}throw new Error(`CodeGen: not in block "${t?`${e.kind}/${t.kind}`:e.kind}"`)}_elseNode(e){const t=this._currNode;if(!(t instanceof If)){throw new Error('CodeGen: "else" without "if"')}this._currNode=t.else=e;return this}get _root(){return this._nodes[0]}get _currNode(){const e=this._nodes;return e[e.length-1]}set _currNode(e){const t=this._nodes;t[t.length-1]=e}}t.CodeGen=CodeGen;function addNames(e,t){for(const r in t)e[r]=(e[r]||0)+(t[r]||0);return e}function addExprNames(e,t){return t instanceof a._CodeOrName?addNames(e,t.names):e}function optimizeExpr(e,t,r){if(e instanceof a.Name)return replaceName(e);if(!canOptimize(e))return e;return new a._Code(e._items.reduce(((e,t)=>{if(t instanceof a.Name)t=replaceName(t);if(t instanceof a._Code)e.push(...t._items);else e.push(t);return e}),[]));function replaceName(e){const a=r[e.str];if(a===undefined||t[e.str]!==1)return e;delete t[e.str];return a}function canOptimize(e){return e instanceof a._Code&&e._items.some((e=>e instanceof a.Name&&t[e.str]===1&&r[e.str]!==undefined))}}function subtractNames(e,t){for(const r in t)e[r]=(e[r]||0)-(t[r]||0)}function not(e){return typeof e=="boolean"||typeof e=="number"||e===null?!e:(0,a._)`!${par(e)}`}t.not=not;const o=mappend(t.operators.AND);function and(...e){return e.reduce(o)}t.and=and;const p=mappend(t.operators.OR);function or(...e){return e.reduce(p)}t.or=or;function mappend(e){return(t,r)=>t===a.nil?r:r===a.nil?t:(0,a._)`${par(t)} ${e} ${par(r)}`}function par(e){return e instanceof a.Name?e:(0,a._)`(${e})`}},3149:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.ValueScope=t.ValueScopeName=t.Scope=t.varKinds=t.UsedValueState=void 0;const a=r(6370);class ValueError extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`);this.value=e.value}}var n;(function(e){e[e["Started"]=0]="Started";e[e["Completed"]=1]="Completed"})(n=t.UsedValueState||(t.UsedValueState={}));t.varKinds={const:new a.Name("const"),let:new a.Name("let"),var:new a.Name("var")};class Scope{constructor({prefixes:e,parent:t}={}){this._names={};this._prefixes=e;this._parent=t}toName(e){return e instanceof a.Name?e:this.name(e)}name(e){return new a.Name(this._newName(e))}_newName(e){const t=this._names[e]||this._nameGroup(e);return`${e}${t.index++}`}_nameGroup(e){var t,r;if(((r=(t=this._parent)===null||t===void 0?void 0:t._prefixes)===null||r===void 0?void 0:r.has(e))||this._prefixes&&!this._prefixes.has(e)){throw new Error(`CodeGen: prefix "${e}" is not allowed in this scope`)}return this._names[e]={prefix:e,index:0}}}t.Scope=Scope;class ValueScopeName extends a.Name{constructor(e,t){super(t);this.prefix=e}setValue(e,{property:t,itemIndex:r}){this.value=e;this.scopePath=(0,a._)`.${new a.Name(t)}[${r}]`}}t.ValueScopeName=ValueScopeName;const i=(0,a._)`\n`;class ValueScope extends Scope{constructor(e){super(e);this._values={};this._scope=e.scope;this.opts={...e,_n:e.lines?i:a.nil}}get(){return this._scope}name(e){return new ValueScopeName(e,this._newName(e))}value(e,t){var r;if(t.ref===undefined)throw new Error("CodeGen: ref must be passed in value");const a=this.toName(e);const{prefix:n}=a;const i=(r=t.key)!==null&&r!==void 0?r:t.ref;let s=this._values[n];if(s){const e=s.get(i);if(e)return e}else{s=this._values[n]=new Map}s.set(i,a);const o=this._scope[n]||(this._scope[n]=[]);const p=o.length;o[p]=t.ref;a.setValue(t,{property:n,itemIndex:p});return a}getValue(e,t){const r=this._values[e];if(!r)return;return r.get(t)}scopeRefs(e,t=this._values){return this._reduceValues(t,(t=>{if(t.scopePath===undefined)throw new Error(`CodeGen: name "${t}" has no value`);return(0,a._)`${e}${t.scopePath}`}))}scopeCode(e=this._values,t,r){return this._reduceValues(e,(e=>{if(e.value===undefined)throw new Error(`CodeGen: name "${e}" has no value`);return e.value.code}),t,r)}_reduceValues(e,r,i={},s){let o=a.nil;for(const p in e){const c=e[p];if(!c)continue;const l=i[p]=i[p]||new Map;c.forEach((e=>{if(l.has(e))return;l.set(e,n.Started);let i=r(e);if(i){const r=this.opts.es5?t.varKinds.var:t.varKinds.const;o=(0,a._)`${o}${r} ${e} = ${i};${this.opts._n}`}else if(i=s===null||s===void 0?void 0:s(e)){o=(0,a._)`${o}${i}${this.opts._n}`}else{throw new ValueError(e)}l.set(e,n.Completed)}))}return o}}t.ValueScope=ValueScope},7722:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.extendErrors=t.resetErrorsCount=t.reportExtraError=t.reportError=t.keyword$DataError=t.keywordError=void 0;const a=r(6035);const n=r(407);const i=r(5302);t.keywordError={message:({keyword:e})=>(0,a.str)`must pass "${e}" keyword validation`};t.keyword$DataError={message:({keyword:e,schemaType:t})=>t?(0,a.str)`"${e}" keyword must be ${t} ($data)`:(0,a.str)`"${e}" keyword is invalid ($data)`};function reportError(e,r=t.keywordError,n,i){const{it:s}=e;const{gen:o,compositeRule:p,allErrors:c}=s;const l=errorObjectCode(e,r,n);if(i!==null&&i!==void 0?i:p||c){addError(o,l)}else{returnErrors(s,(0,a._)`[${l}]`)}}t.reportError=reportError;function reportExtraError(e,r=t.keywordError,a){const{it:n}=e;const{gen:s,compositeRule:o,allErrors:p}=n;const c=errorObjectCode(e,r,a);addError(s,c);if(!(o||p)){returnErrors(n,i.default.vErrors)}}t.reportExtraError=reportExtraError;function resetErrorsCount(e,t){e.assign(i.default.errors,t);e.if((0,a._)`${i.default.vErrors} !== null`,(()=>e.if(t,(()=>e.assign((0,a._)`${i.default.vErrors}.length`,t)),(()=>e.assign(i.default.vErrors,null)))))}t.resetErrorsCount=resetErrorsCount;function extendErrors({gen:e,keyword:t,schemaValue:r,data:n,errsCount:s,it:o}){if(s===undefined)throw new Error("ajv implementation error");const p=e.name("err");e.forRange("i",s,i.default.errors,(s=>{e.const(p,(0,a._)`${i.default.vErrors}[${s}]`);e.if((0,a._)`${p}.instancePath === undefined`,(()=>e.assign((0,a._)`${p}.instancePath`,(0,a.strConcat)(i.default.instancePath,o.errorPath))));e.assign((0,a._)`${p}.schemaPath`,(0,a.str)`${o.errSchemaPath}/${t}`);if(o.opts.verbose){e.assign((0,a._)`${p}.schema`,r);e.assign((0,a._)`${p}.data`,n)}}))}t.extendErrors=extendErrors;function addError(e,t){const r=e.const("err",t);e.if((0,a._)`${i.default.vErrors} === null`,(()=>e.assign(i.default.vErrors,(0,a._)`[${r}]`)),(0,a._)`${i.default.vErrors}.push(${r})`);e.code((0,a._)`${i.default.errors}++`)}function returnErrors(e,t){const{gen:r,validateName:n,schemaEnv:i}=e;if(i.$async){r.throw((0,a._)`new ${e.ValidationError}(${t})`)}else{r.assign((0,a._)`${n}.errors`,t);r.return(false)}}const s={keyword:new a.Name("keyword"),schemaPath:new a.Name("schemaPath"),params:new a.Name("params"),propertyName:new a.Name("propertyName"),message:new a.Name("message"),schema:new a.Name("schema"),parentSchema:new a.Name("parentSchema")};function errorObjectCode(e,t,r){const{createErrors:n}=e.it;if(n===false)return(0,a._)`{}`;return errorObject(e,t,r)}function errorObject(e,t,r={}){const{gen:a,it:n}=e;const i=[errorInstancePath(n,r),errorSchemaPath(e,r)];extraErrorProps(e,t,i);return a.object(...i)}function errorInstancePath({errorPath:e},{instancePath:t}){const r=t?(0,a.str)`${e}${(0,n.getErrorPath)(t,n.Type.Str)}`:e;return[i.default.instancePath,(0,a.strConcat)(i.default.instancePath,r)]}function errorSchemaPath({keyword:e,it:{errSchemaPath:t}},{schemaPath:r,parentSchema:i}){let o=i?t:(0,a.str)`${t}/${e}`;if(r){o=(0,a.str)`${o}${(0,n.getErrorPath)(r,n.Type.Str)}`}return[s.schemaPath,o]}function extraErrorProps(e,{params:t,message:r},n){const{keyword:o,data:p,schemaValue:c,it:l}=e;const{opts:d,propertyName:u,topSchemaRef:m,schemaPath:h}=l;n.push([s.keyword,o],[s.params,typeof t=="function"?t(e):t||(0,a._)`{}`]);if(d.messages){n.push([s.message,typeof r=="function"?r(e):r])}if(d.verbose){n.push([s.schema,c],[s.parentSchema,(0,a._)`${m}${h}`],[i.default.data,p])}if(u)n.push([s.propertyName,u])}},9230:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.resolveSchema=t.getCompilingSchema=t.resolveRef=t.compileSchema=t.SchemaEnv=void 0;const a=r(6035);const n=r(3111);const i=r(5302);const s=r(985);const o=r(407);const p=r(4988);class SchemaEnv{constructor(e){var t;this.refs={};this.dynamicAnchors={};let r;if(typeof e.schema=="object")r=e.schema;this.schema=e.schema;this.schemaId=e.schemaId;this.root=e.root||this;this.baseId=(t=e.baseId)!==null&&t!==void 0?t:(0,s.normalizeId)(r===null||r===void 0?void 0:r[e.schemaId||"$id"]);this.schemaPath=e.schemaPath;this.localRefs=e.localRefs;this.meta=e.meta;this.$async=r===null||r===void 0?void 0:r.$async;this.refs={}}}t.SchemaEnv=SchemaEnv;function compileSchema(e){const t=getCompilingSchema.call(this,e);if(t)return t;const r=(0,s.getFullPath)(this.opts.uriResolver,e.root.baseId);const{es5:o,lines:c}=this.opts.code;const{ownProperties:l}=this.opts;const d=new a.CodeGen(this.scope,{es5:o,lines:c,ownProperties:l});let u;if(e.$async){u=d.scopeValue("Error",{ref:n.default,code:(0,a._)`require("ajv/dist/runtime/validation_error").default`})}const m=d.scopeName("validate");e.validateName=m;const h={gen:d,allErrors:this.opts.allErrors,data:i.default.data,parentData:i.default.parentData,parentDataProperty:i.default.parentDataProperty,dataNames:[i.default.data],dataPathArr:[a.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:d.scopeValue("schema",this.opts.code.source===true?{ref:e.schema,code:(0,a.stringify)(e.schema)}:{ref:e.schema}),validateName:m,ValidationError:u,schema:e.schema,schemaEnv:e,rootId:r,baseId:e.baseId||r,schemaPath:a.nil,errSchemaPath:e.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,a._)`""`,opts:this.opts,self:this};let g;try{this._compilations.add(e);(0,p.validateFunctionCode)(h);d.optimize(this.opts.code.optimize);const t=d.toString();g=`${d.scopeRefs(i.default.scope)}return ${t}`;if(this.opts.code.process)g=this.opts.code.process(g,e);const r=new Function(`${i.default.self}`,`${i.default.scope}`,g);const n=r(this,this.scope.get());this.scope.value(m,{ref:n});n.errors=null;n.schema=e.schema;n.schemaEnv=e;if(e.$async)n.$async=true;if(this.opts.code.source===true){n.source={validateName:m,validateCode:t,scopeValues:d._values}}if(this.opts.unevaluated){const{props:e,items:t}=h;n.evaluated={props:e instanceof a.Name?undefined:e,items:t instanceof a.Name?undefined:t,dynamicProps:e instanceof a.Name,dynamicItems:t instanceof a.Name};if(n.source)n.source.evaluated=(0,a.stringify)(n.evaluated)}e.validate=n;return e}catch(t){delete e.validate;delete e.validateName;if(g)this.logger.error("Error compiling schema, function code:",g);throw t}finally{this._compilations.delete(e)}}t.compileSchema=compileSchema;function resolveRef(e,t,r){var a;r=(0,s.resolveUrl)(this.opts.uriResolver,t,r);const n=e.refs[r];if(n)return n;let i=resolve.call(this,e,r);if(i===undefined){const n=(a=e.localRefs)===null||a===void 0?void 0:a[r];const{schemaId:s}=this.opts;if(n)i=new SchemaEnv({schema:n,schemaId:s,root:e,baseId:t})}if(i===undefined)return;return e.refs[r]=inlineOrCompile.call(this,i)}t.resolveRef=resolveRef;function inlineOrCompile(e){if((0,s.inlineRef)(e.schema,this.opts.inlineRefs))return e.schema;return e.validate?e:compileSchema.call(this,e)}function getCompilingSchema(e){for(const t of this._compilations){if(sameSchemaEnv(t,e))return t}}t.getCompilingSchema=getCompilingSchema;function sameSchemaEnv(e,t){return e.schema===t.schema&&e.root===t.root&&e.baseId===t.baseId}function resolve(e,t){let r;while(typeof(r=this.refs[t])=="string")t=r;return r||this.schemas[t]||resolveSchema.call(this,e,t)}function resolveSchema(e,t){const r=this.opts.uriResolver.parse(t);const a=(0,s._getFullPath)(this.opts.uriResolver,r);let n=(0,s.getFullPath)(this.opts.uriResolver,e.baseId,undefined);if(Object.keys(e.schema).length>0&&a===n){return getJsonPointer.call(this,r,e)}const i=(0,s.normalizeId)(a);const o=this.refs[i]||this.schemas[i];if(typeof o=="string"){const t=resolveSchema.call(this,e,o);if(typeof(t===null||t===void 0?void 0:t.schema)!=="object")return;return getJsonPointer.call(this,r,t)}if(typeof(o===null||o===void 0?void 0:o.schema)!=="object")return;if(!o.validate)compileSchema.call(this,o);if(i===(0,s.normalizeId)(t)){const{schema:t}=o;const{schemaId:r}=this.opts;const a=t[r];if(a)n=(0,s.resolveUrl)(this.opts.uriResolver,n,a);return new SchemaEnv({schema:t,schemaId:r,root:e,baseId:n})}return getJsonPointer.call(this,r,o)}t.resolveSchema=resolveSchema;const c=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function getJsonPointer(e,{baseId:t,schema:r,root:a}){var n;if(((n=e.fragment)===null||n===void 0?void 0:n[0])!=="/")return;for(const a of e.fragment.slice(1).split("/")){if(typeof r==="boolean")return;const e=r[(0,o.unescapeFragment)(a)];if(e===undefined)return;r=e;const n=typeof r==="object"&&r[this.opts.schemaId];if(!c.has(a)&&n){t=(0,s.resolveUrl)(this.opts.uriResolver,t,n)}}let i;if(typeof r!="boolean"&&r.$ref&&!(0,o.schemaHasRulesButRef)(r,this.RULES)){const e=(0,s.resolveUrl)(this.opts.uriResolver,t,r.$ref);i=resolveSchema.call(this,a,e)}const{schemaId:p}=this.opts;i=i||new SchemaEnv({schema:r,schemaId:p,root:a,baseId:t});if(i.schema!==i.root.schema)return i;return undefined}},5302:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(6035);const n={data:new a.Name("data"),valCxt:new a.Name("valCxt"),instancePath:new a.Name("instancePath"),parentData:new a.Name("parentData"),parentDataProperty:new a.Name("parentDataProperty"),rootData:new a.Name("rootData"),dynamicAnchors:new a.Name("dynamicAnchors"),vErrors:new a.Name("vErrors"),errors:new a.Name("errors"),this:new a.Name("this"),self:new a.Name("self"),scope:new a.Name("scope"),json:new a.Name("json"),jsonPos:new a.Name("jsonPos"),jsonLen:new a.Name("jsonLen"),jsonPart:new a.Name("jsonPart")};t["default"]=n},2146:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(985);class MissingRefError extends Error{constructor(e,t,r,n){super(n||`can't resolve reference ${r} from id ${t}`);this.missingRef=(0,a.resolveUrl)(e,t,r);this.missingSchema=(0,a.normalizeId)((0,a.getFullPath)(e,this.missingRef))}}t["default"]=MissingRefError},985:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.getSchemaRefs=t.resolveUrl=t.normalizeId=t._getFullPath=t.getFullPath=t.inlineRef=void 0;const a=r(407);const n=r(8206);const i=r(9263);const s=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function inlineRef(e,t=true){if(typeof e=="boolean")return true;if(t===true)return!hasRef(e);if(!t)return false;return countKeys(e)<=t}t.inlineRef=inlineRef;const o=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function hasRef(e){for(const t in e){if(o.has(t))return true;const r=e[t];if(Array.isArray(r)&&r.some(hasRef))return true;if(typeof r=="object"&&hasRef(r))return true}return false}function countKeys(e){let t=0;for(const r in e){if(r==="$ref")return Infinity;t++;if(s.has(r))continue;if(typeof e[r]=="object"){(0,a.eachItem)(e[r],(e=>t+=countKeys(e)))}if(t===Infinity)return Infinity}return t}function getFullPath(e,t="",r){if(r!==false)t=normalizeId(t);const a=e.parse(t);return _getFullPath(e,a)}t.getFullPath=getFullPath;function _getFullPath(e,t){const r=e.serialize(t);return r.split("#")[0]+"#"}t._getFullPath=_getFullPath;const p=/#\/?$/;function normalizeId(e){return e?e.replace(p,""):""}t.normalizeId=normalizeId;function resolveUrl(e,t,r){r=normalizeId(r);return e.resolve(t,r)}t.resolveUrl=resolveUrl;const c=/^[a-z_][-a-z0-9._]*$/i;function getSchemaRefs(e,t){if(typeof e=="boolean")return{};const{schemaId:r,uriResolver:a}=this.opts;const s=normalizeId(e[r]||t);const o={"":s};const p=getFullPath(a,s,false);const l={};const d=new Set;i(e,{allKeys:true},((e,t,a,n)=>{if(n===undefined)return;const i=p+t;let s=o[n];if(typeof e[r]=="string")s=addRef.call(this,e[r]);addAnchor.call(this,e.$anchor);addAnchor.call(this,e.$dynamicAnchor);o[t]=s;function addRef(t){const r=this.opts.uriResolver.resolve;t=normalizeId(s?r(s,t):t);if(d.has(t))throw ambiguos(t);d.add(t);let a=this.refs[t];if(typeof a=="string")a=this.refs[a];if(typeof a=="object"){checkAmbiguosRef(e,a.schema,t)}else if(t!==normalizeId(i)){if(t[0]==="#"){checkAmbiguosRef(e,l[t],t);l[t]=e}else{this.refs[t]=i}}return t}function addAnchor(e){if(typeof e=="string"){if(!c.test(e))throw new Error(`invalid anchor "${e}"`);addRef.call(this,`#${e}`)}}}));return l;function checkAmbiguosRef(e,t,r){if(t!==undefined&&!n(e,t))throw ambiguos(r)}function ambiguos(e){return new Error(`reference "${e}" resolves to more than one schema`)}}t.getSchemaRefs=getSchemaRefs},6731:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.getRules=t.isJSONType=void 0;const r=["string","number","integer","boolean","null","object","array"];const a=new Set(r);function isJSONType(e){return typeof e=="string"&&a.has(e)}t.isJSONType=isJSONType;function getRules(){const e={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...e,integer:true,boolean:true,null:true},rules:[{rules:[]},e.number,e.string,e.array,e.object],post:{rules:[]},all:{},keywords:{}}}t.getRules=getRules},407:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.checkStrictMode=t.getErrorPath=t.Type=t.useFunc=t.setEvaluated=t.evaluatedPropsToName=t.mergeEvaluated=t.eachItem=t.unescapeJsonPointer=t.escapeJsonPointer=t.escapeFragment=t.unescapeFragment=t.schemaRefOrVal=t.schemaHasRulesButRef=t.schemaHasRules=t.checkUnknownRules=t.alwaysValidSchema=t.toHash=void 0;const a=r(6035);const n=r(6370);function toHash(e){const t={};for(const r of e)t[r]=true;return t}t.toHash=toHash;function alwaysValidSchema(e,t){if(typeof t=="boolean")return t;if(Object.keys(t).length===0)return true;checkUnknownRules(e,t);return!schemaHasRules(t,e.self.RULES.all)}t.alwaysValidSchema=alwaysValidSchema;function checkUnknownRules(e,t=e.schema){const{opts:r,self:a}=e;if(!r.strictSchema)return;if(typeof t==="boolean")return;const n=a.RULES.keywords;for(const r in t){if(!n[r])checkStrictMode(e,`unknown keyword: "${r}"`)}}t.checkUnknownRules=checkUnknownRules;function schemaHasRules(e,t){if(typeof e=="boolean")return!e;for(const r in e)if(t[r])return true;return false}t.schemaHasRules=schemaHasRules;function schemaHasRulesButRef(e,t){if(typeof e=="boolean")return!e;for(const r in e)if(r!=="$ref"&&t.all[r])return true;return false}t.schemaHasRulesButRef=schemaHasRulesButRef;function schemaRefOrVal({topSchemaRef:e,schemaPath:t},r,n,i){if(!i){if(typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="string")return(0,a._)`${r}`}return(0,a._)`${e}${t}${(0,a.getProperty)(n)}`}t.schemaRefOrVal=schemaRefOrVal;function unescapeFragment(e){return unescapeJsonPointer(decodeURIComponent(e))}t.unescapeFragment=unescapeFragment;function escapeFragment(e){return encodeURIComponent(escapeJsonPointer(e))}t.escapeFragment=escapeFragment;function escapeJsonPointer(e){if(typeof e=="number")return`${e}`;return e.replace(/~/g,"~0").replace(/\//g,"~1")}t.escapeJsonPointer=escapeJsonPointer;function unescapeJsonPointer(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}t.unescapeJsonPointer=unescapeJsonPointer;function eachItem(e,t){if(Array.isArray(e)){for(const r of e)t(r)}else{t(e)}}t.eachItem=eachItem;function makeMergeEvaluated({mergeNames:e,mergeToName:t,mergeValues:r,resultToName:n}){return(i,s,o,p)=>{const c=o===undefined?s:o instanceof a.Name?(s instanceof a.Name?e(i,s,o):t(i,s,o),o):s instanceof a.Name?(t(i,o,s),s):r(s,o);return p===a.Name&&!(c instanceof a.Name)?n(i,c):c}}t.mergeEvaluated={props:makeMergeEvaluated({mergeNames:(e,t,r)=>e.if((0,a._)`${r} !== true && ${t} !== undefined`,(()=>{e.if((0,a._)`${t} === true`,(()=>e.assign(r,true)),(()=>e.assign(r,(0,a._)`${r} || {}`).code((0,a._)`Object.assign(${r}, ${t})`)))})),mergeToName:(e,t,r)=>e.if((0,a._)`${r} !== true`,(()=>{if(t===true){e.assign(r,true)}else{e.assign(r,(0,a._)`${r} || {}`);setEvaluated(e,r,t)}})),mergeValues:(e,t)=>e===true?true:{...e,...t},resultToName:evaluatedPropsToName}),items:makeMergeEvaluated({mergeNames:(e,t,r)=>e.if((0,a._)`${r} !== true && ${t} !== undefined`,(()=>e.assign(r,(0,a._)`${t} === true ? true : ${r} > ${t} ? ${r} : ${t}`))),mergeToName:(e,t,r)=>e.if((0,a._)`${r} !== true`,(()=>e.assign(r,t===true?true:(0,a._)`${r} > ${t} ? ${r} : ${t}`))),mergeValues:(e,t)=>e===true?true:Math.max(e,t),resultToName:(e,t)=>e.var("items",t)})};function evaluatedPropsToName(e,t){if(t===true)return e.var("props",true);const r=e.var("props",(0,a._)`{}`);if(t!==undefined)setEvaluated(e,r,t);return r}t.evaluatedPropsToName=evaluatedPropsToName;function setEvaluated(e,t,r){Object.keys(r).forEach((r=>e.assign((0,a._)`${t}${(0,a.getProperty)(r)}`,true)))}t.setEvaluated=setEvaluated;const i={};function useFunc(e,t){return e.scopeValue("func",{ref:t,code:i[t.code]||(i[t.code]=new n._Code(t.code))})}t.useFunc=useFunc;var s;(function(e){e[e["Num"]=0]="Num";e[e["Str"]=1]="Str"})(s=t.Type||(t.Type={}));function getErrorPath(e,t,r){if(e instanceof a.Name){const n=t===s.Num;return r?n?(0,a._)`"[" + ${e} + "]"`:(0,a._)`"['" + ${e} + "']"`:n?(0,a._)`"/" + ${e}`:(0,a._)`"/" + ${e}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return r?(0,a.getProperty)(e).toString():"/"+escapeJsonPointer(e)}t.getErrorPath=getErrorPath;function checkStrictMode(e,t,r=e.opts.strictSchema){if(!r)return;t=`strict mode: ${t}`;if(r===true)throw new Error(t);e.self.logger.warn(t)}t.checkStrictMode=checkStrictMode},4019:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.shouldUseRule=t.shouldUseGroup=t.schemaHasRulesForType=void 0;function schemaHasRulesForType({schema:e,self:t},r){const a=t.RULES.types[r];return a&&a!==true&&shouldUseGroup(e,a)}t.schemaHasRulesForType=schemaHasRulesForType;function shouldUseGroup(e,t){return t.rules.some((t=>shouldUseRule(e,t)))}t.shouldUseGroup=shouldUseGroup;function shouldUseRule(e,t){var r;return e[t.keyword]!==undefined||((r=t.definition.implements)===null||r===void 0?void 0:r.some((t=>e[t]!==undefined)))}t.shouldUseRule=shouldUseRule},598:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.boolOrEmptySchema=t.topBoolOrEmptySchema=void 0;const a=r(7722);const n=r(6035);const i=r(5302);const s={message:"boolean schema is false"};function topBoolOrEmptySchema(e){const{gen:t,schema:r,validateName:a}=e;if(r===false){falseSchemaError(e,false)}else if(typeof r=="object"&&r.$async===true){t.return(i.default.data)}else{t.assign((0,n._)`${a}.errors`,null);t.return(true)}}t.topBoolOrEmptySchema=topBoolOrEmptySchema;function boolOrEmptySchema(e,t){const{gen:r,schema:a}=e;if(a===false){r.var(t,false);falseSchemaError(e)}else{r.var(t,true)}}t.boolOrEmptySchema=boolOrEmptySchema;function falseSchemaError(e,t){const{gen:r,data:n}=e;const i={gen:r,keyword:"false schema",data:n,schema:false,schemaCode:false,schemaValue:false,params:{},it:e};(0,a.reportError)(i,s,undefined,t)}},2933:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.reportTypeError=t.checkDataTypes=t.checkDataType=t.coerceAndCheckDataType=t.getJSONTypes=t.getSchemaTypes=t.DataType=void 0;const a=r(6731);const n=r(4019);const i=r(7722);const s=r(6035);const o=r(407);var p;(function(e){e[e["Correct"]=0]="Correct";e[e["Wrong"]=1]="Wrong"})(p=t.DataType||(t.DataType={}));function getSchemaTypes(e){const t=getJSONTypes(e.type);const r=t.includes("null");if(r){if(e.nullable===false)throw new Error("type: null contradicts nullable: false")}else{if(!t.length&&e.nullable!==undefined){throw new Error('"nullable" cannot be used without "type"')}if(e.nullable===true)t.push("null")}return t}t.getSchemaTypes=getSchemaTypes;function getJSONTypes(e){const t=Array.isArray(e)?e:e?[e]:[];if(t.every(a.isJSONType))return t;throw new Error("type must be JSONType or JSONType[]: "+t.join(","))}t.getJSONTypes=getJSONTypes;function coerceAndCheckDataType(e,t){const{gen:r,data:a,opts:i}=e;const s=coerceToTypes(t,i.coerceTypes);const o=t.length>0&&!(s.length===0&&t.length===1&&(0,n.schemaHasRulesForType)(e,t[0]));if(o){const n=checkDataTypes(t,a,i.strictNumbers,p.Wrong);r.if(n,(()=>{if(s.length)coerceData(e,t,s);else reportTypeError(e)}))}return o}t.coerceAndCheckDataType=coerceAndCheckDataType;const c=new Set(["string","number","integer","boolean","null"]);function coerceToTypes(e,t){return t?e.filter((e=>c.has(e)||t==="array"&&e==="array")):[]}function coerceData(e,t,r){const{gen:a,data:n,opts:i}=e;const o=a.let("dataType",(0,s._)`typeof ${n}`);const p=a.let("coerced",(0,s._)`undefined`);if(i.coerceTypes==="array"){a.if((0,s._)`${o} == 'object' && Array.isArray(${n}) && ${n}.length == 1`,(()=>a.assign(n,(0,s._)`${n}[0]`).assign(o,(0,s._)`typeof ${n}`).if(checkDataTypes(t,n,i.strictNumbers),(()=>a.assign(p,n)))))}a.if((0,s._)`${p} !== undefined`);for(const e of r){if(c.has(e)||e==="array"&&i.coerceTypes==="array"){coerceSpecificType(e)}}a.else();reportTypeError(e);a.endIf();a.if((0,s._)`${p} !== undefined`,(()=>{a.assign(n,p);assignParentData(e,p)}));function coerceSpecificType(e){switch(e){case"string":a.elseIf((0,s._)`${o} == "number" || ${o} == "boolean"`).assign(p,(0,s._)`"" + ${n}`).elseIf((0,s._)`${n} === null`).assign(p,(0,s._)`""`);return;case"number":a.elseIf((0,s._)`${o} == "boolean" || ${n} === null + || (${o} == "string" && ${n} && ${n} == +${n})`).assign(p,(0,s._)`+${n}`);return;case"integer":a.elseIf((0,s._)`${o} === "boolean" || ${n} === null + || (${o} === "string" && ${n} && ${n} == +${n} && !(${n} % 1))`).assign(p,(0,s._)`+${n}`);return;case"boolean":a.elseIf((0,s._)`${n} === "false" || ${n} === 0 || ${n} === null`).assign(p,false).elseIf((0,s._)`${n} === "true" || ${n} === 1`).assign(p,true);return;case"null":a.elseIf((0,s._)`${n} === "" || ${n} === 0 || ${n} === false`);a.assign(p,null);return;case"array":a.elseIf((0,s._)`${o} === "string" || ${o} === "number" + || ${o} === "boolean" || ${n} === null`).assign(p,(0,s._)`[${n}]`)}}}function assignParentData({gen:e,parentData:t,parentDataProperty:r},a){e.if((0,s._)`${t} !== undefined`,(()=>e.assign((0,s._)`${t}[${r}]`,a)))}function checkDataType(e,t,r,a=p.Correct){const n=a===p.Correct?s.operators.EQ:s.operators.NEQ;let i;switch(e){case"null":return(0,s._)`${t} ${n} null`;case"array":i=(0,s._)`Array.isArray(${t})`;break;case"object":i=(0,s._)`${t} && typeof ${t} == "object" && !Array.isArray(${t})`;break;case"integer":i=numCond((0,s._)`!(${t} % 1) && !isNaN(${t})`);break;case"number":i=numCond();break;default:return(0,s._)`typeof ${t} ${n} ${e}`}return a===p.Correct?i:(0,s.not)(i);function numCond(e=s.nil){return(0,s.and)((0,s._)`typeof ${t} == "number"`,e,r?(0,s._)`isFinite(${t})`:s.nil)}}t.checkDataType=checkDataType;function checkDataTypes(e,t,r,a){if(e.length===1){return checkDataType(e[0],t,r,a)}let n;const i=(0,o.toHash)(e);if(i.array&&i.object){const e=(0,s._)`typeof ${t} != "object"`;n=i.null?e:(0,s._)`!${t} || ${e}`;delete i.null;delete i.array;delete i.object}else{n=s.nil}if(i.number)delete i.integer;for(const e in i)n=(0,s.and)(n,checkDataType(e,t,r,a));return n}t.checkDataTypes=checkDataTypes;const l={message:({schema:e})=>`must be ${e}`,params:({schema:e,schemaValue:t})=>typeof e=="string"?(0,s._)`{type: ${e}}`:(0,s._)`{type: ${t}}`};function reportTypeError(e){const t=getTypeErrorContext(e);(0,i.reportError)(t,l)}t.reportTypeError=reportTypeError;function getTypeErrorContext(e){const{gen:t,data:r,schema:a}=e;const n=(0,o.schemaRefOrVal)(e,a,"type");return{gen:t,keyword:"type",data:r,schema:a.type,schemaCode:n,schemaValue:n,parentSchema:a,params:{},it:e}}},1871:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.assignDefaults=void 0;const a=r(6035);const n=r(407);function assignDefaults(e,t){const{properties:r,items:a}=e.schema;if(t==="object"&&r){for(const t in r){assignDefault(e,t,r[t].default)}}else if(t==="array"&&Array.isArray(a)){a.forEach(((t,r)=>assignDefault(e,r,t.default)))}}t.assignDefaults=assignDefaults;function assignDefault(e,t,r){const{gen:i,compositeRule:s,data:o,opts:p}=e;if(r===undefined)return;const c=(0,a._)`${o}${(0,a.getProperty)(t)}`;if(s){(0,n.checkStrictMode)(e,`default is ignored for: ${c}`);return}let l=(0,a._)`${c} === undefined`;if(p.useDefaults==="empty"){l=(0,a._)`${l} || ${c} === null || ${c} === ""`}i.if(l,(0,a._)`${c} = ${(0,a.stringify)(r)}`)}},4988:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.getData=t.KeywordCxt=t.validateFunctionCode=void 0;const a=r(598);const n=r(2933);const i=r(4019);const s=r(2933);const o=r(1871);const p=r(6888);const c=r(7640);const l=r(6035);const d=r(5302);const u=r(985);const m=r(407);const h=r(7722);function validateFunctionCode(e){if(isSchemaObj(e)){checkKeywords(e);if(schemaCxtHasRules(e)){topSchemaObjCode(e);return}}validateFunction(e,(()=>(0,a.topBoolOrEmptySchema)(e)))}t.validateFunctionCode=validateFunctionCode;function validateFunction({gen:e,validateName:t,schema:r,schemaEnv:a,opts:n},i){if(n.code.es5){e.func(t,(0,l._)`${d.default.data}, ${d.default.valCxt}`,a.$async,(()=>{e.code((0,l._)`"use strict"; ${funcSourceUrl(r,n)}`);destructureValCxtES5(e,n);e.code(i)}))}else{e.func(t,(0,l._)`${d.default.data}, ${destructureValCxt(n)}`,a.$async,(()=>e.code(funcSourceUrl(r,n)).code(i)))}}function destructureValCxt(e){return(0,l._)`{${d.default.instancePath}="", ${d.default.parentData}, ${d.default.parentDataProperty}, ${d.default.rootData}=${d.default.data}${e.dynamicRef?(0,l._)`, ${d.default.dynamicAnchors}={}`:l.nil}}={}`}function destructureValCxtES5(e,t){e.if(d.default.valCxt,(()=>{e.var(d.default.instancePath,(0,l._)`${d.default.valCxt}.${d.default.instancePath}`);e.var(d.default.parentData,(0,l._)`${d.default.valCxt}.${d.default.parentData}`);e.var(d.default.parentDataProperty,(0,l._)`${d.default.valCxt}.${d.default.parentDataProperty}`);e.var(d.default.rootData,(0,l._)`${d.default.valCxt}.${d.default.rootData}`);if(t.dynamicRef)e.var(d.default.dynamicAnchors,(0,l._)`${d.default.valCxt}.${d.default.dynamicAnchors}`)}),(()=>{e.var(d.default.instancePath,(0,l._)`""`);e.var(d.default.parentData,(0,l._)`undefined`);e.var(d.default.parentDataProperty,(0,l._)`undefined`);e.var(d.default.rootData,d.default.data);if(t.dynamicRef)e.var(d.default.dynamicAnchors,(0,l._)`{}`)}))}function topSchemaObjCode(e){const{schema:t,opts:r,gen:a}=e;validateFunction(e,(()=>{if(r.$comment&&t.$comment)commentKeyword(e);checkNoDefault(e);a.let(d.default.vErrors,null);a.let(d.default.errors,0);if(r.unevaluated)resetEvaluated(e);typeAndKeywords(e);returnResults(e)}));return}function resetEvaluated(e){const{gen:t,validateName:r}=e;e.evaluated=t.const("evaluated",(0,l._)`${r}.evaluated`);t.if((0,l._)`${e.evaluated}.dynamicProps`,(()=>t.assign((0,l._)`${e.evaluated}.props`,(0,l._)`undefined`)));t.if((0,l._)`${e.evaluated}.dynamicItems`,(()=>t.assign((0,l._)`${e.evaluated}.items`,(0,l._)`undefined`)))}function funcSourceUrl(e,t){const r=typeof e=="object"&&e[t.schemaId];return r&&(t.code.source||t.code.process)?(0,l._)`/*# sourceURL=${r} */`:l.nil}function subschemaCode(e,t){if(isSchemaObj(e)){checkKeywords(e);if(schemaCxtHasRules(e)){subSchemaObjCode(e,t);return}}(0,a.boolOrEmptySchema)(e,t)}function schemaCxtHasRules({schema:e,self:t}){if(typeof e=="boolean")return!e;for(const r in e)if(t.RULES.all[r])return true;return false}function isSchemaObj(e){return typeof e.schema!="boolean"}function subSchemaObjCode(e,t){const{schema:r,gen:a,opts:n}=e;if(n.$comment&&r.$comment)commentKeyword(e);updateContext(e);checkAsyncSchema(e);const i=a.const("_errs",d.default.errors);typeAndKeywords(e,i);a.var(t,(0,l._)`${i} === ${d.default.errors}`)}function checkKeywords(e){(0,m.checkUnknownRules)(e);checkRefsAndKeywords(e)}function typeAndKeywords(e,t){if(e.opts.jtd)return schemaKeywords(e,[],false,t);const r=(0,n.getSchemaTypes)(e.schema);const a=(0,n.coerceAndCheckDataType)(e,r);schemaKeywords(e,r,!a,t)}function checkRefsAndKeywords(e){const{schema:t,errSchemaPath:r,opts:a,self:n}=e;if(t.$ref&&a.ignoreKeywordsWithRef&&(0,m.schemaHasRulesButRef)(t,n.RULES)){n.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}}function checkNoDefault(e){const{schema:t,opts:r}=e;if(t.default!==undefined&&r.useDefaults&&r.strictSchema){(0,m.checkStrictMode)(e,"default is ignored in the schema root")}}function updateContext(e){const t=e.schema[e.opts.schemaId];if(t)e.baseId=(0,u.resolveUrl)(e.opts.uriResolver,e.baseId,t)}function checkAsyncSchema(e){if(e.schema.$async&&!e.schemaEnv.$async)throw new Error("async schema in sync schema")}function commentKeyword({gen:e,schemaEnv:t,schema:r,errSchemaPath:a,opts:n}){const i=r.$comment;if(n.$comment===true){e.code((0,l._)`${d.default.self}.logger.log(${i})`)}else if(typeof n.$comment=="function"){const r=(0,l.str)`${a}/$comment`;const n=e.scopeValue("root",{ref:t.root});e.code((0,l._)`${d.default.self}.opts.$comment(${i}, ${r}, ${n}.schema)`)}}function returnResults(e){const{gen:t,schemaEnv:r,validateName:a,ValidationError:n,opts:i}=e;if(r.$async){t.if((0,l._)`${d.default.errors} === 0`,(()=>t.return(d.default.data)),(()=>t.throw((0,l._)`new ${n}(${d.default.vErrors})`)))}else{t.assign((0,l._)`${a}.errors`,d.default.vErrors);if(i.unevaluated)assignEvaluated(e);t.return((0,l._)`${d.default.errors} === 0`)}}function assignEvaluated({gen:e,evaluated:t,props:r,items:a}){if(r instanceof l.Name)e.assign((0,l._)`${t}.props`,r);if(a instanceof l.Name)e.assign((0,l._)`${t}.items`,a)}function schemaKeywords(e,t,r,a){const{gen:n,schema:o,data:p,allErrors:c,opts:u,self:h}=e;const{RULES:g}=h;if(o.$ref&&(u.ignoreKeywordsWithRef||!(0,m.schemaHasRulesButRef)(o,g))){n.block((()=>keywordCode(e,"$ref",g.all.$ref.definition)));return}if(!u.jtd)checkStrictTypes(e,t);n.block((()=>{for(const e of g.rules)groupKeywords(e);groupKeywords(g.post)}));function groupKeywords(m){if(!(0,i.shouldUseGroup)(o,m))return;if(m.type){n.if((0,s.checkDataType)(m.type,p,u.strictNumbers));iterateKeywords(e,m);if(t.length===1&&t[0]===m.type&&r){n.else();(0,s.reportTypeError)(e)}n.endIf()}else{iterateKeywords(e,m)}if(!c)n.if((0,l._)`${d.default.errors} === ${a||0}`)}}function iterateKeywords(e,t){const{gen:r,schema:a,opts:{useDefaults:n}}=e;if(n)(0,o.assignDefaults)(e,t.type);r.block((()=>{for(const r of t.rules){if((0,i.shouldUseRule)(a,r)){keywordCode(e,r.keyword,r.definition,t.type)}}}))}function checkStrictTypes(e,t){if(e.schemaEnv.meta||!e.opts.strictTypes)return;checkContextTypes(e,t);if(!e.opts.allowUnionTypes)checkMultipleTypes(e,t);checkKeywordTypes(e,e.dataTypes)}function checkContextTypes(e,t){if(!t.length)return;if(!e.dataTypes.length){e.dataTypes=t;return}t.forEach((t=>{if(!includesType(e.dataTypes,t)){strictTypesError(e,`type "${t}" not allowed by context "${e.dataTypes.join(",")}"`)}}));narrowSchemaTypes(e,t)}function checkMultipleTypes(e,t){if(t.length>1&&!(t.length===2&&t.includes("null"))){strictTypesError(e,"use allowUnionTypes to allow union type keyword")}}function checkKeywordTypes(e,t){const r=e.self.RULES.all;for(const a in r){const n=r[a];if(typeof n=="object"&&(0,i.shouldUseRule)(e.schema,n)){const{type:r}=n.definition;if(r.length&&!r.some((e=>hasApplicableType(t,e)))){strictTypesError(e,`missing type "${r.join(",")}" for keyword "${a}"`)}}}}function hasApplicableType(e,t){return e.includes(t)||t==="number"&&e.includes("integer")}function includesType(e,t){return e.includes(t)||t==="integer"&&e.includes("number")}function narrowSchemaTypes(e,t){const r=[];for(const a of e.dataTypes){if(includesType(t,a))r.push(a);else if(t.includes("integer")&&a==="number")r.push("integer")}e.dataTypes=r}function strictTypesError(e,t){const r=e.schemaEnv.baseId+e.errSchemaPath;t+=` at "${r}" (strictTypes)`;(0,m.checkStrictMode)(e,t,e.opts.strictTypes)}class KeywordCxt{constructor(e,t,r){(0,p.validateKeywordUsage)(e,t,r);this.gen=e.gen;this.allErrors=e.allErrors;this.keyword=r;this.data=e.data;this.schema=e.schema[r];this.$data=t.$data&&e.opts.$data&&this.schema&&this.schema.$data;this.schemaValue=(0,m.schemaRefOrVal)(e,this.schema,r,this.$data);this.schemaType=t.schemaType;this.parentSchema=e.schema;this.params={};this.it=e;this.def=t;if(this.$data){this.schemaCode=e.gen.const("vSchema",getData(this.$data,e))}else{this.schemaCode=this.schemaValue;if(!(0,p.validSchemaType)(this.schema,t.schemaType,t.allowUndefined)){throw new Error(`${r} value must be ${JSON.stringify(t.schemaType)}`)}}if("code"in t?t.trackErrors:t.errors!==false){this.errsCount=e.gen.const("_errs",d.default.errors)}}result(e,t,r){this.failResult((0,l.not)(e),t,r)}failResult(e,t,r){this.gen.if(e);if(r)r();else this.error();if(t){this.gen.else();t();if(this.allErrors)this.gen.endIf()}else{if(this.allErrors)this.gen.endIf();else this.gen.else()}}pass(e,t){this.failResult((0,l.not)(e),undefined,t)}fail(e){if(e===undefined){this.error();if(!this.allErrors)this.gen.if(false);return}this.gen.if(e);this.error();if(this.allErrors)this.gen.endIf();else this.gen.else()}fail$data(e){if(!this.$data)return this.fail(e);const{schemaCode:t}=this;this.fail((0,l._)`${t} !== undefined && (${(0,l.or)(this.invalid$data(),e)})`)}error(e,t,r){if(t){this.setParams(t);this._error(e,r);this.setParams({});return}this._error(e,r)}_error(e,t){(e?h.reportExtraError:h.reportError)(this,this.def.error,t)}$dataError(){(0,h.reportError)(this,this.def.$dataError||h.keyword$DataError)}reset(){if(this.errsCount===undefined)throw new Error('add "trackErrors" to keyword definition');(0,h.resetErrorsCount)(this.gen,this.errsCount)}ok(e){if(!this.allErrors)this.gen.if(e)}setParams(e,t){if(t)Object.assign(this.params,e);else this.params=e}block$data(e,t,r=l.nil){this.gen.block((()=>{this.check$data(e,r);t()}))}check$data(e=l.nil,t=l.nil){if(!this.$data)return;const{gen:r,schemaCode:a,schemaType:n,def:i}=this;r.if((0,l.or)((0,l._)`${a} === undefined`,t));if(e!==l.nil)r.assign(e,true);if(n.length||i.validateSchema){r.elseIf(this.invalid$data());this.$dataError();if(e!==l.nil)r.assign(e,false)}r.else()}invalid$data(){const{gen:e,schemaCode:t,schemaType:r,def:a,it:n}=this;return(0,l.or)(wrong$DataType(),invalid$DataSchema());function wrong$DataType(){if(r.length){if(!(t instanceof l.Name))throw new Error("ajv implementation error");const e=Array.isArray(r)?r:[r];return(0,l._)`${(0,s.checkDataTypes)(e,t,n.opts.strictNumbers,s.DataType.Wrong)}`}return l.nil}function invalid$DataSchema(){if(a.validateSchema){const r=e.scopeValue("validate$data",{ref:a.validateSchema});return(0,l._)`!${r}(${t})`}return l.nil}}subschema(e,t){const r=(0,c.getSubschema)(this.it,e);(0,c.extendSubschemaData)(r,this.it,e);(0,c.extendSubschemaMode)(r,e);const a={...this.it,...r,items:undefined,props:undefined};subschemaCode(a,t);return a}mergeEvaluated(e,t){const{it:r,gen:a}=this;if(!r.opts.unevaluated)return;if(r.props!==true&&e.props!==undefined){r.props=m.mergeEvaluated.props(a,e.props,r.props,t)}if(r.items!==true&&e.items!==undefined){r.items=m.mergeEvaluated.items(a,e.items,r.items,t)}}mergeValidEvaluated(e,t){const{it:r,gen:a}=this;if(r.opts.unevaluated&&(r.props!==true||r.items!==true)){a.if(t,(()=>this.mergeEvaluated(e,l.Name)));return true}}}t.KeywordCxt=KeywordCxt;function keywordCode(e,t,r,a){const n=new KeywordCxt(e,r,t);if("code"in r){r.code(n,a)}else if(n.$data&&r.validate){(0,p.funcKeywordCode)(n,r)}else if("macro"in r){(0,p.macroKeywordCode)(n,r)}else if(r.compile||r.validate){(0,p.funcKeywordCode)(n,r)}}const g=/^\/(?:[^~]|~0|~1)*$/;const v=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function getData(e,{dataLevel:t,dataNames:r,dataPathArr:a}){let n;let i;if(e==="")return d.default.rootData;if(e[0]==="/"){if(!g.test(e))throw new Error(`Invalid JSON-pointer: ${e}`);n=e;i=d.default.rootData}else{const s=v.exec(e);if(!s)throw new Error(`Invalid JSON-pointer: ${e}`);const o=+s[1];n=s[2];if(n==="#"){if(o>=t)throw new Error(errorMsg("property/index",o));return a[t-o]}if(o>t)throw new Error(errorMsg("data",o));i=r[t-o];if(!n)return i}let s=i;const o=n.split("/");for(const e of o){if(e){i=(0,l._)`${i}${(0,l.getProperty)((0,m.unescapeJsonPointer)(e))}`;s=(0,l._)`${s} && ${i}`}}return s;function errorMsg(e,r){return`Cannot access ${e} ${r} levels up, current level is ${t}`}}t.getData=getData},6888:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.validateKeywordUsage=t.validSchemaType=t.funcKeywordCode=t.macroKeywordCode=void 0;const a=r(6035);const n=r(5302);const i=r(982);const s=r(7722);function macroKeywordCode(e,t){const{gen:r,keyword:n,schema:i,parentSchema:s,it:o}=e;const p=t.macro.call(o.self,i,s,o);const c=useKeyword(r,n,p);if(o.opts.validateSchema!==false)o.self.validateSchema(p,true);const l=r.name("valid");e.subschema({schema:p,schemaPath:a.nil,errSchemaPath:`${o.errSchemaPath}/${n}`,topSchemaRef:c,compositeRule:true},l);e.pass(l,(()=>e.error(true)))}t.macroKeywordCode=macroKeywordCode;function funcKeywordCode(e,t){var r;const{gen:s,keyword:o,schema:p,parentSchema:c,$data:l,it:d}=e;checkAsyncKeyword(d,t);const u=!l&&t.compile?t.compile.call(d.self,p,c,d):t.validate;const m=useKeyword(s,o,u);const h=s.let("valid");e.block$data(h,validateKeyword);e.ok((r=t.valid)!==null&&r!==void 0?r:h);function validateKeyword(){if(t.errors===false){assignValid();if(t.modifying)modifyData(e);reportErrs((()=>e.error()))}else{const r=t.async?validateAsync():validateSync();if(t.modifying)modifyData(e);reportErrs((()=>addErrs(e,r)))}}function validateAsync(){const e=s.let("ruleErrs",null);s.try((()=>assignValid((0,a._)`await `)),(t=>s.assign(h,false).if((0,a._)`${t} instanceof ${d.ValidationError}`,(()=>s.assign(e,(0,a._)`${t}.errors`)),(()=>s.throw(t)))));return e}function validateSync(){const e=(0,a._)`${m}.errors`;s.assign(e,null);assignValid(a.nil);return e}function assignValid(r=(t.async?(0,a._)`await `:a.nil)){const o=d.opts.passContext?n.default.this:n.default.self;const p=!("compile"in t&&!l||t.schema===false);s.assign(h,(0,a._)`${r}${(0,i.callValidateCode)(e,m,o,p)}`,t.modifying)}function reportErrs(e){var r;s.if((0,a.not)((r=t.valid)!==null&&r!==void 0?r:h),e)}}t.funcKeywordCode=funcKeywordCode;function modifyData(e){const{gen:t,data:r,it:n}=e;t.if(n.parentData,(()=>t.assign(r,(0,a._)`${n.parentData}[${n.parentDataProperty}]`)))}function addErrs(e,t){const{gen:r}=e;r.if((0,a._)`Array.isArray(${t})`,(()=>{r.assign(n.default.vErrors,(0,a._)`${n.default.vErrors} === null ? ${t} : ${n.default.vErrors}.concat(${t})`).assign(n.default.errors,(0,a._)`${n.default.vErrors}.length`);(0,s.extendErrors)(e)}),(()=>e.error()))}function checkAsyncKeyword({schemaEnv:e},t){if(t.async&&!e.$async)throw new Error("async keyword in sync schema")}function useKeyword(e,t,r){if(r===undefined)throw new Error(`keyword "${t}" failed to compile`);return e.scopeValue("keyword",typeof r=="function"?{ref:r}:{ref:r,code:(0,a.stringify)(r)})}function validSchemaType(e,t,r=false){return!t.length||t.some((t=>t==="array"?Array.isArray(e):t==="object"?e&&typeof e=="object"&&!Array.isArray(e):typeof e==t||r&&typeof e=="undefined"))}t.validSchemaType=validSchemaType;function validateKeywordUsage({schema:e,opts:t,self:r,errSchemaPath:a},n,i){if(Array.isArray(n.keyword)?!n.keyword.includes(i):n.keyword!==i){throw new Error("ajv implementation error")}const s=n.dependencies;if(s===null||s===void 0?void 0:s.some((t=>!Object.prototype.hasOwnProperty.call(e,t)))){throw new Error(`parent schema must have dependencies of ${i}: ${s.join(",")}`)}if(n.validateSchema){const s=n.validateSchema(e[i]);if(!s){const e=`keyword "${i}" value is invalid at path "${a}": `+r.errorsText(n.validateSchema.errors);if(t.validateSchema==="log")r.logger.error(e);else throw new Error(e)}}}t.validateKeywordUsage=validateKeywordUsage},7640:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.extendSubschemaMode=t.extendSubschemaData=t.getSubschema=void 0;const a=r(6035);const n=r(407);function getSubschema(e,{keyword:t,schemaProp:r,schema:i,schemaPath:s,errSchemaPath:o,topSchemaRef:p}){if(t!==undefined&&i!==undefined){throw new Error('both "keyword" and "schema" passed, only one allowed')}if(t!==undefined){const i=e.schema[t];return r===undefined?{schema:i,schemaPath:(0,a._)`${e.schemaPath}${(0,a.getProperty)(t)}`,errSchemaPath:`${e.errSchemaPath}/${t}`}:{schema:i[r],schemaPath:(0,a._)`${e.schemaPath}${(0,a.getProperty)(t)}${(0,a.getProperty)(r)}`,errSchemaPath:`${e.errSchemaPath}/${t}/${(0,n.escapeFragment)(r)}`}}if(i!==undefined){if(s===undefined||o===undefined||p===undefined){throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"')}return{schema:i,schemaPath:s,topSchemaRef:p,errSchemaPath:o}}throw new Error('either "keyword" or "schema" must be passed')}t.getSubschema=getSubschema;function extendSubschemaData(e,t,{dataProp:r,dataPropType:i,data:s,dataTypes:o,propertyName:p}){if(s!==undefined&&r!==undefined){throw new Error('both "data" and "dataProp" passed, only one allowed')}const{gen:c}=t;if(r!==undefined){const{errorPath:s,dataPathArr:o,opts:p}=t;const l=c.let("data",(0,a._)`${t.data}${(0,a.getProperty)(r)}`,true);dataContextProps(l);e.errorPath=(0,a.str)`${s}${(0,n.getErrorPath)(r,i,p.jsPropertySyntax)}`;e.parentDataProperty=(0,a._)`${r}`;e.dataPathArr=[...o,e.parentDataProperty]}if(s!==undefined){const t=s instanceof a.Name?s:c.let("data",s,true);dataContextProps(t);if(p!==undefined)e.propertyName=p}if(o)e.dataTypes=o;function dataContextProps(r){e.data=r;e.dataLevel=t.dataLevel+1;e.dataTypes=[];t.definedProperties=new Set;e.parentData=t.data;e.dataNames=[...t.dataNames,r]}}t.extendSubschemaData=extendSubschemaData;function extendSubschemaMode(e,{jtdDiscriminator:t,jtdMetadata:r,compositeRule:a,createErrors:n,allErrors:i}){if(a!==undefined)e.compositeRule=a;if(n!==undefined)e.createErrors=n;if(i!==undefined)e.allErrors=i;e.jtdDiscriminator=t;e.jtdMetadata=r}t.extendSubschemaMode=extendSubschemaMode},2396:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.CodeGen=t.Name=t.nil=t.stringify=t.str=t._=t.KeywordCxt=void 0;var a=r(4988);Object.defineProperty(t,"KeywordCxt",{enumerable:true,get:function(){return a.KeywordCxt}});var n=r(6035);Object.defineProperty(t,"_",{enumerable:true,get:function(){return n._}});Object.defineProperty(t,"str",{enumerable:true,get:function(){return n.str}});Object.defineProperty(t,"stringify",{enumerable:true,get:function(){return n.stringify}});Object.defineProperty(t,"nil",{enumerable:true,get:function(){return n.nil}});Object.defineProperty(t,"Name",{enumerable:true,get:function(){return n.Name}});Object.defineProperty(t,"CodeGen",{enumerable:true,get:function(){return n.CodeGen}});const i=r(3111);const s=r(2146);const o=r(6731);const p=r(9230);const c=r(6035);const l=r(985);const d=r(2933);const u=r(407);const m=r(7063);const h=r(1744);const defaultRegExp=(e,t)=>new RegExp(e,t);defaultRegExp.code="new RegExp";const g=["removeAdditional","useDefaults","coerceTypes"];const v=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]);const y={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."};const b={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'};const w=200;function requiredOptions(e){var t,r,a,n,i,s,o,p,c,l,d,u,m,g,v,y,b,x,E,T,S,k,O,C,P;const A=e.strict;const D=(t=e.code)===null||t===void 0?void 0:t.optimize;const R=D===true||D===undefined?1:D||0;const N=(a=(r=e.code)===null||r===void 0?void 0:r.regExp)!==null&&a!==void 0?a:defaultRegExp;const j=(n=e.uriResolver)!==null&&n!==void 0?n:h.default;return{strictSchema:(s=(i=e.strictSchema)!==null&&i!==void 0?i:A)!==null&&s!==void 0?s:true,strictNumbers:(p=(o=e.strictNumbers)!==null&&o!==void 0?o:A)!==null&&p!==void 0?p:true,strictTypes:(l=(c=e.strictTypes)!==null&&c!==void 0?c:A)!==null&&l!==void 0?l:"log",strictTuples:(u=(d=e.strictTuples)!==null&&d!==void 0?d:A)!==null&&u!==void 0?u:"log",strictRequired:(g=(m=e.strictRequired)!==null&&m!==void 0?m:A)!==null&&g!==void 0?g:false,code:e.code?{...e.code,optimize:R,regExp:N}:{optimize:R,regExp:N},loopRequired:(v=e.loopRequired)!==null&&v!==void 0?v:w,loopEnum:(y=e.loopEnum)!==null&&y!==void 0?y:w,meta:(b=e.meta)!==null&&b!==void 0?b:true,messages:(x=e.messages)!==null&&x!==void 0?x:true,inlineRefs:(E=e.inlineRefs)!==null&&E!==void 0?E:true,schemaId:(T=e.schemaId)!==null&&T!==void 0?T:"$id",addUsedSchema:(S=e.addUsedSchema)!==null&&S!==void 0?S:true,validateSchema:(k=e.validateSchema)!==null&&k!==void 0?k:true,validateFormats:(O=e.validateFormats)!==null&&O!==void 0?O:true,unicodeRegExp:(C=e.unicodeRegExp)!==null&&C!==void 0?C:true,int32range:(P=e.int32range)!==null&&P!==void 0?P:true,uriResolver:j}}class Ajv{constructor(e={}){this.schemas={};this.refs={};this.formats={};this._compilations=new Set;this._loading={};this._cache=new Map;e=this.opts={...e,...requiredOptions(e)};const{es5:t,lines:r}=this.opts.code;this.scope=new c.ValueScope({scope:{},prefixes:v,es5:t,lines:r});this.logger=getLogger(e.logger);const a=e.validateFormats;e.validateFormats=false;this.RULES=(0,o.getRules)();checkOptions.call(this,y,e,"NOT SUPPORTED");checkOptions.call(this,b,e,"DEPRECATED","warn");this._metaOpts=getMetaSchemaOptions.call(this);if(e.formats)addInitialFormats.call(this);this._addVocabularies();this._addDefaultMetaSchema();if(e.keywords)addInitialKeywords.call(this,e.keywords);if(typeof e.meta=="object")this.addMetaSchema(e.meta);addInitialSchemas.call(this);e.validateFormats=a}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){const{$data:e,meta:t,schemaId:r}=this.opts;let a=m;if(r==="id"){a={...m};a.id=a.$id;delete a.$id}if(t&&e)this.addMetaSchema(a,a[r],false)}defaultMeta(){const{meta:e,schemaId:t}=this.opts;return this.opts.defaultMeta=typeof e=="object"?e[t]||e:undefined}validate(e,t){let r;if(typeof e=="string"){r=this.getSchema(e);if(!r)throw new Error(`no schema with key or ref "${e}"`)}else{r=this.compile(e)}const a=r(t);if(!("$async"in r))this.errors=r.errors;return a}compile(e,t){const r=this._addSchema(e,t);return r.validate||this._compileSchemaEnv(r)}compileAsync(e,t){if(typeof this.opts.loadSchema!="function"){throw new Error("options.loadSchema should be a function")}const{loadSchema:r}=this.opts;return runCompileAsync.call(this,e,t);async function runCompileAsync(e,t){await loadMetaSchema.call(this,e.$schema);const r=this._addSchema(e,t);return r.validate||_compileAsync.call(this,r)}async function loadMetaSchema(e){if(e&&!this.getSchema(e)){await runCompileAsync.call(this,{$ref:e},true)}}async function _compileAsync(e){try{return this._compileSchemaEnv(e)}catch(t){if(!(t instanceof s.default))throw t;checkLoaded.call(this,t);await loadMissingSchema.call(this,t.missingSchema);return _compileAsync.call(this,e)}}function checkLoaded({missingSchema:e,missingRef:t}){if(this.refs[e]){throw new Error(`AnySchema ${e} is loaded but ${t} cannot be resolved`)}}async function loadMissingSchema(e){const r=await _loadSchema.call(this,e);if(!this.refs[e])await loadMetaSchema.call(this,r.$schema);if(!this.refs[e])this.addSchema(r,e,t)}async function _loadSchema(e){const t=this._loading[e];if(t)return t;try{return await(this._loading[e]=r(e))}finally{delete this._loading[e]}}}addSchema(e,t,r,a=this.opts.validateSchema){if(Array.isArray(e)){for(const t of e)this.addSchema(t,undefined,r,a);return this}let n;if(typeof e==="object"){const{schemaId:t}=this.opts;n=e[t];if(n!==undefined&&typeof n!="string"){throw new Error(`schema ${t} must be string`)}}t=(0,l.normalizeId)(t||n);this._checkUnique(t);this.schemas[t]=this._addSchema(e,r,t,a,true);return this}addMetaSchema(e,t,r=this.opts.validateSchema){this.addSchema(e,t,true,r);return this}validateSchema(e,t){if(typeof e=="boolean")return true;let r;r=e.$schema;if(r!==undefined&&typeof r!="string"){throw new Error("$schema must be a string")}r=r||this.opts.defaultMeta||this.defaultMeta();if(!r){this.logger.warn("meta-schema not available");this.errors=null;return true}const a=this.validate(r,e);if(!a&&t){const e="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(e);else throw new Error(e)}return a}getSchema(e){let t;while(typeof(t=getSchEnv.call(this,e))=="string")e=t;if(t===undefined){const{schemaId:r}=this.opts;const a=new p.SchemaEnv({schema:{},schemaId:r});t=p.resolveSchema.call(this,a,e);if(!t)return;this.refs[e]=t}return t.validate||this._compileSchemaEnv(t)}removeSchema(e){if(e instanceof RegExp){this._removeAllSchemas(this.schemas,e);this._removeAllSchemas(this.refs,e);return this}switch(typeof e){case"undefined":this._removeAllSchemas(this.schemas);this._removeAllSchemas(this.refs);this._cache.clear();return this;case"string":{const t=getSchEnv.call(this,e);if(typeof t=="object")this._cache.delete(t.schema);delete this.schemas[e];delete this.refs[e];return this}case"object":{const t=e;this._cache.delete(t);let r=e[this.opts.schemaId];if(r){r=(0,l.normalizeId)(r);delete this.schemas[r];delete this.refs[r]}return this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(e){for(const t of e)this.addKeyword(t);return this}addKeyword(e,t){let r;if(typeof e=="string"){r=e;if(typeof t=="object"){this.logger.warn("these parameters are deprecated, see docs for addKeyword");t.keyword=r}}else if(typeof e=="object"&&t===undefined){t=e;r=t.keyword;if(Array.isArray(r)&&!r.length){throw new Error("addKeywords: keyword must be string or non-empty array")}}else{throw new Error("invalid addKeywords parameters")}checkKeyword.call(this,r,t);if(!t){(0,u.eachItem)(r,(e=>addRule.call(this,e)));return this}keywordMetaschema.call(this,t);const a={...t,type:(0,d.getJSONTypes)(t.type),schemaType:(0,d.getJSONTypes)(t.schemaType)};(0,u.eachItem)(r,a.type.length===0?e=>addRule.call(this,e,a):e=>a.type.forEach((t=>addRule.call(this,e,a,t))));return this}getKeyword(e){const t=this.RULES.all[e];return typeof t=="object"?t.definition:!!t}removeKeyword(e){const{RULES:t}=this;delete t.keywords[e];delete t.all[e];for(const r of t.rules){const t=r.rules.findIndex((t=>t.keyword===e));if(t>=0)r.rules.splice(t,1)}return this}addFormat(e,t){if(typeof t=="string")t=new RegExp(t);this.formats[e]=t;return this}errorsText(e=this.errors,{separator:t=", ",dataVar:r="data"}={}){if(!e||e.length===0)return"No errors";return e.map((e=>`${r}${e.instancePath} ${e.message}`)).reduce(((e,r)=>e+t+r))}$dataMetaSchema(e,t){const r=this.RULES.all;e=JSON.parse(JSON.stringify(e));for(const a of t){const t=a.split("/").slice(1);let n=e;for(const e of t)n=n[e];for(const e in r){const t=r[e];if(typeof t!="object")continue;const{$data:a}=t.definition;const i=n[e];if(a&&i)n[e]=schemaOrData(i)}}return e}_removeAllSchemas(e,t){for(const r in e){const a=e[r];if(!t||t.test(r)){if(typeof a=="string"){delete e[r]}else if(a&&!a.meta){this._cache.delete(a.schema);delete e[r]}}}}_addSchema(e,t,r,a=this.opts.validateSchema,n=this.opts.addUsedSchema){let i;const{schemaId:s}=this.opts;if(typeof e=="object"){i=e[s]}else{if(this.opts.jtd)throw new Error("schema must be object");else if(typeof e!="boolean")throw new Error("schema must be object or boolean")}let o=this._cache.get(e);if(o!==undefined)return o;r=(0,l.normalizeId)(i||r);const c=l.getSchemaRefs.call(this,e,r);o=new p.SchemaEnv({schema:e,schemaId:s,meta:t,baseId:r,localRefs:c});this._cache.set(o.schema,o);if(n&&!r.startsWith("#")){if(r)this._checkUnique(r);this.refs[r]=o}if(a)this.validateSchema(e,true);return o}_checkUnique(e){if(this.schemas[e]||this.refs[e]){throw new Error(`schema with key or id "${e}" already exists`)}}_compileSchemaEnv(e){if(e.meta)this._compileMetaSchema(e);else p.compileSchema.call(this,e);if(!e.validate)throw new Error("ajv implementation error");return e.validate}_compileMetaSchema(e){const t=this.opts;this.opts=this._metaOpts;try{p.compileSchema.call(this,e)}finally{this.opts=t}}}t["default"]=Ajv;Ajv.ValidationError=i.default;Ajv.MissingRefError=s.default;function checkOptions(e,t,r,a="error"){for(const n in e){const i=n;if(i in t)this.logger[a](`${r}: option ${n}. ${e[i]}`)}}function getSchEnv(e){e=(0,l.normalizeId)(e);return this.schemas[e]||this.refs[e]}function addInitialSchemas(){const e=this.opts.schemas;if(!e)return;if(Array.isArray(e))this.addSchema(e);else for(const t in e)this.addSchema(e[t],t)}function addInitialFormats(){for(const e in this.opts.formats){const t=this.opts.formats[e];if(t)this.addFormat(e,t)}}function addInitialKeywords(e){if(Array.isArray(e)){this.addVocabulary(e);return}this.logger.warn("keywords option as map is deprecated, pass array");for(const t in e){const r=e[t];if(!r.keyword)r.keyword=t;this.addKeyword(r)}}function getMetaSchemaOptions(){const e={...this.opts};for(const t of g)delete e[t];return e}const x={log(){},warn(){},error(){}};function getLogger(e){if(e===false)return x;if(e===undefined)return console;if(e.log&&e.warn&&e.error)return e;throw new Error("logger must implement log, warn and error methods")}const E=/^[a-z_$][a-z0-9_$:-]*$/i;function checkKeyword(e,t){const{RULES:r}=this;(0,u.eachItem)(e,(e=>{if(r.keywords[e])throw new Error(`Keyword ${e} is already defined`);if(!E.test(e))throw new Error(`Keyword ${e} has invalid name`)}));if(!t)return;if(t.$data&&!("code"in t||"validate"in t)){throw new Error('$data keyword must have "code" or "validate" function')}}function addRule(e,t,r){var a;const n=t===null||t===void 0?void 0:t.post;if(r&&n)throw new Error('keyword with "post" flag cannot have "type"');const{RULES:i}=this;let s=n?i.post:i.rules.find((({type:e})=>e===r));if(!s){s={type:r,rules:[]};i.rules.push(s)}i.keywords[e]=true;if(!t)return;const o={keyword:e,definition:{...t,type:(0,d.getJSONTypes)(t.type),schemaType:(0,d.getJSONTypes)(t.schemaType)}};if(t.before)addBeforeRule.call(this,s,o,t.before);else s.rules.push(o);i.all[e]=o;(a=t.implements)===null||a===void 0?void 0:a.forEach((e=>this.addKeyword(e)))}function addBeforeRule(e,t,r){const a=e.rules.findIndex((e=>e.keyword===r));if(a>=0){e.rules.splice(a,0,t)}else{e.rules.push(t);this.logger.warn(`rule ${r} is not defined`)}}function keywordMetaschema(e){let{metaSchema:t}=e;if(t===undefined)return;if(e.$data&&this.opts.$data)t=schemaOrData(t);e.validateSchema=this.compile(t,true)}const T={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function schemaOrData(e){return{anyOf:[e,T]}}},4735:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(8206);a.code='require("ajv/dist/runtime/equal").default';t["default"]=a},100:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});function ucs2length(e){const t=e.length;let r=0;let a=0;let n;while(a=55296&&n<=56319&&a{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(20);a.code='require("ajv/dist/runtime/uri").default';t["default"]=a},3111:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});class ValidationError extends Error{constructor(e){super("validation failed");this.errors=e;this.ajv=this.validation=true}}t["default"]=ValidationError},7184:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.validateAdditionalItems=void 0;const a=r(6035);const n=r(407);const i={message:({params:{len:e}})=>(0,a.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,a._)`{limit: ${e}}`};const s={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:i,code(e){const{parentSchema:t,it:r}=e;const{items:a}=t;if(!Array.isArray(a)){(0,n.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}validateAdditionalItems(e,a)}};function validateAdditionalItems(e,t){const{gen:r,schema:i,data:s,keyword:o,it:p}=e;p.items=true;const c=r.const("len",(0,a._)`${s}.length`);if(i===false){e.setParams({len:t.length});e.pass((0,a._)`${c} <= ${t.length}`)}else if(typeof i=="object"&&!(0,n.alwaysValidSchema)(p,i)){const n=r.var("valid",(0,a._)`${c} <= ${t.length}`);r.if((0,a.not)(n),(()=>validateItems(n)));e.ok(n)}function validateItems(i){r.forRange("i",t.length,c,(t=>{e.subschema({keyword:o,dataProp:t,dataPropType:n.Type.Num},i);if(!p.allErrors)r.if((0,a.not)(i),(()=>r.break()))}))}}t.validateAdditionalItems=validateAdditionalItems;t["default"]=s},3347:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(982);const n=r(6035);const i=r(5302);const s=r(407);const o={message:"must NOT have additional properties",params:({params:e})=>(0,n._)`{additionalProperty: ${e.additionalProperty}}`};const p={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:true,trackErrors:true,error:o,code(e){const{gen:t,schema:r,parentSchema:o,data:p,errsCount:c,it:l}=e;if(!c)throw new Error("ajv implementation error");const{allErrors:d,opts:u}=l;l.props=true;if(u.removeAdditional!=="all"&&(0,s.alwaysValidSchema)(l,r))return;const m=(0,a.allSchemaProperties)(o.properties);const h=(0,a.allSchemaProperties)(o.patternProperties);checkAdditionalProperties();e.ok((0,n._)`${c} === ${i.default.errors}`);function checkAdditionalProperties(){t.forIn("key",p,(e=>{if(!m.length&&!h.length)additionalPropertyCode(e);else t.if(isAdditional(e),(()=>additionalPropertyCode(e)))}))}function isAdditional(r){let i;if(m.length>8){const e=(0,s.schemaRefOrVal)(l,o.properties,"properties");i=(0,a.isOwnProperty)(t,e,r)}else if(m.length){i=(0,n.or)(...m.map((e=>(0,n._)`${r} === ${e}`)))}else{i=n.nil}if(h.length){i=(0,n.or)(i,...h.map((t=>(0,n._)`${(0,a.usePattern)(e,t)}.test(${r})`)))}return(0,n.not)(i)}function deleteAdditional(e){t.code((0,n._)`delete ${p}[${e}]`)}function additionalPropertyCode(a){if(u.removeAdditional==="all"||u.removeAdditional&&r===false){deleteAdditional(a);return}if(r===false){e.setParams({additionalProperty:a});e.error();if(!d)t.break();return}if(typeof r=="object"&&!(0,s.alwaysValidSchema)(l,r)){const r=t.name("valid");if(u.removeAdditional==="failing"){applyAdditionalSchema(a,r,false);t.if((0,n.not)(r),(()=>{e.reset();deleteAdditional(a)}))}else{applyAdditionalSchema(a,r);if(!d)t.if((0,n.not)(r),(()=>t.break()))}}}function applyAdditionalSchema(t,r,a){const n={keyword:"additionalProperties",dataProp:t,dataPropType:s.Type.Str};if(a===false){Object.assign(n,{compositeRule:true,createErrors:false,allErrors:false})}e.subschema(n,r)}}};t["default"]=p},8870:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(407);const n={keyword:"allOf",schemaType:"array",code(e){const{gen:t,schema:r,it:n}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");const i=t.name("valid");r.forEach(((t,r)=>{if((0,a.alwaysValidSchema)(n,t))return;const s=e.subschema({keyword:"allOf",schemaProp:r},i);e.ok(i);e.mergeEvaluated(s)}))}};t["default"]=n},7155:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(982);const n={keyword:"anyOf",schemaType:"array",trackErrors:true,code:a.validateUnion,error:{message:"must match a schema in anyOf"}};t["default"]=n},8711:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(6035);const n=r(407);const i={message:({params:{min:e,max:t}})=>t===undefined?(0,a.str)`must contain at least ${e} valid item(s)`:(0,a.str)`must contain at least ${e} and no more than ${t} valid item(s)`,params:({params:{min:e,max:t}})=>t===undefined?(0,a._)`{minContains: ${e}}`:(0,a._)`{minContains: ${e}, maxContains: ${t}}`};const s={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:true,error:i,code(e){const{gen:t,schema:r,parentSchema:i,data:s,it:o}=e;let p;let c;const{minContains:l,maxContains:d}=i;if(o.opts.next){p=l===undefined?1:l;c=d}else{p=1}const u=t.const("len",(0,a._)`${s}.length`);e.setParams({min:p,max:c});if(c===undefined&&p===0){(0,n.checkStrictMode)(o,`"minContains" == 0 without "maxContains": "contains" keyword ignored`);return}if(c!==undefined&&p>c){(0,n.checkStrictMode)(o,`"minContains" > "maxContains" is always invalid`);e.fail();return}if((0,n.alwaysValidSchema)(o,r)){let t=(0,a._)`${u} >= ${p}`;if(c!==undefined)t=(0,a._)`${t} && ${u} <= ${c}`;e.pass(t);return}o.items=true;const m=t.name("valid");if(c===undefined&&p===1){validateItems(m,(()=>t.if(m,(()=>t.break()))))}else if(p===0){t.let(m,true);if(c!==undefined)t.if((0,a._)`${s}.length > 0`,validateItemsWithCount)}else{t.let(m,false);validateItemsWithCount()}e.result(m,(()=>e.reset()));function validateItemsWithCount(){const e=t.name("_valid");const r=t.let("count",0);validateItems(e,(()=>t.if(e,(()=>checkLimits(r)))))}function validateItems(r,a){t.forRange("i",0,u,(t=>{e.subschema({keyword:"contains",dataProp:t,dataPropType:n.Type.Num,compositeRule:true},r);a()}))}function checkLimits(e){t.code((0,a._)`${e}++`);if(c===undefined){t.if((0,a._)`${e} >= ${p}`,(()=>t.assign(m,true).break()))}else{t.if((0,a._)`${e} > ${c}`,(()=>t.assign(m,false).break()));if(p===1)t.assign(m,true);else t.if((0,a._)`${e} >= ${p}`,(()=>t.assign(m,true)))}}}};t["default"]=s},6482:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.validateSchemaDeps=t.validatePropertyDeps=t.error=void 0;const a=r(6035);const n=r(407);const i=r(982);t.error={message:({params:{property:e,depsCount:t,deps:r}})=>{const n=t===1?"property":"properties";return(0,a.str)`must have ${n} ${r} when property ${e} is present`},params:({params:{property:e,depsCount:t,deps:r,missingProperty:n}})=>(0,a._)`{property: ${e}, + missingProperty: ${n}, depsCount: ${t}, - deps: ${r}}`};const s={keyword:"dependencies",type:"object",schemaType:"object",error:t.error,code(e){const[t,r]=splitDependencies(e);validatePropertyDeps(e,t);validateSchemaDeps(e,r)}};function splitDependencies({schema:e}){const t={};const r={};for(const a in e){if(a==="__proto__")continue;const i=Array.isArray(e[a])?t:r;i[a]=e[a]}return[t,r]}function validatePropertyDeps(e,t=e.schema){const{gen:r,data:i,it:s}=e;if(Object.keys(t).length===0)return;const o=r.let("missing");for(const p in t){const c=t[p];if(c.length===0)continue;const l=(0,n.propertyInData)(r,i,p,s.opts.ownProperties);e.setParams({property:p,depsCount:c.length,deps:c.join(", ")});if(s.allErrors){r.if(l,(()=>{for(const t of c){(0,n.checkReportMissingProp)(e,t)}}))}else{r.if((0,a._)`${l} && (${(0,n.checkMissingProp)(e,c,o)})`);(0,n.reportMissingProp)(e,o);r.else()}}}t.validatePropertyDeps=validatePropertyDeps;function validateSchemaDeps(e,t=e.schema){const{gen:r,data:a,keyword:s,it:o}=e;const p=r.name("valid");for(const c in t){if((0,i.alwaysValidSchema)(o,t[c]))continue;r.if((0,n.propertyInData)(r,a,c,o.opts.ownProperties),(()=>{const t=e.subschema({keyword:s,schemaProp:c},p);e.mergeValidEvaluated(t,p)}),(()=>r.var(p,true)));e.ok(p)}}t.validateSchemaDeps=validateSchemaDeps;t["default"]=s},621:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(6035);const i=r(407);const n={message:({params:e})=>(0,a.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,a._)`{failingKeyword: ${e.ifClause}}`};const s={keyword:"if",schemaType:["object","boolean"],trackErrors:true,error:n,code(e){const{gen:t,parentSchema:r,it:n}=e;if(r.then===undefined&&r.else===undefined){(0,i.checkStrictMode)(n,'"if" without "then" and "else" is ignored')}const s=hasSchema(n,"then");const o=hasSchema(n,"else");if(!s&&!o)return;const p=t.let("valid",true);const c=t.name("_valid");validateIf();e.reset();if(s&&o){const r=t.let("ifClause");e.setParams({ifClause:r});t.if(c,validateClause("then",r),validateClause("else",r))}else if(s){t.if(c,validateClause("then"))}else{t.if((0,a.not)(c),validateClause("else"))}e.pass(p,(()=>e.error(true)));function validateIf(){const t=e.subschema({keyword:"if",compositeRule:true,createErrors:false,allErrors:false},c);e.mergeEvaluated(t)}function validateClause(r,i){return()=>{const n=e.subschema({keyword:r},c);t.assign(p,c);e.mergeValidEvaluated(n,p);if(i)t.assign(i,(0,a._)`${r}`);else e.setParams({ifClause:r})}}}};function hasSchema(e,t){const r=e.schema[t];return r!==undefined&&!(0,i.alwaysValidSchema)(e,r)}t["default"]=s},7427:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(7184);const i=r(496);const n=r(6309);const s=r(2351);const o=r(8711);const p=r(6482);const c=r(667);const l=r(3347);const d=r(1318);const u=r(4124);const m=r(1201);const h=r(7155);const g=r(7749);const v=r(8870);const y=r(621);const b=r(1983);function getApplicator(e=false){const t=[m.default,h.default,g.default,v.default,y.default,b.default,c.default,l.default,p.default,d.default,u.default];if(e)t.push(i.default,s.default);else t.push(a.default,n.default);t.push(o.default);return t}t["default"]=getApplicator},6309:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.validateTuple=void 0;const a=r(6035);const i=r(407);const n=r(982);const s={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(e){const{schema:t,it:r}=e;if(Array.isArray(t))return validateTuple(e,"additionalItems",t);r.items=true;if((0,i.alwaysValidSchema)(r,t))return;e.ok((0,n.validateArray)(e))}};function validateTuple(e,t,r=e.schema){const{gen:n,parentSchema:s,data:o,keyword:p,it:c}=e;checkStrictTuple(s);if(c.opts.unevaluated&&r.length&&c.items!==true){c.items=i.mergeEvaluated.items(n,r.length,c.items)}const l=n.name("valid");const d=n.const("len",(0,a._)`${o}.length`);r.forEach(((t,r)=>{if((0,i.alwaysValidSchema)(c,t))return;n.if((0,a._)`${d} > ${r}`,(()=>e.subschema({keyword:p,schemaProp:r,dataProp:r},l)));e.ok(l)}));function checkStrictTuple(e){const{opts:a,errSchemaPath:n}=c;const s=r.length;const o=s===e.minItems&&(s===e.maxItems||e[t]===false);if(a.strictTuples&&!o){const e=`"${p}" is ${s}-tuple, but minItems or maxItems/${t} are not specified or different at path "${n}"`;(0,i.checkStrictMode)(c,e,a.strictTuples)}}}t.validateTuple=validateTuple;t["default"]=s},2351:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(6035);const i=r(407);const n=r(982);const s=r(7184);const o={message:({params:{len:e}})=>(0,a.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,a._)`{limit: ${e}}`};const p={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:o,code(e){const{schema:t,parentSchema:r,it:a}=e;const{prefixItems:o}=r;a.items=true;if((0,i.alwaysValidSchema)(a,t))return;if(o)(0,s.validateAdditionalItems)(e,o);else e.ok((0,n.validateArray)(e))}};t["default"]=p},1201:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(407);const i={keyword:"not",schemaType:["object","boolean"],trackErrors:true,code(e){const{gen:t,schema:r,it:i}=e;if((0,a.alwaysValidSchema)(i,r)){e.fail();return}const n=t.name("valid");e.subschema({keyword:"not",compositeRule:true,createErrors:false,allErrors:false},n);e.failResult(n,(()=>e.reset()),(()=>e.error()))},error:{message:"must NOT be valid"}};t["default"]=i},7749:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(6035);const i=r(407);const n={message:"must match exactly one schema in oneOf",params:({params:e})=>(0,a._)`{passingSchemas: ${e.passing}}`};const s={keyword:"oneOf",schemaType:"array",trackErrors:true,error:n,code(e){const{gen:t,schema:r,parentSchema:n,it:s}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");if(s.opts.discriminator&&n.discriminator)return;const o=r;const p=t.let("valid",false);const c=t.let("passing",null);const l=t.name("_valid");e.setParams({passing:c});t.block(validateOneOf);e.result(p,(()=>e.reset()),(()=>e.error(true)));function validateOneOf(){o.forEach(((r,n)=>{let o;if((0,i.alwaysValidSchema)(s,r)){t.var(l,true)}else{o=e.subschema({keyword:"oneOf",schemaProp:n,compositeRule:true},l)}if(n>0){t.if((0,a._)`${l} && ${p}`).assign(p,false).assign(c,(0,a._)`[${c}, ${n}]`).else()}t.if(l,(()=>{t.assign(p,true);t.assign(c,n);if(o)e.mergeEvaluated(o,a.Name)}))}))}}};t["default"]=s},4124:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(982);const i=r(6035);const n=r(407);const s=r(407);const o={keyword:"patternProperties",type:"object",schemaType:"object",code(e){const{gen:t,schema:r,data:o,parentSchema:p,it:c}=e;const{opts:l}=c;const d=(0,a.allSchemaProperties)(r);const u=d.filter((e=>(0,n.alwaysValidSchema)(c,r[e])));if(d.length===0||u.length===d.length&&(!c.opts.unevaluated||c.props===true)){return}const m=l.strictSchema&&!l.allowMatchingProperties&&p.properties;const h=t.name("valid");if(c.props!==true&&!(c.props instanceof i.Name)){c.props=(0,s.evaluatedPropsToName)(t,c.props)}const{props:g}=c;validatePatternProperties();function validatePatternProperties(){for(const e of d){if(m)checkMatchingProperties(e);if(c.allErrors){validateProperties(e)}else{t.var(h,true);validateProperties(e);t.if(h)}}}function checkMatchingProperties(e){for(const t in m){if(new RegExp(e).test(t)){(0,n.checkStrictMode)(c,`property ${t} matches pattern ${e} (use allowMatchingProperties)`)}}}function validateProperties(r){t.forIn("key",o,(n=>{t.if((0,i._)`${(0,a.usePattern)(e,r)}.test(${n})`,(()=>{const a=u.includes(r);if(!a){e.subschema({keyword:"patternProperties",schemaProp:r,dataProp:n,dataPropType:s.Type.Str},h)}if(c.opts.unevaluated&&g!==true){t.assign((0,i._)`${g}[${n}]`,true)}else if(!a&&!c.allErrors){t.if((0,i.not)(h),(()=>t.break()))}}))}))}}};t["default"]=o},496:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(6309);const i={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:e=>(0,a.validateTuple)(e,"items")};t["default"]=i},1318:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(4988);const i=r(982);const n=r(407);const s=r(3347);const o={keyword:"properties",type:"object",schemaType:"object",code(e){const{gen:t,schema:r,parentSchema:o,data:p,it:c}=e;if(c.opts.removeAdditional==="all"&&o.additionalProperties===undefined){s.default.code(new a.KeywordCxt(c,s.default,"additionalProperties"))}const l=(0,i.allSchemaProperties)(r);for(const e of l){c.definedProperties.add(e)}if(c.opts.unevaluated&&l.length&&c.props!==true){c.props=n.mergeEvaluated.props(t,(0,n.toHash)(l),c.props)}const d=l.filter((e=>!(0,n.alwaysValidSchema)(c,r[e])));if(d.length===0)return;const u=t.name("valid");for(const r of d){if(hasDefault(r)){applyPropertySchema(r)}else{t.if((0,i.propertyInData)(t,p,r,c.opts.ownProperties));applyPropertySchema(r);if(!c.allErrors)t.else().var(u,true);t.endIf()}e.it.definedProperties.add(r);e.ok(u)}function hasDefault(e){return c.opts.useDefaults&&!c.compositeRule&&r[e].default!==undefined}function applyPropertySchema(t){e.subschema({keyword:"properties",schemaProp:t,dataProp:t},u)}}};t["default"]=o},667:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(6035);const i=r(407);const n={message:"property name must be valid",params:({params:e})=>(0,a._)`{propertyName: ${e.propertyName}}`};const s={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:n,code(e){const{gen:t,schema:r,data:n,it:s}=e;if((0,i.alwaysValidSchema)(s,r))return;const o=t.name("valid");t.forIn("key",n,(r=>{e.setParams({propertyName:r});e.subschema({keyword:"propertyNames",data:r,dataTypes:["string"],propertyName:r,compositeRule:true},o);t.if((0,a.not)(o),(()=>{e.error(true);if(!s.allErrors)t.break()}))}));e.ok(o)}};t["default"]=s},1983:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(407);const i={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:r}){if(t.if===undefined)(0,a.checkStrictMode)(r,`"${e}" without "if" is ignored`)}};t["default"]=i},982:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.validateUnion=t.validateArray=t.usePattern=t.callValidateCode=t.schemaProperties=t.allSchemaProperties=t.noPropertyInData=t.propertyInData=t.isOwnProperty=t.hasPropFunc=t.reportMissingProp=t.checkMissingProp=t.checkReportMissingProp=void 0;const a=r(6035);const i=r(407);const n=r(5302);const s=r(407);function checkReportMissingProp(e,t){const{gen:r,data:i,it:n}=e;r.if(noPropertyInData(r,i,t,n.opts.ownProperties),(()=>{e.setParams({missingProperty:(0,a._)`${t}`},true);e.error()}))}t.checkReportMissingProp=checkReportMissingProp;function checkMissingProp({gen:e,data:t,it:{opts:r}},i,n){return(0,a.or)(...i.map((i=>(0,a.and)(noPropertyInData(e,t,i,r.ownProperties),(0,a._)`${n} = ${i}`))))}t.checkMissingProp=checkMissingProp;function reportMissingProp(e,t){e.setParams({missingProperty:t},true);e.error()}t.reportMissingProp=reportMissingProp;function hasPropFunc(e){return e.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,a._)`Object.prototype.hasOwnProperty`})}t.hasPropFunc=hasPropFunc;function isOwnProperty(e,t,r){return(0,a._)`${hasPropFunc(e)}.call(${t}, ${r})`}t.isOwnProperty=isOwnProperty;function propertyInData(e,t,r,i){const n=(0,a._)`${t}${(0,a.getProperty)(r)} !== undefined`;return i?(0,a._)`${n} && ${isOwnProperty(e,t,r)}`:n}t.propertyInData=propertyInData;function noPropertyInData(e,t,r,i){const n=(0,a._)`${t}${(0,a.getProperty)(r)} === undefined`;return i?(0,a.or)(n,(0,a.not)(isOwnProperty(e,t,r))):n}t.noPropertyInData=noPropertyInData;function allSchemaProperties(e){return e?Object.keys(e).filter((e=>e!=="__proto__")):[]}t.allSchemaProperties=allSchemaProperties;function schemaProperties(e,t){return allSchemaProperties(t).filter((r=>!(0,i.alwaysValidSchema)(e,t[r])))}t.schemaProperties=schemaProperties;function callValidateCode({schemaCode:e,data:t,it:{gen:r,topSchemaRef:i,schemaPath:s,errorPath:o},it:p},c,l,d){const u=d?(0,a._)`${e}, ${t}, ${i}${s}`:t;const m=[[n.default.instancePath,(0,a.strConcat)(n.default.instancePath,o)],[n.default.parentData,p.parentData],[n.default.parentDataProperty,p.parentDataProperty],[n.default.rootData,n.default.rootData]];if(p.opts.dynamicRef)m.push([n.default.dynamicAnchors,n.default.dynamicAnchors]);const h=(0,a._)`${u}, ${r.object(...m)}`;return l!==a.nil?(0,a._)`${c}.call(${l}, ${h})`:(0,a._)`${c}(${h})`}t.callValidateCode=callValidateCode;const o=(0,a._)`new RegExp`;function usePattern({gen:e,it:{opts:t}},r){const i=t.unicodeRegExp?"u":"";const{regExp:n}=t.code;const p=n(r,i);return e.scopeValue("pattern",{key:p.toString(),ref:p,code:(0,a._)`${n.code==="new RegExp"?o:(0,s.useFunc)(e,n)}(${r}, ${i})`})}t.usePattern=usePattern;function validateArray(e){const{gen:t,data:r,keyword:n,it:s}=e;const o=t.name("valid");if(s.allErrors){const e=t.let("valid",true);validateItems((()=>t.assign(e,false)));return e}t.var(o,true);validateItems((()=>t.break()));return o;function validateItems(s){const p=t.const("len",(0,a._)`${r}.length`);t.forRange("i",0,p,(r=>{e.subschema({keyword:n,dataProp:r,dataPropType:i.Type.Num},o);t.if((0,a.not)(o),s)}))}}t.validateArray=validateArray;function validateUnion(e){const{gen:t,schema:r,keyword:n,it:s}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");const o=r.some((e=>(0,i.alwaysValidSchema)(s,e)));if(o&&!s.opts.unevaluated)return;const p=t.let("valid",false);const c=t.name("_valid");t.block((()=>r.forEach(((r,i)=>{const s=e.subschema({keyword:n,schemaProp:i,compositeRule:true},c);t.assign(p,(0,a._)`${p} || ${c}`);const o=e.mergeValidEvaluated(s,c);if(!o)t.if((0,a.not)(p))}))));e.result(p,(()=>e.reset()),(()=>e.error(true)))}t.validateUnion=validateUnion},1408:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const r={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};t["default"]=r},8182:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(1408);const i=r(3281);const n=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",a.default,i.default];t["default"]=n},3281:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.callRef=t.getValidate=void 0;const a=r(2146);const i=r(982);const n=r(6035);const s=r(5302);const o=r(9230);const p=r(407);const c={keyword:"$ref",schemaType:"string",code(e){const{gen:t,schema:r,it:i}=e;const{baseId:s,schemaEnv:p,validateName:c,opts:l,self:d}=i;const{root:u}=p;if((r==="#"||r==="#/")&&s===u.baseId)return callRootRef();const m=o.resolveRef.call(d,u,s,r);if(m===undefined)throw new a.default(i.opts.uriResolver,s,r);if(m instanceof o.SchemaEnv)return callValidate(m);return inlineRefSchema(m);function callRootRef(){if(p===u)return callRef(e,c,p,p.$async);const r=t.scopeValue("root",{ref:u});return callRef(e,(0,n._)`${r}.validate`,u,u.$async)}function callValidate(t){const r=getValidate(e,t);callRef(e,r,t,t.$async)}function inlineRefSchema(a){const i=t.scopeValue("schema",l.code.source===true?{ref:a,code:(0,n.stringify)(a)}:{ref:a});const s=t.name("valid");const o=e.subschema({schema:a,dataTypes:[],schemaPath:n.nil,topSchemaRef:i,errSchemaPath:r},s);e.mergeEvaluated(o);e.ok(s)}}};function getValidate(e,t){const{gen:r}=e;return t.validate?r.scopeValue("validate",{ref:t.validate}):(0,n._)`${r.scopeValue("wrapper",{ref:t})}.validate`}t.getValidate=getValidate;function callRef(e,t,r,a){const{gen:o,it:c}=e;const{allErrors:l,schemaEnv:d,opts:u}=c;const m=u.passContext?s.default.this:n.nil;if(a)callAsyncRef();else callSyncRef();function callAsyncRef(){if(!d.$async)throw new Error("async schema referenced by sync schema");const r=o.let("valid");o.try((()=>{o.code((0,n._)`await ${(0,i.callValidateCode)(e,t,m)}`);addEvaluatedFrom(t);if(!l)o.assign(r,true)}),(e=>{o.if((0,n._)`!(${e} instanceof ${c.ValidationError})`,(()=>o.throw(e)));addErrorsFrom(e);if(!l)o.assign(r,false)}));e.ok(r)}function callSyncRef(){e.result((0,i.callValidateCode)(e,t,m),(()=>addEvaluatedFrom(t)),(()=>addErrorsFrom(t)))}function addErrorsFrom(e){const t=(0,n._)`${e}.errors`;o.assign(s.default.vErrors,(0,n._)`${s.default.vErrors} === null ? ${t} : ${s.default.vErrors}.concat(${t})`);o.assign(s.default.errors,(0,n._)`${s.default.vErrors}.length`)}function addEvaluatedFrom(e){var t;if(!c.opts.unevaluated)return;const a=(t=r===null||r===void 0?void 0:r.validate)===null||t===void 0?void 0:t.evaluated;if(c.props!==true){if(a&&!a.dynamicProps){if(a.props!==undefined){c.props=p.mergeEvaluated.props(o,a.props,c.props)}}else{const t=o.var("props",(0,n._)`${e}.evaluated.props`);c.props=p.mergeEvaluated.props(o,t,c.props,n.Name)}}if(c.items!==true){if(a&&!a.dynamicItems){if(a.items!==undefined){c.items=p.mergeEvaluated.items(o,a.items,c.items)}}else{const t=o.var("items",(0,n._)`${e}.evaluated.items`);c.items=p.mergeEvaluated.items(o,t,c.items,n.Name)}}}}t.callRef=callRef;t["default"]=c},6658:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(6035);const i=r(543);const n=r(9230);const s=r(407);const o={message:({params:{discrError:e,tagName:t}})=>e===i.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:t,tagName:r}})=>(0,a._)`{error: ${e}, tag: ${r}, tagValue: ${t}}`};const p={keyword:"discriminator",type:"object",schemaType:"object",error:o,code(e){const{gen:t,data:r,schema:o,parentSchema:p,it:c}=e;const{oneOf:l}=p;if(!c.opts.discriminator){throw new Error("discriminator: requires discriminator option")}const d=o.propertyName;if(typeof d!="string")throw new Error("discriminator: requires propertyName");if(o.mapping)throw new Error("discriminator: mapping is not supported");if(!l)throw new Error("discriminator: requires oneOf keyword");const u=t.let("valid",false);const m=t.const("tag",(0,a._)`${r}${(0,a.getProperty)(d)}`);t.if((0,a._)`typeof ${m} == "string"`,(()=>validateMapping()),(()=>e.error(false,{discrError:i.DiscrError.Tag,tag:m,tagName:d})));e.ok(u);function validateMapping(){const r=getMapping();t.if(false);for(const e in r){t.elseIf((0,a._)`${m} === ${e}`);t.assign(u,applyTagSchema(r[e]))}t.else();e.error(false,{discrError:i.DiscrError.Mapping,tag:m,tagName:d});t.endIf()}function applyTagSchema(r){const i=t.name("valid");const n=e.subschema({keyword:"oneOf",schemaProp:r},i);e.mergeEvaluated(n,a.Name);return i}function getMapping(){var e;const t={};const r=hasRequired(p);let a=true;for(let t=0;t{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.DiscrError=void 0;var r;(function(e){e["Tag"]="tag";e["Mapping"]="mapping"})(r=t.DiscrError||(t.DiscrError={}))},5826:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(8182);const i=r(2575);const n=r(7427);const s=r(8909);const o=r(5156);const p=[a.default,i.default,(0,n.default)(),s.default,o.metadataVocabulary,o.contentVocabulary];t["default"]=p},8502:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(6035);const i={message:({schemaCode:e})=>(0,a.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,a._)`{format: ${e}}`};const n={keyword:"format",type:["number","string"],schemaType:"string",$data:true,error:i,code(e,t){const{gen:r,data:i,$data:n,schema:s,schemaCode:o,it:p}=e;const{opts:c,errSchemaPath:l,schemaEnv:d,self:u}=p;if(!c.validateFormats)return;if(n)validate$DataFormat();else validateFormat();function validate$DataFormat(){const n=r.scopeValue("formats",{ref:u.formats,code:c.code.formats});const s=r.const("fDef",(0,a._)`${n}[${o}]`);const p=r.let("fType");const l=r.let("format");r.if((0,a._)`typeof ${s} == "object" && !(${s} instanceof RegExp)`,(()=>r.assign(p,(0,a._)`${s}.type || "string"`).assign(l,(0,a._)`${s}.validate`)),(()=>r.assign(p,(0,a._)`"string"`).assign(l,s)));e.fail$data((0,a.or)(unknownFmt(),invalidFmt()));function unknownFmt(){if(c.strictSchema===false)return a.nil;return(0,a._)`${o} && !${l}`}function invalidFmt(){const e=d.$async?(0,a._)`(${s}.async ? await ${l}(${i}) : ${l}(${i}))`:(0,a._)`${l}(${i})`;const r=(0,a._)`(typeof ${l} == "function" ? ${e} : ${l}.test(${i}))`;return(0,a._)`${l} && ${l} !== true && ${p} === ${t} && !${r}`}}function validateFormat(){const n=u.formats[s];if(!n){unknownFormat();return}if(n===true)return;const[o,p,m]=getFormat(n);if(o===t)e.pass(validCondition());function unknownFormat(){if(c.strictSchema===false){u.logger.warn(unknownMsg());return}throw new Error(unknownMsg());function unknownMsg(){return`unknown format "${s}" ignored in schema at path "${l}"`}}function getFormat(e){const t=e instanceof RegExp?(0,a.regexpCode)(e):c.code.formats?(0,a._)`${c.code.formats}${(0,a.getProperty)(s)}`:undefined;const i=r.scopeValue("formats",{key:s,ref:e,code:t});if(typeof e=="object"&&!(e instanceof RegExp)){return[e.type||"string",e.validate,(0,a._)`${i}.validate`]}return["string",e,i]}function validCondition(){if(typeof n=="object"&&!(n instanceof RegExp)&&n.async){if(!d.$async)throw new Error("async format in sync schema");return(0,a._)`await ${m}(${i})`}return typeof p=="function"?(0,a._)`${m}(${i})`:(0,a._)`${m}.test(${i})`}}}};t["default"]=n},8909:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(8502);const i=[a.default];t["default"]=i},5156:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.contentVocabulary=t.metadataVocabulary=void 0;t.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];t.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]},1410:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(6035);const i=r(407);const n=r(4735);const s={message:"must be equal to constant",params:({schemaCode:e})=>(0,a._)`{allowedValue: ${e}}`};const o={keyword:"const",$data:true,error:s,code(e){const{gen:t,data:r,$data:s,schemaCode:o,schema:p}=e;if(s||p&&typeof p=="object"){e.fail$data((0,a._)`!${(0,i.useFunc)(t,n.default)}(${r}, ${o})`)}else{e.fail((0,a._)`${p} !== ${r}`)}}};t["default"]=o},475:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(6035);const i=r(407);const n=r(4735);const s={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,a._)`{allowedValues: ${e}}`};const o={keyword:"enum",schemaType:"array",$data:true,error:s,code(e){const{gen:t,data:r,$data:s,schema:o,schemaCode:p,it:c}=e;if(!s&&o.length===0)throw new Error("enum must have non-empty array");const l=o.length>=c.opts.loopEnum;let d;const getEql=()=>d!==null&&d!==void 0?d:d=(0,i.useFunc)(t,n.default);let u;if(l||s){u=t.let("valid");e.block$data(u,loopEnum)}else{if(!Array.isArray(o))throw new Error("ajv implementation error");const e=t.const("vSchema",p);u=(0,a.or)(...o.map(((t,r)=>equalCode(e,r))))}e.pass(u);function loopEnum(){t.assign(u,false);t.forOf("v",p,(e=>t.if((0,a._)`${getEql()}(${r}, ${e})`,(()=>t.assign(u,true).break()))))}function equalCode(e,t){const i=o[t];return typeof i==="object"&&i!==null?(0,a._)`${getEql()}(${r}, ${e}[${t}])`:(0,a._)`${r} === ${i}`}}};t["default"]=o},2575:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(7182);const i=r(2412);const n=r(2250);const s=r(7576);const o=r(2507);const p=r(3688);const c=r(5769);const l=r(6949);const d=r(1410);const u=r(475);const m=[a.default,i.default,n.default,s.default,o.default,p.default,c.default,l.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},d.default,u.default];t["default"]=m},5769:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(6035);const i={message({keyword:e,schemaCode:t}){const r=e==="maxItems"?"more":"fewer";return(0,a.str)`must NOT have ${r} than ${t} items`},params:({schemaCode:e})=>(0,a._)`{limit: ${e}}`};const n={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:true,error:i,code(e){const{keyword:t,data:r,schemaCode:i}=e;const n=t==="maxItems"?a.operators.GT:a.operators.LT;e.fail$data((0,a._)`${r}.length ${n} ${i}`)}};t["default"]=n},2250:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(6035);const i=r(407);const n=r(100);const s={message({keyword:e,schemaCode:t}){const r=e==="maxLength"?"more":"fewer";return(0,a.str)`must NOT have ${r} than ${t} characters`},params:({schemaCode:e})=>(0,a._)`{limit: ${e}}`};const o={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:true,error:s,code(e){const{keyword:t,data:r,schemaCode:s,it:o}=e;const p=t==="maxLength"?a.operators.GT:a.operators.LT;const c=o.opts.unicode===false?(0,a._)`${r}.length`:(0,a._)`${(0,i.useFunc)(e.gen,n.default)}(${r})`;e.fail$data((0,a._)`${c} ${p} ${s}`)}};t["default"]=o},7182:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(6035);const i=a.operators;const n={maximum:{okStr:"<=",ok:i.LTE,fail:i.GT},minimum:{okStr:">=",ok:i.GTE,fail:i.LT},exclusiveMaximum:{okStr:"<",ok:i.LT,fail:i.GTE},exclusiveMinimum:{okStr:">",ok:i.GT,fail:i.LTE}};const s={message:({keyword:e,schemaCode:t})=>(0,a.str)`must be ${n[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,a._)`{comparison: ${n[e].okStr}, limit: ${t}}`};const o={keyword:Object.keys(n),type:"number",schemaType:"number",$data:true,error:s,code(e){const{keyword:t,data:r,schemaCode:i}=e;e.fail$data((0,a._)`${r} ${n[t].fail} ${i} || isNaN(${r})`)}};t["default"]=o},2507:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(6035);const i={message({keyword:e,schemaCode:t}){const r=e==="maxProperties"?"more":"fewer";return(0,a.str)`must NOT have ${r} than ${t} properties`},params:({schemaCode:e})=>(0,a._)`{limit: ${e}}`};const n={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:true,error:i,code(e){const{keyword:t,data:r,schemaCode:i}=e;const n=t==="maxProperties"?a.operators.GT:a.operators.LT;e.fail$data((0,a._)`Object.keys(${r}).length ${n} ${i}`)}};t["default"]=n},2412:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(6035);const i={message:({schemaCode:e})=>(0,a.str)`must be multiple of ${e}`,params:({schemaCode:e})=>(0,a._)`{multipleOf: ${e}}`};const n={keyword:"multipleOf",type:"number",schemaType:"number",$data:true,error:i,code(e){const{gen:t,data:r,schemaCode:i,it:n}=e;const s=n.opts.multipleOfPrecision;const o=t.let("res");const p=s?(0,a._)`Math.abs(Math.round(${o}) - ${o}) > 1e-${s}`:(0,a._)`${o} !== parseInt(${o})`;e.fail$data((0,a._)`(${i} === 0 || (${o} = ${r}/${i}, ${p}))`)}};t["default"]=n},7576:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(982);const i=r(6035);const n={message:({schemaCode:e})=>(0,i.str)`must match pattern "${e}"`,params:({schemaCode:e})=>(0,i._)`{pattern: ${e}}`};const s={keyword:"pattern",type:"string",schemaType:"string",$data:true,error:n,code(e){const{data:t,$data:r,schema:n,schemaCode:s,it:o}=e;const p=o.opts.unicodeRegExp?"u":"";const c=r?(0,i._)`(new RegExp(${s}, ${p}))`:(0,a.usePattern)(e,n);e.fail$data((0,i._)`!${c}.test(${t})`)}};t["default"]=s},3688:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(982);const i=r(6035);const n=r(407);const s={message:({params:{missingProperty:e}})=>(0,i.str)`must have required property '${e}'`,params:({params:{missingProperty:e}})=>(0,i._)`{missingProperty: ${e}}`};const o={keyword:"required",type:"object",schemaType:"array",$data:true,error:s,code(e){const{gen:t,schema:r,schemaCode:s,data:o,$data:p,it:c}=e;const{opts:l}=c;if(!p&&r.length===0)return;const d=r.length>=l.loopRequired;if(c.allErrors)allErrorsMode();else exitOnErrorMode();if(l.strictRequired){const t=e.parentSchema.properties;const{definedProperties:a}=e.it;for(const e of r){if((t===null||t===void 0?void 0:t[e])===undefined&&!a.has(e)){const t=c.schemaEnv.baseId+c.errSchemaPath;const r=`required property "${e}" is not defined at "${t}" (strictRequired)`;(0,n.checkStrictMode)(c,r,c.opts.strictRequired)}}}function allErrorsMode(){if(d||p){e.block$data(i.nil,loopAllRequired)}else{for(const t of r){(0,a.checkReportMissingProp)(e,t)}}}function exitOnErrorMode(){const i=t.let("missing");if(d||p){const r=t.let("valid",true);e.block$data(r,(()=>loopUntilMissing(i,r)));e.ok(r)}else{t.if((0,a.checkMissingProp)(e,r,i));(0,a.reportMissingProp)(e,i);t.else()}}function loopAllRequired(){t.forOf("prop",s,(r=>{e.setParams({missingProperty:r});t.if((0,a.noPropertyInData)(t,o,r,l.ownProperties),(()=>e.error()))}))}function loopUntilMissing(r,n){e.setParams({missingProperty:r});t.forOf(r,s,(()=>{t.assign(n,(0,a.propertyInData)(t,o,r,l.ownProperties));t.if((0,i.not)(n),(()=>{e.error();t.break()}))}),i.nil)}}};t["default"]=o},6949:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(2933);const i=r(6035);const n=r(407);const s=r(4735);const o={message:({params:{i:e,j:t}})=>(0,i.str)`must NOT have duplicate items (items ## ${t} and ${e} are identical)`,params:({params:{i:e,j:t}})=>(0,i._)`{i: ${e}, j: ${t}}`};const p={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:true,error:o,code(e){const{gen:t,data:r,$data:o,schema:p,parentSchema:c,schemaCode:l,it:d}=e;if(!o&&!p)return;const u=t.let("valid");const m=c.items?(0,a.getSchemaTypes)(c.items):[];e.block$data(u,validateUniqueItems,(0,i._)`${l} === false`);e.ok(u);function validateUniqueItems(){const a=t.let("i",(0,i._)`${r}.length`);const n=t.let("j");e.setParams({i:a,j:n});t.assign(u,true);t.if((0,i._)`${a} > 1`,(()=>(canOptimize()?loopN:loopN2)(a,n)))}function canOptimize(){return m.length>0&&!m.some((e=>e==="object"||e==="array"))}function loopN(n,s){const o=t.name("item");const p=(0,a.checkDataTypes)(m,o,d.opts.strictNumbers,a.DataType.Wrong);const c=t.const("indices",(0,i._)`{}`);t.for((0,i._)`;${n}--;`,(()=>{t.let(o,(0,i._)`${r}[${n}]`);t.if(p,(0,i._)`continue`);if(m.length>1)t.if((0,i._)`typeof ${o} == "string"`,(0,i._)`${o} += "_"`);t.if((0,i._)`typeof ${c}[${o}] == "number"`,(()=>{t.assign(s,(0,i._)`${c}[${o}]`);e.error();t.assign(u,false).break()})).code((0,i._)`${c}[${o}] = ${n}`)}))}function loopN2(a,o){const p=(0,n.useFunc)(t,s.default);const c=t.name("outer");t.label(c).for((0,i._)`;${a}--;`,(()=>t.for((0,i._)`${o} = ${a}; ${o}--;`,(()=>t.if((0,i._)`${p}(${r}[${a}], ${r}[${o}])`,(()=>{e.error();t.assign(u,false).break(c)}))))))}}};t["default"]=p},9263:e=>{"use strict";var t=e.exports=function(e,t,r){if(typeof t=="function"){r=t;t={}}r=t.cb||r;var a=typeof r=="function"?r:r.pre||function(){};var i=r.post||function(){};_traverse(t,a,i,e,"",e)};t.keywords={additionalItems:true,items:true,contains:true,additionalProperties:true,propertyNames:true,not:true,if:true,then:true,else:true};t.arrayKeywords={items:true,allOf:true,anyOf:true,oneOf:true};t.propsKeywords={$defs:true,definitions:true,properties:true,patternProperties:true,dependencies:true};t.skipKeywords={default:true,enum:true,const:true,required:true,maximum:true,minimum:true,exclusiveMaximum:true,exclusiveMinimum:true,multipleOf:true,maxLength:true,minLength:true,pattern:true,format:true,maxItems:true,minItems:true,uniqueItems:true,maxProperties:true,minProperties:true};function _traverse(e,r,a,i,n,s,o,p,c,l){if(i&&typeof i=="object"&&!Array.isArray(i)){r(i,n,s,o,p,c,l);for(var d in i){var u=i[d];if(Array.isArray(u)){if(d in t.arrayKeywords){for(var m=0;m{"use strict";function __export(e){for(var r in e)if(!t.hasOwnProperty(r))t[r]=e[r]}Object.defineProperty(t,"__esModule",{value:true});__export(r(2825))},2825:function(e,t,r){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});const i=r(7147);const n=a(r(8237));const s=n.default("@kwsites/file-exists");function check(e,t,r){s(`checking %s`,e);try{const a=i.statSync(e);if(a.isFile()&&t){s(`[OK] path represents a file`);return true}if(a.isDirectory()&&r){s(`[OK] path represents a directory`);return true}s(`[FAIL] path represents something other than a file or directory`);return false}catch(e){if(e.code==="ENOENT"){s(`[FAIL] path is not accessible: %o`,e);return false}s(`[FATAL] %o`,e);throw e}}function exists(e,r=t.READABLE){return check(e,(r&t.FILE)>0,(r&t.FOLDER)>0)}t.exists=exists;t.FILE=1;t.FOLDER=2;t.READABLE=t.FILE+t.FOLDER},9819:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.createDeferred=t.deferred=void 0;function deferred(){let e;let t;let r="pending";const a=new Promise(((r,a)=>{e=r;t=a}));return{promise:a,done(t){if(r==="pending"){r="resolved";e(t)}},fail(e){if(r==="pending"){r="rejected";t(e)}},get fulfilled(){return r!=="pending"},get status(){return r}}}t.deferred=deferred;t.createDeferred=deferred;t["default"]=deferred},334:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const r=/^v1\./;const a=/^ghs_/;const i=/^ghu_/;async function auth(e){const t=e.split(/\./).length===3;const n=r.test(e)||a.test(e);const s=i.test(e);const o=t?"app":n?"installation":s?"user-to-server":"oauth";return{type:"token",token:e,tokenType:o}}function withAuthorizationPrefix(e){if(e.split(/\./).length===3){return`bearer ${e}`}return`token ${e}`}async function hook(e,t,r,a){const i=t.endpoint.merge(r,a);i.headers.authorization=withAuthorizationPrefix(e);return t(i)}const n=function createTokenAuth(e){if(!e){throw new Error("[@octokit/auth-token] No token passed to createTokenAuth")}if(typeof e!=="string"){throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string")}e=e.replace(/^(token|bearer) +/i,"");return Object.assign(auth.bind(null,e),{hook:hook.bind(null,e)})};t.createTokenAuth=n},9440:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});var a=r(3287);var i=r(5030);function lowercaseKeys(e){if(!e){return{}}return Object.keys(e).reduce(((t,r)=>{t[r.toLowerCase()]=e[r];return t}),{})}function mergeDeep(e,t){const r=Object.assign({},e);Object.keys(t).forEach((i=>{if(a.isPlainObject(t[i])){if(!(i in e))Object.assign(r,{[i]:t[i]});else r[i]=mergeDeep(e[i],t[i])}else{Object.assign(r,{[i]:t[i]})}}));return r}function removeUndefinedProperties(e){for(const t in e){if(e[t]===undefined){delete e[t]}}return e}function merge(e,t,r){if(typeof t==="string"){let[e,a]=t.split(" ");r=Object.assign(a?{method:e,url:a}:{url:e},r)}else{r=Object.assign({},t)}r.headers=lowercaseKeys(r.headers);removeUndefinedProperties(r);removeUndefinedProperties(r.headers);const a=mergeDeep(e||{},r);if(e&&e.mediaType.previews.length){a.mediaType.previews=e.mediaType.previews.filter((e=>!a.mediaType.previews.includes(e))).concat(a.mediaType.previews)}a.mediaType.previews=a.mediaType.previews.map((e=>e.replace(/-preview/,"")));return a}function addQueryParameters(e,t){const r=/\?/.test(e)?"&":"?";const a=Object.keys(t);if(a.length===0){return e}return e+r+a.map((e=>{if(e==="q"){return"q="+t.q.split("+").map(encodeURIComponent).join("+")}return`${e}=${encodeURIComponent(t[e])}`})).join("&")}const n=/\{[^}]+\}/g;function removeNonChars(e){return e.replace(/^\W+|\W+$/g,"").split(/,/)}function extractUrlVariableNames(e){const t=e.match(n);if(!t){return[]}return t.map(removeNonChars).reduce(((e,t)=>e.concat(t)),[])}function omit(e,t){return Object.keys(e).filter((e=>!t.includes(e))).reduce(((t,r)=>{t[r]=e[r];return t}),{})}function encodeReserved(e){return e.split(/(%[0-9A-Fa-f]{2})/g).map((function(e){if(!/%[0-9A-Fa-f]/.test(e)){e=encodeURI(e).replace(/%5B/g,"[").replace(/%5D/g,"]")}return e})).join("")}function encodeUnreserved(e){return encodeURIComponent(e).replace(/[!'()*]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function encodeValue(e,t,r){t=e==="+"||e==="#"?encodeReserved(t):encodeUnreserved(t);if(r){return encodeUnreserved(r)+"="+t}else{return t}}function isDefined(e){return e!==undefined&&e!==null}function isKeyOperator(e){return e===";"||e==="&"||e==="?"}function getValues(e,t,r,a){var i=e[r],n=[];if(isDefined(i)&&i!==""){if(typeof i==="string"||typeof i==="number"||typeof i==="boolean"){i=i.toString();if(a&&a!=="*"){i=i.substring(0,parseInt(a,10))}n.push(encodeValue(t,i,isKeyOperator(t)?r:""))}else{if(a==="*"){if(Array.isArray(i)){i.filter(isDefined).forEach((function(e){n.push(encodeValue(t,e,isKeyOperator(t)?r:""))}))}else{Object.keys(i).forEach((function(e){if(isDefined(i[e])){n.push(encodeValue(t,i[e],e))}}))}}else{const e=[];if(Array.isArray(i)){i.filter(isDefined).forEach((function(r){e.push(encodeValue(t,r))}))}else{Object.keys(i).forEach((function(r){if(isDefined(i[r])){e.push(encodeUnreserved(r));e.push(encodeValue(t,i[r].toString()))}}))}if(isKeyOperator(t)){n.push(encodeUnreserved(r)+"="+e.join(","))}else if(e.length!==0){n.push(e.join(","))}}}}else{if(t===";"){if(isDefined(i)){n.push(encodeUnreserved(r))}}else if(i===""&&(t==="&"||t==="?")){n.push(encodeUnreserved(r)+"=")}else if(i===""){n.push("")}}return n}function parseUrl(e){return{expand:expand.bind(null,e)}}function expand(e,t){var r=["+","#",".","/",";","?","&"];return e.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g,(function(e,a,i){if(a){let e="";const i=[];if(r.indexOf(a.charAt(0))!==-1){e=a.charAt(0);a=a.substr(1)}a.split(/,/g).forEach((function(r){var a=/([^:\*]*)(?::(\d+)|(\*))?/.exec(r);i.push(getValues(t,e,a[1],a[2]||a[3]))}));if(e&&e!=="+"){var n=",";if(e==="?"){n="&"}else if(e!=="#"){n=e}return(i.length!==0?e:"")+i.join(n)}else{return i.join(",")}}else{return encodeReserved(i)}}))}function parse(e){let t=e.method.toUpperCase();let r=(e.url||"/").replace(/:([a-z]\w+)/g,"{$1}");let a=Object.assign({},e.headers);let i;let n=omit(e,["method","baseUrl","url","headers","request","mediaType"]);const s=extractUrlVariableNames(r);r=parseUrl(r).expand(n);if(!/^http/.test(r)){r=e.baseUrl+r}const o=Object.keys(e).filter((e=>s.includes(e))).concat("baseUrl");const p=omit(n,o);const c=/application\/octet-stream/i.test(a.accept);if(!c){if(e.mediaType.format){a.accept=a.accept.split(/,/).map((t=>t.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/,`application/vnd$1$2.${e.mediaType.format}`))).join(",")}if(e.mediaType.previews.length){const t=a.accept.match(/[\w-]+(?=-preview)/g)||[];a.accept=t.concat(e.mediaType.previews).map((t=>{const r=e.mediaType.format?`.${e.mediaType.format}`:"+json";return`application/vnd.github.${t}-preview${r}`})).join(",")}}if(["GET","HEAD"].includes(t)){r=addQueryParameters(r,p)}else{if("data"in p){i=p.data}else{if(Object.keys(p).length){i=p}else{a["content-length"]=0}}}if(!a["content-type"]&&typeof i!=="undefined"){a["content-type"]="application/json; charset=utf-8"}if(["PATCH","PUT"].includes(t)&&typeof i==="undefined"){i=""}return Object.assign({method:t,url:r,headers:a},typeof i!=="undefined"?{body:i}:null,e.request?{request:e.request}:null)}function endpointWithDefaults(e,t,r){return parse(merge(e,t,r))}function withDefaults(e,t){const r=merge(e,t);const a=endpointWithDefaults.bind(null,r);return Object.assign(a,{DEFAULTS:r,defaults:withDefaults.bind(null,r),merge:merge.bind(null,r),parse:parse})}const s="6.0.12";const o=`octokit-endpoint.js/${s} ${i.getUserAgent()}`;const p={method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":o},mediaType:{format:"",previews:[]}};const c=withDefaults(null,p);t.endpoint=c},8467:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});var a=r(6234);var i=r(5030);const n="4.8.0";function _buildMessageForResponseErrors(e){return`Request failed due to following response errors:\n`+e.errors.map((e=>` - ${e.message}`)).join("\n")}class GraphqlResponseError extends Error{constructor(e,t,r){super(_buildMessageForResponseErrors(r));this.request=e;this.headers=t;this.response=r;this.name="GraphqlResponseError";this.errors=r.errors;this.data=r.data;if(Error.captureStackTrace){Error.captureStackTrace(this,this.constructor)}}}const s=["method","baseUrl","url","headers","request","query","mediaType"];const o=["query","method","url"];const p=/\/api\/v3\/?$/;function graphql(e,t,r){if(r){if(typeof t==="string"&&"query"in r){return Promise.reject(new Error(`[@octokit/graphql] "query" cannot be used as variable name`))}for(const e in r){if(!o.includes(e))continue;return Promise.reject(new Error(`[@octokit/graphql] "${e}" cannot be used as variable name`))}}const a=typeof t==="string"?Object.assign({query:t},r):t;const i=Object.keys(a).reduce(((e,t)=>{if(s.includes(t)){e[t]=a[t];return e}if(!e.variables){e.variables={}}e.variables[t]=a[t];return e}),{});const n=a.baseUrl||e.endpoint.DEFAULTS.baseUrl;if(p.test(n)){i.url=n.replace(p,"/api/graphql")}return e(i).then((e=>{if(e.data.errors){const t={};for(const r of Object.keys(e.headers)){t[r]=e.headers[r]}throw new GraphqlResponseError(i,t,e.data)}return e.data.data}))}function withDefaults(e,t){const r=e.defaults(t);const newApi=(e,t)=>graphql(r,e,t);return Object.assign(newApi,{defaults:withDefaults.bind(null,r),endpoint:a.request.endpoint})}const c=withDefaults(a.request,{headers:{"user-agent":`octokit-graphql.js/${n} ${i.getUserAgent()}`},method:"POST",url:"/graphql"});function withCustomRequest(e){return withDefaults(e,{method:"POST",url:"/graphql"})}t.GraphqlResponseError=GraphqlResponseError;t.graphql=c;t.withCustomRequest=withCustomRequest},4193:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const r="2.21.3";function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function _objectSpread2(e){for(var t=1;t({async next(){if(!o)return{done:true};try{const e=await i({method:n,url:o,headers:s});const t=normalizePaginatedListResponse(e);o=((t.headers.link||"").match(/<([^>]+)>;\s*rel="next"/)||[])[1];return{value:t}}catch(e){if(e.status!==409)throw e;o="";return{value:{status:200,headers:{},data:[]}}}}})}}function paginate(e,t,r,a){if(typeof r==="function"){a=r;r=undefined}return gather(e,[],iterator(e,t,r)[Symbol.asyncIterator](),a)}function gather(e,t,r,a){return r.next().then((i=>{if(i.done){return t}let n=false;function done(){n=true}t=t.concat(a?a(i.value,done):i.value.data);if(n){return t}return gather(e,t,r,a)}))}const a=Object.assign(paginate,{iterator:iterator});const i=["GET /app/hook/deliveries","GET /app/installations","GET /applications/grants","GET /authorizations","GET /enterprises/{enterprise}/actions/permissions/organizations","GET /enterprises/{enterprise}/actions/runner-groups","GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations","GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners","GET /enterprises/{enterprise}/actions/runners","GET /enterprises/{enterprise}/audit-log","GET /enterprises/{enterprise}/secret-scanning/alerts","GET /enterprises/{enterprise}/settings/billing/advanced-security","GET /events","GET /gists","GET /gists/public","GET /gists/starred","GET /gists/{gist_id}/comments","GET /gists/{gist_id}/commits","GET /gists/{gist_id}/forks","GET /installation/repositories","GET /issues","GET /licenses","GET /marketplace_listing/plans","GET /marketplace_listing/plans/{plan_id}/accounts","GET /marketplace_listing/stubbed/plans","GET /marketplace_listing/stubbed/plans/{plan_id}/accounts","GET /networks/{owner}/{repo}/events","GET /notifications","GET /organizations","GET /orgs/{org}/actions/cache/usage-by-repository","GET /orgs/{org}/actions/permissions/repositories","GET /orgs/{org}/actions/runner-groups","GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories","GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners","GET /orgs/{org}/actions/runners","GET /orgs/{org}/actions/secrets","GET /orgs/{org}/actions/secrets/{secret_name}/repositories","GET /orgs/{org}/audit-log","GET /orgs/{org}/blocks","GET /orgs/{org}/code-scanning/alerts","GET /orgs/{org}/codespaces","GET /orgs/{org}/credential-authorizations","GET /orgs/{org}/dependabot/secrets","GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories","GET /orgs/{org}/events","GET /orgs/{org}/external-groups","GET /orgs/{org}/failed_invitations","GET /orgs/{org}/hooks","GET /orgs/{org}/hooks/{hook_id}/deliveries","GET /orgs/{org}/installations","GET /orgs/{org}/invitations","GET /orgs/{org}/invitations/{invitation_id}/teams","GET /orgs/{org}/issues","GET /orgs/{org}/members","GET /orgs/{org}/migrations","GET /orgs/{org}/migrations/{migration_id}/repositories","GET /orgs/{org}/outside_collaborators","GET /orgs/{org}/packages","GET /orgs/{org}/packages/{package_type}/{package_name}/versions","GET /orgs/{org}/projects","GET /orgs/{org}/public_members","GET /orgs/{org}/repos","GET /orgs/{org}/secret-scanning/alerts","GET /orgs/{org}/settings/billing/advanced-security","GET /orgs/{org}/team-sync/groups","GET /orgs/{org}/teams","GET /orgs/{org}/teams/{team_slug}/discussions","GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments","GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions","GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions","GET /orgs/{org}/teams/{team_slug}/invitations","GET /orgs/{org}/teams/{team_slug}/members","GET /orgs/{org}/teams/{team_slug}/projects","GET /orgs/{org}/teams/{team_slug}/repos","GET /orgs/{org}/teams/{team_slug}/teams","GET /projects/columns/{column_id}/cards","GET /projects/{project_id}/collaborators","GET /projects/{project_id}/columns","GET /repos/{owner}/{repo}/actions/artifacts","GET /repos/{owner}/{repo}/actions/caches","GET /repos/{owner}/{repo}/actions/runners","GET /repos/{owner}/{repo}/actions/runs","GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts","GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs","GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs","GET /repos/{owner}/{repo}/actions/secrets","GET /repos/{owner}/{repo}/actions/workflows","GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs","GET /repos/{owner}/{repo}/assignees","GET /repos/{owner}/{repo}/branches","GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations","GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs","GET /repos/{owner}/{repo}/code-scanning/alerts","GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances","GET /repos/{owner}/{repo}/code-scanning/analyses","GET /repos/{owner}/{repo}/codespaces","GET /repos/{owner}/{repo}/codespaces/devcontainers","GET /repos/{owner}/{repo}/codespaces/secrets","GET /repos/{owner}/{repo}/collaborators","GET /repos/{owner}/{repo}/comments","GET /repos/{owner}/{repo}/comments/{comment_id}/reactions","GET /repos/{owner}/{repo}/commits","GET /repos/{owner}/{repo}/commits/{commit_sha}/comments","GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls","GET /repos/{owner}/{repo}/commits/{ref}/check-runs","GET /repos/{owner}/{repo}/commits/{ref}/check-suites","GET /repos/{owner}/{repo}/commits/{ref}/status","GET /repos/{owner}/{repo}/commits/{ref}/statuses","GET /repos/{owner}/{repo}/contributors","GET /repos/{owner}/{repo}/dependabot/secrets","GET /repos/{owner}/{repo}/deployments","GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses","GET /repos/{owner}/{repo}/environments","GET /repos/{owner}/{repo}/events","GET /repos/{owner}/{repo}/forks","GET /repos/{owner}/{repo}/git/matching-refs/{ref}","GET /repos/{owner}/{repo}/hooks","GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries","GET /repos/{owner}/{repo}/invitations","GET /repos/{owner}/{repo}/issues","GET /repos/{owner}/{repo}/issues/comments","GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions","GET /repos/{owner}/{repo}/issues/events","GET /repos/{owner}/{repo}/issues/{issue_number}/comments","GET /repos/{owner}/{repo}/issues/{issue_number}/events","GET /repos/{owner}/{repo}/issues/{issue_number}/labels","GET /repos/{owner}/{repo}/issues/{issue_number}/reactions","GET /repos/{owner}/{repo}/issues/{issue_number}/timeline","GET /repos/{owner}/{repo}/keys","GET /repos/{owner}/{repo}/labels","GET /repos/{owner}/{repo}/milestones","GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels","GET /repos/{owner}/{repo}/notifications","GET /repos/{owner}/{repo}/pages/builds","GET /repos/{owner}/{repo}/projects","GET /repos/{owner}/{repo}/pulls","GET /repos/{owner}/{repo}/pulls/comments","GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions","GET /repos/{owner}/{repo}/pulls/{pull_number}/comments","GET /repos/{owner}/{repo}/pulls/{pull_number}/commits","GET /repos/{owner}/{repo}/pulls/{pull_number}/files","GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers","GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews","GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments","GET /repos/{owner}/{repo}/releases","GET /repos/{owner}/{repo}/releases/{release_id}/assets","GET /repos/{owner}/{repo}/releases/{release_id}/reactions","GET /repos/{owner}/{repo}/secret-scanning/alerts","GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations","GET /repos/{owner}/{repo}/stargazers","GET /repos/{owner}/{repo}/subscribers","GET /repos/{owner}/{repo}/tags","GET /repos/{owner}/{repo}/teams","GET /repos/{owner}/{repo}/topics","GET /repositories","GET /repositories/{repository_id}/environments/{environment_name}/secrets","GET /search/code","GET /search/commits","GET /search/issues","GET /search/labels","GET /search/repositories","GET /search/topics","GET /search/users","GET /teams/{team_id}/discussions","GET /teams/{team_id}/discussions/{discussion_number}/comments","GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions","GET /teams/{team_id}/discussions/{discussion_number}/reactions","GET /teams/{team_id}/invitations","GET /teams/{team_id}/members","GET /teams/{team_id}/projects","GET /teams/{team_id}/repos","GET /teams/{team_id}/teams","GET /user/blocks","GET /user/codespaces","GET /user/codespaces/secrets","GET /user/emails","GET /user/followers","GET /user/following","GET /user/gpg_keys","GET /user/installations","GET /user/installations/{installation_id}/repositories","GET /user/issues","GET /user/keys","GET /user/marketplace_purchases","GET /user/marketplace_purchases/stubbed","GET /user/memberships/orgs","GET /user/migrations","GET /user/migrations/{migration_id}/repositories","GET /user/orgs","GET /user/packages","GET /user/packages/{package_type}/{package_name}/versions","GET /user/public_emails","GET /user/repos","GET /user/repository_invitations","GET /user/starred","GET /user/subscriptions","GET /user/teams","GET /users","GET /users/{username}/events","GET /users/{username}/events/orgs/{org}","GET /users/{username}/events/public","GET /users/{username}/followers","GET /users/{username}/following","GET /users/{username}/gists","GET /users/{username}/gpg_keys","GET /users/{username}/keys","GET /users/{username}/orgs","GET /users/{username}/packages","GET /users/{username}/projects","GET /users/{username}/received_events","GET /users/{username}/received_events/public","GET /users/{username}/repos","GET /users/{username}/starred","GET /users/{username}/subscriptions"];function isPaginatingEndpoint(e){if(typeof e==="string"){return i.includes(e)}else{return false}}function paginateRest(e){return{paginate:Object.assign(paginate.bind(null,e),{iterator:iterator.bind(null,e)})}}paginateRest.VERSION=r;t.composePaginateRest=a;t.isPaginatingEndpoint=isPaginatingEndpoint;t.paginateRest=paginateRest;t.paginatingEndpoints=i},8883:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const r="1.0.4";function requestLog(e){e.hook.wrap("request",((t,r)=>{e.log.debug("request",r);const a=Date.now();const i=e.request.endpoint.parse(r);const n=i.url.replace(r.baseUrl,"");return t(r).then((t=>{e.log.info(`${i.method} ${n} - ${t.status} in ${Date.now()-a}ms`);return t})).catch((t=>{e.log.info(`${i.method} ${n} - ${t.status} in ${Date.now()-a}ms`);throw t}))}))}requestLog.VERSION=r;t.requestLog=requestLog},537:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});function _interopDefault(e){return e&&typeof e==="object"&&"default"in e?e["default"]:e}var a=r(8932);var i=_interopDefault(r(1223));const n=i((e=>console.warn(e)));const s=i((e=>console.warn(e)));class RequestError extends Error{constructor(e,t,r){super(e);if(Error.captureStackTrace){Error.captureStackTrace(this,this.constructor)}this.name="HttpError";this.status=t;let i;if("headers"in r&&typeof r.headers!=="undefined"){i=r.headers}if("response"in r){this.response=r.response;i=r.response.headers}const o=Object.assign({},r.request);if(r.request.headers.authorization){o.headers=Object.assign({},r.request.headers,{authorization:r.request.headers.authorization.replace(/ .*$/," [REDACTED]")})}o.url=o.url.replace(/\bclient_secret=\w+/g,"client_secret=[REDACTED]").replace(/\baccess_token=\w+/g,"access_token=[REDACTED]");this.request=o;Object.defineProperty(this,"code",{get(){n(new a.Deprecation("[@octokit/request-error] `error.code` is deprecated, use `error.status`."));return t}});Object.defineProperty(this,"headers",{get(){s(new a.Deprecation("[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`."));return i||{}}})}}t.RequestError=RequestError},6234:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});function _interopDefault(e){return e&&typeof e==="object"&&"default"in e?e["default"]:e}var a=r(9440);var i=r(5030);var n=r(3287);var s=_interopDefault(r(467));var o=r(537);const p="5.6.3";function getBufferResponse(e){return e.arrayBuffer()}function fetchWrapper(e){const t=e.request&&e.request.log?e.request.log:console;if(n.isPlainObject(e.body)||Array.isArray(e.body)){e.body=JSON.stringify(e.body)}let r={};let a;let i;const p=e.request&&e.request.fetch||s;return p(e.url,Object.assign({method:e.method,body:e.body,headers:e.headers,redirect:e.redirect},e.request)).then((async n=>{i=n.url;a=n.status;for(const e of n.headers){r[e[0]]=e[1]}if("deprecation"in r){const a=r.link&&r.link.match(/<([^>]+)>; rel="deprecation"/);const i=a&&a.pop();t.warn(`[@octokit/request] "${e.method} ${e.url}" is deprecated. It is scheduled to be removed on ${r.sunset}${i?`. See ${i}`:""}`)}if(a===204||a===205){return}if(e.method==="HEAD"){if(a<400){return}throw new o.RequestError(n.statusText,a,{response:{url:i,status:a,headers:r,data:undefined},request:e})}if(a===304){throw new o.RequestError("Not modified",a,{response:{url:i,status:a,headers:r,data:await getResponseData(n)},request:e})}if(a>=400){const t=await getResponseData(n);const s=new o.RequestError(toErrorMessage(t),a,{response:{url:i,status:a,headers:r,data:t},request:e});throw s}return getResponseData(n)})).then((e=>({status:a,url:i,headers:r,data:e}))).catch((t=>{if(t instanceof o.RequestError)throw t;throw new o.RequestError(t.message,500,{request:e})}))}async function getResponseData(e){const t=e.headers.get("content-type");if(/application\/json/.test(t)){return e.json()}if(!t||/^text\/|charset=utf-8$/.test(t)){return e.text()}return getBufferResponse(e)}function toErrorMessage(e){if(typeof e==="string")return e;if("message"in e){if(Array.isArray(e.errors)){return`${e.message}: ${e.errors.map(JSON.stringify).join(", ")}`}return e.message}return`Unknown error: ${JSON.stringify(e)}`}function withDefaults(e,t){const r=e.defaults(t);const newApi=function(e,t){const a=r.merge(e,t);if(!a.request||!a.request.hook){return fetchWrapper(r.parse(a))}const request=(e,t)=>fetchWrapper(r.parse(r.merge(e,t)));Object.assign(request,{endpoint:r,defaults:withDefaults.bind(null,r)});return a.request.hook(request,a)};return Object.assign(newApi,{endpoint:r,defaults:withDefaults.bind(null,r)})}const c=withDefaults(a.endpoint,{headers:{"user-agent":`octokit-request.js/${p} ${i.getUserAgent()}`}});t.request=c},5375:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});var a=r(4952);var i=r(8883);var n=r(4193);var s=r(4923);const o="18.12.0";const p=a.Octokit.plugin(i.requestLog,s.legacyRestEndpointMethods,n.paginateRest).defaults({userAgent:`octokit-rest.js/${o}`});t.Octokit=p},4952:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});var a=r(5030);var i=r(3682);var n=r(6234);var s=r(8467);var o=r(334);function _objectWithoutPropertiesLoose(e,t){if(e==null)return{};var r={};var a=Object.keys(e);var i,n;for(n=0;n=0)continue;r[i]=e[i]}return r}function _objectWithoutProperties(e,t){if(e==null)return{};var r=_objectWithoutPropertiesLoose(e,t);var a,i;if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(i=0;i=0)continue;if(!Object.prototype.propertyIsEnumerable.call(e,a))continue;r[a]=e[a]}}return r}const p="3.6.0";const c=["authStrategy"];class Octokit{constructor(e={}){const t=new i.Collection;const r={baseUrl:n.request.endpoint.DEFAULTS.baseUrl,headers:{},request:Object.assign({},e.request,{hook:t.bind(null,"request")}),mediaType:{previews:[],format:""}};r.headers["user-agent"]=[e.userAgent,`octokit-core.js/${p} ${a.getUserAgent()}`].filter(Boolean).join(" ");if(e.baseUrl){r.baseUrl=e.baseUrl}if(e.previews){r.mediaType.previews=e.previews}if(e.timeZone){r.headers["time-zone"]=e.timeZone}this.request=n.request.defaults(r);this.graphql=s.withCustomRequest(this.request).defaults(r);this.log=Object.assign({debug:()=>{},info:()=>{},warn:console.warn.bind(console),error:console.error.bind(console)},e.log);this.hook=t;if(!e.authStrategy){if(!e.auth){this.auth=async()=>({type:"unauthenticated"})}else{const r=o.createTokenAuth(e.auth);t.wrap("request",r.hook);this.auth=r}}else{const{authStrategy:r}=e,a=_objectWithoutProperties(e,c);const i=r(Object.assign({request:this.request,log:this.log,octokit:this,octokitOptions:a},e.auth));t.wrap("request",i.hook);this.auth=i}const l=this.constructor;l.plugins.forEach((t=>{Object.assign(this,t(this,e))}))}static defaults(e){const t=class extends(this){constructor(...t){const r=t[0]||{};if(typeof e==="function"){super(e(r));return}super(Object.assign({},e,r,r.userAgent&&e.userAgent?{userAgent:`${r.userAgent} ${e.userAgent}`}:null))}};return t}static plugin(...e){var t;const r=this.plugins;const a=(t=class extends(this){},t.plugins=r.concat(e.filter((e=>!r.includes(e)))),t);return a}}Octokit.VERSION=p;Octokit.plugins=[];t.Octokit=Octokit},4923:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);if(t){a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))}r.push.apply(r,a)}return r}function _objectSpread2(e){for(var t=1;t{"use strict";Object.defineProperty(t,"__esModule",{value:true});function once(e,t,{signal:r}={}){return new Promise(((a,i)=>{function cleanup(){r===null||r===void 0?void 0:r.removeEventListener("abort",cleanup);e.removeListener(t,onEvent);e.removeListener("error",onError)}function onEvent(...e){cleanup();a(e)}function onError(e){cleanup();i(e)}r===null||r===void 0?void 0:r.addEventListener("abort",cleanup);e.on(t,onEvent);e.on("error",onError)}))}t["default"]=once},9690:function(e,t,r){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};const i=r(2361);const n=a(r(8237));const s=a(r(6570));const o=n.default("agent-base");function isAgent(e){return Boolean(e)&&typeof e.addRequest==="function"}function isSecureEndpoint(){const{stack:e}=new Error;if(typeof e!=="string")return false;return e.split("\n").some((e=>e.indexOf("(https.js:")!==-1||e.indexOf("node:https:")!==-1))}function createAgent(e,t){return new createAgent.Agent(e,t)}(function(e){class Agent extends i.EventEmitter{constructor(e,t){super();let r=t;if(typeof e==="function"){this.callback=e}else if(e){r=e}this.timeout=null;if(r&&typeof r.timeout==="number"){this.timeout=r.timeout}this.maxFreeSockets=1;this.maxSockets=1;this.maxTotalSockets=Infinity;this.sockets={};this.freeSockets={};this.requests={};this.options={}}get defaultPort(){if(typeof this.explicitDefaultPort==="number"){return this.explicitDefaultPort}return isSecureEndpoint()?443:80}set defaultPort(e){this.explicitDefaultPort=e}get protocol(){if(typeof this.explicitProtocol==="string"){return this.explicitProtocol}return isSecureEndpoint()?"https:":"http:"}set protocol(e){this.explicitProtocol=e}callback(e,t,r){throw new Error('"agent-base" has no default implementation, you must subclass and override `callback()`')}addRequest(e,t){const r=Object.assign({},t);if(typeof r.secureEndpoint!=="boolean"){r.secureEndpoint=isSecureEndpoint()}if(r.host==null){r.host="localhost"}if(r.port==null){r.port=r.secureEndpoint?443:80}if(r.protocol==null){r.protocol=r.secureEndpoint?"https:":"http:"}if(r.host&&r.path){delete r.path}delete r.agent;delete r.hostname;delete r._defaultAgent;delete r.defaultPort;delete r.createConnection;e._last=true;e.shouldKeepAlive=false;let a=false;let i=null;const n=r.timeout||this.timeout;const onerror=t=>{if(e._hadError)return;e.emit("error",t);e._hadError=true};const ontimeout=()=>{i=null;a=true;const e=new Error(`A "socket" was not created for HTTP request before ${n}ms`);e.code="ETIMEOUT";onerror(e)};const callbackError=e=>{if(a)return;if(i!==null){clearTimeout(i);i=null}onerror(e)};const onsocket=t=>{if(a)return;if(i!=null){clearTimeout(i);i=null}if(isAgent(t)){o("Callback returned another Agent instance %o",t.constructor.name);t.addRequest(e,r);return}if(t){t.once("free",(()=>{this.freeSocket(t,r)}));e.onSocket(t);return}const n=new Error(`no Duplex stream was returned to agent-base for \`${e.method} ${e.path}\``);onerror(n)};if(typeof this.callback!=="function"){onerror(new Error("`callback` is not defined"));return}if(!this.promisifiedCallback){if(this.callback.length>=3){o("Converting legacy callback function to promise");this.promisifiedCallback=s.default(this.callback)}else{this.promisifiedCallback=this.callback}}if(typeof n==="number"&&n>0){i=setTimeout(ontimeout,n)}if("port"in r&&typeof r.port!=="number"){r.port=Number(r.port)}try{o("Resolving socket for %o request: %o",r.protocol,`${e.method} ${e.path}`);Promise.resolve(this.promisifiedCallback(e,r)).then(onsocket,callbackError)}catch(e){Promise.reject(e).catch(callbackError)}}freeSocket(e,t){o("Freeing socket %o %o",e.constructor.name,t);e.destroy()}destroy(){o("Destroying agent %o",this.constructor.name)}}e.Agent=Agent;e.prototype=e.Agent.prototype})(createAgent||(createAgent={}));e.exports=createAgent},6570:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});function promisify(e){return function(t,r){return new Promise(((a,i)=>{e.call(this,t,r,((e,t)=>{if(e){i(e)}else{a(t)}}))}))}}t["default"]=promisify},4812:(e,t,r)=>{e.exports={parallel:r(8210),serial:r(445),serialOrdered:r(3578)}},1700:e=>{e.exports=abort;function abort(e){Object.keys(e.jobs).forEach(clean.bind(e));e.jobs={}}function clean(e){if(typeof this.jobs[e]=="function"){this.jobs[e]()}}},2794:(e,t,r)=>{var a=r(5295);e.exports=async;function async(e){var t=false;a((function(){t=true}));return function async_callback(r,i){if(t){e(r,i)}else{a((function nextTick_callback(){e(r,i)}))}}}},5295:e=>{e.exports=defer;function defer(e){var t=typeof setImmediate=="function"?setImmediate:typeof process=="object"&&typeof process.nextTick=="function"?process.nextTick:null;if(t){t(e)}else{setTimeout(e,0)}}},9023:(e,t,r)=>{var a=r(2794),i=r(1700);e.exports=iterate;function iterate(e,t,r,a){var n=r["keyedList"]?r["keyedList"][r.index]:r.index;r.jobs[n]=runJob(t,n,e[n],(function(e,t){if(!(n in r.jobs)){return}delete r.jobs[n];if(e){i(r)}else{r.results[n]=t}a(e,r.results)}))}function runJob(e,t,r,i){var n;if(e.length==2){n=e(r,a(i))}else{n=e(r,t,a(i))}return n}},2474:e=>{e.exports=state;function state(e,t){var r=!Array.isArray(e),a={index:0,keyedList:r||t?Object.keys(e):null,jobs:{},results:r?{}:[],size:r?Object.keys(e).length:e.length};if(t){a.keyedList.sort(r?t:function(r,a){return t(e[r],e[a])})}return a}},7942:(e,t,r)=>{var a=r(1700),i=r(2794);e.exports=terminator;function terminator(e){if(!Object.keys(this.jobs).length){return}this.index=this.size;a(this);i(e)(null,this.results)}},8210:(e,t,r)=>{var a=r(9023),i=r(2474),n=r(7942);e.exports=parallel;function parallel(e,t,r){var s=i(e);while(s.index<(s["keyedList"]||e).length){a(e,t,s,(function(e,t){if(e){r(e,t);return}if(Object.keys(s.jobs).length===0){r(null,s.results);return}}));s.index++}return n.bind(s,r)}},445:(e,t,r)=>{var a=r(3578);e.exports=serial;function serial(e,t,r){return a(e,t,null,r)}},3578:(e,t,r)=>{var a=r(9023),i=r(2474),n=r(7942);e.exports=serialOrdered;e.exports.ascending=ascending;e.exports.descending=descending;function serialOrdered(e,t,r,s){var o=i(e,r);a(e,t,o,(function iteratorHandler(r,i){if(r){s(r,i);return}o.index++;if(o.index<(o["keyedList"]||e).length){a(e,t,o,iteratorHandler);return}s(null,o.results)}));return n.bind(o,s)}function ascending(e,t){return et?1:0}function descending(e,t){return-1*ascending(e,t)}},6545:(e,t,r)=>{e.exports=r(2618)},8104:(e,t,r)=>{"use strict";var a=r(328);var i=r(3211);var n=r(1934);var s=r(646);var o=r(3685);var p=r(5687);var c=r(7707).http;var l=r(7707).https;var d=r(7310);var u=r(9796);var m=r(4322).version;var h=r(936);var g=r(2093);var v=r(4098);var y=/https:?/;var b=["http:","https:","file:"];function setProxy(e,t,r){e.hostname=t.host;e.host=t.host;e.port=t.port;e.path=r;if(t.auth){var a=Buffer.from(t.auth.username+":"+t.auth.password,"utf8").toString("base64");e.headers["Proxy-Authorization"]="Basic "+a}e.beforeRedirect=function beforeRedirect(e){e.headers.host=e.host;setProxy(e,t,e.href)}}e.exports=function httpAdapter(e){return new Promise((function dispatchHttpRequest(t,r){var w;function done(){if(e.cancelToken){e.cancelToken.unsubscribe(w)}if(e.signal){e.signal.removeEventListener("abort",w)}}var x=function resolve(e){done();t(e)};var E=false;var S=function reject(e){done();E=true;r(e)};var T=e.data;var k=e.headers;var C={};Object.keys(k).forEach((function storeLowerName(e){C[e.toLowerCase()]=e}));if("user-agent"in C){if(!k[C["user-agent"]]){delete k[C["user-agent"]]}}else{k["User-Agent"]="axios/"+m}if(a.isFormData(T)&&a.isFunction(T.getHeaders)){Object.assign(k,T.getHeaders())}else if(T&&!a.isStream(T)){if(Buffer.isBuffer(T)){}else if(a.isArrayBuffer(T)){T=Buffer.from(new Uint8Array(T))}else if(a.isString(T)){T=Buffer.from(T,"utf-8")}else{return S(new g("Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream",g.ERR_BAD_REQUEST,e))}if(e.maxBodyLength>-1&&T.length>e.maxBodyLength){return S(new g("Request body larger than maxBodyLength limit",g.ERR_BAD_REQUEST,e))}if(!C["content-length"]){k["Content-Length"]=T.length}}var O=undefined;if(e.auth){var P=e.auth.username||"";var A=e.auth.password||"";O=P+":"+A}var D=n(e.baseURL,e.url);var N=d.parse(D);var R=N.protocol||b[0];if(b.indexOf(R)===-1){return S(new g("Unsupported protocol "+R,g.ERR_BAD_REQUEST,e))}if(!O&&N.auth){var j=N.auth.split(":");var F=j[0]||"";var I=j[1]||"";O=F+":"+I}if(O&&C.authorization){delete k[C.authorization]}var $=y.test(R);var B=$?e.httpsAgent:e.httpAgent;try{s(N.path,e.params,e.paramsSerializer).replace(/^\?/,"")}catch(t){var L=new Error(t.message);L.config=e;L.url=e.url;L.exists=true;S(L)}var M={path:s(N.path,e.params,e.paramsSerializer).replace(/^\?/,""),method:e.method.toUpperCase(),headers:k,agent:B,agents:{http:e.httpAgent,https:e.httpsAgent},auth:O};if(e.socketPath){M.socketPath=e.socketPath}else{M.hostname=N.hostname;M.port=N.port}var U=e.proxy;if(!U&&U!==false){var G=R.slice(0,-1)+"_proxy";var V=process.env[G]||process.env[G.toUpperCase()];if(V){var q=d.parse(V);var z=process.env.no_proxy||process.env.NO_PROXY;var H=true;if(z){var K=z.split(",").map((function trim(e){return e.trim()}));H=!K.some((function proxyMatch(e){if(!e){return false}if(e==="*"){return true}if(e[0]==="."&&N.hostname.substr(N.hostname.length-e.length)===e){return true}return N.hostname===e}))}if(H){U={host:q.hostname,port:q.port,protocol:q.protocol};if(q.auth){var W=q.auth.split(":");U.auth={username:W[0],password:W[1]}}}}}if(U){M.headers.host=N.hostname+(N.port?":"+N.port:"");setProxy(M,U,R+"//"+N.hostname+(N.port?":"+N.port:"")+M.path)}var J;var Y=$&&(U?y.test(U.protocol):true);if(e.transport){J=e.transport}else if(e.maxRedirects===0){J=Y?p:o}else{if(e.maxRedirects){M.maxRedirects=e.maxRedirects}if(e.beforeRedirect){M.beforeRedirect=e.beforeRedirect}J=Y?l:c}if(e.maxBodyLength>-1){M.maxBodyLength=e.maxBodyLength}if(e.insecureHTTPParser){M.insecureHTTPParser=e.insecureHTTPParser}var Q=J.request(M,(function handleResponse(t){if(Q.aborted)return;var r=t;var n=t.req||Q;if(t.statusCode!==204&&n.method!=="HEAD"&&e.decompress!==false){switch(t.headers["content-encoding"]){case"gzip":case"compress":case"deflate":r=r.pipe(u.createUnzip());delete t.headers["content-encoding"];break}}var s={status:t.statusCode,statusText:t.statusMessage,headers:t.headers,config:e,request:n};if(e.responseType==="stream"){s.data=r;i(x,S,s)}else{var o=[];var p=0;r.on("data",(function handleStreamData(t){o.push(t);p+=t.length;if(e.maxContentLength>-1&&p>e.maxContentLength){E=true;r.destroy();S(new g("maxContentLength size of "+e.maxContentLength+" exceeded",g.ERR_BAD_RESPONSE,e,n))}}));r.on("aborted",(function handlerStreamAborted(){if(E){return}r.destroy();S(new g("maxContentLength size of "+e.maxContentLength+" exceeded",g.ERR_BAD_RESPONSE,e,n))}));r.on("error",(function handleStreamError(t){if(Q.aborted)return;S(g.from(t,null,e,n))}));r.on("end",(function handleStreamEnd(){try{var t=o.length===1?o[0]:Buffer.concat(o);if(e.responseType!=="arraybuffer"){t=t.toString(e.responseEncoding);if(!e.responseEncoding||e.responseEncoding==="utf8"){t=a.stripBOM(t)}}s.data=t}catch(t){S(g.from(t,null,e,s.request,s))}i(x,S,s)}))}}));Q.on("error",(function handleRequestError(t){S(g.from(t,null,e,Q))}));Q.on("socket",(function handleRequestSocket(e){e.setKeepAlive(true,1e3*60)}));if(e.timeout){var X=parseInt(e.timeout,10);if(isNaN(X)){S(new g("error trying to parse `config.timeout` to int",g.ERR_BAD_OPTION_VALUE,e,Q));return}Q.setTimeout(X,(function handleRequestTimeout(){Q.abort();var t=e.transitional||h;S(new g("timeout of "+X+"ms exceeded",t.clarifyTimeoutError?g.ETIMEDOUT:g.ECONNABORTED,e,Q))}))}if(e.cancelToken||e.signal){w=function(e){if(Q.aborted)return;Q.abort();S(!e||e&&e.type?new v:e)};e.cancelToken&&e.cancelToken.subscribe(w);if(e.signal){e.signal.aborted?w():e.signal.addEventListener("abort",w)}}if(a.isStream(T)){T.on("error",(function handleStreamError(t){S(g.from(t,e,null,Q))})).pipe(Q)}else{Q.end(T)}}))}},3454:(e,t,r)=>{"use strict";var a=r(328);var i=r(3211);var n=r(1545);var s=r(646);var o=r(1934);var p=r(6455);var c=r(3608);var l=r(936);var d=r(2093);var u=r(4098);var m=r(6107);e.exports=function xhrAdapter(e){return new Promise((function dispatchXhrRequest(t,r){var h=e.data;var g=e.headers;var v=e.responseType;var y;function done(){if(e.cancelToken){e.cancelToken.unsubscribe(y)}if(e.signal){e.signal.removeEventListener("abort",y)}}if(a.isFormData(h)&&a.isStandardBrowserEnv()){delete g["Content-Type"]}var b=new XMLHttpRequest;if(e.auth){var w=e.auth.username||"";var x=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";g.Authorization="Basic "+btoa(w+":"+x)}var E=o(e.baseURL,e.url);b.open(e.method.toUpperCase(),s(E,e.params,e.paramsSerializer),true);b.timeout=e.timeout;function onloadend(){if(!b){return}var a="getAllResponseHeaders"in b?p(b.getAllResponseHeaders()):null;var n=!v||v==="text"||v==="json"?b.responseText:b.response;var s={data:n,status:b.status,statusText:b.statusText,headers:a,config:e,request:b};i((function _resolve(e){t(e);done()}),(function _reject(e){r(e);done()}),s);b=null}if("onloadend"in b){b.onloadend=onloadend}else{b.onreadystatechange=function handleLoad(){if(!b||b.readyState!==4){return}if(b.status===0&&!(b.responseURL&&b.responseURL.indexOf("file:")===0)){return}setTimeout(onloadend)}}b.onabort=function handleAbort(){if(!b){return}r(new d("Request aborted",d.ECONNABORTED,e,b));b=null};b.onerror=function handleError(){r(new d("Network Error",d.ERR_NETWORK,e,b,b));b=null};b.ontimeout=function handleTimeout(){var t=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded";var a=e.transitional||l;if(e.timeoutErrorMessage){t=e.timeoutErrorMessage}r(new d(t,a.clarifyTimeoutError?d.ETIMEDOUT:d.ECONNABORTED,e,b));b=null};if(a.isStandardBrowserEnv()){var S=(e.withCredentials||c(E))&&e.xsrfCookieName?n.read(e.xsrfCookieName):undefined;if(S){g[e.xsrfHeaderName]=S}}if("setRequestHeader"in b){a.forEach(g,(function setRequestHeader(e,t){if(typeof h==="undefined"&&t.toLowerCase()==="content-type"){delete g[t]}else{b.setRequestHeader(t,e)}}))}if(!a.isUndefined(e.withCredentials)){b.withCredentials=!!e.withCredentials}if(v&&v!=="json"){b.responseType=e.responseType}if(typeof e.onDownloadProgress==="function"){b.addEventListener("progress",e.onDownloadProgress)}if(typeof e.onUploadProgress==="function"&&b.upload){b.upload.addEventListener("progress",e.onUploadProgress)}if(e.cancelToken||e.signal){y=function(e){if(!b){return}r(!e||e&&e.type?new u:e);b.abort();b=null};e.cancelToken&&e.cancelToken.subscribe(y);if(e.signal){e.signal.aborted?y():e.signal.addEventListener("abort",y)}}if(!h){h=null}var T=m(E);if(T&&["http","https","file"].indexOf(T)===-1){r(new d("Unsupported protocol "+T+":",d.ERR_BAD_REQUEST,e));return}b.send(h)}))}},2618:(e,t,r)=>{"use strict";var a=r(328);var i=r(7065);var n=r(8178);var s=r(4831);var o=r(1626);function createInstance(e){var t=new n(e);var r=i(n.prototype.request,t);a.extend(r,n.prototype,t);a.extend(r,t);r.create=function create(t){return createInstance(s(e,t))};return r}var p=createInstance(o);p.Axios=n;p.CanceledError=r(4098);p.CancelToken=r(1587);p.isCancel=r(4057);p.VERSION=r(4322).version;p.toFormData=r(470);p.AxiosError=r(2093);p.Cancel=p.CanceledError;p.all=function all(e){return Promise.all(e)};p.spread=r(4850);p.isAxiosError=r(650);e.exports=p;e.exports["default"]=p},1587:(e,t,r)=>{"use strict";var a=r(4098);function CancelToken(e){if(typeof e!=="function"){throw new TypeError("executor must be a function.")}var t;this.promise=new Promise((function promiseExecutor(e){t=e}));var r=this;this.promise.then((function(e){if(!r._listeners)return;var t;var a=r._listeners.length;for(t=0;t{"use strict";var a=r(2093);var i=r(328);function CanceledError(e){a.call(this,e==null?"canceled":e,a.ERR_CANCELED);this.name="CanceledError"}i.inherits(CanceledError,a,{__CANCEL__:true});e.exports=CanceledError},4057:e=>{"use strict";e.exports=function isCancel(e){return!!(e&&e.__CANCEL__)}},8178:(e,t,r)=>{"use strict";var a=r(328);var i=r(646);var n=r(3214);var s=r(5062);var o=r(4831);var p=r(1934);var c=r(1632);var l=c.validators;function Axios(e){this.defaults=e;this.interceptors={request:new n,response:new n}}Axios.prototype.request=function request(e,t){if(typeof e==="string"){t=t||{};t.url=e}else{t=e||{}}t=o(this.defaults,t);if(t.method){t.method=t.method.toLowerCase()}else if(this.defaults.method){t.method=this.defaults.method.toLowerCase()}else{t.method="get"}var r=t.transitional;if(r!==undefined){c.assertOptions(r,{silentJSONParsing:l.transitional(l.boolean),forcedJSONParsing:l.transitional(l.boolean),clarifyTimeoutError:l.transitional(l.boolean)},false)}var a=[];var i=true;this.interceptors.request.forEach((function unshiftRequestInterceptors(e){if(typeof e.runWhen==="function"&&e.runWhen(t)===false){return}i=i&&e.synchronous;a.unshift(e.fulfilled,e.rejected)}));var n=[];this.interceptors.response.forEach((function pushResponseInterceptors(e){n.push(e.fulfilled,e.rejected)}));var p;if(!i){var d=[s,undefined];Array.prototype.unshift.apply(d,a);d=d.concat(n);p=Promise.resolve(t);while(d.length){p=p.then(d.shift(),d.shift())}return p}var u=t;while(a.length){var m=a.shift();var h=a.shift();try{u=m(u)}catch(e){h(e);break}}try{p=s(u)}catch(e){return Promise.reject(e)}while(n.length){p=p.then(n.shift(),n.shift())}return p};Axios.prototype.getUri=function getUri(e){e=o(this.defaults,e);var t=p(e.baseURL,e.url);return i(t,e.params,e.paramsSerializer)};a.forEach(["delete","get","head","options"],(function forEachMethodNoData(e){Axios.prototype[e]=function(t,r){return this.request(o(r||{},{method:e,url:t,data:(r||{}).data}))}}));a.forEach(["post","put","patch"],(function forEachMethodWithData(e){function generateHTTPMethod(t){return function httpMethod(r,a,i){return this.request(o(i||{},{method:e,headers:t?{"Content-Type":"multipart/form-data"}:{},url:r,data:a}))}}Axios.prototype[e]=generateHTTPMethod();Axios.prototype[e+"Form"]=generateHTTPMethod(true)}));e.exports=Axios},2093:(e,t,r)=>{"use strict";var a=r(328);function AxiosError(e,t,r,a,i){Error.call(this);this.message=e;this.name="AxiosError";t&&(this.code=t);r&&(this.config=r);a&&(this.request=a);i&&(this.response=i)}a.inherits(AxiosError,Error,{toJSON:function toJSON(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code,status:this.response&&this.response.status?this.response.status:null}}});var i=AxiosError.prototype;var n={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED"].forEach((function(e){n[e]={value:e}}));Object.defineProperties(AxiosError,n);Object.defineProperty(i,"isAxiosError",{value:true});AxiosError.from=function(e,t,r,n,s,o){var p=Object.create(i);a.toFlatObject(e,p,(function filter(e){return e!==Error.prototype}));AxiosError.call(p,e.message,t,r,n,s);p.name=e.name;o&&Object.assign(p,o);return p};e.exports=AxiosError},3214:(e,t,r)=>{"use strict";var a=r(328);function InterceptorManager(){this.handlers=[]}InterceptorManager.prototype.use=function use(e,t,r){this.handlers.push({fulfilled:e,rejected:t,synchronous:r?r.synchronous:false,runWhen:r?r.runWhen:null});return this.handlers.length-1};InterceptorManager.prototype.eject=function eject(e){if(this.handlers[e]){this.handlers[e]=null}};InterceptorManager.prototype.forEach=function forEach(e){a.forEach(this.handlers,(function forEachHandler(t){if(t!==null){e(t)}}))};e.exports=InterceptorManager},1934:(e,t,r)=>{"use strict";var a=r(1301);var i=r(7189);e.exports=function buildFullPath(e,t){if(e&&!a(t)){return i(e,t)}return t}},5062:(e,t,r)=>{"use strict";var a=r(328);var i=r(9812);var n=r(4057);var s=r(1626);var o=r(4098);function throwIfCancellationRequested(e){if(e.cancelToken){e.cancelToken.throwIfRequested()}if(e.signal&&e.signal.aborted){throw new o}}e.exports=function dispatchRequest(e){throwIfCancellationRequested(e);e.headers=e.headers||{};e.data=i.call(e,e.data,e.headers,e.transformRequest);e.headers=a.merge(e.headers.common||{},e.headers[e.method]||{},e.headers);a.forEach(["delete","get","head","post","put","patch","common"],(function cleanHeaderConfig(t){delete e.headers[t]}));var t=e.adapter||s.adapter;return t(e).then((function onAdapterResolution(t){throwIfCancellationRequested(e);t.data=i.call(e,t.data,t.headers,e.transformResponse);return t}),(function onAdapterRejection(t){if(!n(t)){throwIfCancellationRequested(e);if(t&&t.response){t.response.data=i.call(e,t.response.data,t.response.headers,e.transformResponse)}}return Promise.reject(t)}))}},4831:(e,t,r)=>{"use strict";var a=r(328);e.exports=function mergeConfig(e,t){t=t||{};var r={};function getMergedValue(e,t){if(a.isPlainObject(e)&&a.isPlainObject(t)){return a.merge(e,t)}else if(a.isPlainObject(t)){return a.merge({},t)}else if(a.isArray(t)){return t.slice()}return t}function mergeDeepProperties(r){if(!a.isUndefined(t[r])){return getMergedValue(e[r],t[r])}else if(!a.isUndefined(e[r])){return getMergedValue(undefined,e[r])}}function valueFromConfig2(e){if(!a.isUndefined(t[e])){return getMergedValue(undefined,t[e])}}function defaultToConfig2(r){if(!a.isUndefined(t[r])){return getMergedValue(undefined,t[r])}else if(!a.isUndefined(e[r])){return getMergedValue(undefined,e[r])}}function mergeDirectKeys(r){if(r in t){return getMergedValue(e[r],t[r])}else if(r in e){return getMergedValue(undefined,e[r])}}var i={url:valueFromConfig2,method:valueFromConfig2,data:valueFromConfig2,baseURL:defaultToConfig2,transformRequest:defaultToConfig2,transformResponse:defaultToConfig2,paramsSerializer:defaultToConfig2,timeout:defaultToConfig2,timeoutMessage:defaultToConfig2,withCredentials:defaultToConfig2,adapter:defaultToConfig2,responseType:defaultToConfig2,xsrfCookieName:defaultToConfig2,xsrfHeaderName:defaultToConfig2,onUploadProgress:defaultToConfig2,onDownloadProgress:defaultToConfig2,decompress:defaultToConfig2,maxContentLength:defaultToConfig2,maxBodyLength:defaultToConfig2,beforeRedirect:defaultToConfig2,transport:defaultToConfig2,httpAgent:defaultToConfig2,httpsAgent:defaultToConfig2,cancelToken:defaultToConfig2,socketPath:defaultToConfig2,responseEncoding:defaultToConfig2,validateStatus:mergeDirectKeys};a.forEach(Object.keys(e).concat(Object.keys(t)),(function computeConfigValue(e){var t=i[e]||mergeDeepProperties;var n=t(e);a.isUndefined(n)&&t!==mergeDirectKeys||(r[e]=n)}));return r}},3211:(e,t,r)=>{"use strict";var a=r(2093);e.exports=function settle(e,t,r){var i=r.config.validateStatus;if(!r.status||!i||i(r.status)){e(r)}else{t(new a("Request failed with status code "+r.status,[a.ERR_BAD_REQUEST,a.ERR_BAD_RESPONSE][Math.floor(r.status/100)-4],r.config,r.request,r))}}},9812:(e,t,r)=>{"use strict";var a=r(328);var i=r(1626);e.exports=function transformData(e,t,r){var n=this||i;a.forEach(r,(function transform(r){e=r.call(n,e,t)}));return e}},7024:(e,t,r)=>{e.exports=r(4334)},1626:(e,t,r)=>{"use strict";var a=r(328);var i=r(6240);var n=r(2093);var s=r(936);var o=r(470);var p={"Content-Type":"application/x-www-form-urlencoded"};function setContentTypeIfUnset(e,t){if(!a.isUndefined(e)&&a.isUndefined(e["Content-Type"])){e["Content-Type"]=t}}function getDefaultAdapter(){var e;if(typeof XMLHttpRequest!=="undefined"){e=r(3454)}else if(typeof process!=="undefined"&&Object.prototype.toString.call(process)==="[object process]"){e=r(8104)}return e}function stringifySafely(e,t,r){if(a.isString(e)){try{(t||JSON.parse)(e);return a.trim(e)}catch(e){if(e.name!=="SyntaxError"){throw e}}}return(r||JSON.stringify)(e)}var c={transitional:s,adapter:getDefaultAdapter(),transformRequest:[function transformRequest(e,t){i(t,"Accept");i(t,"Content-Type");if(a.isFormData(e)||a.isArrayBuffer(e)||a.isBuffer(e)||a.isStream(e)||a.isFile(e)||a.isBlob(e)){return e}if(a.isArrayBufferView(e)){return e.buffer}if(a.isURLSearchParams(e)){setContentTypeIfUnset(t,"application/x-www-form-urlencoded;charset=utf-8");return e.toString()}var r=a.isObject(e);var n=t&&t["Content-Type"];var s;if((s=a.isFileList(e))||r&&n==="multipart/form-data"){var p=this.env&&this.env.FormData;return o(s?{"files[]":e}:e,p&&new p)}else if(r||n==="application/json"){setContentTypeIfUnset(t,"application/json");return stringifySafely(e)}return e}],transformResponse:[function transformResponse(e){var t=this.transitional||c.transitional;var r=t&&t.silentJSONParsing;var i=t&&t.forcedJSONParsing;var s=!r&&this.responseType==="json";if(s||i&&a.isString(e)&&e.length){try{return JSON.parse(e)}catch(e){if(s){if(e.name==="SyntaxError"){throw n.from(e,n.ERR_BAD_RESPONSE,this,null,this.response)}throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:r(7024)},validateStatus:function validateStatus(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};a.forEach(["delete","get","head"],(function forEachMethodNoData(e){c.headers[e]={}}));a.forEach(["post","put","patch"],(function forEachMethodWithData(e){c.headers[e]=a.merge(p)}));e.exports=c},936:e=>{"use strict";e.exports={silentJSONParsing:true,forcedJSONParsing:true,clarifyTimeoutError:false}},4322:e=>{e.exports={version:"0.27.2"}},7065:e=>{"use strict";e.exports=function bind(e,t){return function wrap(){var r=new Array(arguments.length);for(var a=0;a{"use strict";var a=r(328);function encode(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}e.exports=function buildURL(e,t,r){if(!t){return e}var i;if(r){i=r(t)}else if(a.isURLSearchParams(t)){i=t.toString()}else{var n=[];a.forEach(t,(function serialize(e,t){if(e===null||typeof e==="undefined"){return}if(a.isArray(e)){t=t+"[]"}else{e=[e]}a.forEach(e,(function parseValue(e){if(a.isDate(e)){e=e.toISOString()}else if(a.isObject(e)){e=JSON.stringify(e)}n.push(encode(t)+"="+encode(e))}))}));i=n.join("&")}if(i){var s=e.indexOf("#");if(s!==-1){e=e.slice(0,s)}e+=(e.indexOf("?")===-1?"?":"&")+i}return e}},7189:e=>{"use strict";e.exports=function combineURLs(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},1545:(e,t,r)=>{"use strict";var a=r(328);e.exports=a.isStandardBrowserEnv()?function standardBrowserEnv(){return{write:function write(e,t,r,i,n,s){var o=[];o.push(e+"="+encodeURIComponent(t));if(a.isNumber(r)){o.push("expires="+new Date(r).toGMTString())}if(a.isString(i)){o.push("path="+i)}if(a.isString(n)){o.push("domain="+n)}if(s===true){o.push("secure")}document.cookie=o.join("; ")},read:function read(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function remove(e){this.write(e,"",Date.now()-864e5)}}}():function nonStandardBrowserEnv(){return{write:function write(){},read:function read(){return null},remove:function remove(){}}}()},1301:e=>{"use strict";e.exports=function isAbsoluteURL(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}},650:(e,t,r)=>{"use strict";var a=r(328);e.exports=function isAxiosError(e){return a.isObject(e)&&e.isAxiosError===true}},3608:(e,t,r)=>{"use strict";var a=r(328);e.exports=a.isStandardBrowserEnv()?function standardBrowserEnv(){var e=/(msie|trident)/i.test(navigator.userAgent);var t=document.createElement("a");var r;function resolveURL(r){var a=r;if(e){t.setAttribute("href",a);a=t.href}t.setAttribute("href",a);return{href:t.href,protocol:t.protocol?t.protocol.replace(/:$/,""):"",host:t.host,search:t.search?t.search.replace(/^\?/,""):"",hash:t.hash?t.hash.replace(/^#/,""):"",hostname:t.hostname,port:t.port,pathname:t.pathname.charAt(0)==="/"?t.pathname:"/"+t.pathname}}r=resolveURL(window.location.href);return function isURLSameOrigin(e){var t=a.isString(e)?resolveURL(e):e;return t.protocol===r.protocol&&t.host===r.host}}():function nonStandardBrowserEnv(){return function isURLSameOrigin(){return true}}()},6240:(e,t,r)=>{"use strict";var a=r(328);e.exports=function normalizeHeaderName(e,t){a.forEach(e,(function processHeader(r,a){if(a!==t&&a.toUpperCase()===t.toUpperCase()){e[t]=r;delete e[a]}}))}},6455:(e,t,r)=>{"use strict";var a=r(328);var i=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function parseHeaders(e){var t={};var r;var n;var s;if(!e){return t}a.forEach(e.split("\n"),(function parser(e){s=e.indexOf(":");r=a.trim(e.substr(0,s)).toLowerCase();n=a.trim(e.substr(s+1));if(r){if(t[r]&&i.indexOf(r)>=0){return}if(r==="set-cookie"){t[r]=(t[r]?t[r]:[]).concat([n])}else{t[r]=t[r]?t[r]+", "+n:n}}}));return t}},6107:e=>{"use strict";e.exports=function parseProtocol(e){var t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}},4850:e=>{"use strict";e.exports=function spread(e){return function wrap(t){return e.apply(null,t)}}},470:(e,t,r)=>{"use strict";var a=r(328);function toFormData(e,t){t=t||new FormData;var r=[];function convertValue(e){if(e===null)return"";if(a.isDate(e)){return e.toISOString()}if(a.isArrayBuffer(e)||a.isTypedArray(e)){return typeof Blob==="function"?new Blob([e]):Buffer.from(e)}return e}function build(e,i){if(a.isPlainObject(e)||a.isArray(e)){if(r.indexOf(e)!==-1){throw Error("Circular reference detected in "+i)}r.push(e);a.forEach(e,(function each(e,r){if(a.isUndefined(e))return;var n=i?i+"."+r:r;var s;if(e&&!i&&typeof e==="object"){if(a.endsWith(r,"{}")){e=JSON.stringify(e)}else if(a.endsWith(r,"[]")&&(s=a.toArray(e))){s.forEach((function(e){!a.isUndefined(e)&&t.append(n,convertValue(e))}));return}}build(e,n)}));r.pop()}else{t.append(i,convertValue(e))}}build(e);return t}e.exports=toFormData},1632:(e,t,r)=>{"use strict";var a=r(4322).version;var i=r(2093);var n={};["object","boolean","number","function","string","symbol"].forEach((function(e,t){n[e]=function validator(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}}));var s={};n.transitional=function transitional(e,t,r){function formatMessage(e,t){return"[Axios v"+a+"] Transitional option '"+e+"'"+t+(r?". "+r:"")}return function(r,a,n){if(e===false){throw new i(formatMessage(a," has been removed"+(t?" in "+t:"")),i.ERR_DEPRECATED)}if(t&&!s[a]){s[a]=true;console.warn(formatMessage(a," has been deprecated since v"+t+" and will be removed in the near future"))}return e?e(r,a,n):true}};function assertOptions(e,t,r){if(typeof e!=="object"){throw new i("options must be an object",i.ERR_BAD_OPTION_VALUE)}var a=Object.keys(e);var n=a.length;while(n-- >0){var s=a[n];var o=t[s];if(o){var p=e[s];var c=p===undefined||o(p,s,e);if(c!==true){throw new i("option "+s+" must be "+c,i.ERR_BAD_OPTION_VALUE)}continue}if(r!==true){throw new i("Unknown option "+s,i.ERR_BAD_OPTION)}}}e.exports={assertOptions:assertOptions,validators:n}},328:(e,t,r)=>{"use strict";var a=r(7065);var i=Object.prototype.toString;var n=function(e){return function(t){var r=i.call(t);return e[r]||(e[r]=r.slice(8,-1).toLowerCase())}}(Object.create(null));function kindOfTest(e){e=e.toLowerCase();return function isKindOf(t){return n(t)===e}}function isArray(e){return Array.isArray(e)}function isUndefined(e){return typeof e==="undefined"}function isBuffer(e){return e!==null&&!isUndefined(e)&&e.constructor!==null&&!isUndefined(e.constructor)&&typeof e.constructor.isBuffer==="function"&&e.constructor.isBuffer(e)}var s=kindOfTest("ArrayBuffer");function isArrayBufferView(e){var t;if(typeof ArrayBuffer!=="undefined"&&ArrayBuffer.isView){t=ArrayBuffer.isView(e)}else{t=e&&e.buffer&&s(e.buffer)}return t}function isString(e){return typeof e==="string"}function isNumber(e){return typeof e==="number"}function isObject(e){return e!==null&&typeof e==="object"}function isPlainObject(e){if(n(e)!=="object"){return false}var t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}var o=kindOfTest("Date");var p=kindOfTest("File");var c=kindOfTest("Blob");var l=kindOfTest("FileList");function isFunction(e){return i.call(e)==="[object Function]"}function isStream(e){return isObject(e)&&isFunction(e.pipe)}function isFormData(e){var t="[object FormData]";return e&&(typeof FormData==="function"&&e instanceof FormData||i.call(e)===t||isFunction(e.toString)&&e.toString()===t)}var d=kindOfTest("URLSearchParams");function trim(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function isStandardBrowserEnv(){if(typeof navigator!=="undefined"&&(navigator.product==="ReactNative"||navigator.product==="NativeScript"||navigator.product==="NS")){return false}return typeof window!=="undefined"&&typeof document!=="undefined"}function forEach(e,t){if(e===null||typeof e==="undefined"){return}if(typeof e!=="object"){e=[e]}if(isArray(e)){for(var r=0,a=e.length;r0){n=a[i];if(!s[n]){t[n]=e[n];s[n]=true}}e=Object.getPrototypeOf(e)}while(e&&(!r||r(e,t))&&e!==Object.prototype);return t}function endsWith(e,t,r){e=String(e);if(r===undefined||r>e.length){r=e.length}r-=t.length;var a=e.indexOf(t,r);return a!==-1&&a===r}function toArray(e){if(!e)return null;var t=e.length;if(isUndefined(t))return null;var r=new Array(t);while(t-- >0){r[t]=e[t]}return r}var u=function(e){return function(t){return e&&t instanceof e}}(typeof Uint8Array!=="undefined"&&Object.getPrototypeOf(Uint8Array));e.exports={isArray:isArray,isArrayBuffer:s,isBuffer:isBuffer,isFormData:isFormData,isArrayBufferView:isArrayBufferView,isString:isString,isNumber:isNumber,isObject:isObject,isPlainObject:isPlainObject,isUndefined:isUndefined,isDate:o,isFile:p,isBlob:c,isFunction:isFunction,isStream:isStream,isURLSearchParams:d,isStandardBrowserEnv:isStandardBrowserEnv,forEach:forEach,merge:merge,extend:extend,trim:trim,stripBOM:stripBOM,inherits:inherits,toFlatObject:toFlatObject,kindOf:n,kindOfTest:kindOfTest,endsWith:endsWith,toArray:toArray,isTypedArray:u,isFileList:l}},9417:e=>{"use strict";e.exports=balanced;function balanced(e,t,r){if(e instanceof RegExp)e=maybeMatch(e,r);if(t instanceof RegExp)t=maybeMatch(t,r);var a=range(e,t,r);return a&&{start:a[0],end:a[1],pre:r.slice(0,a[0]),body:r.slice(a[0]+e.length,a[1]),post:r.slice(a[1]+t.length)}}function maybeMatch(e,t){var r=t.match(e);return r?r[0]:null}balanced.range=range;function range(e,t,r){var a,i,n,s,o;var p=r.indexOf(e);var c=r.indexOf(t,p+1);var l=p;if(p>=0&&c>0){if(e===t){return[p,c]}a=[];n=r.length;while(l>=0&&!o){if(l==p){a.push(l);p=r.indexOf(e,l+1)}else if(a.length==1){o=[a.pop(),c]}else{i=a.pop();if(i=0?p:c}if(a.length){o=[n,s]}}return o}},3682:(e,t,r)=>{var a=r(4670);var i=r(5549);var n=r(6819);var s=Function.bind;var o=s.bind(s);function bindApi(e,t,r){var a=o(n,null).apply(null,r?[t,r]:[t]);e.api={remove:a};e.remove=a;["before","error","after","wrap"].forEach((function(a){var n=r?[t,a,r]:[t,a];e[a]=e.api[a]=o(i,null).apply(null,n)}))}function HookSingular(){var e="h";var t={registry:{}};var r=a.bind(null,t,e);bindApi(r,t,e);return r}function HookCollection(){var e={registry:{}};var t=a.bind(null,e);bindApi(t,e);return t}var p=false;function Hook(){if(!p){console.warn('[before-after-hook]: "Hook()" repurposing warning, use "Hook.Collection()". Read more: https://git.io/upgrade-before-after-hook-to-1.4');p=true}return HookCollection()}Hook.Singular=HookSingular.bind();Hook.Collection=HookCollection.bind();e.exports=Hook;e.exports.Hook=Hook;e.exports.Singular=Hook.Singular;e.exports.Collection=Hook.Collection},5549:e=>{e.exports=addHook;function addHook(e,t,r,a){var i=a;if(!e.registry[r]){e.registry[r]=[]}if(t==="before"){a=function(e,t){return Promise.resolve().then(i.bind(null,t)).then(e.bind(null,t))}}if(t==="after"){a=function(e,t){var r;return Promise.resolve().then(e.bind(null,t)).then((function(e){r=e;return i(r,t)})).then((function(){return r}))}}if(t==="error"){a=function(e,t){return Promise.resolve().then(e.bind(null,t)).catch((function(e){return i(e,t)}))}}e.registry[r].push({hook:a,orig:i})}},4670:e=>{e.exports=register;function register(e,t,r,a){if(typeof r!=="function"){throw new Error("method for before hook must be a function")}if(!a){a={}}if(Array.isArray(t)){return t.reverse().reduce((function(t,r){return register.bind(null,e,r,t,a)}),r)()}return Promise.resolve().then((function(){if(!e.registry[t]){return r(a)}return e.registry[t].reduce((function(e,t){return t.hook.bind(null,e,a)}),r)()}))}},6819:e=>{e.exports=removeHook;function removeHook(e,t,r){if(!e.registry[t]){return}var a=e.registry[t].map((function(e){return e.orig})).indexOf(r);if(a===-1){return}e.registry[t].splice(a,1)}},3717:(e,t,r)=>{var a=r(6891);var i=r(9417);e.exports=expandTop;var n="\0SLASH"+Math.random()+"\0";var s="\0OPEN"+Math.random()+"\0";var o="\0CLOSE"+Math.random()+"\0";var p="\0COMMA"+Math.random()+"\0";var c="\0PERIOD"+Math.random()+"\0";function numeric(e){return parseInt(e,10)==e?parseInt(e,10):e.charCodeAt(0)}function escapeBraces(e){return e.split("\\\\").join(n).split("\\{").join(s).split("\\}").join(o).split("\\,").join(p).split("\\.").join(c)}function unescapeBraces(e){return e.split(n).join("\\").split(s).join("{").split(o).join("}").split(p).join(",").split(c).join(".")}function parseCommaParts(e){if(!e)return[""];var t=[];var r=i("{","}",e);if(!r)return e.split(",");var a=r.pre;var n=r.body;var s=r.post;var o=a.split(",");o[o.length-1]+="{"+n+"}";var p=parseCommaParts(s);if(s.length){o[o.length-1]+=p.shift();o.push.apply(o,p)}t.push.apply(t,o);return t}function expandTop(e){if(!e)return[];if(e.substr(0,2)==="{}"){e="\\{\\}"+e.substr(2)}return expand(escapeBraces(e),true).map(unescapeBraces)}function identity(e){return e}function embrace(e){return"{"+e+"}"}function isPadded(e){return/^-?0\d/.test(e)}function lte(e,t){return e<=t}function gte(e,t){return e>=t}function expand(e,t){var r=[];var n=i("{","}",e);if(!n||/\$$/.test(n.pre))return[e];var s=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(n.body);var p=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(n.body);var c=s||p;var l=n.body.indexOf(",")>=0;if(!c&&!l){if(n.post.match(/,.*\}/)){e=n.pre+"{"+n.body+o+n.post;return expand(e)}return[e]}var d;if(c){d=n.body.split(/\.\./)}else{d=parseCommaParts(n.body);if(d.length===1){d=expand(d[0],false).map(embrace);if(d.length===1){var u=n.post.length?expand(n.post,false):[""];return u.map((function(e){return n.pre+d[0]+e}))}}}var m=n.pre;var u=n.post.length?expand(n.post,false):[""];var h;if(c){var g=numeric(d[0]);var v=numeric(d[1]);var y=Math.max(d[0].length,d[1].length);var b=d.length==3?Math.abs(numeric(d[2])):1;var w=lte;var x=v0){var C=new Array(k+1).join("0");if(S<0)T="-"+C+T.slice(1);else T=C+T}}}h.push(T)}}else{h=a(d,(function(e){return expand(e,false)}))}for(var O=0;O{var a=r(3837);var i=r(2781).Stream;var n=r(8611);e.exports=CombinedStream;function CombinedStream(){this.writable=false;this.readable=true;this.dataSize=0;this.maxDataSize=2*1024*1024;this.pauseStreams=true;this._released=false;this._streams=[];this._currentStream=null;this._insideLoop=false;this._pendingNext=false}a.inherits(CombinedStream,i);CombinedStream.create=function(e){var t=new this;e=e||{};for(var r in e){t[r]=e[r]}return t};CombinedStream.isStreamLike=function(e){return typeof e!=="function"&&typeof e!=="string"&&typeof e!=="boolean"&&typeof e!=="number"&&!Buffer.isBuffer(e)};CombinedStream.prototype.append=function(e){var t=CombinedStream.isStreamLike(e);if(t){if(!(e instanceof n)){var r=n.create(e,{maxDataSize:Infinity,pauseStream:this.pauseStreams});e.on("data",this._checkDataSize.bind(this));e=r}this._handleErrors(e);if(this.pauseStreams){e.pause()}}this._streams.push(e);return this};CombinedStream.prototype.pipe=function(e,t){i.prototype.pipe.call(this,e,t);this.resume();return e};CombinedStream.prototype._getNext=function(){this._currentStream=null;if(this._insideLoop){this._pendingNext=true;return}this._insideLoop=true;try{do{this._pendingNext=false;this._realGetNext()}while(this._pendingNext)}finally{this._insideLoop=false}};CombinedStream.prototype._realGetNext=function(){var e=this._streams.shift();if(typeof e=="undefined"){this.end();return}if(typeof e!=="function"){this._pipeNext(e);return}var t=e;t(function(e){var t=CombinedStream.isStreamLike(e);if(t){e.on("data",this._checkDataSize.bind(this));this._handleErrors(e)}this._pipeNext(e)}.bind(this))};CombinedStream.prototype._pipeNext=function(e){this._currentStream=e;var t=CombinedStream.isStreamLike(e);if(t){e.on("end",this._getNext.bind(this));e.pipe(this,{end:false});return}var r=e;this.write(r);this._getNext()};CombinedStream.prototype._handleErrors=function(e){var t=this;e.on("error",(function(e){t._emitError(e)}))};CombinedStream.prototype.write=function(e){this.emit("data",e)};CombinedStream.prototype.pause=function(){if(!this.pauseStreams){return}if(this.pauseStreams&&this._currentStream&&typeof this._currentStream.pause=="function")this._currentStream.pause();this.emit("pause")};CombinedStream.prototype.resume=function(){if(!this._released){this._released=true;this.writable=true;this._getNext()}if(this.pauseStreams&&this._currentStream&&typeof this._currentStream.resume=="function")this._currentStream.resume();this.emit("resume")};CombinedStream.prototype.end=function(){this._reset();this.emit("end")};CombinedStream.prototype.destroy=function(){this._reset();this.emit("close")};CombinedStream.prototype._reset=function(){this.writable=false;this._streams=[];this._currentStream=null};CombinedStream.prototype._checkDataSize=function(){this._updateDataSize();if(this.dataSize<=this.maxDataSize){return}var e="DelayedStream#maxDataSize of "+this.maxDataSize+" bytes exceeded.";this._emitError(new Error(e))};CombinedStream.prototype._updateDataSize=function(){this.dataSize=0;var e=this;this._streams.forEach((function(t){if(!t.dataSize){return}e.dataSize+=t.dataSize}));if(this._currentStream&&this._currentStream.dataSize){this.dataSize+=this._currentStream.dataSize}};CombinedStream.prototype._emitError=function(e){this._reset();this.emit("error",e)}},6891:e=>{e.exports=function(e,r){var a=[];for(var i=0;i{t.formatArgs=formatArgs;t.save=save;t.load=load;t.useColors=useColors;t.storage=localstorage();t.destroy=(()=>{let e=false;return()=>{if(!e){e=true;console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}}})();t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function useColors(){if(typeof window!=="undefined"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)){return true}if(typeof navigator!=="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)){return false}return typeof document!=="undefined"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window!=="undefined"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator!=="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator!=="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function formatArgs(t){t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff);if(!this.useColors){return}const r="color: "+this.color;t.splice(1,0,r,"color: inherit");let a=0;let i=0;t[0].replace(/%[a-zA-Z%]/g,(e=>{if(e==="%%"){return}a++;if(e==="%c"){i=a}}));t.splice(i,0,r)}t.log=console.debug||console.log||(()=>{});function save(e){try{if(e){t.storage.setItem("debug",e)}else{t.storage.removeItem("debug")}}catch(e){}}function load(){let e;try{e=t.storage.getItem("debug")}catch(e){}if(!e&&typeof process!=="undefined"&&"env"in process){e=process.env.DEBUG}return e}function localstorage(){try{return localStorage}catch(e){}}e.exports=r(6243)(t);const{formatters:a}=e.exports;a.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}},6243:(e,t,r)=>{function setup(e){createDebug.debug=createDebug;createDebug.default=createDebug;createDebug.coerce=coerce;createDebug.disable=disable;createDebug.enable=enable;createDebug.enabled=enabled;createDebug.humanize=r(900);createDebug.destroy=destroy;Object.keys(e).forEach((t=>{createDebug[t]=e[t]}));createDebug.names=[];createDebug.skips=[];createDebug.formatters={};function selectColor(e){let t=0;for(let r=0;r{if(t==="%%"){return"%"}n++;const i=createDebug.formatters[a];if(typeof i==="function"){const a=e[n];t=i.call(r,a);e.splice(n,1);n--}return t}));createDebug.formatArgs.call(r,e);const s=r.log||createDebug.log;s.apply(r,e)}debug.namespace=e;debug.useColors=createDebug.useColors();debug.color=createDebug.selectColor(e);debug.extend=extend;debug.destroy=createDebug.destroy;Object.defineProperty(debug,"enabled",{enumerable:true,configurable:false,get:()=>{if(r!==null){return r}if(a!==createDebug.namespaces){a=createDebug.namespaces;i=createDebug.enabled(e)}return i},set:e=>{r=e}});if(typeof createDebug.init==="function"){createDebug.init(debug)}return debug}function extend(e,t){const r=createDebug(this.namespace+(typeof t==="undefined"?":":t)+e);r.log=this.log;return r}function enable(e){createDebug.save(e);createDebug.namespaces=e;createDebug.names=[];createDebug.skips=[];let t;const r=(typeof e==="string"?e:"").split(/[\s,]+/);const a=r.length;for(t=0;t"-"+e))].join(",");createDebug.enable("");return e}function enabled(e){if(e[e.length-1]==="*"){return true}let t;let r;for(t=0,r=createDebug.skips.length;t{if(typeof process==="undefined"||process.type==="renderer"||process.browser===true||process.__nwjs){e.exports=r(8222)}else{e.exports=r(4874)}},4874:(e,t,r)=>{const a=r(6224);const i=r(3837);t.init=init;t.log=log;t.formatArgs=formatArgs;t.save=save;t.load=load;t.useColors=useColors;t.destroy=i.deprecate((()=>{}),"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");t.colors=[6,2,3,4,5,1];try{const e=r(9318);if(e&&(e.stderr||e).level>=2){t.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221]}}catch(e){}t.inspectOpts=Object.keys(process.env).filter((e=>/^debug_/i.test(e))).reduce(((e,t)=>{const r=t.substring(6).toLowerCase().replace(/_([a-z])/g,((e,t)=>t.toUpperCase()));let a=process.env[t];if(/^(yes|on|true|enabled)$/i.test(a)){a=true}else if(/^(no|off|false|disabled)$/i.test(a)){a=false}else if(a==="null"){a=null}else{a=Number(a)}e[r]=a;return e}),{});function useColors(){return"colors"in t.inspectOpts?Boolean(t.inspectOpts.colors):a.isatty(process.stderr.fd)}function formatArgs(t){const{namespace:r,useColors:a}=this;if(a){const a=this.color;const i="[3"+(a<8?a:"8;5;"+a);const n=` ${i};1m${r} `;t[0]=n+t[0].split("\n").join("\n"+n);t.push(i+"m+"+e.exports.humanize(this.diff)+"")}else{t[0]=getDate()+r+" "+t[0]}}function getDate(){if(t.inspectOpts.hideDate){return""}return(new Date).toISOString()+" "}function log(...e){return process.stderr.write(i.format(...e)+"\n")}function save(e){if(e){process.env.DEBUG=e}else{delete process.env.DEBUG}}function load(){return process.env.DEBUG}function init(e){e.inspectOpts={};const r=Object.keys(t.inspectOpts);for(let a=0;ae.trim())).join(" ")};n.O=function(e){this.inspectOpts.colors=this.useColors;return i.inspect(e,this.inspectOpts)}},8611:(e,t,r)=>{var a=r(2781).Stream;var i=r(3837);e.exports=DelayedStream;function DelayedStream(){this.source=null;this.dataSize=0;this.maxDataSize=1024*1024;this.pauseStream=true;this._maxDataSizeExceeded=false;this._released=false;this._bufferedEvents=[]}i.inherits(DelayedStream,a);DelayedStream.create=function(e,t){var r=new this;t=t||{};for(var a in t){r[a]=t[a]}r.source=e;var i=e.emit;e.emit=function(){r._handleEmit(arguments);return i.apply(e,arguments)};e.on("error",(function(){}));if(r.pauseStream){e.pause()}return r};Object.defineProperty(DelayedStream.prototype,"readable",{configurable:true,enumerable:true,get:function(){return this.source.readable}});DelayedStream.prototype.setEncoding=function(){return this.source.setEncoding.apply(this.source,arguments)};DelayedStream.prototype.resume=function(){if(!this._released){this.release()}this.source.resume()};DelayedStream.prototype.pause=function(){this.source.pause()};DelayedStream.prototype.release=function(){this._released=true;this._bufferedEvents.forEach(function(e){this.emit.apply(this,e)}.bind(this));this._bufferedEvents=[]};DelayedStream.prototype.pipe=function(){var e=a.prototype.pipe.apply(this,arguments);this.resume();return e};DelayedStream.prototype._handleEmit=function(e){if(this._released){this.emit.apply(this,e);return}if(e[0]==="data"){this.dataSize+=e[1].length;this._checkIfMaxDataSizeExceeded()}this._bufferedEvents.push(e)};DelayedStream.prototype._checkIfMaxDataSizeExceeded=function(){if(this._maxDataSizeExceeded){return}if(this.dataSize<=this.maxDataSize){return}this._maxDataSizeExceeded=true;var e="DelayedStream#maxDataSize of "+this.maxDataSize+" bytes exceeded.";this.emit("error",new Error(e))}},8932:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});class Deprecation extends Error{constructor(e){super(e);if(Error.captureStackTrace){Error.captureStackTrace(this,this.constructor)}this.name="Deprecation"}}t.Deprecation=Deprecation},8206:e=>{"use strict";e.exports=function equal(e,t){if(e===t)return true;if(e&&t&&typeof e=="object"&&typeof t=="object"){if(e.constructor!==t.constructor)return false;var r,a,i;if(Array.isArray(e)){r=e.length;if(r!=t.length)return false;for(a=r;a--!==0;)if(!equal(e[a],t[a]))return false;return true}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();i=Object.keys(e);r=i.length;if(r!==Object.keys(t).length)return false;for(a=r;a--!==0;)if(!Object.prototype.hasOwnProperty.call(t,i[a]))return false;for(a=r;a--!==0;){var n=i[a];if(!equal(e[n],t[n]))return false}return true}return e!==e&&t!==t}},1133:(e,t,r)=>{var a;e.exports=function(){if(!a){try{a=r(8237)("follow-redirects")}catch(e){}if(typeof a!=="function"){a=function(){}}}a.apply(null,arguments)}},7707:(e,t,r)=>{var a=r(7310);var i=a.URL;var n=r(3685);var s=r(5687);var o=r(2781).Writable;var p=r(9491);var c=r(1133);var l=["abort","aborted","connect","error","socket","timeout"];var d=Object.create(null);l.forEach((function(e){d[e]=function(t,r,a){this._redirectable.emit(e,t,r,a)}}));var u=createErrorType("ERR_INVALID_URL","Invalid URL",TypeError);var m=createErrorType("ERR_FR_REDIRECTION_FAILURE","Redirected request failed");var h=createErrorType("ERR_FR_TOO_MANY_REDIRECTS","Maximum number of redirects exceeded");var g=createErrorType("ERR_FR_MAX_BODY_LENGTH_EXCEEDED","Request body larger than maxBodyLength limit");var v=createErrorType("ERR_STREAM_WRITE_AFTER_END","write after end");function RedirectableRequest(e,t){o.call(this);this._sanitizeOptions(e);this._options=e;this._ended=false;this._ending=false;this._redirectCount=0;this._redirects=[];this._requestBodyLength=0;this._requestBodyBuffers=[];if(t){this.on("response",t)}var r=this;this._onNativeResponse=function(e){r._processResponse(e)};this._performRequest()}RedirectableRequest.prototype=Object.create(o.prototype);RedirectableRequest.prototype.abort=function(){abortRequest(this._currentRequest);this.emit("abort")};RedirectableRequest.prototype.write=function(e,t,r){if(this._ending){throw new v}if(!isString(e)&&!isBuffer(e)){throw new TypeError("data should be a string, Buffer or Uint8Array")}if(isFunction(t)){r=t;t=null}if(e.length===0){if(r){r()}return}if(this._requestBodyLength+e.length<=this._options.maxBodyLength){this._requestBodyLength+=e.length;this._requestBodyBuffers.push({data:e,encoding:t});this._currentRequest.write(e,t,r)}else{this.emit("error",new g);this.abort()}};RedirectableRequest.prototype.end=function(e,t,r){if(isFunction(e)){r=e;e=t=null}else if(isFunction(t)){r=t;t=null}if(!e){this._ended=this._ending=true;this._currentRequest.end(null,null,r)}else{var a=this;var i=this._currentRequest;this.write(e,t,(function(){a._ended=true;i.end(null,null,r)}));this._ending=true}};RedirectableRequest.prototype.setHeader=function(e,t){this._options.headers[e]=t;this._currentRequest.setHeader(e,t)};RedirectableRequest.prototype.removeHeader=function(e){delete this._options.headers[e];this._currentRequest.removeHeader(e)};RedirectableRequest.prototype.setTimeout=function(e,t){var r=this;function destroyOnTimeout(t){t.setTimeout(e);t.removeListener("timeout",t.destroy);t.addListener("timeout",t.destroy)}function startTimer(t){if(r._timeout){clearTimeout(r._timeout)}r._timeout=setTimeout((function(){r.emit("timeout");clearTimer()}),e);destroyOnTimeout(t)}function clearTimer(){if(r._timeout){clearTimeout(r._timeout);r._timeout=null}r.removeListener("abort",clearTimer);r.removeListener("error",clearTimer);r.removeListener("response",clearTimer);if(t){r.removeListener("timeout",t)}if(!r.socket){r._currentRequest.removeListener("socket",startTimer)}}if(t){this.on("timeout",t)}if(this.socket){startTimer(this.socket)}else{this._currentRequest.once("socket",startTimer)}this.on("socket",destroyOnTimeout);this.on("abort",clearTimer);this.on("error",clearTimer);this.on("response",clearTimer);return this};["flushHeaders","getHeader","setNoDelay","setSocketKeepAlive"].forEach((function(e){RedirectableRequest.prototype[e]=function(t,r){return this._currentRequest[e](t,r)}}));["aborted","connection","socket"].forEach((function(e){Object.defineProperty(RedirectableRequest.prototype,e,{get:function(){return this._currentRequest[e]}})}));RedirectableRequest.prototype._sanitizeOptions=function(e){if(!e.headers){e.headers={}}if(e.host){if(!e.hostname){e.hostname=e.host}delete e.host}if(!e.pathname&&e.path){var t=e.path.indexOf("?");if(t<0){e.pathname=e.path}else{e.pathname=e.path.substring(0,t);e.search=e.path.substring(t)}}};RedirectableRequest.prototype._performRequest=function(){var e=this._options.protocol;var t=this._options.nativeProtocols[e];if(!t){this.emit("error",new TypeError("Unsupported protocol "+e));return}if(this._options.agents){var r=e.slice(0,-1);this._options.agent=this._options.agents[r]}var i=this._currentRequest=t.request(this._options,this._onNativeResponse);i._redirectable=this;for(var n of l){i.on(n,d[n])}this._currentUrl=/^\//.test(this._options.path)?a.format(this._options):this._options.path;if(this._isRedirect){var s=0;var o=this;var p=this._requestBodyBuffers;(function writeNext(e){if(i===o._currentRequest){if(e){o.emit("error",e)}else if(s=400){e.responseUrl=this._currentUrl;e.redirects=this._redirects;this.emit("response",e);this._requestBodyBuffers=[];return}abortRequest(this._currentRequest);e.destroy();if(++this._redirectCount>this._options.maxRedirects){this.emit("error",new h);return}var i;var n=this._options.beforeRedirect;if(n){i=Object.assign({Host:e.req.getHeader("host")},this._options.headers)}var s=this._options.method;if((t===301||t===302)&&this._options.method==="POST"||t===303&&!/^(?:GET|HEAD)$/.test(this._options.method)){this._options.method="GET";this._requestBodyBuffers=[];removeMatchingHeaders(/^content-/i,this._options.headers)}var o=removeMatchingHeaders(/^host$/i,this._options.headers);var p=a.parse(this._currentUrl);var l=o||p.host;var d=/^\w+:/.test(r)?this._currentUrl:a.format(Object.assign(p,{host:l}));var u;try{u=a.resolve(d,r)}catch(e){this.emit("error",new m({cause:e}));return}c("redirecting to",u);this._isRedirect=true;var g=a.parse(u);Object.assign(this._options,g);if(g.protocol!==p.protocol&&g.protocol!=="https:"||g.host!==l&&!isSubdomain(g.host,l)){removeMatchingHeaders(/^(?:authorization|cookie)$/i,this._options.headers)}if(isFunction(n)){var v={headers:e.headers,statusCode:t};var y={url:d,method:s,headers:i};try{n(this._options,v,y)}catch(e){this.emit("error",e);return}this._sanitizeOptions(this._options)}try{this._performRequest()}catch(e){this.emit("error",new m({cause:e}))}};function wrap(e){var t={maxRedirects:21,maxBodyLength:10*1024*1024};var r={};Object.keys(e).forEach((function(n){var s=n+":";var o=r[s]=e[n];var l=t[n]=Object.create(o);function request(e,n,o){if(isString(e)){var l;try{l=urlToOptions(new i(e))}catch(t){l=a.parse(e)}if(!isString(l.protocol)){throw new u({input:e})}e=l}else if(i&&e instanceof i){e=urlToOptions(e)}else{o=n;n=e;e={protocol:s}}if(isFunction(n)){o=n;n=null}n=Object.assign({maxRedirects:t.maxRedirects,maxBodyLength:t.maxBodyLength},e,n);n.nativeProtocols=r;if(!isString(n.host)&&!isString(n.hostname)){n.hostname="::1"}p.equal(n.protocol,s,"protocol mismatch");c("options",n);return new RedirectableRequest(n,o)}function get(e,t,r){var a=l.request(e,t,r);a.end();return a}Object.defineProperties(l,{request:{value:request,configurable:true,enumerable:true,writable:true},get:{value:get,configurable:true,enumerable:true,writable:true}})}));return t}function noop(){}function urlToOptions(e){var t={protocol:e.protocol,hostname:e.hostname.startsWith("[")?e.hostname.slice(1,-1):e.hostname,hash:e.hash,search:e.search,pathname:e.pathname,path:e.pathname+e.search,href:e.href};if(e.port!==""){t.port=Number(e.port)}return t}function removeMatchingHeaders(e,t){var r;for(var a in t){if(e.test(a)){r=t[a];delete t[a]}}return r===null||typeof r==="undefined"?undefined:String(r).trim()}function createErrorType(e,t,r){function CustomError(r){Error.captureStackTrace(this,this.constructor);Object.assign(this,r||{});this.code=e;this.message=this.cause?t+": "+this.cause.message:t}CustomError.prototype=new(r||Error);CustomError.prototype.constructor=CustomError;CustomError.prototype.name="Error ["+e+"]";return CustomError}function abortRequest(e){for(var t of l){e.removeListener(t,d[t])}e.on("error",noop);e.abort()}function isSubdomain(e,t){p(isString(e)&&isString(t));var r=e.length-t.length-1;return r>0&&e[r]==="."&&e.endsWith(t)}function isString(e){return typeof e==="string"||e instanceof String}function isFunction(e){return typeof e==="function"}function isBuffer(e){return typeof e==="object"&&"length"in e}e.exports=wrap({http:n,https:s});e.exports.wrap=wrap},4334:(e,t,r)=>{var a=r(5443);var i=r(3837);var n=r(1017);var s=r(3685);var o=r(5687);var p=r(7310).parse;var c=r(7147);var l=r(2781).Stream;var d=r(3583);var u=r(4812);var m=r(7142);e.exports=FormData;i.inherits(FormData,a);function FormData(e){if(!(this instanceof FormData)){return new FormData(e)}this._overheadLength=0;this._valueLength=0;this._valuesToMeasure=[];a.call(this);e=e||{};for(var t in e){this[t]=e[t]}}FormData.LINE_BREAK="\r\n";FormData.DEFAULT_CONTENT_TYPE="application/octet-stream";FormData.prototype.append=function(e,t,r){r=r||{};if(typeof r=="string"){r={filename:r}}var n=a.prototype.append.bind(this);if(typeof t=="number"){t=""+t}if(i.isArray(t)){this._error(new Error("Arrays are not supported."));return}var s=this._multiPartHeader(e,t,r);var o=this._multiPartFooter();n(s);n(t);n(o);this._trackLength(s,t,r)};FormData.prototype._trackLength=function(e,t,r){var a=0;if(r.knownLength!=null){a+=+r.knownLength}else if(Buffer.isBuffer(t)){a=t.length}else if(typeof t==="string"){a=Buffer.byteLength(t)}this._valueLength+=a;this._overheadLength+=Buffer.byteLength(e)+FormData.LINE_BREAK.length;if(!t||!t.path&&!(t.readable&&t.hasOwnProperty("httpVersion"))&&!(t instanceof l)){return}if(!r.knownLength){this._valuesToMeasure.push(t)}};FormData.prototype._lengthRetriever=function(e,t){if(e.hasOwnProperty("fd")){if(e.end!=undefined&&e.end!=Infinity&&e.start!=undefined){t(null,e.end+1-(e.start?e.start:0))}else{c.stat(e.path,(function(r,a){var i;if(r){t(r);return}i=a.size-(e.start?e.start:0);t(null,i)}))}}else if(e.hasOwnProperty("httpVersion")){t(null,+e.headers["content-length"])}else if(e.hasOwnProperty("httpModule")){e.on("response",(function(r){e.pause();t(null,+r.headers["content-length"])}));e.resume()}else{t("Unknown stream")}};FormData.prototype._multiPartHeader=function(e,t,r){if(typeof r.header=="string"){return r.header}var a=this._getContentDisposition(t,r);var i=this._getContentType(t,r);var n="";var s={"Content-Disposition":["form-data",'name="'+e+'"'].concat(a||[]),"Content-Type":[].concat(i||[])};if(typeof r.header=="object"){m(s,r.header)}var o;for(var p in s){if(!s.hasOwnProperty(p))continue;o=s[p];if(o==null){continue}if(!Array.isArray(o)){o=[o]}if(o.length){n+=p+": "+o.join("; ")+FormData.LINE_BREAK}}return"--"+this.getBoundary()+FormData.LINE_BREAK+n+FormData.LINE_BREAK};FormData.prototype._getContentDisposition=function(e,t){var r,a;if(typeof t.filepath==="string"){r=n.normalize(t.filepath).replace(/\\/g,"/")}else if(t.filename||e.name||e.path){r=n.basename(t.filename||e.name||e.path)}else if(e.readable&&e.hasOwnProperty("httpVersion")){r=n.basename(e.client._httpMessage.path||"")}if(r){a='filename="'+r+'"'}return a};FormData.prototype._getContentType=function(e,t){var r=t.contentType;if(!r&&e.name){r=d.lookup(e.name)}if(!r&&e.path){r=d.lookup(e.path)}if(!r&&e.readable&&e.hasOwnProperty("httpVersion")){r=e.headers["content-type"]}if(!r&&(t.filepath||t.filename)){r=d.lookup(t.filepath||t.filename)}if(!r&&typeof e=="object"){r=FormData.DEFAULT_CONTENT_TYPE}return r};FormData.prototype._multiPartFooter=function(){return function(e){var t=FormData.LINE_BREAK;var r=this._streams.length===0;if(r){t+=this._lastBoundary()}e(t)}.bind(this)};FormData.prototype._lastBoundary=function(){return"--"+this.getBoundary()+"--"+FormData.LINE_BREAK};FormData.prototype.getHeaders=function(e){var t;var r={"content-type":"multipart/form-data; boundary="+this.getBoundary()};for(t in e){if(e.hasOwnProperty(t)){r[t.toLowerCase()]=e[t]}}return r};FormData.prototype.setBoundary=function(e){this._boundary=e};FormData.prototype.getBoundary=function(){if(!this._boundary){this._generateBoundary()}return this._boundary};FormData.prototype.getBuffer=function(){var e=new Buffer.alloc(0);var t=this.getBoundary();for(var r=0,a=this._streams.length;r{e.exports=function(e,t){Object.keys(t).forEach((function(r){e[r]=e[r]||t[r]}));return e}},9618:(e,t,r)=>{"use strict";const a=r(7758);const i=r(1017);const n=r(2915).mkdirsSync;const s=r(2548).utimesMillisSync;const o=r(3901);function copySync(e,t,r){if(typeof r==="function"){r={filter:r}}r=r||{};r.clobber="clobber"in r?!!r.clobber:true;r.overwrite="overwrite"in r?!!r.overwrite:r.clobber;if(r.preserveTimestamps&&process.arch==="ia32"){process.emitWarning("Using the preserveTimestamps option in 32-bit node is not recommended;\n\n"+"\tsee https://github.com/jprichardson/node-fs-extra/issues/269","Warning","fs-extra-WARN0002")}const{srcStat:a,destStat:i}=o.checkPathsSync(e,t,"copy",r);o.checkParentPathsSync(e,a,t,"copy");return handleFilterAndCopy(i,e,t,r)}function handleFilterAndCopy(e,t,r,s){if(s.filter&&!s.filter(t,r))return;const o=i.dirname(r);if(!a.existsSync(o))n(o);return getStats(e,t,r,s)}function startCopy(e,t,r,a){if(a.filter&&!a.filter(t,r))return;return getStats(e,t,r,a)}function getStats(e,t,r,i){const n=i.dereference?a.statSync:a.lstatSync;const s=n(t);if(s.isDirectory())return onDir(s,e,t,r,i);else if(s.isFile()||s.isCharacterDevice()||s.isBlockDevice())return onFile(s,e,t,r,i);else if(s.isSymbolicLink())return onLink(e,t,r,i);else if(s.isSocket())throw new Error(`Cannot copy a socket file: ${t}`);else if(s.isFIFO())throw new Error(`Cannot copy a FIFO pipe: ${t}`);throw new Error(`Unknown file: ${t}`)}function onFile(e,t,r,a,i){if(!t)return copyFile(e,r,a,i);return mayCopyFile(e,r,a,i)}function mayCopyFile(e,t,r,i){if(i.overwrite){a.unlinkSync(r);return copyFile(e,t,r,i)}else if(i.errorOnExist){throw new Error(`'${r}' already exists`)}}function copyFile(e,t,r,i){a.copyFileSync(t,r);if(i.preserveTimestamps)handleTimestamps(e.mode,t,r);return setDestMode(r,e.mode)}function handleTimestamps(e,t,r){if(fileIsNotWritable(e))makeFileWritable(r,e);return setDestTimestamps(t,r)}function fileIsNotWritable(e){return(e&128)===0}function makeFileWritable(e,t){return setDestMode(e,t|128)}function setDestMode(e,t){return a.chmodSync(e,t)}function setDestTimestamps(e,t){const r=a.statSync(e);return s(t,r.atime,r.mtime)}function onDir(e,t,r,a,i){if(!t)return mkDirAndCopy(e.mode,r,a,i);return copyDir(r,a,i)}function mkDirAndCopy(e,t,r,i){a.mkdirSync(r);copyDir(t,r,i);return setDestMode(r,e)}function copyDir(e,t,r){a.readdirSync(e).forEach((a=>copyDirItem(a,e,t,r)))}function copyDirItem(e,t,r,a){const n=i.join(t,e);const s=i.join(r,e);const{destStat:p}=o.checkPathsSync(n,s,"copy",a);return startCopy(p,n,s,a)}function onLink(e,t,r,n){let s=a.readlinkSync(t);if(n.dereference){s=i.resolve(process.cwd(),s)}if(!e){return a.symlinkSync(s,r)}else{let e;try{e=a.readlinkSync(r)}catch(e){if(e.code==="EINVAL"||e.code==="UNKNOWN")return a.symlinkSync(s,r);throw e}if(n.dereference){e=i.resolve(process.cwd(),e)}if(o.isSrcSubdir(s,e)){throw new Error(`Cannot copy '${s}' to a subdirectory of itself, '${e}'.`)}if(a.statSync(r).isDirectory()&&o.isSrcSubdir(e,s)){throw new Error(`Cannot overwrite '${e}' with '${s}'.`)}return copyLink(s,r)}}function copyLink(e,t){a.unlinkSync(t);return a.symlinkSync(e,t)}e.exports=copySync},8834:(e,t,r)=>{"use strict";const a=r(7758);const i=r(1017);const n=r(2915).mkdirs;const s=r(3835).pathExists;const o=r(2548).utimesMillis;const p=r(3901);function copy(e,t,r,a){if(typeof r==="function"&&!a){a=r;r={}}else if(typeof r==="function"){r={filter:r}}a=a||function(){};r=r||{};r.clobber="clobber"in r?!!r.clobber:true;r.overwrite="overwrite"in r?!!r.overwrite:r.clobber;if(r.preserveTimestamps&&process.arch==="ia32"){process.emitWarning("Using the preserveTimestamps option in 32-bit node is not recommended;\n\n"+"\tsee https://github.com/jprichardson/node-fs-extra/issues/269","Warning","fs-extra-WARN0001")}p.checkPaths(e,t,"copy",r,((i,n)=>{if(i)return a(i);const{srcStat:s,destStat:o}=n;p.checkParentPaths(e,s,t,"copy",(i=>{if(i)return a(i);if(r.filter)return handleFilter(checkParentDir,o,e,t,r,a);return checkParentDir(o,e,t,r,a)}))}))}function checkParentDir(e,t,r,a,o){const p=i.dirname(r);s(p,((i,s)=>{if(i)return o(i);if(s)return getStats(e,t,r,a,o);n(p,(i=>{if(i)return o(i);return getStats(e,t,r,a,o)}))}))}function handleFilter(e,t,r,a,i,n){Promise.resolve(i.filter(r,a)).then((s=>{if(s)return e(t,r,a,i,n);return n()}),(e=>n(e)))}function startCopy(e,t,r,a,i){if(a.filter)return handleFilter(getStats,e,t,r,a,i);return getStats(e,t,r,a,i)}function getStats(e,t,r,i,n){const s=i.dereference?a.stat:a.lstat;s(t,((a,s)=>{if(a)return n(a);if(s.isDirectory())return onDir(s,e,t,r,i,n);else if(s.isFile()||s.isCharacterDevice()||s.isBlockDevice())return onFile(s,e,t,r,i,n);else if(s.isSymbolicLink())return onLink(e,t,r,i,n);else if(s.isSocket())return n(new Error(`Cannot copy a socket file: ${t}`));else if(s.isFIFO())return n(new Error(`Cannot copy a FIFO pipe: ${t}`));return n(new Error(`Unknown file: ${t}`))}))}function onFile(e,t,r,a,i,n){if(!t)return copyFile(e,r,a,i,n);return mayCopyFile(e,r,a,i,n)}function mayCopyFile(e,t,r,i,n){if(i.overwrite){a.unlink(r,(a=>{if(a)return n(a);return copyFile(e,t,r,i,n)}))}else if(i.errorOnExist){return n(new Error(`'${r}' already exists`))}else return n()}function copyFile(e,t,r,i,n){a.copyFile(t,r,(a=>{if(a)return n(a);if(i.preserveTimestamps)return handleTimestampsAndMode(e.mode,t,r,n);return setDestMode(r,e.mode,n)}))}function handleTimestampsAndMode(e,t,r,a){if(fileIsNotWritable(e)){return makeFileWritable(r,e,(i=>{if(i)return a(i);return setDestTimestampsAndMode(e,t,r,a)}))}return setDestTimestampsAndMode(e,t,r,a)}function fileIsNotWritable(e){return(e&128)===0}function makeFileWritable(e,t,r){return setDestMode(e,t|128,r)}function setDestTimestampsAndMode(e,t,r,a){setDestTimestamps(t,r,(t=>{if(t)return a(t);return setDestMode(r,e,a)}))}function setDestMode(e,t,r){return a.chmod(e,t,r)}function setDestTimestamps(e,t,r){a.stat(e,((e,a)=>{if(e)return r(e);return o(t,a.atime,a.mtime,r)}))}function onDir(e,t,r,a,i,n){if(!t)return mkDirAndCopy(e.mode,r,a,i,n);return copyDir(r,a,i,n)}function mkDirAndCopy(e,t,r,i,n){a.mkdir(r,(a=>{if(a)return n(a);copyDir(t,r,i,(t=>{if(t)return n(t);return setDestMode(r,e,n)}))}))}function copyDir(e,t,r,i){a.readdir(e,((a,n)=>{if(a)return i(a);return copyDirItems(n,e,t,r,i)}))}function copyDirItems(e,t,r,a,i){const n=e.pop();if(!n)return i();return copyDirItem(e,n,t,r,a,i)}function copyDirItem(e,t,r,a,n,s){const o=i.join(r,t);const c=i.join(a,t);p.checkPaths(o,c,"copy",n,((t,i)=>{if(t)return s(t);const{destStat:p}=i;startCopy(p,o,c,n,(t=>{if(t)return s(t);return copyDirItems(e,r,a,n,s)}))}))}function onLink(e,t,r,n,s){a.readlink(t,((t,o)=>{if(t)return s(t);if(n.dereference){o=i.resolve(process.cwd(),o)}if(!e){return a.symlink(o,r,s)}else{a.readlink(r,((t,c)=>{if(t){if(t.code==="EINVAL"||t.code==="UNKNOWN")return a.symlink(o,r,s);return s(t)}if(n.dereference){c=i.resolve(process.cwd(),c)}if(p.isSrcSubdir(o,c)){return s(new Error(`Cannot copy '${o}' to a subdirectory of itself, '${c}'.`))}if(e.isDirectory()&&p.isSrcSubdir(c,o)){return s(new Error(`Cannot overwrite '${c}' with '${o}'.`))}return copyLink(o,r,s)}))}}))}function copyLink(e,t,r){a.unlink(t,(i=>{if(i)return r(i);return a.symlink(e,t,r)}))}e.exports=copy},1335:(e,t,r)=>{"use strict";const a=r(9046).fromCallback;e.exports={copy:a(r(8834)),copySync:r(9618)}},6970:(e,t,r)=>{"use strict";const a=r(9046).fromPromise;const i=r(1176);const n=r(1017);const s=r(2915);const o=r(7357);const p=a((async function emptyDir(e){let t;try{t=await i.readdir(e)}catch{return s.mkdirs(e)}return Promise.all(t.map((t=>o.remove(n.join(e,t)))))}));function emptyDirSync(e){let t;try{t=i.readdirSync(e)}catch{return s.mkdirsSync(e)}t.forEach((t=>{t=n.join(e,t);o.removeSync(t)}))}e.exports={emptyDirSync:emptyDirSync,emptydirSync:emptyDirSync,emptyDir:p,emptydir:p}},2164:(e,t,r)=>{"use strict";const a=r(9046).fromCallback;const i=r(1017);const n=r(7758);const s=r(2915);function createFile(e,t){function makeFile(){n.writeFile(e,"",(e=>{if(e)return t(e);t()}))}n.stat(e,((r,a)=>{if(!r&&a.isFile())return t();const o=i.dirname(e);n.stat(o,((e,r)=>{if(e){if(e.code==="ENOENT"){return s.mkdirs(o,(e=>{if(e)return t(e);makeFile()}))}return t(e)}if(r.isDirectory())makeFile();else{n.readdir(o,(e=>{if(e)return t(e)}))}}))}))}function createFileSync(e){let t;try{t=n.statSync(e)}catch{}if(t&&t.isFile())return;const r=i.dirname(e);try{if(!n.statSync(r).isDirectory()){n.readdirSync(r)}}catch(e){if(e&&e.code==="ENOENT")s.mkdirsSync(r);else throw e}n.writeFileSync(e,"")}e.exports={createFile:a(createFile),createFileSync:createFileSync}},55:(e,t,r)=>{"use strict";const{createFile:a,createFileSync:i}=r(2164);const{createLink:n,createLinkSync:s}=r(3797);const{createSymlink:o,createSymlinkSync:p}=r(2549);e.exports={createFile:a,createFileSync:i,ensureFile:a,ensureFileSync:i,createLink:n,createLinkSync:s,ensureLink:n,ensureLinkSync:s,createSymlink:o,createSymlinkSync:p,ensureSymlink:o,ensureSymlinkSync:p}},3797:(e,t,r)=>{"use strict";const a=r(9046).fromCallback;const i=r(1017);const n=r(7758);const s=r(2915);const o=r(3835).pathExists;const{areIdentical:p}=r(3901);function createLink(e,t,r){function makeLink(e,t){n.link(e,t,(e=>{if(e)return r(e);r(null)}))}n.lstat(t,((a,c)=>{n.lstat(e,((a,n)=>{if(a){a.message=a.message.replace("lstat","ensureLink");return r(a)}if(c&&p(n,c))return r(null);const l=i.dirname(t);o(l,((a,i)=>{if(a)return r(a);if(i)return makeLink(e,t);s.mkdirs(l,(a=>{if(a)return r(a);makeLink(e,t)}))}))}))}))}function createLinkSync(e,t){let r;try{r=n.lstatSync(t)}catch{}try{const t=n.lstatSync(e);if(r&&p(t,r))return}catch(e){e.message=e.message.replace("lstat","ensureLink");throw e}const a=i.dirname(t);const o=n.existsSync(a);if(o)return n.linkSync(e,t);s.mkdirsSync(a);return n.linkSync(e,t)}e.exports={createLink:a(createLink),createLinkSync:createLinkSync}},3727:(e,t,r)=>{"use strict";const a=r(1017);const i=r(7758);const n=r(3835).pathExists;function symlinkPaths(e,t,r){if(a.isAbsolute(e)){return i.lstat(e,(t=>{if(t){t.message=t.message.replace("lstat","ensureSymlink");return r(t)}return r(null,{toCwd:e,toDst:e})}))}else{const s=a.dirname(t);const o=a.join(s,e);return n(o,((t,n)=>{if(t)return r(t);if(n){return r(null,{toCwd:o,toDst:e})}else{return i.lstat(e,(t=>{if(t){t.message=t.message.replace("lstat","ensureSymlink");return r(t)}return r(null,{toCwd:e,toDst:a.relative(s,e)})}))}}))}}function symlinkPathsSync(e,t){let r;if(a.isAbsolute(e)){r=i.existsSync(e);if(!r)throw new Error("absolute srcpath does not exist");return{toCwd:e,toDst:e}}else{const n=a.dirname(t);const s=a.join(n,e);r=i.existsSync(s);if(r){return{toCwd:s,toDst:e}}else{r=i.existsSync(e);if(!r)throw new Error("relative srcpath does not exist");return{toCwd:e,toDst:a.relative(n,e)}}}}e.exports={symlinkPaths:symlinkPaths,symlinkPathsSync:symlinkPathsSync}},8254:(e,t,r)=>{"use strict";const a=r(7758);function symlinkType(e,t,r){r=typeof t==="function"?t:r;t=typeof t==="function"?false:t;if(t)return r(null,t);a.lstat(e,((e,a)=>{if(e)return r(null,"file");t=a&&a.isDirectory()?"dir":"file";r(null,t)}))}function symlinkTypeSync(e,t){let r;if(t)return t;try{r=a.lstatSync(e)}catch{return"file"}return r&&r.isDirectory()?"dir":"file"}e.exports={symlinkType:symlinkType,symlinkTypeSync:symlinkTypeSync}},2549:(e,t,r)=>{"use strict";const a=r(9046).fromCallback;const i=r(1017);const n=r(1176);const s=r(2915);const o=s.mkdirs;const p=s.mkdirsSync;const c=r(3727);const l=c.symlinkPaths;const d=c.symlinkPathsSync;const u=r(8254);const m=u.symlinkType;const h=u.symlinkTypeSync;const g=r(3835).pathExists;const{areIdentical:v}=r(3901);function createSymlink(e,t,r,a){a=typeof r==="function"?r:a;r=typeof r==="function"?false:r;n.lstat(t,((i,s)=>{if(!i&&s.isSymbolicLink()){Promise.all([n.stat(e),n.stat(t)]).then((([i,n])=>{if(v(i,n))return a(null);_createSymlink(e,t,r,a)}))}else _createSymlink(e,t,r,a)}))}function _createSymlink(e,t,r,a){l(e,t,((s,p)=>{if(s)return a(s);e=p.toDst;m(p.toCwd,r,((r,s)=>{if(r)return a(r);const p=i.dirname(t);g(p,((r,i)=>{if(r)return a(r);if(i)return n.symlink(e,t,s,a);o(p,(r=>{if(r)return a(r);n.symlink(e,t,s,a)}))}))}))}))}function createSymlinkSync(e,t,r){let a;try{a=n.lstatSync(t)}catch{}if(a&&a.isSymbolicLink()){const r=n.statSync(e);const a=n.statSync(t);if(v(r,a))return}const s=d(e,t);e=s.toDst;r=h(s.toCwd,r);const o=i.dirname(t);const c=n.existsSync(o);if(c)return n.symlinkSync(e,t,r);p(o);return n.symlinkSync(e,t,r)}e.exports={createSymlink:a(createSymlink),createSymlinkSync:createSymlinkSync}},1176:(e,t,r)=>{"use strict";const a=r(9046).fromCallback;const i=r(7758);const n=["access","appendFile","chmod","chown","close","copyFile","fchmod","fchown","fdatasync","fstat","fsync","ftruncate","futimes","lchmod","lchown","link","lstat","mkdir","mkdtemp","open","opendir","readdir","readFile","readlink","realpath","rename","rm","rmdir","stat","symlink","truncate","unlink","utimes","writeFile"].filter((e=>typeof i[e]==="function"));Object.assign(t,i);n.forEach((e=>{t[e]=a(i[e])}));t.exists=function(e,t){if(typeof t==="function"){return i.exists(e,t)}return new Promise((t=>i.exists(e,t)))};t.read=function(e,t,r,a,n,s){if(typeof s==="function"){return i.read(e,t,r,a,n,s)}return new Promise(((s,o)=>{i.read(e,t,r,a,n,((e,t,r)=>{if(e)return o(e);s({bytesRead:t,buffer:r})}))}))};t.write=function(e,t,...r){if(typeof r[r.length-1]==="function"){return i.write(e,t,...r)}return new Promise(((a,n)=>{i.write(e,t,...r,((e,t,r)=>{if(e)return n(e);a({bytesWritten:t,buffer:r})}))}))};if(typeof i.writev==="function"){t.writev=function(e,t,...r){if(typeof r[r.length-1]==="function"){return i.writev(e,t,...r)}return new Promise(((a,n)=>{i.writev(e,t,...r,((e,t,r)=>{if(e)return n(e);a({bytesWritten:t,buffers:r})}))}))}}if(typeof i.realpath.native==="function"){t.realpath.native=a(i.realpath.native)}else{process.emitWarning("fs.realpath.native is not a function. Is fs being monkey-patched?","Warning","fs-extra-WARN0003")}},5630:(e,t,r)=>{"use strict";e.exports={...r(1176),...r(1335),...r(6970),...r(55),...r(213),...r(2915),...r(1497),...r(1832),...r(3835),...r(7357)}},213:(e,t,r)=>{"use strict";const a=r(9046).fromPromise;const i=r(8970);i.outputJson=a(r(531));i.outputJsonSync=r(9421);i.outputJSON=i.outputJson;i.outputJSONSync=i.outputJsonSync;i.writeJSON=i.writeJson;i.writeJSONSync=i.writeJsonSync;i.readJSON=i.readJson;i.readJSONSync=i.readJsonSync;e.exports=i},8970:(e,t,r)=>{"use strict";const a=r(6160);e.exports={readJson:a.readFile,readJsonSync:a.readFileSync,writeJson:a.writeFile,writeJsonSync:a.writeFileSync}},9421:(e,t,r)=>{"use strict";const{stringify:a}=r(5902);const{outputFileSync:i}=r(1832);function outputJsonSync(e,t,r){const n=a(t,r);i(e,n,r)}e.exports=outputJsonSync},531:(e,t,r)=>{"use strict";const{stringify:a}=r(5902);const{outputFile:i}=r(1832);async function outputJson(e,t,r={}){const n=a(t,r);await i(e,n,r)}e.exports=outputJson},2915:(e,t,r)=>{"use strict";const a=r(9046).fromPromise;const{makeDir:i,makeDirSync:n}=r(2751);const s=a(i);e.exports={mkdirs:s,mkdirsSync:n,mkdirp:s,mkdirpSync:n,ensureDir:s,ensureDirSync:n}},2751:(e,t,r)=>{"use strict";const a=r(1176);const{checkPath:i}=r(9907);const getMode=e=>{const t={mode:511};if(typeof e==="number")return e;return{...t,...e}.mode};e.exports.makeDir=async(e,t)=>{i(e);return a.mkdir(e,{mode:getMode(t),recursive:true})};e.exports.makeDirSync=(e,t)=>{i(e);return a.mkdirSync(e,{mode:getMode(t),recursive:true})}},9907:(e,t,r)=>{"use strict";const a=r(1017);e.exports.checkPath=function checkPath(e){if(process.platform==="win32"){const t=/[<>:"|?*]/.test(e.replace(a.parse(e).root,""));if(t){const t=new Error(`Path contains invalid characters: ${e}`);t.code="EINVAL";throw t}}}},1497:(e,t,r)=>{"use strict";const a=r(9046).fromCallback;e.exports={move:a(r(2231)),moveSync:r(2047)}},2047:(e,t,r)=>{"use strict";const a=r(7758);const i=r(1017);const n=r(1335).copySync;const s=r(7357).removeSync;const o=r(2915).mkdirpSync;const p=r(3901);function moveSync(e,t,r){r=r||{};const a=r.overwrite||r.clobber||false;const{srcStat:n,isChangingCase:s=false}=p.checkPathsSync(e,t,"move",r);p.checkParentPathsSync(e,n,t,"move");if(!isParentRoot(t))o(i.dirname(t));return doRename(e,t,a,s)}function isParentRoot(e){const t=i.dirname(e);const r=i.parse(t);return r.root===t}function doRename(e,t,r,i){if(i)return rename(e,t,r);if(r){s(t);return rename(e,t,r)}if(a.existsSync(t))throw new Error("dest already exists.");return rename(e,t,r)}function rename(e,t,r){try{a.renameSync(e,t)}catch(a){if(a.code!=="EXDEV")throw a;return moveAcrossDevice(e,t,r)}}function moveAcrossDevice(e,t,r){const a={overwrite:r,errorOnExist:true};n(e,t,a);return s(e)}e.exports=moveSync},2231:(e,t,r)=>{"use strict";const a=r(7758);const i=r(1017);const n=r(1335).copy;const s=r(7357).remove;const o=r(2915).mkdirp;const p=r(3835).pathExists;const c=r(3901);function move(e,t,r,a){if(typeof r==="function"){a=r;r={}}r=r||{};const n=r.overwrite||r.clobber||false;c.checkPaths(e,t,"move",r,((r,s)=>{if(r)return a(r);const{srcStat:p,isChangingCase:l=false}=s;c.checkParentPaths(e,p,t,"move",(r=>{if(r)return a(r);if(isParentRoot(t))return doRename(e,t,n,l,a);o(i.dirname(t),(r=>{if(r)return a(r);return doRename(e,t,n,l,a)}))}))}))}function isParentRoot(e){const t=i.dirname(e);const r=i.parse(t);return r.root===t}function doRename(e,t,r,a,i){if(a)return rename(e,t,r,i);if(r){return s(t,(a=>{if(a)return i(a);return rename(e,t,r,i)}))}p(t,((a,n)=>{if(a)return i(a);if(n)return i(new Error("dest already exists."));return rename(e,t,r,i)}))}function rename(e,t,r,i){a.rename(e,t,(a=>{if(!a)return i();if(a.code!=="EXDEV")return i(a);return moveAcrossDevice(e,t,r,i)}))}function moveAcrossDevice(e,t,r,a){const i={overwrite:r,errorOnExist:true};n(e,t,i,(t=>{if(t)return a(t);return s(e,a)}))}e.exports=move},1832:(e,t,r)=>{"use strict";const a=r(9046).fromCallback;const i=r(7758);const n=r(1017);const s=r(2915);const o=r(3835).pathExists;function outputFile(e,t,r,a){if(typeof r==="function"){a=r;r="utf8"}const p=n.dirname(e);o(p,((n,o)=>{if(n)return a(n);if(o)return i.writeFile(e,t,r,a);s.mkdirs(p,(n=>{if(n)return a(n);i.writeFile(e,t,r,a)}))}))}function outputFileSync(e,...t){const r=n.dirname(e);if(i.existsSync(r)){return i.writeFileSync(e,...t)}s.mkdirsSync(r);i.writeFileSync(e,...t)}e.exports={outputFile:a(outputFile),outputFileSync:outputFileSync}},3835:(e,t,r)=>{"use strict";const a=r(9046).fromPromise;const i=r(1176);function pathExists(e){return i.access(e).then((()=>true)).catch((()=>false))}e.exports={pathExists:a(pathExists),pathExistsSync:i.existsSync}},7357:(e,t,r)=>{"use strict";const a=r(7758);const i=r(9046).fromCallback;const n=r(8761);function remove(e,t){if(a.rm)return a.rm(e,{recursive:true,force:true},t);n(e,t)}function removeSync(e){if(a.rmSync)return a.rmSync(e,{recursive:true,force:true});n.sync(e)}e.exports={remove:i(remove),removeSync:removeSync}},8761:(e,t,r)=>{"use strict";const a=r(7758);const i=r(1017);const n=r(9491);const s=process.platform==="win32";function defaults(e){const t=["unlink","chmod","stat","lstat","rmdir","readdir"];t.forEach((t=>{e[t]=e[t]||a[t];t=t+"Sync";e[t]=e[t]||a[t]}));e.maxBusyTries=e.maxBusyTries||3}function rimraf(e,t,r){let a=0;if(typeof t==="function"){r=t;t={}}n(e,"rimraf: missing path");n.strictEqual(typeof e,"string","rimraf: path should be a string");n.strictEqual(typeof r,"function","rimraf: callback function required");n(t,"rimraf: invalid options argument provided");n.strictEqual(typeof t,"object","rimraf: options should be object");defaults(t);rimraf_(e,t,(function CB(i){if(i){if((i.code==="EBUSY"||i.code==="ENOTEMPTY"||i.code==="EPERM")&&arimraf_(e,t,CB)),r)}if(i.code==="ENOENT")i=null}r(i)}))}function rimraf_(e,t,r){n(e);n(t);n(typeof r==="function");t.lstat(e,((a,i)=>{if(a&&a.code==="ENOENT"){return r(null)}if(a&&a.code==="EPERM"&&s){return fixWinEPERM(e,t,a,r)}if(i&&i.isDirectory()){return rmdir(e,t,a,r)}t.unlink(e,(a=>{if(a){if(a.code==="ENOENT"){return r(null)}if(a.code==="EPERM"){return s?fixWinEPERM(e,t,a,r):rmdir(e,t,a,r)}if(a.code==="EISDIR"){return rmdir(e,t,a,r)}}return r(a)}))}))}function fixWinEPERM(e,t,r,a){n(e);n(t);n(typeof a==="function");t.chmod(e,438,(i=>{if(i){a(i.code==="ENOENT"?null:r)}else{t.stat(e,((i,n)=>{if(i){a(i.code==="ENOENT"?null:r)}else if(n.isDirectory()){rmdir(e,t,r,a)}else{t.unlink(e,a)}}))}}))}function fixWinEPERMSync(e,t,r){let a;n(e);n(t);try{t.chmodSync(e,438)}catch(e){if(e.code==="ENOENT"){return}else{throw r}}try{a=t.statSync(e)}catch(e){if(e.code==="ENOENT"){return}else{throw r}}if(a.isDirectory()){rmdirSync(e,t,r)}else{t.unlinkSync(e)}}function rmdir(e,t,r,a){n(e);n(t);n(typeof a==="function");t.rmdir(e,(i=>{if(i&&(i.code==="ENOTEMPTY"||i.code==="EEXIST"||i.code==="EPERM")){rmkids(e,t,a)}else if(i&&i.code==="ENOTDIR"){a(r)}else{a(i)}}))}function rmkids(e,t,r){n(e);n(t);n(typeof r==="function");t.readdir(e,((a,n)=>{if(a)return r(a);let s=n.length;let o;if(s===0)return t.rmdir(e,r);n.forEach((a=>{rimraf(i.join(e,a),t,(a=>{if(o){return}if(a)return r(o=a);if(--s===0){t.rmdir(e,r)}}))}))}))}function rimrafSync(e,t){let r;t=t||{};defaults(t);n(e,"rimraf: missing path");n.strictEqual(typeof e,"string","rimraf: path should be a string");n(t,"rimraf: missing options");n.strictEqual(typeof t,"object","rimraf: options should be object");try{r=t.lstatSync(e)}catch(r){if(r.code==="ENOENT"){return}if(r.code==="EPERM"&&s){fixWinEPERMSync(e,t,r)}}try{if(r&&r.isDirectory()){rmdirSync(e,t,null)}else{t.unlinkSync(e)}}catch(r){if(r.code==="ENOENT"){return}else if(r.code==="EPERM"){return s?fixWinEPERMSync(e,t,r):rmdirSync(e,t,r)}else if(r.code!=="EISDIR"){throw r}rmdirSync(e,t,r)}}function rmdirSync(e,t,r){n(e);n(t);try{t.rmdirSync(e)}catch(a){if(a.code==="ENOTDIR"){throw r}else if(a.code==="ENOTEMPTY"||a.code==="EEXIST"||a.code==="EPERM"){rmkidsSync(e,t)}else if(a.code!=="ENOENT"){throw a}}}function rmkidsSync(e,t){n(e);n(t);t.readdirSync(e).forEach((r=>rimrafSync(i.join(e,r),t)));if(s){const r=Date.now();do{try{const r=t.rmdirSync(e,t);return r}catch{}}while(Date.now()-r<500)}else{const r=t.rmdirSync(e,t);return r}}e.exports=rimraf;rimraf.sync=rimrafSync},3901:(e,t,r)=>{"use strict";const a=r(1176);const i=r(1017);const n=r(3837);function getStats(e,t,r){const i=r.dereference?e=>a.stat(e,{bigint:true}):e=>a.lstat(e,{bigint:true});return Promise.all([i(e),i(t).catch((e=>{if(e.code==="ENOENT")return null;throw e}))]).then((([e,t])=>({srcStat:e,destStat:t})))}function getStatsSync(e,t,r){let i;const n=r.dereference?e=>a.statSync(e,{bigint:true}):e=>a.lstatSync(e,{bigint:true});const s=n(e);try{i=n(t)}catch(e){if(e.code==="ENOENT")return{srcStat:s,destStat:null};throw e}return{srcStat:s,destStat:i}}function checkPaths(e,t,r,a,s){n.callbackify(getStats)(e,t,a,((a,n)=>{if(a)return s(a);const{srcStat:o,destStat:p}=n;if(p){if(areIdentical(o,p)){const a=i.basename(e);const n=i.basename(t);if(r==="move"&&a!==n&&a.toLowerCase()===n.toLowerCase()){return s(null,{srcStat:o,destStat:p,isChangingCase:true})}return s(new Error("Source and destination must not be the same."))}if(o.isDirectory()&&!p.isDirectory()){return s(new Error(`Cannot overwrite non-directory '${t}' with directory '${e}'.`))}if(!o.isDirectory()&&p.isDirectory()){return s(new Error(`Cannot overwrite directory '${t}' with non-directory '${e}'.`))}}if(o.isDirectory()&&isSrcSubdir(e,t)){return s(new Error(errMsg(e,t,r)))}return s(null,{srcStat:o,destStat:p})}))}function checkPathsSync(e,t,r,a){const{srcStat:n,destStat:s}=getStatsSync(e,t,a);if(s){if(areIdentical(n,s)){const a=i.basename(e);const o=i.basename(t);if(r==="move"&&a!==o&&a.toLowerCase()===o.toLowerCase()){return{srcStat:n,destStat:s,isChangingCase:true}}throw new Error("Source and destination must not be the same.")}if(n.isDirectory()&&!s.isDirectory()){throw new Error(`Cannot overwrite non-directory '${t}' with directory '${e}'.`)}if(!n.isDirectory()&&s.isDirectory()){throw new Error(`Cannot overwrite directory '${t}' with non-directory '${e}'.`)}}if(n.isDirectory()&&isSrcSubdir(e,t)){throw new Error(errMsg(e,t,r))}return{srcStat:n,destStat:s}}function checkParentPaths(e,t,r,n,s){const o=i.resolve(i.dirname(e));const p=i.resolve(i.dirname(r));if(p===o||p===i.parse(p).root)return s();a.stat(p,{bigint:true},((a,i)=>{if(a){if(a.code==="ENOENT")return s();return s(a)}if(areIdentical(t,i)){return s(new Error(errMsg(e,r,n)))}return checkParentPaths(e,t,p,n,s)}))}function checkParentPathsSync(e,t,r,n){const s=i.resolve(i.dirname(e));const o=i.resolve(i.dirname(r));if(o===s||o===i.parse(o).root)return;let p;try{p=a.statSync(o,{bigint:true})}catch(e){if(e.code==="ENOENT")return;throw e}if(areIdentical(t,p)){throw new Error(errMsg(e,r,n))}return checkParentPathsSync(e,t,o,n)}function areIdentical(e,t){return t.ino&&t.dev&&t.ino===e.ino&&t.dev===e.dev}function isSrcSubdir(e,t){const r=i.resolve(e).split(i.sep).filter((e=>e));const a=i.resolve(t).split(i.sep).filter((e=>e));return r.reduce(((e,t,r)=>e&&a[r]===t),true)}function errMsg(e,t,r){return`Cannot ${r} '${e}' to a subdirectory of itself, '${t}'.`}e.exports={checkPaths:checkPaths,checkPathsSync:checkPathsSync,checkParentPaths:checkParentPaths,checkParentPathsSync:checkParentPathsSync,isSrcSubdir:isSrcSubdir,areIdentical:areIdentical}},2548:(e,t,r)=>{"use strict";const a=r(7758);function utimesMillis(e,t,r,i){a.open(e,"r+",((e,n)=>{if(e)return i(e);a.futimes(n,t,r,(e=>{a.close(n,(t=>{if(i)i(e||t)}))}))}))}function utimesMillisSync(e,t,r){const i=a.openSync(e,"r+");a.futimesSync(i,t,r);return a.closeSync(i)}e.exports={utimesMillis:utimesMillis,utimesMillisSync:utimesMillisSync}},6863:(e,t,r)=>{e.exports=realpath;realpath.realpath=realpath;realpath.sync=realpathSync;realpath.realpathSync=realpathSync;realpath.monkeypatch=monkeypatch;realpath.unmonkeypatch=unmonkeypatch;var a=r(7147);var i=a.realpath;var n=a.realpathSync;var s=process.version;var o=/^v[0-5]\./.test(s);var p=r(1734);function newError(e){return e&&e.syscall==="realpath"&&(e.code==="ELOOP"||e.code==="ENOMEM"||e.code==="ENAMETOOLONG")}function realpath(e,t,r){if(o){return i(e,t,r)}if(typeof t==="function"){r=t;t=null}i(e,t,(function(a,i){if(newError(a)){p.realpath(e,t,r)}else{r(a,i)}}))}function realpathSync(e,t){if(o){return n(e,t)}try{return n(e,t)}catch(r){if(newError(r)){return p.realpathSync(e,t)}else{throw r}}}function monkeypatch(){a.realpath=realpath;a.realpathSync=realpathSync}function unmonkeypatch(){a.realpath=i;a.realpathSync=n}},1734:(e,t,r)=>{var a=r(1017);var i=process.platform==="win32";var n=r(7147);var s=process.env.NODE_DEBUG&&/fs/.test(process.env.NODE_DEBUG);function rethrow(){var e;if(s){var t=new Error;e=debugCallback}else e=missingCallback;return e;function debugCallback(e){if(e){t.message=e.message;e=t;missingCallback(e)}}function missingCallback(e){if(e){if(process.throwDeprecation)throw e;else if(!process.noDeprecation){var t="fs: missing callback "+(e.stack||e.message);if(process.traceDeprecation)console.trace(t);else console.error(t)}}}}function maybeCallback(e){return typeof e==="function"?e:rethrow()}var o=a.normalize;if(i){var p=/(.*?)(?:[\/\\]+|$)/g}else{var p=/(.*?)(?:[\/]+|$)/g}if(i){var c=/^(?:[a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/][^\\\/]+)?[\\\/]*/}else{var c=/^[\/]*/}t.realpathSync=function realpathSync(e,t){e=a.resolve(e);if(t&&Object.prototype.hasOwnProperty.call(t,e)){return t[e]}var r=e,s={},o={};var l;var d;var u;var m;start();function start(){var t=c.exec(e);l=t[0].length;d=t[0];u=t[0];m="";if(i&&!o[u]){n.lstatSync(u);o[u]=true}}while(l=e.length){if(t)t[s]=e;return r(null,e)}p.lastIndex=d;var a=p.exec(e);h=u;u+=a[0];m=h+a[1];d=p.lastIndex;if(l[m]||t&&t[m]===m){return process.nextTick(LOOP)}if(t&&Object.prototype.hasOwnProperty.call(t,m)){return gotResolvedLink(t[m])}return n.lstat(m,gotStat)}function gotStat(e,a){if(e)return r(e);if(!a.isSymbolicLink()){l[m]=true;if(t)t[m]=m;return process.nextTick(LOOP)}if(!i){var s=a.dev.toString(32)+":"+a.ino.toString(32);if(o.hasOwnProperty(s)){return gotTarget(null,o[s],m)}}n.stat(m,(function(e){if(e)return r(e);n.readlink(m,(function(e,t){if(!i)o[s]=t;gotTarget(e,t)}))}))}function gotTarget(e,i,n){if(e)return r(e);var s=a.resolve(h,i);if(t)t[n]=s;gotResolvedLink(s)}function gotResolvedLink(t){e=a.resolve(t,e.slice(d));start()}}},7625:(e,t,r)=>{t.setopts=setopts;t.ownProp=ownProp;t.makeAbs=makeAbs;t.finish=finish;t.mark=mark;t.isIgnored=isIgnored;t.childrenIgnored=childrenIgnored;function ownProp(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var a=r(7147);var i=r(1017);var n=r(3973);var s=r(8714);var o=n.Minimatch;function alphasort(e,t){return e.localeCompare(t,"en")}function setupIgnores(e,t){e.ignore=t.ignore||[];if(!Array.isArray(e.ignore))e.ignore=[e.ignore];if(e.ignore.length){e.ignore=e.ignore.map(ignoreMap)}}function ignoreMap(e){var t=null;if(e.slice(-3)==="/**"){var r=e.replace(/(\/\*\*)+$/,"");t=new o(r,{dot:true})}return{matcher:new o(e,{dot:true}),gmatcher:t}}function setopts(e,t,r){if(!r)r={};if(r.matchBase&&-1===t.indexOf("/")){if(r.noglobstar){throw new Error("base matching requires globstar")}t="**/"+t}e.silent=!!r.silent;e.pattern=t;e.strict=r.strict!==false;e.realpath=!!r.realpath;e.realpathCache=r.realpathCache||Object.create(null);e.follow=!!r.follow;e.dot=!!r.dot;e.mark=!!r.mark;e.nodir=!!r.nodir;if(e.nodir)e.mark=true;e.sync=!!r.sync;e.nounique=!!r.nounique;e.nonull=!!r.nonull;e.nosort=!!r.nosort;e.nocase=!!r.nocase;e.stat=!!r.stat;e.noprocess=!!r.noprocess;e.absolute=!!r.absolute;e.fs=r.fs||a;e.maxLength=r.maxLength||Infinity;e.cache=r.cache||Object.create(null);e.statCache=r.statCache||Object.create(null);e.symlinks=r.symlinks||Object.create(null);setupIgnores(e,r);e.changedCwd=false;var n=process.cwd();if(!ownProp(r,"cwd"))e.cwd=n;else{e.cwd=i.resolve(r.cwd);e.changedCwd=e.cwd!==n}e.root=r.root||i.resolve(e.cwd,"/");e.root=i.resolve(e.root);if(process.platform==="win32")e.root=e.root.replace(/\\/g,"/");e.cwdAbs=s(e.cwd)?e.cwd:makeAbs(e,e.cwd);if(process.platform==="win32")e.cwdAbs=e.cwdAbs.replace(/\\/g,"/");e.nomount=!!r.nomount;r.nonegate=true;r.nocomment=true;r.allowWindowsEscape=false;e.minimatch=new o(t,r);e.options=e.minimatch.options}function finish(e){var t=e.nounique;var r=t?[]:Object.create(null);for(var a=0,i=e.matches.length;a{e.exports=glob;var a=r(6863);var i=r(3973);var n=i.Minimatch;var s=r(7278);var o=r(2361).EventEmitter;var p=r(1017);var c=r(9491);var l=r(8714);var d=r(9010);var u=r(7625);var m=u.setopts;var h=u.ownProp;var g=r(2492);var v=r(3837);var y=u.childrenIgnored;var b=u.isIgnored;var w=r(1223);function glob(e,t,r){if(typeof t==="function")r=t,t={};if(!t)t={};if(t.sync){if(r)throw new TypeError("callback provided to sync glob");return d(e,t)}return new Glob(e,t,r)}glob.sync=d;var x=glob.GlobSync=d.GlobSync;glob.glob=glob;function extend(e,t){if(t===null||typeof t!=="object"){return e}var r=Object.keys(t);var a=r.length;while(a--){e[r[a]]=t[r[a]]}return e}glob.hasMagic=function(e,t){var r=extend({},t);r.noprocess=true;var a=new Glob(e,r);var i=a.minimatch.set;if(!e)return false;if(i.length>1)return true;for(var n=0;nthis.maxLength)return t();if(!this.stat&&h(this.cache,r)){var i=this.cache[r];if(Array.isArray(i))i="DIR";if(!a||i==="DIR")return t(null,i);if(a&&i==="FILE")return t()}var n;var s=this.statCache[r];if(s!==undefined){if(s===false)return t(null,s);else{var o=s.isDirectory()?"DIR":"FILE";if(a&&o==="FILE")return t();else return t(null,o,s)}}var p=this;var c=g("stat\0"+r,lstatcb_);if(c)p.fs.lstat(r,c);function lstatcb_(a,i){if(i&&i.isSymbolicLink()){return p.fs.stat(r,(function(a,n){if(a)p._stat2(e,r,null,i,t);else p._stat2(e,r,a,n,t)}))}else{p._stat2(e,r,a,i,t)}}};Glob.prototype._stat2=function(e,t,r,a,i){if(r&&(r.code==="ENOENT"||r.code==="ENOTDIR")){this.statCache[t]=false;return i()}var n=e.slice(-1)==="/";this.statCache[t]=a;if(t.slice(-1)==="/"&&a&&!a.isDirectory())return i(null,false,a);var s=true;if(a)s=a.isDirectory()?"DIR":"FILE";this.cache[t]=this.cache[t]||s;if(n&&s==="FILE")return i();return i(null,s,a)}},9010:(e,t,r)=>{e.exports=globSync;globSync.GlobSync=GlobSync;var a=r(6863);var i=r(3973);var n=i.Minimatch;var s=r(1957).Glob;var o=r(3837);var p=r(1017);var c=r(9491);var l=r(8714);var d=r(7625);var u=d.setopts;var m=d.ownProp;var h=d.childrenIgnored;var g=d.isIgnored;function globSync(e,t){if(typeof t==="function"||arguments.length===3)throw new TypeError("callback provided to sync glob\n"+"See: https://github.com/isaacs/node-glob/issues/167");return new GlobSync(e,t).found}function GlobSync(e,t){if(!e)throw new Error("must provide pattern");if(typeof t==="function"||arguments.length===3)throw new TypeError("callback provided to sync glob\n"+"See: https://github.com/isaacs/node-glob/issues/167");if(!(this instanceof GlobSync))return new GlobSync(e,t);u(this,e,t);if(this.noprocess)return this;var r=this.minimatch.set.length;this.matches=new Array(r);for(var a=0;athis.maxLength)return false;if(!this.stat&&m(this.cache,t)){var a=this.cache[t];if(Array.isArray(a))a="DIR";if(!r||a==="DIR")return a;if(r&&a==="FILE")return false}var i;var n=this.statCache[t];if(!n){var s;try{s=this.fs.lstatSync(t)}catch(e){if(e&&(e.code==="ENOENT"||e.code==="ENOTDIR")){this.statCache[t]=false;return false}}if(s&&s.isSymbolicLink()){try{n=this.fs.statSync(t)}catch(e){n=s}}else{n=s}}this.statCache[t]=n;var a=true;if(n)a=n.isDirectory()?"DIR":"FILE";this.cache[t]=this.cache[t]||a;if(r&&a==="FILE")return false;return a};GlobSync.prototype._mark=function(e){return d.mark(this,e)};GlobSync.prototype._makeAbs=function(e){return d.makeAbs(this,e)}},7356:e=>{"use strict";e.exports=clone;var t=Object.getPrototypeOf||function(e){return e.__proto__};function clone(e){if(e===null||typeof e!=="object")return e;if(e instanceof Object)var r={__proto__:t(e)};else var r=Object.create(null);Object.getOwnPropertyNames(e).forEach((function(t){Object.defineProperty(r,t,Object.getOwnPropertyDescriptor(e,t))}));return r}},7758:(e,t,r)=>{var a=r(7147);var i=r(263);var n=r(3086);var s=r(7356);var o=r(3837);var p;var c;if(typeof Symbol==="function"&&typeof Symbol.for==="function"){p=Symbol.for("graceful-fs.queue");c=Symbol.for("graceful-fs.previous")}else{p="___graceful-fs.queue";c="___graceful-fs.previous"}function noop(){}function publishQueue(e,t){Object.defineProperty(e,p,{get:function(){return t}})}var l=noop;if(o.debuglog)l=o.debuglog("gfs4");else if(/\bgfs4\b/i.test(process.env.NODE_DEBUG||""))l=function(){var e=o.format.apply(o,arguments);e="GFS4: "+e.split(/\n/).join("\nGFS4: ");console.error(e)};if(!a[p]){var d=global[p]||[];publishQueue(a,d);a.close=function(e){function close(t,r){return e.call(a,t,(function(e){if(!e){resetQueue()}if(typeof r==="function")r.apply(this,arguments)}))}Object.defineProperty(close,c,{value:e});return close}(a.close);a.closeSync=function(e){function closeSync(t){e.apply(a,arguments);resetQueue()}Object.defineProperty(closeSync,c,{value:e});return closeSync}(a.closeSync);if(/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")){process.on("exit",(function(){l(a[p]);r(9491).equal(a[p].length,0)}))}}if(!global[p]){publishQueue(global,a[p])}e.exports=patch(s(a));if(process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH&&!a.__patched){e.exports=patch(a);a.__patched=true}function patch(e){i(e);e.gracefulify=patch;e.createReadStream=createReadStream;e.createWriteStream=createWriteStream;var t=e.readFile;e.readFile=readFile;function readFile(e,r,a){if(typeof r==="function")a=r,r=null;return go$readFile(e,r,a);function go$readFile(e,r,a,i){return t(e,r,(function(t){if(t&&(t.code==="EMFILE"||t.code==="ENFILE"))enqueue([go$readFile,[e,r,a],t,i||Date.now(),Date.now()]);else{if(typeof a==="function")a.apply(this,arguments)}}))}}var r=e.writeFile;e.writeFile=writeFile;function writeFile(e,t,a,i){if(typeof a==="function")i=a,a=null;return go$writeFile(e,t,a,i);function go$writeFile(e,t,a,i,n){return r(e,t,a,(function(r){if(r&&(r.code==="EMFILE"||r.code==="ENFILE"))enqueue([go$writeFile,[e,t,a,i],r,n||Date.now(),Date.now()]);else{if(typeof i==="function")i.apply(this,arguments)}}))}}var a=e.appendFile;if(a)e.appendFile=appendFile;function appendFile(e,t,r,i){if(typeof r==="function")i=r,r=null;return go$appendFile(e,t,r,i);function go$appendFile(e,t,r,i,n){return a(e,t,r,(function(a){if(a&&(a.code==="EMFILE"||a.code==="ENFILE"))enqueue([go$appendFile,[e,t,r,i],a,n||Date.now(),Date.now()]);else{if(typeof i==="function")i.apply(this,arguments)}}))}}var s=e.copyFile;if(s)e.copyFile=copyFile;function copyFile(e,t,r,a){if(typeof r==="function"){a=r;r=0}return go$copyFile(e,t,r,a);function go$copyFile(e,t,r,a,i){return s(e,t,r,(function(n){if(n&&(n.code==="EMFILE"||n.code==="ENFILE"))enqueue([go$copyFile,[e,t,r,a],n,i||Date.now(),Date.now()]);else{if(typeof a==="function")a.apply(this,arguments)}}))}}var o=e.readdir;e.readdir=readdir;var p=/^v[0-5]\./;function readdir(e,t,r){if(typeof t==="function")r=t,t=null;var a=p.test(process.version)?function go$readdir(e,t,r,a){return o(e,fs$readdirCallback(e,t,r,a))}:function go$readdir(e,t,r,a){return o(e,t,fs$readdirCallback(e,t,r,a))};return a(e,t,r);function fs$readdirCallback(e,t,r,i){return function(n,s){if(n&&(n.code==="EMFILE"||n.code==="ENFILE"))enqueue([a,[e,t,r],n,i||Date.now(),Date.now()]);else{if(s&&s.sort)s.sort();if(typeof r==="function")r.call(this,n,s)}}}}if(process.version.substr(0,4)==="v0.8"){var c=n(e);ReadStream=c.ReadStream;WriteStream=c.WriteStream}var l=e.ReadStream;if(l){ReadStream.prototype=Object.create(l.prototype);ReadStream.prototype.open=ReadStream$open}var d=e.WriteStream;if(d){WriteStream.prototype=Object.create(d.prototype);WriteStream.prototype.open=WriteStream$open}Object.defineProperty(e,"ReadStream",{get:function(){return ReadStream},set:function(e){ReadStream=e},enumerable:true,configurable:true});Object.defineProperty(e,"WriteStream",{get:function(){return WriteStream},set:function(e){WriteStream=e},enumerable:true,configurable:true});var u=ReadStream;Object.defineProperty(e,"FileReadStream",{get:function(){return u},set:function(e){u=e},enumerable:true,configurable:true});var m=WriteStream;Object.defineProperty(e,"FileWriteStream",{get:function(){return m},set:function(e){m=e},enumerable:true,configurable:true});function ReadStream(e,t){if(this instanceof ReadStream)return l.apply(this,arguments),this;else return ReadStream.apply(Object.create(ReadStream.prototype),arguments)}function ReadStream$open(){var e=this;open(e.path,e.flags,e.mode,(function(t,r){if(t){if(e.autoClose)e.destroy();e.emit("error",t)}else{e.fd=r;e.emit("open",r);e.read()}}))}function WriteStream(e,t){if(this instanceof WriteStream)return d.apply(this,arguments),this;else return WriteStream.apply(Object.create(WriteStream.prototype),arguments)}function WriteStream$open(){var e=this;open(e.path,e.flags,e.mode,(function(t,r){if(t){e.destroy();e.emit("error",t)}else{e.fd=r;e.emit("open",r)}}))}function createReadStream(t,r){return new e.ReadStream(t,r)}function createWriteStream(t,r){return new e.WriteStream(t,r)}var h=e.open;e.open=open;function open(e,t,r,a){if(typeof r==="function")a=r,r=null;return go$open(e,t,r,a);function go$open(e,t,r,a,i){return h(e,t,r,(function(n,s){if(n&&(n.code==="EMFILE"||n.code==="ENFILE"))enqueue([go$open,[e,t,r,a],n,i||Date.now(),Date.now()]);else{if(typeof a==="function")a.apply(this,arguments)}}))}}return e}function enqueue(e){l("ENQUEUE",e[0].name,e[1]);a[p].push(e);retry()}var u;function resetQueue(){var e=Date.now();for(var t=0;t2){a[p][t][3]=e;a[p][t][4]=e}}retry()}function retry(){clearTimeout(u);u=undefined;if(a[p].length===0)return;var e=a[p].shift();var t=e[0];var r=e[1];var i=e[2];var n=e[3];var s=e[4];if(n===undefined){l("RETRY",t.name,r);t.apply(null,r)}else if(Date.now()-n>=6e4){l("TIMEOUT",t.name,r);var o=r.pop();if(typeof o==="function")o.call(null,i)}else{var c=Date.now()-s;var d=Math.max(s-n,1);var m=Math.min(d*1.2,100);if(c>=m){l("RETRY",t.name,r);t.apply(null,r.concat([n]))}else{a[p].push(e)}}if(u===undefined){u=setTimeout(retry,0)}}},3086:(e,t,r)=>{var a=r(2781).Stream;e.exports=legacy;function legacy(e){return{ReadStream:ReadStream,WriteStream:WriteStream};function ReadStream(t,r){if(!(this instanceof ReadStream))return new ReadStream(t,r);a.call(this);var i=this;this.path=t;this.fd=null;this.readable=true;this.paused=false;this.flags="r";this.mode=438;this.bufferSize=64*1024;r=r||{};var n=Object.keys(r);for(var s=0,o=n.length;sthis.end){throw new Error("start must be <= end")}this.pos=this.start}if(this.fd!==null){process.nextTick((function(){i._read()}));return}e.open(this.path,this.flags,this.mode,(function(e,t){if(e){i.emit("error",e);i.readable=false;return}i.fd=t;i.emit("open",t);i._read()}))}function WriteStream(t,r){if(!(this instanceof WriteStream))return new WriteStream(t,r);a.call(this);this.path=t;this.fd=null;this.writable=true;this.flags="w";this.encoding="binary";this.mode=438;this.bytesWritten=0;r=r||{};var i=Object.keys(r);for(var n=0,s=i.length;n= zero")}this.pos=this.start}this.busy=false;this._queue=[];if(this.fd===null){this._open=e.open;this._queue.push([this._open,this.path,this.flags,this.mode,undefined]);this.flush()}}}},263:(e,t,r)=>{var a=r(2057);var i=process.cwd;var n=null;var s=process.env.GRACEFUL_FS_PLATFORM||process.platform;process.cwd=function(){if(!n)n=i.call(process);return n};try{process.cwd()}catch(e){}if(typeof process.chdir==="function"){var o=process.chdir;process.chdir=function(e){n=null;o.call(process,e)};if(Object.setPrototypeOf)Object.setPrototypeOf(process.chdir,o)}e.exports=patch;function patch(e){if(a.hasOwnProperty("O_SYMLINK")&&process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)){patchLchmod(e)}if(!e.lutimes){patchLutimes(e)}e.chown=chownFix(e.chown);e.fchown=chownFix(e.fchown);e.lchown=chownFix(e.lchown);e.chmod=chmodFix(e.chmod);e.fchmod=chmodFix(e.fchmod);e.lchmod=chmodFix(e.lchmod);e.chownSync=chownFixSync(e.chownSync);e.fchownSync=chownFixSync(e.fchownSync);e.lchownSync=chownFixSync(e.lchownSync);e.chmodSync=chmodFixSync(e.chmodSync);e.fchmodSync=chmodFixSync(e.fchmodSync);e.lchmodSync=chmodFixSync(e.lchmodSync);e.stat=statFix(e.stat);e.fstat=statFix(e.fstat);e.lstat=statFix(e.lstat);e.statSync=statFixSync(e.statSync);e.fstatSync=statFixSync(e.fstatSync);e.lstatSync=statFixSync(e.lstatSync);if(e.chmod&&!e.lchmod){e.lchmod=function(e,t,r){if(r)process.nextTick(r)};e.lchmodSync=function(){}}if(e.chown&&!e.lchown){e.lchown=function(e,t,r,a){if(a)process.nextTick(a)};e.lchownSync=function(){}}if(s==="win32"){e.rename=typeof e.rename!=="function"?e.rename:function(t){function rename(r,a,i){var n=Date.now();var s=0;t(r,a,(function CB(o){if(o&&(o.code==="EACCES"||o.code==="EPERM")&&Date.now()-n<6e4){setTimeout((function(){e.stat(a,(function(e,n){if(e&&e.code==="ENOENT")t(r,a,CB);else i(o)}))}),s);if(s<100)s+=10;return}if(i)i(o)}))}if(Object.setPrototypeOf)Object.setPrototypeOf(rename,t);return rename}(e.rename)}e.read=typeof e.read!=="function"?e.read:function(t){function read(r,a,i,n,s,o){var p;if(o&&typeof o==="function"){var c=0;p=function(l,d,u){if(l&&l.code==="EAGAIN"&&c<10){c++;return t.call(e,r,a,i,n,s,p)}o.apply(this,arguments)}}return t.call(e,r,a,i,n,s,p)}if(Object.setPrototypeOf)Object.setPrototypeOf(read,t);return read}(e.read);e.readSync=typeof e.readSync!=="function"?e.readSync:function(t){return function(r,a,i,n,s){var o=0;while(true){try{return t.call(e,r,a,i,n,s)}catch(e){if(e.code==="EAGAIN"&&o<10){o++;continue}throw e}}}}(e.readSync);function patchLchmod(e){e.lchmod=function(t,r,i){e.open(t,a.O_WRONLY|a.O_SYMLINK,r,(function(t,a){if(t){if(i)i(t);return}e.fchmod(a,r,(function(t){e.close(a,(function(e){if(i)i(t||e)}))}))}))};e.lchmodSync=function(t,r){var i=e.openSync(t,a.O_WRONLY|a.O_SYMLINK,r);var n=true;var s;try{s=e.fchmodSync(i,r);n=false}finally{if(n){try{e.closeSync(i)}catch(e){}}else{e.closeSync(i)}}return s}}function patchLutimes(e){if(a.hasOwnProperty("O_SYMLINK")&&e.futimes){e.lutimes=function(t,r,i,n){e.open(t,a.O_SYMLINK,(function(t,a){if(t){if(n)n(t);return}e.futimes(a,r,i,(function(t){e.close(a,(function(e){if(n)n(t||e)}))}))}))};e.lutimesSync=function(t,r,i){var n=e.openSync(t,a.O_SYMLINK);var s;var o=true;try{s=e.futimesSync(n,r,i);o=false}finally{if(o){try{e.closeSync(n)}catch(e){}}else{e.closeSync(n)}}return s}}else if(e.futimes){e.lutimes=function(e,t,r,a){if(a)process.nextTick(a)};e.lutimesSync=function(){}}}function chmodFix(t){if(!t)return t;return function(r,a,i){return t.call(e,r,a,(function(e){if(chownErOk(e))e=null;if(i)i.apply(this,arguments)}))}}function chmodFixSync(t){if(!t)return t;return function(r,a){try{return t.call(e,r,a)}catch(e){if(!chownErOk(e))throw e}}}function chownFix(t){if(!t)return t;return function(r,a,i,n){return t.call(e,r,a,i,(function(e){if(chownErOk(e))e=null;if(n)n.apply(this,arguments)}))}}function chownFixSync(t){if(!t)return t;return function(r,a,i){try{return t.call(e,r,a,i)}catch(e){if(!chownErOk(e))throw e}}}function statFix(t){if(!t)return t;return function(r,a,i){if(typeof a==="function"){i=a;a=null}function callback(e,t){if(t){if(t.uid<0)t.uid+=4294967296;if(t.gid<0)t.gid+=4294967296}if(i)i.apply(this,arguments)}return a?t.call(e,r,a,callback):t.call(e,r,callback)}}function statFixSync(t){if(!t)return t;return function(r,a){var i=a?t.call(e,r,a):t.call(e,r);if(i){if(i.uid<0)i.uid+=4294967296;if(i.gid<0)i.gid+=4294967296}return i}}function chownErOk(e){if(!e)return true;if(e.code==="ENOSYS")return true;var t=!process.getuid||process.getuid()!==0;if(t){if(e.code==="EINVAL"||e.code==="EPERM")return true}return false}}},1621:e=>{"use strict";e.exports=(e,t=process.argv)=>{const r=e.startsWith("-")?"":e.length===1?"-":"--";const a=t.indexOf(r+e);const i=t.indexOf("--");return a!==-1&&(i===-1||a0){d("Patching connection write() output buffer with updated header");t=e.output[0];r=t.indexOf("\r\n\r\n")+4;e.output[0]=e._header+t.substring(r);d("Output buffer: %o",e.output)}else if(e.outputData&&e.outputData.length>0){d("Patching connection write() output buffer with updated header");t=e.outputData[0].data;r=t.indexOf("\r\n\r\n")+4;e.outputData[0].data=e._header+t.substring(r);d("Output buffer: %o",e.outputData[0].data)}}yield(0,c.default)(p,"connect");return p}))}}t["default"]=HttpProxyAgent},3764:function(e,t,r){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};const i=a(r(7492));function createHttpProxyAgent(e){return new i.default(e)}(function(e){e.HttpProxyAgent=i.default;e.prototype=i.default.prototype})(createHttpProxyAgent||(createHttpProxyAgent={}));e.exports=createHttpProxyAgent},2492:(e,t,r)=>{var a=r(2940);var i=Object.create(null);var n=r(1223);e.exports=a(inflight);function inflight(e,t){if(i[e]){i[e].push(t);return null}else{i[e]=[t];return makeres(e)}}function makeres(e){return n((function RES(){var t=i[e];var r=t.length;var a=slice(arguments);try{for(var n=0;nr){t.splice(0,r);process.nextTick((function(){RES.apply(null,a)}))}else{delete i[e]}}}))}function slice(e){var t=e.length;var r=[];for(var a=0;a{try{var a=r(3837);if(typeof a.inherits!=="function")throw"";e.exports=a.inherits}catch(t){e.exports=r(8544)}},8544:e=>{if(typeof Object.create==="function"){e.exports=function inherits(e,t){if(t){e.super_=t;e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}})}}}else{e.exports=function inherits(e,t){if(t){e.super_=t;var TempCtor=function(){};TempCtor.prototype=t.prototype;e.prototype=new TempCtor;e.prototype.constructor=e}}}},3287:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true}); + deps: ${r}}`};const s={keyword:"dependencies",type:"object",schemaType:"object",error:t.error,code(e){const[t,r]=splitDependencies(e);validatePropertyDeps(e,t);validateSchemaDeps(e,r)}};function splitDependencies({schema:e}){const t={};const r={};for(const a in e){if(a==="__proto__")continue;const n=Array.isArray(e[a])?t:r;n[a]=e[a]}return[t,r]}function validatePropertyDeps(e,t=e.schema){const{gen:r,data:n,it:s}=e;if(Object.keys(t).length===0)return;const o=r.let("missing");for(const p in t){const c=t[p];if(c.length===0)continue;const l=(0,i.propertyInData)(r,n,p,s.opts.ownProperties);e.setParams({property:p,depsCount:c.length,deps:c.join(", ")});if(s.allErrors){r.if(l,(()=>{for(const t of c){(0,i.checkReportMissingProp)(e,t)}}))}else{r.if((0,a._)`${l} && (${(0,i.checkMissingProp)(e,c,o)})`);(0,i.reportMissingProp)(e,o);r.else()}}}t.validatePropertyDeps=validatePropertyDeps;function validateSchemaDeps(e,t=e.schema){const{gen:r,data:a,keyword:s,it:o}=e;const p=r.name("valid");for(const c in t){if((0,n.alwaysValidSchema)(o,t[c]))continue;r.if((0,i.propertyInData)(r,a,c,o.opts.ownProperties),(()=>{const t=e.subschema({keyword:s,schemaProp:c},p);e.mergeValidEvaluated(t,p)}),(()=>r.var(p,true)));e.ok(p)}}t.validateSchemaDeps=validateSchemaDeps;t["default"]=s},621:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(6035);const n=r(407);const i={message:({params:e})=>(0,a.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,a._)`{failingKeyword: ${e.ifClause}}`};const s={keyword:"if",schemaType:["object","boolean"],trackErrors:true,error:i,code(e){const{gen:t,parentSchema:r,it:i}=e;if(r.then===undefined&&r.else===undefined){(0,n.checkStrictMode)(i,'"if" without "then" and "else" is ignored')}const s=hasSchema(i,"then");const o=hasSchema(i,"else");if(!s&&!o)return;const p=t.let("valid",true);const c=t.name("_valid");validateIf();e.reset();if(s&&o){const r=t.let("ifClause");e.setParams({ifClause:r});t.if(c,validateClause("then",r),validateClause("else",r))}else if(s){t.if(c,validateClause("then"))}else{t.if((0,a.not)(c),validateClause("else"))}e.pass(p,(()=>e.error(true)));function validateIf(){const t=e.subschema({keyword:"if",compositeRule:true,createErrors:false,allErrors:false},c);e.mergeEvaluated(t)}function validateClause(r,n){return()=>{const i=e.subschema({keyword:r},c);t.assign(p,c);e.mergeValidEvaluated(i,p);if(n)t.assign(n,(0,a._)`${r}`);else e.setParams({ifClause:r})}}}};function hasSchema(e,t){const r=e.schema[t];return r!==undefined&&!(0,n.alwaysValidSchema)(e,r)}t["default"]=s},7427:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(7184);const n=r(496);const i=r(6309);const s=r(2351);const o=r(8711);const p=r(6482);const c=r(667);const l=r(3347);const d=r(1318);const u=r(4124);const m=r(1201);const h=r(7155);const g=r(7749);const v=r(8870);const y=r(621);const b=r(1983);function getApplicator(e=false){const t=[m.default,h.default,g.default,v.default,y.default,b.default,c.default,l.default,p.default,d.default,u.default];if(e)t.push(n.default,s.default);else t.push(a.default,i.default);t.push(o.default);return t}t["default"]=getApplicator},6309:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.validateTuple=void 0;const a=r(6035);const n=r(407);const i=r(982);const s={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(e){const{schema:t,it:r}=e;if(Array.isArray(t))return validateTuple(e,"additionalItems",t);r.items=true;if((0,n.alwaysValidSchema)(r,t))return;e.ok((0,i.validateArray)(e))}};function validateTuple(e,t,r=e.schema){const{gen:i,parentSchema:s,data:o,keyword:p,it:c}=e;checkStrictTuple(s);if(c.opts.unevaluated&&r.length&&c.items!==true){c.items=n.mergeEvaluated.items(i,r.length,c.items)}const l=i.name("valid");const d=i.const("len",(0,a._)`${o}.length`);r.forEach(((t,r)=>{if((0,n.alwaysValidSchema)(c,t))return;i.if((0,a._)`${d} > ${r}`,(()=>e.subschema({keyword:p,schemaProp:r,dataProp:r},l)));e.ok(l)}));function checkStrictTuple(e){const{opts:a,errSchemaPath:i}=c;const s=r.length;const o=s===e.minItems&&(s===e.maxItems||e[t]===false);if(a.strictTuples&&!o){const e=`"${p}" is ${s}-tuple, but minItems or maxItems/${t} are not specified or different at path "${i}"`;(0,n.checkStrictMode)(c,e,a.strictTuples)}}}t.validateTuple=validateTuple;t["default"]=s},2351:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(6035);const n=r(407);const i=r(982);const s=r(7184);const o={message:({params:{len:e}})=>(0,a.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,a._)`{limit: ${e}}`};const p={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:o,code(e){const{schema:t,parentSchema:r,it:a}=e;const{prefixItems:o}=r;a.items=true;if((0,n.alwaysValidSchema)(a,t))return;if(o)(0,s.validateAdditionalItems)(e,o);else e.ok((0,i.validateArray)(e))}};t["default"]=p},1201:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(407);const n={keyword:"not",schemaType:["object","boolean"],trackErrors:true,code(e){const{gen:t,schema:r,it:n}=e;if((0,a.alwaysValidSchema)(n,r)){e.fail();return}const i=t.name("valid");e.subschema({keyword:"not",compositeRule:true,createErrors:false,allErrors:false},i);e.failResult(i,(()=>e.reset()),(()=>e.error()))},error:{message:"must NOT be valid"}};t["default"]=n},7749:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(6035);const n=r(407);const i={message:"must match exactly one schema in oneOf",params:({params:e})=>(0,a._)`{passingSchemas: ${e.passing}}`};const s={keyword:"oneOf",schemaType:"array",trackErrors:true,error:i,code(e){const{gen:t,schema:r,parentSchema:i,it:s}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");if(s.opts.discriminator&&i.discriminator)return;const o=r;const p=t.let("valid",false);const c=t.let("passing",null);const l=t.name("_valid");e.setParams({passing:c});t.block(validateOneOf);e.result(p,(()=>e.reset()),(()=>e.error(true)));function validateOneOf(){o.forEach(((r,i)=>{let o;if((0,n.alwaysValidSchema)(s,r)){t.var(l,true)}else{o=e.subschema({keyword:"oneOf",schemaProp:i,compositeRule:true},l)}if(i>0){t.if((0,a._)`${l} && ${p}`).assign(p,false).assign(c,(0,a._)`[${c}, ${i}]`).else()}t.if(l,(()=>{t.assign(p,true);t.assign(c,i);if(o)e.mergeEvaluated(o,a.Name)}))}))}}};t["default"]=s},4124:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(982);const n=r(6035);const i=r(407);const s=r(407);const o={keyword:"patternProperties",type:"object",schemaType:"object",code(e){const{gen:t,schema:r,data:o,parentSchema:p,it:c}=e;const{opts:l}=c;const d=(0,a.allSchemaProperties)(r);const u=d.filter((e=>(0,i.alwaysValidSchema)(c,r[e])));if(d.length===0||u.length===d.length&&(!c.opts.unevaluated||c.props===true)){return}const m=l.strictSchema&&!l.allowMatchingProperties&&p.properties;const h=t.name("valid");if(c.props!==true&&!(c.props instanceof n.Name)){c.props=(0,s.evaluatedPropsToName)(t,c.props)}const{props:g}=c;validatePatternProperties();function validatePatternProperties(){for(const e of d){if(m)checkMatchingProperties(e);if(c.allErrors){validateProperties(e)}else{t.var(h,true);validateProperties(e);t.if(h)}}}function checkMatchingProperties(e){for(const t in m){if(new RegExp(e).test(t)){(0,i.checkStrictMode)(c,`property ${t} matches pattern ${e} (use allowMatchingProperties)`)}}}function validateProperties(r){t.forIn("key",o,(i=>{t.if((0,n._)`${(0,a.usePattern)(e,r)}.test(${i})`,(()=>{const a=u.includes(r);if(!a){e.subschema({keyword:"patternProperties",schemaProp:r,dataProp:i,dataPropType:s.Type.Str},h)}if(c.opts.unevaluated&&g!==true){t.assign((0,n._)`${g}[${i}]`,true)}else if(!a&&!c.allErrors){t.if((0,n.not)(h),(()=>t.break()))}}))}))}}};t["default"]=o},496:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(6309);const n={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:e=>(0,a.validateTuple)(e,"items")};t["default"]=n},1318:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(4988);const n=r(982);const i=r(407);const s=r(3347);const o={keyword:"properties",type:"object",schemaType:"object",code(e){const{gen:t,schema:r,parentSchema:o,data:p,it:c}=e;if(c.opts.removeAdditional==="all"&&o.additionalProperties===undefined){s.default.code(new a.KeywordCxt(c,s.default,"additionalProperties"))}const l=(0,n.allSchemaProperties)(r);for(const e of l){c.definedProperties.add(e)}if(c.opts.unevaluated&&l.length&&c.props!==true){c.props=i.mergeEvaluated.props(t,(0,i.toHash)(l),c.props)}const d=l.filter((e=>!(0,i.alwaysValidSchema)(c,r[e])));if(d.length===0)return;const u=t.name("valid");for(const r of d){if(hasDefault(r)){applyPropertySchema(r)}else{t.if((0,n.propertyInData)(t,p,r,c.opts.ownProperties));applyPropertySchema(r);if(!c.allErrors)t.else().var(u,true);t.endIf()}e.it.definedProperties.add(r);e.ok(u)}function hasDefault(e){return c.opts.useDefaults&&!c.compositeRule&&r[e].default!==undefined}function applyPropertySchema(t){e.subschema({keyword:"properties",schemaProp:t,dataProp:t},u)}}};t["default"]=o},667:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(6035);const n=r(407);const i={message:"property name must be valid",params:({params:e})=>(0,a._)`{propertyName: ${e.propertyName}}`};const s={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:i,code(e){const{gen:t,schema:r,data:i,it:s}=e;if((0,n.alwaysValidSchema)(s,r))return;const o=t.name("valid");t.forIn("key",i,(r=>{e.setParams({propertyName:r});e.subschema({keyword:"propertyNames",data:r,dataTypes:["string"],propertyName:r,compositeRule:true},o);t.if((0,a.not)(o),(()=>{e.error(true);if(!s.allErrors)t.break()}))}));e.ok(o)}};t["default"]=s},1983:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(407);const n={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:r}){if(t.if===undefined)(0,a.checkStrictMode)(r,`"${e}" without "if" is ignored`)}};t["default"]=n},982:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.validateUnion=t.validateArray=t.usePattern=t.callValidateCode=t.schemaProperties=t.allSchemaProperties=t.noPropertyInData=t.propertyInData=t.isOwnProperty=t.hasPropFunc=t.reportMissingProp=t.checkMissingProp=t.checkReportMissingProp=void 0;const a=r(6035);const n=r(407);const i=r(5302);const s=r(407);function checkReportMissingProp(e,t){const{gen:r,data:n,it:i}=e;r.if(noPropertyInData(r,n,t,i.opts.ownProperties),(()=>{e.setParams({missingProperty:(0,a._)`${t}`},true);e.error()}))}t.checkReportMissingProp=checkReportMissingProp;function checkMissingProp({gen:e,data:t,it:{opts:r}},n,i){return(0,a.or)(...n.map((n=>(0,a.and)(noPropertyInData(e,t,n,r.ownProperties),(0,a._)`${i} = ${n}`))))}t.checkMissingProp=checkMissingProp;function reportMissingProp(e,t){e.setParams({missingProperty:t},true);e.error()}t.reportMissingProp=reportMissingProp;function hasPropFunc(e){return e.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,a._)`Object.prototype.hasOwnProperty`})}t.hasPropFunc=hasPropFunc;function isOwnProperty(e,t,r){return(0,a._)`${hasPropFunc(e)}.call(${t}, ${r})`}t.isOwnProperty=isOwnProperty;function propertyInData(e,t,r,n){const i=(0,a._)`${t}${(0,a.getProperty)(r)} !== undefined`;return n?(0,a._)`${i} && ${isOwnProperty(e,t,r)}`:i}t.propertyInData=propertyInData;function noPropertyInData(e,t,r,n){const i=(0,a._)`${t}${(0,a.getProperty)(r)} === undefined`;return n?(0,a.or)(i,(0,a.not)(isOwnProperty(e,t,r))):i}t.noPropertyInData=noPropertyInData;function allSchemaProperties(e){return e?Object.keys(e).filter((e=>e!=="__proto__")):[]}t.allSchemaProperties=allSchemaProperties;function schemaProperties(e,t){return allSchemaProperties(t).filter((r=>!(0,n.alwaysValidSchema)(e,t[r])))}t.schemaProperties=schemaProperties;function callValidateCode({schemaCode:e,data:t,it:{gen:r,topSchemaRef:n,schemaPath:s,errorPath:o},it:p},c,l,d){const u=d?(0,a._)`${e}, ${t}, ${n}${s}`:t;const m=[[i.default.instancePath,(0,a.strConcat)(i.default.instancePath,o)],[i.default.parentData,p.parentData],[i.default.parentDataProperty,p.parentDataProperty],[i.default.rootData,i.default.rootData]];if(p.opts.dynamicRef)m.push([i.default.dynamicAnchors,i.default.dynamicAnchors]);const h=(0,a._)`${u}, ${r.object(...m)}`;return l!==a.nil?(0,a._)`${c}.call(${l}, ${h})`:(0,a._)`${c}(${h})`}t.callValidateCode=callValidateCode;const o=(0,a._)`new RegExp`;function usePattern({gen:e,it:{opts:t}},r){const n=t.unicodeRegExp?"u":"";const{regExp:i}=t.code;const p=i(r,n);return e.scopeValue("pattern",{key:p.toString(),ref:p,code:(0,a._)`${i.code==="new RegExp"?o:(0,s.useFunc)(e,i)}(${r}, ${n})`})}t.usePattern=usePattern;function validateArray(e){const{gen:t,data:r,keyword:i,it:s}=e;const o=t.name("valid");if(s.allErrors){const e=t.let("valid",true);validateItems((()=>t.assign(e,false)));return e}t.var(o,true);validateItems((()=>t.break()));return o;function validateItems(s){const p=t.const("len",(0,a._)`${r}.length`);t.forRange("i",0,p,(r=>{e.subschema({keyword:i,dataProp:r,dataPropType:n.Type.Num},o);t.if((0,a.not)(o),s)}))}}t.validateArray=validateArray;function validateUnion(e){const{gen:t,schema:r,keyword:i,it:s}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");const o=r.some((e=>(0,n.alwaysValidSchema)(s,e)));if(o&&!s.opts.unevaluated)return;const p=t.let("valid",false);const c=t.name("_valid");t.block((()=>r.forEach(((r,n)=>{const s=e.subschema({keyword:i,schemaProp:n,compositeRule:true},c);t.assign(p,(0,a._)`${p} || ${c}`);const o=e.mergeValidEvaluated(s,c);if(!o)t.if((0,a.not)(p))}))));e.result(p,(()=>e.reset()),(()=>e.error(true)))}t.validateUnion=validateUnion},1408:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const r={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};t["default"]=r},8182:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(1408);const n=r(3281);const i=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",a.default,n.default];t["default"]=i},3281:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.callRef=t.getValidate=void 0;const a=r(2146);const n=r(982);const i=r(6035);const s=r(5302);const o=r(9230);const p=r(407);const c={keyword:"$ref",schemaType:"string",code(e){const{gen:t,schema:r,it:n}=e;const{baseId:s,schemaEnv:p,validateName:c,opts:l,self:d}=n;const{root:u}=p;if((r==="#"||r==="#/")&&s===u.baseId)return callRootRef();const m=o.resolveRef.call(d,u,s,r);if(m===undefined)throw new a.default(n.opts.uriResolver,s,r);if(m instanceof o.SchemaEnv)return callValidate(m);return inlineRefSchema(m);function callRootRef(){if(p===u)return callRef(e,c,p,p.$async);const r=t.scopeValue("root",{ref:u});return callRef(e,(0,i._)`${r}.validate`,u,u.$async)}function callValidate(t){const r=getValidate(e,t);callRef(e,r,t,t.$async)}function inlineRefSchema(a){const n=t.scopeValue("schema",l.code.source===true?{ref:a,code:(0,i.stringify)(a)}:{ref:a});const s=t.name("valid");const o=e.subschema({schema:a,dataTypes:[],schemaPath:i.nil,topSchemaRef:n,errSchemaPath:r},s);e.mergeEvaluated(o);e.ok(s)}}};function getValidate(e,t){const{gen:r}=e;return t.validate?r.scopeValue("validate",{ref:t.validate}):(0,i._)`${r.scopeValue("wrapper",{ref:t})}.validate`}t.getValidate=getValidate;function callRef(e,t,r,a){const{gen:o,it:c}=e;const{allErrors:l,schemaEnv:d,opts:u}=c;const m=u.passContext?s.default.this:i.nil;if(a)callAsyncRef();else callSyncRef();function callAsyncRef(){if(!d.$async)throw new Error("async schema referenced by sync schema");const r=o.let("valid");o.try((()=>{o.code((0,i._)`await ${(0,n.callValidateCode)(e,t,m)}`);addEvaluatedFrom(t);if(!l)o.assign(r,true)}),(e=>{o.if((0,i._)`!(${e} instanceof ${c.ValidationError})`,(()=>o.throw(e)));addErrorsFrom(e);if(!l)o.assign(r,false)}));e.ok(r)}function callSyncRef(){e.result((0,n.callValidateCode)(e,t,m),(()=>addEvaluatedFrom(t)),(()=>addErrorsFrom(t)))}function addErrorsFrom(e){const t=(0,i._)`${e}.errors`;o.assign(s.default.vErrors,(0,i._)`${s.default.vErrors} === null ? ${t} : ${s.default.vErrors}.concat(${t})`);o.assign(s.default.errors,(0,i._)`${s.default.vErrors}.length`)}function addEvaluatedFrom(e){var t;if(!c.opts.unevaluated)return;const a=(t=r===null||r===void 0?void 0:r.validate)===null||t===void 0?void 0:t.evaluated;if(c.props!==true){if(a&&!a.dynamicProps){if(a.props!==undefined){c.props=p.mergeEvaluated.props(o,a.props,c.props)}}else{const t=o.var("props",(0,i._)`${e}.evaluated.props`);c.props=p.mergeEvaluated.props(o,t,c.props,i.Name)}}if(c.items!==true){if(a&&!a.dynamicItems){if(a.items!==undefined){c.items=p.mergeEvaluated.items(o,a.items,c.items)}}else{const t=o.var("items",(0,i._)`${e}.evaluated.items`);c.items=p.mergeEvaluated.items(o,t,c.items,i.Name)}}}}t.callRef=callRef;t["default"]=c},6658:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(6035);const n=r(543);const i=r(9230);const s=r(407);const o={message:({params:{discrError:e,tagName:t}})=>e===n.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:t,tagName:r}})=>(0,a._)`{error: ${e}, tag: ${r}, tagValue: ${t}}`};const p={keyword:"discriminator",type:"object",schemaType:"object",error:o,code(e){const{gen:t,data:r,schema:o,parentSchema:p,it:c}=e;const{oneOf:l}=p;if(!c.opts.discriminator){throw new Error("discriminator: requires discriminator option")}const d=o.propertyName;if(typeof d!="string")throw new Error("discriminator: requires propertyName");if(o.mapping)throw new Error("discriminator: mapping is not supported");if(!l)throw new Error("discriminator: requires oneOf keyword");const u=t.let("valid",false);const m=t.const("tag",(0,a._)`${r}${(0,a.getProperty)(d)}`);t.if((0,a._)`typeof ${m} == "string"`,(()=>validateMapping()),(()=>e.error(false,{discrError:n.DiscrError.Tag,tag:m,tagName:d})));e.ok(u);function validateMapping(){const r=getMapping();t.if(false);for(const e in r){t.elseIf((0,a._)`${m} === ${e}`);t.assign(u,applyTagSchema(r[e]))}t.else();e.error(false,{discrError:n.DiscrError.Mapping,tag:m,tagName:d});t.endIf()}function applyTagSchema(r){const n=t.name("valid");const i=e.subschema({keyword:"oneOf",schemaProp:r},n);e.mergeEvaluated(i,a.Name);return n}function getMapping(){var e;const t={};const r=hasRequired(p);let a=true;for(let t=0;t{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.DiscrError=void 0;var r;(function(e){e["Tag"]="tag";e["Mapping"]="mapping"})(r=t.DiscrError||(t.DiscrError={}))},5826:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(8182);const n=r(2575);const i=r(7427);const s=r(8909);const o=r(5156);const p=[a.default,n.default,(0,i.default)(),s.default,o.metadataVocabulary,o.contentVocabulary];t["default"]=p},8502:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(6035);const n={message:({schemaCode:e})=>(0,a.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,a._)`{format: ${e}}`};const i={keyword:"format",type:["number","string"],schemaType:"string",$data:true,error:n,code(e,t){const{gen:r,data:n,$data:i,schema:s,schemaCode:o,it:p}=e;const{opts:c,errSchemaPath:l,schemaEnv:d,self:u}=p;if(!c.validateFormats)return;if(i)validate$DataFormat();else validateFormat();function validate$DataFormat(){const i=r.scopeValue("formats",{ref:u.formats,code:c.code.formats});const s=r.const("fDef",(0,a._)`${i}[${o}]`);const p=r.let("fType");const l=r.let("format");r.if((0,a._)`typeof ${s} == "object" && !(${s} instanceof RegExp)`,(()=>r.assign(p,(0,a._)`${s}.type || "string"`).assign(l,(0,a._)`${s}.validate`)),(()=>r.assign(p,(0,a._)`"string"`).assign(l,s)));e.fail$data((0,a.or)(unknownFmt(),invalidFmt()));function unknownFmt(){if(c.strictSchema===false)return a.nil;return(0,a._)`${o} && !${l}`}function invalidFmt(){const e=d.$async?(0,a._)`(${s}.async ? await ${l}(${n}) : ${l}(${n}))`:(0,a._)`${l}(${n})`;const r=(0,a._)`(typeof ${l} == "function" ? ${e} : ${l}.test(${n}))`;return(0,a._)`${l} && ${l} !== true && ${p} === ${t} && !${r}`}}function validateFormat(){const i=u.formats[s];if(!i){unknownFormat();return}if(i===true)return;const[o,p,m]=getFormat(i);if(o===t)e.pass(validCondition());function unknownFormat(){if(c.strictSchema===false){u.logger.warn(unknownMsg());return}throw new Error(unknownMsg());function unknownMsg(){return`unknown format "${s}" ignored in schema at path "${l}"`}}function getFormat(e){const t=e instanceof RegExp?(0,a.regexpCode)(e):c.code.formats?(0,a._)`${c.code.formats}${(0,a.getProperty)(s)}`:undefined;const n=r.scopeValue("formats",{key:s,ref:e,code:t});if(typeof e=="object"&&!(e instanceof RegExp)){return[e.type||"string",e.validate,(0,a._)`${n}.validate`]}return["string",e,n]}function validCondition(){if(typeof i=="object"&&!(i instanceof RegExp)&&i.async){if(!d.$async)throw new Error("async format in sync schema");return(0,a._)`await ${m}(${n})`}return typeof p=="function"?(0,a._)`${m}(${n})`:(0,a._)`${m}.test(${n})`}}}};t["default"]=i},8909:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(8502);const n=[a.default];t["default"]=n},5156:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.contentVocabulary=t.metadataVocabulary=void 0;t.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];t.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]},1410:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(6035);const n=r(407);const i=r(4735);const s={message:"must be equal to constant",params:({schemaCode:e})=>(0,a._)`{allowedValue: ${e}}`};const o={keyword:"const",$data:true,error:s,code(e){const{gen:t,data:r,$data:s,schemaCode:o,schema:p}=e;if(s||p&&typeof p=="object"){e.fail$data((0,a._)`!${(0,n.useFunc)(t,i.default)}(${r}, ${o})`)}else{e.fail((0,a._)`${p} !== ${r}`)}}};t["default"]=o},475:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(6035);const n=r(407);const i=r(4735);const s={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,a._)`{allowedValues: ${e}}`};const o={keyword:"enum",schemaType:"array",$data:true,error:s,code(e){const{gen:t,data:r,$data:s,schema:o,schemaCode:p,it:c}=e;if(!s&&o.length===0)throw new Error("enum must have non-empty array");const l=o.length>=c.opts.loopEnum;let d;const getEql=()=>d!==null&&d!==void 0?d:d=(0,n.useFunc)(t,i.default);let u;if(l||s){u=t.let("valid");e.block$data(u,loopEnum)}else{if(!Array.isArray(o))throw new Error("ajv implementation error");const e=t.const("vSchema",p);u=(0,a.or)(...o.map(((t,r)=>equalCode(e,r))))}e.pass(u);function loopEnum(){t.assign(u,false);t.forOf("v",p,(e=>t.if((0,a._)`${getEql()}(${r}, ${e})`,(()=>t.assign(u,true).break()))))}function equalCode(e,t){const n=o[t];return typeof n==="object"&&n!==null?(0,a._)`${getEql()}(${r}, ${e}[${t}])`:(0,a._)`${r} === ${n}`}}};t["default"]=o},2575:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(7182);const n=r(2412);const i=r(2250);const s=r(7576);const o=r(2507);const p=r(3688);const c=r(5769);const l=r(6949);const d=r(1410);const u=r(475);const m=[a.default,n.default,i.default,s.default,o.default,p.default,c.default,l.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},d.default,u.default];t["default"]=m},5769:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(6035);const n={message({keyword:e,schemaCode:t}){const r=e==="maxItems"?"more":"fewer";return(0,a.str)`must NOT have ${r} than ${t} items`},params:({schemaCode:e})=>(0,a._)`{limit: ${e}}`};const i={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:true,error:n,code(e){const{keyword:t,data:r,schemaCode:n}=e;const i=t==="maxItems"?a.operators.GT:a.operators.LT;e.fail$data((0,a._)`${r}.length ${i} ${n}`)}};t["default"]=i},2250:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(6035);const n=r(407);const i=r(100);const s={message({keyword:e,schemaCode:t}){const r=e==="maxLength"?"more":"fewer";return(0,a.str)`must NOT have ${r} than ${t} characters`},params:({schemaCode:e})=>(0,a._)`{limit: ${e}}`};const o={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:true,error:s,code(e){const{keyword:t,data:r,schemaCode:s,it:o}=e;const p=t==="maxLength"?a.operators.GT:a.operators.LT;const c=o.opts.unicode===false?(0,a._)`${r}.length`:(0,a._)`${(0,n.useFunc)(e.gen,i.default)}(${r})`;e.fail$data((0,a._)`${c} ${p} ${s}`)}};t["default"]=o},7182:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(6035);const n=a.operators;const i={maximum:{okStr:"<=",ok:n.LTE,fail:n.GT},minimum:{okStr:">=",ok:n.GTE,fail:n.LT},exclusiveMaximum:{okStr:"<",ok:n.LT,fail:n.GTE},exclusiveMinimum:{okStr:">",ok:n.GT,fail:n.LTE}};const s={message:({keyword:e,schemaCode:t})=>(0,a.str)`must be ${i[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,a._)`{comparison: ${i[e].okStr}, limit: ${t}}`};const o={keyword:Object.keys(i),type:"number",schemaType:"number",$data:true,error:s,code(e){const{keyword:t,data:r,schemaCode:n}=e;e.fail$data((0,a._)`${r} ${i[t].fail} ${n} || isNaN(${r})`)}};t["default"]=o},2507:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(6035);const n={message({keyword:e,schemaCode:t}){const r=e==="maxProperties"?"more":"fewer";return(0,a.str)`must NOT have ${r} than ${t} properties`},params:({schemaCode:e})=>(0,a._)`{limit: ${e}}`};const i={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:true,error:n,code(e){const{keyword:t,data:r,schemaCode:n}=e;const i=t==="maxProperties"?a.operators.GT:a.operators.LT;e.fail$data((0,a._)`Object.keys(${r}).length ${i} ${n}`)}};t["default"]=i},2412:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(6035);const n={message:({schemaCode:e})=>(0,a.str)`must be multiple of ${e}`,params:({schemaCode:e})=>(0,a._)`{multipleOf: ${e}}`};const i={keyword:"multipleOf",type:"number",schemaType:"number",$data:true,error:n,code(e){const{gen:t,data:r,schemaCode:n,it:i}=e;const s=i.opts.multipleOfPrecision;const o=t.let("res");const p=s?(0,a._)`Math.abs(Math.round(${o}) - ${o}) > 1e-${s}`:(0,a._)`${o} !== parseInt(${o})`;e.fail$data((0,a._)`(${n} === 0 || (${o} = ${r}/${n}, ${p}))`)}};t["default"]=i},7576:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(982);const n=r(6035);const i={message:({schemaCode:e})=>(0,n.str)`must match pattern "${e}"`,params:({schemaCode:e})=>(0,n._)`{pattern: ${e}}`};const s={keyword:"pattern",type:"string",schemaType:"string",$data:true,error:i,code(e){const{data:t,$data:r,schema:i,schemaCode:s,it:o}=e;const p=o.opts.unicodeRegExp?"u":"";const c=r?(0,n._)`(new RegExp(${s}, ${p}))`:(0,a.usePattern)(e,i);e.fail$data((0,n._)`!${c}.test(${t})`)}};t["default"]=s},3688:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(982);const n=r(6035);const i=r(407);const s={message:({params:{missingProperty:e}})=>(0,n.str)`must have required property '${e}'`,params:({params:{missingProperty:e}})=>(0,n._)`{missingProperty: ${e}}`};const o={keyword:"required",type:"object",schemaType:"array",$data:true,error:s,code(e){const{gen:t,schema:r,schemaCode:s,data:o,$data:p,it:c}=e;const{opts:l}=c;if(!p&&r.length===0)return;const d=r.length>=l.loopRequired;if(c.allErrors)allErrorsMode();else exitOnErrorMode();if(l.strictRequired){const t=e.parentSchema.properties;const{definedProperties:a}=e.it;for(const e of r){if((t===null||t===void 0?void 0:t[e])===undefined&&!a.has(e)){const t=c.schemaEnv.baseId+c.errSchemaPath;const r=`required property "${e}" is not defined at "${t}" (strictRequired)`;(0,i.checkStrictMode)(c,r,c.opts.strictRequired)}}}function allErrorsMode(){if(d||p){e.block$data(n.nil,loopAllRequired)}else{for(const t of r){(0,a.checkReportMissingProp)(e,t)}}}function exitOnErrorMode(){const n=t.let("missing");if(d||p){const r=t.let("valid",true);e.block$data(r,(()=>loopUntilMissing(n,r)));e.ok(r)}else{t.if((0,a.checkMissingProp)(e,r,n));(0,a.reportMissingProp)(e,n);t.else()}}function loopAllRequired(){t.forOf("prop",s,(r=>{e.setParams({missingProperty:r});t.if((0,a.noPropertyInData)(t,o,r,l.ownProperties),(()=>e.error()))}))}function loopUntilMissing(r,i){e.setParams({missingProperty:r});t.forOf(r,s,(()=>{t.assign(i,(0,a.propertyInData)(t,o,r,l.ownProperties));t.if((0,n.not)(i),(()=>{e.error();t.break()}))}),n.nil)}}};t["default"]=o},6949:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const a=r(2933);const n=r(6035);const i=r(407);const s=r(4735);const o={message:({params:{i:e,j:t}})=>(0,n.str)`must NOT have duplicate items (items ## ${t} and ${e} are identical)`,params:({params:{i:e,j:t}})=>(0,n._)`{i: ${e}, j: ${t}}`};const p={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:true,error:o,code(e){const{gen:t,data:r,$data:o,schema:p,parentSchema:c,schemaCode:l,it:d}=e;if(!o&&!p)return;const u=t.let("valid");const m=c.items?(0,a.getSchemaTypes)(c.items):[];e.block$data(u,validateUniqueItems,(0,n._)`${l} === false`);e.ok(u);function validateUniqueItems(){const a=t.let("i",(0,n._)`${r}.length`);const i=t.let("j");e.setParams({i:a,j:i});t.assign(u,true);t.if((0,n._)`${a} > 1`,(()=>(canOptimize()?loopN:loopN2)(a,i)))}function canOptimize(){return m.length>0&&!m.some((e=>e==="object"||e==="array"))}function loopN(i,s){const o=t.name("item");const p=(0,a.checkDataTypes)(m,o,d.opts.strictNumbers,a.DataType.Wrong);const c=t.const("indices",(0,n._)`{}`);t.for((0,n._)`;${i}--;`,(()=>{t.let(o,(0,n._)`${r}[${i}]`);t.if(p,(0,n._)`continue`);if(m.length>1)t.if((0,n._)`typeof ${o} == "string"`,(0,n._)`${o} += "_"`);t.if((0,n._)`typeof ${c}[${o}] == "number"`,(()=>{t.assign(s,(0,n._)`${c}[${o}]`);e.error();t.assign(u,false).break()})).code((0,n._)`${c}[${o}] = ${i}`)}))}function loopN2(a,o){const p=(0,i.useFunc)(t,s.default);const c=t.name("outer");t.label(c).for((0,n._)`;${a}--;`,(()=>t.for((0,n._)`${o} = ${a}; ${o}--;`,(()=>t.if((0,n._)`${p}(${r}[${a}], ${r}[${o}])`,(()=>{e.error();t.assign(u,false).break(c)}))))))}}};t["default"]=p},6077:(e,t,r)=>{e.exports=r(3150)},2160:(e,t,r)=>{"use strict";var a=r(302);var n=r(766);var i=r(2239);var s=r(9391);var o=r(3685);var p=r(5687);var c=r(7707).http;var l=r(7707).https;var d=r(7310);var u=r(9796);var m=r(4741).version;var h=r(1657);var g=r(6068);var v=r(9935);var y=/https:?/;var b=["http:","https:","file:"];function setProxy(e,t,r){e.hostname=t.host;e.host=t.host;e.port=t.port;e.path=r;if(t.auth){var a=Buffer.from(t.auth.username+":"+t.auth.password,"utf8").toString("base64");e.headers["Proxy-Authorization"]="Basic "+a}e.beforeRedirect=function beforeRedirect(e){e.headers.host=e.host;setProxy(e,t,e.href)}}e.exports=function httpAdapter(e){return new Promise((function dispatchHttpRequest(t,r){var w;function done(){if(e.cancelToken){e.cancelToken.unsubscribe(w)}if(e.signal){e.signal.removeEventListener("abort",w)}}var x=function resolve(e){done();t(e)};var E=false;var T=function reject(e){done();E=true;r(e)};var S=e.data;var k=e.headers;var O={};Object.keys(k).forEach((function storeLowerName(e){O[e.toLowerCase()]=e}));if("user-agent"in O){if(!k[O["user-agent"]]){delete k[O["user-agent"]]}}else{k["User-Agent"]="axios/"+m}if(a.isFormData(S)&&a.isFunction(S.getHeaders)){Object.assign(k,S.getHeaders())}else if(S&&!a.isStream(S)){if(Buffer.isBuffer(S)){}else if(a.isArrayBuffer(S)){S=Buffer.from(new Uint8Array(S))}else if(a.isString(S)){S=Buffer.from(S,"utf-8")}else{return T(new g("Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream",g.ERR_BAD_REQUEST,e))}if(e.maxBodyLength>-1&&S.length>e.maxBodyLength){return T(new g("Request body larger than maxBodyLength limit",g.ERR_BAD_REQUEST,e))}if(!O["content-length"]){k["Content-Length"]=S.length}}var C=undefined;if(e.auth){var P=e.auth.username||"";var A=e.auth.password||"";C=P+":"+A}var D=i(e.baseURL,e.url);var R=d.parse(D);var N=R.protocol||b[0];if(b.indexOf(N)===-1){return T(new g("Unsupported protocol "+N,g.ERR_BAD_REQUEST,e))}if(!C&&R.auth){var j=R.auth.split(":");var I=j[0]||"";var F=j[1]||"";C=I+":"+F}if(C&&O.authorization){delete k[O.authorization]}var $=y.test(N);var B=$?e.httpsAgent:e.httpAgent;try{s(R.path,e.params,e.paramsSerializer).replace(/^\?/,"")}catch(t){var L=new Error(t.message);L.config=e;L.url=e.url;L.exists=true;T(L)}var M={path:s(R.path,e.params,e.paramsSerializer).replace(/^\?/,""),method:e.method.toUpperCase(),headers:k,agent:B,agents:{http:e.httpAgent,https:e.httpsAgent},auth:C};if(e.socketPath){M.socketPath=e.socketPath}else{M.hostname=R.hostname;M.port=R.port}var U=e.proxy;if(!U&&U!==false){var G=N.slice(0,-1)+"_proxy";var V=process.env[G]||process.env[G.toUpperCase()];if(V){var q=d.parse(V);var H=process.env.no_proxy||process.env.NO_PROXY;var z=true;if(H){var K=H.split(",").map((function trim(e){return e.trim()}));z=!K.some((function proxyMatch(e){if(!e){return false}if(e==="*"){return true}if(e[0]==="."&&R.hostname.substr(R.hostname.length-e.length)===e){return true}return R.hostname===e}))}if(z){U={host:q.hostname,port:q.port,protocol:q.protocol};if(q.auth){var W=q.auth.split(":");U.auth={username:W[0],password:W[1]}}}}}if(U){M.headers.host=R.hostname+(R.port?":"+R.port:"");setProxy(M,U,N+"//"+R.hostname+(R.port?":"+R.port:"")+M.path)}var J;var Y=$&&(U?y.test(U.protocol):true);if(e.transport){J=e.transport}else if(e.maxRedirects===0){J=Y?p:o}else{if(e.maxRedirects){M.maxRedirects=e.maxRedirects}if(e.beforeRedirect){M.beforeRedirect=e.beforeRedirect}J=Y?l:c}if(e.maxBodyLength>-1){M.maxBodyLength=e.maxBodyLength}if(e.insecureHTTPParser){M.insecureHTTPParser=e.insecureHTTPParser}var Q=J.request(M,(function handleResponse(t){if(Q.aborted)return;var r=t;var i=t.req||Q;if(t.statusCode!==204&&i.method!=="HEAD"&&e.decompress!==false){switch(t.headers["content-encoding"]){case"gzip":case"compress":case"deflate":r=r.pipe(u.createUnzip());delete t.headers["content-encoding"];break}}var s={status:t.statusCode,statusText:t.statusMessage,headers:t.headers,config:e,request:i};if(e.responseType==="stream"){s.data=r;n(x,T,s)}else{var o=[];var p=0;r.on("data",(function handleStreamData(t){o.push(t);p+=t.length;if(e.maxContentLength>-1&&p>e.maxContentLength){E=true;r.destroy();T(new g("maxContentLength size of "+e.maxContentLength+" exceeded",g.ERR_BAD_RESPONSE,e,i))}}));r.on("aborted",(function handlerStreamAborted(){if(E){return}r.destroy();T(new g("maxContentLength size of "+e.maxContentLength+" exceeded",g.ERR_BAD_RESPONSE,e,i))}));r.on("error",(function handleStreamError(t){if(Q.aborted)return;T(g.from(t,null,e,i))}));r.on("end",(function handleStreamEnd(){try{var t=o.length===1?o[0]:Buffer.concat(o);if(e.responseType!=="arraybuffer"){t=t.toString(e.responseEncoding);if(!e.responseEncoding||e.responseEncoding==="utf8"){t=a.stripBOM(t)}}s.data=t}catch(t){T(g.from(t,null,e,s.request,s))}n(x,T,s)}))}}));Q.on("error",(function handleRequestError(t){T(g.from(t,null,e,Q))}));Q.on("socket",(function handleRequestSocket(e){e.setKeepAlive(true,1e3*60)}));if(e.timeout){var X=parseInt(e.timeout,10);if(isNaN(X)){T(new g("error trying to parse `config.timeout` to int",g.ERR_BAD_OPTION_VALUE,e,Q));return}Q.setTimeout(X,(function handleRequestTimeout(){Q.abort();var t=e.transitional||h;T(new g("timeout of "+X+"ms exceeded",t.clarifyTimeoutError?g.ETIMEDOUT:g.ECONNABORTED,e,Q))}))}if(e.cancelToken||e.signal){w=function(e){if(Q.aborted)return;Q.abort();T(!e||e&&e.type?new v:e)};e.cancelToken&&e.cancelToken.subscribe(w);if(e.signal){e.signal.aborted?w():e.signal.addEventListener("abort",w)}}if(a.isStream(S)){S.on("error",(function handleStreamError(t){T(g.from(t,e,null,Q))})).pipe(Q)}else{Q.end(S)}}))}},3963:(e,t,r)=>{"use strict";var a=r(302);var n=r(766);var i=r(6296);var s=r(9391);var o=r(2239);var p=r(6584);var c=r(1582);var l=r(1657);var d=r(6068);var u=r(9935);var m=r(7083);e.exports=function xhrAdapter(e){return new Promise((function dispatchXhrRequest(t,r){var h=e.data;var g=e.headers;var v=e.responseType;var y;function done(){if(e.cancelToken){e.cancelToken.unsubscribe(y)}if(e.signal){e.signal.removeEventListener("abort",y)}}if(a.isFormData(h)&&a.isStandardBrowserEnv()){delete g["Content-Type"]}var b=new XMLHttpRequest;if(e.auth){var w=e.auth.username||"";var x=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";g.Authorization="Basic "+btoa(w+":"+x)}var E=o(e.baseURL,e.url);b.open(e.method.toUpperCase(),s(E,e.params,e.paramsSerializer),true);b.timeout=e.timeout;function onloadend(){if(!b){return}var a="getAllResponseHeaders"in b?p(b.getAllResponseHeaders()):null;var i=!v||v==="text"||v==="json"?b.responseText:b.response;var s={data:i,status:b.status,statusText:b.statusText,headers:a,config:e,request:b};n((function _resolve(e){t(e);done()}),(function _reject(e){r(e);done()}),s);b=null}if("onloadend"in b){b.onloadend=onloadend}else{b.onreadystatechange=function handleLoad(){if(!b||b.readyState!==4){return}if(b.status===0&&!(b.responseURL&&b.responseURL.indexOf("file:")===0)){return}setTimeout(onloadend)}}b.onabort=function handleAbort(){if(!b){return}r(new d("Request aborted",d.ECONNABORTED,e,b));b=null};b.onerror=function handleError(){r(new d("Network Error",d.ERR_NETWORK,e,b,b));b=null};b.ontimeout=function handleTimeout(){var t=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded";var a=e.transitional||l;if(e.timeoutErrorMessage){t=e.timeoutErrorMessage}r(new d(t,a.clarifyTimeoutError?d.ETIMEDOUT:d.ECONNABORTED,e,b));b=null};if(a.isStandardBrowserEnv()){var T=(e.withCredentials||c(E))&&e.xsrfCookieName?i.read(e.xsrfCookieName):undefined;if(T){g[e.xsrfHeaderName]=T}}if("setRequestHeader"in b){a.forEach(g,(function setRequestHeader(e,t){if(typeof h==="undefined"&&t.toLowerCase()==="content-type"){delete g[t]}else{b.setRequestHeader(t,e)}}))}if(!a.isUndefined(e.withCredentials)){b.withCredentials=!!e.withCredentials}if(v&&v!=="json"){b.responseType=e.responseType}if(typeof e.onDownloadProgress==="function"){b.addEventListener("progress",e.onDownloadProgress)}if(typeof e.onUploadProgress==="function"&&b.upload){b.upload.addEventListener("progress",e.onUploadProgress)}if(e.cancelToken||e.signal){y=function(e){if(!b){return}r(!e||e&&e.type?new u:e);b.abort();b=null};e.cancelToken&&e.cancelToken.subscribe(y);if(e.signal){e.signal.aborted?y():e.signal.addEventListener("abort",y)}}if(!h){h=null}var S=m(E);if(S&&["http","https","file"].indexOf(S)===-1){r(new d("Unsupported protocol "+S+":",d.ERR_BAD_REQUEST,e));return}b.send(h)}))}},3150:(e,t,r)=>{"use strict";var a=r(302);var n=r(7611);var i=r(2779);var s=r(1879);var o=r(4221);function createInstance(e){var t=new i(e);var r=n(i.prototype.request,t);a.extend(r,i.prototype,t);a.extend(r,t);r.create=function create(t){return createInstance(s(e,t))};return r}var p=createInstance(o);p.Axios=i;p.CanceledError=r(9935);p.CancelToken=r(5004);p.isCancel=r(993);p.VERSION=r(4741).version;p.toFormData=r(2399);p.AxiosError=r(6068);p.Cancel=p.CanceledError;p.all=function all(e){return Promise.all(e)};p.spread=r(1892);p.isAxiosError=r(9754);e.exports=p;e.exports["default"]=p},5004:(e,t,r)=>{"use strict";var a=r(9935);function CancelToken(e){if(typeof e!=="function"){throw new TypeError("executor must be a function.")}var t;this.promise=new Promise((function promiseExecutor(e){t=e}));var r=this;this.promise.then((function(e){if(!r._listeners)return;var t;var a=r._listeners.length;for(t=0;t{"use strict";var a=r(6068);var n=r(302);function CanceledError(e){a.call(this,e==null?"canceled":e,a.ERR_CANCELED);this.name="CanceledError"}n.inherits(CanceledError,a,{__CANCEL__:true});e.exports=CanceledError},993:e=>{"use strict";e.exports=function isCancel(e){return!!(e&&e.__CANCEL__)}},2779:(e,t,r)=>{"use strict";var a=r(302);var n=r(9391);var i=r(4519);var s=r(3746);var o=r(1879);var p=r(2239);var c=r(8009);var l=c.validators;function Axios(e){this.defaults=e;this.interceptors={request:new i,response:new i}}Axios.prototype.request=function request(e,t){if(typeof e==="string"){t=t||{};t.url=e}else{t=e||{}}t=o(this.defaults,t);if(t.method){t.method=t.method.toLowerCase()}else if(this.defaults.method){t.method=this.defaults.method.toLowerCase()}else{t.method="get"}var r=t.transitional;if(r!==undefined){c.assertOptions(r,{silentJSONParsing:l.transitional(l.boolean),forcedJSONParsing:l.transitional(l.boolean),clarifyTimeoutError:l.transitional(l.boolean)},false)}var a=[];var n=true;this.interceptors.request.forEach((function unshiftRequestInterceptors(e){if(typeof e.runWhen==="function"&&e.runWhen(t)===false){return}n=n&&e.synchronous;a.unshift(e.fulfilled,e.rejected)}));var i=[];this.interceptors.response.forEach((function pushResponseInterceptors(e){i.push(e.fulfilled,e.rejected)}));var p;if(!n){var d=[s,undefined];Array.prototype.unshift.apply(d,a);d=d.concat(i);p=Promise.resolve(t);while(d.length){p=p.then(d.shift(),d.shift())}return p}var u=t;while(a.length){var m=a.shift();var h=a.shift();try{u=m(u)}catch(e){h(e);break}}try{p=s(u)}catch(e){return Promise.reject(e)}while(i.length){p=p.then(i.shift(),i.shift())}return p};Axios.prototype.getUri=function getUri(e){e=o(this.defaults,e);var t=p(e.baseURL,e.url);return n(t,e.params,e.paramsSerializer)};a.forEach(["delete","get","head","options"],(function forEachMethodNoData(e){Axios.prototype[e]=function(t,r){return this.request(o(r||{},{method:e,url:t,data:(r||{}).data}))}}));a.forEach(["post","put","patch"],(function forEachMethodWithData(e){function generateHTTPMethod(t){return function httpMethod(r,a,n){return this.request(o(n||{},{method:e,headers:t?{"Content-Type":"multipart/form-data"}:{},url:r,data:a}))}}Axios.prototype[e]=generateHTTPMethod();Axios.prototype[e+"Form"]=generateHTTPMethod(true)}));e.exports=Axios},6068:(e,t,r)=>{"use strict";var a=r(302);function AxiosError(e,t,r,a,n){Error.call(this);this.message=e;this.name="AxiosError";t&&(this.code=t);r&&(this.config=r);a&&(this.request=a);n&&(this.response=n)}a.inherits(AxiosError,Error,{toJSON:function toJSON(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code,status:this.response&&this.response.status?this.response.status:null}}});var n=AxiosError.prototype;var i={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED"].forEach((function(e){i[e]={value:e}}));Object.defineProperties(AxiosError,i);Object.defineProperty(n,"isAxiosError",{value:true});AxiosError.from=function(e,t,r,i,s,o){var p=Object.create(n);a.toFlatObject(e,p,(function filter(e){return e!==Error.prototype}));AxiosError.call(p,e.message,t,r,i,s);p.name=e.name;o&&Object.assign(p,o);return p};e.exports=AxiosError},4519:(e,t,r)=>{"use strict";var a=r(302);function InterceptorManager(){this.handlers=[]}InterceptorManager.prototype.use=function use(e,t,r){this.handlers.push({fulfilled:e,rejected:t,synchronous:r?r.synchronous:false,runWhen:r?r.runWhen:null});return this.handlers.length-1};InterceptorManager.prototype.eject=function eject(e){if(this.handlers[e]){this.handlers[e]=null}};InterceptorManager.prototype.forEach=function forEach(e){a.forEach(this.handlers,(function forEachHandler(t){if(t!==null){e(t)}}))};e.exports=InterceptorManager},2239:(e,t,r)=>{"use strict";var a=r(9800);var n=r(1046);e.exports=function buildFullPath(e,t){if(e&&!a(t)){return n(e,t)}return t}},3746:(e,t,r)=>{"use strict";var a=r(302);var n=r(7975);var i=r(993);var s=r(4221);var o=r(9935);function throwIfCancellationRequested(e){if(e.cancelToken){e.cancelToken.throwIfRequested()}if(e.signal&&e.signal.aborted){throw new o}}e.exports=function dispatchRequest(e){throwIfCancellationRequested(e);e.headers=e.headers||{};e.data=n.call(e,e.data,e.headers,e.transformRequest);e.headers=a.merge(e.headers.common||{},e.headers[e.method]||{},e.headers);a.forEach(["delete","get","head","post","put","patch","common"],(function cleanHeaderConfig(t){delete e.headers[t]}));var t=e.adapter||s.adapter;return t(e).then((function onAdapterResolution(t){throwIfCancellationRequested(e);t.data=n.call(e,t.data,t.headers,e.transformResponse);return t}),(function onAdapterRejection(t){if(!i(t)){throwIfCancellationRequested(e);if(t&&t.response){t.response.data=n.call(e,t.response.data,t.response.headers,e.transformResponse)}}return Promise.reject(t)}))}},1879:(e,t,r)=>{"use strict";var a=r(302);e.exports=function mergeConfig(e,t){t=t||{};var r={};function getMergedValue(e,t){if(a.isPlainObject(e)&&a.isPlainObject(t)){return a.merge(e,t)}else if(a.isPlainObject(t)){return a.merge({},t)}else if(a.isArray(t)){return t.slice()}return t}function mergeDeepProperties(r){if(!a.isUndefined(t[r])){return getMergedValue(e[r],t[r])}else if(!a.isUndefined(e[r])){return getMergedValue(undefined,e[r])}}function valueFromConfig2(e){if(!a.isUndefined(t[e])){return getMergedValue(undefined,t[e])}}function defaultToConfig2(r){if(!a.isUndefined(t[r])){return getMergedValue(undefined,t[r])}else if(!a.isUndefined(e[r])){return getMergedValue(undefined,e[r])}}function mergeDirectKeys(r){if(r in t){return getMergedValue(e[r],t[r])}else if(r in e){return getMergedValue(undefined,e[r])}}var n={url:valueFromConfig2,method:valueFromConfig2,data:valueFromConfig2,baseURL:defaultToConfig2,transformRequest:defaultToConfig2,transformResponse:defaultToConfig2,paramsSerializer:defaultToConfig2,timeout:defaultToConfig2,timeoutMessage:defaultToConfig2,withCredentials:defaultToConfig2,adapter:defaultToConfig2,responseType:defaultToConfig2,xsrfCookieName:defaultToConfig2,xsrfHeaderName:defaultToConfig2,onUploadProgress:defaultToConfig2,onDownloadProgress:defaultToConfig2,decompress:defaultToConfig2,maxContentLength:defaultToConfig2,maxBodyLength:defaultToConfig2,beforeRedirect:defaultToConfig2,transport:defaultToConfig2,httpAgent:defaultToConfig2,httpsAgent:defaultToConfig2,cancelToken:defaultToConfig2,socketPath:defaultToConfig2,responseEncoding:defaultToConfig2,validateStatus:mergeDirectKeys};a.forEach(Object.keys(e).concat(Object.keys(t)),(function computeConfigValue(e){var t=n[e]||mergeDeepProperties;var i=t(e);a.isUndefined(i)&&t!==mergeDirectKeys||(r[e]=i)}));return r}},766:(e,t,r)=>{"use strict";var a=r(6068);e.exports=function settle(e,t,r){var n=r.config.validateStatus;if(!r.status||!n||n(r.status)){e(r)}else{t(new a("Request failed with status code "+r.status,[a.ERR_BAD_REQUEST,a.ERR_BAD_RESPONSE][Math.floor(r.status/100)-4],r.config,r.request,r))}}},7975:(e,t,r)=>{"use strict";var a=r(302);var n=r(4221);e.exports=function transformData(e,t,r){var i=this||n;a.forEach(r,(function transform(r){e=r.call(i,e,t)}));return e}},1723:(e,t,r)=>{e.exports=r(4334)},4221:(e,t,r)=>{"use strict";var a=r(302);var n=r(7579);var i=r(6068);var s=r(1657);var o=r(2399);var p={"Content-Type":"application/x-www-form-urlencoded"};function setContentTypeIfUnset(e,t){if(!a.isUndefined(e)&&a.isUndefined(e["Content-Type"])){e["Content-Type"]=t}}function getDefaultAdapter(){var e;if(typeof XMLHttpRequest!=="undefined"){e=r(3963)}else if(typeof process!=="undefined"&&Object.prototype.toString.call(process)==="[object process]"){e=r(2160)}return e}function stringifySafely(e,t,r){if(a.isString(e)){try{(t||JSON.parse)(e);return a.trim(e)}catch(e){if(e.name!=="SyntaxError"){throw e}}}return(r||JSON.stringify)(e)}var c={transitional:s,adapter:getDefaultAdapter(),transformRequest:[function transformRequest(e,t){n(t,"Accept");n(t,"Content-Type");if(a.isFormData(e)||a.isArrayBuffer(e)||a.isBuffer(e)||a.isStream(e)||a.isFile(e)||a.isBlob(e)){return e}if(a.isArrayBufferView(e)){return e.buffer}if(a.isURLSearchParams(e)){setContentTypeIfUnset(t,"application/x-www-form-urlencoded;charset=utf-8");return e.toString()}var r=a.isObject(e);var i=t&&t["Content-Type"];var s;if((s=a.isFileList(e))||r&&i==="multipart/form-data"){var p=this.env&&this.env.FormData;return o(s?{"files[]":e}:e,p&&new p)}else if(r||i==="application/json"){setContentTypeIfUnset(t,"application/json");return stringifySafely(e)}return e}],transformResponse:[function transformResponse(e){var t=this.transitional||c.transitional;var r=t&&t.silentJSONParsing;var n=t&&t.forcedJSONParsing;var s=!r&&this.responseType==="json";if(s||n&&a.isString(e)&&e.length){try{return JSON.parse(e)}catch(e){if(s){if(e.name==="SyntaxError"){throw i.from(e,i.ERR_BAD_RESPONSE,this,null,this.response)}throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:r(1723)},validateStatus:function validateStatus(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};a.forEach(["delete","get","head"],(function forEachMethodNoData(e){c.headers[e]={}}));a.forEach(["post","put","patch"],(function forEachMethodWithData(e){c.headers[e]=a.merge(p)}));e.exports=c},1657:e=>{"use strict";e.exports={silentJSONParsing:true,forcedJSONParsing:true,clarifyTimeoutError:false}},4741:e=>{e.exports={version:"0.27.2"}},7611:e=>{"use strict";e.exports=function bind(e,t){return function wrap(){var r=new Array(arguments.length);for(var a=0;a{"use strict";var a=r(302);function encode(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}e.exports=function buildURL(e,t,r){if(!t){return e}var n;if(r){n=r(t)}else if(a.isURLSearchParams(t)){n=t.toString()}else{var i=[];a.forEach(t,(function serialize(e,t){if(e===null||typeof e==="undefined"){return}if(a.isArray(e)){t=t+"[]"}else{e=[e]}a.forEach(e,(function parseValue(e){if(a.isDate(e)){e=e.toISOString()}else if(a.isObject(e)){e=JSON.stringify(e)}i.push(encode(t)+"="+encode(e))}))}));n=i.join("&")}if(n){var s=e.indexOf("#");if(s!==-1){e=e.slice(0,s)}e+=(e.indexOf("?")===-1?"?":"&")+n}return e}},1046:e=>{"use strict";e.exports=function combineURLs(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},6296:(e,t,r)=>{"use strict";var a=r(302);e.exports=a.isStandardBrowserEnv()?function standardBrowserEnv(){return{write:function write(e,t,r,n,i,s){var o=[];o.push(e+"="+encodeURIComponent(t));if(a.isNumber(r)){o.push("expires="+new Date(r).toGMTString())}if(a.isString(n)){o.push("path="+n)}if(a.isString(i)){o.push("domain="+i)}if(s===true){o.push("secure")}document.cookie=o.join("; ")},read:function read(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function remove(e){this.write(e,"",Date.now()-864e5)}}}():function nonStandardBrowserEnv(){return{write:function write(){},read:function read(){return null},remove:function remove(){}}}()},9800:e=>{"use strict";e.exports=function isAbsoluteURL(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}},9754:(e,t,r)=>{"use strict";var a=r(302);e.exports=function isAxiosError(e){return a.isObject(e)&&e.isAxiosError===true}},1582:(e,t,r)=>{"use strict";var a=r(302);e.exports=a.isStandardBrowserEnv()?function standardBrowserEnv(){var e=/(msie|trident)/i.test(navigator.userAgent);var t=document.createElement("a");var r;function resolveURL(r){var a=r;if(e){t.setAttribute("href",a);a=t.href}t.setAttribute("href",a);return{href:t.href,protocol:t.protocol?t.protocol.replace(/:$/,""):"",host:t.host,search:t.search?t.search.replace(/^\?/,""):"",hash:t.hash?t.hash.replace(/^#/,""):"",hostname:t.hostname,port:t.port,pathname:t.pathname.charAt(0)==="/"?t.pathname:"/"+t.pathname}}r=resolveURL(window.location.href);return function isURLSameOrigin(e){var t=a.isString(e)?resolveURL(e):e;return t.protocol===r.protocol&&t.host===r.host}}():function nonStandardBrowserEnv(){return function isURLSameOrigin(){return true}}()},7579:(e,t,r)=>{"use strict";var a=r(302);e.exports=function normalizeHeaderName(e,t){a.forEach(e,(function processHeader(r,a){if(a!==t&&a.toUpperCase()===t.toUpperCase()){e[t]=r;delete e[a]}}))}},6584:(e,t,r)=>{"use strict";var a=r(302);var n=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function parseHeaders(e){var t={};var r;var i;var s;if(!e){return t}a.forEach(e.split("\n"),(function parser(e){s=e.indexOf(":");r=a.trim(e.substr(0,s)).toLowerCase();i=a.trim(e.substr(s+1));if(r){if(t[r]&&n.indexOf(r)>=0){return}if(r==="set-cookie"){t[r]=(t[r]?t[r]:[]).concat([i])}else{t[r]=t[r]?t[r]+", "+i:i}}}));return t}},7083:e=>{"use strict";e.exports=function parseProtocol(e){var t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}},1892:e=>{"use strict";e.exports=function spread(e){return function wrap(t){return e.apply(null,t)}}},2399:(e,t,r)=>{"use strict";var a=r(302);function toFormData(e,t){t=t||new FormData;var r=[];function convertValue(e){if(e===null)return"";if(a.isDate(e)){return e.toISOString()}if(a.isArrayBuffer(e)||a.isTypedArray(e)){return typeof Blob==="function"?new Blob([e]):Buffer.from(e)}return e}function build(e,n){if(a.isPlainObject(e)||a.isArray(e)){if(r.indexOf(e)!==-1){throw Error("Circular reference detected in "+n)}r.push(e);a.forEach(e,(function each(e,r){if(a.isUndefined(e))return;var i=n?n+"."+r:r;var s;if(e&&!n&&typeof e==="object"){if(a.endsWith(r,"{}")){e=JSON.stringify(e)}else if(a.endsWith(r,"[]")&&(s=a.toArray(e))){s.forEach((function(e){!a.isUndefined(e)&&t.append(i,convertValue(e))}));return}}build(e,i)}));r.pop()}else{t.append(n,convertValue(e))}}build(e);return t}e.exports=toFormData},8009:(e,t,r)=>{"use strict";var a=r(4741).version;var n=r(6068);var i={};["object","boolean","number","function","string","symbol"].forEach((function(e,t){i[e]=function validator(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}}));var s={};i.transitional=function transitional(e,t,r){function formatMessage(e,t){return"[Axios v"+a+"] Transitional option '"+e+"'"+t+(r?". "+r:"")}return function(r,a,i){if(e===false){throw new n(formatMessage(a," has been removed"+(t?" in "+t:"")),n.ERR_DEPRECATED)}if(t&&!s[a]){s[a]=true;console.warn(formatMessage(a," has been deprecated since v"+t+" and will be removed in the near future"))}return e?e(r,a,i):true}};function assertOptions(e,t,r){if(typeof e!=="object"){throw new n("options must be an object",n.ERR_BAD_OPTION_VALUE)}var a=Object.keys(e);var i=a.length;while(i-- >0){var s=a[i];var o=t[s];if(o){var p=e[s];var c=p===undefined||o(p,s,e);if(c!==true){throw new n("option "+s+" must be "+c,n.ERR_BAD_OPTION_VALUE)}continue}if(r!==true){throw new n("Unknown option "+s,n.ERR_BAD_OPTION)}}}e.exports={assertOptions:assertOptions,validators:i}},302:(e,t,r)=>{"use strict";var a=r(7611);var n=Object.prototype.toString;var i=function(e){return function(t){var r=n.call(t);return e[r]||(e[r]=r.slice(8,-1).toLowerCase())}}(Object.create(null));function kindOfTest(e){e=e.toLowerCase();return function isKindOf(t){return i(t)===e}}function isArray(e){return Array.isArray(e)}function isUndefined(e){return typeof e==="undefined"}function isBuffer(e){return e!==null&&!isUndefined(e)&&e.constructor!==null&&!isUndefined(e.constructor)&&typeof e.constructor.isBuffer==="function"&&e.constructor.isBuffer(e)}var s=kindOfTest("ArrayBuffer");function isArrayBufferView(e){var t;if(typeof ArrayBuffer!=="undefined"&&ArrayBuffer.isView){t=ArrayBuffer.isView(e)}else{t=e&&e.buffer&&s(e.buffer)}return t}function isString(e){return typeof e==="string"}function isNumber(e){return typeof e==="number"}function isObject(e){return e!==null&&typeof e==="object"}function isPlainObject(e){if(i(e)!=="object"){return false}var t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}var o=kindOfTest("Date");var p=kindOfTest("File");var c=kindOfTest("Blob");var l=kindOfTest("FileList");function isFunction(e){return n.call(e)==="[object Function]"}function isStream(e){return isObject(e)&&isFunction(e.pipe)}function isFormData(e){var t="[object FormData]";return e&&(typeof FormData==="function"&&e instanceof FormData||n.call(e)===t||isFunction(e.toString)&&e.toString()===t)}var d=kindOfTest("URLSearchParams");function trim(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function isStandardBrowserEnv(){if(typeof navigator!=="undefined"&&(navigator.product==="ReactNative"||navigator.product==="NativeScript"||navigator.product==="NS")){return false}return typeof window!=="undefined"&&typeof document!=="undefined"}function forEach(e,t){if(e===null||typeof e==="undefined"){return}if(typeof e!=="object"){e=[e]}if(isArray(e)){for(var r=0,a=e.length;r0){i=a[n];if(!s[i]){t[i]=e[i];s[i]=true}}e=Object.getPrototypeOf(e)}while(e&&(!r||r(e,t))&&e!==Object.prototype);return t}function endsWith(e,t,r){e=String(e);if(r===undefined||r>e.length){r=e.length}r-=t.length;var a=e.indexOf(t,r);return a!==-1&&a===r}function toArray(e){if(!e)return null;var t=e.length;if(isUndefined(t))return null;var r=new Array(t);while(t-- >0){r[t]=e[t]}return r}var u=function(e){return function(t){return e&&t instanceof e}}(typeof Uint8Array!=="undefined"&&Object.getPrototypeOf(Uint8Array));e.exports={isArray:isArray,isArrayBuffer:s,isBuffer:isBuffer,isFormData:isFormData,isArrayBufferView:isArrayBufferView,isString:isString,isNumber:isNumber,isObject:isObject,isPlainObject:isPlainObject,isUndefined:isUndefined,isDate:o,isFile:p,isBlob:c,isFunction:isFunction,isStream:isStream,isURLSearchParams:d,isStandardBrowserEnv:isStandardBrowserEnv,forEach:forEach,merge:merge,extend:extend,trim:trim,stripBOM:stripBOM,inherits:inherits,toFlatObject:toFlatObject,kindOf:i,kindOfTest:kindOfTest,endsWith:endsWith,toArray:toArray,isTypedArray:u,isFileList:l}},9263:e=>{"use strict";var t=e.exports=function(e,t,r){if(typeof t=="function"){r=t;t={}}r=t.cb||r;var a=typeof r=="function"?r:r.pre||function(){};var n=r.post||function(){};_traverse(t,a,n,e,"",e)};t.keywords={additionalItems:true,items:true,contains:true,additionalProperties:true,propertyNames:true,not:true,if:true,then:true,else:true};t.arrayKeywords={items:true,allOf:true,anyOf:true,oneOf:true};t.propsKeywords={$defs:true,definitions:true,properties:true,patternProperties:true,dependencies:true};t.skipKeywords={default:true,enum:true,const:true,required:true,maximum:true,minimum:true,exclusiveMaximum:true,exclusiveMinimum:true,multipleOf:true,maxLength:true,minLength:true,pattern:true,format:true,maxItems:true,minItems:true,uniqueItems:true,maxProperties:true,minProperties:true};function _traverse(e,r,a,n,i,s,o,p,c,l){if(n&&typeof n=="object"&&!Array.isArray(n)){r(n,i,s,o,p,c,l);for(var d in n){var u=n[d];if(Array.isArray(u)){if(d in t.arrayKeywords){for(var m=0;m{"use strict";function __export(e){for(var r in e)if(!t.hasOwnProperty(r))t[r]=e[r]}Object.defineProperty(t,"__esModule",{value:true});__export(r(2825))},2825:function(e,t,r){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});const n=r(7147);const i=a(r(8237));const s=i.default("@kwsites/file-exists");function check(e,t,r){s(`checking %s`,e);try{const a=n.statSync(e);if(a.isFile()&&t){s(`[OK] path represents a file`);return true}if(a.isDirectory()&&r){s(`[OK] path represents a directory`);return true}s(`[FAIL] path represents something other than a file or directory`);return false}catch(e){if(e.code==="ENOENT"){s(`[FAIL] path is not accessible: %o`,e);return false}s(`[FATAL] %o`,e);throw e}}function exists(e,r=t.READABLE){return check(e,(r&t.FILE)>0,(r&t.FOLDER)>0)}t.exists=exists;t.FILE=1;t.FOLDER=2;t.READABLE=t.FILE+t.FOLDER},9819:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.createDeferred=t.deferred=void 0;function deferred(){let e;let t;let r="pending";const a=new Promise(((r,a)=>{e=r;t=a}));return{promise:a,done(t){if(r==="pending"){r="resolved";e(t)}},fail(e){if(r==="pending"){r="rejected";t(e)}},get fulfilled(){return r!=="pending"},get status(){return r}}}t.deferred=deferred;t.createDeferred=deferred;t["default"]=deferred},334:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const r=/^v1\./;const a=/^ghs_/;const n=/^ghu_/;async function auth(e){const t=e.split(/\./).length===3;const i=r.test(e)||a.test(e);const s=n.test(e);const o=t?"app":i?"installation":s?"user-to-server":"oauth";return{type:"token",token:e,tokenType:o}}function withAuthorizationPrefix(e){if(e.split(/\./).length===3){return`bearer ${e}`}return`token ${e}`}async function hook(e,t,r,a){const n=t.endpoint.merge(r,a);n.headers.authorization=withAuthorizationPrefix(e);return t(n)}const i=function createTokenAuth(e){if(!e){throw new Error("[@octokit/auth-token] No token passed to createTokenAuth")}if(typeof e!=="string"){throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string")}e=e.replace(/^(token|bearer) +/i,"");return Object.assign(auth.bind(null,e),{hook:hook.bind(null,e)})};t.createTokenAuth=i},9440:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});var a=r(3287);var n=r(5030);function lowercaseKeys(e){if(!e){return{}}return Object.keys(e).reduce(((t,r)=>{t[r.toLowerCase()]=e[r];return t}),{})}function mergeDeep(e,t){const r=Object.assign({},e);Object.keys(t).forEach((n=>{if(a.isPlainObject(t[n])){if(!(n in e))Object.assign(r,{[n]:t[n]});else r[n]=mergeDeep(e[n],t[n])}else{Object.assign(r,{[n]:t[n]})}}));return r}function removeUndefinedProperties(e){for(const t in e){if(e[t]===undefined){delete e[t]}}return e}function merge(e,t,r){if(typeof t==="string"){let[e,a]=t.split(" ");r=Object.assign(a?{method:e,url:a}:{url:e},r)}else{r=Object.assign({},t)}r.headers=lowercaseKeys(r.headers);removeUndefinedProperties(r);removeUndefinedProperties(r.headers);const a=mergeDeep(e||{},r);if(e&&e.mediaType.previews.length){a.mediaType.previews=e.mediaType.previews.filter((e=>!a.mediaType.previews.includes(e))).concat(a.mediaType.previews)}a.mediaType.previews=a.mediaType.previews.map((e=>e.replace(/-preview/,"")));return a}function addQueryParameters(e,t){const r=/\?/.test(e)?"&":"?";const a=Object.keys(t);if(a.length===0){return e}return e+r+a.map((e=>{if(e==="q"){return"q="+t.q.split("+").map(encodeURIComponent).join("+")}return`${e}=${encodeURIComponent(t[e])}`})).join("&")}const i=/\{[^}]+\}/g;function removeNonChars(e){return e.replace(/^\W+|\W+$/g,"").split(/,/)}function extractUrlVariableNames(e){const t=e.match(i);if(!t){return[]}return t.map(removeNonChars).reduce(((e,t)=>e.concat(t)),[])}function omit(e,t){return Object.keys(e).filter((e=>!t.includes(e))).reduce(((t,r)=>{t[r]=e[r];return t}),{})}function encodeReserved(e){return e.split(/(%[0-9A-Fa-f]{2})/g).map((function(e){if(!/%[0-9A-Fa-f]/.test(e)){e=encodeURI(e).replace(/%5B/g,"[").replace(/%5D/g,"]")}return e})).join("")}function encodeUnreserved(e){return encodeURIComponent(e).replace(/[!'()*]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function encodeValue(e,t,r){t=e==="+"||e==="#"?encodeReserved(t):encodeUnreserved(t);if(r){return encodeUnreserved(r)+"="+t}else{return t}}function isDefined(e){return e!==undefined&&e!==null}function isKeyOperator(e){return e===";"||e==="&"||e==="?"}function getValues(e,t,r,a){var n=e[r],i=[];if(isDefined(n)&&n!==""){if(typeof n==="string"||typeof n==="number"||typeof n==="boolean"){n=n.toString();if(a&&a!=="*"){n=n.substring(0,parseInt(a,10))}i.push(encodeValue(t,n,isKeyOperator(t)?r:""))}else{if(a==="*"){if(Array.isArray(n)){n.filter(isDefined).forEach((function(e){i.push(encodeValue(t,e,isKeyOperator(t)?r:""))}))}else{Object.keys(n).forEach((function(e){if(isDefined(n[e])){i.push(encodeValue(t,n[e],e))}}))}}else{const e=[];if(Array.isArray(n)){n.filter(isDefined).forEach((function(r){e.push(encodeValue(t,r))}))}else{Object.keys(n).forEach((function(r){if(isDefined(n[r])){e.push(encodeUnreserved(r));e.push(encodeValue(t,n[r].toString()))}}))}if(isKeyOperator(t)){i.push(encodeUnreserved(r)+"="+e.join(","))}else if(e.length!==0){i.push(e.join(","))}}}}else{if(t===";"){if(isDefined(n)){i.push(encodeUnreserved(r))}}else if(n===""&&(t==="&"||t==="?")){i.push(encodeUnreserved(r)+"=")}else if(n===""){i.push("")}}return i}function parseUrl(e){return{expand:expand.bind(null,e)}}function expand(e,t){var r=["+","#",".","/",";","?","&"];return e.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g,(function(e,a,n){if(a){let e="";const n=[];if(r.indexOf(a.charAt(0))!==-1){e=a.charAt(0);a=a.substr(1)}a.split(/,/g).forEach((function(r){var a=/([^:\*]*)(?::(\d+)|(\*))?/.exec(r);n.push(getValues(t,e,a[1],a[2]||a[3]))}));if(e&&e!=="+"){var i=",";if(e==="?"){i="&"}else if(e!=="#"){i=e}return(n.length!==0?e:"")+n.join(i)}else{return n.join(",")}}else{return encodeReserved(n)}}))}function parse(e){let t=e.method.toUpperCase();let r=(e.url||"/").replace(/:([a-z]\w+)/g,"{$1}");let a=Object.assign({},e.headers);let n;let i=omit(e,["method","baseUrl","url","headers","request","mediaType"]);const s=extractUrlVariableNames(r);r=parseUrl(r).expand(i);if(!/^http/.test(r)){r=e.baseUrl+r}const o=Object.keys(e).filter((e=>s.includes(e))).concat("baseUrl");const p=omit(i,o);const c=/application\/octet-stream/i.test(a.accept);if(!c){if(e.mediaType.format){a.accept=a.accept.split(/,/).map((t=>t.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/,`application/vnd$1$2.${e.mediaType.format}`))).join(",")}if(e.mediaType.previews.length){const t=a.accept.match(/[\w-]+(?=-preview)/g)||[];a.accept=t.concat(e.mediaType.previews).map((t=>{const r=e.mediaType.format?`.${e.mediaType.format}`:"+json";return`application/vnd.github.${t}-preview${r}`})).join(",")}}if(["GET","HEAD"].includes(t)){r=addQueryParameters(r,p)}else{if("data"in p){n=p.data}else{if(Object.keys(p).length){n=p}else{a["content-length"]=0}}}if(!a["content-type"]&&typeof n!=="undefined"){a["content-type"]="application/json; charset=utf-8"}if(["PATCH","PUT"].includes(t)&&typeof n==="undefined"){n=""}return Object.assign({method:t,url:r,headers:a},typeof n!=="undefined"?{body:n}:null,e.request?{request:e.request}:null)}function endpointWithDefaults(e,t,r){return parse(merge(e,t,r))}function withDefaults(e,t){const r=merge(e,t);const a=endpointWithDefaults.bind(null,r);return Object.assign(a,{DEFAULTS:r,defaults:withDefaults.bind(null,r),merge:merge.bind(null,r),parse:parse})}const s="6.0.12";const o=`octokit-endpoint.js/${s} ${n.getUserAgent()}`;const p={method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":o},mediaType:{format:"",previews:[]}};const c=withDefaults(null,p);t.endpoint=c},8467:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});var a=r(6234);var n=r(5030);const i="4.8.0";function _buildMessageForResponseErrors(e){return`Request failed due to following response errors:\n`+e.errors.map((e=>` - ${e.message}`)).join("\n")}class GraphqlResponseError extends Error{constructor(e,t,r){super(_buildMessageForResponseErrors(r));this.request=e;this.headers=t;this.response=r;this.name="GraphqlResponseError";this.errors=r.errors;this.data=r.data;if(Error.captureStackTrace){Error.captureStackTrace(this,this.constructor)}}}const s=["method","baseUrl","url","headers","request","query","mediaType"];const o=["query","method","url"];const p=/\/api\/v3\/?$/;function graphql(e,t,r){if(r){if(typeof t==="string"&&"query"in r){return Promise.reject(new Error(`[@octokit/graphql] "query" cannot be used as variable name`))}for(const e in r){if(!o.includes(e))continue;return Promise.reject(new Error(`[@octokit/graphql] "${e}" cannot be used as variable name`))}}const a=typeof t==="string"?Object.assign({query:t},r):t;const n=Object.keys(a).reduce(((e,t)=>{if(s.includes(t)){e[t]=a[t];return e}if(!e.variables){e.variables={}}e.variables[t]=a[t];return e}),{});const i=a.baseUrl||e.endpoint.DEFAULTS.baseUrl;if(p.test(i)){n.url=i.replace(p,"/api/graphql")}return e(n).then((e=>{if(e.data.errors){const t={};for(const r of Object.keys(e.headers)){t[r]=e.headers[r]}throw new GraphqlResponseError(n,t,e.data)}return e.data.data}))}function withDefaults(e,t){const r=e.defaults(t);const newApi=(e,t)=>graphql(r,e,t);return Object.assign(newApi,{defaults:withDefaults.bind(null,r),endpoint:a.request.endpoint})}const c=withDefaults(a.request,{headers:{"user-agent":`octokit-graphql.js/${i} ${n.getUserAgent()}`},method:"POST",url:"/graphql"});function withCustomRequest(e){return withDefaults(e,{method:"POST",url:"/graphql"})}t.GraphqlResponseError=GraphqlResponseError;t.graphql=c;t.withCustomRequest=withCustomRequest},8883:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const r="1.0.4";function requestLog(e){e.hook.wrap("request",((t,r)=>{e.log.debug("request",r);const a=Date.now();const n=e.request.endpoint.parse(r);const i=n.url.replace(r.baseUrl,"");return t(r).then((t=>{e.log.info(`${n.method} ${i} - ${t.status} in ${Date.now()-a}ms`);return t})).catch((t=>{e.log.info(`${n.method} ${i} - ${t.status} in ${Date.now()-a}ms`);throw t}))}))}requestLog.VERSION=r;t.requestLog=requestLog},9968:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});function _interopDefault(e){return e&&typeof e==="object"&&"default"in e?e["default"]:e}var a=_interopDefault(r(1174));const n="5.0.1";const noop=()=>Promise.resolve();function wrapRequest(e,t,r){return e.retryLimiter.schedule(doRequest,e,t,r)}async function doRequest(e,t,r){const a=r.method!=="GET"&&r.method!=="HEAD";const{pathname:n}=new URL(r.url,"http://github.test");const i=r.method==="GET"&&n.startsWith("/search/");const s=n.startsWith("/graphql");const o=~~t.retryCount;const p=o>0?{priority:0,weight:0}:{};if(e.clustering){p.expiration=1e3*60}if(a||s){await e.write.key(e.id).schedule(p,noop)}if(a&&e.triggersNotification(n)){await e.notifications.key(e.id).schedule(p,noop)}if(i){await e.search.key(e.id).schedule(p,noop)}const c=e.global.key(e.id).schedule(p,t,r);if(s){const e=await c;if(e.data.errors!=null&&e.data.errors.some((e=>e.type==="RATE_LIMITED"))){const t=Object.assign(new Error("GraphQL Rate Limit Exceeded"),{response:e,data:e.data});throw t}}return c}var i=["/orgs/{org}/invitations","/orgs/{org}/invitations/{invitation_id}","/orgs/{org}/teams/{team_slug}/discussions","/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments","/repos/{owner}/{repo}/collaborators/{username}","/repos/{owner}/{repo}/commits/{commit_sha}/comments","/repos/{owner}/{repo}/issues","/repos/{owner}/{repo}/issues/{issue_number}/comments","/repos/{owner}/{repo}/pulls","/repos/{owner}/{repo}/pulls/{pull_number}/comments","/repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies","/repos/{owner}/{repo}/pulls/{pull_number}/merge","/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers","/repos/{owner}/{repo}/pulls/{pull_number}/reviews","/repos/{owner}/{repo}/releases","/teams/{team_id}/discussions","/teams/{team_id}/discussions/{discussion_number}/comments"];function routeMatcher(e){const t=e.map((e=>e.split("/").map((e=>e.startsWith("{")?"(?:.+?)":e)).join("/")));const r=`^(?:${t.map((e=>`(?:${e})`)).join("|")})[^/]*$`;return new RegExp(r,"i")}const s=routeMatcher(i);const o=s.test.bind(s);const p={};const createGroups=function(e,t){p.global=new e.Group({id:"octokit-global",maxConcurrent:10,...t});p.search=new e.Group({id:"octokit-search",maxConcurrent:1,minTime:2e3,...t});p.write=new e.Group({id:"octokit-write",maxConcurrent:1,minTime:1e3,...t});p.notifications=new e.Group({id:"octokit-notifications",maxConcurrent:1,minTime:3e3,...t})};function throttling(e,t){const{enabled:r=true,Bottleneck:n=a,id:i="no-id",timeout:s=1e3*60*2,connection:c}=t.throttle||{};if(!r){return{}}const l={connection:c,timeout:s};if(p.global==null){createGroups(n,l)}const d=Object.assign({clustering:c!=null,triggersNotification:o,minimumSecondaryRateRetryAfter:5,retryAfterBaseValue:1e3,retryLimiter:new n,id:i,...p},t.throttle);const u=typeof d.onAbuseLimit==="function"&&d.onAbuseLimit;if(typeof(u?d.onAbuseLimit:d.onSecondaryRateLimit)!=="function"||typeof d.onRateLimit!=="function"){throw new Error(`octokit/plugin-throttling error:\n You must pass the onSecondaryRateLimit and onRateLimit error handlers.\n See https://octokit.github.io/rest.js/#throttling\n\n const octokit = new Octokit({\n throttle: {\n onSecondaryRateLimit: (retryAfter, options) => {/* ... */},\n onRateLimit: (retryAfter, options) => {/* ... */}\n }\n })\n `)}const m={};const h=new n.Events(m);m.on("secondary-limit",u?function(...t){e.log.warn("[@octokit/plugin-throttling] `onAbuseLimit()` is deprecated and will be removed in a future release of `@octokit/plugin-throttling`, please use the `onSecondaryRateLimit` handler instead");return d.onAbuseLimit(...t)}:d.onSecondaryRateLimit);m.on("rate-limit",d.onRateLimit);m.on("error",(t=>e.log.warn("Error in throttling-plugin limit handler",t)));d.retryLimiter.on("failed",(async function(t,r){const[a,n,i]=r.args;const{pathname:s}=new URL(i.url,"http://github.test");const o=s.startsWith("/graphql")&&t.status!==401;if(!(o||t.status===403)){return}const p=~~n.retryCount;n.retryCount=p;i.request.retryCount=p;const{wantRetry:c,retryAfter:l=0}=await async function(){if(/\bsecondary rate\b/i.test(t.message)){const r=Math.max(~~t.response.headers["retry-after"],a.minimumSecondaryRateRetryAfter);const n=await h.trigger("secondary-limit",r,i,e,p);return{wantRetry:n,retryAfter:r}}if(t.response.headers!=null&&t.response.headers["x-ratelimit-remaining"]==="0"){const r=new Date(~~t.response.headers["x-ratelimit-reset"]*1e3).getTime();const a=Math.max(Math.ceil((r-Date.now())/1e3),0);const n=await h.trigger("rate-limit",a,i,e,p);return{wantRetry:n,retryAfter:a}}return{}}();if(c){n.retryCount++;return l*a.retryAfterBaseValue}}));e.hook.wrap("request",wrapRequest.bind(null,d));return{}}throttling.VERSION=n;throttling.triggersNotification=o;t.throttling=throttling},537:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});function _interopDefault(e){return e&&typeof e==="object"&&"default"in e?e["default"]:e}var a=r(8932);var n=_interopDefault(r(1223));const i=n((e=>console.warn(e)));const s=n((e=>console.warn(e)));class RequestError extends Error{constructor(e,t,r){super(e);if(Error.captureStackTrace){Error.captureStackTrace(this,this.constructor)}this.name="HttpError";this.status=t;let n;if("headers"in r&&typeof r.headers!=="undefined"){n=r.headers}if("response"in r){this.response=r.response;n=r.response.headers}const o=Object.assign({},r.request);if(r.request.headers.authorization){o.headers=Object.assign({},r.request.headers,{authorization:r.request.headers.authorization.replace(/ .*$/," [REDACTED]")})}o.url=o.url.replace(/\bclient_secret=\w+/g,"client_secret=[REDACTED]").replace(/\baccess_token=\w+/g,"access_token=[REDACTED]");this.request=o;Object.defineProperty(this,"code",{get(){i(new a.Deprecation("[@octokit/request-error] `error.code` is deprecated, use `error.status`."));return t}});Object.defineProperty(this,"headers",{get(){s(new a.Deprecation("[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`."));return n||{}}})}}t.RequestError=RequestError},6234:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});function _interopDefault(e){return e&&typeof e==="object"&&"default"in e?e["default"]:e}var a=r(9440);var n=r(5030);var i=r(3287);var s=_interopDefault(r(467));var o=r(537);const p="5.6.3";function getBufferResponse(e){return e.arrayBuffer()}function fetchWrapper(e){const t=e.request&&e.request.log?e.request.log:console;if(i.isPlainObject(e.body)||Array.isArray(e.body)){e.body=JSON.stringify(e.body)}let r={};let a;let n;const p=e.request&&e.request.fetch||s;return p(e.url,Object.assign({method:e.method,body:e.body,headers:e.headers,redirect:e.redirect},e.request)).then((async i=>{n=i.url;a=i.status;for(const e of i.headers){r[e[0]]=e[1]}if("deprecation"in r){const a=r.link&&r.link.match(/<([^>]+)>; rel="deprecation"/);const n=a&&a.pop();t.warn(`[@octokit/request] "${e.method} ${e.url}" is deprecated. It is scheduled to be removed on ${r.sunset}${n?`. See ${n}`:""}`)}if(a===204||a===205){return}if(e.method==="HEAD"){if(a<400){return}throw new o.RequestError(i.statusText,a,{response:{url:n,status:a,headers:r,data:undefined},request:e})}if(a===304){throw new o.RequestError("Not modified",a,{response:{url:n,status:a,headers:r,data:await getResponseData(i)},request:e})}if(a>=400){const t=await getResponseData(i);const s=new o.RequestError(toErrorMessage(t),a,{response:{url:n,status:a,headers:r,data:t},request:e});throw s}return getResponseData(i)})).then((e=>({status:a,url:n,headers:r,data:e}))).catch((t=>{if(t instanceof o.RequestError)throw t;throw new o.RequestError(t.message,500,{request:e})}))}async function getResponseData(e){const t=e.headers.get("content-type");if(/application\/json/.test(t)){return e.json()}if(!t||/^text\/|charset=utf-8$/.test(t)){return e.text()}return getBufferResponse(e)}function toErrorMessage(e){if(typeof e==="string")return e;if("message"in e){if(Array.isArray(e.errors)){return`${e.message}: ${e.errors.map(JSON.stringify).join(", ")}`}return e.message}return`Unknown error: ${JSON.stringify(e)}`}function withDefaults(e,t){const r=e.defaults(t);const newApi=function(e,t){const a=r.merge(e,t);if(!a.request||!a.request.hook){return fetchWrapper(r.parse(a))}const request=(e,t)=>fetchWrapper(r.parse(r.merge(e,t)));Object.assign(request,{endpoint:r,defaults:withDefaults.bind(null,r)});return a.request.hook(request,a)};return Object.assign(newApi,{endpoint:r,defaults:withDefaults.bind(null,r)})}const c=withDefaults(a.endpoint,{headers:{"user-agent":`octokit-request.js/${p} ${n.getUserAgent()}`}});t.request=c},5375:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});var a=r(4952);var n=r(8883);var i=r(606);var s=r(4923);const o="18.12.0";const p=a.Octokit.plugin(n.requestLog,s.legacyRestEndpointMethods,i.paginateRest).defaults({userAgent:`octokit-rest.js/${o}`});t.Octokit=p},4952:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});var a=r(5030);var n=r(3682);var i=r(6234);var s=r(8467);var o=r(334);function _objectWithoutPropertiesLoose(e,t){if(e==null)return{};var r={};var a=Object.keys(e);var n,i;for(i=0;i=0)continue;r[n]=e[n]}return r}function _objectWithoutProperties(e,t){if(e==null)return{};var r=_objectWithoutPropertiesLoose(e,t);var a,n;if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0)continue;if(!Object.prototype.propertyIsEnumerable.call(e,a))continue;r[a]=e[a]}}return r}const p="3.6.0";const c=["authStrategy"];class Octokit{constructor(e={}){const t=new n.Collection;const r={baseUrl:i.request.endpoint.DEFAULTS.baseUrl,headers:{},request:Object.assign({},e.request,{hook:t.bind(null,"request")}),mediaType:{previews:[],format:""}};r.headers["user-agent"]=[e.userAgent,`octokit-core.js/${p} ${a.getUserAgent()}`].filter(Boolean).join(" ");if(e.baseUrl){r.baseUrl=e.baseUrl}if(e.previews){r.mediaType.previews=e.previews}if(e.timeZone){r.headers["time-zone"]=e.timeZone}this.request=i.request.defaults(r);this.graphql=s.withCustomRequest(this.request).defaults(r);this.log=Object.assign({debug:()=>{},info:()=>{},warn:console.warn.bind(console),error:console.error.bind(console)},e.log);this.hook=t;if(!e.authStrategy){if(!e.auth){this.auth=async()=>({type:"unauthenticated"})}else{const r=o.createTokenAuth(e.auth);t.wrap("request",r.hook);this.auth=r}}else{const{authStrategy:r}=e,a=_objectWithoutProperties(e,c);const n=r(Object.assign({request:this.request,log:this.log,octokit:this,octokitOptions:a},e.auth));t.wrap("request",n.hook);this.auth=n}const l=this.constructor;l.plugins.forEach((t=>{Object.assign(this,t(this,e))}))}static defaults(e){const t=class extends(this){constructor(...t){const r=t[0]||{};if(typeof e==="function"){super(e(r));return}super(Object.assign({},e,r,r.userAgent&&e.userAgent?{userAgent:`${r.userAgent} ${e.userAgent}`}:null))}};return t}static plugin(...e){var t;const r=this.plugins;const a=(t=class extends(this){},t.plugins=r.concat(e.filter((e=>!r.includes(e)))),t);return a}}Octokit.VERSION=p;Octokit.plugins=[];t.Octokit=Octokit},606:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});const r="2.21.3";function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function _objectSpread2(e){for(var t=1;t({async next(){if(!o)return{done:true};try{const e=await n({method:i,url:o,headers:s});const t=normalizePaginatedListResponse(e);o=((t.headers.link||"").match(/<([^>]+)>;\s*rel="next"/)||[])[1];return{value:t}}catch(e){if(e.status!==409)throw e;o="";return{value:{status:200,headers:{},data:[]}}}}})}}function paginate(e,t,r,a){if(typeof r==="function"){a=r;r=undefined}return gather(e,[],iterator(e,t,r)[Symbol.asyncIterator](),a)}function gather(e,t,r,a){return r.next().then((n=>{if(n.done){return t}let i=false;function done(){i=true}t=t.concat(a?a(n.value,done):n.value.data);if(i){return t}return gather(e,t,r,a)}))}const a=Object.assign(paginate,{iterator:iterator});const n=["GET /app/hook/deliveries","GET /app/installations","GET /applications/grants","GET /authorizations","GET /enterprises/{enterprise}/actions/permissions/organizations","GET /enterprises/{enterprise}/actions/runner-groups","GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations","GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners","GET /enterprises/{enterprise}/actions/runners","GET /enterprises/{enterprise}/audit-log","GET /enterprises/{enterprise}/secret-scanning/alerts","GET /enterprises/{enterprise}/settings/billing/advanced-security","GET /events","GET /gists","GET /gists/public","GET /gists/starred","GET /gists/{gist_id}/comments","GET /gists/{gist_id}/commits","GET /gists/{gist_id}/forks","GET /installation/repositories","GET /issues","GET /licenses","GET /marketplace_listing/plans","GET /marketplace_listing/plans/{plan_id}/accounts","GET /marketplace_listing/stubbed/plans","GET /marketplace_listing/stubbed/plans/{plan_id}/accounts","GET /networks/{owner}/{repo}/events","GET /notifications","GET /organizations","GET /orgs/{org}/actions/cache/usage-by-repository","GET /orgs/{org}/actions/permissions/repositories","GET /orgs/{org}/actions/runner-groups","GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories","GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners","GET /orgs/{org}/actions/runners","GET /orgs/{org}/actions/secrets","GET /orgs/{org}/actions/secrets/{secret_name}/repositories","GET /orgs/{org}/audit-log","GET /orgs/{org}/blocks","GET /orgs/{org}/code-scanning/alerts","GET /orgs/{org}/codespaces","GET /orgs/{org}/credential-authorizations","GET /orgs/{org}/dependabot/secrets","GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories","GET /orgs/{org}/events","GET /orgs/{org}/external-groups","GET /orgs/{org}/failed_invitations","GET /orgs/{org}/hooks","GET /orgs/{org}/hooks/{hook_id}/deliveries","GET /orgs/{org}/installations","GET /orgs/{org}/invitations","GET /orgs/{org}/invitations/{invitation_id}/teams","GET /orgs/{org}/issues","GET /orgs/{org}/members","GET /orgs/{org}/migrations","GET /orgs/{org}/migrations/{migration_id}/repositories","GET /orgs/{org}/outside_collaborators","GET /orgs/{org}/packages","GET /orgs/{org}/packages/{package_type}/{package_name}/versions","GET /orgs/{org}/projects","GET /orgs/{org}/public_members","GET /orgs/{org}/repos","GET /orgs/{org}/secret-scanning/alerts","GET /orgs/{org}/settings/billing/advanced-security","GET /orgs/{org}/team-sync/groups","GET /orgs/{org}/teams","GET /orgs/{org}/teams/{team_slug}/discussions","GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments","GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions","GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions","GET /orgs/{org}/teams/{team_slug}/invitations","GET /orgs/{org}/teams/{team_slug}/members","GET /orgs/{org}/teams/{team_slug}/projects","GET /orgs/{org}/teams/{team_slug}/repos","GET /orgs/{org}/teams/{team_slug}/teams","GET /projects/columns/{column_id}/cards","GET /projects/{project_id}/collaborators","GET /projects/{project_id}/columns","GET /repos/{owner}/{repo}/actions/artifacts","GET /repos/{owner}/{repo}/actions/caches","GET /repos/{owner}/{repo}/actions/runners","GET /repos/{owner}/{repo}/actions/runs","GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts","GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs","GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs","GET /repos/{owner}/{repo}/actions/secrets","GET /repos/{owner}/{repo}/actions/workflows","GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs","GET /repos/{owner}/{repo}/assignees","GET /repos/{owner}/{repo}/branches","GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations","GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs","GET /repos/{owner}/{repo}/code-scanning/alerts","GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances","GET /repos/{owner}/{repo}/code-scanning/analyses","GET /repos/{owner}/{repo}/codespaces","GET /repos/{owner}/{repo}/codespaces/devcontainers","GET /repos/{owner}/{repo}/codespaces/secrets","GET /repos/{owner}/{repo}/collaborators","GET /repos/{owner}/{repo}/comments","GET /repos/{owner}/{repo}/comments/{comment_id}/reactions","GET /repos/{owner}/{repo}/commits","GET /repos/{owner}/{repo}/commits/{commit_sha}/comments","GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls","GET /repos/{owner}/{repo}/commits/{ref}/check-runs","GET /repos/{owner}/{repo}/commits/{ref}/check-suites","GET /repos/{owner}/{repo}/commits/{ref}/status","GET /repos/{owner}/{repo}/commits/{ref}/statuses","GET /repos/{owner}/{repo}/contributors","GET /repos/{owner}/{repo}/dependabot/secrets","GET /repos/{owner}/{repo}/deployments","GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses","GET /repos/{owner}/{repo}/environments","GET /repos/{owner}/{repo}/events","GET /repos/{owner}/{repo}/forks","GET /repos/{owner}/{repo}/git/matching-refs/{ref}","GET /repos/{owner}/{repo}/hooks","GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries","GET /repos/{owner}/{repo}/invitations","GET /repos/{owner}/{repo}/issues","GET /repos/{owner}/{repo}/issues/comments","GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions","GET /repos/{owner}/{repo}/issues/events","GET /repos/{owner}/{repo}/issues/{issue_number}/comments","GET /repos/{owner}/{repo}/issues/{issue_number}/events","GET /repos/{owner}/{repo}/issues/{issue_number}/labels","GET /repos/{owner}/{repo}/issues/{issue_number}/reactions","GET /repos/{owner}/{repo}/issues/{issue_number}/timeline","GET /repos/{owner}/{repo}/keys","GET /repos/{owner}/{repo}/labels","GET /repos/{owner}/{repo}/milestones","GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels","GET /repos/{owner}/{repo}/notifications","GET /repos/{owner}/{repo}/pages/builds","GET /repos/{owner}/{repo}/projects","GET /repos/{owner}/{repo}/pulls","GET /repos/{owner}/{repo}/pulls/comments","GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions","GET /repos/{owner}/{repo}/pulls/{pull_number}/comments","GET /repos/{owner}/{repo}/pulls/{pull_number}/commits","GET /repos/{owner}/{repo}/pulls/{pull_number}/files","GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers","GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews","GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments","GET /repos/{owner}/{repo}/releases","GET /repos/{owner}/{repo}/releases/{release_id}/assets","GET /repos/{owner}/{repo}/releases/{release_id}/reactions","GET /repos/{owner}/{repo}/secret-scanning/alerts","GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations","GET /repos/{owner}/{repo}/stargazers","GET /repos/{owner}/{repo}/subscribers","GET /repos/{owner}/{repo}/tags","GET /repos/{owner}/{repo}/teams","GET /repos/{owner}/{repo}/topics","GET /repositories","GET /repositories/{repository_id}/environments/{environment_name}/secrets","GET /search/code","GET /search/commits","GET /search/issues","GET /search/labels","GET /search/repositories","GET /search/topics","GET /search/users","GET /teams/{team_id}/discussions","GET /teams/{team_id}/discussions/{discussion_number}/comments","GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions","GET /teams/{team_id}/discussions/{discussion_number}/reactions","GET /teams/{team_id}/invitations","GET /teams/{team_id}/members","GET /teams/{team_id}/projects","GET /teams/{team_id}/repos","GET /teams/{team_id}/teams","GET /user/blocks","GET /user/codespaces","GET /user/codespaces/secrets","GET /user/emails","GET /user/followers","GET /user/following","GET /user/gpg_keys","GET /user/installations","GET /user/installations/{installation_id}/repositories","GET /user/issues","GET /user/keys","GET /user/marketplace_purchases","GET /user/marketplace_purchases/stubbed","GET /user/memberships/orgs","GET /user/migrations","GET /user/migrations/{migration_id}/repositories","GET /user/orgs","GET /user/packages","GET /user/packages/{package_type}/{package_name}/versions","GET /user/public_emails","GET /user/repos","GET /user/repository_invitations","GET /user/starred","GET /user/subscriptions","GET /user/teams","GET /users","GET /users/{username}/events","GET /users/{username}/events/orgs/{org}","GET /users/{username}/events/public","GET /users/{username}/followers","GET /users/{username}/following","GET /users/{username}/gists","GET /users/{username}/gpg_keys","GET /users/{username}/keys","GET /users/{username}/orgs","GET /users/{username}/packages","GET /users/{username}/projects","GET /users/{username}/received_events","GET /users/{username}/received_events/public","GET /users/{username}/repos","GET /users/{username}/starred","GET /users/{username}/subscriptions"];function isPaginatingEndpoint(e){if(typeof e==="string"){return n.includes(e)}else{return false}}function paginateRest(e){return{paginate:Object.assign(paginate.bind(null,e),{iterator:iterator.bind(null,e)})}}paginateRest.VERSION=r;t.composePaginateRest=a;t.isPaginatingEndpoint=isPaginatingEndpoint;t.paginateRest=paginateRest;t.paginatingEndpoints=n},4923:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);if(t){a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))}r.push.apply(r,a)}return r}function _objectSpread2(e){for(var t=1;t{a.once("response",e).once("error",t).end()}));a.then=n.then.bind(n);return a}t.req=req},694:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var n=Object.getOwnPropertyDescriptor(t,r);if(!n||("get"in n?!t.__esModule:n.writable||n.configurable)){n={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,n)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);n(t,e);return t};var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))a(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});t.Agent=void 0;const o=i(r(3685));s(r(8348),t);const p=Symbol("AgentBaseInternalState");class Agent extends o.Agent{constructor(e){super(e);this[p]={}}isSecureEndpoint(e){if(e){if(typeof e.secureEndpoint==="boolean"){return e.secureEndpoint}if(typeof e.protocol==="string"){return e.protocol==="https:"}}const{stack:t}=new Error;if(typeof t!=="string")return false;return t.split("\n").some((e=>e.indexOf("(https.js:")!==-1||e.indexOf("node:https:")!==-1))}createSocket(e,t,r){const a={...t,secureEndpoint:this.isSecureEndpoint(t)};Promise.resolve().then((()=>this.connect(e,a))).then((n=>{if(n instanceof o.Agent){return n.addRequest(e,a)}this[p].currentSocket=n;super.createSocket(e,t,r)}),r)}createConnection(){const e=this[p].currentSocket;this[p].currentSocket=undefined;if(!e){throw new Error("No socket was returned in the `connect()` function")}return e}get defaultPort(){return this[p].defaultPort??(this.protocol==="https:"?443:80)}set defaultPort(e){if(this[p]){this[p].defaultPort=e}}get protocol(){return this[p].protocol??(this.isSecureEndpoint()?"https:":"http:")}set protocol(e){if(this[p]){this[p].protocol=e}}}t.Agent=Agent},4812:(e,t,r)=>{e.exports={parallel:r(8210),serial:r(445),serialOrdered:r(3578)}},1700:e=>{e.exports=abort;function abort(e){Object.keys(e.jobs).forEach(clean.bind(e));e.jobs={}}function clean(e){if(typeof this.jobs[e]=="function"){this.jobs[e]()}}},2794:(e,t,r)=>{var a=r(5295);e.exports=async;function async(e){var t=false;a((function(){t=true}));return function async_callback(r,n){if(t){e(r,n)}else{a((function nextTick_callback(){e(r,n)}))}}}},5295:e=>{e.exports=defer;function defer(e){var t=typeof setImmediate=="function"?setImmediate:typeof process=="object"&&typeof process.nextTick=="function"?process.nextTick:null;if(t){t(e)}else{setTimeout(e,0)}}},9023:(e,t,r)=>{var a=r(2794),n=r(1700);e.exports=iterate;function iterate(e,t,r,a){var i=r["keyedList"]?r["keyedList"][r.index]:r.index;r.jobs[i]=runJob(t,i,e[i],(function(e,t){if(!(i in r.jobs)){return}delete r.jobs[i];if(e){n(r)}else{r.results[i]=t}a(e,r.results)}))}function runJob(e,t,r,n){var i;if(e.length==2){i=e(r,a(n))}else{i=e(r,t,a(n))}return i}},2474:e=>{e.exports=state;function state(e,t){var r=!Array.isArray(e),a={index:0,keyedList:r||t?Object.keys(e):null,jobs:{},results:r?{}:[],size:r?Object.keys(e).length:e.length};if(t){a.keyedList.sort(r?t:function(r,a){return t(e[r],e[a])})}return a}},7942:(e,t,r)=>{var a=r(1700),n=r(2794);e.exports=terminator;function terminator(e){if(!Object.keys(this.jobs).length){return}this.index=this.size;a(this);n(e)(null,this.results)}},8210:(e,t,r)=>{var a=r(9023),n=r(2474),i=r(7942);e.exports=parallel;function parallel(e,t,r){var s=n(e);while(s.index<(s["keyedList"]||e).length){a(e,t,s,(function(e,t){if(e){r(e,t);return}if(Object.keys(s.jobs).length===0){r(null,s.results);return}}));s.index++}return i.bind(s,r)}},445:(e,t,r)=>{var a=r(3578);e.exports=serial;function serial(e,t,r){return a(e,t,null,r)}},3578:(e,t,r)=>{var a=r(9023),n=r(2474),i=r(7942);e.exports=serialOrdered;e.exports.ascending=ascending;e.exports.descending=descending;function serialOrdered(e,t,r,s){var o=n(e,r);a(e,t,o,(function iteratorHandler(r,n){if(r){s(r,n);return}o.index++;if(o.index<(o["keyedList"]||e).length){a(e,t,o,iteratorHandler);return}s(null,o.results)}));return i.bind(o,s)}function ascending(e,t){return et?1:0}function descending(e,t){return-1*ascending(e,t)}},9417:e=>{"use strict";e.exports=balanced;function balanced(e,t,r){if(e instanceof RegExp)e=maybeMatch(e,r);if(t instanceof RegExp)t=maybeMatch(t,r);var a=range(e,t,r);return a&&{start:a[0],end:a[1],pre:r.slice(0,a[0]),body:r.slice(a[0]+e.length,a[1]),post:r.slice(a[1]+t.length)}}function maybeMatch(e,t){var r=t.match(e);return r?r[0]:null}balanced.range=range;function range(e,t,r){var a,n,i,s,o;var p=r.indexOf(e);var c=r.indexOf(t,p+1);var l=p;if(p>=0&&c>0){if(e===t){return[p,c]}a=[];i=r.length;while(l>=0&&!o){if(l==p){a.push(l);p=r.indexOf(e,l+1)}else if(a.length==1){o=[a.pop(),c]}else{n=a.pop();if(n=0?p:c}if(a.length){o=[i,s]}}return o}},3682:(e,t,r)=>{var a=r(4670);var n=r(5549);var i=r(6819);var s=Function.bind;var o=s.bind(s);function bindApi(e,t,r){var a=o(i,null).apply(null,r?[t,r]:[t]);e.api={remove:a};e.remove=a;["before","error","after","wrap"].forEach((function(a){var i=r?[t,a,r]:[t,a];e[a]=e.api[a]=o(n,null).apply(null,i)}))}function HookSingular(){var e="h";var t={registry:{}};var r=a.bind(null,t,e);bindApi(r,t,e);return r}function HookCollection(){var e={registry:{}};var t=a.bind(null,e);bindApi(t,e);return t}var p=false;function Hook(){if(!p){console.warn('[before-after-hook]: "Hook()" repurposing warning, use "Hook.Collection()". Read more: https://git.io/upgrade-before-after-hook-to-1.4');p=true}return HookCollection()}Hook.Singular=HookSingular.bind();Hook.Collection=HookCollection.bind();e.exports=Hook;e.exports.Hook=Hook;e.exports.Singular=Hook.Singular;e.exports.Collection=Hook.Collection},5549:e=>{e.exports=addHook;function addHook(e,t,r,a){var n=a;if(!e.registry[r]){e.registry[r]=[]}if(t==="before"){a=function(e,t){return Promise.resolve().then(n.bind(null,t)).then(e.bind(null,t))}}if(t==="after"){a=function(e,t){var r;return Promise.resolve().then(e.bind(null,t)).then((function(e){r=e;return n(r,t)})).then((function(){return r}))}}if(t==="error"){a=function(e,t){return Promise.resolve().then(e.bind(null,t)).catch((function(e){return n(e,t)}))}}e.registry[r].push({hook:a,orig:n})}},4670:e=>{e.exports=register;function register(e,t,r,a){if(typeof r!=="function"){throw new Error("method for before hook must be a function")}if(!a){a={}}if(Array.isArray(t)){return t.reverse().reduce((function(t,r){return register.bind(null,e,r,t,a)}),r)()}return Promise.resolve().then((function(){if(!e.registry[t]){return r(a)}return e.registry[t].reduce((function(e,t){return t.hook.bind(null,e,a)}),r)()}))}},6819:e=>{e.exports=removeHook;function removeHook(e,t,r){if(!e.registry[t]){return}var a=e.registry[t].map((function(e){return e.orig})).indexOf(r);if(a===-1){return}e.registry[t].splice(a,1)}},1174:function(e){(function(t,r){true?e.exports=r():0})(this,(function(){"use strict";var e=typeof globalThis!=="undefined"?globalThis:typeof window!=="undefined"?window:typeof global!=="undefined"?global:typeof self!=="undefined"?self:{};function getCjsExportFromNamespace(e){return e&&e["default"]||e}var load=function(e,t,r={}){var a,n,i;for(a in t){i=t[a];r[a]=(n=e[a])!=null?n:i}return r};var overwrite=function(e,t,r={}){var a,n;for(a in e){n=e[a];if(t[a]!==void 0){r[a]=n}}return r};var t={load:load,overwrite:overwrite};var r;r=class DLList{constructor(e,t){this.incr=e;this.decr=t;this._first=null;this._last=null;this.length=0}push(e){var t;this.length++;if(typeof this.incr==="function"){this.incr()}t={value:e,prev:this._last,next:null};if(this._last!=null){this._last.next=t;this._last=t}else{this._first=this._last=t}return void 0}shift(){var e;if(this._first==null){return}else{this.length--;if(typeof this.decr==="function"){this.decr()}}e=this._first.value;if((this._first=this._first.next)!=null){this._first.prev=null}else{this._last=null}return e}first(){if(this._first!=null){return this._first.value}}getArray(){var e,t,r;e=this._first;r=[];while(e!=null){r.push((t=e,e=e.next,t.value))}return r}forEachShift(e){var t;t=this.shift();while(t!=null){e(t),t=this.shift()}return void 0}debug(){var e,t,r,a,n;e=this._first;n=[];while(e!=null){n.push((t=e,e=e.next,{value:t.value,prev:(r=t.prev)!=null?r.value:void 0,next:(a=t.next)!=null?a.value:void 0}))}return n}};var a=r;var n;n=class Events{constructor(e){this.instance=e;this._events={};if(this.instance.on!=null||this.instance.once!=null||this.instance.removeAllListeners!=null){throw new Error("An Emitter already exists for this object")}this.instance.on=(e,t)=>this._addListener(e,"many",t);this.instance.once=(e,t)=>this._addListener(e,"once",t);this.instance.removeAllListeners=(e=null)=>{if(e!=null){return delete this._events[e]}else{return this._events={}}}}_addListener(e,t,r){var a;if((a=this._events)[e]==null){a[e]=[]}this._events[e].push({cb:r,status:t});return this.instance}listenerCount(e){if(this._events[e]!=null){return this._events[e].length}else{return 0}}async trigger(e,...t){var r,a;try{if(e!=="debug"){this.trigger("debug",`Event triggered: ${e}`,t)}if(this._events[e]==null){return}this._events[e]=this._events[e].filter((function(e){return e.status!=="none"}));a=this._events[e].map((async e=>{var r,a;if(e.status==="none"){return}if(e.status==="once"){e.status="none"}try{a=typeof e.cb==="function"?e.cb(...t):void 0;if(typeof(a!=null?a.then:void 0)==="function"){return await a}else{return a}}catch(e){r=e;{this.trigger("error",r)}return null}}));return(await Promise.all(a)).find((function(e){return e!=null}))}catch(e){r=e;{this.trigger("error",r)}return null}}};var i=n;var s,o,p;s=a;o=i;p=class Queues{constructor(e){var t;this.Events=new o(this);this._length=0;this._lists=function(){var r,a,n;n=[];for(t=r=1,a=e;1<=a?r<=a:r>=a;t=1<=a?++r:--r){n.push(new s((()=>this.incr()),(()=>this.decr())))}return n}.call(this)}incr(){if(this._length++===0){return this.Events.trigger("leftzero")}}decr(){if(--this._length===0){return this.Events.trigger("zero")}}push(e){return this._lists[e.options.priority].push(e)}queued(e){if(e!=null){return this._lists[e].length}else{return this._length}}shiftAll(e){return this._lists.forEach((function(t){return t.forEachShift(e)}))}getFirst(e=this._lists){var t,r,a;for(t=0,r=e.length;t0){return a}}return[]}shiftLastFrom(e){return this.getFirst(this._lists.slice(e).reverse()).shift()}};var c=p;var l;l=class BottleneckError extends Error{};var d=l;var u,m,h,g,v;g=10;m=5;v=t;u=d;h=class Job{constructor(e,t,r,a,n,i,s,o){this.task=e;this.args=t;this.rejectOnDrop=n;this.Events=i;this._states=s;this.Promise=o;this.options=v.load(r,a);this.options.priority=this._sanitizePriority(this.options.priority);if(this.options.id===a.id){this.options.id=`${this.options.id}-${this._randomIndex()}`}this.promise=new this.Promise(((e,t)=>{this._resolve=e;this._reject=t}));this.retryCount=0}_sanitizePriority(e){var t;t=~~e!==e?m:e;if(t<0){return 0}else if(t>g-1){return g-1}else{return t}}_randomIndex(){return Math.random().toString(36).slice(2)}doDrop({error:e,message:t="This job has been dropped by Bottleneck"}={}){if(this._states.remove(this.options.id)){if(this.rejectOnDrop){this._reject(e!=null?e:new u(t))}this.Events.trigger("dropped",{args:this.args,options:this.options,task:this.task,promise:this.promise});return true}else{return false}}_assertStatus(e){var t;t=this._states.jobStatus(this.options.id);if(!(t===e||e==="DONE"&&t===null)){throw new u(`Invalid job status ${t}, expected ${e}. Please open an issue at https://github.com/SGrondin/bottleneck/issues`)}}doReceive(){this._states.start(this.options.id);return this.Events.trigger("received",{args:this.args,options:this.options})}doQueue(e,t){this._assertStatus("RECEIVED");this._states.next(this.options.id);return this.Events.trigger("queued",{args:this.args,options:this.options,reachedHWM:e,blocked:t})}doRun(){if(this.retryCount===0){this._assertStatus("QUEUED");this._states.next(this.options.id)}else{this._assertStatus("EXECUTING")}return this.Events.trigger("scheduled",{args:this.args,options:this.options})}async doExecute(e,t,r,a){var n,i,s;if(this.retryCount===0){this._assertStatus("RUNNING");this._states.next(this.options.id)}else{this._assertStatus("EXECUTING")}i={args:this.args,options:this.options,retryCount:this.retryCount};this.Events.trigger("executing",i);try{s=await(e!=null?e.schedule(this.options,this.task,...this.args):this.task(...this.args));if(t()){this.doDone(i);await a(this.options,i);this._assertStatus("DONE");return this._resolve(s)}}catch(e){n=e;return this._onFailure(n,i,t,r,a)}}doExpire(e,t,r){var a,n;if(this._states.jobStatus(this.options.id==="RUNNING")){this._states.next(this.options.id)}this._assertStatus("EXECUTING");n={args:this.args,options:this.options,retryCount:this.retryCount};a=new u(`This job timed out after ${this.options.expiration} ms.`);return this._onFailure(a,n,e,t,r)}async _onFailure(e,t,r,a,n){var i,s;if(r()){i=await this.Events.trigger("failed",e,t);if(i!=null){s=~~i;this.Events.trigger("retry",`Retrying ${this.options.id} after ${s} ms`,t);this.retryCount++;return a(s)}else{this.doDone(t);await n(this.options,t);this._assertStatus("DONE");return this._reject(e)}}}doDone(e){this._assertStatus("EXECUTING");this._states.next(this.options.id);return this.Events.trigger("done",e)}};var y=h;var b,w,x;x=t;b=d;w=class LocalDatastore{constructor(e,t,r){this.instance=e;this.storeOptions=t;this.clientId=this.instance._randomIndex();x.load(r,r,this);this._nextRequest=this._lastReservoirRefresh=this._lastReservoirIncrease=Date.now();this._running=0;this._done=0;this._unblockTime=0;this.ready=this.Promise.resolve();this.clients={};this._startHeartbeat()}_startHeartbeat(){var e;if(this.heartbeat==null&&(this.storeOptions.reservoirRefreshInterval!=null&&this.storeOptions.reservoirRefreshAmount!=null||this.storeOptions.reservoirIncreaseInterval!=null&&this.storeOptions.reservoirIncreaseAmount!=null)){return typeof(e=this.heartbeat=setInterval((()=>{var e,t,r,a,n;a=Date.now();if(this.storeOptions.reservoirRefreshInterval!=null&&a>=this._lastReservoirRefresh+this.storeOptions.reservoirRefreshInterval){this._lastReservoirRefresh=a;this.storeOptions.reservoir=this.storeOptions.reservoirRefreshAmount;this.instance._drainAll(this.computeCapacity())}if(this.storeOptions.reservoirIncreaseInterval!=null&&a>=this._lastReservoirIncrease+this.storeOptions.reservoirIncreaseInterval){({reservoirIncreaseAmount:e,reservoirIncreaseMaximum:r,reservoir:n}=this.storeOptions);this._lastReservoirIncrease=a;t=r!=null?Math.min(e,r-n):e;if(t>0){this.storeOptions.reservoir+=t;return this.instance._drainAll(this.computeCapacity())}}}),this.heartbeatInterval)).unref==="function"?e.unref():void 0}else{return clearInterval(this.heartbeat)}}async __publish__(e){await this.yieldLoop();return this.instance.Events.trigger("message",e.toString())}async __disconnect__(e){await this.yieldLoop();clearInterval(this.heartbeat);return this.Promise.resolve()}yieldLoop(e=0){return new this.Promise((function(t,r){return setTimeout(t,e)}))}computePenalty(){var e;return(e=this.storeOptions.penalty)!=null?e:15*this.storeOptions.minTime||5e3}async __updateSettings__(e){await this.yieldLoop();x.overwrite(e,e,this.storeOptions);this._startHeartbeat();this.instance._drainAll(this.computeCapacity());return true}async __running__(){await this.yieldLoop();return this._running}async __queued__(){await this.yieldLoop();return this.instance.queued()}async __done__(){await this.yieldLoop();return this._done}async __groupCheck__(e){await this.yieldLoop();return this._nextRequest+this.timeout=e}check(e,t){return this.conditionsCheck(e)&&this._nextRequest-t<=0}async __check__(e){var t;await this.yieldLoop();t=Date.now();return this.check(e,t)}async __register__(e,t,r){var a,n;await this.yieldLoop();a=Date.now();if(this.conditionsCheck(t)){this._running+=t;if(this.storeOptions.reservoir!=null){this.storeOptions.reservoir-=t}n=Math.max(this._nextRequest-a,0);this._nextRequest=a+n+this.storeOptions.minTime;return{success:true,wait:n,reservoir:this.storeOptions.reservoir}}else{return{success:false}}}strategyIsBlock(){return this.storeOptions.strategy===3}async __submit__(e,t){var r,a,n;await this.yieldLoop();if(this.storeOptions.maxConcurrent!=null&&t>this.storeOptions.maxConcurrent){throw new b(`Impossible to add a job having a weight of ${t} to a limiter having a maxConcurrent setting of ${this.storeOptions.maxConcurrent}`)}a=Date.now();n=this.storeOptions.highWater!=null&&e===this.storeOptions.highWater&&!this.check(t,a);r=this.strategyIsBlock()&&(n||this.isBlocked(a));if(r){this._unblockTime=a+this.computePenalty();this._nextRequest=this._unblockTime+this.storeOptions.minTime;this.instance._dropAllQueued()}return{reachedHWM:n,blocked:r,strategy:this.storeOptions.strategy}}async __free__(e,t){await this.yieldLoop();this._running-=t;this._done+=t;this.instance._drainAll(this.computeCapacity());return{running:this._running}}};var E=w;var T,S;T=d;S=class States{constructor(e){this.status=e;this._jobs={};this.counts=this.status.map((function(){return 0}))}next(e){var t,r;t=this._jobs[e];r=t+1;if(t!=null&&r{e[this.status[r]]=t;return e}),{})}};var k=S;var O,C;O=a;C=class Sync{constructor(e,t){this.schedule=this.schedule.bind(this);this.name=e;this.Promise=t;this._running=0;this._queue=new O}isEmpty(){return this._queue.length===0}async _tryToRun(){var e,t,r,a,n,i,s;if(this._running<1&&this._queue.length>0){this._running++;({task:s,args:e,resolve:n,reject:a}=this._queue.shift());t=await async function(){try{i=await s(...e);return function(){return n(i)}}catch(e){r=e;return function(){return a(r)}}}();this._running--;this._tryToRun();return t()}}schedule(e,...t){var r,a,n;n=a=null;r=new this.Promise((function(e,t){n=e;return a=t}));this._queue.push({task:e,args:t,resolve:n,reject:a});this._tryToRun();return r}};var P=C;var A="2.19.5";var D={version:A};var R=Object.freeze({version:A,default:D});var require$$2=()=>console.log("You must import the full version of Bottleneck in order to use this feature.");var require$$3=()=>console.log("You must import the full version of Bottleneck in order to use this feature.");var require$$4=()=>console.log("You must import the full version of Bottleneck in order to use this feature.");var N,j,I,F,$,B;B=t;N=i;F=require$$2;I=require$$3;$=require$$4;j=function(){class Group{constructor(e={}){this.deleteKey=this.deleteKey.bind(this);this.limiterOptions=e;B.load(this.limiterOptions,this.defaults,this);this.Events=new N(this);this.instances={};this.Bottleneck=ae;this._startAutoCleanup();this.sharedConnection=this.connection!=null;if(this.connection==null){if(this.limiterOptions.datastore==="redis"){this.connection=new F(Object.assign({},this.limiterOptions,{Events:this.Events}))}else if(this.limiterOptions.datastore==="ioredis"){this.connection=new I(Object.assign({},this.limiterOptions,{Events:this.Events}))}}}key(e=""){var t;return(t=this.instances[e])!=null?t:(()=>{var t;t=this.instances[e]=new this.Bottleneck(Object.assign(this.limiterOptions,{id:`${this.id}-${e}`,timeout:this.timeout,connection:this.connection}));this.Events.trigger("created",t,e);return t})()}async deleteKey(e=""){var t,r;r=this.instances[e];if(this.connection){t=await this.connection.__runCommand__(["del",...$.allKeys(`${this.id}-${e}`)])}if(r!=null){delete this.instances[e];await r.disconnect()}return r!=null||t>0}limiters(){var e,t,r,a;t=this.instances;r=[];for(e in t){a=t[e];r.push({key:e,limiter:a})}return r}keys(){return Object.keys(this.instances)}async clusterKeys(){var e,t,r,a,n,i,s,o,p;if(this.connection==null){return this.Promise.resolve(this.keys())}i=[];e=null;p=`b_${this.id}-`.length;t="_settings".length;while(e!==0){[o,r]=await this.connection.__runCommand__(["scan",e!=null?e:0,"match",`b_${this.id}-*_settings`,"count",1e4]);e=~~o;for(a=0,s=r.length;a{var e,t,r,a,n,i;n=Date.now();r=this.instances;a=[];for(t in r){i=r[t];try{if(await i._store.__groupCheck__(n)){a.push(this.deleteKey(t))}else{a.push(void 0)}}catch(t){e=t;a.push(i.Events.trigger("error",e))}}return a}),this.timeout/2)).unref==="function"?e.unref():void 0}updateSettings(e={}){B.overwrite(e,this.defaults,this);B.overwrite(e,e,this.limiterOptions);if(e.timeout!=null){return this._startAutoCleanup()}}disconnect(e=true){var t;if(!this.sharedConnection){return(t=this.connection)!=null?t.disconnect(e):void 0}}}Group.prototype.defaults={timeout:1e3*60*5,connection:null,Promise:Promise,id:"group-key"};return Group}.call(e);var L=j;var M,U,G;G=t;U=i;M=function(){class Batcher{constructor(e={}){this.options=e;G.load(this.options,this.defaults,this);this.Events=new U(this);this._arr=[];this._resetPromise();this._lastFlush=Date.now()}_resetPromise(){return this._promise=new this.Promise(((e,t)=>this._resolve=e))}_flush(){clearTimeout(this._timeout);this._lastFlush=Date.now();this._resolve();this.Events.trigger("batch",this._arr);this._arr=[];return this._resetPromise()}add(e){var t;this._arr.push(e);t=this._promise;if(this._arr.length===this.maxSize){this._flush()}else if(this.maxTime!=null&&this._arr.length===1){this._timeout=setTimeout((()=>this._flush()),this.maxTime)}return t}}Batcher.prototype.defaults={maxTime:null,maxSize:null,Promise:Promise};return Batcher}.call(e);var V=M;var require$$4$1=()=>console.log("You must import the full version of Bottleneck in order to use this feature.");var q=getCjsExportFromNamespace(R);var H,z,K,W,J,Y,Q,X,Z,ee,te,re=[].splice;Y=10;z=5;te=t;Q=c;W=y;J=E;X=require$$4$1;K=i;Z=k;ee=P;H=function(){class Bottleneck{constructor(e={},...t){var r,a;this._addToQueue=this._addToQueue.bind(this);this._validateOptions(e,t);te.load(e,this.instanceDefaults,this);this._queues=new Q(Y);this._scheduled={};this._states=new Z(["RECEIVED","QUEUED","RUNNING","EXECUTING"].concat(this.trackDoneStatus?["DONE"]:[]));this._limiter=null;this.Events=new K(this);this._submitLock=new ee("submit",this.Promise);this._registerLock=new ee("register",this.Promise);a=te.load(e,this.storeDefaults,{});this._store=function(){if(this.datastore==="redis"||this.datastore==="ioredis"||this.connection!=null){r=te.load(e,this.redisStoreDefaults,{});return new X(this,a,r)}else if(this.datastore==="local"){r=te.load(e,this.localStoreDefaults,{});return new J(this,a,r)}else{throw new Bottleneck.prototype.BottleneckError(`Invalid datastore type: ${this.datastore}`)}}.call(this);this._queues.on("leftzero",(()=>{var e;return(e=this._store.heartbeat)!=null?typeof e.ref==="function"?e.ref():void 0:void 0}));this._queues.on("zero",(()=>{var e;return(e=this._store.heartbeat)!=null?typeof e.unref==="function"?e.unref():void 0:void 0}))}_validateOptions(e,t){if(!(e!=null&&typeof e==="object"&&t.length===0)){throw new Bottleneck.prototype.BottleneckError("Bottleneck v2 takes a single object argument. Refer to https://github.com/SGrondin/bottleneck#upgrading-to-v2 if you're upgrading from Bottleneck v1.")}}ready(){return this._store.ready}clients(){return this._store.clients}channel(){return`b_${this.id}`}channel_client(){return`b_${this.id}_${this._store.clientId}`}publish(e){return this._store.__publish__(e)}disconnect(e=true){return this._store.__disconnect__(e)}chain(e){this._limiter=e;return this}queued(e){return this._queues.queued(e)}clusterQueued(){return this._store.__queued__()}empty(){return this.queued()===0&&this._submitLock.isEmpty()}running(){return this._store.__running__()}done(){return this._store.__done__()}jobStatus(e){return this._states.jobStatus(e)}jobs(e){return this._states.statusJobs(e)}counts(){return this._states.statusCounts()}_randomIndex(){return Math.random().toString(36).slice(2)}check(e=1){return this._store.__check__(e)}_clearGlobalState(e){if(this._scheduled[e]!=null){clearTimeout(this._scheduled[e].expiration);delete this._scheduled[e];return true}else{return false}}async _free(e,t,r,a){var n,i;try{({running:i}=await this._store.__free__(e,r.weight));this.Events.trigger("debug",`Freed ${r.id}`,a);if(i===0&&this.empty()){return this.Events.trigger("idle")}}catch(e){n=e;return this.Events.trigger("error",n)}}_run(e,t,r){var a,n,i;t.doRun();a=this._clearGlobalState.bind(this,e);i=this._run.bind(this,e,t);n=this._free.bind(this,e,t);return this._scheduled[e]={timeout:setTimeout((()=>t.doExecute(this._limiter,a,i,n)),r),expiration:t.options.expiration!=null?setTimeout((function(){return t.doExpire(a,i,n)}),r+t.options.expiration):void 0,job:t}}_drainOne(e){return this._registerLock.schedule((()=>{var t,r,a,n,i;if(this.queued()===0){return this.Promise.resolve(null)}i=this._queues.getFirst();({options:n,args:t}=a=i.first());if(e!=null&&n.weight>e){return this.Promise.resolve(null)}this.Events.trigger("debug",`Draining ${n.id}`,{args:t,options:n});r=this._randomIndex();return this._store.__register__(r,n.weight,n.expiration).then((({success:e,wait:s,reservoir:o})=>{var p;this.Events.trigger("debug",`Drained ${n.id}`,{success:e,args:t,options:n});if(e){i.shift();p=this.empty();if(p){this.Events.trigger("empty")}if(o===0){this.Events.trigger("depleted",p)}this._run(r,a,s);return this.Promise.resolve(n.weight)}else{return this.Promise.resolve(null)}}))}))}_drainAll(e,t=0){return this._drainOne(e).then((r=>{var a;if(r!=null){a=e!=null?e-r:e;return this._drainAll(a,t+r)}else{return this.Promise.resolve(t)}})).catch((e=>this.Events.trigger("error",e)))}_dropAllQueued(e){return this._queues.shiftAll((function(t){return t.doDrop({message:e})}))}stop(e={}){var t,r;e=te.load(e,this.stopDefaults);r=e=>{var t;t=()=>{var t;t=this._states.counts;return t[0]+t[1]+t[2]+t[3]===e};return new this.Promise(((e,r)=>{if(t()){return e()}else{return this.on("done",(()=>{if(t()){this.removeAllListeners("done");return e()}}))}}))};t=e.dropWaitingJobs?(this._run=function(t,r){return r.doDrop({message:e.dropErrorMessage})},this._drainOne=()=>this.Promise.resolve(null),this._registerLock.schedule((()=>this._submitLock.schedule((()=>{var t,a,n;a=this._scheduled;for(t in a){n=a[t];if(this.jobStatus(n.job.options.id)==="RUNNING"){clearTimeout(n.timeout);clearTimeout(n.expiration);n.job.doDrop({message:e.dropErrorMessage})}}this._dropAllQueued(e.dropErrorMessage);return r(0)}))))):this.schedule({priority:Y-1,weight:0},(()=>r(1)));this._receive=function(t){return t._reject(new Bottleneck.prototype.BottleneckError(e.enqueueErrorMessage))};this.stop=()=>this.Promise.reject(new Bottleneck.prototype.BottleneckError("stop() has already been called"));return t}async _addToQueue(e){var t,r,a,n,i,s,o;({args:t,options:n}=e);try{({reachedHWM:i,blocked:r,strategy:o}=await this._store.__submit__(this.queued(),n.weight))}catch(r){a=r;this.Events.trigger("debug",`Could not queue ${n.id}`,{args:t,options:n,error:a});e.doDrop({error:a});return false}if(r){e.doDrop();return true}else if(i){s=o===Bottleneck.prototype.strategy.LEAK?this._queues.shiftLastFrom(n.priority):o===Bottleneck.prototype.strategy.OVERFLOW_PRIORITY?this._queues.shiftLastFrom(n.priority+1):o===Bottleneck.prototype.strategy.OVERFLOW?e:void 0;if(s!=null){s.doDrop()}if(s==null||o===Bottleneck.prototype.strategy.OVERFLOW){if(s==null){e.doDrop()}return i}}e.doQueue(i,r);this._queues.push(e);await this._drainAll();return i}_receive(e){if(this._states.jobStatus(e.options.id)!=null){e._reject(new Bottleneck.prototype.BottleneckError(`A job with the same id already exists (id=${e.options.id})`));return false}else{e.doReceive();return this._submitLock.schedule(this._addToQueue,e)}}submit(...e){var t,r,a,n,i,s,o;if(typeof e[0]==="function"){i=e,[r,...e]=i,[t]=re.call(e,-1);n=te.load({},this.jobDefaults)}else{s=e,[n,r,...e]=s,[t]=re.call(e,-1);n=te.load(n,this.jobDefaults)}o=(...e)=>new this.Promise((function(t,a){return r(...e,(function(...e){return(e[0]!=null?a:t)(e)}))}));a=new W(o,e,n,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise);a.promise.then((function(e){return typeof t==="function"?t(...e):void 0})).catch((function(e){if(Array.isArray(e)){return typeof t==="function"?t(...e):void 0}else{return typeof t==="function"?t(e):void 0}}));return this._receive(a)}schedule(...e){var t,r,a;if(typeof e[0]==="function"){[a,...e]=e;r={}}else{[r,a,...e]=e}t=new W(a,e,r,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise);this._receive(t);return t.promise}wrap(e){var t,r;t=this.schedule.bind(this);r=function(...r){return t(e.bind(this),...r)};r.withOptions=function(r,...a){return t(r,e,...a)};return r}async updateSettings(e={}){await this._store.__updateSettings__(te.overwrite(e,this.storeDefaults));te.overwrite(e,this.instanceDefaults,this);return this}currentReservoir(){return this._store.__currentReservoir__()}incrementReservoir(e=0){return this._store.__incrementReservoir__(e)}}Bottleneck.default=Bottleneck;Bottleneck.Events=K;Bottleneck.version=Bottleneck.prototype.version=q.version;Bottleneck.strategy=Bottleneck.prototype.strategy={LEAK:1,OVERFLOW:2,OVERFLOW_PRIORITY:4,BLOCK:3};Bottleneck.BottleneckError=Bottleneck.prototype.BottleneckError=d;Bottleneck.Group=Bottleneck.prototype.Group=L;Bottleneck.RedisConnection=Bottleneck.prototype.RedisConnection=require$$2;Bottleneck.IORedisConnection=Bottleneck.prototype.IORedisConnection=require$$3;Bottleneck.Batcher=Bottleneck.prototype.Batcher=V;Bottleneck.prototype.jobDefaults={priority:z,weight:1,expiration:null,id:""};Bottleneck.prototype.storeDefaults={maxConcurrent:null,minTime:0,highWater:null,strategy:Bottleneck.prototype.strategy.LEAK,penalty:null,reservoir:null,reservoirRefreshInterval:null,reservoirRefreshAmount:null,reservoirIncreaseInterval:null,reservoirIncreaseAmount:null,reservoirIncreaseMaximum:null};Bottleneck.prototype.localStoreDefaults={Promise:Promise,timeout:null,heartbeatInterval:250};Bottleneck.prototype.redisStoreDefaults={Promise:Promise,timeout:null,heartbeatInterval:5e3,clientTimeout:1e4,Redis:null,clientOptions:{},clusterNodes:null,clearDatastore:false,connection:null};Bottleneck.prototype.instanceDefaults={datastore:"local",connection:null,id:"",rejectOnDrop:true,trackDoneStatus:false,Promise:Promise};Bottleneck.prototype.stopDefaults={enqueueErrorMessage:"This limiter has been stopped and cannot accept new jobs.",dropWaitingJobs:true,dropErrorMessage:"This limiter has been stopped."};return Bottleneck}.call(e);var ae=H;var ne=ae;return ne}))},3717:(e,t,r)=>{var a=r(6891);var n=r(9417);e.exports=expandTop;var i="\0SLASH"+Math.random()+"\0";var s="\0OPEN"+Math.random()+"\0";var o="\0CLOSE"+Math.random()+"\0";var p="\0COMMA"+Math.random()+"\0";var c="\0PERIOD"+Math.random()+"\0";function numeric(e){return parseInt(e,10)==e?parseInt(e,10):e.charCodeAt(0)}function escapeBraces(e){return e.split("\\\\").join(i).split("\\{").join(s).split("\\}").join(o).split("\\,").join(p).split("\\.").join(c)}function unescapeBraces(e){return e.split(i).join("\\").split(s).join("{").split(o).join("}").split(p).join(",").split(c).join(".")}function parseCommaParts(e){if(!e)return[""];var t=[];var r=n("{","}",e);if(!r)return e.split(",");var a=r.pre;var i=r.body;var s=r.post;var o=a.split(",");o[o.length-1]+="{"+i+"}";var p=parseCommaParts(s);if(s.length){o[o.length-1]+=p.shift();o.push.apply(o,p)}t.push.apply(t,o);return t}function expandTop(e){if(!e)return[];if(e.substr(0,2)==="{}"){e="\\{\\}"+e.substr(2)}return expand(escapeBraces(e),true).map(unescapeBraces)}function identity(e){return e}function embrace(e){return"{"+e+"}"}function isPadded(e){return/^-?0\d/.test(e)}function lte(e,t){return e<=t}function gte(e,t){return e>=t}function expand(e,t){var r=[];var i=n("{","}",e);if(!i||/\$$/.test(i.pre))return[e];var s=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(i.body);var p=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(i.body);var c=s||p;var l=i.body.indexOf(",")>=0;if(!c&&!l){if(i.post.match(/,.*\}/)){e=i.pre+"{"+i.body+o+i.post;return expand(e)}return[e]}var d;if(c){d=i.body.split(/\.\./)}else{d=parseCommaParts(i.body);if(d.length===1){d=expand(d[0],false).map(embrace);if(d.length===1){var u=i.post.length?expand(i.post,false):[""];return u.map((function(e){return i.pre+d[0]+e}))}}}var m=i.pre;var u=i.post.length?expand(i.post,false):[""];var h;if(c){var g=numeric(d[0]);var v=numeric(d[1]);var y=Math.max(d[0].length,d[1].length);var b=d.length==3?Math.abs(numeric(d[2])):1;var w=lte;var x=v0){var O=new Array(k+1).join("0");if(T<0)S="-"+O+S.slice(1);else S=O+S}}}h.push(S)}}else{h=a(d,(function(e){return expand(e,false)}))}for(var C=0;C{var a=r(3837);var n=r(2781).Stream;var i=r(8611);e.exports=CombinedStream;function CombinedStream(){this.writable=false;this.readable=true;this.dataSize=0;this.maxDataSize=2*1024*1024;this.pauseStreams=true;this._released=false;this._streams=[];this._currentStream=null;this._insideLoop=false;this._pendingNext=false}a.inherits(CombinedStream,n);CombinedStream.create=function(e){var t=new this;e=e||{};for(var r in e){t[r]=e[r]}return t};CombinedStream.isStreamLike=function(e){return typeof e!=="function"&&typeof e!=="string"&&typeof e!=="boolean"&&typeof e!=="number"&&!Buffer.isBuffer(e)};CombinedStream.prototype.append=function(e){var t=CombinedStream.isStreamLike(e);if(t){if(!(e instanceof i)){var r=i.create(e,{maxDataSize:Infinity,pauseStream:this.pauseStreams});e.on("data",this._checkDataSize.bind(this));e=r}this._handleErrors(e);if(this.pauseStreams){e.pause()}}this._streams.push(e);return this};CombinedStream.prototype.pipe=function(e,t){n.prototype.pipe.call(this,e,t);this.resume();return e};CombinedStream.prototype._getNext=function(){this._currentStream=null;if(this._insideLoop){this._pendingNext=true;return}this._insideLoop=true;try{do{this._pendingNext=false;this._realGetNext()}while(this._pendingNext)}finally{this._insideLoop=false}};CombinedStream.prototype._realGetNext=function(){var e=this._streams.shift();if(typeof e=="undefined"){this.end();return}if(typeof e!=="function"){this._pipeNext(e);return}var t=e;t(function(e){var t=CombinedStream.isStreamLike(e);if(t){e.on("data",this._checkDataSize.bind(this));this._handleErrors(e)}this._pipeNext(e)}.bind(this))};CombinedStream.prototype._pipeNext=function(e){this._currentStream=e;var t=CombinedStream.isStreamLike(e);if(t){e.on("end",this._getNext.bind(this));e.pipe(this,{end:false});return}var r=e;this.write(r);this._getNext()};CombinedStream.prototype._handleErrors=function(e){var t=this;e.on("error",(function(e){t._emitError(e)}))};CombinedStream.prototype.write=function(e){this.emit("data",e)};CombinedStream.prototype.pause=function(){if(!this.pauseStreams){return}if(this.pauseStreams&&this._currentStream&&typeof this._currentStream.pause=="function")this._currentStream.pause();this.emit("pause")};CombinedStream.prototype.resume=function(){if(!this._released){this._released=true;this.writable=true;this._getNext()}if(this.pauseStreams&&this._currentStream&&typeof this._currentStream.resume=="function")this._currentStream.resume();this.emit("resume")};CombinedStream.prototype.end=function(){this._reset();this.emit("end")};CombinedStream.prototype.destroy=function(){this._reset();this.emit("close")};CombinedStream.prototype._reset=function(){this.writable=false;this._streams=[];this._currentStream=null};CombinedStream.prototype._checkDataSize=function(){this._updateDataSize();if(this.dataSize<=this.maxDataSize){return}var e="DelayedStream#maxDataSize of "+this.maxDataSize+" bytes exceeded.";this._emitError(new Error(e))};CombinedStream.prototype._updateDataSize=function(){this.dataSize=0;var e=this;this._streams.forEach((function(t){if(!t.dataSize){return}e.dataSize+=t.dataSize}));if(this._currentStream&&this._currentStream.dataSize){this.dataSize+=this._currentStream.dataSize}};CombinedStream.prototype._emitError=function(e){this._reset();this.emit("error",e)}},6891:e=>{e.exports=function(e,r){var a=[];for(var n=0;n{t.formatArgs=formatArgs;t.save=save;t.load=load;t.useColors=useColors;t.storage=localstorage();t.destroy=(()=>{let e=false;return()=>{if(!e){e=true;console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}}})();t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function useColors(){if(typeof window!=="undefined"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)){return true}if(typeof navigator!=="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)){return false}return typeof document!=="undefined"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window!=="undefined"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator!=="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator!=="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function formatArgs(t){t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff);if(!this.useColors){return}const r="color: "+this.color;t.splice(1,0,r,"color: inherit");let a=0;let n=0;t[0].replace(/%[a-zA-Z%]/g,(e=>{if(e==="%%"){return}a++;if(e==="%c"){n=a}}));t.splice(n,0,r)}t.log=console.debug||console.log||(()=>{});function save(e){try{if(e){t.storage.setItem("debug",e)}else{t.storage.removeItem("debug")}}catch(e){}}function load(){let e;try{e=t.storage.getItem("debug")}catch(e){}if(!e&&typeof process!=="undefined"&&"env"in process){e=process.env.DEBUG}return e}function localstorage(){try{return localStorage}catch(e){}}e.exports=r(6243)(t);const{formatters:a}=e.exports;a.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}},6243:(e,t,r)=>{function setup(e){createDebug.debug=createDebug;createDebug.default=createDebug;createDebug.coerce=coerce;createDebug.disable=disable;createDebug.enable=enable;createDebug.enabled=enabled;createDebug.humanize=r(900);createDebug.destroy=destroy;Object.keys(e).forEach((t=>{createDebug[t]=e[t]}));createDebug.names=[];createDebug.skips=[];createDebug.formatters={};function selectColor(e){let t=0;for(let r=0;r{if(t==="%%"){return"%"}i++;const n=createDebug.formatters[a];if(typeof n==="function"){const a=e[i];t=n.call(r,a);e.splice(i,1);i--}return t}));createDebug.formatArgs.call(r,e);const s=r.log||createDebug.log;s.apply(r,e)}debug.namespace=e;debug.useColors=createDebug.useColors();debug.color=createDebug.selectColor(e);debug.extend=extend;debug.destroy=createDebug.destroy;Object.defineProperty(debug,"enabled",{enumerable:true,configurable:false,get:()=>{if(r!==null){return r}if(a!==createDebug.namespaces){a=createDebug.namespaces;n=createDebug.enabled(e)}return n},set:e=>{r=e}});if(typeof createDebug.init==="function"){createDebug.init(debug)}return debug}function extend(e,t){const r=createDebug(this.namespace+(typeof t==="undefined"?":":t)+e);r.log=this.log;return r}function enable(e){createDebug.save(e);createDebug.namespaces=e;createDebug.names=[];createDebug.skips=[];let t;const r=(typeof e==="string"?e:"").split(/[\s,]+/);const a=r.length;for(t=0;t"-"+e))].join(",");createDebug.enable("");return e}function enabled(e){if(e[e.length-1]==="*"){return true}let t;let r;for(t=0,r=createDebug.skips.length;t{if(typeof process==="undefined"||process.type==="renderer"||process.browser===true||process.__nwjs){e.exports=r(8222)}else{e.exports=r(4874)}},4874:(e,t,r)=>{const a=r(6224);const n=r(3837);t.init=init;t.log=log;t.formatArgs=formatArgs;t.save=save;t.load=load;t.useColors=useColors;t.destroy=n.deprecate((()=>{}),"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");t.colors=[6,2,3,4,5,1];try{const e=r(9318);if(e&&(e.stderr||e).level>=2){t.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221]}}catch(e){}t.inspectOpts=Object.keys(process.env).filter((e=>/^debug_/i.test(e))).reduce(((e,t)=>{const r=t.substring(6).toLowerCase().replace(/_([a-z])/g,((e,t)=>t.toUpperCase()));let a=process.env[t];if(/^(yes|on|true|enabled)$/i.test(a)){a=true}else if(/^(no|off|false|disabled)$/i.test(a)){a=false}else if(a==="null"){a=null}else{a=Number(a)}e[r]=a;return e}),{});function useColors(){return"colors"in t.inspectOpts?Boolean(t.inspectOpts.colors):a.isatty(process.stderr.fd)}function formatArgs(t){const{namespace:r,useColors:a}=this;if(a){const a=this.color;const n="[3"+(a<8?a:"8;5;"+a);const i=` ${n};1m${r} `;t[0]=i+t[0].split("\n").join("\n"+i);t.push(n+"m+"+e.exports.humanize(this.diff)+"")}else{t[0]=getDate()+r+" "+t[0]}}function getDate(){if(t.inspectOpts.hideDate){return""}return(new Date).toISOString()+" "}function log(...e){return process.stderr.write(n.format(...e)+"\n")}function save(e){if(e){process.env.DEBUG=e}else{delete process.env.DEBUG}}function load(){return process.env.DEBUG}function init(e){e.inspectOpts={};const r=Object.keys(t.inspectOpts);for(let a=0;ae.trim())).join(" ")};i.O=function(e){this.inspectOpts.colors=this.useColors;return n.inspect(e,this.inspectOpts)}},8611:(e,t,r)=>{var a=r(2781).Stream;var n=r(3837);e.exports=DelayedStream;function DelayedStream(){this.source=null;this.dataSize=0;this.maxDataSize=1024*1024;this.pauseStream=true;this._maxDataSizeExceeded=false;this._released=false;this._bufferedEvents=[]}n.inherits(DelayedStream,a);DelayedStream.create=function(e,t){var r=new this;t=t||{};for(var a in t){r[a]=t[a]}r.source=e;var n=e.emit;e.emit=function(){r._handleEmit(arguments);return n.apply(e,arguments)};e.on("error",(function(){}));if(r.pauseStream){e.pause()}return r};Object.defineProperty(DelayedStream.prototype,"readable",{configurable:true,enumerable:true,get:function(){return this.source.readable}});DelayedStream.prototype.setEncoding=function(){return this.source.setEncoding.apply(this.source,arguments)};DelayedStream.prototype.resume=function(){if(!this._released){this.release()}this.source.resume()};DelayedStream.prototype.pause=function(){this.source.pause()};DelayedStream.prototype.release=function(){this._released=true;this._bufferedEvents.forEach(function(e){this.emit.apply(this,e)}.bind(this));this._bufferedEvents=[]};DelayedStream.prototype.pipe=function(){var e=a.prototype.pipe.apply(this,arguments);this.resume();return e};DelayedStream.prototype._handleEmit=function(e){if(this._released){this.emit.apply(this,e);return}if(e[0]==="data"){this.dataSize+=e[1].length;this._checkIfMaxDataSizeExceeded()}this._bufferedEvents.push(e)};DelayedStream.prototype._checkIfMaxDataSizeExceeded=function(){if(this._maxDataSizeExceeded){return}if(this.dataSize<=this.maxDataSize){return}this._maxDataSizeExceeded=true;var e="DelayedStream#maxDataSize of "+this.maxDataSize+" bytes exceeded.";this.emit("error",new Error(e))}},8932:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});class Deprecation extends Error{constructor(e){super(e);if(Error.captureStackTrace){Error.captureStackTrace(this,this.constructor)}this.name="Deprecation"}}t.Deprecation=Deprecation},8206:e=>{"use strict";e.exports=function equal(e,t){if(e===t)return true;if(e&&t&&typeof e=="object"&&typeof t=="object"){if(e.constructor!==t.constructor)return false;var r,a,n;if(Array.isArray(e)){r=e.length;if(r!=t.length)return false;for(a=r;a--!==0;)if(!equal(e[a],t[a]))return false;return true}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();n=Object.keys(e);r=n.length;if(r!==Object.keys(t).length)return false;for(a=r;a--!==0;)if(!Object.prototype.hasOwnProperty.call(t,n[a]))return false;for(a=r;a--!==0;){var i=n[a];if(!equal(e[i],t[i]))return false}return true}return e!==e&&t!==t}},1133:(e,t,r)=>{var a;e.exports=function(){if(!a){try{a=r(8237)("follow-redirects")}catch(e){}if(typeof a!=="function"){a=function(){}}}a.apply(null,arguments)}},7707:(e,t,r)=>{var a=r(7310);var n=a.URL;var i=r(3685);var s=r(5687);var o=r(2781).Writable;var p=r(9491);var c=r(1133);var l=["abort","aborted","connect","error","socket","timeout"];var d=Object.create(null);l.forEach((function(e){d[e]=function(t,r,a){this._redirectable.emit(e,t,r,a)}}));var u=createErrorType("ERR_INVALID_URL","Invalid URL",TypeError);var m=createErrorType("ERR_FR_REDIRECTION_FAILURE","Redirected request failed");var h=createErrorType("ERR_FR_TOO_MANY_REDIRECTS","Maximum number of redirects exceeded");var g=createErrorType("ERR_FR_MAX_BODY_LENGTH_EXCEEDED","Request body larger than maxBodyLength limit");var v=createErrorType("ERR_STREAM_WRITE_AFTER_END","write after end");function RedirectableRequest(e,t){o.call(this);this._sanitizeOptions(e);this._options=e;this._ended=false;this._ending=false;this._redirectCount=0;this._redirects=[];this._requestBodyLength=0;this._requestBodyBuffers=[];if(t){this.on("response",t)}var r=this;this._onNativeResponse=function(e){r._processResponse(e)};this._performRequest()}RedirectableRequest.prototype=Object.create(o.prototype);RedirectableRequest.prototype.abort=function(){abortRequest(this._currentRequest);this.emit("abort")};RedirectableRequest.prototype.write=function(e,t,r){if(this._ending){throw new v}if(!isString(e)&&!isBuffer(e)){throw new TypeError("data should be a string, Buffer or Uint8Array")}if(isFunction(t)){r=t;t=null}if(e.length===0){if(r){r()}return}if(this._requestBodyLength+e.length<=this._options.maxBodyLength){this._requestBodyLength+=e.length;this._requestBodyBuffers.push({data:e,encoding:t});this._currentRequest.write(e,t,r)}else{this.emit("error",new g);this.abort()}};RedirectableRequest.prototype.end=function(e,t,r){if(isFunction(e)){r=e;e=t=null}else if(isFunction(t)){r=t;t=null}if(!e){this._ended=this._ending=true;this._currentRequest.end(null,null,r)}else{var a=this;var n=this._currentRequest;this.write(e,t,(function(){a._ended=true;n.end(null,null,r)}));this._ending=true}};RedirectableRequest.prototype.setHeader=function(e,t){this._options.headers[e]=t;this._currentRequest.setHeader(e,t)};RedirectableRequest.prototype.removeHeader=function(e){delete this._options.headers[e];this._currentRequest.removeHeader(e)};RedirectableRequest.prototype.setTimeout=function(e,t){var r=this;function destroyOnTimeout(t){t.setTimeout(e);t.removeListener("timeout",t.destroy);t.addListener("timeout",t.destroy)}function startTimer(t){if(r._timeout){clearTimeout(r._timeout)}r._timeout=setTimeout((function(){r.emit("timeout");clearTimer()}),e);destroyOnTimeout(t)}function clearTimer(){if(r._timeout){clearTimeout(r._timeout);r._timeout=null}r.removeListener("abort",clearTimer);r.removeListener("error",clearTimer);r.removeListener("response",clearTimer);if(t){r.removeListener("timeout",t)}if(!r.socket){r._currentRequest.removeListener("socket",startTimer)}}if(t){this.on("timeout",t)}if(this.socket){startTimer(this.socket)}else{this._currentRequest.once("socket",startTimer)}this.on("socket",destroyOnTimeout);this.on("abort",clearTimer);this.on("error",clearTimer);this.on("response",clearTimer);return this};["flushHeaders","getHeader","setNoDelay","setSocketKeepAlive"].forEach((function(e){RedirectableRequest.prototype[e]=function(t,r){return this._currentRequest[e](t,r)}}));["aborted","connection","socket"].forEach((function(e){Object.defineProperty(RedirectableRequest.prototype,e,{get:function(){return this._currentRequest[e]}})}));RedirectableRequest.prototype._sanitizeOptions=function(e){if(!e.headers){e.headers={}}if(e.host){if(!e.hostname){e.hostname=e.host}delete e.host}if(!e.pathname&&e.path){var t=e.path.indexOf("?");if(t<0){e.pathname=e.path}else{e.pathname=e.path.substring(0,t);e.search=e.path.substring(t)}}};RedirectableRequest.prototype._performRequest=function(){var e=this._options.protocol;var t=this._options.nativeProtocols[e];if(!t){this.emit("error",new TypeError("Unsupported protocol "+e));return}if(this._options.agents){var r=e.slice(0,-1);this._options.agent=this._options.agents[r]}var n=this._currentRequest=t.request(this._options,this._onNativeResponse);n._redirectable=this;for(var i of l){n.on(i,d[i])}this._currentUrl=/^\//.test(this._options.path)?a.format(this._options):this._options.path;if(this._isRedirect){var s=0;var o=this;var p=this._requestBodyBuffers;(function writeNext(e){if(n===o._currentRequest){if(e){o.emit("error",e)}else if(s=400){e.responseUrl=this._currentUrl;e.redirects=this._redirects;this.emit("response",e);this._requestBodyBuffers=[];return}abortRequest(this._currentRequest);e.destroy();if(++this._redirectCount>this._options.maxRedirects){this.emit("error",new h);return}var n;var i=this._options.beforeRedirect;if(i){n=Object.assign({Host:e.req.getHeader("host")},this._options.headers)}var s=this._options.method;if((t===301||t===302)&&this._options.method==="POST"||t===303&&!/^(?:GET|HEAD)$/.test(this._options.method)){this._options.method="GET";this._requestBodyBuffers=[];removeMatchingHeaders(/^content-/i,this._options.headers)}var o=removeMatchingHeaders(/^host$/i,this._options.headers);var p=a.parse(this._currentUrl);var l=o||p.host;var d=/^\w+:/.test(r)?this._currentUrl:a.format(Object.assign(p,{host:l}));var u;try{u=a.resolve(d,r)}catch(e){this.emit("error",new m({cause:e}));return}c("redirecting to",u);this._isRedirect=true;var g=a.parse(u);Object.assign(this._options,g);if(g.protocol!==p.protocol&&g.protocol!=="https:"||g.host!==l&&!isSubdomain(g.host,l)){removeMatchingHeaders(/^(?:authorization|cookie)$/i,this._options.headers)}if(isFunction(i)){var v={headers:e.headers,statusCode:t};var y={url:d,method:s,headers:n};try{i(this._options,v,y)}catch(e){this.emit("error",e);return}this._sanitizeOptions(this._options)}try{this._performRequest()}catch(e){this.emit("error",new m({cause:e}))}};function wrap(e){var t={maxRedirects:21,maxBodyLength:10*1024*1024};var r={};Object.keys(e).forEach((function(i){var s=i+":";var o=r[s]=e[i];var l=t[i]=Object.create(o);function request(e,i,o){if(isString(e)){var l;try{l=urlToOptions(new n(e))}catch(t){l=a.parse(e)}if(!isString(l.protocol)){throw new u({input:e})}e=l}else if(n&&e instanceof n){e=urlToOptions(e)}else{o=i;i=e;e={protocol:s}}if(isFunction(i)){o=i;i=null}i=Object.assign({maxRedirects:t.maxRedirects,maxBodyLength:t.maxBodyLength},e,i);i.nativeProtocols=r;if(!isString(i.host)&&!isString(i.hostname)){i.hostname="::1"}p.equal(i.protocol,s,"protocol mismatch");c("options",i);return new RedirectableRequest(i,o)}function get(e,t,r){var a=l.request(e,t,r);a.end();return a}Object.defineProperties(l,{request:{value:request,configurable:true,enumerable:true,writable:true},get:{value:get,configurable:true,enumerable:true,writable:true}})}));return t}function noop(){}function urlToOptions(e){var t={protocol:e.protocol,hostname:e.hostname.startsWith("[")?e.hostname.slice(1,-1):e.hostname,hash:e.hash,search:e.search,pathname:e.pathname,path:e.pathname+e.search,href:e.href};if(e.port!==""){t.port=Number(e.port)}return t}function removeMatchingHeaders(e,t){var r;for(var a in t){if(e.test(a)){r=t[a];delete t[a]}}return r===null||typeof r==="undefined"?undefined:String(r).trim()}function createErrorType(e,t,r){function CustomError(r){Error.captureStackTrace(this,this.constructor);Object.assign(this,r||{});this.code=e;this.message=this.cause?t+": "+this.cause.message:t}CustomError.prototype=new(r||Error);CustomError.prototype.constructor=CustomError;CustomError.prototype.name="Error ["+e+"]";return CustomError}function abortRequest(e){for(var t of l){e.removeListener(t,d[t])}e.on("error",noop);e.abort()}function isSubdomain(e,t){p(isString(e)&&isString(t));var r=e.length-t.length-1;return r>0&&e[r]==="."&&e.endsWith(t)}function isString(e){return typeof e==="string"||e instanceof String}function isFunction(e){return typeof e==="function"}function isBuffer(e){return typeof e==="object"&&"length"in e}e.exports=wrap({http:i,https:s});e.exports.wrap=wrap},4334:(e,t,r)=>{var a=r(5443);var n=r(3837);var i=r(1017);var s=r(3685);var o=r(5687);var p=r(7310).parse;var c=r(7147);var l=r(2781).Stream;var d=r(3583);var u=r(4812);var m=r(7142);e.exports=FormData;n.inherits(FormData,a);function FormData(e){if(!(this instanceof FormData)){return new FormData(e)}this._overheadLength=0;this._valueLength=0;this._valuesToMeasure=[];a.call(this);e=e||{};for(var t in e){this[t]=e[t]}}FormData.LINE_BREAK="\r\n";FormData.DEFAULT_CONTENT_TYPE="application/octet-stream";FormData.prototype.append=function(e,t,r){r=r||{};if(typeof r=="string"){r={filename:r}}var i=a.prototype.append.bind(this);if(typeof t=="number"){t=""+t}if(n.isArray(t)){this._error(new Error("Arrays are not supported."));return}var s=this._multiPartHeader(e,t,r);var o=this._multiPartFooter();i(s);i(t);i(o);this._trackLength(s,t,r)};FormData.prototype._trackLength=function(e,t,r){var a=0;if(r.knownLength!=null){a+=+r.knownLength}else if(Buffer.isBuffer(t)){a=t.length}else if(typeof t==="string"){a=Buffer.byteLength(t)}this._valueLength+=a;this._overheadLength+=Buffer.byteLength(e)+FormData.LINE_BREAK.length;if(!t||!t.path&&!(t.readable&&t.hasOwnProperty("httpVersion"))&&!(t instanceof l)){return}if(!r.knownLength){this._valuesToMeasure.push(t)}};FormData.prototype._lengthRetriever=function(e,t){if(e.hasOwnProperty("fd")){if(e.end!=undefined&&e.end!=Infinity&&e.start!=undefined){t(null,e.end+1-(e.start?e.start:0))}else{c.stat(e.path,(function(r,a){var n;if(r){t(r);return}n=a.size-(e.start?e.start:0);t(null,n)}))}}else if(e.hasOwnProperty("httpVersion")){t(null,+e.headers["content-length"])}else if(e.hasOwnProperty("httpModule")){e.on("response",(function(r){e.pause();t(null,+r.headers["content-length"])}));e.resume()}else{t("Unknown stream")}};FormData.prototype._multiPartHeader=function(e,t,r){if(typeof r.header=="string"){return r.header}var a=this._getContentDisposition(t,r);var n=this._getContentType(t,r);var i="";var s={"Content-Disposition":["form-data",'name="'+e+'"'].concat(a||[]),"Content-Type":[].concat(n||[])};if(typeof r.header=="object"){m(s,r.header)}var o;for(var p in s){if(!s.hasOwnProperty(p))continue;o=s[p];if(o==null){continue}if(!Array.isArray(o)){o=[o]}if(o.length){i+=p+": "+o.join("; ")+FormData.LINE_BREAK}}return"--"+this.getBoundary()+FormData.LINE_BREAK+i+FormData.LINE_BREAK};FormData.prototype._getContentDisposition=function(e,t){var r,a;if(typeof t.filepath==="string"){r=i.normalize(t.filepath).replace(/\\/g,"/")}else if(t.filename||e.name||e.path){r=i.basename(t.filename||e.name||e.path)}else if(e.readable&&e.hasOwnProperty("httpVersion")){r=i.basename(e.client._httpMessage.path||"")}if(r){a='filename="'+r+'"'}return a};FormData.prototype._getContentType=function(e,t){var r=t.contentType;if(!r&&e.name){r=d.lookup(e.name)}if(!r&&e.path){r=d.lookup(e.path)}if(!r&&e.readable&&e.hasOwnProperty("httpVersion")){r=e.headers["content-type"]}if(!r&&(t.filepath||t.filename)){r=d.lookup(t.filepath||t.filename)}if(!r&&typeof e=="object"){r=FormData.DEFAULT_CONTENT_TYPE}return r};FormData.prototype._multiPartFooter=function(){return function(e){var t=FormData.LINE_BREAK;var r=this._streams.length===0;if(r){t+=this._lastBoundary()}e(t)}.bind(this)};FormData.prototype._lastBoundary=function(){return"--"+this.getBoundary()+"--"+FormData.LINE_BREAK};FormData.prototype.getHeaders=function(e){var t;var r={"content-type":"multipart/form-data; boundary="+this.getBoundary()};for(t in e){if(e.hasOwnProperty(t)){r[t.toLowerCase()]=e[t]}}return r};FormData.prototype.setBoundary=function(e){this._boundary=e};FormData.prototype.getBoundary=function(){if(!this._boundary){this._generateBoundary()}return this._boundary};FormData.prototype.getBuffer=function(){var e=new Buffer.alloc(0);var t=this.getBoundary();for(var r=0,a=this._streams.length;r{e.exports=function(e,t){Object.keys(t).forEach((function(r){e[r]=e[r]||t[r]}));return e}},9618:(e,t,r)=>{"use strict";const a=r(7758);const n=r(1017);const i=r(2915).mkdirsSync;const s=r(2548).utimesMillisSync;const o=r(3901);function copySync(e,t,r){if(typeof r==="function"){r={filter:r}}r=r||{};r.clobber="clobber"in r?!!r.clobber:true;r.overwrite="overwrite"in r?!!r.overwrite:r.clobber;if(r.preserveTimestamps&&process.arch==="ia32"){process.emitWarning("Using the preserveTimestamps option in 32-bit node is not recommended;\n\n"+"\tsee https://github.com/jprichardson/node-fs-extra/issues/269","Warning","fs-extra-WARN0002")}const{srcStat:a,destStat:n}=o.checkPathsSync(e,t,"copy",r);o.checkParentPathsSync(e,a,t,"copy");return handleFilterAndCopy(n,e,t,r)}function handleFilterAndCopy(e,t,r,s){if(s.filter&&!s.filter(t,r))return;const o=n.dirname(r);if(!a.existsSync(o))i(o);return getStats(e,t,r,s)}function startCopy(e,t,r,a){if(a.filter&&!a.filter(t,r))return;return getStats(e,t,r,a)}function getStats(e,t,r,n){const i=n.dereference?a.statSync:a.lstatSync;const s=i(t);if(s.isDirectory())return onDir(s,e,t,r,n);else if(s.isFile()||s.isCharacterDevice()||s.isBlockDevice())return onFile(s,e,t,r,n);else if(s.isSymbolicLink())return onLink(e,t,r,n);else if(s.isSocket())throw new Error(`Cannot copy a socket file: ${t}`);else if(s.isFIFO())throw new Error(`Cannot copy a FIFO pipe: ${t}`);throw new Error(`Unknown file: ${t}`)}function onFile(e,t,r,a,n){if(!t)return copyFile(e,r,a,n);return mayCopyFile(e,r,a,n)}function mayCopyFile(e,t,r,n){if(n.overwrite){a.unlinkSync(r);return copyFile(e,t,r,n)}else if(n.errorOnExist){throw new Error(`'${r}' already exists`)}}function copyFile(e,t,r,n){a.copyFileSync(t,r);if(n.preserveTimestamps)handleTimestamps(e.mode,t,r);return setDestMode(r,e.mode)}function handleTimestamps(e,t,r){if(fileIsNotWritable(e))makeFileWritable(r,e);return setDestTimestamps(t,r)}function fileIsNotWritable(e){return(e&128)===0}function makeFileWritable(e,t){return setDestMode(e,t|128)}function setDestMode(e,t){return a.chmodSync(e,t)}function setDestTimestamps(e,t){const r=a.statSync(e);return s(t,r.atime,r.mtime)}function onDir(e,t,r,a,n){if(!t)return mkDirAndCopy(e.mode,r,a,n);return copyDir(r,a,n)}function mkDirAndCopy(e,t,r,n){a.mkdirSync(r);copyDir(t,r,n);return setDestMode(r,e)}function copyDir(e,t,r){a.readdirSync(e).forEach((a=>copyDirItem(a,e,t,r)))}function copyDirItem(e,t,r,a){const i=n.join(t,e);const s=n.join(r,e);const{destStat:p}=o.checkPathsSync(i,s,"copy",a);return startCopy(p,i,s,a)}function onLink(e,t,r,i){let s=a.readlinkSync(t);if(i.dereference){s=n.resolve(process.cwd(),s)}if(!e){return a.symlinkSync(s,r)}else{let e;try{e=a.readlinkSync(r)}catch(e){if(e.code==="EINVAL"||e.code==="UNKNOWN")return a.symlinkSync(s,r);throw e}if(i.dereference){e=n.resolve(process.cwd(),e)}if(o.isSrcSubdir(s,e)){throw new Error(`Cannot copy '${s}' to a subdirectory of itself, '${e}'.`)}if(a.statSync(r).isDirectory()&&o.isSrcSubdir(e,s)){throw new Error(`Cannot overwrite '${e}' with '${s}'.`)}return copyLink(s,r)}}function copyLink(e,t){a.unlinkSync(t);return a.symlinkSync(e,t)}e.exports=copySync},8834:(e,t,r)=>{"use strict";const a=r(7758);const n=r(1017);const i=r(2915).mkdirs;const s=r(3835).pathExists;const o=r(2548).utimesMillis;const p=r(3901);function copy(e,t,r,a){if(typeof r==="function"&&!a){a=r;r={}}else if(typeof r==="function"){r={filter:r}}a=a||function(){};r=r||{};r.clobber="clobber"in r?!!r.clobber:true;r.overwrite="overwrite"in r?!!r.overwrite:r.clobber;if(r.preserveTimestamps&&process.arch==="ia32"){process.emitWarning("Using the preserveTimestamps option in 32-bit node is not recommended;\n\n"+"\tsee https://github.com/jprichardson/node-fs-extra/issues/269","Warning","fs-extra-WARN0001")}p.checkPaths(e,t,"copy",r,((n,i)=>{if(n)return a(n);const{srcStat:s,destStat:o}=i;p.checkParentPaths(e,s,t,"copy",(n=>{if(n)return a(n);if(r.filter)return handleFilter(checkParentDir,o,e,t,r,a);return checkParentDir(o,e,t,r,a)}))}))}function checkParentDir(e,t,r,a,o){const p=n.dirname(r);s(p,((n,s)=>{if(n)return o(n);if(s)return getStats(e,t,r,a,o);i(p,(n=>{if(n)return o(n);return getStats(e,t,r,a,o)}))}))}function handleFilter(e,t,r,a,n,i){Promise.resolve(n.filter(r,a)).then((s=>{if(s)return e(t,r,a,n,i);return i()}),(e=>i(e)))}function startCopy(e,t,r,a,n){if(a.filter)return handleFilter(getStats,e,t,r,a,n);return getStats(e,t,r,a,n)}function getStats(e,t,r,n,i){const s=n.dereference?a.stat:a.lstat;s(t,((a,s)=>{if(a)return i(a);if(s.isDirectory())return onDir(s,e,t,r,n,i);else if(s.isFile()||s.isCharacterDevice()||s.isBlockDevice())return onFile(s,e,t,r,n,i);else if(s.isSymbolicLink())return onLink(e,t,r,n,i);else if(s.isSocket())return i(new Error(`Cannot copy a socket file: ${t}`));else if(s.isFIFO())return i(new Error(`Cannot copy a FIFO pipe: ${t}`));return i(new Error(`Unknown file: ${t}`))}))}function onFile(e,t,r,a,n,i){if(!t)return copyFile(e,r,a,n,i);return mayCopyFile(e,r,a,n,i)}function mayCopyFile(e,t,r,n,i){if(n.overwrite){a.unlink(r,(a=>{if(a)return i(a);return copyFile(e,t,r,n,i)}))}else if(n.errorOnExist){return i(new Error(`'${r}' already exists`))}else return i()}function copyFile(e,t,r,n,i){a.copyFile(t,r,(a=>{if(a)return i(a);if(n.preserveTimestamps)return handleTimestampsAndMode(e.mode,t,r,i);return setDestMode(r,e.mode,i)}))}function handleTimestampsAndMode(e,t,r,a){if(fileIsNotWritable(e)){return makeFileWritable(r,e,(n=>{if(n)return a(n);return setDestTimestampsAndMode(e,t,r,a)}))}return setDestTimestampsAndMode(e,t,r,a)}function fileIsNotWritable(e){return(e&128)===0}function makeFileWritable(e,t,r){return setDestMode(e,t|128,r)}function setDestTimestampsAndMode(e,t,r,a){setDestTimestamps(t,r,(t=>{if(t)return a(t);return setDestMode(r,e,a)}))}function setDestMode(e,t,r){return a.chmod(e,t,r)}function setDestTimestamps(e,t,r){a.stat(e,((e,a)=>{if(e)return r(e);return o(t,a.atime,a.mtime,r)}))}function onDir(e,t,r,a,n,i){if(!t)return mkDirAndCopy(e.mode,r,a,n,i);return copyDir(r,a,n,i)}function mkDirAndCopy(e,t,r,n,i){a.mkdir(r,(a=>{if(a)return i(a);copyDir(t,r,n,(t=>{if(t)return i(t);return setDestMode(r,e,i)}))}))}function copyDir(e,t,r,n){a.readdir(e,((a,i)=>{if(a)return n(a);return copyDirItems(i,e,t,r,n)}))}function copyDirItems(e,t,r,a,n){const i=e.pop();if(!i)return n();return copyDirItem(e,i,t,r,a,n)}function copyDirItem(e,t,r,a,i,s){const o=n.join(r,t);const c=n.join(a,t);p.checkPaths(o,c,"copy",i,((t,n)=>{if(t)return s(t);const{destStat:p}=n;startCopy(p,o,c,i,(t=>{if(t)return s(t);return copyDirItems(e,r,a,i,s)}))}))}function onLink(e,t,r,i,s){a.readlink(t,((t,o)=>{if(t)return s(t);if(i.dereference){o=n.resolve(process.cwd(),o)}if(!e){return a.symlink(o,r,s)}else{a.readlink(r,((t,c)=>{if(t){if(t.code==="EINVAL"||t.code==="UNKNOWN")return a.symlink(o,r,s);return s(t)}if(i.dereference){c=n.resolve(process.cwd(),c)}if(p.isSrcSubdir(o,c)){return s(new Error(`Cannot copy '${o}' to a subdirectory of itself, '${c}'.`))}if(e.isDirectory()&&p.isSrcSubdir(c,o)){return s(new Error(`Cannot overwrite '${c}' with '${o}'.`))}return copyLink(o,r,s)}))}}))}function copyLink(e,t,r){a.unlink(t,(n=>{if(n)return r(n);return a.symlink(e,t,r)}))}e.exports=copy},1335:(e,t,r)=>{"use strict";const a=r(9046).fromCallback;e.exports={copy:a(r(8834)),copySync:r(9618)}},6970:(e,t,r)=>{"use strict";const a=r(9046).fromPromise;const n=r(1176);const i=r(1017);const s=r(2915);const o=r(7357);const p=a((async function emptyDir(e){let t;try{t=await n.readdir(e)}catch{return s.mkdirs(e)}return Promise.all(t.map((t=>o.remove(i.join(e,t)))))}));function emptyDirSync(e){let t;try{t=n.readdirSync(e)}catch{return s.mkdirsSync(e)}t.forEach((t=>{t=i.join(e,t);o.removeSync(t)}))}e.exports={emptyDirSync:emptyDirSync,emptydirSync:emptyDirSync,emptyDir:p,emptydir:p}},2164:(e,t,r)=>{"use strict";const a=r(9046).fromCallback;const n=r(1017);const i=r(7758);const s=r(2915);function createFile(e,t){function makeFile(){i.writeFile(e,"",(e=>{if(e)return t(e);t()}))}i.stat(e,((r,a)=>{if(!r&&a.isFile())return t();const o=n.dirname(e);i.stat(o,((e,r)=>{if(e){if(e.code==="ENOENT"){return s.mkdirs(o,(e=>{if(e)return t(e);makeFile()}))}return t(e)}if(r.isDirectory())makeFile();else{i.readdir(o,(e=>{if(e)return t(e)}))}}))}))}function createFileSync(e){let t;try{t=i.statSync(e)}catch{}if(t&&t.isFile())return;const r=n.dirname(e);try{if(!i.statSync(r).isDirectory()){i.readdirSync(r)}}catch(e){if(e&&e.code==="ENOENT")s.mkdirsSync(r);else throw e}i.writeFileSync(e,"")}e.exports={createFile:a(createFile),createFileSync:createFileSync}},55:(e,t,r)=>{"use strict";const{createFile:a,createFileSync:n}=r(2164);const{createLink:i,createLinkSync:s}=r(3797);const{createSymlink:o,createSymlinkSync:p}=r(2549);e.exports={createFile:a,createFileSync:n,ensureFile:a,ensureFileSync:n,createLink:i,createLinkSync:s,ensureLink:i,ensureLinkSync:s,createSymlink:o,createSymlinkSync:p,ensureSymlink:o,ensureSymlinkSync:p}},3797:(e,t,r)=>{"use strict";const a=r(9046).fromCallback;const n=r(1017);const i=r(7758);const s=r(2915);const o=r(3835).pathExists;const{areIdentical:p}=r(3901);function createLink(e,t,r){function makeLink(e,t){i.link(e,t,(e=>{if(e)return r(e);r(null)}))}i.lstat(t,((a,c)=>{i.lstat(e,((a,i)=>{if(a){a.message=a.message.replace("lstat","ensureLink");return r(a)}if(c&&p(i,c))return r(null);const l=n.dirname(t);o(l,((a,n)=>{if(a)return r(a);if(n)return makeLink(e,t);s.mkdirs(l,(a=>{if(a)return r(a);makeLink(e,t)}))}))}))}))}function createLinkSync(e,t){let r;try{r=i.lstatSync(t)}catch{}try{const t=i.lstatSync(e);if(r&&p(t,r))return}catch(e){e.message=e.message.replace("lstat","ensureLink");throw e}const a=n.dirname(t);const o=i.existsSync(a);if(o)return i.linkSync(e,t);s.mkdirsSync(a);return i.linkSync(e,t)}e.exports={createLink:a(createLink),createLinkSync:createLinkSync}},3727:(e,t,r)=>{"use strict";const a=r(1017);const n=r(7758);const i=r(3835).pathExists;function symlinkPaths(e,t,r){if(a.isAbsolute(e)){return n.lstat(e,(t=>{if(t){t.message=t.message.replace("lstat","ensureSymlink");return r(t)}return r(null,{toCwd:e,toDst:e})}))}else{const s=a.dirname(t);const o=a.join(s,e);return i(o,((t,i)=>{if(t)return r(t);if(i){return r(null,{toCwd:o,toDst:e})}else{return n.lstat(e,(t=>{if(t){t.message=t.message.replace("lstat","ensureSymlink");return r(t)}return r(null,{toCwd:e,toDst:a.relative(s,e)})}))}}))}}function symlinkPathsSync(e,t){let r;if(a.isAbsolute(e)){r=n.existsSync(e);if(!r)throw new Error("absolute srcpath does not exist");return{toCwd:e,toDst:e}}else{const i=a.dirname(t);const s=a.join(i,e);r=n.existsSync(s);if(r){return{toCwd:s,toDst:e}}else{r=n.existsSync(e);if(!r)throw new Error("relative srcpath does not exist");return{toCwd:e,toDst:a.relative(i,e)}}}}e.exports={symlinkPaths:symlinkPaths,symlinkPathsSync:symlinkPathsSync}},8254:(e,t,r)=>{"use strict";const a=r(7758);function symlinkType(e,t,r){r=typeof t==="function"?t:r;t=typeof t==="function"?false:t;if(t)return r(null,t);a.lstat(e,((e,a)=>{if(e)return r(null,"file");t=a&&a.isDirectory()?"dir":"file";r(null,t)}))}function symlinkTypeSync(e,t){let r;if(t)return t;try{r=a.lstatSync(e)}catch{return"file"}return r&&r.isDirectory()?"dir":"file"}e.exports={symlinkType:symlinkType,symlinkTypeSync:symlinkTypeSync}},2549:(e,t,r)=>{"use strict";const a=r(9046).fromCallback;const n=r(1017);const i=r(1176);const s=r(2915);const o=s.mkdirs;const p=s.mkdirsSync;const c=r(3727);const l=c.symlinkPaths;const d=c.symlinkPathsSync;const u=r(8254);const m=u.symlinkType;const h=u.symlinkTypeSync;const g=r(3835).pathExists;const{areIdentical:v}=r(3901);function createSymlink(e,t,r,a){a=typeof r==="function"?r:a;r=typeof r==="function"?false:r;i.lstat(t,((n,s)=>{if(!n&&s.isSymbolicLink()){Promise.all([i.stat(e),i.stat(t)]).then((([n,i])=>{if(v(n,i))return a(null);_createSymlink(e,t,r,a)}))}else _createSymlink(e,t,r,a)}))}function _createSymlink(e,t,r,a){l(e,t,((s,p)=>{if(s)return a(s);e=p.toDst;m(p.toCwd,r,((r,s)=>{if(r)return a(r);const p=n.dirname(t);g(p,((r,n)=>{if(r)return a(r);if(n)return i.symlink(e,t,s,a);o(p,(r=>{if(r)return a(r);i.symlink(e,t,s,a)}))}))}))}))}function createSymlinkSync(e,t,r){let a;try{a=i.lstatSync(t)}catch{}if(a&&a.isSymbolicLink()){const r=i.statSync(e);const a=i.statSync(t);if(v(r,a))return}const s=d(e,t);e=s.toDst;r=h(s.toCwd,r);const o=n.dirname(t);const c=i.existsSync(o);if(c)return i.symlinkSync(e,t,r);p(o);return i.symlinkSync(e,t,r)}e.exports={createSymlink:a(createSymlink),createSymlinkSync:createSymlinkSync}},1176:(e,t,r)=>{"use strict";const a=r(9046).fromCallback;const n=r(7758);const i=["access","appendFile","chmod","chown","close","copyFile","fchmod","fchown","fdatasync","fstat","fsync","ftruncate","futimes","lchmod","lchown","link","lstat","mkdir","mkdtemp","open","opendir","readdir","readFile","readlink","realpath","rename","rm","rmdir","stat","symlink","truncate","unlink","utimes","writeFile"].filter((e=>typeof n[e]==="function"));Object.assign(t,n);i.forEach((e=>{t[e]=a(n[e])}));t.exists=function(e,t){if(typeof t==="function"){return n.exists(e,t)}return new Promise((t=>n.exists(e,t)))};t.read=function(e,t,r,a,i,s){if(typeof s==="function"){return n.read(e,t,r,a,i,s)}return new Promise(((s,o)=>{n.read(e,t,r,a,i,((e,t,r)=>{if(e)return o(e);s({bytesRead:t,buffer:r})}))}))};t.write=function(e,t,...r){if(typeof r[r.length-1]==="function"){return n.write(e,t,...r)}return new Promise(((a,i)=>{n.write(e,t,...r,((e,t,r)=>{if(e)return i(e);a({bytesWritten:t,buffer:r})}))}))};if(typeof n.writev==="function"){t.writev=function(e,t,...r){if(typeof r[r.length-1]==="function"){return n.writev(e,t,...r)}return new Promise(((a,i)=>{n.writev(e,t,...r,((e,t,r)=>{if(e)return i(e);a({bytesWritten:t,buffers:r})}))}))}}if(typeof n.realpath.native==="function"){t.realpath.native=a(n.realpath.native)}else{process.emitWarning("fs.realpath.native is not a function. Is fs being monkey-patched?","Warning","fs-extra-WARN0003")}},5630:(e,t,r)=>{"use strict";e.exports={...r(1176),...r(1335),...r(6970),...r(55),...r(213),...r(2915),...r(1497),...r(1832),...r(3835),...r(7357)}},213:(e,t,r)=>{"use strict";const a=r(9046).fromPromise;const n=r(8970);n.outputJson=a(r(531));n.outputJsonSync=r(9421);n.outputJSON=n.outputJson;n.outputJSONSync=n.outputJsonSync;n.writeJSON=n.writeJson;n.writeJSONSync=n.writeJsonSync;n.readJSON=n.readJson;n.readJSONSync=n.readJsonSync;e.exports=n},8970:(e,t,r)=>{"use strict";const a=r(6160);e.exports={readJson:a.readFile,readJsonSync:a.readFileSync,writeJson:a.writeFile,writeJsonSync:a.writeFileSync}},9421:(e,t,r)=>{"use strict";const{stringify:a}=r(5902);const{outputFileSync:n}=r(1832);function outputJsonSync(e,t,r){const i=a(t,r);n(e,i,r)}e.exports=outputJsonSync},531:(e,t,r)=>{"use strict";const{stringify:a}=r(5902);const{outputFile:n}=r(1832);async function outputJson(e,t,r={}){const i=a(t,r);await n(e,i,r)}e.exports=outputJson},2915:(e,t,r)=>{"use strict";const a=r(9046).fromPromise;const{makeDir:n,makeDirSync:i}=r(2751);const s=a(n);e.exports={mkdirs:s,mkdirsSync:i,mkdirp:s,mkdirpSync:i,ensureDir:s,ensureDirSync:i}},2751:(e,t,r)=>{"use strict";const a=r(1176);const{checkPath:n}=r(9907);const getMode=e=>{const t={mode:511};if(typeof e==="number")return e;return{...t,...e}.mode};e.exports.makeDir=async(e,t)=>{n(e);return a.mkdir(e,{mode:getMode(t),recursive:true})};e.exports.makeDirSync=(e,t)=>{n(e);return a.mkdirSync(e,{mode:getMode(t),recursive:true})}},9907:(e,t,r)=>{"use strict";const a=r(1017);e.exports.checkPath=function checkPath(e){if(process.platform==="win32"){const t=/[<>:"|?*]/.test(e.replace(a.parse(e).root,""));if(t){const t=new Error(`Path contains invalid characters: ${e}`);t.code="EINVAL";throw t}}}},1497:(e,t,r)=>{"use strict";const a=r(9046).fromCallback;e.exports={move:a(r(2231)),moveSync:r(2047)}},2047:(e,t,r)=>{"use strict";const a=r(7758);const n=r(1017);const i=r(1335).copySync;const s=r(7357).removeSync;const o=r(2915).mkdirpSync;const p=r(3901);function moveSync(e,t,r){r=r||{};const a=r.overwrite||r.clobber||false;const{srcStat:i,isChangingCase:s=false}=p.checkPathsSync(e,t,"move",r);p.checkParentPathsSync(e,i,t,"move");if(!isParentRoot(t))o(n.dirname(t));return doRename(e,t,a,s)}function isParentRoot(e){const t=n.dirname(e);const r=n.parse(t);return r.root===t}function doRename(e,t,r,n){if(n)return rename(e,t,r);if(r){s(t);return rename(e,t,r)}if(a.existsSync(t))throw new Error("dest already exists.");return rename(e,t,r)}function rename(e,t,r){try{a.renameSync(e,t)}catch(a){if(a.code!=="EXDEV")throw a;return moveAcrossDevice(e,t,r)}}function moveAcrossDevice(e,t,r){const a={overwrite:r,errorOnExist:true};i(e,t,a);return s(e)}e.exports=moveSync},2231:(e,t,r)=>{"use strict";const a=r(7758);const n=r(1017);const i=r(1335).copy;const s=r(7357).remove;const o=r(2915).mkdirp;const p=r(3835).pathExists;const c=r(3901);function move(e,t,r,a){if(typeof r==="function"){a=r;r={}}r=r||{};const i=r.overwrite||r.clobber||false;c.checkPaths(e,t,"move",r,((r,s)=>{if(r)return a(r);const{srcStat:p,isChangingCase:l=false}=s;c.checkParentPaths(e,p,t,"move",(r=>{if(r)return a(r);if(isParentRoot(t))return doRename(e,t,i,l,a);o(n.dirname(t),(r=>{if(r)return a(r);return doRename(e,t,i,l,a)}))}))}))}function isParentRoot(e){const t=n.dirname(e);const r=n.parse(t);return r.root===t}function doRename(e,t,r,a,n){if(a)return rename(e,t,r,n);if(r){return s(t,(a=>{if(a)return n(a);return rename(e,t,r,n)}))}p(t,((a,i)=>{if(a)return n(a);if(i)return n(new Error("dest already exists."));return rename(e,t,r,n)}))}function rename(e,t,r,n){a.rename(e,t,(a=>{if(!a)return n();if(a.code!=="EXDEV")return n(a);return moveAcrossDevice(e,t,r,n)}))}function moveAcrossDevice(e,t,r,a){const n={overwrite:r,errorOnExist:true};i(e,t,n,(t=>{if(t)return a(t);return s(e,a)}))}e.exports=move},1832:(e,t,r)=>{"use strict";const a=r(9046).fromCallback;const n=r(7758);const i=r(1017);const s=r(2915);const o=r(3835).pathExists;function outputFile(e,t,r,a){if(typeof r==="function"){a=r;r="utf8"}const p=i.dirname(e);o(p,((i,o)=>{if(i)return a(i);if(o)return n.writeFile(e,t,r,a);s.mkdirs(p,(i=>{if(i)return a(i);n.writeFile(e,t,r,a)}))}))}function outputFileSync(e,...t){const r=i.dirname(e);if(n.existsSync(r)){return n.writeFileSync(e,...t)}s.mkdirsSync(r);n.writeFileSync(e,...t)}e.exports={outputFile:a(outputFile),outputFileSync:outputFileSync}},3835:(e,t,r)=>{"use strict";const a=r(9046).fromPromise;const n=r(1176);function pathExists(e){return n.access(e).then((()=>true)).catch((()=>false))}e.exports={pathExists:a(pathExists),pathExistsSync:n.existsSync}},7357:(e,t,r)=>{"use strict";const a=r(7758);const n=r(9046).fromCallback;const i=r(8761);function remove(e,t){if(a.rm)return a.rm(e,{recursive:true,force:true},t);i(e,t)}function removeSync(e){if(a.rmSync)return a.rmSync(e,{recursive:true,force:true});i.sync(e)}e.exports={remove:n(remove),removeSync:removeSync}},8761:(e,t,r)=>{"use strict";const a=r(7758);const n=r(1017);const i=r(9491);const s=process.platform==="win32";function defaults(e){const t=["unlink","chmod","stat","lstat","rmdir","readdir"];t.forEach((t=>{e[t]=e[t]||a[t];t=t+"Sync";e[t]=e[t]||a[t]}));e.maxBusyTries=e.maxBusyTries||3}function rimraf(e,t,r){let a=0;if(typeof t==="function"){r=t;t={}}i(e,"rimraf: missing path");i.strictEqual(typeof e,"string","rimraf: path should be a string");i.strictEqual(typeof r,"function","rimraf: callback function required");i(t,"rimraf: invalid options argument provided");i.strictEqual(typeof t,"object","rimraf: options should be object");defaults(t);rimraf_(e,t,(function CB(n){if(n){if((n.code==="EBUSY"||n.code==="ENOTEMPTY"||n.code==="EPERM")&&arimraf_(e,t,CB)),r)}if(n.code==="ENOENT")n=null}r(n)}))}function rimraf_(e,t,r){i(e);i(t);i(typeof r==="function");t.lstat(e,((a,n)=>{if(a&&a.code==="ENOENT"){return r(null)}if(a&&a.code==="EPERM"&&s){return fixWinEPERM(e,t,a,r)}if(n&&n.isDirectory()){return rmdir(e,t,a,r)}t.unlink(e,(a=>{if(a){if(a.code==="ENOENT"){return r(null)}if(a.code==="EPERM"){return s?fixWinEPERM(e,t,a,r):rmdir(e,t,a,r)}if(a.code==="EISDIR"){return rmdir(e,t,a,r)}}return r(a)}))}))}function fixWinEPERM(e,t,r,a){i(e);i(t);i(typeof a==="function");t.chmod(e,438,(n=>{if(n){a(n.code==="ENOENT"?null:r)}else{t.stat(e,((n,i)=>{if(n){a(n.code==="ENOENT"?null:r)}else if(i.isDirectory()){rmdir(e,t,r,a)}else{t.unlink(e,a)}}))}}))}function fixWinEPERMSync(e,t,r){let a;i(e);i(t);try{t.chmodSync(e,438)}catch(e){if(e.code==="ENOENT"){return}else{throw r}}try{a=t.statSync(e)}catch(e){if(e.code==="ENOENT"){return}else{throw r}}if(a.isDirectory()){rmdirSync(e,t,r)}else{t.unlinkSync(e)}}function rmdir(e,t,r,a){i(e);i(t);i(typeof a==="function");t.rmdir(e,(n=>{if(n&&(n.code==="ENOTEMPTY"||n.code==="EEXIST"||n.code==="EPERM")){rmkids(e,t,a)}else if(n&&n.code==="ENOTDIR"){a(r)}else{a(n)}}))}function rmkids(e,t,r){i(e);i(t);i(typeof r==="function");t.readdir(e,((a,i)=>{if(a)return r(a);let s=i.length;let o;if(s===0)return t.rmdir(e,r);i.forEach((a=>{rimraf(n.join(e,a),t,(a=>{if(o){return}if(a)return r(o=a);if(--s===0){t.rmdir(e,r)}}))}))}))}function rimrafSync(e,t){let r;t=t||{};defaults(t);i(e,"rimraf: missing path");i.strictEqual(typeof e,"string","rimraf: path should be a string");i(t,"rimraf: missing options");i.strictEqual(typeof t,"object","rimraf: options should be object");try{r=t.lstatSync(e)}catch(r){if(r.code==="ENOENT"){return}if(r.code==="EPERM"&&s){fixWinEPERMSync(e,t,r)}}try{if(r&&r.isDirectory()){rmdirSync(e,t,null)}else{t.unlinkSync(e)}}catch(r){if(r.code==="ENOENT"){return}else if(r.code==="EPERM"){return s?fixWinEPERMSync(e,t,r):rmdirSync(e,t,r)}else if(r.code!=="EISDIR"){throw r}rmdirSync(e,t,r)}}function rmdirSync(e,t,r){i(e);i(t);try{t.rmdirSync(e)}catch(a){if(a.code==="ENOTDIR"){throw r}else if(a.code==="ENOTEMPTY"||a.code==="EEXIST"||a.code==="EPERM"){rmkidsSync(e,t)}else if(a.code!=="ENOENT"){throw a}}}function rmkidsSync(e,t){i(e);i(t);t.readdirSync(e).forEach((r=>rimrafSync(n.join(e,r),t)));if(s){const r=Date.now();do{try{const r=t.rmdirSync(e,t);return r}catch{}}while(Date.now()-r<500)}else{const r=t.rmdirSync(e,t);return r}}e.exports=rimraf;rimraf.sync=rimrafSync},3901:(e,t,r)=>{"use strict";const a=r(1176);const n=r(1017);const i=r(3837);function getStats(e,t,r){const n=r.dereference?e=>a.stat(e,{bigint:true}):e=>a.lstat(e,{bigint:true});return Promise.all([n(e),n(t).catch((e=>{if(e.code==="ENOENT")return null;throw e}))]).then((([e,t])=>({srcStat:e,destStat:t})))}function getStatsSync(e,t,r){let n;const i=r.dereference?e=>a.statSync(e,{bigint:true}):e=>a.lstatSync(e,{bigint:true});const s=i(e);try{n=i(t)}catch(e){if(e.code==="ENOENT")return{srcStat:s,destStat:null};throw e}return{srcStat:s,destStat:n}}function checkPaths(e,t,r,a,s){i.callbackify(getStats)(e,t,a,((a,i)=>{if(a)return s(a);const{srcStat:o,destStat:p}=i;if(p){if(areIdentical(o,p)){const a=n.basename(e);const i=n.basename(t);if(r==="move"&&a!==i&&a.toLowerCase()===i.toLowerCase()){return s(null,{srcStat:o,destStat:p,isChangingCase:true})}return s(new Error("Source and destination must not be the same."))}if(o.isDirectory()&&!p.isDirectory()){return s(new Error(`Cannot overwrite non-directory '${t}' with directory '${e}'.`))}if(!o.isDirectory()&&p.isDirectory()){return s(new Error(`Cannot overwrite directory '${t}' with non-directory '${e}'.`))}}if(o.isDirectory()&&isSrcSubdir(e,t)){return s(new Error(errMsg(e,t,r)))}return s(null,{srcStat:o,destStat:p})}))}function checkPathsSync(e,t,r,a){const{srcStat:i,destStat:s}=getStatsSync(e,t,a);if(s){if(areIdentical(i,s)){const a=n.basename(e);const o=n.basename(t);if(r==="move"&&a!==o&&a.toLowerCase()===o.toLowerCase()){return{srcStat:i,destStat:s,isChangingCase:true}}throw new Error("Source and destination must not be the same.")}if(i.isDirectory()&&!s.isDirectory()){throw new Error(`Cannot overwrite non-directory '${t}' with directory '${e}'.`)}if(!i.isDirectory()&&s.isDirectory()){throw new Error(`Cannot overwrite directory '${t}' with non-directory '${e}'.`)}}if(i.isDirectory()&&isSrcSubdir(e,t)){throw new Error(errMsg(e,t,r))}return{srcStat:i,destStat:s}}function checkParentPaths(e,t,r,i,s){const o=n.resolve(n.dirname(e));const p=n.resolve(n.dirname(r));if(p===o||p===n.parse(p).root)return s();a.stat(p,{bigint:true},((a,n)=>{if(a){if(a.code==="ENOENT")return s();return s(a)}if(areIdentical(t,n)){return s(new Error(errMsg(e,r,i)))}return checkParentPaths(e,t,p,i,s)}))}function checkParentPathsSync(e,t,r,i){const s=n.resolve(n.dirname(e));const o=n.resolve(n.dirname(r));if(o===s||o===n.parse(o).root)return;let p;try{p=a.statSync(o,{bigint:true})}catch(e){if(e.code==="ENOENT")return;throw e}if(areIdentical(t,p)){throw new Error(errMsg(e,r,i))}return checkParentPathsSync(e,t,o,i)}function areIdentical(e,t){return t.ino&&t.dev&&t.ino===e.ino&&t.dev===e.dev}function isSrcSubdir(e,t){const r=n.resolve(e).split(n.sep).filter((e=>e));const a=n.resolve(t).split(n.sep).filter((e=>e));return r.reduce(((e,t,r)=>e&&a[r]===t),true)}function errMsg(e,t,r){return`Cannot ${r} '${e}' to a subdirectory of itself, '${t}'.`}e.exports={checkPaths:checkPaths,checkPathsSync:checkPathsSync,checkParentPaths:checkParentPaths,checkParentPathsSync:checkParentPathsSync,isSrcSubdir:isSrcSubdir,areIdentical:areIdentical}},2548:(e,t,r)=>{"use strict";const a=r(7758);function utimesMillis(e,t,r,n){a.open(e,"r+",((e,i)=>{if(e)return n(e);a.futimes(i,t,r,(e=>{a.close(i,(t=>{if(n)n(e||t)}))}))}))}function utimesMillisSync(e,t,r){const n=a.openSync(e,"r+");a.futimesSync(n,t,r);return a.closeSync(n)}e.exports={utimesMillis:utimesMillis,utimesMillisSync:utimesMillisSync}},6863:(e,t,r)=>{e.exports=realpath;realpath.realpath=realpath;realpath.sync=realpathSync;realpath.realpathSync=realpathSync;realpath.monkeypatch=monkeypatch;realpath.unmonkeypatch=unmonkeypatch;var a=r(7147);var n=a.realpath;var i=a.realpathSync;var s=process.version;var o=/^v[0-5]\./.test(s);var p=r(1734);function newError(e){return e&&e.syscall==="realpath"&&(e.code==="ELOOP"||e.code==="ENOMEM"||e.code==="ENAMETOOLONG")}function realpath(e,t,r){if(o){return n(e,t,r)}if(typeof t==="function"){r=t;t=null}n(e,t,(function(a,n){if(newError(a)){p.realpath(e,t,r)}else{r(a,n)}}))}function realpathSync(e,t){if(o){return i(e,t)}try{return i(e,t)}catch(r){if(newError(r)){return p.realpathSync(e,t)}else{throw r}}}function monkeypatch(){a.realpath=realpath;a.realpathSync=realpathSync}function unmonkeypatch(){a.realpath=n;a.realpathSync=i}},1734:(e,t,r)=>{var a=r(1017);var n=process.platform==="win32";var i=r(7147);var s=process.env.NODE_DEBUG&&/fs/.test(process.env.NODE_DEBUG);function rethrow(){var e;if(s){var t=new Error;e=debugCallback}else e=missingCallback;return e;function debugCallback(e){if(e){t.message=e.message;e=t;missingCallback(e)}}function missingCallback(e){if(e){if(process.throwDeprecation)throw e;else if(!process.noDeprecation){var t="fs: missing callback "+(e.stack||e.message);if(process.traceDeprecation)console.trace(t);else console.error(t)}}}}function maybeCallback(e){return typeof e==="function"?e:rethrow()}var o=a.normalize;if(n){var p=/(.*?)(?:[\/\\]+|$)/g}else{var p=/(.*?)(?:[\/]+|$)/g}if(n){var c=/^(?:[a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/][^\\\/]+)?[\\\/]*/}else{var c=/^[\/]*/}t.realpathSync=function realpathSync(e,t){e=a.resolve(e);if(t&&Object.prototype.hasOwnProperty.call(t,e)){return t[e]}var r=e,s={},o={};var l;var d;var u;var m;start();function start(){var t=c.exec(e);l=t[0].length;d=t[0];u=t[0];m="";if(n&&!o[u]){i.lstatSync(u);o[u]=true}}while(l=e.length){if(t)t[s]=e;return r(null,e)}p.lastIndex=d;var a=p.exec(e);h=u;u+=a[0];m=h+a[1];d=p.lastIndex;if(l[m]||t&&t[m]===m){return process.nextTick(LOOP)}if(t&&Object.prototype.hasOwnProperty.call(t,m)){return gotResolvedLink(t[m])}return i.lstat(m,gotStat)}function gotStat(e,a){if(e)return r(e);if(!a.isSymbolicLink()){l[m]=true;if(t)t[m]=m;return process.nextTick(LOOP)}if(!n){var s=a.dev.toString(32)+":"+a.ino.toString(32);if(o.hasOwnProperty(s)){return gotTarget(null,o[s],m)}}i.stat(m,(function(e){if(e)return r(e);i.readlink(m,(function(e,t){if(!n)o[s]=t;gotTarget(e,t)}))}))}function gotTarget(e,n,i){if(e)return r(e);var s=a.resolve(h,n);if(t)t[i]=s;gotResolvedLink(s)}function gotResolvedLink(t){e=a.resolve(t,e.slice(d));start()}}},7625:(e,t,r)=>{t.setopts=setopts;t.ownProp=ownProp;t.makeAbs=makeAbs;t.finish=finish;t.mark=mark;t.isIgnored=isIgnored;t.childrenIgnored=childrenIgnored;function ownProp(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var a=r(7147);var n=r(1017);var i=r(3973);var s=r(8714);var o=i.Minimatch;function alphasort(e,t){return e.localeCompare(t,"en")}function setupIgnores(e,t){e.ignore=t.ignore||[];if(!Array.isArray(e.ignore))e.ignore=[e.ignore];if(e.ignore.length){e.ignore=e.ignore.map(ignoreMap)}}function ignoreMap(e){var t=null;if(e.slice(-3)==="/**"){var r=e.replace(/(\/\*\*)+$/,"");t=new o(r,{dot:true})}return{matcher:new o(e,{dot:true}),gmatcher:t}}function setopts(e,t,r){if(!r)r={};if(r.matchBase&&-1===t.indexOf("/")){if(r.noglobstar){throw new Error("base matching requires globstar")}t="**/"+t}e.silent=!!r.silent;e.pattern=t;e.strict=r.strict!==false;e.realpath=!!r.realpath;e.realpathCache=r.realpathCache||Object.create(null);e.follow=!!r.follow;e.dot=!!r.dot;e.mark=!!r.mark;e.nodir=!!r.nodir;if(e.nodir)e.mark=true;e.sync=!!r.sync;e.nounique=!!r.nounique;e.nonull=!!r.nonull;e.nosort=!!r.nosort;e.nocase=!!r.nocase;e.stat=!!r.stat;e.noprocess=!!r.noprocess;e.absolute=!!r.absolute;e.fs=r.fs||a;e.maxLength=r.maxLength||Infinity;e.cache=r.cache||Object.create(null);e.statCache=r.statCache||Object.create(null);e.symlinks=r.symlinks||Object.create(null);setupIgnores(e,r);e.changedCwd=false;var i=process.cwd();if(!ownProp(r,"cwd"))e.cwd=i;else{e.cwd=n.resolve(r.cwd);e.changedCwd=e.cwd!==i}e.root=r.root||n.resolve(e.cwd,"/");e.root=n.resolve(e.root);if(process.platform==="win32")e.root=e.root.replace(/\\/g,"/");e.cwdAbs=s(e.cwd)?e.cwd:makeAbs(e,e.cwd);if(process.platform==="win32")e.cwdAbs=e.cwdAbs.replace(/\\/g,"/");e.nomount=!!r.nomount;r.nonegate=true;r.nocomment=true;r.allowWindowsEscape=false;e.minimatch=new o(t,r);e.options=e.minimatch.options}function finish(e){var t=e.nounique;var r=t?[]:Object.create(null);for(var a=0,n=e.matches.length;a{e.exports=glob;var a=r(6863);var n=r(3973);var i=n.Minimatch;var s=r(7278);var o=r(2361).EventEmitter;var p=r(1017);var c=r(9491);var l=r(8714);var d=r(9010);var u=r(7625);var m=u.setopts;var h=u.ownProp;var g=r(2492);var v=r(3837);var y=u.childrenIgnored;var b=u.isIgnored;var w=r(1223);function glob(e,t,r){if(typeof t==="function")r=t,t={};if(!t)t={};if(t.sync){if(r)throw new TypeError("callback provided to sync glob");return d(e,t)}return new Glob(e,t,r)}glob.sync=d;var x=glob.GlobSync=d.GlobSync;glob.glob=glob;function extend(e,t){if(t===null||typeof t!=="object"){return e}var r=Object.keys(t);var a=r.length;while(a--){e[r[a]]=t[r[a]]}return e}glob.hasMagic=function(e,t){var r=extend({},t);r.noprocess=true;var a=new Glob(e,r);var n=a.minimatch.set;if(!e)return false;if(n.length>1)return true;for(var i=0;ithis.maxLength)return t();if(!this.stat&&h(this.cache,r)){var n=this.cache[r];if(Array.isArray(n))n="DIR";if(!a||n==="DIR")return t(null,n);if(a&&n==="FILE")return t()}var i;var s=this.statCache[r];if(s!==undefined){if(s===false)return t(null,s);else{var o=s.isDirectory()?"DIR":"FILE";if(a&&o==="FILE")return t();else return t(null,o,s)}}var p=this;var c=g("stat\0"+r,lstatcb_);if(c)p.fs.lstat(r,c);function lstatcb_(a,n){if(n&&n.isSymbolicLink()){return p.fs.stat(r,(function(a,i){if(a)p._stat2(e,r,null,n,t);else p._stat2(e,r,a,i,t)}))}else{p._stat2(e,r,a,n,t)}}};Glob.prototype._stat2=function(e,t,r,a,n){if(r&&(r.code==="ENOENT"||r.code==="ENOTDIR")){this.statCache[t]=false;return n()}var i=e.slice(-1)==="/";this.statCache[t]=a;if(t.slice(-1)==="/"&&a&&!a.isDirectory())return n(null,false,a);var s=true;if(a)s=a.isDirectory()?"DIR":"FILE";this.cache[t]=this.cache[t]||s;if(i&&s==="FILE")return n();return n(null,s,a)}},9010:(e,t,r)=>{e.exports=globSync;globSync.GlobSync=GlobSync;var a=r(6863);var n=r(3973);var i=n.Minimatch;var s=r(1957).Glob;var o=r(3837);var p=r(1017);var c=r(9491);var l=r(8714);var d=r(7625);var u=d.setopts;var m=d.ownProp;var h=d.childrenIgnored;var g=d.isIgnored;function globSync(e,t){if(typeof t==="function"||arguments.length===3)throw new TypeError("callback provided to sync glob\n"+"See: https://github.com/isaacs/node-glob/issues/167");return new GlobSync(e,t).found}function GlobSync(e,t){if(!e)throw new Error("must provide pattern");if(typeof t==="function"||arguments.length===3)throw new TypeError("callback provided to sync glob\n"+"See: https://github.com/isaacs/node-glob/issues/167");if(!(this instanceof GlobSync))return new GlobSync(e,t);u(this,e,t);if(this.noprocess)return this;var r=this.minimatch.set.length;this.matches=new Array(r);for(var a=0;athis.maxLength)return false;if(!this.stat&&m(this.cache,t)){var a=this.cache[t];if(Array.isArray(a))a="DIR";if(!r||a==="DIR")return a;if(r&&a==="FILE")return false}var n;var i=this.statCache[t];if(!i){var s;try{s=this.fs.lstatSync(t)}catch(e){if(e&&(e.code==="ENOENT"||e.code==="ENOTDIR")){this.statCache[t]=false;return false}}if(s&&s.isSymbolicLink()){try{i=this.fs.statSync(t)}catch(e){i=s}}else{i=s}}this.statCache[t]=i;var a=true;if(i)a=i.isDirectory()?"DIR":"FILE";this.cache[t]=this.cache[t]||a;if(r&&a==="FILE")return false;return a};GlobSync.prototype._mark=function(e){return d.mark(this,e)};GlobSync.prototype._makeAbs=function(e){return d.makeAbs(this,e)}},7356:e=>{"use strict";e.exports=clone;var t=Object.getPrototypeOf||function(e){return e.__proto__};function clone(e){if(e===null||typeof e!=="object")return e;if(e instanceof Object)var r={__proto__:t(e)};else var r=Object.create(null);Object.getOwnPropertyNames(e).forEach((function(t){Object.defineProperty(r,t,Object.getOwnPropertyDescriptor(e,t))}));return r}},7758:(e,t,r)=>{var a=r(7147);var n=r(263);var i=r(3086);var s=r(7356);var o=r(3837);var p;var c;if(typeof Symbol==="function"&&typeof Symbol.for==="function"){p=Symbol.for("graceful-fs.queue");c=Symbol.for("graceful-fs.previous")}else{p="___graceful-fs.queue";c="___graceful-fs.previous"}function noop(){}function publishQueue(e,t){Object.defineProperty(e,p,{get:function(){return t}})}var l=noop;if(o.debuglog)l=o.debuglog("gfs4");else if(/\bgfs4\b/i.test(process.env.NODE_DEBUG||""))l=function(){var e=o.format.apply(o,arguments);e="GFS4: "+e.split(/\n/).join("\nGFS4: ");console.error(e)};if(!a[p]){var d=global[p]||[];publishQueue(a,d);a.close=function(e){function close(t,r){return e.call(a,t,(function(e){if(!e){resetQueue()}if(typeof r==="function")r.apply(this,arguments)}))}Object.defineProperty(close,c,{value:e});return close}(a.close);a.closeSync=function(e){function closeSync(t){e.apply(a,arguments);resetQueue()}Object.defineProperty(closeSync,c,{value:e});return closeSync}(a.closeSync);if(/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")){process.on("exit",(function(){l(a[p]);r(9491).equal(a[p].length,0)}))}}if(!global[p]){publishQueue(global,a[p])}e.exports=patch(s(a));if(process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH&&!a.__patched){e.exports=patch(a);a.__patched=true}function patch(e){n(e);e.gracefulify=patch;e.createReadStream=createReadStream;e.createWriteStream=createWriteStream;var t=e.readFile;e.readFile=readFile;function readFile(e,r,a){if(typeof r==="function")a=r,r=null;return go$readFile(e,r,a);function go$readFile(e,r,a,n){return t(e,r,(function(t){if(t&&(t.code==="EMFILE"||t.code==="ENFILE"))enqueue([go$readFile,[e,r,a],t,n||Date.now(),Date.now()]);else{if(typeof a==="function")a.apply(this,arguments)}}))}}var r=e.writeFile;e.writeFile=writeFile;function writeFile(e,t,a,n){if(typeof a==="function")n=a,a=null;return go$writeFile(e,t,a,n);function go$writeFile(e,t,a,n,i){return r(e,t,a,(function(r){if(r&&(r.code==="EMFILE"||r.code==="ENFILE"))enqueue([go$writeFile,[e,t,a,n],r,i||Date.now(),Date.now()]);else{if(typeof n==="function")n.apply(this,arguments)}}))}}var a=e.appendFile;if(a)e.appendFile=appendFile;function appendFile(e,t,r,n){if(typeof r==="function")n=r,r=null;return go$appendFile(e,t,r,n);function go$appendFile(e,t,r,n,i){return a(e,t,r,(function(a){if(a&&(a.code==="EMFILE"||a.code==="ENFILE"))enqueue([go$appendFile,[e,t,r,n],a,i||Date.now(),Date.now()]);else{if(typeof n==="function")n.apply(this,arguments)}}))}}var s=e.copyFile;if(s)e.copyFile=copyFile;function copyFile(e,t,r,a){if(typeof r==="function"){a=r;r=0}return go$copyFile(e,t,r,a);function go$copyFile(e,t,r,a,n){return s(e,t,r,(function(i){if(i&&(i.code==="EMFILE"||i.code==="ENFILE"))enqueue([go$copyFile,[e,t,r,a],i,n||Date.now(),Date.now()]);else{if(typeof a==="function")a.apply(this,arguments)}}))}}var o=e.readdir;e.readdir=readdir;var p=/^v[0-5]\./;function readdir(e,t,r){if(typeof t==="function")r=t,t=null;var a=p.test(process.version)?function go$readdir(e,t,r,a){return o(e,fs$readdirCallback(e,t,r,a))}:function go$readdir(e,t,r,a){return o(e,t,fs$readdirCallback(e,t,r,a))};return a(e,t,r);function fs$readdirCallback(e,t,r,n){return function(i,s){if(i&&(i.code==="EMFILE"||i.code==="ENFILE"))enqueue([a,[e,t,r],i,n||Date.now(),Date.now()]);else{if(s&&s.sort)s.sort();if(typeof r==="function")r.call(this,i,s)}}}}if(process.version.substr(0,4)==="v0.8"){var c=i(e);ReadStream=c.ReadStream;WriteStream=c.WriteStream}var l=e.ReadStream;if(l){ReadStream.prototype=Object.create(l.prototype);ReadStream.prototype.open=ReadStream$open}var d=e.WriteStream;if(d){WriteStream.prototype=Object.create(d.prototype);WriteStream.prototype.open=WriteStream$open}Object.defineProperty(e,"ReadStream",{get:function(){return ReadStream},set:function(e){ReadStream=e},enumerable:true,configurable:true});Object.defineProperty(e,"WriteStream",{get:function(){return WriteStream},set:function(e){WriteStream=e},enumerable:true,configurable:true});var u=ReadStream;Object.defineProperty(e,"FileReadStream",{get:function(){return u},set:function(e){u=e},enumerable:true,configurable:true});var m=WriteStream;Object.defineProperty(e,"FileWriteStream",{get:function(){return m},set:function(e){m=e},enumerable:true,configurable:true});function ReadStream(e,t){if(this instanceof ReadStream)return l.apply(this,arguments),this;else return ReadStream.apply(Object.create(ReadStream.prototype),arguments)}function ReadStream$open(){var e=this;open(e.path,e.flags,e.mode,(function(t,r){if(t){if(e.autoClose)e.destroy();e.emit("error",t)}else{e.fd=r;e.emit("open",r);e.read()}}))}function WriteStream(e,t){if(this instanceof WriteStream)return d.apply(this,arguments),this;else return WriteStream.apply(Object.create(WriteStream.prototype),arguments)}function WriteStream$open(){var e=this;open(e.path,e.flags,e.mode,(function(t,r){if(t){e.destroy();e.emit("error",t)}else{e.fd=r;e.emit("open",r)}}))}function createReadStream(t,r){return new e.ReadStream(t,r)}function createWriteStream(t,r){return new e.WriteStream(t,r)}var h=e.open;e.open=open;function open(e,t,r,a){if(typeof r==="function")a=r,r=null;return go$open(e,t,r,a);function go$open(e,t,r,a,n){return h(e,t,r,(function(i,s){if(i&&(i.code==="EMFILE"||i.code==="ENFILE"))enqueue([go$open,[e,t,r,a],i,n||Date.now(),Date.now()]);else{if(typeof a==="function")a.apply(this,arguments)}}))}}return e}function enqueue(e){l("ENQUEUE",e[0].name,e[1]);a[p].push(e);retry()}var u;function resetQueue(){var e=Date.now();for(var t=0;t2){a[p][t][3]=e;a[p][t][4]=e}}retry()}function retry(){clearTimeout(u);u=undefined;if(a[p].length===0)return;var e=a[p].shift();var t=e[0];var r=e[1];var n=e[2];var i=e[3];var s=e[4];if(i===undefined){l("RETRY",t.name,r);t.apply(null,r)}else if(Date.now()-i>=6e4){l("TIMEOUT",t.name,r);var o=r.pop();if(typeof o==="function")o.call(null,n)}else{var c=Date.now()-s;var d=Math.max(s-i,1);var m=Math.min(d*1.2,100);if(c>=m){l("RETRY",t.name,r);t.apply(null,r.concat([i]))}else{a[p].push(e)}}if(u===undefined){u=setTimeout(retry,0)}}},3086:(e,t,r)=>{var a=r(2781).Stream;e.exports=legacy;function legacy(e){return{ReadStream:ReadStream,WriteStream:WriteStream};function ReadStream(t,r){if(!(this instanceof ReadStream))return new ReadStream(t,r);a.call(this);var n=this;this.path=t;this.fd=null;this.readable=true;this.paused=false;this.flags="r";this.mode=438;this.bufferSize=64*1024;r=r||{};var i=Object.keys(r);for(var s=0,o=i.length;sthis.end){throw new Error("start must be <= end")}this.pos=this.start}if(this.fd!==null){process.nextTick((function(){n._read()}));return}e.open(this.path,this.flags,this.mode,(function(e,t){if(e){n.emit("error",e);n.readable=false;return}n.fd=t;n.emit("open",t);n._read()}))}function WriteStream(t,r){if(!(this instanceof WriteStream))return new WriteStream(t,r);a.call(this);this.path=t;this.fd=null;this.writable=true;this.flags="w";this.encoding="binary";this.mode=438;this.bytesWritten=0;r=r||{};var n=Object.keys(r);for(var i=0,s=n.length;i= zero")}this.pos=this.start}this.busy=false;this._queue=[];if(this.fd===null){this._open=e.open;this._queue.push([this._open,this.path,this.flags,this.mode,undefined]);this.flush()}}}},263:(e,t,r)=>{var a=r(2057);var n=process.cwd;var i=null;var s=process.env.GRACEFUL_FS_PLATFORM||process.platform;process.cwd=function(){if(!i)i=n.call(process);return i};try{process.cwd()}catch(e){}if(typeof process.chdir==="function"){var o=process.chdir;process.chdir=function(e){i=null;o.call(process,e)};if(Object.setPrototypeOf)Object.setPrototypeOf(process.chdir,o)}e.exports=patch;function patch(e){if(a.hasOwnProperty("O_SYMLINK")&&process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)){patchLchmod(e)}if(!e.lutimes){patchLutimes(e)}e.chown=chownFix(e.chown);e.fchown=chownFix(e.fchown);e.lchown=chownFix(e.lchown);e.chmod=chmodFix(e.chmod);e.fchmod=chmodFix(e.fchmod);e.lchmod=chmodFix(e.lchmod);e.chownSync=chownFixSync(e.chownSync);e.fchownSync=chownFixSync(e.fchownSync);e.lchownSync=chownFixSync(e.lchownSync);e.chmodSync=chmodFixSync(e.chmodSync);e.fchmodSync=chmodFixSync(e.fchmodSync);e.lchmodSync=chmodFixSync(e.lchmodSync);e.stat=statFix(e.stat);e.fstat=statFix(e.fstat);e.lstat=statFix(e.lstat);e.statSync=statFixSync(e.statSync);e.fstatSync=statFixSync(e.fstatSync);e.lstatSync=statFixSync(e.lstatSync);if(e.chmod&&!e.lchmod){e.lchmod=function(e,t,r){if(r)process.nextTick(r)};e.lchmodSync=function(){}}if(e.chown&&!e.lchown){e.lchown=function(e,t,r,a){if(a)process.nextTick(a)};e.lchownSync=function(){}}if(s==="win32"){e.rename=typeof e.rename!=="function"?e.rename:function(t){function rename(r,a,n){var i=Date.now();var s=0;t(r,a,(function CB(o){if(o&&(o.code==="EACCES"||o.code==="EPERM")&&Date.now()-i<6e4){setTimeout((function(){e.stat(a,(function(e,i){if(e&&e.code==="ENOENT")t(r,a,CB);else n(o)}))}),s);if(s<100)s+=10;return}if(n)n(o)}))}if(Object.setPrototypeOf)Object.setPrototypeOf(rename,t);return rename}(e.rename)}e.read=typeof e.read!=="function"?e.read:function(t){function read(r,a,n,i,s,o){var p;if(o&&typeof o==="function"){var c=0;p=function(l,d,u){if(l&&l.code==="EAGAIN"&&c<10){c++;return t.call(e,r,a,n,i,s,p)}o.apply(this,arguments)}}return t.call(e,r,a,n,i,s,p)}if(Object.setPrototypeOf)Object.setPrototypeOf(read,t);return read}(e.read);e.readSync=typeof e.readSync!=="function"?e.readSync:function(t){return function(r,a,n,i,s){var o=0;while(true){try{return t.call(e,r,a,n,i,s)}catch(e){if(e.code==="EAGAIN"&&o<10){o++;continue}throw e}}}}(e.readSync);function patchLchmod(e){e.lchmod=function(t,r,n){e.open(t,a.O_WRONLY|a.O_SYMLINK,r,(function(t,a){if(t){if(n)n(t);return}e.fchmod(a,r,(function(t){e.close(a,(function(e){if(n)n(t||e)}))}))}))};e.lchmodSync=function(t,r){var n=e.openSync(t,a.O_WRONLY|a.O_SYMLINK,r);var i=true;var s;try{s=e.fchmodSync(n,r);i=false}finally{if(i){try{e.closeSync(n)}catch(e){}}else{e.closeSync(n)}}return s}}function patchLutimes(e){if(a.hasOwnProperty("O_SYMLINK")&&e.futimes){e.lutimes=function(t,r,n,i){e.open(t,a.O_SYMLINK,(function(t,a){if(t){if(i)i(t);return}e.futimes(a,r,n,(function(t){e.close(a,(function(e){if(i)i(t||e)}))}))}))};e.lutimesSync=function(t,r,n){var i=e.openSync(t,a.O_SYMLINK);var s;var o=true;try{s=e.futimesSync(i,r,n);o=false}finally{if(o){try{e.closeSync(i)}catch(e){}}else{e.closeSync(i)}}return s}}else if(e.futimes){e.lutimes=function(e,t,r,a){if(a)process.nextTick(a)};e.lutimesSync=function(){}}}function chmodFix(t){if(!t)return t;return function(r,a,n){return t.call(e,r,a,(function(e){if(chownErOk(e))e=null;if(n)n.apply(this,arguments)}))}}function chmodFixSync(t){if(!t)return t;return function(r,a){try{return t.call(e,r,a)}catch(e){if(!chownErOk(e))throw e}}}function chownFix(t){if(!t)return t;return function(r,a,n,i){return t.call(e,r,a,n,(function(e){if(chownErOk(e))e=null;if(i)i.apply(this,arguments)}))}}function chownFixSync(t){if(!t)return t;return function(r,a,n){try{return t.call(e,r,a,n)}catch(e){if(!chownErOk(e))throw e}}}function statFix(t){if(!t)return t;return function(r,a,n){if(typeof a==="function"){n=a;a=null}function callback(e,t){if(t){if(t.uid<0)t.uid+=4294967296;if(t.gid<0)t.gid+=4294967296}if(n)n.apply(this,arguments)}return a?t.call(e,r,a,callback):t.call(e,r,callback)}}function statFixSync(t){if(!t)return t;return function(r,a){var n=a?t.call(e,r,a):t.call(e,r);if(n){if(n.uid<0)n.uid+=4294967296;if(n.gid<0)n.gid+=4294967296}return n}}function chownErOk(e){if(!e)return true;if(e.code==="ENOSYS")return true;var t=!process.getuid||process.getuid()!==0;if(t){if(e.code==="EINVAL"||e.code==="EPERM")return true}return false}}},1621:e=>{"use strict";e.exports=(e,t=process.argv)=>{const r=e.startsWith("-")?"":e.length===1?"-":"--";const a=t.indexOf(r+e);const n=t.indexOf("--");return a!==-1&&(n===-1||a0){u("Patching connection write() output buffer with updated header");r=e.outputData[0].data;a=r.indexOf("\r\n\r\n")+4;e.outputData[0].data=e._header+r.substring(a);u("Output buffer: %o",e.outputData[0].data)}let n;if(this.proxy.protocol==="https:"){u("Creating `tls.Socket`: %o",this.connectOpts);n=p.connect(this.connectOpts)}else{u("Creating `net.Socket`: %o",this.connectOpts);n=o.connect(this.connectOpts)}await(0,l.once)(n,"connect");return n}}HttpProxyAgent.protocols=["http","https"];t.HttpProxyAgent=HttpProxyAgent;function omit(e,...t){const r={};let a;for(a in e){if(!t.includes(a)){r[a]=e[a]}}return r}},2492:(e,t,r)=>{var a=r(2940);var n=Object.create(null);var i=r(1223);e.exports=a(inflight);function inflight(e,t){if(n[e]){n[e].push(t);return null}else{n[e]=[t];return makeres(e)}}function makeres(e){return i((function RES(){var t=n[e];var r=t.length;var a=slice(arguments);try{for(var i=0;ir){t.splice(0,r);process.nextTick((function(){RES.apply(null,a)}))}else{delete n[e]}}}))}function slice(e){var t=e.length;var r=[];for(var a=0;a{try{var a=r(3837);if(typeof a.inherits!=="function")throw"";e.exports=a.inherits}catch(t){e.exports=r(8544)}},8544:e=>{if(typeof Object.create==="function"){e.exports=function inherits(e,t){if(t){e.super_=t;e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}})}}}else{e.exports=function inherits(e,t){if(t){e.super_=t;var TempCtor=function(){};TempCtor.prototype=t.prototype;e.prototype=new TempCtor;e.prototype.constructor=e}}}},3287:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true}); /*! * is-plain-object * * Copyright (c) 2014-2017, Jon Schlinkert. * Released under the MIT License. - */function isObject(e){return Object.prototype.toString.call(e)==="[object Object]"}function isPlainObject(e){var t,r;if(isObject(e)===false)return false;t=e.constructor;if(t===undefined)return true;r=t.prototype;if(isObject(r)===false)return false;if(r.hasOwnProperty("isPrototypeOf")===false){return false}return true}t.isPlainObject=isPlainObject},6160:(e,t,r)=>{let a;try{a=r(7758)}catch(e){a=r(7147)}const i=r(9046);const{stringify:n,stripBom:s}=r(5902);async function _readFile(e,t={}){if(typeof t==="string"){t={encoding:t}}const r=t.fs||a;const n="throws"in t?t.throws:true;let o=await i.fromCallback(r.readFile)(e,t);o=s(o);let p;try{p=JSON.parse(o,t?t.reviver:null)}catch(t){if(n){t.message=`${e}: ${t.message}`;throw t}else{return null}}return p}const o=i.fromPromise(_readFile);function readFileSync(e,t={}){if(typeof t==="string"){t={encoding:t}}const r=t.fs||a;const i="throws"in t?t.throws:true;try{let a=r.readFileSync(e,t);a=s(a);return JSON.parse(a,t.reviver)}catch(t){if(i){t.message=`${e}: ${t.message}`;throw t}else{return null}}}async function _writeFile(e,t,r={}){const s=r.fs||a;const o=n(t,r);await i.fromCallback(s.writeFile)(e,o,r)}const p=i.fromPromise(_writeFile);function writeFileSync(e,t,r={}){const i=r.fs||a;const s=n(t,r);return i.writeFileSync(e,s,r)}const c={readFile:o,readFileSync:readFileSync,writeFile:p,writeFileSync:writeFileSync};e.exports=c},5902:e=>{function stringify(e,{EOL:t="\n",finalEOL:r=true,replacer:a=null,spaces:i}={}){const n=r?t:"";const s=JSON.stringify(e,a,i);return s.replace(/\n/g,t)+n}function stripBom(e){if(Buffer.isBuffer(e))e=e.toString("utf8");return e.replace(/^\uFEFF/,"")}e.exports={stringify:stringify,stripBom:stripBom}},7426:(e,t,r)=>{ + */function isObject(e){return Object.prototype.toString.call(e)==="[object Object]"}function isPlainObject(e){var t,r;if(isObject(e)===false)return false;t=e.constructor;if(t===undefined)return true;r=t.prototype;if(isObject(r)===false)return false;if(r.hasOwnProperty("isPrototypeOf")===false){return false}return true}t.isPlainObject=isPlainObject},6160:(e,t,r)=>{let a;try{a=r(7758)}catch(e){a=r(7147)}const n=r(9046);const{stringify:i,stripBom:s}=r(5902);async function _readFile(e,t={}){if(typeof t==="string"){t={encoding:t}}const r=t.fs||a;const i="throws"in t?t.throws:true;let o=await n.fromCallback(r.readFile)(e,t);o=s(o);let p;try{p=JSON.parse(o,t?t.reviver:null)}catch(t){if(i){t.message=`${e}: ${t.message}`;throw t}else{return null}}return p}const o=n.fromPromise(_readFile);function readFileSync(e,t={}){if(typeof t==="string"){t={encoding:t}}const r=t.fs||a;const n="throws"in t?t.throws:true;try{let a=r.readFileSync(e,t);a=s(a);return JSON.parse(a,t.reviver)}catch(t){if(n){t.message=`${e}: ${t.message}`;throw t}else{return null}}}async function _writeFile(e,t,r={}){const s=r.fs||a;const o=i(t,r);await n.fromCallback(s.writeFile)(e,o,r)}const p=n.fromPromise(_writeFile);function writeFileSync(e,t,r={}){const n=r.fs||a;const s=i(t,r);return n.writeFileSync(e,s,r)}const c={readFile:o,readFileSync:readFileSync,writeFile:p,writeFileSync:writeFileSync};e.exports=c},5902:e=>{function stringify(e,{EOL:t="\n",finalEOL:r=true,replacer:a=null,spaces:n}={}){const i=r?t:"";const s=JSON.stringify(e,a,n);return s.replace(/\n/g,t)+i}function stripBom(e){if(Buffer.isBuffer(e))e=e.toString("utf8");return e.replace(/^\uFEFF/,"")}e.exports={stringify:stringify,stripBom:stripBom}},7426:(e,t,r)=>{ /*! * mime-db * Copyright(c) 2014 Jonathan Ong @@ -23,7 +23,7 @@ e.exports=r(3765)},3583:(e,t,r)=>{"use strict"; * Copyright(c) 2014 Jonathan Ong * Copyright(c) 2015 Douglas Christopher Wilson * MIT Licensed - */var a=r(7426);var i=r(1017).extname;var n=/^\s*([^;\s]*)(?:;|\s|$)/;var s=/^text\//i;t.charset=charset;t.charsets={lookup:charset};t.contentType=contentType;t.extension=extension;t.extensions=Object.create(null);t.lookup=lookup;t.types=Object.create(null);populateMaps(t.extensions,t.types);function charset(e){if(!e||typeof e!=="string"){return false}var t=n.exec(e);var r=t&&a[t[1].toLowerCase()];if(r&&r.charset){return r.charset}if(t&&s.test(t[1])){return"UTF-8"}return false}function contentType(e){if(!e||typeof e!=="string"){return false}var r=e.indexOf("/")===-1?t.lookup(e):e;if(!r){return false}if(r.indexOf("charset")===-1){var a=t.charset(r);if(a)r+="; charset="+a.toLowerCase()}return r}function extension(e){if(!e||typeof e!=="string"){return false}var r=n.exec(e);var a=r&&t.extensions[r[1].toLowerCase()];if(!a||!a.length){return false}return a[0]}function lookup(e){if(!e||typeof e!=="string"){return false}var r=i("x."+e).toLowerCase().substr(1);if(!r){return false}return t.types[r]||false}function populateMaps(e,t){var r=["nginx","apache",undefined,"iana"];Object.keys(a).forEach((function forEachMimeType(i){var n=a[i];var s=n.extensions;if(!s||!s.length){return}e[i]=s;for(var o=0;ol||c===l&&t[p].substr(0,12)==="application/")){continue}}t[p]=i}}))}},3973:(e,t,r)=>{e.exports=minimatch;minimatch.Minimatch=Minimatch;var a=function(){try{return r(1017)}catch(e){}}()||{sep:"/"};minimatch.sep=a.sep;var i=minimatch.GLOBSTAR=Minimatch.GLOBSTAR={};var n=r(3717);var s={"!":{open:"(?:(?!(?:",close:"))[^/]*?)"},"?":{open:"(?:",close:")?"},"+":{open:"(?:",close:")+"},"*":{open:"(?:",close:")*"},"@":{open:"(?:",close:")"}};var o="[^/]";var p=o+"*?";var c="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?";var l="(?:(?!(?:\\/|^)\\.).)*?";var d=charSet("().*{}+?[]^$\\!");function charSet(e){return e.split("").reduce((function(e,t){e[t]=true;return e}),{})}var u=/\/+/;minimatch.filter=filter;function filter(e,t){t=t||{};return function(r,a,i){return minimatch(r,e,t)}}function ext(e,t){t=t||{};var r={};Object.keys(e).forEach((function(t){r[t]=e[t]}));Object.keys(t).forEach((function(e){r[e]=t[e]}));return r}minimatch.defaults=function(e){if(!e||typeof e!=="object"||!Object.keys(e).length){return minimatch}var t=minimatch;var r=function minimatch(r,a,i){return t(r,a,ext(e,i))};r.Minimatch=function Minimatch(r,a){return new t.Minimatch(r,ext(e,a))};r.Minimatch.defaults=function defaults(r){return t.defaults(ext(e,r)).Minimatch};r.filter=function filter(r,a){return t.filter(r,ext(e,a))};r.defaults=function defaults(r){return t.defaults(ext(e,r))};r.makeRe=function makeRe(r,a){return t.makeRe(r,ext(e,a))};r.braceExpand=function braceExpand(r,a){return t.braceExpand(r,ext(e,a))};r.match=function(r,a,i){return t.match(r,a,ext(e,i))};return r};Minimatch.defaults=function(e){return minimatch.defaults(e).Minimatch};function minimatch(e,t,r){assertValidPattern(t);if(!r)r={};if(!r.nocomment&&t.charAt(0)==="#"){return false}return new Minimatch(t,r).match(e)}function Minimatch(e,t){if(!(this instanceof Minimatch)){return new Minimatch(e,t)}assertValidPattern(e);if(!t)t={};e=e.trim();if(!t.allowWindowsEscape&&a.sep!=="/"){e=e.split(a.sep).join("/")}this.options=t;this.set=[];this.pattern=e;this.regexp=null;this.negate=false;this.comment=false;this.empty=false;this.partial=!!t.partial;this.make()}Minimatch.prototype.debug=function(){};Minimatch.prototype.make=make;function make(){var e=this.pattern;var t=this.options;if(!t.nocomment&&e.charAt(0)==="#"){this.comment=true;return}if(!e){this.empty=true;return}this.parseNegate();var r=this.globSet=this.braceExpand();if(t.debug)this.debug=function debug(){console.error.apply(console,arguments)};this.debug(this.pattern,r);r=this.globParts=r.map((function(e){return e.split(u)}));this.debug(this.pattern,r);r=r.map((function(e,t,r){return e.map(this.parse,this)}),this);this.debug(this.pattern,r);r=r.filter((function(e){return e.indexOf(false)===-1}));this.debug(this.pattern,r);this.set=r}Minimatch.prototype.parseNegate=parseNegate;function parseNegate(){var e=this.pattern;var t=false;var r=this.options;var a=0;if(r.nonegate)return;for(var i=0,n=e.length;im){throw new TypeError("pattern is too long")}};Minimatch.prototype.parse=parse;var h={};function parse(e,t){assertValidPattern(e);var r=this.options;if(e==="**"){if(!r.noglobstar)return i;else e="*"}if(e==="")return"";var a="";var n=!!r.nocase;var c=false;var l=[];var u=[];var m;var g=false;var v=-1;var y=-1;var b=e.charAt(0)==="."?"":r.dot?"(?!(?:^|\\/)\\.{1,2}(?:$|\\/))":"(?!\\.)";var w=this;function clearStateChar(){if(m){switch(m){case"*":a+=p;n=true;break;case"?":a+=o;n=true;break;default:a+="\\"+m;break}w.debug("clearStateChar %j %j",m,a);m=false}}for(var x=0,E=e.length,S;x-1;D--){var N=u[D];var R=a.slice(0,N.reStart);var j=a.slice(N.reStart,N.reEnd-8);var F=a.slice(N.reEnd-8,N.reEnd);var I=a.slice(N.reEnd);F+=I;var $=R.split("(").length-1;var B=I;for(x=0;x<$;x++){B=B.replace(/\)[+*?]?/,"")}I=B;var L="";if(I===""&&t!==h){L="$"}var M=R+j+I+L+F;a=M}if(a!==""&&n){a="(?=.)"+a}if(A){a=b+a}if(t===h){return[a,n]}if(!n){return globUnescape(e)}var U=r.nocase?"i":"";try{var G=new RegExp("^"+a+"$",U)}catch(e){return new RegExp("$.")}G._glob=e;G._src=a;return G}minimatch.makeRe=function(e,t){return new Minimatch(e,t||{}).makeRe()};Minimatch.prototype.makeRe=makeRe;function makeRe(){if(this.regexp||this.regexp===false)return this.regexp;var e=this.set;if(!e.length){this.regexp=false;return this.regexp}var t=this.options;var r=t.noglobstar?p:t.dot?c:l;var a=t.nocase?"i":"";var n=e.map((function(e){return e.map((function(e){return e===i?r:typeof e==="string"?regExpEscape(e):e._src})).join("\\/")})).join("|");n="^(?:"+n+")$";if(this.negate)n="^(?!"+n+").*$";try{this.regexp=new RegExp(n,a)}catch(e){this.regexp=false}return this.regexp}minimatch.match=function(e,t,r){r=r||{};var a=new Minimatch(t,r);e=e.filter((function(e){return a.match(e)}));if(a.options.nonull&&!e.length){e.push(t)}return e};Minimatch.prototype.match=function match(e,t){if(typeof t==="undefined")t=this.partial;this.debug("match",e,this.pattern);if(this.comment)return false;if(this.empty)return e==="";if(e==="/"&&t)return true;var r=this.options;if(a.sep!=="/"){e=e.split(a.sep).join("/")}e=e.split(u);this.debug(this.pattern,"split",e);var i=this.set;this.debug(this.pattern,"set",i);var n;var s;for(s=e.length-1;s>=0;s--){n=e[s];if(n)break}for(s=0;s>> no match, partial?",e,d,t,u);if(d===o)return true}return false}var h;if(typeof c==="string"){h=l===c;this.debug("string match",c,l,h)}else{h=l.match(c);this.debug("pattern match",c,l,h)}if(!h)return false}if(n===o&&s===p){return true}else if(n===o){return r}else if(s===p){return n===o-1&&e[n]===""}throw new Error("wtf?")};function globUnescape(e){return e.replace(/\\(.)/g,"$1")}function regExpEscape(e){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}},900:e=>{var t=1e3;var r=t*60;var a=r*60;var i=a*24;var n=i*7;var s=i*365.25;e.exports=function(e,t){t=t||{};var r=typeof e;if(r==="string"&&e.length>0){return parse(e)}else if(r==="number"&&isFinite(e)){return t.long?fmtLong(e):fmtShort(e)}throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function parse(e){e=String(e);if(e.length>100){return}var o=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(!o){return}var p=parseFloat(o[1]);var c=(o[2]||"ms").toLowerCase();switch(c){case"years":case"year":case"yrs":case"yr":case"y":return p*s;case"weeks":case"week":case"w":return p*n;case"days":case"day":case"d":return p*i;case"hours":case"hour":case"hrs":case"hr":case"h":return p*a;case"minutes":case"minute":case"mins":case"min":case"m":return p*r;case"seconds":case"second":case"secs":case"sec":case"s":return p*t;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return p;default:return undefined}}function fmtShort(e){var n=Math.abs(e);if(n>=i){return Math.round(e/i)+"d"}if(n>=a){return Math.round(e/a)+"h"}if(n>=r){return Math.round(e/r)+"m"}if(n>=t){return Math.round(e/t)+"s"}return e+"ms"}function fmtLong(e){var n=Math.abs(e);if(n>=i){return plural(e,n,i,"day")}if(n>=a){return plural(e,n,a,"hour")}if(n>=r){return plural(e,n,r,"minute")}if(n>=t){return plural(e,n,t,"second")}return e+" ms"}function plural(e,t,r,a){var i=t>=r*1.5;return Math.round(e/r)+" "+a+(i?"s":"")}},467:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});function _interopDefault(e){return e&&typeof e==="object"&&"default"in e?e["default"]:e}var a=_interopDefault(r(2781));var i=_interopDefault(r(3685));var n=_interopDefault(r(7310));var s=_interopDefault(r(8665));var o=_interopDefault(r(5687));var p=_interopDefault(r(9796));const c=a.Readable;const l=Symbol("buffer");const d=Symbol("type");class Blob{constructor(){this[d]="";const e=arguments[0];const t=arguments[1];const r=[];let a=0;if(e){const t=e;const i=Number(t.length);for(let e=0;e1&&arguments[1]!==undefined?arguments[1]:{},i=r.size;let n=i===undefined?0:i;var s=r.timeout;let o=s===undefined?0:s;if(e==null){e=null}else if(isURLSearchParams(e)){e=Buffer.from(e.toString())}else if(isBlob(e));else if(Buffer.isBuffer(e));else if(Object.prototype.toString.call(e)==="[object ArrayBuffer]"){e=Buffer.from(e)}else if(ArrayBuffer.isView(e)){e=Buffer.from(e.buffer,e.byteOffset,e.byteLength)}else if(e instanceof a);else{e=Buffer.from(String(e))}this[m]={body:e,disturbed:false,error:null};this.size=n;this.timeout=o;if(e instanceof a){e.on("error",(function(e){const r=e.name==="AbortError"?e:new FetchError(`Invalid response body while trying to fetch ${t.url}: ${e.message}`,"system",e);t[m].error=r}))}}Body.prototype={get body(){return this[m].body},get bodyUsed(){return this[m].disturbed},arrayBuffer(){return consumeBody.call(this).then((function(e){return e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)}))},blob(){let e=this.headers&&this.headers.get("content-type")||"";return consumeBody.call(this).then((function(t){return Object.assign(new Blob([],{type:e.toLowerCase()}),{[l]:t})}))},json(){var e=this;return consumeBody.call(this).then((function(t){try{return JSON.parse(t.toString())}catch(t){return Body.Promise.reject(new FetchError(`invalid json response body at ${e.url} reason: ${t.message}`,"invalid-json"))}}))},text(){return consumeBody.call(this).then((function(e){return e.toString()}))},buffer(){return consumeBody.call(this)},textConverted(){var e=this;return consumeBody.call(this).then((function(t){return convertBody(t,e.headers)}))}};Object.defineProperties(Body.prototype,{body:{enumerable:true},bodyUsed:{enumerable:true},arrayBuffer:{enumerable:true},blob:{enumerable:true},json:{enumerable:true},text:{enumerable:true}});Body.mixIn=function(e){for(const t of Object.getOwnPropertyNames(Body.prototype)){if(!(t in e)){const r=Object.getOwnPropertyDescriptor(Body.prototype,t);Object.defineProperty(e,t,r)}}};function consumeBody(){var e=this;if(this[m].disturbed){return Body.Promise.reject(new TypeError(`body used already for: ${this.url}`))}this[m].disturbed=true;if(this[m].error){return Body.Promise.reject(this[m].error)}let t=this.body;if(t===null){return Body.Promise.resolve(Buffer.alloc(0))}if(isBlob(t)){t=t.stream()}if(Buffer.isBuffer(t)){return Body.Promise.resolve(t)}if(!(t instanceof a)){return Body.Promise.resolve(Buffer.alloc(0))}let r=[];let i=0;let n=false;return new Body.Promise((function(a,s){let o;if(e.timeout){o=setTimeout((function(){n=true;s(new FetchError(`Response timeout while trying to fetch ${e.url} (over ${e.timeout}ms)`,"body-timeout"))}),e.timeout)}t.on("error",(function(t){if(t.name==="AbortError"){n=true;s(t)}else{s(new FetchError(`Invalid response body while trying to fetch ${e.url}: ${t.message}`,"system",t))}}));t.on("data",(function(t){if(n||t===null){return}if(e.size&&i+t.length>e.size){n=true;s(new FetchError(`content size at ${e.url} over limit: ${e.size}`,"max-size"));return}i+=t.length;r.push(t)}));t.on("end",(function(){if(n){return}clearTimeout(o);try{a(Buffer.concat(r,i))}catch(t){s(new FetchError(`Could not create Buffer from response body for ${e.url}: ${t.message}`,"system",t))}}))}))}function convertBody(e,t){if(typeof u!=="function"){throw new Error("The package `encoding` must be installed to use the textConverted() function")}const r=t.get("content-type");let a="utf-8";let i,n;if(r){i=/charset=([^;]*)/i.exec(r)}n=e.slice(0,1024).toString();if(!i&&n){i=/0&&arguments[0]!==undefined?arguments[0]:undefined;this[y]=Object.create(null);if(e instanceof Headers){const t=e.raw();const r=Object.keys(t);for(const e of r){for(const r of t[e]){this.append(e,r)}}return}if(e==null);else if(typeof e==="object"){const t=e[Symbol.iterator];if(t!=null){if(typeof t!=="function"){throw new TypeError("Header pairs must be iterable")}const r=[];for(const t of e){if(typeof t!=="object"||typeof t[Symbol.iterator]!=="function"){throw new TypeError("Each header pair must be iterable")}r.push(Array.from(t))}for(const e of r){if(e.length!==2){throw new TypeError("Each header pair must be a name/value tuple")}this.append(e[0],e[1])}}else{for(const t of Object.keys(e)){const r=e[t];this.append(t,r)}}}else{throw new TypeError("Provided initializer must be an object")}}get(e){e=`${e}`;validateName(e);const t=find(this[y],e);if(t===undefined){return null}return this[y][t].join(", ")}forEach(e){let t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:undefined;let r=getHeaders(this);let a=0;while(a1&&arguments[1]!==undefined?arguments[1]:"key+value";const r=Object.keys(e[y]).sort();return r.map(t==="key"?function(e){return e.toLowerCase()}:t==="value"?function(t){return e[y][t].join(", ")}:function(t){return[t.toLowerCase(),e[y][t].join(", ")]})}const b=Symbol("internal");function createHeadersIterator(e,t){const r=Object.create(w);r[b]={target:e,kind:t,index:0};return r}const w=Object.setPrototypeOf({next(){if(!this||Object.getPrototypeOf(this)!==w){throw new TypeError("Value of `this` is not a HeadersIterator")}var e=this[b];const t=e.target,r=e.kind,a=e.index;const i=getHeaders(t,r);const n=i.length;if(a>=n){return{value:undefined,done:true}}this[b].index=a+1;return{value:i[a],done:false}}},Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));Object.defineProperty(w,Symbol.toStringTag,{value:"HeadersIterator",writable:false,enumerable:false,configurable:true});function exportNodeCompatibleHeaders(e){const t=Object.assign({__proto__:null},e[y]);const r=find(e[y],"Host");if(r!==undefined){t[r]=t[r][0]}return t}function createHeadersLenient(e){const t=new Headers;for(const r of Object.keys(e)){if(g.test(r)){continue}if(Array.isArray(e[r])){for(const a of e[r]){if(v.test(a)){continue}if(t[y][r]===undefined){t[y][r]=[a]}else{t[y][r].push(a)}}}else if(!v.test(e[r])){t[y][r]=[e[r]]}}return t}const x=Symbol("Response internals");const E=i.STATUS_CODES;class Response{constructor(){let e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:null;let t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};Body.call(this,e,t);const r=t.status||200;const a=new Headers(t.headers);if(e!=null&&!a.has("Content-Type")){const t=extractContentType(e);if(t){a.append("Content-Type",t)}}this[x]={url:t.url,status:r,statusText:t.statusText||E[r],headers:a,counter:t.counter}}get url(){return this[x].url||""}get status(){return this[x].status}get ok(){return this[x].status>=200&&this[x].status<300}get redirected(){return this[x].counter>0}get statusText(){return this[x].statusText}get headers(){return this[x].headers}clone(){return new Response(clone(this),{url:this.url,status:this.status,statusText:this.statusText,headers:this.headers,ok:this.ok,redirected:this.redirected})}}Body.mixIn(Response.prototype);Object.defineProperties(Response.prototype,{url:{enumerable:true},status:{enumerable:true},ok:{enumerable:true},redirected:{enumerable:true},statusText:{enumerable:true},headers:{enumerable:true},clone:{enumerable:true}});Object.defineProperty(Response.prototype,Symbol.toStringTag,{value:"Response",writable:false,enumerable:false,configurable:true});const S=Symbol("Request internals");const T=n.URL||s.URL;const k=n.parse;const C=n.format;function parseURL(e){if(/^[a-zA-Z][a-zA-Z\d+\-.]*:/.exec(e)){e=new T(e).toString()}return k(e)}const O="destroy"in a.Readable.prototype;function isRequest(e){return typeof e==="object"&&typeof e[S]==="object"}function isAbortSignal(e){const t=e&&typeof e==="object"&&Object.getPrototypeOf(e);return!!(t&&t.constructor.name==="AbortSignal")}class Request{constructor(e){let t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};let r;if(!isRequest(e)){if(e&&e.href){r=parseURL(e.href)}else{r=parseURL(`${e}`)}e={}}else{r=parseURL(e.url)}let a=t.method||e.method||"GET";a=a.toUpperCase();if((t.body!=null||isRequest(e)&&e.body!==null)&&(a==="GET"||a==="HEAD")){throw new TypeError("Request with GET/HEAD method cannot have body")}let i=t.body!=null?t.body:isRequest(e)&&e.body!==null?clone(e):null;Body.call(this,i,{timeout:t.timeout||e.timeout||0,size:t.size||e.size||0});const n=new Headers(t.headers||e.headers||{});if(i!=null&&!n.has("Content-Type")){const e=extractContentType(i);if(e){n.append("Content-Type",e)}}let s=isRequest(e)?e.signal:null;if("signal"in t)s=t.signal;if(s!=null&&!isAbortSignal(s)){throw new TypeError("Expected signal to be an instanceof AbortSignal")}this[S]={method:a,redirect:t.redirect||e.redirect||"follow",headers:n,parsedURL:r,signal:s};this.follow=t.follow!==undefined?t.follow:e.follow!==undefined?e.follow:20;this.compress=t.compress!==undefined?t.compress:e.compress!==undefined?e.compress:true;this.counter=t.counter||e.counter||0;this.agent=t.agent||e.agent}get method(){return this[S].method}get url(){return C(this[S].parsedURL)}get headers(){return this[S].headers}get redirect(){return this[S].redirect}get signal(){return this[S].signal}clone(){return new Request(this)}}Body.mixIn(Request.prototype);Object.defineProperty(Request.prototype,Symbol.toStringTag,{value:"Request",writable:false,enumerable:false,configurable:true});Object.defineProperties(Request.prototype,{method:{enumerable:true},url:{enumerable:true},headers:{enumerable:true},redirect:{enumerable:true},clone:{enumerable:true},signal:{enumerable:true}});function getNodeRequestOptions(e){const t=e[S].parsedURL;const r=new Headers(e[S].headers);if(!r.has("Accept")){r.set("Accept","*/*")}if(!t.protocol||!t.hostname){throw new TypeError("Only absolute URLs are supported")}if(!/^https?:$/.test(t.protocol)){throw new TypeError("Only HTTP(S) protocols are supported")}if(e.signal&&e.body instanceof a.Readable&&!O){throw new Error("Cancellation of streamed requests with AbortSignal is not supported in node < 8")}let i=null;if(e.body==null&&/^(POST|PUT)$/i.test(e.method)){i="0"}if(e.body!=null){const t=getTotalBytes(e);if(typeof t==="number"){i=String(t)}}if(i){r.set("Content-Length",i)}if(!r.has("User-Agent")){r.set("User-Agent","node-fetch/1.0 (+https://github.com/bitinn/node-fetch)")}if(e.compress&&!r.has("Accept-Encoding")){r.set("Accept-Encoding","gzip,deflate")}let n=e.agent;if(typeof n==="function"){n=n(t)}if(!r.has("Connection")&&!n){r.set("Connection","close")}return Object.assign({},t,{method:e.method,headers:exportNodeCompatibleHeaders(r),agent:n})}function AbortError(e){Error.call(this,e);this.type="aborted";this.message=e;Error.captureStackTrace(this,this.constructor)}AbortError.prototype=Object.create(Error.prototype);AbortError.prototype.constructor=AbortError;AbortError.prototype.name="AbortError";const P=n.URL||s.URL;const A=a.PassThrough;const D=function isDomainOrSubdomain(e,t){const r=new P(t).hostname;const a=new P(e).hostname;return r===a||r[r.length-a.length-1]==="."&&r.endsWith(a)};function fetch(e,t){if(!fetch.Promise){throw new Error("native promise missing, set fetch.Promise to your favorite alternative")}Body.Promise=fetch.Promise;return new fetch.Promise((function(r,n){const s=new Request(e,t);const c=getNodeRequestOptions(s);const l=(c.protocol==="https:"?o:i).request;const d=s.signal;let u=null;const m=function abort(){let e=new AbortError("The user aborted a request.");n(e);if(s.body&&s.body instanceof a.Readable){s.body.destroy(e)}if(!u||!u.body)return;u.body.emit("error",e)};if(d&&d.aborted){m();return}const h=function abortAndFinalize(){m();finalize()};const g=l(c);let v;if(d){d.addEventListener("abort",h)}function finalize(){g.abort();if(d)d.removeEventListener("abort",h);clearTimeout(v)}if(s.timeout){g.once("socket",(function(e){v=setTimeout((function(){n(new FetchError(`network timeout at: ${s.url}`,"request-timeout"));finalize()}),s.timeout)}))}g.on("error",(function(e){n(new FetchError(`request to ${s.url} failed, reason: ${e.message}`,"system",e));finalize()}));g.on("response",(function(e){clearTimeout(v);const t=createHeadersLenient(e.headers);if(fetch.isRedirect(e.statusCode)){const a=t.get("Location");let i=null;try{i=a===null?null:new P(a,s.url).toString()}catch(e){if(s.redirect!=="manual"){n(new FetchError(`uri requested responds with an invalid redirect URL: ${a}`,"invalid-redirect"));finalize();return}}switch(s.redirect){case"error":n(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${s.url}`,"no-redirect"));finalize();return;case"manual":if(i!==null){try{t.set("Location",i)}catch(e){n(e)}}break;case"follow":if(i===null){break}if(s.counter>=s.follow){n(new FetchError(`maximum redirect reached at: ${s.url}`,"max-redirect"));finalize();return}const a={headers:new Headers(s.headers),follow:s.follow,counter:s.counter+1,agent:s.agent,compress:s.compress,method:s.method,body:s.body,signal:s.signal,timeout:s.timeout,size:s.size};if(!D(s.url,i)){for(const e of["authorization","www-authenticate","cookie","cookie2"]){a.headers.delete(e)}}if(e.statusCode!==303&&s.body&&getTotalBytes(s)===null){n(new FetchError("Cannot follow redirect with body being a readable stream","unsupported-redirect"));finalize();return}if(e.statusCode===303||(e.statusCode===301||e.statusCode===302)&&s.method==="POST"){a.method="GET";a.body=undefined;a.headers.delete("content-length")}r(fetch(new Request(i,a)));finalize();return}}e.once("end",(function(){if(d)d.removeEventListener("abort",h)}));let a=e.pipe(new A);const i={url:s.url,status:e.statusCode,statusText:e.statusMessage,headers:t,size:s.size,timeout:s.timeout,counter:s.counter};const o=t.get("Content-Encoding");if(!s.compress||s.method==="HEAD"||o===null||e.statusCode===204||e.statusCode===304){u=new Response(a,i);r(u);return}const c={flush:p.Z_SYNC_FLUSH,finishFlush:p.Z_SYNC_FLUSH};if(o=="gzip"||o=="x-gzip"){a=a.pipe(p.createGunzip(c));u=new Response(a,i);r(u);return}if(o=="deflate"||o=="x-deflate"){const t=e.pipe(new A);t.once("data",(function(e){if((e[0]&15)===8){a=a.pipe(p.createInflate())}else{a=a.pipe(p.createInflateRaw())}u=new Response(a,i);r(u)}));return}if(o=="br"&&typeof p.createBrotliDecompress==="function"){a=a.pipe(p.createBrotliDecompress());u=new Response(a,i);r(u);return}u=new Response(a,i);r(u)}));writeToStream(g,s)}))}fetch.isRedirect=function(e){return e===301||e===302||e===303||e===307||e===308};fetch.Promise=global.Promise;e.exports=t=fetch;Object.defineProperty(t,"__esModule",{value:true});t["default"]=t;t.Headers=Headers;t.Request=Request;t.Response=Response;t.FetchError=FetchError},1223:(e,t,r)=>{var a=r(2940);e.exports=a(once);e.exports.strict=a(onceStrict);once.proto=once((function(){Object.defineProperty(Function.prototype,"once",{value:function(){return once(this)},configurable:true});Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return onceStrict(this)},configurable:true})}));function once(e){var f=function(){if(f.called)return f.value;f.called=true;return f.value=e.apply(this,arguments)};f.called=false;return f}function onceStrict(e){var f=function(){if(f.called)throw new Error(f.onceError);f.called=true;return f.value=e.apply(this,arguments)};var t=e.name||"Function wrapped with `once`";f.onceError=t+" shouldn't be called more than once";f.called=false;return f}},8714:e=>{"use strict";function posix(e){return e.charAt(0)==="/"}function win32(e){var t=/^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/;var r=t.exec(e);var a=r[1]||"";var i=Boolean(a&&a.charAt(1)!==":");return Boolean(r[2]||i)}e.exports=process.platform==="win32"?win32:posix;e.exports.posix=posix;e.exports.win32=win32},9977:()=>{ + */var a=r(7426);var n=r(1017).extname;var i=/^\s*([^;\s]*)(?:;|\s|$)/;var s=/^text\//i;t.charset=charset;t.charsets={lookup:charset};t.contentType=contentType;t.extension=extension;t.extensions=Object.create(null);t.lookup=lookup;t.types=Object.create(null);populateMaps(t.extensions,t.types);function charset(e){if(!e||typeof e!=="string"){return false}var t=i.exec(e);var r=t&&a[t[1].toLowerCase()];if(r&&r.charset){return r.charset}if(t&&s.test(t[1])){return"UTF-8"}return false}function contentType(e){if(!e||typeof e!=="string"){return false}var r=e.indexOf("/")===-1?t.lookup(e):e;if(!r){return false}if(r.indexOf("charset")===-1){var a=t.charset(r);if(a)r+="; charset="+a.toLowerCase()}return r}function extension(e){if(!e||typeof e!=="string"){return false}var r=i.exec(e);var a=r&&t.extensions[r[1].toLowerCase()];if(!a||!a.length){return false}return a[0]}function lookup(e){if(!e||typeof e!=="string"){return false}var r=n("x."+e).toLowerCase().substr(1);if(!r){return false}return t.types[r]||false}function populateMaps(e,t){var r=["nginx","apache",undefined,"iana"];Object.keys(a).forEach((function forEachMimeType(n){var i=a[n];var s=i.extensions;if(!s||!s.length){return}e[n]=s;for(var o=0;ol||c===l&&t[p].substr(0,12)==="application/")){continue}}t[p]=n}}))}},3973:(e,t,r)=>{e.exports=minimatch;minimatch.Minimatch=Minimatch;var a=function(){try{return r(1017)}catch(e){}}()||{sep:"/"};minimatch.sep=a.sep;var n=minimatch.GLOBSTAR=Minimatch.GLOBSTAR={};var i=r(3717);var s={"!":{open:"(?:(?!(?:",close:"))[^/]*?)"},"?":{open:"(?:",close:")?"},"+":{open:"(?:",close:")+"},"*":{open:"(?:",close:")*"},"@":{open:"(?:",close:")"}};var o="[^/]";var p=o+"*?";var c="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?";var l="(?:(?!(?:\\/|^)\\.).)*?";var d=charSet("().*{}+?[]^$\\!");function charSet(e){return e.split("").reduce((function(e,t){e[t]=true;return e}),{})}var u=/\/+/;minimatch.filter=filter;function filter(e,t){t=t||{};return function(r,a,n){return minimatch(r,e,t)}}function ext(e,t){t=t||{};var r={};Object.keys(e).forEach((function(t){r[t]=e[t]}));Object.keys(t).forEach((function(e){r[e]=t[e]}));return r}minimatch.defaults=function(e){if(!e||typeof e!=="object"||!Object.keys(e).length){return minimatch}var t=minimatch;var r=function minimatch(r,a,n){return t(r,a,ext(e,n))};r.Minimatch=function Minimatch(r,a){return new t.Minimatch(r,ext(e,a))};r.Minimatch.defaults=function defaults(r){return t.defaults(ext(e,r)).Minimatch};r.filter=function filter(r,a){return t.filter(r,ext(e,a))};r.defaults=function defaults(r){return t.defaults(ext(e,r))};r.makeRe=function makeRe(r,a){return t.makeRe(r,ext(e,a))};r.braceExpand=function braceExpand(r,a){return t.braceExpand(r,ext(e,a))};r.match=function(r,a,n){return t.match(r,a,ext(e,n))};return r};Minimatch.defaults=function(e){return minimatch.defaults(e).Minimatch};function minimatch(e,t,r){assertValidPattern(t);if(!r)r={};if(!r.nocomment&&t.charAt(0)==="#"){return false}return new Minimatch(t,r).match(e)}function Minimatch(e,t){if(!(this instanceof Minimatch)){return new Minimatch(e,t)}assertValidPattern(e);if(!t)t={};e=e.trim();if(!t.allowWindowsEscape&&a.sep!=="/"){e=e.split(a.sep).join("/")}this.options=t;this.set=[];this.pattern=e;this.regexp=null;this.negate=false;this.comment=false;this.empty=false;this.partial=!!t.partial;this.make()}Minimatch.prototype.debug=function(){};Minimatch.prototype.make=make;function make(){var e=this.pattern;var t=this.options;if(!t.nocomment&&e.charAt(0)==="#"){this.comment=true;return}if(!e){this.empty=true;return}this.parseNegate();var r=this.globSet=this.braceExpand();if(t.debug)this.debug=function debug(){console.error.apply(console,arguments)};this.debug(this.pattern,r);r=this.globParts=r.map((function(e){return e.split(u)}));this.debug(this.pattern,r);r=r.map((function(e,t,r){return e.map(this.parse,this)}),this);this.debug(this.pattern,r);r=r.filter((function(e){return e.indexOf(false)===-1}));this.debug(this.pattern,r);this.set=r}Minimatch.prototype.parseNegate=parseNegate;function parseNegate(){var e=this.pattern;var t=false;var r=this.options;var a=0;if(r.nonegate)return;for(var n=0,i=e.length;nm){throw new TypeError("pattern is too long")}};Minimatch.prototype.parse=parse;var h={};function parse(e,t){assertValidPattern(e);var r=this.options;if(e==="**"){if(!r.noglobstar)return n;else e="*"}if(e==="")return"";var a="";var i=!!r.nocase;var c=false;var l=[];var u=[];var m;var g=false;var v=-1;var y=-1;var b=e.charAt(0)==="."?"":r.dot?"(?!(?:^|\\/)\\.{1,2}(?:$|\\/))":"(?!\\.)";var w=this;function clearStateChar(){if(m){switch(m){case"*":a+=p;i=true;break;case"?":a+=o;i=true;break;default:a+="\\"+m;break}w.debug("clearStateChar %j %j",m,a);m=false}}for(var x=0,E=e.length,T;x-1;D--){var R=u[D];var N=a.slice(0,R.reStart);var j=a.slice(R.reStart,R.reEnd-8);var I=a.slice(R.reEnd-8,R.reEnd);var F=a.slice(R.reEnd);I+=F;var $=N.split("(").length-1;var B=F;for(x=0;x<$;x++){B=B.replace(/\)[+*?]?/,"")}F=B;var L="";if(F===""&&t!==h){L="$"}var M=N+j+F+L+I;a=M}if(a!==""&&i){a="(?=.)"+a}if(A){a=b+a}if(t===h){return[a,i]}if(!i){return globUnescape(e)}var U=r.nocase?"i":"";try{var G=new RegExp("^"+a+"$",U)}catch(e){return new RegExp("$.")}G._glob=e;G._src=a;return G}minimatch.makeRe=function(e,t){return new Minimatch(e,t||{}).makeRe()};Minimatch.prototype.makeRe=makeRe;function makeRe(){if(this.regexp||this.regexp===false)return this.regexp;var e=this.set;if(!e.length){this.regexp=false;return this.regexp}var t=this.options;var r=t.noglobstar?p:t.dot?c:l;var a=t.nocase?"i":"";var i=e.map((function(e){return e.map((function(e){return e===n?r:typeof e==="string"?regExpEscape(e):e._src})).join("\\/")})).join("|");i="^(?:"+i+")$";if(this.negate)i="^(?!"+i+").*$";try{this.regexp=new RegExp(i,a)}catch(e){this.regexp=false}return this.regexp}minimatch.match=function(e,t,r){r=r||{};var a=new Minimatch(t,r);e=e.filter((function(e){return a.match(e)}));if(a.options.nonull&&!e.length){e.push(t)}return e};Minimatch.prototype.match=function match(e,t){if(typeof t==="undefined")t=this.partial;this.debug("match",e,this.pattern);if(this.comment)return false;if(this.empty)return e==="";if(e==="/"&&t)return true;var r=this.options;if(a.sep!=="/"){e=e.split(a.sep).join("/")}e=e.split(u);this.debug(this.pattern,"split",e);var n=this.set;this.debug(this.pattern,"set",n);var i;var s;for(s=e.length-1;s>=0;s--){i=e[s];if(i)break}for(s=0;s>> no match, partial?",e,d,t,u);if(d===o)return true}return false}var h;if(typeof c==="string"){h=l===c;this.debug("string match",c,l,h)}else{h=l.match(c);this.debug("pattern match",c,l,h)}if(!h)return false}if(i===o&&s===p){return true}else if(i===o){return r}else if(s===p){return i===o-1&&e[i]===""}throw new Error("wtf?")};function globUnescape(e){return e.replace(/\\(.)/g,"$1")}function regExpEscape(e){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}},4297:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.toMs=t.fromMs=void 0;var a=r(7262);Object.defineProperty(t,"fromMs",{enumerable:true,get:function(){return a.fromMs}});Object.defineProperty(t,"toMs",{enumerable:true,get:function(){return a.toMs}})},7262:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.fromMs=t.toMs=void 0;var a=r(9020);var n=r(2716);var i=r(3798);var s={long:false};var toMs=function(e){var t=typeof e==="string"?e:""+e;if(t.length>0){return i.parse(t)}throw new Error("val is not a non-empty string. val="+JSON.stringify(e))};t.toMs=toMs;var fromMs=function(e,t){if(t===void 0){t=s}var r=typeof e==="number"?e:parseInt(e);if(isFinite(r)){return t.long?a.fmtLong(r):n.fmtShort(r)}throw new Error("val is not a a valid number. val="+JSON.stringify(r))};t.fromMs=fromMs},1351:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.MS_TYPES=t.SECONDS_TYPES=t.MINUTE_TYPES=t.HOUR_TYPES=t.DAY_TYPES=t.WEEK_TYPES=t.YEAR_TYPES=t.Y=t.W=t.D=t.H=t.M=t.S=void 0;t.S=1e3;t.M=t.S*60;t.H=t.M*60;t.D=t.H*24;t.W=t.D*7;t.Y=t.D*365.25;t.YEAR_TYPES=new Set(["years","year","yrs","yr","y"]);t.WEEK_TYPES=new Set(["weeks","week","w"]);t.DAY_TYPES=new Set(["days","day","d"]);t.HOUR_TYPES=new Set(["hours","hour","hrs","hr","h"]);t.MINUTE_TYPES=new Set(["minutes","minute","mins","min","m"]);t.SECONDS_TYPES=new Set(["seconds","second","secs","sec","s"]);t.MS_TYPES=new Set(["milliseconds","millisecond","msecs","msec","ms"])},9020:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.fmtLong=void 0;var a=r(1351);var n=r(6882);var fmtLong=function(e){var t=Math.abs(e);if(t>=a.D){return n.plural(e,t,a.D,"day")}if(t>=a.H){return n.plural(e,t,a.H,"hour")}if(t>=a.M){return n.plural(e,t,a.M,"minute")}if(t>=a.S){return n.plural(e,t,a.S,"second")}return e+" ms"};t.fmtLong=fmtLong},2716:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.fmtShort=void 0;var a=r(1351);var fmtShort=function(e){var t=Math.abs(e);if(t>=a.D){return Math.round(e/a.D)+"d"}if(t>=a.H){return Math.round(e/a.H)+"h"}if(t>=a.M){return Math.round(e/a.M)+"m"}if(t>=a.S){return Math.round(e/a.S)+"s"}return e+"ms"};t.fmtShort=fmtShort},3798:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.parse=void 0;var a=r(1351);var parse=function(e){if(e.length>100){return 0}var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(!t){return 0}var r=parseFloat(t[1]);var n=(t[2]||"ms").toLowerCase();if(a.YEAR_TYPES.has(n)){return r*a.Y}if(a.WEEK_TYPES.has(n)){return r*a.W}if(a.DAY_TYPES.has(n)){return r*a.D}if(a.HOUR_TYPES.has(n)){return r*a.H}if(a.MINUTE_TYPES.has(n)){return r*a.M}if(a.SECONDS_TYPES.has(n)){return r*a.S}if(a.MS_TYPES.has(n)){return r}return 0};t.parse=parse},6882:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.plural=void 0;var plural=function(e,t,r,a){var n=t>=r*1.5;return Math.round(e/r)+" "+a+(n?"s":"")};t.plural=plural},900:e=>{var t=1e3;var r=t*60;var a=r*60;var n=a*24;var i=n*7;var s=n*365.25;e.exports=function(e,t){t=t||{};var r=typeof e;if(r==="string"&&e.length>0){return parse(e)}else if(r==="number"&&isFinite(e)){return t.long?fmtLong(e):fmtShort(e)}throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function parse(e){e=String(e);if(e.length>100){return}var o=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(!o){return}var p=parseFloat(o[1]);var c=(o[2]||"ms").toLowerCase();switch(c){case"years":case"year":case"yrs":case"yr":case"y":return p*s;case"weeks":case"week":case"w":return p*i;case"days":case"day":case"d":return p*n;case"hours":case"hour":case"hrs":case"hr":case"h":return p*a;case"minutes":case"minute":case"mins":case"min":case"m":return p*r;case"seconds":case"second":case"secs":case"sec":case"s":return p*t;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return p;default:return undefined}}function fmtShort(e){var i=Math.abs(e);if(i>=n){return Math.round(e/n)+"d"}if(i>=a){return Math.round(e/a)+"h"}if(i>=r){return Math.round(e/r)+"m"}if(i>=t){return Math.round(e/t)+"s"}return e+"ms"}function fmtLong(e){var i=Math.abs(e);if(i>=n){return plural(e,i,n,"day")}if(i>=a){return plural(e,i,a,"hour")}if(i>=r){return plural(e,i,r,"minute")}if(i>=t){return plural(e,i,t,"second")}return e+" ms"}function plural(e,t,r,a){var n=t>=r*1.5;return Math.round(e/r)+" "+a+(n?"s":"")}},467:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});function _interopDefault(e){return e&&typeof e==="object"&&"default"in e?e["default"]:e}var a=_interopDefault(r(2781));var n=_interopDefault(r(3685));var i=_interopDefault(r(7310));var s=_interopDefault(r(8665));var o=_interopDefault(r(5687));var p=_interopDefault(r(9796));const c=a.Readable;const l=Symbol("buffer");const d=Symbol("type");class Blob{constructor(){this[d]="";const e=arguments[0];const t=arguments[1];const r=[];let a=0;if(e){const t=e;const n=Number(t.length);for(let e=0;e1&&arguments[1]!==undefined?arguments[1]:{},n=r.size;let i=n===undefined?0:n;var s=r.timeout;let o=s===undefined?0:s;if(e==null){e=null}else if(isURLSearchParams(e)){e=Buffer.from(e.toString())}else if(isBlob(e));else if(Buffer.isBuffer(e));else if(Object.prototype.toString.call(e)==="[object ArrayBuffer]"){e=Buffer.from(e)}else if(ArrayBuffer.isView(e)){e=Buffer.from(e.buffer,e.byteOffset,e.byteLength)}else if(e instanceof a);else{e=Buffer.from(String(e))}this[m]={body:e,disturbed:false,error:null};this.size=i;this.timeout=o;if(e instanceof a){e.on("error",(function(e){const r=e.name==="AbortError"?e:new FetchError(`Invalid response body while trying to fetch ${t.url}: ${e.message}`,"system",e);t[m].error=r}))}}Body.prototype={get body(){return this[m].body},get bodyUsed(){return this[m].disturbed},arrayBuffer(){return consumeBody.call(this).then((function(e){return e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)}))},blob(){let e=this.headers&&this.headers.get("content-type")||"";return consumeBody.call(this).then((function(t){return Object.assign(new Blob([],{type:e.toLowerCase()}),{[l]:t})}))},json(){var e=this;return consumeBody.call(this).then((function(t){try{return JSON.parse(t.toString())}catch(t){return Body.Promise.reject(new FetchError(`invalid json response body at ${e.url} reason: ${t.message}`,"invalid-json"))}}))},text(){return consumeBody.call(this).then((function(e){return e.toString()}))},buffer(){return consumeBody.call(this)},textConverted(){var e=this;return consumeBody.call(this).then((function(t){return convertBody(t,e.headers)}))}};Object.defineProperties(Body.prototype,{body:{enumerable:true},bodyUsed:{enumerable:true},arrayBuffer:{enumerable:true},blob:{enumerable:true},json:{enumerable:true},text:{enumerable:true}});Body.mixIn=function(e){for(const t of Object.getOwnPropertyNames(Body.prototype)){if(!(t in e)){const r=Object.getOwnPropertyDescriptor(Body.prototype,t);Object.defineProperty(e,t,r)}}};function consumeBody(){var e=this;if(this[m].disturbed){return Body.Promise.reject(new TypeError(`body used already for: ${this.url}`))}this[m].disturbed=true;if(this[m].error){return Body.Promise.reject(this[m].error)}let t=this.body;if(t===null){return Body.Promise.resolve(Buffer.alloc(0))}if(isBlob(t)){t=t.stream()}if(Buffer.isBuffer(t)){return Body.Promise.resolve(t)}if(!(t instanceof a)){return Body.Promise.resolve(Buffer.alloc(0))}let r=[];let n=0;let i=false;return new Body.Promise((function(a,s){let o;if(e.timeout){o=setTimeout((function(){i=true;s(new FetchError(`Response timeout while trying to fetch ${e.url} (over ${e.timeout}ms)`,"body-timeout"))}),e.timeout)}t.on("error",(function(t){if(t.name==="AbortError"){i=true;s(t)}else{s(new FetchError(`Invalid response body while trying to fetch ${e.url}: ${t.message}`,"system",t))}}));t.on("data",(function(t){if(i||t===null){return}if(e.size&&n+t.length>e.size){i=true;s(new FetchError(`content size at ${e.url} over limit: ${e.size}`,"max-size"));return}n+=t.length;r.push(t)}));t.on("end",(function(){if(i){return}clearTimeout(o);try{a(Buffer.concat(r,n))}catch(t){s(new FetchError(`Could not create Buffer from response body for ${e.url}: ${t.message}`,"system",t))}}))}))}function convertBody(e,t){if(typeof u!=="function"){throw new Error("The package `encoding` must be installed to use the textConverted() function")}const r=t.get("content-type");let a="utf-8";let n,i;if(r){n=/charset=([^;]*)/i.exec(r)}i=e.slice(0,1024).toString();if(!n&&i){n=/0&&arguments[0]!==undefined?arguments[0]:undefined;this[y]=Object.create(null);if(e instanceof Headers){const t=e.raw();const r=Object.keys(t);for(const e of r){for(const r of t[e]){this.append(e,r)}}return}if(e==null);else if(typeof e==="object"){const t=e[Symbol.iterator];if(t!=null){if(typeof t!=="function"){throw new TypeError("Header pairs must be iterable")}const r=[];for(const t of e){if(typeof t!=="object"||typeof t[Symbol.iterator]!=="function"){throw new TypeError("Each header pair must be iterable")}r.push(Array.from(t))}for(const e of r){if(e.length!==2){throw new TypeError("Each header pair must be a name/value tuple")}this.append(e[0],e[1])}}else{for(const t of Object.keys(e)){const r=e[t];this.append(t,r)}}}else{throw new TypeError("Provided initializer must be an object")}}get(e){e=`${e}`;validateName(e);const t=find(this[y],e);if(t===undefined){return null}return this[y][t].join(", ")}forEach(e){let t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:undefined;let r=getHeaders(this);let a=0;while(a1&&arguments[1]!==undefined?arguments[1]:"key+value";const r=Object.keys(e[y]).sort();return r.map(t==="key"?function(e){return e.toLowerCase()}:t==="value"?function(t){return e[y][t].join(", ")}:function(t){return[t.toLowerCase(),e[y][t].join(", ")]})}const b=Symbol("internal");function createHeadersIterator(e,t){const r=Object.create(w);r[b]={target:e,kind:t,index:0};return r}const w=Object.setPrototypeOf({next(){if(!this||Object.getPrototypeOf(this)!==w){throw new TypeError("Value of `this` is not a HeadersIterator")}var e=this[b];const t=e.target,r=e.kind,a=e.index;const n=getHeaders(t,r);const i=n.length;if(a>=i){return{value:undefined,done:true}}this[b].index=a+1;return{value:n[a],done:false}}},Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));Object.defineProperty(w,Symbol.toStringTag,{value:"HeadersIterator",writable:false,enumerable:false,configurable:true});function exportNodeCompatibleHeaders(e){const t=Object.assign({__proto__:null},e[y]);const r=find(e[y],"Host");if(r!==undefined){t[r]=t[r][0]}return t}function createHeadersLenient(e){const t=new Headers;for(const r of Object.keys(e)){if(g.test(r)){continue}if(Array.isArray(e[r])){for(const a of e[r]){if(v.test(a)){continue}if(t[y][r]===undefined){t[y][r]=[a]}else{t[y][r].push(a)}}}else if(!v.test(e[r])){t[y][r]=[e[r]]}}return t}const x=Symbol("Response internals");const E=n.STATUS_CODES;class Response{constructor(){let e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:null;let t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};Body.call(this,e,t);const r=t.status||200;const a=new Headers(t.headers);if(e!=null&&!a.has("Content-Type")){const t=extractContentType(e);if(t){a.append("Content-Type",t)}}this[x]={url:t.url,status:r,statusText:t.statusText||E[r],headers:a,counter:t.counter}}get url(){return this[x].url||""}get status(){return this[x].status}get ok(){return this[x].status>=200&&this[x].status<300}get redirected(){return this[x].counter>0}get statusText(){return this[x].statusText}get headers(){return this[x].headers}clone(){return new Response(clone(this),{url:this.url,status:this.status,statusText:this.statusText,headers:this.headers,ok:this.ok,redirected:this.redirected})}}Body.mixIn(Response.prototype);Object.defineProperties(Response.prototype,{url:{enumerable:true},status:{enumerable:true},ok:{enumerable:true},redirected:{enumerable:true},statusText:{enumerable:true},headers:{enumerable:true},clone:{enumerable:true}});Object.defineProperty(Response.prototype,Symbol.toStringTag,{value:"Response",writable:false,enumerable:false,configurable:true});const T=Symbol("Request internals");const S=i.URL||s.URL;const k=i.parse;const O=i.format;function parseURL(e){if(/^[a-zA-Z][a-zA-Z\d+\-.]*:/.exec(e)){e=new S(e).toString()}return k(e)}const C="destroy"in a.Readable.prototype;function isRequest(e){return typeof e==="object"&&typeof e[T]==="object"}function isAbortSignal(e){const t=e&&typeof e==="object"&&Object.getPrototypeOf(e);return!!(t&&t.constructor.name==="AbortSignal")}class Request{constructor(e){let t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};let r;if(!isRequest(e)){if(e&&e.href){r=parseURL(e.href)}else{r=parseURL(`${e}`)}e={}}else{r=parseURL(e.url)}let a=t.method||e.method||"GET";a=a.toUpperCase();if((t.body!=null||isRequest(e)&&e.body!==null)&&(a==="GET"||a==="HEAD")){throw new TypeError("Request with GET/HEAD method cannot have body")}let n=t.body!=null?t.body:isRequest(e)&&e.body!==null?clone(e):null;Body.call(this,n,{timeout:t.timeout||e.timeout||0,size:t.size||e.size||0});const i=new Headers(t.headers||e.headers||{});if(n!=null&&!i.has("Content-Type")){const e=extractContentType(n);if(e){i.append("Content-Type",e)}}let s=isRequest(e)?e.signal:null;if("signal"in t)s=t.signal;if(s!=null&&!isAbortSignal(s)){throw new TypeError("Expected signal to be an instanceof AbortSignal")}this[T]={method:a,redirect:t.redirect||e.redirect||"follow",headers:i,parsedURL:r,signal:s};this.follow=t.follow!==undefined?t.follow:e.follow!==undefined?e.follow:20;this.compress=t.compress!==undefined?t.compress:e.compress!==undefined?e.compress:true;this.counter=t.counter||e.counter||0;this.agent=t.agent||e.agent}get method(){return this[T].method}get url(){return O(this[T].parsedURL)}get headers(){return this[T].headers}get redirect(){return this[T].redirect}get signal(){return this[T].signal}clone(){return new Request(this)}}Body.mixIn(Request.prototype);Object.defineProperty(Request.prototype,Symbol.toStringTag,{value:"Request",writable:false,enumerable:false,configurable:true});Object.defineProperties(Request.prototype,{method:{enumerable:true},url:{enumerable:true},headers:{enumerable:true},redirect:{enumerable:true},clone:{enumerable:true},signal:{enumerable:true}});function getNodeRequestOptions(e){const t=e[T].parsedURL;const r=new Headers(e[T].headers);if(!r.has("Accept")){r.set("Accept","*/*")}if(!t.protocol||!t.hostname){throw new TypeError("Only absolute URLs are supported")}if(!/^https?:$/.test(t.protocol)){throw new TypeError("Only HTTP(S) protocols are supported")}if(e.signal&&e.body instanceof a.Readable&&!C){throw new Error("Cancellation of streamed requests with AbortSignal is not supported in node < 8")}let n=null;if(e.body==null&&/^(POST|PUT)$/i.test(e.method)){n="0"}if(e.body!=null){const t=getTotalBytes(e);if(typeof t==="number"){n=String(t)}}if(n){r.set("Content-Length",n)}if(!r.has("User-Agent")){r.set("User-Agent","node-fetch/1.0 (+https://github.com/bitinn/node-fetch)")}if(e.compress&&!r.has("Accept-Encoding")){r.set("Accept-Encoding","gzip,deflate")}let i=e.agent;if(typeof i==="function"){i=i(t)}if(!r.has("Connection")&&!i){r.set("Connection","close")}return Object.assign({},t,{method:e.method,headers:exportNodeCompatibleHeaders(r),agent:i})}function AbortError(e){Error.call(this,e);this.type="aborted";this.message=e;Error.captureStackTrace(this,this.constructor)}AbortError.prototype=Object.create(Error.prototype);AbortError.prototype.constructor=AbortError;AbortError.prototype.name="AbortError";const P=i.URL||s.URL;const A=a.PassThrough;const D=function isDomainOrSubdomain(e,t){const r=new P(t).hostname;const a=new P(e).hostname;return r===a||r[r.length-a.length-1]==="."&&r.endsWith(a)};function fetch(e,t){if(!fetch.Promise){throw new Error("native promise missing, set fetch.Promise to your favorite alternative")}Body.Promise=fetch.Promise;return new fetch.Promise((function(r,i){const s=new Request(e,t);const c=getNodeRequestOptions(s);const l=(c.protocol==="https:"?o:n).request;const d=s.signal;let u=null;const m=function abort(){let e=new AbortError("The user aborted a request.");i(e);if(s.body&&s.body instanceof a.Readable){s.body.destroy(e)}if(!u||!u.body)return;u.body.emit("error",e)};if(d&&d.aborted){m();return}const h=function abortAndFinalize(){m();finalize()};const g=l(c);let v;if(d){d.addEventListener("abort",h)}function finalize(){g.abort();if(d)d.removeEventListener("abort",h);clearTimeout(v)}if(s.timeout){g.once("socket",(function(e){v=setTimeout((function(){i(new FetchError(`network timeout at: ${s.url}`,"request-timeout"));finalize()}),s.timeout)}))}g.on("error",(function(e){i(new FetchError(`request to ${s.url} failed, reason: ${e.message}`,"system",e));finalize()}));g.on("response",(function(e){clearTimeout(v);const t=createHeadersLenient(e.headers);if(fetch.isRedirect(e.statusCode)){const a=t.get("Location");let n=null;try{n=a===null?null:new P(a,s.url).toString()}catch(e){if(s.redirect!=="manual"){i(new FetchError(`uri requested responds with an invalid redirect URL: ${a}`,"invalid-redirect"));finalize();return}}switch(s.redirect){case"error":i(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${s.url}`,"no-redirect"));finalize();return;case"manual":if(n!==null){try{t.set("Location",n)}catch(e){i(e)}}break;case"follow":if(n===null){break}if(s.counter>=s.follow){i(new FetchError(`maximum redirect reached at: ${s.url}`,"max-redirect"));finalize();return}const a={headers:new Headers(s.headers),follow:s.follow,counter:s.counter+1,agent:s.agent,compress:s.compress,method:s.method,body:s.body,signal:s.signal,timeout:s.timeout,size:s.size};if(!D(s.url,n)){for(const e of["authorization","www-authenticate","cookie","cookie2"]){a.headers.delete(e)}}if(e.statusCode!==303&&s.body&&getTotalBytes(s)===null){i(new FetchError("Cannot follow redirect with body being a readable stream","unsupported-redirect"));finalize();return}if(e.statusCode===303||(e.statusCode===301||e.statusCode===302)&&s.method==="POST"){a.method="GET";a.body=undefined;a.headers.delete("content-length")}r(fetch(new Request(n,a)));finalize();return}}e.once("end",(function(){if(d)d.removeEventListener("abort",h)}));let a=e.pipe(new A);const n={url:s.url,status:e.statusCode,statusText:e.statusMessage,headers:t,size:s.size,timeout:s.timeout,counter:s.counter};const o=t.get("Content-Encoding");if(!s.compress||s.method==="HEAD"||o===null||e.statusCode===204||e.statusCode===304){u=new Response(a,n);r(u);return}const c={flush:p.Z_SYNC_FLUSH,finishFlush:p.Z_SYNC_FLUSH};if(o=="gzip"||o=="x-gzip"){a=a.pipe(p.createGunzip(c));u=new Response(a,n);r(u);return}if(o=="deflate"||o=="x-deflate"){const t=e.pipe(new A);t.once("data",(function(e){if((e[0]&15)===8){a=a.pipe(p.createInflate())}else{a=a.pipe(p.createInflateRaw())}u=new Response(a,n);r(u)}));return}if(o=="br"&&typeof p.createBrotliDecompress==="function"){a=a.pipe(p.createBrotliDecompress());u=new Response(a,n);r(u);return}u=new Response(a,n);r(u)}));writeToStream(g,s)}))}fetch.isRedirect=function(e){return e===301||e===302||e===303||e===307||e===308};fetch.Promise=global.Promise;e.exports=t=fetch;Object.defineProperty(t,"__esModule",{value:true});t["default"]=t;t.Headers=Headers;t.Request=Request;t.Response=Response;t.FetchError=FetchError},1223:(e,t,r)=>{var a=r(2940);e.exports=a(once);e.exports.strict=a(onceStrict);once.proto=once((function(){Object.defineProperty(Function.prototype,"once",{value:function(){return once(this)},configurable:true});Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return onceStrict(this)},configurable:true})}));function once(e){var f=function(){if(f.called)return f.value;f.called=true;return f.value=e.apply(this,arguments)};f.called=false;return f}function onceStrict(e){var f=function(){if(f.called)throw new Error(f.onceError);f.called=true;return f.value=e.apply(this,arguments)};var t=e.name||"Function wrapped with `once`";f.onceError=t+" shouldn't be called more than once";f.called=false;return f}},8714:e=>{"use strict";function posix(e){return e.charAt(0)==="/"}function win32(e){var t=/^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/;var r=t.exec(e);var a=r[1]||"";var n=Boolean(a&&a.charAt(1)!==":");return Boolean(r[2]||n)}e.exports=process.platform==="win32"?win32:posix;e.exports.posix=posix;e.exports.win32=win32},3329:(e,t,r)=>{"use strict";var a=r(7310).parse;var n={ftp:21,gopher:70,http:80,https:443,ws:80,wss:443};var i=String.prototype.endsWith||function(e){return e.length<=this.length&&this.indexOf(e,this.length-e.length)!==-1};function getProxyForUrl(e){var t=typeof e==="string"?a(e):e||{};var r=t.protocol;var i=t.host;var s=t.port;if(typeof i!=="string"||!i||typeof r!=="string"){return""}r=r.split(":",1)[0];i=i.replace(/:\d*$/,"");s=parseInt(s)||n[r]||0;if(!shouldProxy(i,s)){return""}var o=getEnv("npm_config_"+r+"_proxy")||getEnv(r+"_proxy")||getEnv("npm_config_proxy")||getEnv("all_proxy");if(o&&o.indexOf("://")===-1){o=r+"://"+o}return o}function shouldProxy(e,t){var r=(getEnv("npm_config_no_proxy")||getEnv("no_proxy")).toLowerCase();if(!r){return true}if(r==="*"){return false}return r.split(/[,\s]/).every((function(r){if(!r){return true}var a=r.match(/^(.+):(\d+)$/);var n=a?a[1]:r;var s=a?parseInt(a[2]):0;if(s&&s!==t){return true}if(!/^[.*]/.test(n)){return e!==n}if(n.charAt(0)==="*"){n=n.slice(1)}return!i.call(e,n)}))}function getEnv(e){return process.env[e.toLowerCase()]||process.env[e.toUpperCase()]||""}t.getProxyForUrl=getProxyForUrl},9977:()=>{ /*! ***************************************************************************** Copyright (C) Microsoft. All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use @@ -38,7 +38,7 @@ MERCHANTABLITY OR NON-INFRINGEMENT. See the Apache Version 2.0 License for specific language governing permissions and limitations under the License. ***************************************************************************** */ -var e;(function(e){(function(t){var r=typeof global==="object"?global:typeof self==="object"?self:typeof this==="object"?this:Function("return this;")();var a=makeExporter(e);if(typeof r.Reflect==="undefined"){r.Reflect=e}else{a=makeExporter(r.Reflect,a)}t(a);function makeExporter(e,t){return function(r,a){if(typeof e[r]!=="function"){Object.defineProperty(e,r,{configurable:true,writable:true,value:a})}if(t)t(r,a)}}})((function(e){var t=Object.prototype.hasOwnProperty;var r=typeof Symbol==="function";var a=r&&typeof Symbol.toPrimitive!=="undefined"?Symbol.toPrimitive:"@@toPrimitive";var i=r&&typeof Symbol.iterator!=="undefined"?Symbol.iterator:"@@iterator";var n=typeof Object.create==="function";var s={__proto__:[]}instanceof Array;var o=!n&&!s;var p={create:n?function(){return MakeDictionary(Object.create(null))}:s?function(){return MakeDictionary({__proto__:null})}:function(){return MakeDictionary({})},has:o?function(e,r){return t.call(e,r)}:function(e,t){return t in e},get:o?function(e,r){return t.call(e,r)?e[r]:undefined}:function(e,t){return e[t]}};var c=Object.getPrototypeOf(Function);var l=typeof process==="object"&&process.env&&process.env["REFLECT_METADATA_USE_MAP_POLYFILL"]==="true";var d=!l&&typeof Map==="function"&&typeof Map.prototype.entries==="function"?Map:CreateMapPolyfill();var u=!l&&typeof Set==="function"&&typeof Set.prototype.entries==="function"?Set:CreateSetPolyfill();var m=!l&&typeof WeakMap==="function"?WeakMap:CreateWeakMapPolyfill();var h=new m;function decorate(e,t,r,a){if(!IsUndefined(r)){if(!IsArray(e))throw new TypeError;if(!IsObject(t))throw new TypeError;if(!IsObject(a)&&!IsUndefined(a)&&!IsNull(a))throw new TypeError;if(IsNull(a))a=undefined;r=ToPropertyKey(r);return DecorateProperty(e,t,r,a)}else{if(!IsArray(e))throw new TypeError;if(!IsConstructor(t))throw new TypeError;return DecorateConstructor(e,t)}}e("decorate",decorate);function metadata(e,t){function decorator(r,a){if(!IsObject(r))throw new TypeError;if(!IsUndefined(a)&&!IsPropertyKey(a))throw new TypeError;OrdinaryDefineOwnMetadata(e,t,r,a)}return decorator}e("metadata",metadata);function defineMetadata(e,t,r,a){if(!IsObject(r))throw new TypeError;if(!IsUndefined(a))a=ToPropertyKey(a);return OrdinaryDefineOwnMetadata(e,t,r,a)}e("defineMetadata",defineMetadata);function hasMetadata(e,t,r){if(!IsObject(t))throw new TypeError;if(!IsUndefined(r))r=ToPropertyKey(r);return OrdinaryHasMetadata(e,t,r)}e("hasMetadata",hasMetadata);function hasOwnMetadata(e,t,r){if(!IsObject(t))throw new TypeError;if(!IsUndefined(r))r=ToPropertyKey(r);return OrdinaryHasOwnMetadata(e,t,r)}e("hasOwnMetadata",hasOwnMetadata);function getMetadata(e,t,r){if(!IsObject(t))throw new TypeError;if(!IsUndefined(r))r=ToPropertyKey(r);return OrdinaryGetMetadata(e,t,r)}e("getMetadata",getMetadata);function getOwnMetadata(e,t,r){if(!IsObject(t))throw new TypeError;if(!IsUndefined(r))r=ToPropertyKey(r);return OrdinaryGetOwnMetadata(e,t,r)}e("getOwnMetadata",getOwnMetadata);function getMetadataKeys(e,t){if(!IsObject(e))throw new TypeError;if(!IsUndefined(t))t=ToPropertyKey(t);return OrdinaryMetadataKeys(e,t)}e("getMetadataKeys",getMetadataKeys);function getOwnMetadataKeys(e,t){if(!IsObject(e))throw new TypeError;if(!IsUndefined(t))t=ToPropertyKey(t);return OrdinaryOwnMetadataKeys(e,t)}e("getOwnMetadataKeys",getOwnMetadataKeys);function deleteMetadata(e,t,r){if(!IsObject(t))throw new TypeError;if(!IsUndefined(r))r=ToPropertyKey(r);var a=GetOrCreateMetadataMap(t,r,false);if(IsUndefined(a))return false;if(!a.delete(e))return false;if(a.size>0)return true;var i=h.get(t);i.delete(r);if(i.size>0)return true;h.delete(t);return true}e("deleteMetadata",deleteMetadata);function DecorateConstructor(e,t){for(var r=e.length-1;r>=0;--r){var a=e[r];var i=a(t);if(!IsUndefined(i)&&!IsNull(i)){if(!IsConstructor(i))throw new TypeError;t=i}}return t}function DecorateProperty(e,t,r,a){for(var i=e.length-1;i>=0;--i){var n=e[i];var s=n(t,r,a);if(!IsUndefined(s)&&!IsNull(s)){if(!IsObject(s))throw new TypeError;a=s}}return a}function GetOrCreateMetadataMap(e,t,r){var a=h.get(e);if(IsUndefined(a)){if(!r)return undefined;a=new d;h.set(e,a)}var i=a.get(t);if(IsUndefined(i)){if(!r)return undefined;i=new d;a.set(t,i)}return i}function OrdinaryHasMetadata(e,t,r){var a=OrdinaryHasOwnMetadata(e,t,r);if(a)return true;var i=OrdinaryGetPrototypeOf(t);if(!IsNull(i))return OrdinaryHasMetadata(e,i,r);return false}function OrdinaryHasOwnMetadata(e,t,r){var a=GetOrCreateMetadataMap(t,r,false);if(IsUndefined(a))return false;return ToBoolean(a.has(e))}function OrdinaryGetMetadata(e,t,r){var a=OrdinaryHasOwnMetadata(e,t,r);if(a)return OrdinaryGetOwnMetadata(e,t,r);var i=OrdinaryGetPrototypeOf(t);if(!IsNull(i))return OrdinaryGetMetadata(e,i,r);return undefined}function OrdinaryGetOwnMetadata(e,t,r){var a=GetOrCreateMetadataMap(t,r,false);if(IsUndefined(a))return undefined;return a.get(e)}function OrdinaryDefineOwnMetadata(e,t,r,a){var i=GetOrCreateMetadataMap(r,a,true);i.set(e,t)}function OrdinaryMetadataKeys(e,t){var r=OrdinaryOwnMetadataKeys(e,t);var a=OrdinaryGetPrototypeOf(e);if(a===null)return r;var i=OrdinaryMetadataKeys(a,t);if(i.length<=0)return r;if(r.length<=0)return i;var n=new u;var s=[];for(var o=0,p=r;o=0&&e=this._keys.length){this._index=-1;this._keys=t;this._values=t}else{this._index++}return{value:r,done:false}}return{value:undefined,done:true}};MapIterator.prototype.throw=function(e){if(this._index>=0){this._index=-1;this._keys=t;this._values=t}throw e};MapIterator.prototype.return=function(e){if(this._index>=0){this._index=-1;this._keys=t;this._values=t}return{value:e,done:true}};return MapIterator}();return function(){function Map(){this._keys=[];this._values=[];this._cacheKey=e;this._cacheIndex=-2}Object.defineProperty(Map.prototype,"size",{get:function(){return this._keys.length},enumerable:true,configurable:true});Map.prototype.has=function(e){return this._find(e,false)>=0};Map.prototype.get=function(e){var t=this._find(e,false);return t>=0?this._values[t]:undefined};Map.prototype.set=function(e,t){var r=this._find(e,true);this._values[r]=t;return this};Map.prototype.delete=function(t){var r=this._find(t,false);if(r>=0){var a=this._keys.length;for(var i=r+1;i{const a=r(9491);const i=r(1017);const n=r(7147);let s=undefined;try{s=r(1957)}catch(e){}const o={nosort:true,silent:true};let p=0;const c=process.platform==="win32";const defaults=e=>{const t=["unlink","chmod","stat","lstat","rmdir","readdir"];t.forEach((t=>{e[t]=e[t]||n[t];t=t+"Sync";e[t]=e[t]||n[t]}));e.maxBusyTries=e.maxBusyTries||3;e.emfileWait=e.emfileWait||1e3;if(e.glob===false){e.disableGlob=true}if(e.disableGlob!==true&&s===undefined){throw Error("glob dependency not found, set `options.disableGlob = true` if intentional")}e.disableGlob=e.disableGlob||false;e.glob=e.glob||o};const rimraf=(e,t,r)=>{if(typeof t==="function"){r=t;t={}}a(e,"rimraf: missing path");a.equal(typeof e,"string","rimraf: path should be a string");a.equal(typeof r,"function","rimraf: callback function required");a(t,"rimraf: invalid options argument provided");a.equal(typeof t,"object","rimraf: options should be object");defaults(t);let i=0;let n=null;let o=0;const next=e=>{n=n||e;if(--o===0)r(n)};const afterGlob=(e,a)=>{if(e)return r(e);o=a.length;if(o===0)return r();a.forEach((e=>{const CB=r=>{if(r){if((r.code==="EBUSY"||r.code==="ENOTEMPTY"||r.code==="EPERM")&&irimraf_(e,t,CB)),i*100)}if(r.code==="EMFILE"&&primraf_(e,t,CB)),p++)}if(r.code==="ENOENT")r=null}p=0;next(r)};rimraf_(e,t,CB)}))};if(t.disableGlob||!s.hasMagic(e))return afterGlob(null,[e]);t.lstat(e,((r,a)=>{if(!r)return afterGlob(null,[e]);s(e,t.glob,afterGlob)}))};const rimraf_=(e,t,r)=>{a(e);a(t);a(typeof r==="function");t.lstat(e,((a,i)=>{if(a&&a.code==="ENOENT")return r(null);if(a&&a.code==="EPERM"&&c)fixWinEPERM(e,t,a,r);if(i&&i.isDirectory())return rmdir(e,t,a,r);t.unlink(e,(a=>{if(a){if(a.code==="ENOENT")return r(null);if(a.code==="EPERM")return c?fixWinEPERM(e,t,a,r):rmdir(e,t,a,r);if(a.code==="EISDIR")return rmdir(e,t,a,r)}return r(a)}))}))};const fixWinEPERM=(e,t,r,i)=>{a(e);a(t);a(typeof i==="function");t.chmod(e,438,(a=>{if(a)i(a.code==="ENOENT"?null:r);else t.stat(e,((a,n)=>{if(a)i(a.code==="ENOENT"?null:r);else if(n.isDirectory())rmdir(e,t,r,i);else t.unlink(e,i)}))}))};const fixWinEPERMSync=(e,t,r)=>{a(e);a(t);try{t.chmodSync(e,438)}catch(e){if(e.code==="ENOENT")return;else throw r}let i;try{i=t.statSync(e)}catch(e){if(e.code==="ENOENT")return;else throw r}if(i.isDirectory())rmdirSync(e,t,r);else t.unlinkSync(e)};const rmdir=(e,t,r,i)=>{a(e);a(t);a(typeof i==="function");t.rmdir(e,(a=>{if(a&&(a.code==="ENOTEMPTY"||a.code==="EEXIST"||a.code==="EPERM"))rmkids(e,t,i);else if(a&&a.code==="ENOTDIR")i(r);else i(a)}))};const rmkids=(e,t,r)=>{a(e);a(t);a(typeof r==="function");t.readdir(e,((a,n)=>{if(a)return r(a);let s=n.length;if(s===0)return t.rmdir(e,r);let o;n.forEach((a=>{rimraf(i.join(e,a),t,(a=>{if(o)return;if(a)return r(o=a);if(--s===0)t.rmdir(e,r)}))}))}))};const rimrafSync=(e,t)=>{t=t||{};defaults(t);a(e,"rimraf: missing path");a.equal(typeof e,"string","rimraf: path should be a string");a(t,"rimraf: missing options");a.equal(typeof t,"object","rimraf: options should be object");let r;if(t.disableGlob||!s.hasMagic(e)){r=[e]}else{try{t.lstatSync(e);r=[e]}catch(a){r=s.sync(e,t.glob)}}if(!r.length)return;for(let e=0;e{a(e);a(t);try{t.rmdirSync(e)}catch(a){if(a.code==="ENOENT")return;if(a.code==="ENOTDIR")throw r;if(a.code==="ENOTEMPTY"||a.code==="EEXIST"||a.code==="EPERM")rmkidsSync(e,t)}};const rmkidsSync=(e,t)=>{a(e);a(t);t.readdirSync(e).forEach((r=>rimrafSync(i.join(e,r),t)));const r=c?100:1;let n=0;do{let a=true;try{const i=t.rmdirSync(e,t);a=false;return i}finally{if(++n{var a=Object.create;var i=Object.defineProperty;var n=Object.defineProperties;var s=Object.getOwnPropertyDescriptor;var o=Object.getOwnPropertyDescriptors;var p=Object.getOwnPropertyNames;var c=Object.getOwnPropertySymbols;var l=Object.getPrototypeOf;var d=Object.prototype.hasOwnProperty;var u=Object.prototype.propertyIsEnumerable;var __defNormalProp=(e,t,r)=>t in e?i(e,t,{enumerable:true,configurable:true,writable:true,value:r}):e[t]=r;var __spreadValues=(e,t)=>{for(var r in t||(t={}))if(d.call(t,r))__defNormalProp(e,r,t[r]);if(c)for(var r of c(t)){if(u.call(t,r))__defNormalProp(e,r,t[r])}return e};var __spreadProps=(e,t)=>n(e,o(t));var __markAsModule=e=>i(e,"__esModule",{value:true});var __esm=(e,t)=>function __init(){return e&&(t=(0,e[p(e)[0]])(e=0)),t};var __commonJS=(e,t)=>function __require(){return t||(0,e[p(e)[0]])((t={exports:{}}).exports,t),t.exports};var __export=(e,t)=>{for(var r in t)i(e,r,{get:t[r],enumerable:true})};var __reExport=(e,t,r,a)=>{if(t&&typeof t==="object"||typeof t==="function"){for(let n of p(t))if(!d.call(e,n)&&(r||n!=="default"))i(e,n,{get:()=>t[n],enumerable:!(a=s(t,n))||a.enumerable})}return e};var __toESM=(e,t)=>__reExport(__markAsModule(i(e!=null?a(l(e)):{},"default",!t&&e&&e.__esModule?{get:()=>e.default,enumerable:true}:{value:e,enumerable:true})),e);var m=(e=>(t,r)=>e&&e.get(t)||(r=__reExport(__markAsModule({}),t,1),e&&e.set(t,r),r))(typeof WeakMap!=="undefined"?new WeakMap:0);var __async=(e,t,r)=>new Promise(((a,i)=>{var fulfilled=e=>{try{step(r.next(e))}catch(e){i(e)}};var rejected=e=>{try{step(r.throw(e))}catch(e){i(e)}};var step=e=>e.done?a(e.value):Promise.resolve(e.value).then(fulfilled,rejected);step((r=r.apply(e,t)).next())}));var h;var g=__esm({"src/lib/errors/git-error.ts"(){h=class extends Error{constructor(e,t){super(t);this.task=e;Object.setPrototypeOf(this,new.target.prototype)}}}});var v;var y=__esm({"src/lib/errors/git-response-error.ts"(){g();v=class extends h{constructor(e,t){super(void 0,t||String(e));this.git=e}}}});var b;var w=__esm({"src/lib/errors/git-construct-error.ts"(){g();b=class extends h{constructor(e,t){super(void 0,t);this.config=e}}}});var x;var E=__esm({"src/lib/errors/git-plugin-error.ts"(){g();x=class extends h{constructor(e,t,r){super(e,r);this.task=e;this.plugin=t;Object.setPrototypeOf(this,new.target.prototype)}}}});var S;var T=__esm({"src/lib/errors/task-configuration-error.ts"(){g();S=class extends h{constructor(e){super(void 0,e)}}}});function asFunction(e){return typeof e==="function"?e:O}function isUserFunction(e){return typeof e==="function"&&e!==O}function splitOn(e,t){const r=e.indexOf(t);if(r<=0){return[e,""]}return[e.substr(0,r),e.substr(r+1)]}function first(e,t=0){return isArrayLike(e)&&e.length>t?e[t]:void 0}function last(e,t=0){if(isArrayLike(e)&&e.length>t){return e[e.length-1-t]}}function isArrayLike(e){return!!(e&&typeof e.length==="number")}function toLinesWithContent(e="",t=true,r="\n"){return e.split(r).reduce(((e,r)=>{const a=t?r.trim():r;if(a){e.push(a)}return e}),[])}function forEachLineWithContent(e,t){return toLinesWithContent(e,true).map((e=>t(e)))}function folderExists(e){return(0,k.exists)(e,k.FOLDER)}function append(e,t){if(Array.isArray(e)){if(!e.includes(t)){e.push(t)}}else{e.add(t)}return t}function including(e,t){if(Array.isArray(e)&&!e.includes(t)){e.push(t)}return e}function remove(e,t){if(Array.isArray(e)){const r=e.indexOf(t);if(r>=0){e.splice(r,1)}}else{e.delete(t)}return t}function asArray(e){return Array.isArray(e)?e:[e]}function asStringArray(e){return asArray(e).map(String)}function asNumber(e,t=0){if(e==null){return t}const r=parseInt(e,10);return isNaN(r)?t:r}function prefixedArray(e,t){const r=[];for(let a=0,i=e.length;at in e?{[t]:e[t]}:{})))}function delay(e=0){return new Promise((t=>setTimeout(t,e)))}var k,C,O,P;var A=__esm({"src/lib/utils/util.ts"(){k=r(4751);C="\0";O=()=>{};P=Object.prototype.toString.call.bind(Object.prototype.toString)}});function filterType(e,t,r){if(t(e)){return e}return arguments.length>2?r:void 0}function filterPrimitives(e,t){return/number|string|boolean/.test(typeof e)&&(!t||!t.includes(typeof e))}function filterPlainObject(e){return!!e&&P(e)==="[object Object]"}function filterFunction(e){return typeof e==="function"}var D,N,R,j,F;var I=__esm({"src/lib/utils/argument-filters.ts"(){A();D=e=>Array.isArray(e);N=e=>typeof e==="string";R=e=>Array.isArray(e)&&e.every(N);j=e=>N(e)||Array.isArray(e)&&e.every(N);F=e=>{if(e==null||"number|boolean|function".includes(typeof e)){return false}return Array.isArray(e)||typeof e==="string"||typeof e.length==="number"}}});var $;var B=__esm({"src/lib/utils/exit-codes.ts"(){$=(e=>{e[e["SUCCESS"]=0]="SUCCESS";e[e["ERROR"]=1]="ERROR";e[e["NOT_FOUND"]=-2]="NOT_FOUND";e[e["UNCLEAN"]=128]="UNCLEAN";return e})($||{})}});var L;var M=__esm({"src/lib/utils/git-output-streams.ts"(){L=class{constructor(e,t){this.stdOut=e;this.stdErr=t}asStrings(){return new L(this.stdOut.toString("utf8"),this.stdErr.toString("utf8"))}}}});var U,G;var V=__esm({"src/lib/utils/line-parser.ts"(){U=class{constructor(e,t){this.matches=[];this.parse=(e,t)=>{this.resetMatches();if(!this._regExp.every(((t,r)=>this.addMatch(t,r,e(r))))){return false}return this.useMatches(t,this.prepareMatches())!==false};this._regExp=Array.isArray(e)?e:[e];if(t){this.useMatches=t}}useMatches(e,t){throw new Error(`LineParser:useMatches not implemented`)}resetMatches(){this.matches.length=0}prepareMatches(){return this.matches}addMatch(e,t,r){const a=r&&e.exec(r);if(a){this.pushMatch(t,a)}return!!a}pushMatch(e,t){this.matches.push(...t.slice(1))}};G=class extends U{addMatch(e,t,r){return/^remote:\s/.test(String(r))&&super.addMatch(e,t,r)}pushMatch(e,t){if(e>0||t.length>1){super.pushMatch(e,t)}}}}});function createInstanceConfig(...e){const t=process.cwd();const r=Object.assign(__spreadValues({baseDir:t},q),...e.filter((e=>typeof e==="object"&&e)));r.baseDir=r.baseDir||t;r.trimmed=r.trimmed===true;return r}var q;var z=__esm({"src/lib/utils/simple-git-options.ts"(){q={binary:"git",maxConcurrentProcesses:5,config:[],trimmed:false}}});function appendTaskOptions(e,t=[]){if(!filterPlainObject(e)){return t}return Object.keys(e).reduce(((t,r)=>{const a=e[r];if(filterPrimitives(a,["boolean"])){t.push(r+"="+a)}else{t.push(r)}return t}),t)}function getTrailingOptions(e,t=0,r=false){const a=[];for(let r=0,i=t<0?e.length:t;r{for(let i=toLinesWithContent(r,a),n=0,s=i.length;n{if(n+e>=s){return}return i[n+e]};t.some((({parse:t})=>t(line,e)))}}));return e}var K=__esm({"src/lib/utils/task-parser.ts"(){A()}});var W={};__export(W,{ExitCodes:()=>$,GitOutputStreams:()=>L,LineParser:()=>U,NOOP:()=>O,NULL:()=>C,RemoteLineParser:()=>G,append:()=>append,appendTaskOptions:()=>appendTaskOptions,asArray:()=>asArray,asFunction:()=>asFunction,asNumber:()=>asNumber,asStringArray:()=>asStringArray,bufferToString:()=>bufferToString,callTaskParser:()=>callTaskParser,createInstanceConfig:()=>createInstanceConfig,delay:()=>delay,filterArray:()=>D,filterFunction:()=>filterFunction,filterHasLength:()=>F,filterPlainObject:()=>filterPlainObject,filterPrimitives:()=>filterPrimitives,filterString:()=>N,filterStringArray:()=>R,filterStringOrStringArray:()=>j,filterType:()=>filterType,first:()=>first,folderExists:()=>folderExists,forEachLineWithContent:()=>forEachLineWithContent,getTrailingOptions:()=>getTrailingOptions,including:()=>including,isUserFunction:()=>isUserFunction,last:()=>last,objectToString:()=>P,parseStringResponse:()=>parseStringResponse,pick:()=>pick,prefixedArray:()=>prefixedArray,remove:()=>remove,splitOn:()=>splitOn,toLinesWithContent:()=>toLinesWithContent,trailingFunctionArgument:()=>trailingFunctionArgument,trailingOptionsArgument:()=>trailingOptionsArgument});var J=__esm({"src/lib/utils/index.ts"(){I();B();M();V();z();H();K();A()}});var Y={};__export(Y,{CheckRepoActions:()=>Q,checkIsBareRepoTask:()=>checkIsBareRepoTask,checkIsRepoRootTask:()=>checkIsRepoRootTask,checkIsRepoTask:()=>checkIsRepoTask});function checkIsRepoTask(e){switch(e){case"bare":return checkIsBareRepoTask();case"root":return checkIsRepoRootTask()}const t=["rev-parse","--is-inside-work-tree"];return{commands:t,format:"utf-8",onError:X,parser:Z}}function checkIsRepoRootTask(){const e=["rev-parse","--git-dir"];return{commands:e,format:"utf-8",onError:X,parser(e){return/^\.(git)?$/.test(e.trim())}}}function checkIsBareRepoTask(){const e=["rev-parse","--is-bare-repository"];return{commands:e,format:"utf-8",onError:X,parser:Z}}function isNotRepoMessage(e){return/(Not a git repository|Kein Git-Repository)/i.test(String(e))}var Q,X,Z;var ee=__esm({"src/lib/tasks/check-is-repo.ts"(){J();Q=(e=>{e["BARE"]="bare";e["IN_TREE"]="tree";e["IS_REPO_ROOT"]="root";return e})(Q||{});X=({exitCode:e},t,r,a)=>{if(e===128&&isNotRepoMessage(t)){return r(Buffer.from("false"))}a(t)};Z=e=>e.trim()==="true"}});function cleanSummaryParser(e,t){const r=new te(e);const a=e?ae:re;toLinesWithContent(t).forEach((e=>{const t=e.replace(a,"");r.paths.push(t);(ie.test(t)?r.folders:r.files).push(t)}));return r}var te,re,ae,ie;var ne=__esm({"src/lib/responses/CleanSummary.ts"(){J();te=class{constructor(e){this.dryRun=e;this.paths=[];this.files=[];this.folders=[]}};re=/^[a-z]+\s*/i;ae=/^[a-z]+\s+[a-z]+\s*/i;ie=/\/$/}});var se={};__export(se,{EMPTY_COMMANDS:()=>oe,adhocExecTask:()=>adhocExecTask,configurationErrorTask:()=>configurationErrorTask,isBufferTask:()=>isBufferTask,isEmptyTask:()=>isEmptyTask,straightThroughBufferTask:()=>straightThroughBufferTask,straightThroughStringTask:()=>straightThroughStringTask});function adhocExecTask(e){return{commands:oe,format:"empty",parser:e}}function configurationErrorTask(e){return{commands:oe,format:"empty",parser(){throw typeof e==="string"?new S(e):e}}}function straightThroughStringTask(e,t=false){return{commands:e,format:"utf-8",parser(e){return t?String(e).trim():e}}}function straightThroughBufferTask(e){return{commands:e,format:"buffer",parser(e){return e}}}function isBufferTask(e){return e.format==="buffer"}function isEmptyTask(e){return e.format==="empty"||!e.commands.length}var oe;var pe=__esm({"src/lib/tasks/task.ts"(){T();oe=[]}});var ce={};__export(ce,{CONFIG_ERROR_INTERACTIVE_MODE:()=>le,CONFIG_ERROR_MODE_REQUIRED:()=>de,CONFIG_ERROR_UNKNOWN_OPTION:()=>ue,CleanOptions:()=>me,cleanTask:()=>cleanTask,cleanWithOptionsTask:()=>cleanWithOptionsTask,isCleanOptionsArray:()=>isCleanOptionsArray});function cleanWithOptionsTask(e,t){const{cleanMode:r,options:a,valid:i}=getCleanOptions(e);if(!r){return configurationErrorTask(de)}if(!i.options){return configurationErrorTask(ue+JSON.stringify(e))}a.push(...t);if(a.some(isInteractiveMode)){return configurationErrorTask(le)}return cleanTask(r,a)}function cleanTask(e,t){const r=["clean",`-${e}`,...t];return{commands:r,format:"utf-8",parser(t){return cleanSummaryParser(e==="n",t)}}}function isCleanOptionsArray(e){return Array.isArray(e)&&e.every((e=>fe.has(e)))}function getCleanOptions(e){let t;let r=[];let a={cleanMode:false,options:true};e.replace(/[^a-z]i/g,"").split("").forEach((e=>{if(isCleanMode(e)){t=e;a.cleanMode=true}else{a.options=a.options&&isKnownOption(r[r.length]=`-${e}`)}}));return{cleanMode:t,options:r,valid:a}}function isCleanMode(e){return e==="f"||e==="n"}function isKnownOption(e){return/^-[a-z]$/i.test(e)&&fe.has(e.charAt(1))}function isInteractiveMode(e){if(/^-[^\-]/.test(e)){return e.indexOf("i")>0}return e==="--interactive"}var le,de,ue,me,fe;var he=__esm({"src/lib/tasks/clean.ts"(){ne();J();pe();le="Git clean interactive mode is not supported";de='Git clean mode parameter ("n" or "f") is required';ue="Git clean unknown option found in: ";me=(e=>{e["DRY_RUN"]="n";e["FORCE"]="f";e["IGNORED_INCLUDED"]="x";e["IGNORED_ONLY"]="X";e["EXCLUDING"]="e";e["QUIET"]="q";e["RECURSIVE"]="d";return e})(me||{});fe=new Set(["i",...asStringArray(Object.values(me))])}});function configListParser(e){const t=new ge;for(const r of configParser(e)){t.addValue(r.file,String(r.key),r.value)}return t}function configGetParser(e,t){let r=null;const a=[];const i=new Map;for(const n of configParser(e,t)){if(n.key!==t){continue}a.push(r=n.value);if(!i.has(n.file)){i.set(n.file,[])}i.get(n.file).push(r)}return{key:t,paths:Array.from(i.keys()),scopes:i,value:r,values:a}}function configFilePath(e){return e.replace(/^(file):/,"")}function*configParser(e,t=null){const r=e.split("\0");for(let e=0,a=r.length-1;eObject.assign(e,this.values[t])),{})}return this._all}addFile(e){if(!(e in this.values)){const t=last(this.files);this.values[e]=t?Object.create(this.values[t]):{};this.files.push(e)}return this.values[e]}addValue(e,t,r){const a=this.addFile(e);if(!a.hasOwnProperty(t)){a[t]=r}else if(Array.isArray(a[t])){a[t].push(r)}else{a[t]=[a[t],r]}this._all=void 0}}}});function asConfigScope(e,t){if(typeof e==="string"&&ye.hasOwnProperty(e)){return e}return t}function addConfigTask(e,t,r,a){const i=["config",`--${a}`];if(r){i.push("--add")}i.push(e,t);return{commands:i,format:"utf-8",parser(e){return e}}}function getConfigTask(e,t){const r=["config","--null","--show-origin","--get-all",e];if(t){r.splice(1,0,`--${t}`)}return{commands:r,format:"utf-8",parser(t){return configGetParser(t,e)}}}function listConfigTask(e){const t=["config","--list","--show-origin","--null"];if(e){t.push(`--${e}`)}return{commands:t,format:"utf-8",parser(e){return configListParser(e)}}}function config_default(){return{addConfig(e,t,...r){return this._runTask(addConfigTask(e,t,r[0]===true,asConfigScope(r[1],"local")),trailingFunctionArgument(arguments))},getConfig(e,t){return this._runTask(getConfigTask(e,asConfigScope(t,void 0)),trailingFunctionArgument(arguments))},listConfig(...e){return this._runTask(listConfigTask(asConfigScope(e[0],void 0)),trailingFunctionArgument(arguments))}}}var ye;var be=__esm({"src/lib/tasks/config.ts"(){ve();J();ye=(e=>{e["system"]="system";e["global"]="global";e["local"]="local";e["worktree"]="worktree";return e})(ye||{})}});function grepQueryBuilder(...e){return(new Ee).param(...e)}function parseGrep(e){const t=new Set;const r={};forEachLineWithContent(e,(e=>{const[a,i,n]=e.split(C);t.add(a);(r[a]=r[a]||[]).push({line:asNumber(i),path:a,preview:n})}));return{paths:t,results:r}}function grep_default(){return{grep(e){const t=trailingFunctionArgument(arguments);const r=getTrailingOptions(arguments);for(const e of we){if(r.includes(e)){return this._runTask(configurationErrorTask(`git.grep: use of "${e}" is not supported.`),t)}}if(typeof e==="string"){e=grepQueryBuilder().param(e)}const a=["grep","--null","-n","--full-name",...r,...e];return this._runTask({commands:a,format:"utf-8",parser(e){return parseGrep(e)}},t)}}}var we,xe,_e,Ee;var Se=__esm({"src/lib/tasks/grep.ts"(){J();pe();we=["-h"];xe=Symbol("grepQuery");Ee=class{constructor(){this[_e]=[]}*[(_e=xe,Symbol.iterator)](){for(const e of this[xe]){yield e}}and(...e){e.length&&this[xe].push("--and","(",...prefixedArray(e,"-e"),")");return this}param(...e){this[xe].push(...prefixedArray(e,"-e"));return this}}}});var Te={};__export(Te,{ResetMode:()=>ke,getResetMode:()=>getResetMode,resetTask:()=>resetTask});function resetTask(e,t){const r=["reset"];if(isValidResetMode(e)){r.push(`--${e}`)}r.push(...t);return straightThroughStringTask(r)}function getResetMode(e){if(isValidResetMode(e)){return e}switch(typeof e){case"string":case"undefined":return"soft"}return}function isValidResetMode(e){return Ce.includes(e)}var ke,Ce;var Oe=__esm({"src/lib/tasks/reset.ts"(){pe();ke=(e=>{e["MIXED"]="mixed";e["SOFT"]="soft";e["HARD"]="hard";e["MERGE"]="merge";e["KEEP"]="keep";return e})(ke||{});Ce=Array.from(Object.values(ke))}});var Pe={};__export(Pe,{CheckRepoActions:()=>Q,CleanOptions:()=>me,GitConfigScope:()=>ye,GitConstructError:()=>b,GitError:()=>h,GitPluginError:()=>x,GitResponseError:()=>v,ResetMode:()=>ke,TaskConfigurationError:()=>S,grepQueryBuilder:()=>grepQueryBuilder});var Ae=__esm({"src/lib/api.ts"(){w();g();E();y();T();ee();he();be();Se();Oe()}});function abortPlugin(e){if(!e){return}const t={type:"spawn.after",action(t,r){function kill(){r.kill(new x(void 0,"abort","Abort signal received"))}e.addEventListener("abort",kill);r.spawned.on("close",(()=>e.removeEventListener("abort",kill)))}};const r={type:"spawn.before",action(t,r){if(e.aborted){r.kill(new x(void 0,"abort","Abort already signaled"))}}};return[r,t]}var De=__esm({"src/lib/plugins/abort-plugin.ts"(){E()}});function isConfigSwitch(e){return e.trim().toLowerCase()==="-c"}function preventProtocolOverride(e,t){if(!isConfigSwitch(e)){return}if(!/^\s*protocol(.[a-z]+)?.allow/.test(t)){return}throw new x(void 0,"unsafe","Configuring protocol.allow is not permitted without enabling allowUnsafeExtProtocol")}function blockUnsafeOperationsPlugin({allowUnsafeProtocolOverride:e=false}={}){return{type:"spawn.args",action(t,r){t.forEach(((r,a)=>{const i=adelay(e)))).then(r.done)}return{type:"spawn.after",action(e,t){return __async(this,arguments,(function*(e,{spawned:t,close:r}){var a,i;const n=createEvents();let s=true;let quickClose=()=>void(s=false);(a=t.stdout)==null?void 0:a.on("data",quickClose);(i=t.stderr)==null?void 0:i.on("data",quickClose);t.on("error",quickClose);t.on("close",(e=>n.close(e)));t.on("exit",(e=>n.exit(e)));try{yield n.result;if(s){yield delay(50)}r(n.exitCode)}catch(e){r(n.exitCode,e)}}))}}}var je,Fe;var Ie=__esm({"src/lib/plugins/completion-detection.plugin.ts"(){je=r(9819);J();Fe=(0,je.deferred)().promise}});function isTaskError(e){return!!(e.exitCode&&e.stdErr.length)}function getErrorMessage(e){return Buffer.concat([...e.stdOut,...e.stdErr])}function errorDetectionHandler(e=false,t=isTaskError,r=getErrorMessage){return(a,i)=>{if(!e&&a||!t(i)){return a}return r(i)}}function errorDetectionPlugin(e){return{type:"task.error",action(t,r){const a=e(t.error,{stdErr:r.stdErr,stdOut:r.stdOut,exitCode:r.exitCode});if(Buffer.isBuffer(a)){return{error:new h(void 0,a.toString("utf-8"))}}return{error:a}}}}var $e=__esm({"src/lib/plugins/error-detection.plugin.ts"(){g()}});var Be;var Le=__esm({"src/lib/plugins/plugin-store.ts"(){J();Be=class{constructor(){this.plugins=new Set}add(e){const t=[];asArray(e).forEach((e=>e&&this.plugins.add(append(t,e))));return()=>{t.forEach((e=>this.plugins.delete(e)))}}exec(e,t,r){let a=t;const i=Object.freeze(Object.create(r));for(const t of this.plugins){if(t.type===e){a=t.action(a,i)}}return a}}}});function progressMonitorPlugin(e){const t="--progress";const r=["checkout","clone","fetch","pull","push"];const a={type:"spawn.after",action(r,a){var i;if(!a.commands.includes(t)){return}(i=a.spawned.stderr)==null?void 0:i.on("data",(t=>{const r=/^([\s\S]+?):\s*(\d+)% \((\d+)\/(\d+)\)/.exec(t.toString("utf8"));if(!r){return}e({method:a.method,stage:progressEventStage(r[1]),progress:asNumber(r[2]),processed:asNumber(r[3]),total:asNumber(r[4])})}))}};const i={type:"spawn.args",action(e,a){if(!r.includes(a.method)){return e}return including(e,t)}};return[i,a]}function progressEventStage(e){return String(e.toLowerCase().split(" ",1))||"unknown"}var Me=__esm({"src/lib/plugins/progress-monitor-plugin.ts"(){J()}});var Ue=__esm({"src/lib/plugins/simple-git-plugin.ts"(){}});function spawnOptionsPlugin(e){const t=pick(e,["uid","gid"]);return{type:"spawn.options",action(e){return __spreadValues(__spreadValues({},t),e)}}}var Ge=__esm({"src/lib/plugins/spawn-options-plugin.ts"(){J()}});function timeoutPlugin({block:e}){if(e>0){return{type:"spawn.after",action(t,r){var a,i;let n;function wait(){n&&clearTimeout(n);n=setTimeout(kill,e)}function stop(){var e,t;(e=r.spawned.stdout)==null?void 0:e.off("data",wait);(t=r.spawned.stderr)==null?void 0:t.off("data",wait);r.spawned.off("exit",stop);r.spawned.off("close",stop);n&&clearTimeout(n)}function kill(){stop();r.kill(new x(void 0,"timeout",`block timeout reached`))}(a=r.spawned.stdout)==null?void 0:a.on("data",wait);(i=r.spawned.stderr)==null?void 0:i.on("data",wait);r.spawned.on("exit",stop);r.spawned.on("close",stop);wait()}}}}var Ve=__esm({"src/lib/plugins/timout-plugin.ts"(){E()}});var qe=__esm({"src/lib/plugins/index.ts"(){De();Ne();Re();Ie();$e();Le();Me();Ue();Ge();Ve()}});function createLog(){return(0,ze.default)("simple-git")}function prefixedLogger(e,t,r){if(!t||!String(t).replace(/\s*/,"")){return!r?e:(t,...a)=>{e(t,...a);r(t,...a)}}return(a,...i)=>{e(`%s ${a}`,t,...i);if(r){r(a,...i)}}}function childLoggerName(e,t,{namespace:r}){if(typeof e==="string"){return e}const a=t&&t.namespace||"";if(a.startsWith(r)){return a.substr(r.length+1)}return a||r}function createLogger(e,t,r,a=createLog()){const i=e&&`[${e}]`||"";const n=[];const s=typeof t==="string"?a.extend(t):t;const o=childLoggerName(filterType(t,N),s,a);return step(r);function sibling(t,r){return append(n,createLogger(e,o.replace(/^[^:]+/,t),r,a))}function step(t){const r=t&&`[${t}]`||"";const n=s&&prefixedLogger(s,r)||O;const o=prefixedLogger(a,`${i} ${r}`,n);return Object.assign(s?n:o,{label:e,sibling:sibling,info:o,step:step})}}var ze;var He=__esm({"src/lib/git-logger.ts"(){ze=__toESM(r(8237));J();ze.default.formatters.L=e=>String(F(e)?e.length:"-");ze.default.formatters.B=e=>{if(Buffer.isBuffer(e)){return e.toString("utf8")}return P(e)}}});var Ke,We;var Je=__esm({"src/lib/runners/tasks-pending-queue.ts"(){g();He();Ke=class{constructor(e="GitExecutor"){this.logLabel=e;this._queue=new Map}withProgress(e){return this._queue.get(e)}createProgress(e){const t=Ke.getName(e.commands[0]);const r=createLogger(this.logLabel,t);return{task:e,logger:r,name:t}}push(e){const t=this.createProgress(e);t.logger("Adding task to the queue, commands = %o",e.commands);this._queue.set(e,t);return t}fatal(e){for(const[t,{logger:r}]of Array.from(this._queue.entries())){if(t===e.task){r.info(`Failed %o`,e);r(`Fatal exception, any as-yet un-started tasks run through this executor will not be attempted`)}else{r.info(`A fatal exception occurred in a previous task, the queue has been purged: %o`,e.message)}this.complete(t)}if(this._queue.size!==0){throw new Error(`Queue size should be zero after fatal: ${this._queue.size}`)}}complete(e){const t=this.withProgress(e);if(t){this._queue.delete(e)}}attempt(e){const t=this.withProgress(e);if(!t){throw new h(void 0,"TasksPendingQueue: attempt called for an unknown task")}t.logger("Starting task");return t}static getName(e="empty"){return`task:${e}:${++Ke.counter}`}};We=Ke;We.counter=0}});function pluginContext(e,t){return{method:first(e.commands)||"",commands:t}}function onErrorReceived(e,t){return r=>{t(`[ERROR] child process exception %o`,r);e.push(Buffer.from(String(r.stack),"ascii"))}}function onDataReceived(e,t,r,a){return i=>{r(`%s received %L bytes`,t,i);a(`%B`,i);e.push(i)}}var Ye,Qe;var Xe=__esm({"src/lib/runners/git-executor-chain.ts"(){Ye=r(2081);g();pe();J();Je();Qe=class{constructor(e,t,r){this._executor=e;this._scheduler=t;this._plugins=r;this._chain=Promise.resolve();this._queue=new We}get binary(){return this._executor.binary}get cwd(){return this._cwd||this._executor.cwd}set cwd(e){this._cwd=e}get env(){return this._executor.env}get outputHandler(){return this._executor.outputHandler}chain(){return this}push(e){this._queue.push(e);return this._chain=this._chain.then((()=>this.attemptTask(e)))}attemptTask(e){return __async(this,null,(function*(){const t=yield this._scheduler.next();const onQueueComplete=()=>this._queue.complete(e);try{const{logger:r}=this._queue.attempt(e);return yield isEmptyTask(e)?this.attemptEmptyTask(e,r):this.attemptRemoteTask(e,r)}catch(t){throw this.onFatalException(e,t)}finally{onQueueComplete();t()}}))}onFatalException(e,t){const r=t instanceof h?Object.assign(t,{task:e}):new h(e,t&&String(t));this._chain=Promise.resolve();this._queue.fatal(r);return r}attemptRemoteTask(e,t){return __async(this,null,(function*(){const r=this._plugins.exec("spawn.args",[...e.commands],pluginContext(e,e.commands));const a=yield this.gitResponse(e,this.binary,r,this.outputHandler,t.step("SPAWN"));const i=yield this.handleTaskData(e,r,a,t.step("HANDLE"));t(`passing response to task's parser as a %s`,e.format);if(isBufferTask(e)){return callTaskParser(e.parser,i)}return callTaskParser(e.parser,i.asStrings())}))}attemptEmptyTask(e,t){return __async(this,null,(function*(){t(`empty task bypassing child process to call to task's parser`);return e.parser(this)}))}handleTaskData(e,t,r,a){const{exitCode:i,rejection:n,stdOut:s,stdErr:o}=r;return new Promise(((p,c)=>{a(`Preparing to handle process response exitCode=%d stdOut=`,i);const{error:l}=this._plugins.exec("task.error",{error:n},__spreadValues(__spreadValues({},pluginContext(e,t)),r));if(l&&e.onError){a.info(`exitCode=%s handling with custom error handler`);return e.onError(r,l,(e=>{a.info(`custom error handler treated as success`);a(`custom error returned a %s`,P(e));p(new L(Array.isArray(e)?Buffer.concat(e):e,Buffer.concat(o)))}),c)}if(l){a.info(`handling as error: exitCode=%s stdErr=%s rejection=%o`,i,o.length,n);return c(l)}a.info(`retrieving task output complete`);p(new L(Buffer.concat(s),Buffer.concat(o)))}))}gitResponse(e,t,r,a,i){return __async(this,null,(function*(){const n=i.sibling("output");const s=this._plugins.exec("spawn.options",{cwd:this.cwd,env:this.env,windowsHide:true},pluginContext(e,e.commands));return new Promise((o=>{const p=[];const c=[];i.info(`%s %o`,t,r);i("%O",s);let l=this._beforeSpawn(e,r);if(l){return o({stdOut:p,stdErr:c,exitCode:9901,rejection:l})}this._plugins.exec("spawn.before",void 0,__spreadProps(__spreadValues({},pluginContext(e,r)),{kill(e){l=e||l}}));const d=(0,Ye.spawn)(t,r,s);d.stdout.on("data",onDataReceived(p,"stdOut",i,n.step("stdOut")));d.stderr.on("data",onDataReceived(c,"stdErr",i,n.step("stdErr")));d.on("error",onErrorReceived(c,i));if(a){i(`Passing child process stdOut/stdErr to custom outputHandler`);a(t,d.stdout,d.stderr,[...r])}this._plugins.exec("spawn.after",void 0,__spreadProps(__spreadValues({},pluginContext(e,r)),{spawned:d,close(e,t){o({stdOut:p,stdErr:c,exitCode:e,rejection:l||t})},kill(e){if(d.killed){return}l=e;d.kill("SIGINT")}}))}))}))}_beforeSpawn(e,t){let r;this._plugins.exec("spawn.before",void 0,__spreadProps(__spreadValues({},pluginContext(e,t)),{kill(e){r=e||r}}));return r}}}});var Ze={};__export(Ze,{GitExecutor:()=>et});var et;var tt=__esm({"src/lib/runners/git-executor.ts"(){Xe();et=class{constructor(e="git",t,r,a){this.binary=e;this.cwd=t;this._scheduler=r;this._plugins=a;this._chain=new Qe(this,this._scheduler,this._plugins)}chain(){return new Qe(this,this._scheduler,this._plugins)}push(e){return this._chain.push(e)}}}});function taskCallback(e,t,r=O){const onSuccess=e=>{r(null,e)};const onError2=t=>{if((t==null?void 0:t.task)===e){r(t instanceof v?addDeprecationNoticeToError(t):t,void 0)}};t.then(onSuccess,onError2)}function addDeprecationNoticeToError(e){let log=e=>{console.warn(`simple-git deprecation notice: accessing GitResponseError.${e} should be GitResponseError.git.${e}, this will no longer be available in version 3`);log=O};return Object.create(e,Object.getOwnPropertyNames(e.git).reduce(descriptorReducer,{}));function descriptorReducer(t,r){if(r in e){return t}t[r]={enumerable:false,configurable:false,get(){log(r);return e.git[r]}};return t}}var rt=__esm({"src/lib/task-callback.ts"(){y();J()}});function changeWorkingDirectoryTask(e,t){return adhocExecTask((r=>{if(!folderExists(e)){throw new Error(`Git.cwd: cannot change to non-directory "${e}"`)}return(t||r).cwd=e}))}var it=__esm({"src/lib/tasks/change-working-directory.ts"(){J();pe()}});function parseCommitResult(e){const t={author:null,branch:"",commit:"",root:false,summary:{changes:0,insertions:0,deletions:0}};return parseStringResponse(t,nt,e)}var nt;var st=__esm({"src/lib/parsers/parse-commit.ts"(){J();nt=[new U(/^\[([^\s]+)( \([^)]+\))? ([^\]]+)/,((e,[t,r,a])=>{e.branch=t;e.commit=a;e.root=!!r})),new U(/\s*Author:\s(.+)/i,((e,[t])=>{const r=t.split("<");const a=r.pop();if(!a||!a.includes("@")){return}e.author={email:a.substr(0,a.length-1),name:r.join("<").trim()}})),new U(/(\d+)[^,]*(?:,\s*(\d+)[^,]*)(?:,\s*(\d+))/g,((e,[t,r,a])=>{e.summary.changes=parseInt(t,10)||0;e.summary.insertions=parseInt(r,10)||0;e.summary.deletions=parseInt(a,10)||0})),new U(/^(\d+)[^,]*(?:,\s*(\d+)[^(]+\(([+-]))?/,((e,[t,r,a])=>{e.summary.changes=parseInt(t,10)||0;const i=parseInt(r,10)||0;if(a==="-"){e.summary.deletions=i}else if(a==="+"){e.summary.insertions=i}}))]}});var ot={};__export(ot,{commitTask:()=>commitTask,default:()=>commit_default});function commitTask(e,t,r){const a=["-c","core.abbrev=40","commit",...prefixedArray(e,"-m"),...t,...r];return{commands:a,format:"utf-8",parser:parseCommitResult}}function commit_default(){return{commit(e,...t){const r=trailingFunctionArgument(arguments);const a=rejectDeprecatedSignatures(e)||commitTask(asArray(e),asArray(filterType(t[0],j,[])),[...filterType(t[1],D,[]),...getTrailingOptions(arguments,0,true)]);return this._runTask(a,r)}};function rejectDeprecatedSignatures(e){return!j(e)&&configurationErrorTask(`git.commit: requires the commit message to be supplied as a string/string[]`)}}var pt=__esm({"src/lib/tasks/commit.ts"(){st();J();pe()}});function hashObjectTask(e,t){const r=["hash-object",e];if(t){r.push("-w")}return straightThroughStringTask(r,true)}var ct=__esm({"src/lib/tasks/hash-object.ts"(){pe()}});function parseInit(e,t,r){const a=String(r).trim();let i;if(i=dt.exec(a)){return new lt(e,t,false,i[1])}if(i=ut.exec(a)){return new lt(e,t,true,i[1])}let n="";const s=a.split(" ");while(s.length){const e=s.shift();if(e==="in"){n=s.join(" ");break}}return new lt(e,t,/^re/i.test(a),n)}var lt,dt,ut;var mt=__esm({"src/lib/responses/InitSummary.ts"(){lt=class{constructor(e,t,r,a){this.bare=e;this.path=t;this.existing=r;this.gitDir=a}};dt=/^Init.+ repository in (.+)$/;ut=/^Rein.+ in (.+)$/}});function hasBareCommand(e){return e.includes(ft)}function initTask(e=false,t,r){const a=["init",...r];if(e&&!hasBareCommand(a)){a.splice(1,0,ft)}return{commands:a,format:"utf-8",parser(e){return parseInit(a.includes("--bare"),t,e)}}}var ft;var ht=__esm({"src/lib/tasks/init.ts"(){mt();ft="--bare"}});function logFormatFromCommand(e){for(let t=0;tparseStringResponse(new yt,t,e,false)}var wt,xt,_t,Et,St;var Tt=__esm({"src/lib/parsers/parse-diff-summary.ts"(){vt();bt();J();wt=[new U(/(.+)\s+\|\s+(\d+)(\s+[+\-]+)?$/,((e,[t,r,a=""])=>{e.files.push({file:t.trim(),changes:asNumber(r),insertions:a.replace(/[^+]/g,"").length,deletions:a.replace(/[^-]/g,"").length,binary:false})})),new U(/(.+) \|\s+Bin ([0-9.]+) -> ([0-9.]+) ([a-z]+)/,((e,[t,r,a])=>{e.files.push({file:t.trim(),before:asNumber(r),after:asNumber(a),binary:true})})),new U(/(\d+) files? changed\s*((?:, \d+ [^,]+){0,2})/,((e,[t,r])=>{const a=/(\d+) i/.exec(r);const i=/(\d+) d/.exec(r);e.changed=asNumber(t);e.insertions=asNumber(a==null?void 0:a[1]);e.deletions=asNumber(i==null?void 0:i[1])}))];xt=[new U(/(\d+)\t(\d+)\t(.+)$/,((e,[t,r,a])=>{const i=asNumber(t);const n=asNumber(r);e.changed++;e.insertions+=i;e.deletions+=n;e.files.push({file:a,changes:i+n,insertions:i,deletions:n,binary:false})})),new U(/-\t-\t(.+)$/,((e,[t])=>{e.changed++;e.files.push({file:t,after:0,before:0,binary:true})}))];_t=[new U(/(.+)$/,((e,[t])=>{e.changed++;e.files.push({file:t,changes:0,insertions:0,deletions:0,binary:false})}))];Et=[new U(/([ACDMRTUXB])\s*(.+)$/,((e,[t,r])=>{e.changed++;e.files.push({file:r,changes:0,insertions:0,deletions:0,binary:false})}))];St={[""]:wt,["--stat"]:wt,["--numstat"]:xt,["--name-status"]:Et,["--name-only"]:_t}}});function lineBuilder(e,t){return t.reduce(((t,r,a)=>{t[r]=e[a]||"";return t}),Object.create({diff:null}))}function createListLogSummaryParser(e=Ot,t=Pt,r=""){const a=getDiffParser(r);return function(r){const i=toLinesWithContent(r,true,kt).map((function(r){const i=r.trim().split(Ct);const n=lineBuilder(i[0].trim().split(e),t);if(i.length>1&&!!i[1].trim()){n.diff=a(i[1])}return n}));return{all:i,latest:i.length&&i[0]||null,total:i.length}}}var kt,Ct,Ot,Pt;var At=__esm({"src/lib/parsers/parse-list-log-summary.ts"(){J();Tt();vt();kt="òòòòòò ";Ct=" òò";Ot=" ò ";Pt=["hash","date","message","refs","author_name","author_email"]}});var Dt={};__export(Dt,{diffSummaryTask:()=>diffSummaryTask,validateLogFormatConfig:()=>validateLogFormatConfig});function diffSummaryTask(e){let t=logFormatFromCommand(e);const r=["diff"];if(t===""){t="--stat";r.push("--stat=4096")}r.push(...e);return validateLogFormatConfig(r)||{commands:r,format:"utf-8",parser:getDiffParser(t)}}function validateLogFormatConfig(e){const t=e.filter(isLogFormat);if(t.length>1){return configurationErrorTask(`Summary flags are mutually exclusive - pick one of ${t.join(",")}`)}if(t.length&&e.includes("-z")){return configurationErrorTask(`Summary flag ${t} parsing is not compatible with null termination option '-z'`)}}var Nt=__esm({"src/lib/tasks/diff.ts"(){vt();Tt();pe()}});function prettyFormat(e,t){const r=[];const a=[];Object.keys(e).forEach((t=>{r.push(t);a.push(String(e[t]))}));return[r,a.join(t)]}function userOptions(e){return Object.keys(e).reduce(((t,r)=>{if(!(r in Rt)){t[r]=e[r]}return t}),{})}function parseLogOptions(e={},t=[]){const r=filterType(e.splitter,N,Ot);const a=!filterPrimitives(e.format)&&e.format?e.format:{hash:"%H",date:e.strictDate===false?"%ai":"%aI",message:"%s",refs:"%D",body:e.multiLine?"%B":"%b",author_name:e.mailMap!==false?"%aN":"%an",author_email:e.mailMap!==false?"%aE":"%ae"};const[i,n]=prettyFormat(a,r);const s=[];const o=[`--pretty=format:${kt}${n}${Ct}`,...t];const p=e.n||e["max-count"]||e.maxCount;if(p){o.push(`--max-count=${p}`)}if(e.from||e.to){const t=e.symmetric!==false?"...":"..";s.push(`${e.from||""}${t}${e.to||""}`)}if(N(e.file)){s.push("--follow",e.file)}appendTaskOptions(userOptions(e),o);return{fields:i,splitter:r,commands:[...o,...s]}}function logTask(e,t,r){const a=createListLogSummaryParser(e,t,logFormatFromCommand(r));return{commands:["log",...r],format:"utf-8",parser:a}}function log_default(){return{log(...e){const t=trailingFunctionArgument(arguments);const r=parseLogOptions(trailingOptionsArgument(arguments),filterType(arguments[0],D));const a=rejectDeprecatedSignatures(...e)||validateLogFormatConfig(r.commands)||createLogTask(r);return this._runTask(a,t)}};function createLogTask(e){return logTask(e.splitter,e.fields,e.commands)}function rejectDeprecatedSignatures(e,t){return N(e)&&N(t)&&configurationErrorTask(`git.log(string, string) should be replaced with git.log({ from: string, to: string })`)}}var Rt;var jt=__esm({"src/lib/tasks/log.ts"(){vt();At();J();pe();Nt();Rt=(e=>{e[e["--pretty"]=0]="--pretty";e[e["max-count"]=1]="max-count";e[e["maxCount"]=2]="maxCount";e[e["n"]=3]="n";e[e["file"]=4]="file";e[e["format"]=5]="format";e[e["from"]=6]="from";e[e["to"]=7]="to";e[e["splitter"]=8]="splitter";e[e["symmetric"]=9]="symmetric";e[e["mailMap"]=10]="mailMap";e[e["multiLine"]=11]="multiLine";e[e["strictDate"]=12]="strictDate";return e})(Rt||{})}});var Ft,It;var $t=__esm({"src/lib/responses/MergeSummary.ts"(){Ft=class{constructor(e,t=null,r){this.reason=e;this.file=t;this.meta=r}toString(){return`${this.file}:${this.reason}`}};It=class{constructor(){this.conflicts=[];this.merges=[];this.result="success"}get failed(){return this.conflicts.length>0}get reason(){return this.result}toString(){if(this.conflicts.length){return`CONFLICTS: ${this.conflicts.join(", ")}`}return"OK"}}}});var Bt,Lt;var Mt=__esm({"src/lib/responses/PullSummary.ts"(){Bt=class{constructor(){this.remoteMessages={all:[]};this.created=[];this.deleted=[];this.files=[];this.deletions={};this.insertions={};this.summary={changes:0,deletions:0,insertions:0}}};Lt=class{constructor(){this.remote="";this.hash={local:"",remote:""};this.branch={local:"",remote:""};this.message=""}toString(){return this.message}}}});function objectEnumerationResult(e){return e.objects=e.objects||{compressing:0,counting:0,enumerating:0,packReused:0,reused:{count:0,delta:0},total:{count:0,delta:0}}}function asObjectCount(e){const t=/^\s*(\d+)/.exec(e);const r=/delta (\d+)/i.exec(e);return{count:asNumber(t&&t[1]||"0"),delta:asNumber(r&&r[1]||"0")}}var Ut;var Gt=__esm({"src/lib/parsers/parse-remote-objects.ts"(){J();Ut=[new G(/^remote:\s*(enumerating|counting|compressing) objects: (\d+),/i,((e,[t,r])=>{const a=t.toLowerCase();const i=objectEnumerationResult(e.remoteMessages);Object.assign(i,{[a]:asNumber(r)})})),new G(/^remote:\s*(enumerating|counting|compressing) objects: \d+% \(\d+\/(\d+)\),/i,((e,[t,r])=>{const a=t.toLowerCase();const i=objectEnumerationResult(e.remoteMessages);Object.assign(i,{[a]:asNumber(r)})})),new G(/total ([^,]+), reused ([^,]+), pack-reused (\d+)/i,((e,[t,r,a])=>{const i=objectEnumerationResult(e.remoteMessages);i.total=asObjectCount(t);i.reused=asObjectCount(r);i.packReused=asNumber(a)}))]}});function parseRemoteMessages(e,t){return parseStringResponse({remoteMessages:new qt},Vt,t)}var Vt,qt;var zt=__esm({"src/lib/parsers/parse-remote-messages.ts"(){J();Gt();Vt=[new G(/^remote:\s*(.+)$/,((e,[t])=>{e.remoteMessages.all.push(t.trim());return false})),...Ut,new G([/create a (?:pull|merge) request/i,/\s(https?:\/\/\S+)$/],((e,[t])=>{e.remoteMessages.pullRequestUrl=t})),new G([/found (\d+) vulnerabilities.+\(([^)]+)\)/i,/\s(https?:\/\/\S+)$/],((e,[t,r,a])=>{e.remoteMessages.vulnerabilities={count:asNumber(t),summary:r,url:a}}))];qt=class{constructor(){this.all=[]}}}});function parsePullErrorResult(e,t){const r=parseStringResponse(new Lt,Yt,[e,t]);return r.message&&r}var Ht,Kt,Wt,Jt,Yt,Qt,Xt;var Zt=__esm({"src/lib/parsers/parse-pull.ts"(){Mt();J();zt();Ht=/^\s*(.+?)\s+\|\s+\d+\s*(\+*)(-*)/;Kt=/(\d+)\D+((\d+)\D+\(\+\))?(\D+(\d+)\D+\(-\))?/;Wt=/^(create|delete) mode \d+ (.+)/;Jt=[new U(Ht,((e,[t,r,a])=>{e.files.push(t);if(r){e.insertions[t]=r.length}if(a){e.deletions[t]=a.length}})),new U(Kt,((e,[t,,r,,a])=>{if(r!==void 0||a!==void 0){e.summary.changes=+t||0;e.summary.insertions=+r||0;e.summary.deletions=+a||0;return true}return false})),new U(Wt,((e,[t,r])=>{append(e.files,r);append(t==="create"?e.created:e.deleted,r)}))];Yt=[new U(/^from\s(.+)$/i,((e,[t])=>void(e.remote=t))),new U(/^fatal:\s(.+)$/,((e,[t])=>void(e.message=t))),new U(/([a-z0-9]+)\.\.([a-z0-9]+)\s+(\S+)\s+->\s+(\S+)$/,((e,[t,r,a,i])=>{e.branch.local=a;e.hash.local=t;e.branch.remote=i;e.hash.remote=r}))];Qt=(e,t)=>parseStringResponse(new Bt,Jt,[e,t]);Xt=(e,t)=>Object.assign(new Bt,Qt(e,t),parseRemoteMessages(e,t))}});var er,tr,rr;var ar=__esm({"src/lib/parsers/parse-merge.ts"(){$t();J();Zt();er=[new U(/^Auto-merging\s+(.+)$/,((e,[t])=>{e.merges.push(t)})),new U(/^CONFLICT\s+\((.+)\): Merge conflict in (.+)$/,((e,[t,r])=>{e.conflicts.push(new Ft(t,r))})),new U(/^CONFLICT\s+\((.+\/delete)\): (.+) deleted in (.+) and/,((e,[t,r,a])=>{e.conflicts.push(new Ft(t,r,{deleteRef:a}))})),new U(/^CONFLICT\s+\((.+)\):/,((e,[t])=>{e.conflicts.push(new Ft(t,null))})),new U(/^Automatic merge failed;\s+(.+)$/,((e,[t])=>{e.result=t}))];tr=(e,t)=>Object.assign(rr(e,t),Xt(e,t));rr=e=>parseStringResponse(new It,er,e)}});function mergeTask(e){if(!e.length){return configurationErrorTask("Git.merge requires at least one option")}return{commands:["merge",...e],format:"utf-8",parser(e,t){const r=tr(e,t);if(r.failed){throw new v(r)}return r}}}var ir=__esm({"src/lib/tasks/merge.ts"(){y();ar();pe()}});function pushResultPushedItem(e,t,r){const a=r.includes("deleted");const i=r.includes("tag")||/^refs\/tags/.test(e);const n=!r.includes("new");return{deleted:a,tag:i,branch:!i,new:!n,alreadyUpdated:n,local:e,remote:t}}var nr,sr,pr;var cr=__esm({"src/lib/parsers/parse-push.ts"(){J();zt();nr=[new U(/^Pushing to (.+)$/,((e,[t])=>{e.repo=t})),new U(/^updating local tracking ref '(.+)'/,((e,[t])=>{e.ref=__spreadProps(__spreadValues({},e.ref||{}),{local:t})})),new U(/^[*-=]\s+([^:]+):(\S+)\s+\[(.+)]$/,((e,[t,r,a])=>{e.pushed.push(pushResultPushedItem(t,r,a))})),new U(/^Branch '([^']+)' set up to track remote branch '([^']+)' from '([^']+)'/,((e,[t,r,a])=>{e.branch=__spreadProps(__spreadValues({},e.branch||{}),{local:t,remote:r,remoteName:a})})),new U(/^([^:]+):(\S+)\s+([a-z0-9]+)\.\.([a-z0-9]+)$/,((e,[t,r,a,i])=>{e.update={head:{local:t,remote:r},hash:{from:a,to:i}}}))];sr=(e,t)=>{const r=pr(e,t);const a=parseRemoteMessages(e,t);return __spreadValues(__spreadValues({},r),a)};pr=(e,t)=>parseStringResponse({pushed:[]},nr,[e,t])}});var lr={};__export(lr,{pushTagsTask:()=>pushTagsTask,pushTask:()=>pushTask});function pushTagsTask(e={},t){append(t,"--tags");return pushTask(e,t)}function pushTask(e={},t){const r=["push",...t];if(e.branch){r.splice(1,0,e.branch)}if(e.remote){r.splice(1,0,e.remote)}remove(r,"-v");append(r,"--verbose");append(r,"--porcelain");return{commands:r,format:"utf-8",parser:sr}}var dr=__esm({"src/lib/tasks/push.ts"(){cr();J()}});var ur,mr;var fr=__esm({"src/lib/responses/FileStatusSummary.ts"(){ur=/^(.+) -> (.+)$/;mr=class{constructor(e,t,r){this.path=e;this.index=t;this.working_dir=r;if(t+r==="R"){const t=ur.exec(e)||[null,e,e];this.from=t[1]||"";this.path=t[2]||""}}}}});function renamedFile(e){const[t,r]=e.split(C);return{from:r||t,to:t}}function parser2(e,t,r){return[`${e}${t}`,r]}function conflicts(e,...t){return t.map((t=>parser2(e,t,((e,t)=>append(e.conflicted,t)))))}function splitLine(e,t){const r=t.trim();switch(" "){case r.charAt(2):return data(r.charAt(0),r.charAt(1),r.substr(3));case r.charAt(1):return data(" ",r.charAt(0),r.substr(2));default:return}function data(t,r,a){const i=`${t}${r}`;const n=gr.get(i);if(n){n(e,a)}if(i!=="##"&&i!=="!!"){e.files.push(new mr(a.replace(/\0.+$/,""),t,r))}}}var hr,gr,vr;var yr=__esm({"src/lib/responses/StatusSummary.ts"(){J();fr();hr=class{constructor(){this.not_added=[];this.conflicted=[];this.created=[];this.deleted=[];this.ignored=void 0;this.modified=[];this.renamed=[];this.files=[];this.staged=[];this.ahead=0;this.behind=0;this.current=null;this.tracking=null;this.detached=false;this.isClean=()=>!this.files.length}};gr=new Map([parser2(" ","A",((e,t)=>append(e.created,t))),parser2(" ","D",((e,t)=>append(e.deleted,t))),parser2(" ","M",((e,t)=>append(e.modified,t))),parser2("A"," ",((e,t)=>append(e.created,t)&&append(e.staged,t))),parser2("A","M",((e,t)=>append(e.created,t)&&append(e.staged,t)&&append(e.modified,t))),parser2("D"," ",((e,t)=>append(e.deleted,t)&&append(e.staged,t))),parser2("M"," ",((e,t)=>append(e.modified,t)&&append(e.staged,t))),parser2("M","M",((e,t)=>append(e.modified,t)&&append(e.staged,t))),parser2("R"," ",((e,t)=>{append(e.renamed,renamedFile(t))})),parser2("R","M",((e,t)=>{const r=renamedFile(t);append(e.renamed,r);append(e.modified,r.to)})),parser2("!","!",((e,t)=>{append(e.ignored=e.ignored||[],t)})),parser2("?","?",((e,t)=>append(e.not_added,t))),...conflicts("A","A","U"),...conflicts("D","D","U"),...conflicts("U","A","D","U"),["##",(e,t)=>{const r=/ahead (\d+)/;const a=/behind (\d+)/;const i=/^(.+?(?=(?:\.{3}|\s|$)))/;const n=/\.{3}(\S*)/;const s=/\son\s([\S]+)$/;let o;o=r.exec(t);e.ahead=o&&+o[1]||0;o=a.exec(t);e.behind=o&&+o[1]||0;o=i.exec(t);e.current=o&&o[1];o=n.exec(t);e.tracking=o&&o[1];o=s.exec(t);e.current=o&&o[1]||e.current;e.detached=/\(no branch\)/.test(t)}]]);vr=function(e){const t=e.split(C);const r=new hr;for(let e=0,a=t.length;e!br.includes(e)))];return{format:"utf-8",commands:t,parser(e){return vr(e)}}}var br;var wr=__esm({"src/lib/tasks/status.ts"(){yr();br=["--null","-z"]}});function versionResponse(e=0,t=0,r=0,a="",i=true){return Object.defineProperty({major:e,minor:t,patch:r,agent:a,installed:i},"toString",{value(){return`${this.major}.${this.minor}.${this.patch}`},configurable:false,enumerable:false})}function notInstalledResponse(){return versionResponse(0,0,0,"",false)}function version_default(){return{version(){return this._runTask({commands:["--version"],format:"utf-8",parser:versionParser,onError(e,t,r,a){if(e.exitCode===-2){return r(Buffer.from(xr))}a(t)}})}}}function versionParser(e){if(e===xr){return notInstalledResponse()}return parseStringResponse(versionResponse(0,0,0,e),_r,e)}var xr,_r;var Er=__esm({"src/lib/tasks/version.ts"(){J();xr="installed=false";_r=[new U(/version (\d+)\.(\d+)\.(\d+)(?:\s*\((.+)\))?/,((e,[t,r,a,i=""])=>{Object.assign(e,versionResponse(asNumber(t),asNumber(r),asNumber(a),i))})),new U(/version (\d+)\.(\d+)\.(\D+)(.+)?$/,((e,[t,r,a,i=""])=>{Object.assign(e,versionResponse(asNumber(t),asNumber(r),a,i))}))]}});var Sr={};__export(Sr,{SimpleGitApi:()=>Tr});var Tr;var kr=__esm({"src/lib/simple-git-api.ts"(){rt();it();pt();be();Se();ct();ht();jt();ir();dr();wr();pe();Er();J();Tr=class{constructor(e){this._executor=e}_runTask(e,t){const r=this._executor.chain();const a=r.push(e);if(t){taskCallback(e,a,t)}return Object.create(this,{then:{value:a.then.bind(a)},catch:{value:a.catch.bind(a)},_executor:{value:r}})}add(e){return this._runTask(straightThroughStringTask(["add",...asArray(e)]),trailingFunctionArgument(arguments))}cwd(e){const t=trailingFunctionArgument(arguments);if(typeof e==="string"){return this._runTask(changeWorkingDirectoryTask(e,this._executor),t)}if(typeof(e==null?void 0:e.path)==="string"){return this._runTask(changeWorkingDirectoryTask(e.path,e.root&&this._executor||void 0),t)}return this._runTask(configurationErrorTask("Git.cwd: workingDirectory must be supplied as a string"),t)}hashObject(e,t){return this._runTask(hashObjectTask(e,t===true),trailingFunctionArgument(arguments))}init(e){return this._runTask(initTask(e===true,this._executor.cwd,getTrailingOptions(arguments)),trailingFunctionArgument(arguments))}merge(){return this._runTask(mergeTask(getTrailingOptions(arguments)),trailingFunctionArgument(arguments))}mergeFromTo(e,t){if(!(N(e)&&N(t))){return this._runTask(configurationErrorTask(`Git.mergeFromTo requires that the 'remote' and 'branch' arguments are supplied as strings`))}return this._runTask(mergeTask([e,t,...getTrailingOptions(arguments)]),trailingFunctionArgument(arguments,false))}outputHandler(e){this._executor.outputHandler=e;return this}push(){const e=pushTask({remote:filterType(arguments[0],N),branch:filterType(arguments[1],N)},getTrailingOptions(arguments));return this._runTask(e,trailingFunctionArgument(arguments))}stash(){return this._runTask(straightThroughStringTask(["stash",...getTrailingOptions(arguments)]),trailingFunctionArgument(arguments))}status(){return this._runTask(statusTask(getTrailingOptions(arguments)),trailingFunctionArgument(arguments))}};Object.assign(Tr.prototype,commit_default(),config_default(),grep_default(),log_default(),version_default())}});var Cr={};__export(Cr,{Scheduler:()=>Ar});var Or,Pr,Ar;var Dr=__esm({"src/lib/runners/scheduler.ts"(){J();Or=r(9819);He();Pr=(()=>{let e=0;return()=>{e++;const{promise:t,done:r}=(0,Or.createDeferred)();return{promise:t,done:r,id:e}}})();Ar=class{constructor(e=2){this.concurrency=e;this.logger=createLogger("","scheduler");this.pending=[];this.running=[];this.logger(`Constructed, concurrency=%s`,e)}schedule(){if(!this.pending.length||this.running.length>=this.concurrency){this.logger(`Schedule attempt ignored, pending=%s running=%s concurrency=%s`,this.pending.length,this.running.length,this.concurrency);return}const e=append(this.running,this.pending.shift());this.logger(`Attempting id=%s`,e.id);e.done((()=>{this.logger(`Completing id=`,e.id);remove(this.running,e);this.schedule()}))}next(){const{promise:e,id:t}=append(this.pending,Pr());this.logger(`Scheduling id=%s`,t);this.schedule();return e}}}});var Nr={};__export(Nr,{applyPatchTask:()=>applyPatchTask});function applyPatchTask(e,t){return straightThroughStringTask(["apply",...t,...e])}var Rr=__esm({"src/lib/tasks/apply-patch.ts"(){pe()}});function branchDeletionSuccess(e,t){return{branch:e,hash:t,success:true}}function branchDeletionFailure(e){return{branch:e,hash:null,success:false}}var jr;var Fr=__esm({"src/lib/responses/BranchDeleteSummary.ts"(){jr=class{constructor(){this.all=[];this.branches={};this.errors=[]}get success(){return!this.errors.length}}}});function hasBranchDeletionError(e,t){return t===1&&$r.test(e)}var Ir,$r,Br,Lr;var Mr=__esm({"src/lib/parsers/parse-branch-delete.ts"(){Fr();J();Ir=/(\S+)\s+\(\S+\s([^)]+)\)/;$r=/^error[^']+'([^']+)'/m;Br=[new U(Ir,((e,[t,r])=>{const a=branchDeletionSuccess(t,r);e.all.push(a);e.branches[t]=a})),new U($r,((e,[t])=>{const r=branchDeletionFailure(t);e.errors.push(r);e.all.push(r);e.branches[t]=r}))];Lr=(e,t)=>parseStringResponse(new jr,Br,[e,t])}});var Ur;var Gr=__esm({"src/lib/responses/BranchSummary.ts"(){Ur=class{constructor(){this.all=[];this.branches={};this.current="";this.detached=false}push(e,t,r,a,i){if(e==="*"){this.detached=t;this.current=r}this.all.push(r);this.branches[r]={current:e==="*",linkedWorkTree:e==="+",name:r,commit:a,label:i}}}}});function branchStatus(e){return e?e.charAt(0):""}function parseBranchSummary(e){return parseStringResponse(new Ur,Vr,e)}var Vr;var qr=__esm({"src/lib/parsers/parse-branch.ts"(){Gr();J();Vr=[new U(/^([*+]\s)?\((?:HEAD )?detached (?:from|at) (\S+)\)\s+([a-z0-9]+)\s(.*)$/,((e,[t,r,a,i])=>{e.push(branchStatus(t),true,r,a,i)})),new U(/^([*+]\s)?(\S+)\s+([a-z0-9]+)\s?(.*)$/s,((e,[t,r,a,i])=>{e.push(branchStatus(t),false,r,a,i)}))]}});var zr={};__export(zr,{branchLocalTask:()=>branchLocalTask,branchTask:()=>branchTask,containsDeleteBranchCommand:()=>containsDeleteBranchCommand,deleteBranchTask:()=>deleteBranchTask,deleteBranchesTask:()=>deleteBranchesTask});function containsDeleteBranchCommand(e){const t=["-d","-D","--delete"];return e.some((e=>t.includes(e)))}function branchTask(e){const t=containsDeleteBranchCommand(e);const r=["branch",...e];if(r.length===1){r.push("-a")}if(!r.includes("-v")){r.splice(1,0,"-v")}return{format:"utf-8",commands:r,parser(e,r){if(t){return Lr(e,r).all[0]}return parseBranchSummary(e)}}}function branchLocalTask(){const e=parseBranchSummary;return{format:"utf-8",commands:["branch","-v"],parser:e}}function deleteBranchesTask(e,t=false){return{format:"utf-8",commands:["branch","-v",t?"-D":"-d",...e],parser(e,t){return Lr(e,t)},onError({exitCode:e,stdOut:t},r,a,i){if(!hasBranchDeletionError(String(r),e)){return i(r)}a(t)}}}function deleteBranchTask(e,t=false){const r={format:"utf-8",commands:["branch","-v",t?"-D":"-d",e],parser(t,r){return Lr(t,r).branches[e]},onError({exitCode:e,stdErr:t,stdOut:a},i,n,s){if(!hasBranchDeletionError(String(i),e)){return s(i)}throw new v(r.parser(bufferToString(a),bufferToString(t)),String(i))}};return r}var Hr=__esm({"src/lib/tasks/branch.ts"(){y();Mr();qr();J()}});var Kr;var Wr=__esm({"src/lib/responses/CheckIgnore.ts"(){Kr=e=>e.split(/\n/g).map((e=>e.trim())).filter((e=>!!e))}});var Jr={};__export(Jr,{checkIgnoreTask:()=>checkIgnoreTask});function checkIgnoreTask(e){return{commands:["check-ignore",...e],format:"utf-8",parser:Kr}}var Yr=__esm({"src/lib/tasks/check-ignore.ts"(){Wr()}});var Qr={};__export(Qr,{cloneMirrorTask:()=>cloneMirrorTask,cloneTask:()=>cloneTask});function disallowedCommand(e){return/^--upload-pack(=|$)/.test(e)}function cloneTask(e,t,r){const a=["clone",...r];N(e)&&a.push(e);N(t)&&a.push(t);const i=a.find(disallowedCommand);if(i){return configurationErrorTask(`git.fetch: potential exploit argument blocked.`)}return straightThroughStringTask(a)}function cloneMirrorTask(e,t,r){append(r,"--mirror");return cloneTask(e,t,r)}var Xr=__esm({"src/lib/tasks/clone.ts"(){pe();J()}});function parseFetchResult(e,t){const r={raw:e,remote:null,branches:[],tags:[],updated:[],deleted:[]};return parseStringResponse(r,Zr,[e,t])}var Zr;var ea=__esm({"src/lib/parsers/parse-fetch.ts"(){J();Zr=[new U(/From (.+)$/,((e,[t])=>{e.remote=t})),new U(/\* \[new branch]\s+(\S+)\s*-> (.+)$/,((e,[t,r])=>{e.branches.push({name:t,tracking:r})})),new U(/\* \[new tag]\s+(\S+)\s*-> (.+)$/,((e,[t,r])=>{e.tags.push({name:t,tracking:r})})),new U(/- \[deleted]\s+\S+\s*-> (.+)$/,((e,[t])=>{e.deleted.push({tracking:t})})),new U(/\s*([^.]+)\.\.(\S+)\s+(\S+)\s*-> (.+)$/,((e,[t,r,a,i])=>{e.updated.push({name:a,tracking:i,to:r,from:t})}))]}});var ta={};__export(ta,{fetchTask:()=>fetchTask});function disallowedCommand2(e){return/^--upload-pack(=|$)/.test(e)}function fetchTask(e,t,r){const a=["fetch",...r];if(e&&t){a.push(e,t)}const i=a.find(disallowedCommand2);if(i){return configurationErrorTask(`git.fetch: potential exploit argument blocked.`)}return{commands:a,format:"utf-8",parser:parseFetchResult}}var ra=__esm({"src/lib/tasks/fetch.ts"(){ea();pe()}});function parseMoveResult(e){return parseStringResponse({moves:[]},aa,e)}var aa;var ia=__esm({"src/lib/parsers/parse-move.ts"(){J();aa=[new U(/^Renaming (.+) to (.+)$/,((e,[t,r])=>{e.moves.push({from:t,to:r})}))]}});var na={};__export(na,{moveTask:()=>moveTask});function moveTask(e,t){return{commands:["mv","-v",...asArray(e),t],format:"utf-8",parser:parseMoveResult}}var sa=__esm({"src/lib/tasks/move.ts"(){ia();J()}});var oa={};__export(oa,{pullTask:()=>pullTask});function pullTask(e,t,r){const a=["pull",...r];if(e&&t){a.splice(1,0,e,t)}return{commands:a,format:"utf-8",parser(e,t){return Xt(e,t)},onError(e,t,r,a){const i=parsePullErrorResult(bufferToString(e.stdOut),bufferToString(e.stdErr));if(i){return a(new v(i))}a(t)}}}var pa=__esm({"src/lib/tasks/pull.ts"(){y();Zt();J()}});function parseGetRemotes(e){const t={};forEach(e,(([e])=>t[e]={name:e}));return Object.values(t)}function parseGetRemotesVerbose(e){const t={};forEach(e,(([e,r,a])=>{if(!t.hasOwnProperty(e)){t[e]={name:e,refs:{fetch:"",push:""}}}if(a&&r){t[e].refs[a.replace(/[^a-z]/g,"")]=r}}));return Object.values(t)}function forEach(e,t){forEachLineWithContent(e,(e=>t(e.split(/\s+/))))}var ca=__esm({"src/lib/responses/GetRemoteSummary.ts"(){J()}});var la={};__export(la,{addRemoteTask:()=>addRemoteTask,getRemotesTask:()=>getRemotesTask,listRemotesTask:()=>listRemotesTask,remoteTask:()=>remoteTask,removeRemoteTask:()=>removeRemoteTask});function addRemoteTask(e,t,r=[]){return straightThroughStringTask(["remote","add",...r,e,t])}function getRemotesTask(e){const t=["remote"];if(e){t.push("-v")}return{commands:t,format:"utf-8",parser:e?parseGetRemotesVerbose:parseGetRemotes}}function listRemotesTask(e=[]){const t=[...e];if(t[0]!=="ls-remote"){t.unshift("ls-remote")}return straightThroughStringTask(t)}function remoteTask(e=[]){const t=[...e];if(t[0]!=="remote"){t.unshift("remote")}return straightThroughStringTask(t)}function removeRemoteTask(e){return straightThroughStringTask(["remote","remove",e])}var da=__esm({"src/lib/tasks/remote.ts"(){ca();pe()}});var ua={};__export(ua,{stashListTask:()=>stashListTask});function stashListTask(e={},t){const r=parseLogOptions(e);const a=["stash","list",...r.commands,...t];const i=createListLogSummaryParser(r.splitter,r.fields,logFormatFromCommand(a));return validateLogFormatConfig(a)||{commands:a,format:"utf-8",parser:i}}var ma=__esm({"src/lib/tasks/stash-list.ts"(){vt();At();Nt();jt()}});var fa={};__export(fa,{addSubModuleTask:()=>addSubModuleTask,initSubModuleTask:()=>initSubModuleTask,subModuleTask:()=>subModuleTask,updateSubModuleTask:()=>updateSubModuleTask});function addSubModuleTask(e,t){return subModuleTask(["add",e,t])}function initSubModuleTask(e){return subModuleTask(["init",...e])}function subModuleTask(e){const t=[...e];if(t[0]!=="submodule"){t.unshift("submodule")}return straightThroughStringTask(t)}function updateSubModuleTask(e){return subModuleTask(["update",...e])}var ha=__esm({"src/lib/tasks/sub-module.ts"(){pe()}});function singleSorted(e,t){const r=isNaN(e);const a=isNaN(t);if(r!==a){return r?1:-1}return r?sorted(e,t):0}function sorted(e,t){return e===t?0:e>t?1:-1}function trimmed(e){return e.trim()}function toNumber(e){if(typeof e==="string"){return parseInt(e.replace(/^\D+/g,""),10)||0}return 0}var ga,va;var ya=__esm({"src/lib/responses/TagList.ts"(){ga=class{constructor(e,t){this.all=e;this.latest=t}};va=function(e,t=false){const r=e.split("\n").map(trimmed).filter(Boolean);if(!t){r.sort((function(e,t){const r=e.split(".");const a=t.split(".");if(r.length===1||a.length===1){return singleSorted(toNumber(r[0]),toNumber(a[0]))}for(let e=0,t=Math.max(r.length,a.length);ee.indexOf(".")>=0));return new ga(r,a)}}});var ba={};__export(ba,{addAnnotatedTagTask:()=>addAnnotatedTagTask,addTagTask:()=>addTagTask,tagListTask:()=>tagListTask});function tagListTask(e=[]){const t=e.some((e=>/^--sort=/.test(e)));return{format:"utf-8",commands:["tag","-l",...e],parser(e){return va(e,t)}}}function addTagTask(e){return{format:"utf-8",commands:["tag",e],parser(){return{name:e}}}}function addAnnotatedTagTask(e,t){return{format:"utf-8",commands:["tag","-a","-m",t,e],parser(){return{name:e}}}}var wa=__esm({"src/lib/tasks/tag.ts"(){ya()}});var xa=__commonJS({"src/git.js"(e,t){var{GitExecutor:r}=(tt(),m(Ze));var{SimpleGitApi:a}=(kr(),m(Sr));var{Scheduler:i}=(Dr(),m(Cr));var{configurationErrorTask:n}=(pe(),m(se));var{asArray:s,filterArray:o,filterPrimitives:p,filterString:c,filterStringOrStringArray:l,filterType:d,getTrailingOptions:u,trailingFunctionArgument:h,trailingOptionsArgument:g}=(J(),m(W));var{applyPatchTask:v}=(Rr(),m(Nr));var{branchTask:y,branchLocalTask:b,deleteBranchesTask:w,deleteBranchTask:x}=(Hr(),m(zr));var{checkIgnoreTask:E}=(Yr(),m(Jr));var{checkIsRepoTask:S}=(ee(),m(Y));var{cloneTask:T,cloneMirrorTask:k}=(Xr(),m(Qr));var{cleanWithOptionsTask:C,isCleanOptionsArray:O}=(he(),m(ce));var{commitTask:P}=(pt(),m(ot));var{diffSummaryTask:A}=(Nt(),m(Dt));var{fetchTask:D}=(ra(),m(ta));var{moveTask:N}=(sa(),m(na));var{pullTask:R}=(pa(),m(oa));var{pushTagsTask:j}=(dr(),m(lr));var{addRemoteTask:F,getRemotesTask:I,listRemotesTask:$,remoteTask:B,removeRemoteTask:L}=(da(),m(la));var{getResetMode:M,resetTask:U}=(Oe(),m(Te));var{stashListTask:G}=(ma(),m(ua));var{addSubModuleTask:V,initSubModuleTask:q,subModuleTask:z,updateSubModuleTask:H}=(ha(),m(fa));var{addAnnotatedTagTask:K,addTagTask:Q,tagListTask:X}=(wa(),m(ba));var{straightThroughBufferTask:Z,straightThroughStringTask:te}=(pe(),m(se));function Git2(e,t){this._executor=new r(e.binary,e.baseDir,new i(e.maxConcurrentProcesses),t);this._trimmed=e.trimmed}(Git2.prototype=Object.create(a.prototype)).constructor=Git2;Git2.prototype.customBinary=function(e){this._executor.binary=e;return this};Git2.prototype.env=function(e,t){if(arguments.length===1&&typeof e==="object"){this._executor.env=e}else{(this._executor.env=this._executor.env||{})[e]=t}return this};Git2.prototype.stashList=function(e){return this._runTask(G(g(arguments)||{},o(e)&&e||[]),h(arguments))};function createCloneTask(e,t,r,a){if(typeof r!=="string"){return n(`git.${e}() requires a string 'repoPath'`)}return t(r,d(a,c),u(arguments))}Git2.prototype.clone=function(){return this._runTask(createCloneTask("clone",T,...arguments),h(arguments))};Git2.prototype.mirror=function(){return this._runTask(createCloneTask("mirror",k,...arguments),h(arguments))};Git2.prototype.mv=function(e,t){return this._runTask(N(e,t),h(arguments))};Git2.prototype.checkoutLatestTag=function(e){var t=this;return this.pull((function(){t.tags((function(r,a){t.checkout(a.latest,e)}))}))};Git2.prototype.pull=function(e,t,r,a){return this._runTask(R(d(e,c),d(t,c),u(arguments)),h(arguments))};Git2.prototype.fetch=function(e,t){return this._runTask(D(d(e,c),d(t,c),u(arguments)),h(arguments))};Git2.prototype.silent=function(e){console.warn("simple-git deprecation notice: git.silent: logging should be configured using the `debug` library / `DEBUG` environment variable, this will be an error in version 3");return this};Git2.prototype.tags=function(e,t){return this._runTask(X(u(arguments)),h(arguments))};Git2.prototype.rebase=function(){return this._runTask(te(["rebase",...u(arguments)]),h(arguments))};Git2.prototype.reset=function(e){return this._runTask(U(M(e),u(arguments)),h(arguments))};Git2.prototype.revert=function(e){const t=h(arguments);if(typeof e!=="string"){return this._runTask(n("Commit must be a string"),t)}return this._runTask(te(["revert",...u(arguments,0,true),e]),t)};Git2.prototype.addTag=function(e){const t=typeof e==="string"?Q(e):n("Git.addTag requires a tag name");return this._runTask(t,h(arguments))};Git2.prototype.addAnnotatedTag=function(e,t){return this._runTask(K(e,t),h(arguments))};Git2.prototype.checkout=function(){const e=["checkout",...u(arguments,true)];return this._runTask(te(e),h(arguments))};Git2.prototype.checkoutBranch=function(e,t,r){return this.checkout(["-b",e,t],h(arguments))};Git2.prototype.checkoutLocalBranch=function(e,t){return this.checkout(["-b",e],h(arguments))};Git2.prototype.deleteLocalBranch=function(e,t,r){return this._runTask(x(e,typeof t==="boolean"?t:false),h(arguments))};Git2.prototype.deleteLocalBranches=function(e,t,r){return this._runTask(w(e,typeof t==="boolean"?t:false),h(arguments))};Git2.prototype.branch=function(e,t){return this._runTask(y(u(arguments)),h(arguments))};Git2.prototype.branchLocal=function(e){return this._runTask(b(),h(arguments))};Git2.prototype.raw=function(e){const t=!Array.isArray(e);const r=[].slice.call(t?arguments:e,0);for(let e=0;eesModuleFactory,gitExportFactory:()=>gitExportFactory,gitInstanceFactory:()=>gitInstanceFactory});function esModuleFactory(e){return Object.defineProperties(e,{__esModule:{value:true},default:{value:e}})}function gitExportFactory(e){return Object.assign(e.bind(null),Pe)}function gitInstanceFactory(e,t){const r=new Be;const a=createInstanceConfig(e&&(typeof e==="string"?{baseDir:e}:e)||{},t);if(!folderExists(a.baseDir)){throw new b(a,`Cannot use simple-git on a directory that does not exist`)}if(Array.isArray(a.config)){r.add(commandConfigPrefixingPlugin(a.config))}r.add(blockUnsafeOperationsPlugin(a.unsafe));r.add(completionDetectionPlugin(a.completion));a.abort&&r.add(abortPlugin(a.abort));a.progress&&r.add(progressMonitorPlugin(a.progress));a.timeout&&r.add(timeoutPlugin(a.timeout));a.spawnOptions&&r.add(spawnOptionsPlugin(a.spawnOptions));r.add(errorDetectionPlugin(errorDetectionHandler(true)));a.errors&&r.add(errorDetectionPlugin(a.errors));return new Ea(a,r)}var Ea;var Sa=__esm({"src/lib/git-factory.ts"(){Ae();qe();J();Ea=xa()}});var Ta={};__export(Ta,{gitP:()=>gitP});function gitP(...e){let t;let r=Promise.resolve();try{t=gitInstanceFactory(...e)}catch(e){r=Promise.reject(e)}function builderReturn(){return a}function chainReturn(){return r}const a=[...ka,...Ca].reduce(((e,r)=>{const a=Ca.includes(r);const i=a?asyncWrapper(r,t):syncWrapper(r,t,e);const n=a?chainReturn:builderReturn;Object.defineProperty(e,r,{enumerable:false,configurable:false,value:t?i:n});return e}),{});return a;function asyncWrapper(e,t){return function(...a){if(typeof a[a.length]==="function"){throw new TypeError("Promise interface requires that handlers are not supplied inline, trailing function not allowed in call to "+e)}return r.then((function(){return new Promise((function(r,i){const callback=(e,t)=>{if(e){return i(toError(e))}r(t)};a.push(callback);t[e].apply(t,a)}))}))}}function syncWrapper(e,t,r){return(...a)=>{t[e](...a);return r}}}function toError(e){if(e instanceof Error){return e}if(typeof e==="string"){return new Error(e)}return new v(e)}var ka,Ca;var Oa=__esm({"src/lib/runners/promise-wrapped.ts"(){y();Sa();ka=["customBinary","env","outputHandler","silent"];Ca=["add","addAnnotatedTag","addConfig","addRemote","addTag","applyPatch","binaryCatFile","branch","branchLocal","catFile","checkIgnore","checkIsRepo","checkout","checkoutBranch","checkoutLatestTag","checkoutLocalBranch","clean","clone","commit","cwd","deleteLocalBranch","deleteLocalBranches","diff","diffSummary","exec","fetch","getRemotes","init","listConfig","listRemote","log","merge","mergeFromTo","mirror","mv","pull","push","pushTags","raw","rebase","remote","removeRemote","reset","revert","revparse","rm","rmKeepLocal","show","stash","stashList","status","subModule","submoduleAdd","submoduleInit","submoduleUpdate","tag","tags","updateServerInfo"]}});var{gitP:Pa}=(Oa(),m(Ta));var{esModuleFactory:Aa,gitInstanceFactory:Da,gitExportFactory:Na}=(Sa(),m(_a));var Ra=Aa(Na(Da));e.exports=Object.assign(Ra,{gitP:Pa,simpleGit:Ra})},9318:(e,t,r)=>{"use strict";const a=r(2037);const i=r(6224);const n=r(1621);const{env:s}=process;let o;if(n("no-color")||n("no-colors")||n("color=false")||n("color=never")){o=0}else if(n("color")||n("colors")||n("color=true")||n("color=always")){o=1}if("FORCE_COLOR"in s){if(s.FORCE_COLOR==="true"){o=1}else if(s.FORCE_COLOR==="false"){o=0}else{o=s.FORCE_COLOR.length===0?1:Math.min(parseInt(s.FORCE_COLOR,10),3)}}function translateLevel(e){if(e===0){return false}return{level:e,hasBasic:true,has256:e>=2,has16m:e>=3}}function supportsColor(e,t){if(o===0){return 0}if(n("color=16m")||n("color=full")||n("color=truecolor")){return 3}if(n("color=256")){return 2}if(e&&!t&&o===undefined){return 0}const r=o||0;if(s.TERM==="dumb"){return r}if(process.platform==="win32"){const e=a.release().split(".");if(Number(e[0])>=10&&Number(e[2])>=10586){return Number(e[2])>=14931?3:2}return 1}if("CI"in s){if(["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some((e=>e in s))||s.CI_NAME==="codeship"){return 1}return r}if("TEAMCITY_VERSION"in s){return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(s.TEAMCITY_VERSION)?1:0}if(s.COLORTERM==="truecolor"){return 3}if("TERM_PROGRAM"in s){const e=parseInt((s.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(s.TERM_PROGRAM){case"iTerm.app":return e>=3?3:2;case"Apple_Terminal":return 2}}if(/-256(color)?$/i.test(s.TERM)){return 2}if(/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(s.TERM)){return 1}if("COLORTERM"in s){return 1}return r}function getSupportLevel(e){const t=supportsColor(e,e&&e.isTTY);return translateLevel(t)}e.exports={supportsColor:getSupportLevel,stdout:translateLevel(supportsColor(true,i.isatty(1))),stderr:translateLevel(supportsColor(true,i.isatty(2)))}},8065:(e,t,r)=>{"use strict";const{promisify:a}=r(3837);const i=r(8517);e.exports.fileSync=i.fileSync;const n=a(((e,t)=>i.file(e,((e,r,i,n)=>e?t(e):t(undefined,{path:r,fd:i,cleanup:a(n)})))));e.exports.file=async e=>n(e);e.exports.withFile=async function withFile(t,r){const{path:a,fd:i,cleanup:n}=await e.exports.file(r);try{return await t({path:a,fd:i})}finally{await n()}};e.exports.dirSync=i.dirSync;const s=a(((e,t)=>i.dir(e,((e,r,i)=>e?t(e):t(undefined,{path:r,cleanup:a(i)})))));e.exports.dir=async e=>s(e);e.exports.withDir=async function withDir(t,r){const{path:a,cleanup:i}=await e.exports.dir(r);try{return await t({path:a})}finally{await i()}};e.exports.tmpNameSync=i.tmpNameSync;e.exports.tmpName=a(i.tmpName);e.exports.tmpdir=i.tmpdir;e.exports.setGracefulCleanup=i.setGracefulCleanup},8517:(e,t,r)=>{ +var e;(function(e){(function(t){var r=typeof global==="object"?global:typeof self==="object"?self:typeof this==="object"?this:Function("return this;")();var a=makeExporter(e);if(typeof r.Reflect==="undefined"){r.Reflect=e}else{a=makeExporter(r.Reflect,a)}t(a);function makeExporter(e,t){return function(r,a){if(typeof e[r]!=="function"){Object.defineProperty(e,r,{configurable:true,writable:true,value:a})}if(t)t(r,a)}}})((function(e){var t=Object.prototype.hasOwnProperty;var r=typeof Symbol==="function";var a=r&&typeof Symbol.toPrimitive!=="undefined"?Symbol.toPrimitive:"@@toPrimitive";var n=r&&typeof Symbol.iterator!=="undefined"?Symbol.iterator:"@@iterator";var i=typeof Object.create==="function";var s={__proto__:[]}instanceof Array;var o=!i&&!s;var p={create:i?function(){return MakeDictionary(Object.create(null))}:s?function(){return MakeDictionary({__proto__:null})}:function(){return MakeDictionary({})},has:o?function(e,r){return t.call(e,r)}:function(e,t){return t in e},get:o?function(e,r){return t.call(e,r)?e[r]:undefined}:function(e,t){return e[t]}};var c=Object.getPrototypeOf(Function);var l=typeof process==="object"&&process.env&&process.env["REFLECT_METADATA_USE_MAP_POLYFILL"]==="true";var d=!l&&typeof Map==="function"&&typeof Map.prototype.entries==="function"?Map:CreateMapPolyfill();var u=!l&&typeof Set==="function"&&typeof Set.prototype.entries==="function"?Set:CreateSetPolyfill();var m=!l&&typeof WeakMap==="function"?WeakMap:CreateWeakMapPolyfill();var h=new m;function decorate(e,t,r,a){if(!IsUndefined(r)){if(!IsArray(e))throw new TypeError;if(!IsObject(t))throw new TypeError;if(!IsObject(a)&&!IsUndefined(a)&&!IsNull(a))throw new TypeError;if(IsNull(a))a=undefined;r=ToPropertyKey(r);return DecorateProperty(e,t,r,a)}else{if(!IsArray(e))throw new TypeError;if(!IsConstructor(t))throw new TypeError;return DecorateConstructor(e,t)}}e("decorate",decorate);function metadata(e,t){function decorator(r,a){if(!IsObject(r))throw new TypeError;if(!IsUndefined(a)&&!IsPropertyKey(a))throw new TypeError;OrdinaryDefineOwnMetadata(e,t,r,a)}return decorator}e("metadata",metadata);function defineMetadata(e,t,r,a){if(!IsObject(r))throw new TypeError;if(!IsUndefined(a))a=ToPropertyKey(a);return OrdinaryDefineOwnMetadata(e,t,r,a)}e("defineMetadata",defineMetadata);function hasMetadata(e,t,r){if(!IsObject(t))throw new TypeError;if(!IsUndefined(r))r=ToPropertyKey(r);return OrdinaryHasMetadata(e,t,r)}e("hasMetadata",hasMetadata);function hasOwnMetadata(e,t,r){if(!IsObject(t))throw new TypeError;if(!IsUndefined(r))r=ToPropertyKey(r);return OrdinaryHasOwnMetadata(e,t,r)}e("hasOwnMetadata",hasOwnMetadata);function getMetadata(e,t,r){if(!IsObject(t))throw new TypeError;if(!IsUndefined(r))r=ToPropertyKey(r);return OrdinaryGetMetadata(e,t,r)}e("getMetadata",getMetadata);function getOwnMetadata(e,t,r){if(!IsObject(t))throw new TypeError;if(!IsUndefined(r))r=ToPropertyKey(r);return OrdinaryGetOwnMetadata(e,t,r)}e("getOwnMetadata",getOwnMetadata);function getMetadataKeys(e,t){if(!IsObject(e))throw new TypeError;if(!IsUndefined(t))t=ToPropertyKey(t);return OrdinaryMetadataKeys(e,t)}e("getMetadataKeys",getMetadataKeys);function getOwnMetadataKeys(e,t){if(!IsObject(e))throw new TypeError;if(!IsUndefined(t))t=ToPropertyKey(t);return OrdinaryOwnMetadataKeys(e,t)}e("getOwnMetadataKeys",getOwnMetadataKeys);function deleteMetadata(e,t,r){if(!IsObject(t))throw new TypeError;if(!IsUndefined(r))r=ToPropertyKey(r);var a=GetOrCreateMetadataMap(t,r,false);if(IsUndefined(a))return false;if(!a.delete(e))return false;if(a.size>0)return true;var n=h.get(t);n.delete(r);if(n.size>0)return true;h.delete(t);return true}e("deleteMetadata",deleteMetadata);function DecorateConstructor(e,t){for(var r=e.length-1;r>=0;--r){var a=e[r];var n=a(t);if(!IsUndefined(n)&&!IsNull(n)){if(!IsConstructor(n))throw new TypeError;t=n}}return t}function DecorateProperty(e,t,r,a){for(var n=e.length-1;n>=0;--n){var i=e[n];var s=i(t,r,a);if(!IsUndefined(s)&&!IsNull(s)){if(!IsObject(s))throw new TypeError;a=s}}return a}function GetOrCreateMetadataMap(e,t,r){var a=h.get(e);if(IsUndefined(a)){if(!r)return undefined;a=new d;h.set(e,a)}var n=a.get(t);if(IsUndefined(n)){if(!r)return undefined;n=new d;a.set(t,n)}return n}function OrdinaryHasMetadata(e,t,r){var a=OrdinaryHasOwnMetadata(e,t,r);if(a)return true;var n=OrdinaryGetPrototypeOf(t);if(!IsNull(n))return OrdinaryHasMetadata(e,n,r);return false}function OrdinaryHasOwnMetadata(e,t,r){var a=GetOrCreateMetadataMap(t,r,false);if(IsUndefined(a))return false;return ToBoolean(a.has(e))}function OrdinaryGetMetadata(e,t,r){var a=OrdinaryHasOwnMetadata(e,t,r);if(a)return OrdinaryGetOwnMetadata(e,t,r);var n=OrdinaryGetPrototypeOf(t);if(!IsNull(n))return OrdinaryGetMetadata(e,n,r);return undefined}function OrdinaryGetOwnMetadata(e,t,r){var a=GetOrCreateMetadataMap(t,r,false);if(IsUndefined(a))return undefined;return a.get(e)}function OrdinaryDefineOwnMetadata(e,t,r,a){var n=GetOrCreateMetadataMap(r,a,true);n.set(e,t)}function OrdinaryMetadataKeys(e,t){var r=OrdinaryOwnMetadataKeys(e,t);var a=OrdinaryGetPrototypeOf(e);if(a===null)return r;var n=OrdinaryMetadataKeys(a,t);if(n.length<=0)return r;if(r.length<=0)return n;var i=new u;var s=[];for(var o=0,p=r;o=0&&e=this._keys.length){this._index=-1;this._keys=t;this._values=t}else{this._index++}return{value:r,done:false}}return{value:undefined,done:true}};MapIterator.prototype.throw=function(e){if(this._index>=0){this._index=-1;this._keys=t;this._values=t}throw e};MapIterator.prototype.return=function(e){if(this._index>=0){this._index=-1;this._keys=t;this._values=t}return{value:e,done:true}};return MapIterator}();return function(){function Map(){this._keys=[];this._values=[];this._cacheKey=e;this._cacheIndex=-2}Object.defineProperty(Map.prototype,"size",{get:function(){return this._keys.length},enumerable:true,configurable:true});Map.prototype.has=function(e){return this._find(e,false)>=0};Map.prototype.get=function(e){var t=this._find(e,false);return t>=0?this._values[t]:undefined};Map.prototype.set=function(e,t){var r=this._find(e,true);this._values[r]=t;return this};Map.prototype.delete=function(t){var r=this._find(t,false);if(r>=0){var a=this._keys.length;for(var n=r+1;n{const a=r(9491);const n=r(1017);const i=r(7147);let s=undefined;try{s=r(1957)}catch(e){}const o={nosort:true,silent:true};let p=0;const c=process.platform==="win32";const defaults=e=>{const t=["unlink","chmod","stat","lstat","rmdir","readdir"];t.forEach((t=>{e[t]=e[t]||i[t];t=t+"Sync";e[t]=e[t]||i[t]}));e.maxBusyTries=e.maxBusyTries||3;e.emfileWait=e.emfileWait||1e3;if(e.glob===false){e.disableGlob=true}if(e.disableGlob!==true&&s===undefined){throw Error("glob dependency not found, set `options.disableGlob = true` if intentional")}e.disableGlob=e.disableGlob||false;e.glob=e.glob||o};const rimraf=(e,t,r)=>{if(typeof t==="function"){r=t;t={}}a(e,"rimraf: missing path");a.equal(typeof e,"string","rimraf: path should be a string");a.equal(typeof r,"function","rimraf: callback function required");a(t,"rimraf: invalid options argument provided");a.equal(typeof t,"object","rimraf: options should be object");defaults(t);let n=0;let i=null;let o=0;const next=e=>{i=i||e;if(--o===0)r(i)};const afterGlob=(e,a)=>{if(e)return r(e);o=a.length;if(o===0)return r();a.forEach((e=>{const CB=r=>{if(r){if((r.code==="EBUSY"||r.code==="ENOTEMPTY"||r.code==="EPERM")&&nrimraf_(e,t,CB)),n*100)}if(r.code==="EMFILE"&&primraf_(e,t,CB)),p++)}if(r.code==="ENOENT")r=null}p=0;next(r)};rimraf_(e,t,CB)}))};if(t.disableGlob||!s.hasMagic(e))return afterGlob(null,[e]);t.lstat(e,((r,a)=>{if(!r)return afterGlob(null,[e]);s(e,t.glob,afterGlob)}))};const rimraf_=(e,t,r)=>{a(e);a(t);a(typeof r==="function");t.lstat(e,((a,n)=>{if(a&&a.code==="ENOENT")return r(null);if(a&&a.code==="EPERM"&&c)fixWinEPERM(e,t,a,r);if(n&&n.isDirectory())return rmdir(e,t,a,r);t.unlink(e,(a=>{if(a){if(a.code==="ENOENT")return r(null);if(a.code==="EPERM")return c?fixWinEPERM(e,t,a,r):rmdir(e,t,a,r);if(a.code==="EISDIR")return rmdir(e,t,a,r)}return r(a)}))}))};const fixWinEPERM=(e,t,r,n)=>{a(e);a(t);a(typeof n==="function");t.chmod(e,438,(a=>{if(a)n(a.code==="ENOENT"?null:r);else t.stat(e,((a,i)=>{if(a)n(a.code==="ENOENT"?null:r);else if(i.isDirectory())rmdir(e,t,r,n);else t.unlink(e,n)}))}))};const fixWinEPERMSync=(e,t,r)=>{a(e);a(t);try{t.chmodSync(e,438)}catch(e){if(e.code==="ENOENT")return;else throw r}let n;try{n=t.statSync(e)}catch(e){if(e.code==="ENOENT")return;else throw r}if(n.isDirectory())rmdirSync(e,t,r);else t.unlinkSync(e)};const rmdir=(e,t,r,n)=>{a(e);a(t);a(typeof n==="function");t.rmdir(e,(a=>{if(a&&(a.code==="ENOTEMPTY"||a.code==="EEXIST"||a.code==="EPERM"))rmkids(e,t,n);else if(a&&a.code==="ENOTDIR")n(r);else n(a)}))};const rmkids=(e,t,r)=>{a(e);a(t);a(typeof r==="function");t.readdir(e,((a,i)=>{if(a)return r(a);let s=i.length;if(s===0)return t.rmdir(e,r);let o;i.forEach((a=>{rimraf(n.join(e,a),t,(a=>{if(o)return;if(a)return r(o=a);if(--s===0)t.rmdir(e,r)}))}))}))};const rimrafSync=(e,t)=>{t=t||{};defaults(t);a(e,"rimraf: missing path");a.equal(typeof e,"string","rimraf: path should be a string");a(t,"rimraf: missing options");a.equal(typeof t,"object","rimraf: options should be object");let r;if(t.disableGlob||!s.hasMagic(e)){r=[e]}else{try{t.lstatSync(e);r=[e]}catch(a){r=s.sync(e,t.glob)}}if(!r.length)return;for(let e=0;e{a(e);a(t);try{t.rmdirSync(e)}catch(a){if(a.code==="ENOENT")return;if(a.code==="ENOTDIR")throw r;if(a.code==="ENOTEMPTY"||a.code==="EEXIST"||a.code==="EPERM")rmkidsSync(e,t)}};const rmkidsSync=(e,t)=>{a(e);a(t);t.readdirSync(e).forEach((r=>rimrafSync(n.join(e,r),t)));const r=c?100:1;let i=0;do{let a=true;try{const n=t.rmdirSync(e,t);a=false;return n}finally{if(++i{var a=Object.create;var n=Object.defineProperty;var i=Object.defineProperties;var s=Object.getOwnPropertyDescriptor;var o=Object.getOwnPropertyDescriptors;var p=Object.getOwnPropertyNames;var c=Object.getOwnPropertySymbols;var l=Object.getPrototypeOf;var d=Object.prototype.hasOwnProperty;var u=Object.prototype.propertyIsEnumerable;var __defNormalProp=(e,t,r)=>t in e?n(e,t,{enumerable:true,configurable:true,writable:true,value:r}):e[t]=r;var __spreadValues=(e,t)=>{for(var r in t||(t={}))if(d.call(t,r))__defNormalProp(e,r,t[r]);if(c)for(var r of c(t)){if(u.call(t,r))__defNormalProp(e,r,t[r])}return e};var __spreadProps=(e,t)=>i(e,o(t));var __markAsModule=e=>n(e,"__esModule",{value:true});var __esm=(e,t)=>function __init(){return e&&(t=(0,e[p(e)[0]])(e=0)),t};var __commonJS=(e,t)=>function __require(){return t||(0,e[p(e)[0]])((t={exports:{}}).exports,t),t.exports};var __export=(e,t)=>{for(var r in t)n(e,r,{get:t[r],enumerable:true})};var __reExport=(e,t,r,a)=>{if(t&&typeof t==="object"||typeof t==="function"){for(let i of p(t))if(!d.call(e,i)&&(r||i!=="default"))n(e,i,{get:()=>t[i],enumerable:!(a=s(t,i))||a.enumerable})}return e};var __toESM=(e,t)=>__reExport(__markAsModule(n(e!=null?a(l(e)):{},"default",!t&&e&&e.__esModule?{get:()=>e.default,enumerable:true}:{value:e,enumerable:true})),e);var m=(e=>(t,r)=>e&&e.get(t)||(r=__reExport(__markAsModule({}),t,1),e&&e.set(t,r),r))(typeof WeakMap!=="undefined"?new WeakMap:0);var __async=(e,t,r)=>new Promise(((a,n)=>{var fulfilled=e=>{try{step(r.next(e))}catch(e){n(e)}};var rejected=e=>{try{step(r.throw(e))}catch(e){n(e)}};var step=e=>e.done?a(e.value):Promise.resolve(e.value).then(fulfilled,rejected);step((r=r.apply(e,t)).next())}));var h;var g=__esm({"src/lib/errors/git-error.ts"(){h=class extends Error{constructor(e,t){super(t);this.task=e;Object.setPrototypeOf(this,new.target.prototype)}}}});var v;var y=__esm({"src/lib/errors/git-response-error.ts"(){g();v=class extends h{constructor(e,t){super(void 0,t||String(e));this.git=e}}}});var b;var w=__esm({"src/lib/errors/git-construct-error.ts"(){g();b=class extends h{constructor(e,t){super(void 0,t);this.config=e}}}});var x;var E=__esm({"src/lib/errors/git-plugin-error.ts"(){g();x=class extends h{constructor(e,t,r){super(e,r);this.task=e;this.plugin=t;Object.setPrototypeOf(this,new.target.prototype)}}}});var T;var S=__esm({"src/lib/errors/task-configuration-error.ts"(){g();T=class extends h{constructor(e){super(void 0,e)}}}});function asFunction(e){return typeof e==="function"?e:C}function isUserFunction(e){return typeof e==="function"&&e!==C}function splitOn(e,t){const r=e.indexOf(t);if(r<=0){return[e,""]}return[e.substr(0,r),e.substr(r+1)]}function first(e,t=0){return isArrayLike(e)&&e.length>t?e[t]:void 0}function last(e,t=0){if(isArrayLike(e)&&e.length>t){return e[e.length-1-t]}}function isArrayLike(e){return!!(e&&typeof e.length==="number")}function toLinesWithContent(e="",t=true,r="\n"){return e.split(r).reduce(((e,r)=>{const a=t?r.trim():r;if(a){e.push(a)}return e}),[])}function forEachLineWithContent(e,t){return toLinesWithContent(e,true).map((e=>t(e)))}function folderExists(e){return(0,k.exists)(e,k.FOLDER)}function append(e,t){if(Array.isArray(e)){if(!e.includes(t)){e.push(t)}}else{e.add(t)}return t}function including(e,t){if(Array.isArray(e)&&!e.includes(t)){e.push(t)}return e}function remove(e,t){if(Array.isArray(e)){const r=e.indexOf(t);if(r>=0){e.splice(r,1)}}else{e.delete(t)}return t}function asArray(e){return Array.isArray(e)?e:[e]}function asStringArray(e){return asArray(e).map(String)}function asNumber(e,t=0){if(e==null){return t}const r=parseInt(e,10);return isNaN(r)?t:r}function prefixedArray(e,t){const r=[];for(let a=0,n=e.length;at in e?{[t]:e[t]}:{})))}function delay(e=0){return new Promise((t=>setTimeout(t,e)))}var k,O,C,P;var A=__esm({"src/lib/utils/util.ts"(){k=r(4751);O="\0";C=()=>{};P=Object.prototype.toString.call.bind(Object.prototype.toString)}});function filterType(e,t,r){if(t(e)){return e}return arguments.length>2?r:void 0}function filterPrimitives(e,t){return/number|string|boolean/.test(typeof e)&&(!t||!t.includes(typeof e))}function filterPlainObject(e){return!!e&&P(e)==="[object Object]"}function filterFunction(e){return typeof e==="function"}var D,R,N,j,I;var F=__esm({"src/lib/utils/argument-filters.ts"(){A();D=e=>Array.isArray(e);R=e=>typeof e==="string";N=e=>Array.isArray(e)&&e.every(R);j=e=>R(e)||Array.isArray(e)&&e.every(R);I=e=>{if(e==null||"number|boolean|function".includes(typeof e)){return false}return Array.isArray(e)||typeof e==="string"||typeof e.length==="number"}}});var $;var B=__esm({"src/lib/utils/exit-codes.ts"(){$=(e=>{e[e["SUCCESS"]=0]="SUCCESS";e[e["ERROR"]=1]="ERROR";e[e["NOT_FOUND"]=-2]="NOT_FOUND";e[e["UNCLEAN"]=128]="UNCLEAN";return e})($||{})}});var L;var M=__esm({"src/lib/utils/git-output-streams.ts"(){L=class{constructor(e,t){this.stdOut=e;this.stdErr=t}asStrings(){return new L(this.stdOut.toString("utf8"),this.stdErr.toString("utf8"))}}}});var U,G;var V=__esm({"src/lib/utils/line-parser.ts"(){U=class{constructor(e,t){this.matches=[];this.parse=(e,t)=>{this.resetMatches();if(!this._regExp.every(((t,r)=>this.addMatch(t,r,e(r))))){return false}return this.useMatches(t,this.prepareMatches())!==false};this._regExp=Array.isArray(e)?e:[e];if(t){this.useMatches=t}}useMatches(e,t){throw new Error(`LineParser:useMatches not implemented`)}resetMatches(){this.matches.length=0}prepareMatches(){return this.matches}addMatch(e,t,r){const a=r&&e.exec(r);if(a){this.pushMatch(t,a)}return!!a}pushMatch(e,t){this.matches.push(...t.slice(1))}};G=class extends U{addMatch(e,t,r){return/^remote:\s/.test(String(r))&&super.addMatch(e,t,r)}pushMatch(e,t){if(e>0||t.length>1){super.pushMatch(e,t)}}}}});function createInstanceConfig(...e){const t=process.cwd();const r=Object.assign(__spreadValues({baseDir:t},q),...e.filter((e=>typeof e==="object"&&e)));r.baseDir=r.baseDir||t;r.trimmed=r.trimmed===true;return r}var q;var H=__esm({"src/lib/utils/simple-git-options.ts"(){q={binary:"git",maxConcurrentProcesses:5,config:[],trimmed:false}}});function appendTaskOptions(e,t=[]){if(!filterPlainObject(e)){return t}return Object.keys(e).reduce(((t,r)=>{const a=e[r];if(filterPrimitives(a,["boolean"])){t.push(r+"="+a)}else{t.push(r)}return t}),t)}function getTrailingOptions(e,t=0,r=false){const a=[];for(let r=0,n=t<0?e.length:t;r{for(let n=toLinesWithContent(r,a),i=0,s=n.length;i{if(i+e>=s){return}return n[i+e]};t.some((({parse:t})=>t(line,e)))}}));return e}var K=__esm({"src/lib/utils/task-parser.ts"(){A()}});var W={};__export(W,{ExitCodes:()=>$,GitOutputStreams:()=>L,LineParser:()=>U,NOOP:()=>C,NULL:()=>O,RemoteLineParser:()=>G,append:()=>append,appendTaskOptions:()=>appendTaskOptions,asArray:()=>asArray,asFunction:()=>asFunction,asNumber:()=>asNumber,asStringArray:()=>asStringArray,bufferToString:()=>bufferToString,callTaskParser:()=>callTaskParser,createInstanceConfig:()=>createInstanceConfig,delay:()=>delay,filterArray:()=>D,filterFunction:()=>filterFunction,filterHasLength:()=>I,filterPlainObject:()=>filterPlainObject,filterPrimitives:()=>filterPrimitives,filterString:()=>R,filterStringArray:()=>N,filterStringOrStringArray:()=>j,filterType:()=>filterType,first:()=>first,folderExists:()=>folderExists,forEachLineWithContent:()=>forEachLineWithContent,getTrailingOptions:()=>getTrailingOptions,including:()=>including,isUserFunction:()=>isUserFunction,last:()=>last,objectToString:()=>P,parseStringResponse:()=>parseStringResponse,pick:()=>pick,prefixedArray:()=>prefixedArray,remove:()=>remove,splitOn:()=>splitOn,toLinesWithContent:()=>toLinesWithContent,trailingFunctionArgument:()=>trailingFunctionArgument,trailingOptionsArgument:()=>trailingOptionsArgument});var J=__esm({"src/lib/utils/index.ts"(){F();B();M();V();H();z();K();A()}});var Y={};__export(Y,{CheckRepoActions:()=>Q,checkIsBareRepoTask:()=>checkIsBareRepoTask,checkIsRepoRootTask:()=>checkIsRepoRootTask,checkIsRepoTask:()=>checkIsRepoTask});function checkIsRepoTask(e){switch(e){case"bare":return checkIsBareRepoTask();case"root":return checkIsRepoRootTask()}const t=["rev-parse","--is-inside-work-tree"];return{commands:t,format:"utf-8",onError:X,parser:Z}}function checkIsRepoRootTask(){const e=["rev-parse","--git-dir"];return{commands:e,format:"utf-8",onError:X,parser(e){return/^\.(git)?$/.test(e.trim())}}}function checkIsBareRepoTask(){const e=["rev-parse","--is-bare-repository"];return{commands:e,format:"utf-8",onError:X,parser:Z}}function isNotRepoMessage(e){return/(Not a git repository|Kein Git-Repository)/i.test(String(e))}var Q,X,Z;var ee=__esm({"src/lib/tasks/check-is-repo.ts"(){J();Q=(e=>{e["BARE"]="bare";e["IN_TREE"]="tree";e["IS_REPO_ROOT"]="root";return e})(Q||{});X=({exitCode:e},t,r,a)=>{if(e===128&&isNotRepoMessage(t)){return r(Buffer.from("false"))}a(t)};Z=e=>e.trim()==="true"}});function cleanSummaryParser(e,t){const r=new te(e);const a=e?ae:re;toLinesWithContent(t).forEach((e=>{const t=e.replace(a,"");r.paths.push(t);(ne.test(t)?r.folders:r.files).push(t)}));return r}var te,re,ae,ne;var ie=__esm({"src/lib/responses/CleanSummary.ts"(){J();te=class{constructor(e){this.dryRun=e;this.paths=[];this.files=[];this.folders=[]}};re=/^[a-z]+\s*/i;ae=/^[a-z]+\s+[a-z]+\s*/i;ne=/\/$/}});var se={};__export(se,{EMPTY_COMMANDS:()=>oe,adhocExecTask:()=>adhocExecTask,configurationErrorTask:()=>configurationErrorTask,isBufferTask:()=>isBufferTask,isEmptyTask:()=>isEmptyTask,straightThroughBufferTask:()=>straightThroughBufferTask,straightThroughStringTask:()=>straightThroughStringTask});function adhocExecTask(e){return{commands:oe,format:"empty",parser:e}}function configurationErrorTask(e){return{commands:oe,format:"empty",parser(){throw typeof e==="string"?new T(e):e}}}function straightThroughStringTask(e,t=false){return{commands:e,format:"utf-8",parser(e){return t?String(e).trim():e}}}function straightThroughBufferTask(e){return{commands:e,format:"buffer",parser(e){return e}}}function isBufferTask(e){return e.format==="buffer"}function isEmptyTask(e){return e.format==="empty"||!e.commands.length}var oe;var pe=__esm({"src/lib/tasks/task.ts"(){S();oe=[]}});var ce={};__export(ce,{CONFIG_ERROR_INTERACTIVE_MODE:()=>le,CONFIG_ERROR_MODE_REQUIRED:()=>de,CONFIG_ERROR_UNKNOWN_OPTION:()=>ue,CleanOptions:()=>me,cleanTask:()=>cleanTask,cleanWithOptionsTask:()=>cleanWithOptionsTask,isCleanOptionsArray:()=>isCleanOptionsArray});function cleanWithOptionsTask(e,t){const{cleanMode:r,options:a,valid:n}=getCleanOptions(e);if(!r){return configurationErrorTask(de)}if(!n.options){return configurationErrorTask(ue+JSON.stringify(e))}a.push(...t);if(a.some(isInteractiveMode)){return configurationErrorTask(le)}return cleanTask(r,a)}function cleanTask(e,t){const r=["clean",`-${e}`,...t];return{commands:r,format:"utf-8",parser(t){return cleanSummaryParser(e==="n",t)}}}function isCleanOptionsArray(e){return Array.isArray(e)&&e.every((e=>fe.has(e)))}function getCleanOptions(e){let t;let r=[];let a={cleanMode:false,options:true};e.replace(/[^a-z]i/g,"").split("").forEach((e=>{if(isCleanMode(e)){t=e;a.cleanMode=true}else{a.options=a.options&&isKnownOption(r[r.length]=`-${e}`)}}));return{cleanMode:t,options:r,valid:a}}function isCleanMode(e){return e==="f"||e==="n"}function isKnownOption(e){return/^-[a-z]$/i.test(e)&&fe.has(e.charAt(1))}function isInteractiveMode(e){if(/^-[^\-]/.test(e)){return e.indexOf("i")>0}return e==="--interactive"}var le,de,ue,me,fe;var he=__esm({"src/lib/tasks/clean.ts"(){ie();J();pe();le="Git clean interactive mode is not supported";de='Git clean mode parameter ("n" or "f") is required';ue="Git clean unknown option found in: ";me=(e=>{e["DRY_RUN"]="n";e["FORCE"]="f";e["IGNORED_INCLUDED"]="x";e["IGNORED_ONLY"]="X";e["EXCLUDING"]="e";e["QUIET"]="q";e["RECURSIVE"]="d";return e})(me||{});fe=new Set(["i",...asStringArray(Object.values(me))])}});function configListParser(e){const t=new ge;for(const r of configParser(e)){t.addValue(r.file,String(r.key),r.value)}return t}function configGetParser(e,t){let r=null;const a=[];const n=new Map;for(const i of configParser(e,t)){if(i.key!==t){continue}a.push(r=i.value);if(!n.has(i.file)){n.set(i.file,[])}n.get(i.file).push(r)}return{key:t,paths:Array.from(n.keys()),scopes:n,value:r,values:a}}function configFilePath(e){return e.replace(/^(file):/,"")}function*configParser(e,t=null){const r=e.split("\0");for(let e=0,a=r.length-1;eObject.assign(e,this.values[t])),{})}return this._all}addFile(e){if(!(e in this.values)){const t=last(this.files);this.values[e]=t?Object.create(this.values[t]):{};this.files.push(e)}return this.values[e]}addValue(e,t,r){const a=this.addFile(e);if(!a.hasOwnProperty(t)){a[t]=r}else if(Array.isArray(a[t])){a[t].push(r)}else{a[t]=[a[t],r]}this._all=void 0}}}});function asConfigScope(e,t){if(typeof e==="string"&&ye.hasOwnProperty(e)){return e}return t}function addConfigTask(e,t,r,a){const n=["config",`--${a}`];if(r){n.push("--add")}n.push(e,t);return{commands:n,format:"utf-8",parser(e){return e}}}function getConfigTask(e,t){const r=["config","--null","--show-origin","--get-all",e];if(t){r.splice(1,0,`--${t}`)}return{commands:r,format:"utf-8",parser(t){return configGetParser(t,e)}}}function listConfigTask(e){const t=["config","--list","--show-origin","--null"];if(e){t.push(`--${e}`)}return{commands:t,format:"utf-8",parser(e){return configListParser(e)}}}function config_default(){return{addConfig(e,t,...r){return this._runTask(addConfigTask(e,t,r[0]===true,asConfigScope(r[1],"local")),trailingFunctionArgument(arguments))},getConfig(e,t){return this._runTask(getConfigTask(e,asConfigScope(t,void 0)),trailingFunctionArgument(arguments))},listConfig(...e){return this._runTask(listConfigTask(asConfigScope(e[0],void 0)),trailingFunctionArgument(arguments))}}}var ye;var be=__esm({"src/lib/tasks/config.ts"(){ve();J();ye=(e=>{e["system"]="system";e["global"]="global";e["local"]="local";e["worktree"]="worktree";return e})(ye||{})}});function grepQueryBuilder(...e){return(new Ee).param(...e)}function parseGrep(e){const t=new Set;const r={};forEachLineWithContent(e,(e=>{const[a,n,i]=e.split(O);t.add(a);(r[a]=r[a]||[]).push({line:asNumber(n),path:a,preview:i})}));return{paths:t,results:r}}function grep_default(){return{grep(e){const t=trailingFunctionArgument(arguments);const r=getTrailingOptions(arguments);for(const e of we){if(r.includes(e)){return this._runTask(configurationErrorTask(`git.grep: use of "${e}" is not supported.`),t)}}if(typeof e==="string"){e=grepQueryBuilder().param(e)}const a=["grep","--null","-n","--full-name",...r,...e];return this._runTask({commands:a,format:"utf-8",parser(e){return parseGrep(e)}},t)}}}var we,_e,xe,Ee;var Te=__esm({"src/lib/tasks/grep.ts"(){J();pe();we=["-h"];_e=Symbol("grepQuery");Ee=class{constructor(){this[xe]=[]}*[(xe=_e,Symbol.iterator)](){for(const e of this[_e]){yield e}}and(...e){e.length&&this[_e].push("--and","(",...prefixedArray(e,"-e"),")");return this}param(...e){this[_e].push(...prefixedArray(e,"-e"));return this}}}});var Se={};__export(Se,{ResetMode:()=>ke,getResetMode:()=>getResetMode,resetTask:()=>resetTask});function resetTask(e,t){const r=["reset"];if(isValidResetMode(e)){r.push(`--${e}`)}r.push(...t);return straightThroughStringTask(r)}function getResetMode(e){if(isValidResetMode(e)){return e}switch(typeof e){case"string":case"undefined":return"soft"}return}function isValidResetMode(e){return Oe.includes(e)}var ke,Oe;var Ce=__esm({"src/lib/tasks/reset.ts"(){pe();ke=(e=>{e["MIXED"]="mixed";e["SOFT"]="soft";e["HARD"]="hard";e["MERGE"]="merge";e["KEEP"]="keep";return e})(ke||{});Oe=Array.from(Object.values(ke))}});var Pe={};__export(Pe,{CheckRepoActions:()=>Q,CleanOptions:()=>me,GitConfigScope:()=>ye,GitConstructError:()=>b,GitError:()=>h,GitPluginError:()=>x,GitResponseError:()=>v,ResetMode:()=>ke,TaskConfigurationError:()=>T,grepQueryBuilder:()=>grepQueryBuilder});var Ae=__esm({"src/lib/api.ts"(){w();g();E();y();S();ee();he();be();Te();Ce()}});function abortPlugin(e){if(!e){return}const t={type:"spawn.after",action(t,r){function kill(){r.kill(new x(void 0,"abort","Abort signal received"))}e.addEventListener("abort",kill);r.spawned.on("close",(()=>e.removeEventListener("abort",kill)))}};const r={type:"spawn.before",action(t,r){if(e.aborted){r.kill(new x(void 0,"abort","Abort already signaled"))}}};return[r,t]}var De=__esm({"src/lib/plugins/abort-plugin.ts"(){E()}});function isConfigSwitch(e){return typeof e==="string"&&e.trim().toLowerCase()==="-c"}function preventProtocolOverride(e,t){if(!isConfigSwitch(e)){return}if(!/^\s*protocol(.[a-z]+)?.allow/.test(t)){return}throw new x(void 0,"unsafe","Configuring protocol.allow is not permitted without enabling allowUnsafeExtProtocol")}function preventUploadPack(e,t){if(/^\s*--(upload|receive)-pack/.test(e)){throw new x(void 0,"unsafe",`Use of --upload-pack or --receive-pack is not permitted without enabling allowUnsafePack`)}if(t==="clone"&&/^\s*-u\b/.test(e)){throw new x(void 0,"unsafe",`Use of clone with option -u is not permitted without enabling allowUnsafePack`)}if(t==="push"&&/^\s*--exec\b/.test(e)){throw new x(void 0,"unsafe",`Use of push with option --exec is not permitted without enabling allowUnsafePack`)}}function blockUnsafeOperationsPlugin({allowUnsafeProtocolOverride:e=false,allowUnsafePack:t=false}={}){return{type:"spawn.args",action(r,a){r.forEach(((n,i)=>{const s=idelay(e)))).then(r.done)}return{type:"spawn.after",action(e,t){return __async(this,arguments,(function*(e,{spawned:t,close:r}){var a,n;const i=createEvents();let s=true;let quickClose=()=>void(s=false);(a=t.stdout)==null?void 0:a.on("data",quickClose);(n=t.stderr)==null?void 0:n.on("data",quickClose);t.on("error",quickClose);t.on("close",(e=>i.close(e)));t.on("exit",(e=>i.exit(e)));try{yield i.result;if(s){yield delay(50)}r(i.exitCode)}catch(e){r(i.exitCode,e)}}))}}}var je,Ie;var Fe=__esm({"src/lib/plugins/completion-detection.plugin.ts"(){je=r(9819);J();Ie=(0,je.deferred)().promise}});function isTaskError(e){return!!(e.exitCode&&e.stdErr.length)}function getErrorMessage(e){return Buffer.concat([...e.stdOut,...e.stdErr])}function errorDetectionHandler(e=false,t=isTaskError,r=getErrorMessage){return(a,n)=>{if(!e&&a||!t(n)){return a}return r(n)}}function errorDetectionPlugin(e){return{type:"task.error",action(t,r){const a=e(t.error,{stdErr:r.stdErr,stdOut:r.stdOut,exitCode:r.exitCode});if(Buffer.isBuffer(a)){return{error:new h(void 0,a.toString("utf-8"))}}return{error:a}}}}var $e=__esm({"src/lib/plugins/error-detection.plugin.ts"(){g()}});var Be;var Le=__esm({"src/lib/plugins/plugin-store.ts"(){J();Be=class{constructor(){this.plugins=new Set}add(e){const t=[];asArray(e).forEach((e=>e&&this.plugins.add(append(t,e))));return()=>{t.forEach((e=>this.plugins.delete(e)))}}exec(e,t,r){let a=t;const n=Object.freeze(Object.create(r));for(const t of this.plugins){if(t.type===e){a=t.action(a,n)}}return a}}}});function progressMonitorPlugin(e){const t="--progress";const r=["checkout","clone","fetch","pull","push"];const a={type:"spawn.after",action(r,a){var n;if(!a.commands.includes(t)){return}(n=a.spawned.stderr)==null?void 0:n.on("data",(t=>{const r=/^([\s\S]+?):\s*(\d+)% \((\d+)\/(\d+)\)/.exec(t.toString("utf8"));if(!r){return}e({method:a.method,stage:progressEventStage(r[1]),progress:asNumber(r[2]),processed:asNumber(r[3]),total:asNumber(r[4])})}))}};const n={type:"spawn.args",action(e,a){if(!r.includes(a.method)){return e}return including(e,t)}};return[n,a]}function progressEventStage(e){return String(e.toLowerCase().split(" ",1))||"unknown"}var Me=__esm({"src/lib/plugins/progress-monitor-plugin.ts"(){J()}});var Ue=__esm({"src/lib/plugins/simple-git-plugin.ts"(){}});function spawnOptionsPlugin(e){const t=pick(e,["uid","gid"]);return{type:"spawn.options",action(e){return __spreadValues(__spreadValues({},t),e)}}}var Ge=__esm({"src/lib/plugins/spawn-options-plugin.ts"(){J()}});function timeoutPlugin({block:e}){if(e>0){return{type:"spawn.after",action(t,r){var a,n;let i;function wait(){i&&clearTimeout(i);i=setTimeout(kill,e)}function stop(){var e,t;(e=r.spawned.stdout)==null?void 0:e.off("data",wait);(t=r.spawned.stderr)==null?void 0:t.off("data",wait);r.spawned.off("exit",stop);r.spawned.off("close",stop);i&&clearTimeout(i)}function kill(){stop();r.kill(new x(void 0,"timeout",`block timeout reached`))}(a=r.spawned.stdout)==null?void 0:a.on("data",wait);(n=r.spawned.stderr)==null?void 0:n.on("data",wait);r.spawned.on("exit",stop);r.spawned.on("close",stop);wait()}}}}var Ve=__esm({"src/lib/plugins/timout-plugin.ts"(){E()}});var qe=__esm({"src/lib/plugins/index.ts"(){De();Re();Ne();Fe();$e();Le();Me();Ue();Ge();Ve()}});function createLog(){return(0,He.default)("simple-git")}function prefixedLogger(e,t,r){if(!t||!String(t).replace(/\s*/,"")){return!r?e:(t,...a)=>{e(t,...a);r(t,...a)}}return(a,...n)=>{e(`%s ${a}`,t,...n);if(r){r(a,...n)}}}function childLoggerName(e,t,{namespace:r}){if(typeof e==="string"){return e}const a=t&&t.namespace||"";if(a.startsWith(r)){return a.substr(r.length+1)}return a||r}function createLogger(e,t,r,a=createLog()){const n=e&&`[${e}]`||"";const i=[];const s=typeof t==="string"?a.extend(t):t;const o=childLoggerName(filterType(t,R),s,a);return step(r);function sibling(t,r){return append(i,createLogger(e,o.replace(/^[^:]+/,t),r,a))}function step(t){const r=t&&`[${t}]`||"";const i=s&&prefixedLogger(s,r)||C;const o=prefixedLogger(a,`${n} ${r}`,i);return Object.assign(s?i:o,{label:e,sibling:sibling,info:o,step:step})}}var He;var ze=__esm({"src/lib/git-logger.ts"(){He=__toESM(r(8237));J();He.default.formatters.L=e=>String(I(e)?e.length:"-");He.default.formatters.B=e=>{if(Buffer.isBuffer(e)){return e.toString("utf8")}return P(e)}}});var Ke,We;var Je=__esm({"src/lib/runners/tasks-pending-queue.ts"(){g();ze();Ke=class{constructor(e="GitExecutor"){this.logLabel=e;this._queue=new Map}withProgress(e){return this._queue.get(e)}createProgress(e){const t=Ke.getName(e.commands[0]);const r=createLogger(this.logLabel,t);return{task:e,logger:r,name:t}}push(e){const t=this.createProgress(e);t.logger("Adding task to the queue, commands = %o",e.commands);this._queue.set(e,t);return t}fatal(e){for(const[t,{logger:r}]of Array.from(this._queue.entries())){if(t===e.task){r.info(`Failed %o`,e);r(`Fatal exception, any as-yet un-started tasks run through this executor will not be attempted`)}else{r.info(`A fatal exception occurred in a previous task, the queue has been purged: %o`,e.message)}this.complete(t)}if(this._queue.size!==0){throw new Error(`Queue size should be zero after fatal: ${this._queue.size}`)}}complete(e){const t=this.withProgress(e);if(t){this._queue.delete(e)}}attempt(e){const t=this.withProgress(e);if(!t){throw new h(void 0,"TasksPendingQueue: attempt called for an unknown task")}t.logger("Starting task");return t}static getName(e="empty"){return`task:${e}:${++Ke.counter}`}};We=Ke;We.counter=0}});function pluginContext(e,t){return{method:first(e.commands)||"",commands:t}}function onErrorReceived(e,t){return r=>{t(`[ERROR] child process exception %o`,r);e.push(Buffer.from(String(r.stack),"ascii"))}}function onDataReceived(e,t,r,a){return n=>{r(`%s received %L bytes`,t,n);a(`%B`,n);e.push(n)}}var Ye,Qe;var Xe=__esm({"src/lib/runners/git-executor-chain.ts"(){Ye=r(2081);g();pe();J();Je();Qe=class{constructor(e,t,r){this._executor=e;this._scheduler=t;this._plugins=r;this._chain=Promise.resolve();this._queue=new We}get binary(){return this._executor.binary}get cwd(){return this._cwd||this._executor.cwd}set cwd(e){this._cwd=e}get env(){return this._executor.env}get outputHandler(){return this._executor.outputHandler}chain(){return this}push(e){this._queue.push(e);return this._chain=this._chain.then((()=>this.attemptTask(e)))}attemptTask(e){return __async(this,null,(function*(){const t=yield this._scheduler.next();const onQueueComplete=()=>this._queue.complete(e);try{const{logger:r}=this._queue.attempt(e);return yield isEmptyTask(e)?this.attemptEmptyTask(e,r):this.attemptRemoteTask(e,r)}catch(t){throw this.onFatalException(e,t)}finally{onQueueComplete();t()}}))}onFatalException(e,t){const r=t instanceof h?Object.assign(t,{task:e}):new h(e,t&&String(t));this._chain=Promise.resolve();this._queue.fatal(r);return r}attemptRemoteTask(e,t){return __async(this,null,(function*(){const r=this._plugins.exec("spawn.args",[...e.commands],pluginContext(e,e.commands));const a=yield this.gitResponse(e,this.binary,r,this.outputHandler,t.step("SPAWN"));const n=yield this.handleTaskData(e,r,a,t.step("HANDLE"));t(`passing response to task's parser as a %s`,e.format);if(isBufferTask(e)){return callTaskParser(e.parser,n)}return callTaskParser(e.parser,n.asStrings())}))}attemptEmptyTask(e,t){return __async(this,null,(function*(){t(`empty task bypassing child process to call to task's parser`);return e.parser(this)}))}handleTaskData(e,t,r,a){const{exitCode:n,rejection:i,stdOut:s,stdErr:o}=r;return new Promise(((p,c)=>{a(`Preparing to handle process response exitCode=%d stdOut=`,n);const{error:l}=this._plugins.exec("task.error",{error:i},__spreadValues(__spreadValues({},pluginContext(e,t)),r));if(l&&e.onError){a.info(`exitCode=%s handling with custom error handler`);return e.onError(r,l,(e=>{a.info(`custom error handler treated as success`);a(`custom error returned a %s`,P(e));p(new L(Array.isArray(e)?Buffer.concat(e):e,Buffer.concat(o)))}),c)}if(l){a.info(`handling as error: exitCode=%s stdErr=%s rejection=%o`,n,o.length,i);return c(l)}a.info(`retrieving task output complete`);p(new L(Buffer.concat(s),Buffer.concat(o)))}))}gitResponse(e,t,r,a,n){return __async(this,null,(function*(){const i=n.sibling("output");const s=this._plugins.exec("spawn.options",{cwd:this.cwd,env:this.env,windowsHide:true},pluginContext(e,e.commands));return new Promise((o=>{const p=[];const c=[];n.info(`%s %o`,t,r);n("%O",s);let l=this._beforeSpawn(e,r);if(l){return o({stdOut:p,stdErr:c,exitCode:9901,rejection:l})}this._plugins.exec("spawn.before",void 0,__spreadProps(__spreadValues({},pluginContext(e,r)),{kill(e){l=e||l}}));const d=(0,Ye.spawn)(t,r,s);d.stdout.on("data",onDataReceived(p,"stdOut",n,i.step("stdOut")));d.stderr.on("data",onDataReceived(c,"stdErr",n,i.step("stdErr")));d.on("error",onErrorReceived(c,n));if(a){n(`Passing child process stdOut/stdErr to custom outputHandler`);a(t,d.stdout,d.stderr,[...r])}this._plugins.exec("spawn.after",void 0,__spreadProps(__spreadValues({},pluginContext(e,r)),{spawned:d,close(e,t){o({stdOut:p,stdErr:c,exitCode:e,rejection:l||t})},kill(e){if(d.killed){return}l=e;d.kill("SIGINT")}}))}))}))}_beforeSpawn(e,t){let r;this._plugins.exec("spawn.before",void 0,__spreadProps(__spreadValues({},pluginContext(e,t)),{kill(e){r=e||r}}));return r}}}});var Ze={};__export(Ze,{GitExecutor:()=>et});var et;var tt=__esm({"src/lib/runners/git-executor.ts"(){Xe();et=class{constructor(e="git",t,r,a){this.binary=e;this.cwd=t;this._scheduler=r;this._plugins=a;this._chain=new Qe(this,this._scheduler,this._plugins)}chain(){return new Qe(this,this._scheduler,this._plugins)}push(e){return this._chain.push(e)}}}});function taskCallback(e,t,r=C){const onSuccess=e=>{r(null,e)};const onError2=t=>{if((t==null?void 0:t.task)===e){r(t instanceof v?addDeprecationNoticeToError(t):t,void 0)}};t.then(onSuccess,onError2)}function addDeprecationNoticeToError(e){let log=e=>{console.warn(`simple-git deprecation notice: accessing GitResponseError.${e} should be GitResponseError.git.${e}, this will no longer be available in version 3`);log=C};return Object.create(e,Object.getOwnPropertyNames(e.git).reduce(descriptorReducer,{}));function descriptorReducer(t,r){if(r in e){return t}t[r]={enumerable:false,configurable:false,get(){log(r);return e.git[r]}};return t}}var rt=__esm({"src/lib/task-callback.ts"(){y();J()}});function changeWorkingDirectoryTask(e,t){return adhocExecTask((r=>{if(!folderExists(e)){throw new Error(`Git.cwd: cannot change to non-directory "${e}"`)}return(t||r).cwd=e}))}var nt=__esm({"src/lib/tasks/change-working-directory.ts"(){J();pe()}});function checkoutTask(e){const t=["checkout",...e];if(t[1]==="-b"&&t.includes("-B")){t[1]=remove(t,"-B")}return straightThroughStringTask(t)}function checkout_default(){return{checkout(){return this._runTask(checkoutTask(getTrailingOptions(arguments,1)),trailingFunctionArgument(arguments))},checkoutBranch(e,t){return this._runTask(checkoutTask(["-b",e,t,...getTrailingOptions(arguments)]),trailingFunctionArgument(arguments))},checkoutLocalBranch(e){return this._runTask(checkoutTask(["-b",e,...getTrailingOptions(arguments)]),trailingFunctionArgument(arguments))}}}var it=__esm({"src/lib/tasks/checkout.ts"(){J();pe()}});function parseCommitResult(e){const t={author:null,branch:"",commit:"",root:false,summary:{changes:0,insertions:0,deletions:0}};return parseStringResponse(t,st,e)}var st;var ot=__esm({"src/lib/parsers/parse-commit.ts"(){J();st=[new U(/^\[([^\s]+)( \([^)]+\))? ([^\]]+)/,((e,[t,r,a])=>{e.branch=t;e.commit=a;e.root=!!r})),new U(/\s*Author:\s(.+)/i,((e,[t])=>{const r=t.split("<");const a=r.pop();if(!a||!a.includes("@")){return}e.author={email:a.substr(0,a.length-1),name:r.join("<").trim()}})),new U(/(\d+)[^,]*(?:,\s*(\d+)[^,]*)(?:,\s*(\d+))/g,((e,[t,r,a])=>{e.summary.changes=parseInt(t,10)||0;e.summary.insertions=parseInt(r,10)||0;e.summary.deletions=parseInt(a,10)||0})),new U(/^(\d+)[^,]*(?:,\s*(\d+)[^(]+\(([+-]))?/,((e,[t,r,a])=>{e.summary.changes=parseInt(t,10)||0;const n=parseInt(r,10)||0;if(a==="-"){e.summary.deletions=n}else if(a==="+"){e.summary.insertions=n}}))]}});function commitTask(e,t,r){const a=["-c","core.abbrev=40","commit",...prefixedArray(e,"-m"),...t,...r];return{commands:a,format:"utf-8",parser:parseCommitResult}}function commit_default(){return{commit(e,...t){const r=trailingFunctionArgument(arguments);const a=rejectDeprecatedSignatures(e)||commitTask(asArray(e),asArray(filterType(t[0],j,[])),[...filterType(t[1],D,[]),...getTrailingOptions(arguments,0,true)]);return this._runTask(a,r)}};function rejectDeprecatedSignatures(e){return!j(e)&&configurationErrorTask(`git.commit: requires the commit message to be supplied as a string/string[]`)}}var pt=__esm({"src/lib/tasks/commit.ts"(){ot();J();pe()}});function hashObjectTask(e,t){const r=["hash-object",e];if(t){r.push("-w")}return straightThroughStringTask(r,true)}var ct=__esm({"src/lib/tasks/hash-object.ts"(){pe()}});function parseInit(e,t,r){const a=String(r).trim();let n;if(n=dt.exec(a)){return new lt(e,t,false,n[1])}if(n=ut.exec(a)){return new lt(e,t,true,n[1])}let i="";const s=a.split(" ");while(s.length){const e=s.shift();if(e==="in"){i=s.join(" ");break}}return new lt(e,t,/^re/i.test(a),i)}var lt,dt,ut;var mt=__esm({"src/lib/responses/InitSummary.ts"(){lt=class{constructor(e,t,r,a){this.bare=e;this.path=t;this.existing=r;this.gitDir=a}};dt=/^Init.+ repository in (.+)$/;ut=/^Rein.+ in (.+)$/}});function hasBareCommand(e){return e.includes(ft)}function initTask(e=false,t,r){const a=["init",...r];if(e&&!hasBareCommand(a)){a.splice(1,0,ft)}return{commands:a,format:"utf-8",parser(e){return parseInit(a.includes("--bare"),t,e)}}}var ft;var ht=__esm({"src/lib/tasks/init.ts"(){mt();ft="--bare"}});function logFormatFromCommand(e){for(let t=0;tparseStringResponse(new yt,t,e,false)}var wt,_t,xt,Et,Tt;var St=__esm({"src/lib/parsers/parse-diff-summary.ts"(){vt();bt();J();wt=[new U(/(.+)\s+\|\s+(\d+)(\s+[+\-]+)?$/,((e,[t,r,a=""])=>{e.files.push({file:t.trim(),changes:asNumber(r),insertions:a.replace(/[^+]/g,"").length,deletions:a.replace(/[^-]/g,"").length,binary:false})})),new U(/(.+) \|\s+Bin ([0-9.]+) -> ([0-9.]+) ([a-z]+)/,((e,[t,r,a])=>{e.files.push({file:t.trim(),before:asNumber(r),after:asNumber(a),binary:true})})),new U(/(\d+) files? changed\s*((?:, \d+ [^,]+){0,2})/,((e,[t,r])=>{const a=/(\d+) i/.exec(r);const n=/(\d+) d/.exec(r);e.changed=asNumber(t);e.insertions=asNumber(a==null?void 0:a[1]);e.deletions=asNumber(n==null?void 0:n[1])}))];_t=[new U(/(\d+)\t(\d+)\t(.+)$/,((e,[t,r,a])=>{const n=asNumber(t);const i=asNumber(r);e.changed++;e.insertions+=n;e.deletions+=i;e.files.push({file:a,changes:n+i,insertions:n,deletions:i,binary:false})})),new U(/-\t-\t(.+)$/,((e,[t])=>{e.changed++;e.files.push({file:t,after:0,before:0,binary:true})}))];xt=[new U(/(.+)$/,((e,[t])=>{e.changed++;e.files.push({file:t,changes:0,insertions:0,deletions:0,binary:false})}))];Et=[new U(/([ACDMRTUXB])\s*(.+)$/,((e,[t,r])=>{e.changed++;e.files.push({file:r,changes:0,insertions:0,deletions:0,binary:false})}))];Tt={[""]:wt,["--stat"]:wt,["--numstat"]:_t,["--name-status"]:Et,["--name-only"]:xt}}});function lineBuilder(e,t){return t.reduce(((t,r,a)=>{t[r]=e[a]||"";return t}),Object.create({diff:null}))}function createListLogSummaryParser(e=Ct,t=Pt,r=""){const a=getDiffParser(r);return function(r){const n=toLinesWithContent(r,true,kt).map((function(r){const n=r.trim().split(Ot);const i=lineBuilder(n[0].trim().split(e),t);if(n.length>1&&!!n[1].trim()){i.diff=a(n[1])}return i}));return{all:n,latest:n.length&&n[0]||null,total:n.length}}}var kt,Ot,Ct,Pt;var At=__esm({"src/lib/parsers/parse-list-log-summary.ts"(){J();St();vt();kt="òòòòòò ";Ot=" òò";Ct=" ò ";Pt=["hash","date","message","refs","author_name","author_email"]}});var Dt={};__export(Dt,{diffSummaryTask:()=>diffSummaryTask,validateLogFormatConfig:()=>validateLogFormatConfig});function diffSummaryTask(e){let t=logFormatFromCommand(e);const r=["diff"];if(t===""){t="--stat";r.push("--stat=4096")}r.push(...e);return validateLogFormatConfig(r)||{commands:r,format:"utf-8",parser:getDiffParser(t)}}function validateLogFormatConfig(e){const t=e.filter(isLogFormat);if(t.length>1){return configurationErrorTask(`Summary flags are mutually exclusive - pick one of ${t.join(",")}`)}if(t.length&&e.includes("-z")){return configurationErrorTask(`Summary flag ${t} parsing is not compatible with null termination option '-z'`)}}var Rt=__esm({"src/lib/tasks/diff.ts"(){vt();St();pe()}});function prettyFormat(e,t){const r=[];const a=[];Object.keys(e).forEach((t=>{r.push(t);a.push(String(e[t]))}));return[r,a.join(t)]}function userOptions(e){return Object.keys(e).reduce(((t,r)=>{if(!(r in Nt)){t[r]=e[r]}return t}),{})}function parseLogOptions(e={},t=[]){const r=filterType(e.splitter,R,Ct);const a=!filterPrimitives(e.format)&&e.format?e.format:{hash:"%H",date:e.strictDate===false?"%ai":"%aI",message:"%s",refs:"%D",body:e.multiLine?"%B":"%b",author_name:e.mailMap!==false?"%aN":"%an",author_email:e.mailMap!==false?"%aE":"%ae"};const[n,i]=prettyFormat(a,r);const s=[];const o=[`--pretty=format:${kt}${i}${Ot}`,...t];const p=e.n||e["max-count"]||e.maxCount;if(p){o.push(`--max-count=${p}`)}if(e.from||e.to){const t=e.symmetric!==false?"...":"..";s.push(`${e.from||""}${t}${e.to||""}`)}if(R(e.file)){s.push("--follow",e.file)}appendTaskOptions(userOptions(e),o);return{fields:n,splitter:r,commands:[...o,...s]}}function logTask(e,t,r){const a=createListLogSummaryParser(e,t,logFormatFromCommand(r));return{commands:["log",...r],format:"utf-8",parser:a}}function log_default(){return{log(...e){const t=trailingFunctionArgument(arguments);const r=parseLogOptions(trailingOptionsArgument(arguments),filterType(arguments[0],D));const a=rejectDeprecatedSignatures(...e)||validateLogFormatConfig(r.commands)||createLogTask(r);return this._runTask(a,t)}};function createLogTask(e){return logTask(e.splitter,e.fields,e.commands)}function rejectDeprecatedSignatures(e,t){return R(e)&&R(t)&&configurationErrorTask(`git.log(string, string) should be replaced with git.log({ from: string, to: string })`)}}var Nt;var jt=__esm({"src/lib/tasks/log.ts"(){vt();At();J();pe();Rt();Nt=(e=>{e[e["--pretty"]=0]="--pretty";e[e["max-count"]=1]="max-count";e[e["maxCount"]=2]="maxCount";e[e["n"]=3]="n";e[e["file"]=4]="file";e[e["format"]=5]="format";e[e["from"]=6]="from";e[e["to"]=7]="to";e[e["splitter"]=8]="splitter";e[e["symmetric"]=9]="symmetric";e[e["mailMap"]=10]="mailMap";e[e["multiLine"]=11]="multiLine";e[e["strictDate"]=12]="strictDate";return e})(Nt||{})}});var It,Ft;var $t=__esm({"src/lib/responses/MergeSummary.ts"(){It=class{constructor(e,t=null,r){this.reason=e;this.file=t;this.meta=r}toString(){return`${this.file}:${this.reason}`}};Ft=class{constructor(){this.conflicts=[];this.merges=[];this.result="success"}get failed(){return this.conflicts.length>0}get reason(){return this.result}toString(){if(this.conflicts.length){return`CONFLICTS: ${this.conflicts.join(", ")}`}return"OK"}}}});var Bt,Lt;var Mt=__esm({"src/lib/responses/PullSummary.ts"(){Bt=class{constructor(){this.remoteMessages={all:[]};this.created=[];this.deleted=[];this.files=[];this.deletions={};this.insertions={};this.summary={changes:0,deletions:0,insertions:0}}};Lt=class{constructor(){this.remote="";this.hash={local:"",remote:""};this.branch={local:"",remote:""};this.message=""}toString(){return this.message}}}});function objectEnumerationResult(e){return e.objects=e.objects||{compressing:0,counting:0,enumerating:0,packReused:0,reused:{count:0,delta:0},total:{count:0,delta:0}}}function asObjectCount(e){const t=/^\s*(\d+)/.exec(e);const r=/delta (\d+)/i.exec(e);return{count:asNumber(t&&t[1]||"0"),delta:asNumber(r&&r[1]||"0")}}var Ut;var Gt=__esm({"src/lib/parsers/parse-remote-objects.ts"(){J();Ut=[new G(/^remote:\s*(enumerating|counting|compressing) objects: (\d+),/i,((e,[t,r])=>{const a=t.toLowerCase();const n=objectEnumerationResult(e.remoteMessages);Object.assign(n,{[a]:asNumber(r)})})),new G(/^remote:\s*(enumerating|counting|compressing) objects: \d+% \(\d+\/(\d+)\),/i,((e,[t,r])=>{const a=t.toLowerCase();const n=objectEnumerationResult(e.remoteMessages);Object.assign(n,{[a]:asNumber(r)})})),new G(/total ([^,]+), reused ([^,]+), pack-reused (\d+)/i,((e,[t,r,a])=>{const n=objectEnumerationResult(e.remoteMessages);n.total=asObjectCount(t);n.reused=asObjectCount(r);n.packReused=asNumber(a)}))]}});function parseRemoteMessages(e,t){return parseStringResponse({remoteMessages:new qt},Vt,t)}var Vt,qt;var Ht=__esm({"src/lib/parsers/parse-remote-messages.ts"(){J();Gt();Vt=[new G(/^remote:\s*(.+)$/,((e,[t])=>{e.remoteMessages.all.push(t.trim());return false})),...Ut,new G([/create a (?:pull|merge) request/i,/\s(https?:\/\/\S+)$/],((e,[t])=>{e.remoteMessages.pullRequestUrl=t})),new G([/found (\d+) vulnerabilities.+\(([^)]+)\)/i,/\s(https?:\/\/\S+)$/],((e,[t,r,a])=>{e.remoteMessages.vulnerabilities={count:asNumber(t),summary:r,url:a}}))];qt=class{constructor(){this.all=[]}}}});function parsePullErrorResult(e,t){const r=parseStringResponse(new Lt,Yt,[e,t]);return r.message&&r}var zt,Kt,Wt,Jt,Yt,Qt,Xt;var Zt=__esm({"src/lib/parsers/parse-pull.ts"(){Mt();J();Ht();zt=/^\s*(.+?)\s+\|\s+\d+\s*(\+*)(-*)/;Kt=/(\d+)\D+((\d+)\D+\(\+\))?(\D+(\d+)\D+\(-\))?/;Wt=/^(create|delete) mode \d+ (.+)/;Jt=[new U(zt,((e,[t,r,a])=>{e.files.push(t);if(r){e.insertions[t]=r.length}if(a){e.deletions[t]=a.length}})),new U(Kt,((e,[t,,r,,a])=>{if(r!==void 0||a!==void 0){e.summary.changes=+t||0;e.summary.insertions=+r||0;e.summary.deletions=+a||0;return true}return false})),new U(Wt,((e,[t,r])=>{append(e.files,r);append(t==="create"?e.created:e.deleted,r)}))];Yt=[new U(/^from\s(.+)$/i,((e,[t])=>void(e.remote=t))),new U(/^fatal:\s(.+)$/,((e,[t])=>void(e.message=t))),new U(/([a-z0-9]+)\.\.([a-z0-9]+)\s+(\S+)\s+->\s+(\S+)$/,((e,[t,r,a,n])=>{e.branch.local=a;e.hash.local=t;e.branch.remote=n;e.hash.remote=r}))];Qt=(e,t)=>parseStringResponse(new Bt,Jt,[e,t]);Xt=(e,t)=>Object.assign(new Bt,Qt(e,t),parseRemoteMessages(e,t))}});var er,tr,rr;var ar=__esm({"src/lib/parsers/parse-merge.ts"(){$t();J();Zt();er=[new U(/^Auto-merging\s+(.+)$/,((e,[t])=>{e.merges.push(t)})),new U(/^CONFLICT\s+\((.+)\): Merge conflict in (.+)$/,((e,[t,r])=>{e.conflicts.push(new It(t,r))})),new U(/^CONFLICT\s+\((.+\/delete)\): (.+) deleted in (.+) and/,((e,[t,r,a])=>{e.conflicts.push(new It(t,r,{deleteRef:a}))})),new U(/^CONFLICT\s+\((.+)\):/,((e,[t])=>{e.conflicts.push(new It(t,null))})),new U(/^Automatic merge failed;\s+(.+)$/,((e,[t])=>{e.result=t}))];tr=(e,t)=>Object.assign(rr(e,t),Xt(e,t));rr=e=>parseStringResponse(new Ft,er,e)}});function mergeTask(e){if(!e.length){return configurationErrorTask("Git.merge requires at least one option")}return{commands:["merge",...e],format:"utf-8",parser(e,t){const r=tr(e,t);if(r.failed){throw new v(r)}return r}}}var nr=__esm({"src/lib/tasks/merge.ts"(){y();ar();pe()}});function pushResultPushedItem(e,t,r){const a=r.includes("deleted");const n=r.includes("tag")||/^refs\/tags/.test(e);const i=!r.includes("new");return{deleted:a,tag:n,branch:!n,new:!i,alreadyUpdated:i,local:e,remote:t}}var ir,sr,pr;var cr=__esm({"src/lib/parsers/parse-push.ts"(){J();Ht();ir=[new U(/^Pushing to (.+)$/,((e,[t])=>{e.repo=t})),new U(/^updating local tracking ref '(.+)'/,((e,[t])=>{e.ref=__spreadProps(__spreadValues({},e.ref||{}),{local:t})})),new U(/^[*-=]\s+([^:]+):(\S+)\s+\[(.+)]$/,((e,[t,r,a])=>{e.pushed.push(pushResultPushedItem(t,r,a))})),new U(/^Branch '([^']+)' set up to track remote branch '([^']+)' from '([^']+)'/,((e,[t,r,a])=>{e.branch=__spreadProps(__spreadValues({},e.branch||{}),{local:t,remote:r,remoteName:a})})),new U(/^([^:]+):(\S+)\s+([a-z0-9]+)\.\.([a-z0-9]+)$/,((e,[t,r,a,n])=>{e.update={head:{local:t,remote:r},hash:{from:a,to:n}}}))];sr=(e,t)=>{const r=pr(e,t);const a=parseRemoteMessages(e,t);return __spreadValues(__spreadValues({},r),a)};pr=(e,t)=>parseStringResponse({pushed:[]},ir,[e,t])}});var lr={};__export(lr,{pushTagsTask:()=>pushTagsTask,pushTask:()=>pushTask});function pushTagsTask(e={},t){append(t,"--tags");return pushTask(e,t)}function pushTask(e={},t){const r=["push",...t];if(e.branch){r.splice(1,0,e.branch)}if(e.remote){r.splice(1,0,e.remote)}remove(r,"-v");append(r,"--verbose");append(r,"--porcelain");return{commands:r,format:"utf-8",parser:sr}}var dr=__esm({"src/lib/tasks/push.ts"(){cr();J()}});var ur,mr;var fr=__esm({"src/lib/responses/FileStatusSummary.ts"(){ur=/^(.+) -> (.+)$/;mr=class{constructor(e,t,r){this.path=e;this.index=t;this.working_dir=r;if(t+r==="R"){const t=ur.exec(e)||[null,e,e];this.from=t[1]||"";this.path=t[2]||""}}}}});function renamedFile(e){const[t,r]=e.split(O);return{from:r||t,to:t}}function parser2(e,t,r){return[`${e}${t}`,r]}function conflicts(e,...t){return t.map((t=>parser2(e,t,((e,t)=>append(e.conflicted,t)))))}function splitLine(e,t){const r=t.trim();switch(" "){case r.charAt(2):return data(r.charAt(0),r.charAt(1),r.substr(3));case r.charAt(1):return data(" ",r.charAt(0),r.substr(2));default:return}function data(t,r,a){const n=`${t}${r}`;const i=gr.get(n);if(i){i(e,a)}if(n!=="##"&&n!=="!!"){e.files.push(new mr(a.replace(/\0.+$/,""),t,r))}}}var hr,gr,vr;var yr=__esm({"src/lib/responses/StatusSummary.ts"(){J();fr();hr=class{constructor(){this.not_added=[];this.conflicted=[];this.created=[];this.deleted=[];this.ignored=void 0;this.modified=[];this.renamed=[];this.files=[];this.staged=[];this.ahead=0;this.behind=0;this.current=null;this.tracking=null;this.detached=false;this.isClean=()=>!this.files.length}};gr=new Map([parser2(" ","A",((e,t)=>append(e.created,t))),parser2(" ","D",((e,t)=>append(e.deleted,t))),parser2(" ","M",((e,t)=>append(e.modified,t))),parser2("A"," ",((e,t)=>append(e.created,t)&&append(e.staged,t))),parser2("A","M",((e,t)=>append(e.created,t)&&append(e.staged,t)&&append(e.modified,t))),parser2("D"," ",((e,t)=>append(e.deleted,t)&&append(e.staged,t))),parser2("M"," ",((e,t)=>append(e.modified,t)&&append(e.staged,t))),parser2("M","M",((e,t)=>append(e.modified,t)&&append(e.staged,t))),parser2("R"," ",((e,t)=>{append(e.renamed,renamedFile(t))})),parser2("R","M",((e,t)=>{const r=renamedFile(t);append(e.renamed,r);append(e.modified,r.to)})),parser2("!","!",((e,t)=>{append(e.ignored=e.ignored||[],t)})),parser2("?","?",((e,t)=>append(e.not_added,t))),...conflicts("A","A","U"),...conflicts("D","D","U"),...conflicts("U","A","D","U"),["##",(e,t)=>{const r=/ahead (\d+)/;const a=/behind (\d+)/;const n=/^(.+?(?=(?:\.{3}|\s|$)))/;const i=/\.{3}(\S*)/;const s=/\son\s([\S]+)$/;let o;o=r.exec(t);e.ahead=o&&+o[1]||0;o=a.exec(t);e.behind=o&&+o[1]||0;o=n.exec(t);e.current=o&&o[1];o=i.exec(t);e.tracking=o&&o[1];o=s.exec(t);e.current=o&&o[1]||e.current;e.detached=/\(no branch\)/.test(t)}]]);vr=function(e){const t=e.split(O);const r=new hr;for(let e=0,a=t.length;e!br.includes(e)))];return{format:"utf-8",commands:t,parser(e){return vr(e)}}}var br;var wr=__esm({"src/lib/tasks/status.ts"(){yr();br=["--null","-z"]}});function versionResponse(e=0,t=0,r=0,a="",n=true){return Object.defineProperty({major:e,minor:t,patch:r,agent:a,installed:n},"toString",{value(){return`${this.major}.${this.minor}.${this.patch}`},configurable:false,enumerable:false})}function notInstalledResponse(){return versionResponse(0,0,0,"",false)}function version_default(){return{version(){return this._runTask({commands:["--version"],format:"utf-8",parser:versionParser,onError(e,t,r,a){if(e.exitCode===-2){return r(Buffer.from(_r))}a(t)}})}}}function versionParser(e){if(e===_r){return notInstalledResponse()}return parseStringResponse(versionResponse(0,0,0,e),xr,e)}var _r,xr;var Er=__esm({"src/lib/tasks/version.ts"(){J();_r="installed=false";xr=[new U(/version (\d+)\.(\d+)\.(\d+)(?:\s*\((.+)\))?/,((e,[t,r,a,n=""])=>{Object.assign(e,versionResponse(asNumber(t),asNumber(r),asNumber(a),n))})),new U(/version (\d+)\.(\d+)\.(\D+)(.+)?$/,((e,[t,r,a,n=""])=>{Object.assign(e,versionResponse(asNumber(t),asNumber(r),a,n))}))]}});var Tr={};__export(Tr,{SimpleGitApi:()=>Sr});var Sr;var kr=__esm({"src/lib/simple-git-api.ts"(){rt();nt();it();pt();be();Te();ct();ht();jt();nr();dr();wr();pe();Er();J();Sr=class{constructor(e){this._executor=e}_runTask(e,t){const r=this._executor.chain();const a=r.push(e);if(t){taskCallback(e,a,t)}return Object.create(this,{then:{value:a.then.bind(a)},catch:{value:a.catch.bind(a)},_executor:{value:r}})}add(e){return this._runTask(straightThroughStringTask(["add",...asArray(e)]),trailingFunctionArgument(arguments))}cwd(e){const t=trailingFunctionArgument(arguments);if(typeof e==="string"){return this._runTask(changeWorkingDirectoryTask(e,this._executor),t)}if(typeof(e==null?void 0:e.path)==="string"){return this._runTask(changeWorkingDirectoryTask(e.path,e.root&&this._executor||void 0),t)}return this._runTask(configurationErrorTask("Git.cwd: workingDirectory must be supplied as a string"),t)}hashObject(e,t){return this._runTask(hashObjectTask(e,t===true),trailingFunctionArgument(arguments))}init(e){return this._runTask(initTask(e===true,this._executor.cwd,getTrailingOptions(arguments)),trailingFunctionArgument(arguments))}merge(){return this._runTask(mergeTask(getTrailingOptions(arguments)),trailingFunctionArgument(arguments))}mergeFromTo(e,t){if(!(R(e)&&R(t))){return this._runTask(configurationErrorTask(`Git.mergeFromTo requires that the 'remote' and 'branch' arguments are supplied as strings`))}return this._runTask(mergeTask([e,t,...getTrailingOptions(arguments)]),trailingFunctionArgument(arguments,false))}outputHandler(e){this._executor.outputHandler=e;return this}push(){const e=pushTask({remote:filterType(arguments[0],R),branch:filterType(arguments[1],R)},getTrailingOptions(arguments));return this._runTask(e,trailingFunctionArgument(arguments))}stash(){return this._runTask(straightThroughStringTask(["stash",...getTrailingOptions(arguments)]),trailingFunctionArgument(arguments))}status(){return this._runTask(statusTask(getTrailingOptions(arguments)),trailingFunctionArgument(arguments))}};Object.assign(Sr.prototype,checkout_default(),commit_default(),config_default(),grep_default(),log_default(),version_default())}});var Or={};__export(Or,{Scheduler:()=>Ar});var Cr,Pr,Ar;var Dr=__esm({"src/lib/runners/scheduler.ts"(){J();Cr=r(9819);ze();Pr=(()=>{let e=0;return()=>{e++;const{promise:t,done:r}=(0,Cr.createDeferred)();return{promise:t,done:r,id:e}}})();Ar=class{constructor(e=2){this.concurrency=e;this.logger=createLogger("","scheduler");this.pending=[];this.running=[];this.logger(`Constructed, concurrency=%s`,e)}schedule(){if(!this.pending.length||this.running.length>=this.concurrency){this.logger(`Schedule attempt ignored, pending=%s running=%s concurrency=%s`,this.pending.length,this.running.length,this.concurrency);return}const e=append(this.running,this.pending.shift());this.logger(`Attempting id=%s`,e.id);e.done((()=>{this.logger(`Completing id=`,e.id);remove(this.running,e);this.schedule()}))}next(){const{promise:e,id:t}=append(this.pending,Pr());this.logger(`Scheduling id=%s`,t);this.schedule();return e}}}});var Rr={};__export(Rr,{applyPatchTask:()=>applyPatchTask});function applyPatchTask(e,t){return straightThroughStringTask(["apply",...t,...e])}var Nr=__esm({"src/lib/tasks/apply-patch.ts"(){pe()}});function branchDeletionSuccess(e,t){return{branch:e,hash:t,success:true}}function branchDeletionFailure(e){return{branch:e,hash:null,success:false}}var jr;var Ir=__esm({"src/lib/responses/BranchDeleteSummary.ts"(){jr=class{constructor(){this.all=[];this.branches={};this.errors=[]}get success(){return!this.errors.length}}}});function hasBranchDeletionError(e,t){return t===1&&$r.test(e)}var Fr,$r,Br,Lr;var Mr=__esm({"src/lib/parsers/parse-branch-delete.ts"(){Ir();J();Fr=/(\S+)\s+\(\S+\s([^)]+)\)/;$r=/^error[^']+'([^']+)'/m;Br=[new U(Fr,((e,[t,r])=>{const a=branchDeletionSuccess(t,r);e.all.push(a);e.branches[t]=a})),new U($r,((e,[t])=>{const r=branchDeletionFailure(t);e.errors.push(r);e.all.push(r);e.branches[t]=r}))];Lr=(e,t)=>parseStringResponse(new jr,Br,[e,t])}});var Ur;var Gr=__esm({"src/lib/responses/BranchSummary.ts"(){Ur=class{constructor(){this.all=[];this.branches={};this.current="";this.detached=false}push(e,t,r,a,n){if(e==="*"){this.detached=t;this.current=r}this.all.push(r);this.branches[r]={current:e==="*",linkedWorkTree:e==="+",name:r,commit:a,label:n}}}}});function branchStatus(e){return e?e.charAt(0):""}function parseBranchSummary(e){return parseStringResponse(new Ur,Vr,e)}var Vr;var qr=__esm({"src/lib/parsers/parse-branch.ts"(){Gr();J();Vr=[new U(/^([*+]\s)?\((?:HEAD )?detached (?:from|at) (\S+)\)\s+([a-z0-9]+)\s(.*)$/,((e,[t,r,a,n])=>{e.push(branchStatus(t),true,r,a,n)})),new U(/^([*+]\s)?(\S+)\s+([a-z0-9]+)\s?(.*)$/s,((e,[t,r,a,n])=>{e.push(branchStatus(t),false,r,a,n)}))]}});var Hr={};__export(Hr,{branchLocalTask:()=>branchLocalTask,branchTask:()=>branchTask,containsDeleteBranchCommand:()=>containsDeleteBranchCommand,deleteBranchTask:()=>deleteBranchTask,deleteBranchesTask:()=>deleteBranchesTask});function containsDeleteBranchCommand(e){const t=["-d","-D","--delete"];return e.some((e=>t.includes(e)))}function branchTask(e){const t=containsDeleteBranchCommand(e);const r=["branch",...e];if(r.length===1){r.push("-a")}if(!r.includes("-v")){r.splice(1,0,"-v")}return{format:"utf-8",commands:r,parser(e,r){if(t){return Lr(e,r).all[0]}return parseBranchSummary(e)}}}function branchLocalTask(){const e=parseBranchSummary;return{format:"utf-8",commands:["branch","-v"],parser:e}}function deleteBranchesTask(e,t=false){return{format:"utf-8",commands:["branch","-v",t?"-D":"-d",...e],parser(e,t){return Lr(e,t)},onError({exitCode:e,stdOut:t},r,a,n){if(!hasBranchDeletionError(String(r),e)){return n(r)}a(t)}}}function deleteBranchTask(e,t=false){const r={format:"utf-8",commands:["branch","-v",t?"-D":"-d",e],parser(t,r){return Lr(t,r).branches[e]},onError({exitCode:e,stdErr:t,stdOut:a},n,i,s){if(!hasBranchDeletionError(String(n),e)){return s(n)}throw new v(r.parser(bufferToString(a),bufferToString(t)),String(n))}};return r}var zr=__esm({"src/lib/tasks/branch.ts"(){y();Mr();qr();J()}});var Kr;var Wr=__esm({"src/lib/responses/CheckIgnore.ts"(){Kr=e=>e.split(/\n/g).map((e=>e.trim())).filter((e=>!!e))}});var Jr={};__export(Jr,{checkIgnoreTask:()=>checkIgnoreTask});function checkIgnoreTask(e){return{commands:["check-ignore",...e],format:"utf-8",parser:Kr}}var Yr=__esm({"src/lib/tasks/check-ignore.ts"(){Wr()}});var Qr={};__export(Qr,{cloneMirrorTask:()=>cloneMirrorTask,cloneTask:()=>cloneTask});function disallowedCommand(e){return/^--upload-pack(=|$)/.test(e)}function cloneTask(e,t,r){const a=["clone",...r];R(e)&&a.push(e);R(t)&&a.push(t);const n=a.find(disallowedCommand);if(n){return configurationErrorTask(`git.fetch: potential exploit argument blocked.`)}return straightThroughStringTask(a)}function cloneMirrorTask(e,t,r){append(r,"--mirror");return cloneTask(e,t,r)}var Xr=__esm({"src/lib/tasks/clone.ts"(){pe();J()}});function parseFetchResult(e,t){const r={raw:e,remote:null,branches:[],tags:[],updated:[],deleted:[]};return parseStringResponse(r,Zr,[e,t])}var Zr;var ea=__esm({"src/lib/parsers/parse-fetch.ts"(){J();Zr=[new U(/From (.+)$/,((e,[t])=>{e.remote=t})),new U(/\* \[new branch]\s+(\S+)\s*-> (.+)$/,((e,[t,r])=>{e.branches.push({name:t,tracking:r})})),new U(/\* \[new tag]\s+(\S+)\s*-> (.+)$/,((e,[t,r])=>{e.tags.push({name:t,tracking:r})})),new U(/- \[deleted]\s+\S+\s*-> (.+)$/,((e,[t])=>{e.deleted.push({tracking:t})})),new U(/\s*([^.]+)\.\.(\S+)\s+(\S+)\s*-> (.+)$/,((e,[t,r,a,n])=>{e.updated.push({name:a,tracking:n,to:r,from:t})}))]}});var ta={};__export(ta,{fetchTask:()=>fetchTask});function disallowedCommand2(e){return/^--upload-pack(=|$)/.test(e)}function fetchTask(e,t,r){const a=["fetch",...r];if(e&&t){a.push(e,t)}const n=a.find(disallowedCommand2);if(n){return configurationErrorTask(`git.fetch: potential exploit argument blocked.`)}return{commands:a,format:"utf-8",parser:parseFetchResult}}var ra=__esm({"src/lib/tasks/fetch.ts"(){ea();pe()}});function parseMoveResult(e){return parseStringResponse({moves:[]},aa,e)}var aa;var na=__esm({"src/lib/parsers/parse-move.ts"(){J();aa=[new U(/^Renaming (.+) to (.+)$/,((e,[t,r])=>{e.moves.push({from:t,to:r})}))]}});var ia={};__export(ia,{moveTask:()=>moveTask});function moveTask(e,t){return{commands:["mv","-v",...asArray(e),t],format:"utf-8",parser:parseMoveResult}}var sa=__esm({"src/lib/tasks/move.ts"(){na();J()}});var oa={};__export(oa,{pullTask:()=>pullTask});function pullTask(e,t,r){const a=["pull",...r];if(e&&t){a.splice(1,0,e,t)}return{commands:a,format:"utf-8",parser(e,t){return Xt(e,t)},onError(e,t,r,a){const n=parsePullErrorResult(bufferToString(e.stdOut),bufferToString(e.stdErr));if(n){return a(new v(n))}a(t)}}}var pa=__esm({"src/lib/tasks/pull.ts"(){y();Zt();J()}});function parseGetRemotes(e){const t={};forEach(e,(([e])=>t[e]={name:e}));return Object.values(t)}function parseGetRemotesVerbose(e){const t={};forEach(e,(([e,r,a])=>{if(!t.hasOwnProperty(e)){t[e]={name:e,refs:{fetch:"",push:""}}}if(a&&r){t[e].refs[a.replace(/[^a-z]/g,"")]=r}}));return Object.values(t)}function forEach(e,t){forEachLineWithContent(e,(e=>t(e.split(/\s+/))))}var ca=__esm({"src/lib/responses/GetRemoteSummary.ts"(){J()}});var la={};__export(la,{addRemoteTask:()=>addRemoteTask,getRemotesTask:()=>getRemotesTask,listRemotesTask:()=>listRemotesTask,remoteTask:()=>remoteTask,removeRemoteTask:()=>removeRemoteTask});function addRemoteTask(e,t,r=[]){return straightThroughStringTask(["remote","add",...r,e,t])}function getRemotesTask(e){const t=["remote"];if(e){t.push("-v")}return{commands:t,format:"utf-8",parser:e?parseGetRemotesVerbose:parseGetRemotes}}function listRemotesTask(e=[]){const t=[...e];if(t[0]!=="ls-remote"){t.unshift("ls-remote")}return straightThroughStringTask(t)}function remoteTask(e=[]){const t=[...e];if(t[0]!=="remote"){t.unshift("remote")}return straightThroughStringTask(t)}function removeRemoteTask(e){return straightThroughStringTask(["remote","remove",e])}var da=__esm({"src/lib/tasks/remote.ts"(){ca();pe()}});var ua={};__export(ua,{stashListTask:()=>stashListTask});function stashListTask(e={},t){const r=parseLogOptions(e);const a=["stash","list",...r.commands,...t];const n=createListLogSummaryParser(r.splitter,r.fields,logFormatFromCommand(a));return validateLogFormatConfig(a)||{commands:a,format:"utf-8",parser:n}}var ma=__esm({"src/lib/tasks/stash-list.ts"(){vt();At();Rt();jt()}});var fa={};__export(fa,{addSubModuleTask:()=>addSubModuleTask,initSubModuleTask:()=>initSubModuleTask,subModuleTask:()=>subModuleTask,updateSubModuleTask:()=>updateSubModuleTask});function addSubModuleTask(e,t){return subModuleTask(["add",e,t])}function initSubModuleTask(e){return subModuleTask(["init",...e])}function subModuleTask(e){const t=[...e];if(t[0]!=="submodule"){t.unshift("submodule")}return straightThroughStringTask(t)}function updateSubModuleTask(e){return subModuleTask(["update",...e])}var ha=__esm({"src/lib/tasks/sub-module.ts"(){pe()}});function singleSorted(e,t){const r=isNaN(e);const a=isNaN(t);if(r!==a){return r?1:-1}return r?sorted(e,t):0}function sorted(e,t){return e===t?0:e>t?1:-1}function trimmed(e){return e.trim()}function toNumber(e){if(typeof e==="string"){return parseInt(e.replace(/^\D+/g,""),10)||0}return 0}var ga,va;var ya=__esm({"src/lib/responses/TagList.ts"(){ga=class{constructor(e,t){this.all=e;this.latest=t}};va=function(e,t=false){const r=e.split("\n").map(trimmed).filter(Boolean);if(!t){r.sort((function(e,t){const r=e.split(".");const a=t.split(".");if(r.length===1||a.length===1){return singleSorted(toNumber(r[0]),toNumber(a[0]))}for(let e=0,t=Math.max(r.length,a.length);ee.indexOf(".")>=0));return new ga(r,a)}}});var ba={};__export(ba,{addAnnotatedTagTask:()=>addAnnotatedTagTask,addTagTask:()=>addTagTask,tagListTask:()=>tagListTask});function tagListTask(e=[]){const t=e.some((e=>/^--sort=/.test(e)));return{format:"utf-8",commands:["tag","-l",...e],parser(e){return va(e,t)}}}function addTagTask(e){return{format:"utf-8",commands:["tag",e],parser(){return{name:e}}}}function addAnnotatedTagTask(e,t){return{format:"utf-8",commands:["tag","-a","-m",t,e],parser(){return{name:e}}}}var wa=__esm({"src/lib/tasks/tag.ts"(){ya()}});var _a=__commonJS({"src/git.js"(e,t){var{GitExecutor:r}=(tt(),m(Ze));var{SimpleGitApi:a}=(kr(),m(Tr));var{Scheduler:n}=(Dr(),m(Or));var{configurationErrorTask:i}=(pe(),m(se));var{asArray:s,filterArray:o,filterPrimitives:p,filterString:c,filterStringOrStringArray:l,filterType:d,getTrailingOptions:u,trailingFunctionArgument:h,trailingOptionsArgument:g}=(J(),m(W));var{applyPatchTask:v}=(Nr(),m(Rr));var{branchTask:y,branchLocalTask:b,deleteBranchesTask:w,deleteBranchTask:x}=(zr(),m(Hr));var{checkIgnoreTask:E}=(Yr(),m(Jr));var{checkIsRepoTask:T}=(ee(),m(Y));var{cloneTask:S,cloneMirrorTask:k}=(Xr(),m(Qr));var{cleanWithOptionsTask:O,isCleanOptionsArray:C}=(he(),m(ce));var{diffSummaryTask:P}=(Rt(),m(Dt));var{fetchTask:A}=(ra(),m(ta));var{moveTask:D}=(sa(),m(ia));var{pullTask:R}=(pa(),m(oa));var{pushTagsTask:N}=(dr(),m(lr));var{addRemoteTask:j,getRemotesTask:I,listRemotesTask:F,remoteTask:$,removeRemoteTask:B}=(da(),m(la));var{getResetMode:L,resetTask:M}=(Ce(),m(Se));var{stashListTask:U}=(ma(),m(ua));var{addSubModuleTask:G,initSubModuleTask:V,subModuleTask:q,updateSubModuleTask:H}=(ha(),m(fa));var{addAnnotatedTagTask:z,addTagTask:K,tagListTask:Q}=(wa(),m(ba));var{straightThroughBufferTask:X,straightThroughStringTask:Z}=(pe(),m(se));function Git2(e,t){this._executor=new r(e.binary,e.baseDir,new n(e.maxConcurrentProcesses),t);this._trimmed=e.trimmed}(Git2.prototype=Object.create(a.prototype)).constructor=Git2;Git2.prototype.customBinary=function(e){this._executor.binary=e;return this};Git2.prototype.env=function(e,t){if(arguments.length===1&&typeof e==="object"){this._executor.env=e}else{(this._executor.env=this._executor.env||{})[e]=t}return this};Git2.prototype.stashList=function(e){return this._runTask(U(g(arguments)||{},o(e)&&e||[]),h(arguments))};function createCloneTask(e,t,r,a){if(typeof r!=="string"){return i(`git.${e}() requires a string 'repoPath'`)}return t(r,d(a,c),u(arguments))}Git2.prototype.clone=function(){return this._runTask(createCloneTask("clone",S,...arguments),h(arguments))};Git2.prototype.mirror=function(){return this._runTask(createCloneTask("mirror",k,...arguments),h(arguments))};Git2.prototype.mv=function(e,t){return this._runTask(D(e,t),h(arguments))};Git2.prototype.checkoutLatestTag=function(e){var t=this;return this.pull((function(){t.tags((function(r,a){t.checkout(a.latest,e)}))}))};Git2.prototype.pull=function(e,t,r,a){return this._runTask(R(d(e,c),d(t,c),u(arguments)),h(arguments))};Git2.prototype.fetch=function(e,t){return this._runTask(A(d(e,c),d(t,c),u(arguments)),h(arguments))};Git2.prototype.silent=function(e){console.warn("simple-git deprecation notice: git.silent: logging should be configured using the `debug` library / `DEBUG` environment variable, this will be an error in version 3");return this};Git2.prototype.tags=function(e,t){return this._runTask(Q(u(arguments)),h(arguments))};Git2.prototype.rebase=function(){return this._runTask(Z(["rebase",...u(arguments)]),h(arguments))};Git2.prototype.reset=function(e){return this._runTask(M(L(e),u(arguments)),h(arguments))};Git2.prototype.revert=function(e){const t=h(arguments);if(typeof e!=="string"){return this._runTask(i("Commit must be a string"),t)}return this._runTask(Z(["revert",...u(arguments,0,true),e]),t)};Git2.prototype.addTag=function(e){const t=typeof e==="string"?K(e):i("Git.addTag requires a tag name");return this._runTask(t,h(arguments))};Git2.prototype.addAnnotatedTag=function(e,t){return this._runTask(z(e,t),h(arguments))};Git2.prototype.deleteLocalBranch=function(e,t,r){return this._runTask(x(e,typeof t==="boolean"?t:false),h(arguments))};Git2.prototype.deleteLocalBranches=function(e,t,r){return this._runTask(w(e,typeof t==="boolean"?t:false),h(arguments))};Git2.prototype.branch=function(e,t){return this._runTask(y(u(arguments)),h(arguments))};Git2.prototype.branchLocal=function(e){return this._runTask(b(),h(arguments))};Git2.prototype.raw=function(e){const t=!Array.isArray(e);const r=[].slice.call(t?arguments:e,0);for(let e=0;eesModuleFactory,gitExportFactory:()=>gitExportFactory,gitInstanceFactory:()=>gitInstanceFactory});function esModuleFactory(e){return Object.defineProperties(e,{__esModule:{value:true},default:{value:e}})}function gitExportFactory(e){return Object.assign(e.bind(null),Pe)}function gitInstanceFactory(e,t){const r=new Be;const a=createInstanceConfig(e&&(typeof e==="string"?{baseDir:e}:e)||{},t);if(!folderExists(a.baseDir)){throw new b(a,`Cannot use simple-git on a directory that does not exist`)}if(Array.isArray(a.config)){r.add(commandConfigPrefixingPlugin(a.config))}r.add(blockUnsafeOperationsPlugin(a.unsafe));r.add(completionDetectionPlugin(a.completion));a.abort&&r.add(abortPlugin(a.abort));a.progress&&r.add(progressMonitorPlugin(a.progress));a.timeout&&r.add(timeoutPlugin(a.timeout));a.spawnOptions&&r.add(spawnOptionsPlugin(a.spawnOptions));r.add(errorDetectionPlugin(errorDetectionHandler(true)));a.errors&&r.add(errorDetectionPlugin(a.errors));return new Ea(a,r)}var Ea;var Ta=__esm({"src/lib/git-factory.ts"(){Ae();qe();J();Ea=_a()}});var Sa={};__export(Sa,{gitP:()=>gitP});function gitP(...e){let t;let r=Promise.resolve();try{t=gitInstanceFactory(...e)}catch(e){r=Promise.reject(e)}function builderReturn(){return a}function chainReturn(){return r}const a=[...ka,...Oa].reduce(((e,r)=>{const a=Oa.includes(r);const n=a?asyncWrapper(r,t):syncWrapper(r,t,e);const i=a?chainReturn:builderReturn;Object.defineProperty(e,r,{enumerable:false,configurable:false,value:t?n:i});return e}),{});return a;function asyncWrapper(e,t){return function(...a){if(typeof a[a.length]==="function"){throw new TypeError("Promise interface requires that handlers are not supplied inline, trailing function not allowed in call to "+e)}return r.then((function(){return new Promise((function(r,n){const callback=(e,t)=>{if(e){return n(toError(e))}r(t)};a.push(callback);t[e].apply(t,a)}))}))}}function syncWrapper(e,t,r){return(...a)=>{t[e](...a);return r}}}function toError(e){if(e instanceof Error){return e}if(typeof e==="string"){return new Error(e)}return new v(e)}var ka,Oa;var Ca=__esm({"src/lib/runners/promise-wrapped.ts"(){y();Ta();ka=["customBinary","env","outputHandler","silent"];Oa=["add","addAnnotatedTag","addConfig","addRemote","addTag","applyPatch","binaryCatFile","branch","branchLocal","catFile","checkIgnore","checkIsRepo","checkout","checkoutBranch","checkoutLatestTag","checkoutLocalBranch","clean","clone","commit","cwd","deleteLocalBranch","deleteLocalBranches","diff","diffSummary","exec","fetch","getRemotes","init","listConfig","listRemote","log","merge","mergeFromTo","mirror","mv","pull","push","pushTags","raw","rebase","remote","removeRemote","reset","revert","revparse","rm","rmKeepLocal","show","stash","stashList","status","subModule","submoduleAdd","submoduleInit","submoduleUpdate","tag","tags","updateServerInfo"]}});var{gitP:Pa}=(Ca(),m(Sa));var{esModuleFactory:Aa,gitInstanceFactory:Da,gitExportFactory:Ra}=(Ta(),m(xa));var Na=Aa(Ra(Da));e.exports=Object.assign(Na,{gitP:Pa,simpleGit:Na})},9318:(e,t,r)=>{"use strict";const a=r(2037);const n=r(6224);const i=r(1621);const{env:s}=process;let o;if(i("no-color")||i("no-colors")||i("color=false")||i("color=never")){o=0}else if(i("color")||i("colors")||i("color=true")||i("color=always")){o=1}if("FORCE_COLOR"in s){if(s.FORCE_COLOR==="true"){o=1}else if(s.FORCE_COLOR==="false"){o=0}else{o=s.FORCE_COLOR.length===0?1:Math.min(parseInt(s.FORCE_COLOR,10),3)}}function translateLevel(e){if(e===0){return false}return{level:e,hasBasic:true,has256:e>=2,has16m:e>=3}}function supportsColor(e,t){if(o===0){return 0}if(i("color=16m")||i("color=full")||i("color=truecolor")){return 3}if(i("color=256")){return 2}if(e&&!t&&o===undefined){return 0}const r=o||0;if(s.TERM==="dumb"){return r}if(process.platform==="win32"){const e=a.release().split(".");if(Number(e[0])>=10&&Number(e[2])>=10586){return Number(e[2])>=14931?3:2}return 1}if("CI"in s){if(["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some((e=>e in s))||s.CI_NAME==="codeship"){return 1}return r}if("TEAMCITY_VERSION"in s){return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(s.TEAMCITY_VERSION)?1:0}if(s.COLORTERM==="truecolor"){return 3}if("TERM_PROGRAM"in s){const e=parseInt((s.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(s.TERM_PROGRAM){case"iTerm.app":return e>=3?3:2;case"Apple_Terminal":return 2}}if(/-256(color)?$/i.test(s.TERM)){return 2}if(/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(s.TERM)){return 1}if("COLORTERM"in s){return 1}return r}function getSupportLevel(e){const t=supportsColor(e,e&&e.isTTY);return translateLevel(t)}e.exports={supportsColor:getSupportLevel,stdout:translateLevel(supportsColor(true,n.isatty(1))),stderr:translateLevel(supportsColor(true,n.isatty(2)))}},8065:(e,t,r)=>{"use strict";const{promisify:a}=r(3837);const n=r(8517);e.exports.fileSync=n.fileSync;const i=a(((e,t)=>n.file(e,((e,r,n,i)=>e?t(e):t(undefined,{path:r,fd:n,cleanup:a(i)})))));e.exports.file=async e=>i(e);e.exports.withFile=async function withFile(t,r){const{path:a,fd:n,cleanup:i}=await e.exports.file(r);try{return await t({path:a,fd:n})}finally{await i()}};e.exports.dirSync=n.dirSync;const s=a(((e,t)=>n.dir(e,((e,r,n)=>e?t(e):t(undefined,{path:r,cleanup:a(n)})))));e.exports.dir=async e=>s(e);e.exports.withDir=async function withDir(t,r){const{path:a,cleanup:n}=await e.exports.dir(r);try{return await t({path:a})}finally{await n()}};e.exports.tmpNameSync=n.tmpNameSync;e.exports.tmpName=a(n.tmpName);e.exports.tmpdir=n.tmpdir;e.exports.setGracefulCleanup=n.setGracefulCleanup},8517:(e,t,r)=>{ /*! * Tmp * @@ -46,6 +46,6 @@ var e;(function(e){(function(t){var r=typeof global==="object"?global:typeof sel * * MIT Licensed */ -const a=r(7147);const i=r(2037);const n=r(1017);const s=r(6113);const o={fs:a.constants,os:i.constants};const p=r(4959);const c="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",l=/XXXXXX/,d=3,u=(o.O_CREAT||o.fs.O_CREAT)|(o.O_EXCL||o.fs.O_EXCL)|(o.O_RDWR||o.fs.O_RDWR),m=i.platform()==="win32",h=o.EBADF||o.os.errno.EBADF,g=o.ENOENT||o.os.errno.ENOENT,v=448,y=384,b="exit",w=[],x=a.rmdirSync.bind(a),E=p.sync;let S=false;function tmpName(e,t){const r=_parseArguments(e,t),i=r[0],n=r[1];try{_assertAndSanitizeOptions(i)}catch(e){return n(e)}let s=i.tries;(function _getUniqueName(){try{const e=_generateTmpName(i);a.stat(e,(function(t){if(!t){if(s-- >0)return _getUniqueName();return n(new Error("Could not get a unique tmp filename, max tries reached "+e))}n(null,e)}))}catch(e){n(e)}})()}function tmpNameSync(e){const t=_parseArguments(e),r=t[0];_assertAndSanitizeOptions(r);let i=r.tries;do{const e=_generateTmpName(r);try{a.statSync(e)}catch(t){return e}}while(i-- >0);throw new Error("Could not get a unique tmp filename, max tries reached")}function file(e,t){const r=_parseArguments(e,t),i=r[0],n=r[1];tmpName(i,(function _tmpNameCreated(e,t){if(e)return n(e);a.open(t,u,i.mode||y,(function _fileCreated(e,r){if(e)return n(e);if(i.discardDescriptor){return a.close(r,(function _discardCallback(e){return n(e,t,undefined,_prepareTmpFileRemoveCallback(t,-1,i,false))}))}else{const e=i.discardDescriptor||i.detachDescriptor;n(null,t,r,_prepareTmpFileRemoveCallback(t,e?-1:r,i,false))}}))}))}function fileSync(e){const t=_parseArguments(e),r=t[0];const i=r.discardDescriptor||r.detachDescriptor;const n=tmpNameSync(r);var s=a.openSync(n,u,r.mode||y);if(r.discardDescriptor){a.closeSync(s);s=undefined}return{name:n,fd:s,removeCallback:_prepareTmpFileRemoveCallback(n,i?-1:s,r,true)}}function dir(e,t){const r=_parseArguments(e,t),i=r[0],n=r[1];tmpName(i,(function _tmpNameCreated(e,t){if(e)return n(e);a.mkdir(t,i.mode||v,(function _dirCreated(e){if(e)return n(e);n(null,t,_prepareTmpDirRemoveCallback(t,i,false))}))}))}function dirSync(e){const t=_parseArguments(e),r=t[0];const i=tmpNameSync(r);a.mkdirSync(i,r.mode||v);return{name:i,removeCallback:_prepareTmpDirRemoveCallback(i,r,true)}}function _removeFileAsync(e,t){const _handler=function(e){if(e&&!_isENOENT(e)){return t(e)}t()};if(0<=e[0])a.close(e[0],(function(){a.unlink(e[1],_handler)}));else a.unlink(e[1],_handler)}function _removeFileSync(e){let t=null;try{if(0<=e[0])a.closeSync(e[0])}catch(e){if(!_isEBADF(e)&&!_isENOENT(e))throw e}finally{try{a.unlinkSync(e[1])}catch(e){if(!_isENOENT(e))t=e}}if(t!==null){throw t}}function _prepareTmpFileRemoveCallback(e,t,r,a){const i=_prepareRemoveCallback(_removeFileSync,[t,e],a);const n=_prepareRemoveCallback(_removeFileAsync,[t,e],a,i);if(!r.keep)w.unshift(i);return a?i:n}function _prepareTmpDirRemoveCallback(e,t,r){const i=t.unsafeCleanup?p:a.rmdir.bind(a);const n=t.unsafeCleanup?E:x;const s=_prepareRemoveCallback(n,e,r);const o=_prepareRemoveCallback(i,e,r,s);if(!t.keep)w.unshift(s);return r?s:o}function _prepareRemoveCallback(e,t,r,a){let i=false;return function _cleanupCallback(n){if(!i){const s=a||_cleanupCallback;const o=w.indexOf(s);if(o>=0)w.splice(o,1);i=true;if(r||e===x||e===E){return e(t)}else{return e(t,n||function(){})}}}}function _garbageCollector(){if(!S)return;while(w.length){try{w[0]()}catch(e){}}}function _randomChars(e){let t=[],r=null;try{r=s.randomBytes(e)}catch(t){r=s.pseudoRandomBytes(e)}for(var a=0;a{"use strict";var a=r(5477);var i=r(2020);var n={TRANSITIONAL:0,NONTRANSITIONAL:1};function normalize(e){return e.split("\0").map((function(e){return e.normalize("NFC")})).join("\0")}function findStatus(e){var t=0;var r=i.length-1;while(t<=r){var a=Math.floor((t+r)/2);var n=i[a];if(n[0][0]<=e&&n[0][1]>=e){return n}else if(n[0][0]>e){r=a-1}else{t=a+1}}return null}var s=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;function countSymbols(e){return e.replace(s,"_").length}function mapChars(e,t,r){var a=false;var i="";var s=countSymbols(e);for(var o=0;o253||o.length===0){n.error=true}for(var p=0;p63||s.length===0){n.error=true;break}}}if(n.error)return null;return s.join(".")};e.exports.toUnicode=function(e,t){var r=processing(e,t,n.NONTRANSITIONAL);return{domain:r.string,error:r.error}};e.exports.PROCESSING_OPTIONS=n},4294:(e,t,r)=>{e.exports=r(4219)},4219:(e,t,r)=>{"use strict";var a=r(1808);var i=r(4404);var n=r(3685);var s=r(5687);var o=r(2361);var p=r(9491);var c=r(3837);t.httpOverHttp=httpOverHttp;t.httpsOverHttp=httpsOverHttp;t.httpOverHttps=httpOverHttps;t.httpsOverHttps=httpsOverHttps;function httpOverHttp(e){var t=new TunnelingAgent(e);t.request=n.request;return t}function httpsOverHttp(e){var t=new TunnelingAgent(e);t.request=n.request;t.createSocket=createSecureSocket;t.defaultPort=443;return t}function httpOverHttps(e){var t=new TunnelingAgent(e);t.request=s.request;return t}function httpsOverHttps(e){var t=new TunnelingAgent(e);t.request=s.request;t.createSocket=createSecureSocket;t.defaultPort=443;return t}function TunnelingAgent(e){var t=this;t.options=e||{};t.proxyOptions=t.options.proxy||{};t.maxSockets=t.options.maxSockets||n.Agent.defaultMaxSockets;t.requests=[];t.sockets=[];t.on("free",(function onFree(e,r,a,i){var n=toOptions(r,a,i);for(var s=0,o=t.requests.length;s=this.maxSockets){i.requests.push(n);return}i.createSocket(n,(function(t){t.on("free",onFree);t.on("close",onCloseOrRemove);t.on("agentRemove",onCloseOrRemove);e.onSocket(t);function onFree(){i.emit("free",t,n)}function onCloseOrRemove(e){i.removeSocket(t);t.removeListener("free",onFree);t.removeListener("close",onCloseOrRemove);t.removeListener("agentRemove",onCloseOrRemove)}}))};TunnelingAgent.prototype.createSocket=function createSocket(e,t){var r=this;var a={};r.sockets.push(a);var i=mergeOptions({},r.proxyOptions,{method:"CONNECT",path:e.host+":"+e.port,agent:false,headers:{host:e.host+":"+e.port}});if(e.localAddress){i.localAddress=e.localAddress}if(i.proxyAuth){i.headers=i.headers||{};i.headers["Proxy-Authorization"]="Basic "+new Buffer(i.proxyAuth).toString("base64")}l("making CONNECT request");var n=r.request(i);n.useChunkedEncodingByDefault=false;n.once("response",onResponse);n.once("upgrade",onUpgrade);n.once("connect",onConnect);n.once("error",onError);n.end();function onResponse(e){e.upgrade=true}function onUpgrade(e,t,r){process.nextTick((function(){onConnect(e,t,r)}))}function onConnect(i,s,o){n.removeAllListeners();s.removeAllListeners();if(i.statusCode!==200){l("tunneling socket could not be established, statusCode=%d",i.statusCode);s.destroy();var p=new Error("tunneling socket could not be established, "+"statusCode="+i.statusCode);p.code="ECONNRESET";e.request.emit("error",p);r.removeSocket(a);return}if(o.length>0){l("got illegal response body from proxy");s.destroy();var p=new Error("got illegal response body from proxy");p.code="ECONNRESET";e.request.emit("error",p);r.removeSocket(a);return}l("tunneling connection has established");r.sockets[r.sockets.indexOf(a)]=s;return t(s)}function onError(t){n.removeAllListeners();l("tunneling socket could not be established, cause=%s\n",t.message,t.stack);var i=new Error("tunneling socket could not be established, "+"cause="+t.message);i.code="ECONNRESET";e.request.emit("error",i);r.removeSocket(a)}};TunnelingAgent.prototype.removeSocket=function removeSocket(e){var t=this.sockets.indexOf(e);if(t===-1){return}this.sockets.splice(t,1);var r=this.requests.shift();if(r){this.createSocket(r,(function(e){r.request.onSocket(e)}))}};function createSecureSocket(e,t){var r=this;TunnelingAgent.prototype.createSocket.call(r,e,(function(a){var n=e.request.getHeader("host");var s=mergeOptions({},r.options,{socket:a,servername:n?n.replace(/:.*$/,""):e.host});var o=i.connect(0,s);r.sockets[r.sockets.indexOf(a)]=o;t(o)}))}function toOptions(e,t,r){if(typeof e==="string"){return{host:e,port:t,localAddress:r}}return e}function mergeOptions(e){for(var t=1,r=arguments.length;t{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.ContainerInstance=void 0;const a=r(5430);const i=r(7107);const n=r(9466);const s=r(8548);const o=r(9197);class ContainerInstance{constructor(e){this.services=[];this.id=e}has(e){return!!this.findService(e)}get(e){const t=a.Container.of(undefined);const r=t.findService(e);const n=this.findService(e);if(r&&r.global===true)return this.getServiceValue(r);if(n)return this.getServiceValue(n);if(r&&this!==t){const e={...r};e.value=o.EMPTY_VALUE;this.set(e);const t=this.getServiceValue(e);this.set({...e,value:t});return t}if(r)return this.getServiceValue(r);throw new i.ServiceNotFoundError(e)}getMany(e){return this.findAllServices(e).map((e=>this.getServiceValue(e)))}set(e,t){if(e instanceof Array){e.forEach((e=>this.set(e)));return this}if(typeof e==="string"||e instanceof s.Token){return this.set({id:e,type:null,value:t,factory:undefined,global:false,multiple:false,eager:false,transient:false})}if(typeof e==="function"){return this.set({id:e,type:e,value:t,factory:undefined,global:false,multiple:false,eager:false,transient:false})}const r={id:new s.Token("UNREACHABLE"),type:null,factory:undefined,value:o.EMPTY_VALUE,global:false,multiple:false,eager:false,transient:false,...e};const a=this.findService(r.id);if(a&&a.multiple!==true){Object.assign(a,r)}else{this.services.push(r)}if(r.eager){this.get(r.id)}return this}remove(e){if(Array.isArray(e)){e.forEach((e=>this.remove(e)))}else{this.services=this.services.filter((t=>{if(t.id===e){this.destroyServiceInstance(t);return false}return true}))}return this}reset(e={strategy:"resetValue"}){switch(e.strategy){case"resetValue":this.services.forEach((e=>this.destroyServiceInstance(e)));break;case"resetServices":this.services.forEach((e=>this.destroyServiceInstance(e)));this.services=[];break;default:throw new Error("Received invalid reset strategy.")}return this}findAllServices(e){return this.services.filter((t=>t.id===e))}findService(e){return this.services.find((t=>t.id===e))}getServiceValue(e){var t;let r=o.EMPTY_VALUE;if(e.value!==o.EMPTY_VALUE){return e.value}if(!e.factory&&!e.type){throw new n.CannotInstantiateValueError(e.id)}if(e.factory){if(e.factory instanceof Array){let t;try{t=this.get(e.factory[0])}catch(r){if(r instanceof i.ServiceNotFoundError){t=new e.factory[0]}else{throw r}}r=t[e.factory[1]](this,e.id)}else{r=e.factory(this,e.id)}}if(!e.factory&&e.type){const a=e.type;const i=((t=Reflect)===null||t===void 0?void 0:t.getMetadata("design:paramtypes",a))||[];const n=this.initializeParams(a,i);n.push(this);r=new a(...n)}if(!e.transient&&r!==o.EMPTY_VALUE){e.value=r}if(r===o.EMPTY_VALUE){throw new n.CannotInstantiateValueError(e.id)}if(e.type){this.applyPropertyHandlers(e.type,r)}return r}initializeParams(e,t){return t.map(((t,r)=>{const i=a.Container.handlers.find((t=>(t.object===e||t.object===Object.getPrototypeOf(e))&&t.index===r));if(i)return i.value(this);if(t&&t.name&&!this.isPrimitiveParamType(t.name)){return this.get(t)}return undefined}))}isPrimitiveParamType(e){return["string","boolean","number","object"].includes(e.toLowerCase())}applyPropertyHandlers(e,t){a.Container.handlers.forEach((r=>{if(typeof r.index==="number")return;if(r.object.constructor!==e&&!(e.prototype instanceof r.object.constructor))return;if(r.propertyName){t[r.propertyName]=r.value(this)}}))}destroyServiceInstance(e,t=false){const r=t||!!e.type||!!e.factory;if(r){if(typeof(e===null||e===void 0?void 0:e.value)["destroy"]==="function"){try{e.value.destroy()}catch(e){}}e.value=o.EMPTY_VALUE}}}t.ContainerInstance=ContainerInstance},5430:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.Container=void 0;const a=r(294);class Container{static of(e="default"){if(e==="default")return this.globalInstance;let t=this.instances.find((t=>t.id===e));if(!t){t=new a.ContainerInstance(e);this.instances.push(t)}return t}static has(e){return this.globalInstance.has(e)}static get(e){return this.globalInstance.get(e)}static getMany(e){return this.globalInstance.getMany(e)}static set(e,t){this.globalInstance.set(e,t);return this}static remove(e){this.globalInstance.remove(e);return this}static reset(e="default"){if(e=="default"){this.globalInstance.reset();this.instances.forEach((e=>e.reset()))}else{const t=this.instances.find((t=>t.id===e));if(t){t.reset();this.instances.splice(this.instances.indexOf(t),1)}}return this}static registerHandler(e){this.handlers.push(e);return this}static import(e){return this}}t.Container=Container;Container.handlers=[];Container.globalInstance=new a.ContainerInstance("default");Container.instances=[]},2158:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.InjectMany=void 0;const a=r(5430);const i=r(5188);const n=r(1504);function InjectMany(e){return function(t,r,s){const o=n.resolveToTypeWrapper(e,t,r,s);if(o===undefined||o.eagerType===undefined||o.eagerType===Object){throw new i.CannotInjectValueError(t,r)}a.Container.registerHandler({object:t,propertyName:r,index:s,value:e=>{const a=o.lazyType();if(a===undefined||a===Object){throw new i.CannotInjectValueError(t,r)}return e.getMany(a)}})}}t.InjectMany=InjectMany},3859:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.Inject=void 0;const a=r(5430);const i=r(5188);const n=r(1504);function Inject(e){return function(t,r,s){const o=n.resolveToTypeWrapper(e,t,r,s);if(o===undefined||o.eagerType===undefined||o.eagerType===Object){throw new i.CannotInjectValueError(t,r)}a.Container.registerHandler({object:t,propertyName:r,index:s,value:e=>{const a=o.lazyType();if(a===undefined||a===Object){throw new i.CannotInjectValueError(t,r)}return e.get(a)}})}}t.Inject=Inject},8363:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.Service=void 0;const a=r(5430);const i=r(8548);const n=r(9197);function Service(e){return t=>{const r={id:t,type:t,factory:undefined,multiple:false,global:false,eager:false,transient:false,value:n.EMPTY_VALUE};if(e instanceof i.Token||typeof e==="string"){r.id=e}else if(e){r.id=e.id||t;r.factory=e.factory||undefined;r.multiple=e.multiple||false;r.global=e.global||false;r.eager=e.eager||false;r.transient=e.transient||false}a.Container.set(r)}}t.Service=Service},9197:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.EMPTY_VALUE=void 0;t.EMPTY_VALUE=Symbol("EMPTY_VALUE")},5188:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.CannotInjectValueError=void 0;class CannotInjectValueError extends Error{constructor(e,t){super();this.target=e;this.propertyName=t;this.name="CannotInjectValueError"}get message(){return`Cannot inject value into "${this.target.constructor.name}.${this.propertyName}". `+`Please make sure you setup reflect-metadata properly and you don't use interfaces without service tokens as injection value.`}}t.CannotInjectValueError=CannotInjectValueError},9466:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.CannotInstantiateValueError=void 0;const a=r(8548);class CannotInstantiateValueError extends Error{constructor(e){var t,r;super();this.name="CannotInstantiateValueError";this.normalizedIdentifier="";if(typeof e==="string"){this.normalizedIdentifier=e}else if(e instanceof a.Token){this.normalizedIdentifier=`Token<${e.name||"UNSET_NAME"}>`}else if(e&&(e.name||((t=e.prototype)===null||t===void 0?void 0:t.name))){this.normalizedIdentifier=`MaybeConstructable<${e.name}>`||`MaybeConstructable<${(r=e.prototype)===null||r===void 0?void 0:r.name}>`}}get message(){return`Cannot instantiate the requested value for the "${this.normalizedIdentifier}" identifier. `+`The related metadata doesn't contain a factory or a type to instantiate.`}}t.CannotInstantiateValueError=CannotInstantiateValueError},7107:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.ServiceNotFoundError=void 0;const a=r(8548);class ServiceNotFoundError extends Error{constructor(e){var t,r;super();this.name="ServiceNotFoundError";this.normalizedIdentifier="";if(typeof e==="string"){this.normalizedIdentifier=e}else if(e instanceof a.Token){this.normalizedIdentifier=`Token<${e.name||"UNSET_NAME"}>`}else if(e&&(e.name||((t=e.prototype)===null||t===void 0?void 0:t.name))){this.normalizedIdentifier=`MaybeConstructable<${e.name}>`||`MaybeConstructable<${(r=e.prototype)===null||r===void 0?void 0:r.name}>`}}get message(){return`Service with "${this.normalizedIdentifier}" identifier was not found in the container. `+`Register it before usage via explicitly calling the "Container.set" function or using the "@Service()" decorator.`}}t.ServiceNotFoundError=ServiceNotFoundError},3802:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))a(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});t.Token=t.Container=t.ContainerInstance=void 0;const n=r(5430);i(r(2158),t);i(r(3859),t);i(r(8363),t);i(r(5188),t);i(r(9466),t);i(r(7107),t);var s=r(294);Object.defineProperty(t,"ContainerInstance",{enumerable:true,get:function(){return s.ContainerInstance}});var o=r(5430);Object.defineProperty(t,"Container",{enumerable:true,get:function(){return o.Container}});var p=r(8548);Object.defineProperty(t,"Token",{enumerable:true,get:function(){return p.Token}});t["default"]=n.Container},8548:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.Token=void 0;class Token{constructor(e){this.name=e}}t.Token=Token},1504:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.resolveToTypeWrapper=void 0;const a=r(8548);function resolveToTypeWrapper(e,t,r,i){let n;if(e&&typeof e==="string"||e instanceof a.Token){n={eagerType:e,lazyType:()=>e}}if(e&&typeof e==="function"){n={eagerType:null,lazyType:()=>e()}}if(!e&&r){const e=Reflect.getMetadata("design:type",t,r);n={eagerType:e,lazyType:()=>e}}if(!e&&typeof i=="number"&&Number.isInteger(i)){const e=Reflect.getMetadata("design:paramtypes",t,r);const a=e===null||e===void 0?void 0:e[i];n={eagerType:a,lazyType:()=>a}}return n}t.resolveToTypeWrapper=resolveToTypeWrapper},5030:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});function getUserAgent(){if(typeof navigator==="object"&&"userAgent"in navigator){return navigator.userAgent}if(typeof process==="object"&&"version"in process){return`Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`}return""}t.getUserAgent=getUserAgent},9046:(e,t)=>{"use strict";t.fromCallback=function(e){return Object.defineProperty((function(...t){if(typeof t[t.length-1]==="function")e.apply(this,t);else{return new Promise(((r,a)=>{e.call(this,...t,((e,t)=>e!=null?a(e):r(t)))}))}}),"name",{value:e.name})};t.fromPromise=function(e){return Object.defineProperty((function(...t){const r=t[t.length-1];if(typeof r!=="function")return e.apply(this,t);else e.apply(this,t.slice(0,-1)).then((e=>r(null,e)),r)}),"name",{value:e.name})}},20:function(e,t){ +const a=r(7147);const n=r(2037);const i=r(1017);const s=r(6113);const o={fs:a.constants,os:n.constants};const p=r(4959);const c="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",l=/XXXXXX/,d=3,u=(o.O_CREAT||o.fs.O_CREAT)|(o.O_EXCL||o.fs.O_EXCL)|(o.O_RDWR||o.fs.O_RDWR),m=n.platform()==="win32",h=o.EBADF||o.os.errno.EBADF,g=o.ENOENT||o.os.errno.ENOENT,v=448,y=384,b="exit",w=[],x=a.rmdirSync.bind(a),E=p.sync;let T=false;function tmpName(e,t){const r=_parseArguments(e,t),n=r[0],i=r[1];try{_assertAndSanitizeOptions(n)}catch(e){return i(e)}let s=n.tries;(function _getUniqueName(){try{const e=_generateTmpName(n);a.stat(e,(function(t){if(!t){if(s-- >0)return _getUniqueName();return i(new Error("Could not get a unique tmp filename, max tries reached "+e))}i(null,e)}))}catch(e){i(e)}})()}function tmpNameSync(e){const t=_parseArguments(e),r=t[0];_assertAndSanitizeOptions(r);let n=r.tries;do{const e=_generateTmpName(r);try{a.statSync(e)}catch(t){return e}}while(n-- >0);throw new Error("Could not get a unique tmp filename, max tries reached")}function file(e,t){const r=_parseArguments(e,t),n=r[0],i=r[1];tmpName(n,(function _tmpNameCreated(e,t){if(e)return i(e);a.open(t,u,n.mode||y,(function _fileCreated(e,r){if(e)return i(e);if(n.discardDescriptor){return a.close(r,(function _discardCallback(e){return i(e,t,undefined,_prepareTmpFileRemoveCallback(t,-1,n,false))}))}else{const e=n.discardDescriptor||n.detachDescriptor;i(null,t,r,_prepareTmpFileRemoveCallback(t,e?-1:r,n,false))}}))}))}function fileSync(e){const t=_parseArguments(e),r=t[0];const n=r.discardDescriptor||r.detachDescriptor;const i=tmpNameSync(r);var s=a.openSync(i,u,r.mode||y);if(r.discardDescriptor){a.closeSync(s);s=undefined}return{name:i,fd:s,removeCallback:_prepareTmpFileRemoveCallback(i,n?-1:s,r,true)}}function dir(e,t){const r=_parseArguments(e,t),n=r[0],i=r[1];tmpName(n,(function _tmpNameCreated(e,t){if(e)return i(e);a.mkdir(t,n.mode||v,(function _dirCreated(e){if(e)return i(e);i(null,t,_prepareTmpDirRemoveCallback(t,n,false))}))}))}function dirSync(e){const t=_parseArguments(e),r=t[0];const n=tmpNameSync(r);a.mkdirSync(n,r.mode||v);return{name:n,removeCallback:_prepareTmpDirRemoveCallback(n,r,true)}}function _removeFileAsync(e,t){const _handler=function(e){if(e&&!_isENOENT(e)){return t(e)}t()};if(0<=e[0])a.close(e[0],(function(){a.unlink(e[1],_handler)}));else a.unlink(e[1],_handler)}function _removeFileSync(e){let t=null;try{if(0<=e[0])a.closeSync(e[0])}catch(e){if(!_isEBADF(e)&&!_isENOENT(e))throw e}finally{try{a.unlinkSync(e[1])}catch(e){if(!_isENOENT(e))t=e}}if(t!==null){throw t}}function _prepareTmpFileRemoveCallback(e,t,r,a){const n=_prepareRemoveCallback(_removeFileSync,[t,e],a);const i=_prepareRemoveCallback(_removeFileAsync,[t,e],a,n);if(!r.keep)w.unshift(n);return a?n:i}function _prepareTmpDirRemoveCallback(e,t,r){const n=t.unsafeCleanup?p:a.rmdir.bind(a);const i=t.unsafeCleanup?E:x;const s=_prepareRemoveCallback(i,e,r);const o=_prepareRemoveCallback(n,e,r,s);if(!t.keep)w.unshift(s);return r?s:o}function _prepareRemoveCallback(e,t,r,a){let n=false;return function _cleanupCallback(i){if(!n){const s=a||_cleanupCallback;const o=w.indexOf(s);if(o>=0)w.splice(o,1);n=true;if(r||e===x||e===E){return e(t)}else{return e(t,i||function(){})}}}}function _garbageCollector(){if(!T)return;while(w.length){try{w[0]()}catch(e){}}}function _randomChars(e){let t=[],r=null;try{r=s.randomBytes(e)}catch(t){r=s.pseudoRandomBytes(e)}for(var a=0;a{"use strict";var a=r(5477);var n=r(2020);var i={TRANSITIONAL:0,NONTRANSITIONAL:1};function normalize(e){return e.split("\0").map((function(e){return e.normalize("NFC")})).join("\0")}function findStatus(e){var t=0;var r=n.length-1;while(t<=r){var a=Math.floor((t+r)/2);var i=n[a];if(i[0][0]<=e&&i[0][1]>=e){return i}else if(i[0][0]>e){r=a-1}else{t=a+1}}return null}var s=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;function countSymbols(e){return e.replace(s,"_").length}function mapChars(e,t,r){var a=false;var n="";var s=countSymbols(e);for(var o=0;o253||o.length===0){i.error=true}for(var p=0;p63||s.length===0){i.error=true;break}}}if(i.error)return null;return s.join(".")};e.exports.toUnicode=function(e,t){var r=processing(e,t,i.NONTRANSITIONAL);return{domain:r.string,error:r.error}};e.exports.PROCESSING_OPTIONS=i},4294:(e,t,r)=>{e.exports=r(4219)},4219:(e,t,r)=>{"use strict";var a=r(1808);var n=r(4404);var i=r(3685);var s=r(5687);var o=r(2361);var p=r(9491);var c=r(3837);t.httpOverHttp=httpOverHttp;t.httpsOverHttp=httpsOverHttp;t.httpOverHttps=httpOverHttps;t.httpsOverHttps=httpsOverHttps;function httpOverHttp(e){var t=new TunnelingAgent(e);t.request=i.request;return t}function httpsOverHttp(e){var t=new TunnelingAgent(e);t.request=i.request;t.createSocket=createSecureSocket;t.defaultPort=443;return t}function httpOverHttps(e){var t=new TunnelingAgent(e);t.request=s.request;return t}function httpsOverHttps(e){var t=new TunnelingAgent(e);t.request=s.request;t.createSocket=createSecureSocket;t.defaultPort=443;return t}function TunnelingAgent(e){var t=this;t.options=e||{};t.proxyOptions=t.options.proxy||{};t.maxSockets=t.options.maxSockets||i.Agent.defaultMaxSockets;t.requests=[];t.sockets=[];t.on("free",(function onFree(e,r,a,n){var i=toOptions(r,a,n);for(var s=0,o=t.requests.length;s=this.maxSockets){n.requests.push(i);return}n.createSocket(i,(function(t){t.on("free",onFree);t.on("close",onCloseOrRemove);t.on("agentRemove",onCloseOrRemove);e.onSocket(t);function onFree(){n.emit("free",t,i)}function onCloseOrRemove(e){n.removeSocket(t);t.removeListener("free",onFree);t.removeListener("close",onCloseOrRemove);t.removeListener("agentRemove",onCloseOrRemove)}}))};TunnelingAgent.prototype.createSocket=function createSocket(e,t){var r=this;var a={};r.sockets.push(a);var n=mergeOptions({},r.proxyOptions,{method:"CONNECT",path:e.host+":"+e.port,agent:false,headers:{host:e.host+":"+e.port}});if(e.localAddress){n.localAddress=e.localAddress}if(n.proxyAuth){n.headers=n.headers||{};n.headers["Proxy-Authorization"]="Basic "+new Buffer(n.proxyAuth).toString("base64")}l("making CONNECT request");var i=r.request(n);i.useChunkedEncodingByDefault=false;i.once("response",onResponse);i.once("upgrade",onUpgrade);i.once("connect",onConnect);i.once("error",onError);i.end();function onResponse(e){e.upgrade=true}function onUpgrade(e,t,r){process.nextTick((function(){onConnect(e,t,r)}))}function onConnect(n,s,o){i.removeAllListeners();s.removeAllListeners();if(n.statusCode!==200){l("tunneling socket could not be established, statusCode=%d",n.statusCode);s.destroy();var p=new Error("tunneling socket could not be established, "+"statusCode="+n.statusCode);p.code="ECONNRESET";e.request.emit("error",p);r.removeSocket(a);return}if(o.length>0){l("got illegal response body from proxy");s.destroy();var p=new Error("got illegal response body from proxy");p.code="ECONNRESET";e.request.emit("error",p);r.removeSocket(a);return}l("tunneling connection has established");r.sockets[r.sockets.indexOf(a)]=s;return t(s)}function onError(t){i.removeAllListeners();l("tunneling socket could not be established, cause=%s\n",t.message,t.stack);var n=new Error("tunneling socket could not be established, "+"cause="+t.message);n.code="ECONNRESET";e.request.emit("error",n);r.removeSocket(a)}};TunnelingAgent.prototype.removeSocket=function removeSocket(e){var t=this.sockets.indexOf(e);if(t===-1){return}this.sockets.splice(t,1);var r=this.requests.shift();if(r){this.createSocket(r,(function(e){r.request.onSocket(e)}))}};function createSecureSocket(e,t){var r=this;TunnelingAgent.prototype.createSocket.call(r,e,(function(a){var i=e.request.getHeader("host");var s=mergeOptions({},r.options,{socket:a,servername:i?i.replace(/:.*$/,""):e.host});var o=n.connect(0,s);r.sockets[r.sockets.indexOf(a)]=o;t(o)}))}function toOptions(e,t,r){if(typeof e==="string"){return{host:e,port:t,localAddress:r}}return e}function mergeOptions(e){for(var t=1,r=arguments.length;t{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.ContainerInstance=void 0;const a=r(5430);const n=r(7107);const i=r(9466);const s=r(8548);const o=r(9197);class ContainerInstance{constructor(e){this.services=[];this.id=e}has(e){return!!this.findService(e)}get(e){const t=a.Container.of(undefined);const r=t.findService(e);const i=this.findService(e);if(r&&r.global===true)return this.getServiceValue(r);if(i)return this.getServiceValue(i);if(r&&this!==t){const e={...r};e.value=o.EMPTY_VALUE;this.set(e);const t=this.getServiceValue(e);this.set({...e,value:t});return t}if(r)return this.getServiceValue(r);throw new n.ServiceNotFoundError(e)}getMany(e){return this.findAllServices(e).map((e=>this.getServiceValue(e)))}set(e,t){if(e instanceof Array){e.forEach((e=>this.set(e)));return this}if(typeof e==="string"||e instanceof s.Token){return this.set({id:e,type:null,value:t,factory:undefined,global:false,multiple:false,eager:false,transient:false})}if(typeof e==="function"){return this.set({id:e,type:e,value:t,factory:undefined,global:false,multiple:false,eager:false,transient:false})}const r={id:new s.Token("UNREACHABLE"),type:null,factory:undefined,value:o.EMPTY_VALUE,global:false,multiple:false,eager:false,transient:false,...e};const a=this.findService(r.id);if(a&&a.multiple!==true){Object.assign(a,r)}else{this.services.push(r)}if(r.eager){this.get(r.id)}return this}remove(e){if(Array.isArray(e)){e.forEach((e=>this.remove(e)))}else{this.services=this.services.filter((t=>{if(t.id===e){this.destroyServiceInstance(t);return false}return true}))}return this}reset(e={strategy:"resetValue"}){switch(e.strategy){case"resetValue":this.services.forEach((e=>this.destroyServiceInstance(e)));break;case"resetServices":this.services.forEach((e=>this.destroyServiceInstance(e)));this.services=[];break;default:throw new Error("Received invalid reset strategy.")}return this}findAllServices(e){return this.services.filter((t=>t.id===e))}findService(e){return this.services.find((t=>t.id===e))}getServiceValue(e){var t;let r=o.EMPTY_VALUE;if(e.value!==o.EMPTY_VALUE){return e.value}if(!e.factory&&!e.type){throw new i.CannotInstantiateValueError(e.id)}if(e.factory){if(e.factory instanceof Array){let t;try{t=this.get(e.factory[0])}catch(r){if(r instanceof n.ServiceNotFoundError){t=new e.factory[0]}else{throw r}}r=t[e.factory[1]](this,e.id)}else{r=e.factory(this,e.id)}}if(!e.factory&&e.type){const a=e.type;const n=((t=Reflect)===null||t===void 0?void 0:t.getMetadata("design:paramtypes",a))||[];const i=this.initializeParams(a,n);i.push(this);r=new a(...i)}if(!e.transient&&r!==o.EMPTY_VALUE){e.value=r}if(r===o.EMPTY_VALUE){throw new i.CannotInstantiateValueError(e.id)}if(e.type){this.applyPropertyHandlers(e.type,r)}return r}initializeParams(e,t){return t.map(((t,r)=>{const n=a.Container.handlers.find((t=>(t.object===e||t.object===Object.getPrototypeOf(e))&&t.index===r));if(n)return n.value(this);if(t&&t.name&&!this.isPrimitiveParamType(t.name)){return this.get(t)}return undefined}))}isPrimitiveParamType(e){return["string","boolean","number","object"].includes(e.toLowerCase())}applyPropertyHandlers(e,t){a.Container.handlers.forEach((r=>{if(typeof r.index==="number")return;if(r.object.constructor!==e&&!(e.prototype instanceof r.object.constructor))return;if(r.propertyName){t[r.propertyName]=r.value(this)}}))}destroyServiceInstance(e,t=false){const r=t||!!e.type||!!e.factory;if(r){if(typeof(e===null||e===void 0?void 0:e.value)["destroy"]==="function"){try{e.value.destroy()}catch(e){}}e.value=o.EMPTY_VALUE}}}t.ContainerInstance=ContainerInstance},5430:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.Container=void 0;const a=r(294);class Container{static of(e="default"){if(e==="default")return this.globalInstance;let t=this.instances.find((t=>t.id===e));if(!t){t=new a.ContainerInstance(e);this.instances.push(t)}return t}static has(e){return this.globalInstance.has(e)}static get(e){return this.globalInstance.get(e)}static getMany(e){return this.globalInstance.getMany(e)}static set(e,t){this.globalInstance.set(e,t);return this}static remove(e){this.globalInstance.remove(e);return this}static reset(e="default"){if(e=="default"){this.globalInstance.reset();this.instances.forEach((e=>e.reset()))}else{const t=this.instances.find((t=>t.id===e));if(t){t.reset();this.instances.splice(this.instances.indexOf(t),1)}}return this}static registerHandler(e){this.handlers.push(e);return this}static import(e){return this}}t.Container=Container;Container.handlers=[];Container.globalInstance=new a.ContainerInstance("default");Container.instances=[]},2158:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.InjectMany=void 0;const a=r(5430);const n=r(5188);const i=r(1504);function InjectMany(e){return function(t,r,s){const o=i.resolveToTypeWrapper(e,t,r,s);if(o===undefined||o.eagerType===undefined||o.eagerType===Object){throw new n.CannotInjectValueError(t,r)}a.Container.registerHandler({object:t,propertyName:r,index:s,value:e=>{const a=o.lazyType();if(a===undefined||a===Object){throw new n.CannotInjectValueError(t,r)}return e.getMany(a)}})}}t.InjectMany=InjectMany},3859:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.Inject=void 0;const a=r(5430);const n=r(5188);const i=r(1504);function Inject(e){return function(t,r,s){const o=i.resolveToTypeWrapper(e,t,r,s);if(o===undefined||o.eagerType===undefined||o.eagerType===Object){throw new n.CannotInjectValueError(t,r)}a.Container.registerHandler({object:t,propertyName:r,index:s,value:e=>{const a=o.lazyType();if(a===undefined||a===Object){throw new n.CannotInjectValueError(t,r)}return e.get(a)}})}}t.Inject=Inject},8363:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.Service=void 0;const a=r(5430);const n=r(8548);const i=r(9197);function Service(e){return t=>{const r={id:t,type:t,factory:undefined,multiple:false,global:false,eager:false,transient:false,value:i.EMPTY_VALUE};if(e instanceof n.Token||typeof e==="string"){r.id=e}else if(e){r.id=e.id||t;r.factory=e.factory||undefined;r.multiple=e.multiple||false;r.global=e.global||false;r.eager=e.eager||false;r.transient=e.transient||false}a.Container.set(r)}}t.Service=Service},9197:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.EMPTY_VALUE=void 0;t.EMPTY_VALUE=Symbol("EMPTY_VALUE")},5188:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.CannotInjectValueError=void 0;class CannotInjectValueError extends Error{constructor(e,t){super();this.target=e;this.propertyName=t;this.name="CannotInjectValueError"}get message(){return`Cannot inject value into "${this.target.constructor.name}.${this.propertyName}". `+`Please make sure you setup reflect-metadata properly and you don't use interfaces without service tokens as injection value.`}}t.CannotInjectValueError=CannotInjectValueError},9466:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.CannotInstantiateValueError=void 0;const a=r(8548);class CannotInstantiateValueError extends Error{constructor(e){var t,r;super();this.name="CannotInstantiateValueError";this.normalizedIdentifier="";if(typeof e==="string"){this.normalizedIdentifier=e}else if(e instanceof a.Token){this.normalizedIdentifier=`Token<${e.name||"UNSET_NAME"}>`}else if(e&&(e.name||((t=e.prototype)===null||t===void 0?void 0:t.name))){this.normalizedIdentifier=`MaybeConstructable<${e.name}>`||`MaybeConstructable<${(r=e.prototype)===null||r===void 0?void 0:r.name}>`}}get message(){return`Cannot instantiate the requested value for the "${this.normalizedIdentifier}" identifier. `+`The related metadata doesn't contain a factory or a type to instantiate.`}}t.CannotInstantiateValueError=CannotInstantiateValueError},7107:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.ServiceNotFoundError=void 0;const a=r(8548);class ServiceNotFoundError extends Error{constructor(e){var t,r;super();this.name="ServiceNotFoundError";this.normalizedIdentifier="";if(typeof e==="string"){this.normalizedIdentifier=e}else if(e instanceof a.Token){this.normalizedIdentifier=`Token<${e.name||"UNSET_NAME"}>`}else if(e&&(e.name||((t=e.prototype)===null||t===void 0?void 0:t.name))){this.normalizedIdentifier=`MaybeConstructable<${e.name}>`||`MaybeConstructable<${(r=e.prototype)===null||r===void 0?void 0:r.name}>`}}get message(){return`Service with "${this.normalizedIdentifier}" identifier was not found in the container. `+`Register it before usage via explicitly calling the "Container.set" function or using the "@Service()" decorator.`}}t.ServiceNotFoundError=ServiceNotFoundError},3802:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;Object.defineProperty(e,a,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var n=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r))a(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});t.Token=t.Container=t.ContainerInstance=void 0;const i=r(5430);n(r(2158),t);n(r(3859),t);n(r(8363),t);n(r(5188),t);n(r(9466),t);n(r(7107),t);var s=r(294);Object.defineProperty(t,"ContainerInstance",{enumerable:true,get:function(){return s.ContainerInstance}});var o=r(5430);Object.defineProperty(t,"Container",{enumerable:true,get:function(){return o.Container}});var p=r(8548);Object.defineProperty(t,"Token",{enumerable:true,get:function(){return p.Token}});t["default"]=i.Container},8548:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.Token=void 0;class Token{constructor(e){this.name=e}}t.Token=Token},1504:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.resolveToTypeWrapper=void 0;const a=r(8548);function resolveToTypeWrapper(e,t,r,n){let i;if(e&&typeof e==="string"||e instanceof a.Token){i={eagerType:e,lazyType:()=>e}}if(e&&typeof e==="function"){i={eagerType:null,lazyType:()=>e()}}if(!e&&r){const e=Reflect.getMetadata("design:type",t,r);i={eagerType:e,lazyType:()=>e}}if(!e&&typeof n=="number"&&Number.isInteger(n)){const e=Reflect.getMetadata("design:paramtypes",t,r);const a=e===null||e===void 0?void 0:e[n];i={eagerType:a,lazyType:()=>a}}return i}t.resolveToTypeWrapper=resolveToTypeWrapper},5030:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});function getUserAgent(){if(typeof navigator==="object"&&"userAgent"in navigator){return navigator.userAgent}if(typeof process==="object"&&"version"in process){return`Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`}return""}t.getUserAgent=getUserAgent},9046:(e,t)=>{"use strict";t.fromCallback=function(e){return Object.defineProperty((function(...t){if(typeof t[t.length-1]==="function")e.apply(this,t);else{return new Promise(((r,a)=>{e.call(this,...t,((e,t)=>e!=null?a(e):r(t)))}))}}),"name",{value:e.name})};t.fromPromise=function(e){return Object.defineProperty((function(...t){const r=t[t.length-1];if(typeof r!=="function")return e.apply(this,t);else e.apply(this,t.slice(0,-1)).then((e=>r(null,e)),r)}),"name",{value:e.name})}},20:function(e,t){ /** @license URI.js v4.4.1 (c) 2011 Gary Court. License: http://github.com/garycourt/uri-js */ -(function(e,r){true?r(t):0})(this,(function(e){"use strict";function merge(){for(var e=arguments.length,t=Array(e),r=0;r1){t[0]=t[0].slice(0,-1);var a=t.length-1;for(var i=1;i= 0x80 (not a basic code point)","invalid-input":"Invalid input"};var y=n-s;var b=Math.floor;var w=String.fromCharCode;function error$1(e){throw new RangeError(v[e])}function map(e,t){var r=[];var a=e.length;while(a--){r[a]=t(e[a])}return r}function mapDomain(e,t){var r=e.split("@");var a="";if(r.length>1){a=r[0]+"@";e=r[1]}e=e.replace(g,".");var i=e.split(".");var n=map(i,t).join(".");return a+n}function ucs2decode(e){var t=[];var r=0;var a=e.length;while(r=55296&&i<=56319&&r>1;e+=b(e/t);for(;e>y*o>>1;a+=n){e=b(e/y)}return b(a+(y+1)*e/(e+p))};var k=function decode(e){var t=[];var r=e.length;var a=0;var p=d;var c=l;var m=e.lastIndexOf(u);if(m<0){m=0}for(var h=0;h=128){error$1("not-basic")}t.push(e.charCodeAt(h))}for(var g=m>0?m+1:0;g=r){error$1("invalid-input")}var x=E(e.charCodeAt(g++));if(x>=n||x>b((i-a)/y)){error$1("overflow")}a+=x*y;var S=w<=c?s:w>=c+o?o:w-c;if(xb(i/k)){error$1("overflow")}y*=k}var C=t.length+1;c=T(a-v,C,v==0);if(b(a/C)>i-p){error$1("overflow")}p+=b(a/C);a%=C;t.splice(a++,0,p)}return String.fromCodePoint.apply(String,t)};var C=function encode(e){var t=[];e=ucs2decode(e);var r=e.length;var a=d;var p=0;var c=l;var m=true;var h=false;var g=undefined;try{for(var v=e[Symbol.iterator](),y;!(m=(y=v.next()).done);m=true){var x=y.value;if(x<128){t.push(w(x))}}}catch(e){h=true;g=e}finally{try{if(!m&&v.return){v.return()}}finally{if(h){throw g}}}var E=t.length;var k=E;if(E){t.push(u)}while(k=a&&Rb((i-p)/j)){error$1("overflow")}p+=(C-a)*j;a=C;var F=true;var I=false;var $=undefined;try{for(var B=e[Symbol.iterator](),L;!(F=(L=B.next()).done);F=true){var M=L.value;if(Mi){error$1("overflow")}if(M==a){var U=p;for(var G=n;;G+=n){var V=G<=c?s:G>=c+o?o:G-c;if(U>6|192).toString(16).toUpperCase()+"%"+(t&63|128).toString(16).toUpperCase();else r="%"+(t>>12|224).toString(16).toUpperCase()+"%"+(t>>6&63|128).toString(16).toUpperCase()+"%"+(t&63|128).toString(16).toUpperCase();return r}function pctDecChars(e){var t="";var r=0;var a=e.length;while(r=194&&i<224){if(a-r>=6){var n=parseInt(e.substr(r+4,2),16);t+=String.fromCharCode((i&31)<<6|n&63)}else{t+=e.substr(r,6)}r+=6}else if(i>=224){if(a-r>=9){var s=parseInt(e.substr(r+4,2),16);var o=parseInt(e.substr(r+7,2),16);t+=String.fromCharCode((i&15)<<12|(s&63)<<6|o&63)}else{t+=e.substr(r,9)}r+=9}else{t+=e.substr(r,3);r+=3}}return t}function _normalizeComponentEncoding(e,t){function decodeUnreserved(e){var r=pctDecChars(e);return!r.match(t.UNRESERVED)?e:r}if(e.scheme)e.scheme=String(e.scheme).replace(t.PCT_ENCODED,decodeUnreserved).toLowerCase().replace(t.NOT_SCHEME,"");if(e.userinfo!==undefined)e.userinfo=String(e.userinfo).replace(t.PCT_ENCODED,decodeUnreserved).replace(t.NOT_USERINFO,pctEncChar).replace(t.PCT_ENCODED,toUpperCase);if(e.host!==undefined)e.host=String(e.host).replace(t.PCT_ENCODED,decodeUnreserved).toLowerCase().replace(t.NOT_HOST,pctEncChar).replace(t.PCT_ENCODED,toUpperCase);if(e.path!==undefined)e.path=String(e.path).replace(t.PCT_ENCODED,decodeUnreserved).replace(e.scheme?t.NOT_PATH:t.NOT_PATH_NOSCHEME,pctEncChar).replace(t.PCT_ENCODED,toUpperCase);if(e.query!==undefined)e.query=String(e.query).replace(t.PCT_ENCODED,decodeUnreserved).replace(t.NOT_QUERY,pctEncChar).replace(t.PCT_ENCODED,toUpperCase);if(e.fragment!==undefined)e.fragment=String(e.fragment).replace(t.PCT_ENCODED,decodeUnreserved).replace(t.NOT_FRAGMENT,pctEncChar).replace(t.PCT_ENCODED,toUpperCase);return e}function _stripLeadingZeros(e){return e.replace(/^0*(.*)/,"$1")||"0"}function _normalizeIPv4(e,t){var r=e.match(t.IPV4ADDRESS)||[];var i=a(r,2),n=i[1];if(n){return n.split(".").map(_stripLeadingZeros).join(".")}else{return e}}function _normalizeIPv6(e,t){var r=e.match(t.IPV6ADDRESS)||[];var i=a(r,3),n=i[1],s=i[2];if(n){var o=n.toLowerCase().split("::").reverse(),p=a(o,2),c=p[0],l=p[1];var d=l?l.split(":").map(_stripLeadingZeros):[];var u=c.split(":").map(_stripLeadingZeros);var m=t.IPV4ADDRESS.test(u[u.length-1]);var h=m?7:8;var g=u.length-h;var v=Array(h);for(var y=0;y1){var E=v.slice(0,w.index);var S=v.slice(w.index+w.length);x=E.join(":")+"::"+S.join(":")}else{x=v.join(":")}if(s){x+="%"+s}return x}else{return e}}var N=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i;var R="".match(/(){0}/)[1]===undefined;function parse(e){var a=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var i={};var n=a.iri!==false?r:t;if(a.reference==="suffix")e=(a.scheme?a.scheme+":":"")+"//"+e;var s=e.match(N);if(s){if(R){i.scheme=s[1];i.userinfo=s[3];i.host=s[4];i.port=parseInt(s[5],10);i.path=s[6]||"";i.query=s[7];i.fragment=s[8];if(isNaN(i.port)){i.port=s[5]}}else{i.scheme=s[1]||undefined;i.userinfo=e.indexOf("@")!==-1?s[3]:undefined;i.host=e.indexOf("//")!==-1?s[4]:undefined;i.port=parseInt(s[5],10);i.path=s[6]||"";i.query=e.indexOf("?")!==-1?s[7]:undefined;i.fragment=e.indexOf("#")!==-1?s[8]:undefined;if(isNaN(i.port)){i.port=e.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?s[4]:undefined}}if(i.host){i.host=_normalizeIPv6(_normalizeIPv4(i.host,n),n)}if(i.scheme===undefined&&i.userinfo===undefined&&i.host===undefined&&i.port===undefined&&!i.path&&i.query===undefined){i.reference="same-document"}else if(i.scheme===undefined){i.reference="relative"}else if(i.fragment===undefined){i.reference="absolute"}else{i.reference="uri"}if(a.reference&&a.reference!=="suffix"&&a.reference!==i.reference){i.error=i.error||"URI is not a "+a.reference+" reference."}var o=D[(a.scheme||i.scheme||"").toLowerCase()];if(!a.unicodeSupport&&(!o||!o.unicodeSupport)){if(i.host&&(a.domainHost||o&&o.domainHost)){try{i.host=A.toASCII(i.host.replace(n.PCT_ENCODED,pctDecChars).toLowerCase())}catch(e){i.error=i.error||"Host's domain name can not be converted to ASCII via punycode: "+e}}_normalizeComponentEncoding(i,t)}else{_normalizeComponentEncoding(i,n)}if(o&&o.parse){o.parse(i,a)}}else{i.error=i.error||"URI can not be parsed."}return i}function _recomposeAuthority(e,a){var i=a.iri!==false?r:t;var n=[];if(e.userinfo!==undefined){n.push(e.userinfo);n.push("@")}if(e.host!==undefined){n.push(_normalizeIPv6(_normalizeIPv4(String(e.host),i),i).replace(i.IPV6ADDRESS,(function(e,t,r){return"["+t+(r?"%25"+r:"")+"]"})))}if(typeof e.port==="number"||typeof e.port==="string"){n.push(":");n.push(String(e.port))}return n.length?n.join(""):undefined}var j=/^\.\.?\//;var F=/^\/\.(\/|$)/;var I=/^\/\.\.(\/|$)/;var $=/^\/?(?:.|\n)*?(?=\/|$)/;function removeDotSegments(e){var t=[];while(e.length){if(e.match(j)){e=e.replace(j,"")}else if(e.match(F)){e=e.replace(F,"/")}else if(e.match(I)){e=e.replace(I,"/");t.pop()}else if(e==="."||e===".."){e=""}else{var r=e.match($);if(r){var a=r[0];e=e.slice(a.length);t.push(a)}else{throw new Error("Unexpected dot segment condition")}}}return t.join("")}function serialize(e){var a=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var i=a.iri?r:t;var n=[];var s=D[(a.scheme||e.scheme||"").toLowerCase()];if(s&&s.serialize)s.serialize(e,a);if(e.host){if(i.IPV6ADDRESS.test(e.host)){}else if(a.domainHost||s&&s.domainHost){try{e.host=!a.iri?A.toASCII(e.host.replace(i.PCT_ENCODED,pctDecChars).toLowerCase()):A.toUnicode(e.host)}catch(t){e.error=e.error||"Host's domain name can not be converted to "+(!a.iri?"ASCII":"Unicode")+" via punycode: "+t}}}_normalizeComponentEncoding(e,i);if(a.reference!=="suffix"&&e.scheme){n.push(e.scheme);n.push(":")}var o=_recomposeAuthority(e,a);if(o!==undefined){if(a.reference!=="suffix"){n.push("//")}n.push(o);if(e.path&&e.path.charAt(0)!=="/"){n.push("/")}}if(e.path!==undefined){var p=e.path;if(!a.absolutePath&&(!s||!s.absolutePath)){p=removeDotSegments(p)}if(o===undefined){p=p.replace(/^\/\//,"/%2F")}n.push(p)}if(e.query!==undefined){n.push("?");n.push(e.query)}if(e.fragment!==undefined){n.push("#");n.push(e.fragment)}return n.join("")}function resolveComponents(e,t){var r=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};var a=arguments[3];var i={};if(!a){e=parse(serialize(e,r),r);t=parse(serialize(t,r),r)}r=r||{};if(!r.tolerant&&t.scheme){i.scheme=t.scheme;i.userinfo=t.userinfo;i.host=t.host;i.port=t.port;i.path=removeDotSegments(t.path||"");i.query=t.query}else{if(t.userinfo!==undefined||t.host!==undefined||t.port!==undefined){i.userinfo=t.userinfo;i.host=t.host;i.port=t.port;i.path=removeDotSegments(t.path||"");i.query=t.query}else{if(!t.path){i.path=e.path;if(t.query!==undefined){i.query=t.query}else{i.query=e.query}}else{if(t.path.charAt(0)==="/"){i.path=removeDotSegments(t.path)}else{if((e.userinfo!==undefined||e.host!==undefined||e.port!==undefined)&&!e.path){i.path="/"+t.path}else if(!e.path){i.path=t.path}else{i.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+t.path}i.path=removeDotSegments(i.path)}i.query=t.query}i.userinfo=e.userinfo;i.host=e.host;i.port=e.port}i.scheme=e.scheme}i.fragment=t.fragment;return i}function resolve(e,t,r){var a=assign({scheme:"null"},r);return serialize(resolveComponents(parse(e,a),parse(t,a),a,true),a)}function normalize(e,t){if(typeof e==="string"){e=serialize(parse(e,t),t)}else if(typeOf(e)==="object"){e=parse(serialize(e,t),t)}return e}function equal(e,t,r){if(typeof e==="string"){e=serialize(parse(e,r),r)}else if(typeOf(e)==="object"){e=serialize(e,r)}if(typeof t==="string"){t=serialize(parse(t,r),r)}else if(typeOf(t)==="object"){t=serialize(t,r)}return e===t}function escapeComponent(e,a){return e&&e.toString().replace(!a||!a.iri?t.ESCAPE:r.ESCAPE,pctEncChar)}function unescapeComponent(e,a){return e&&e.toString().replace(!a||!a.iri?t.PCT_ENCODED:r.PCT_ENCODED,pctDecChars)}var B={scheme:"http",domainHost:true,parse:function parse(e,t){if(!e.host){e.error=e.error||"HTTP URIs must have a host."}return e},serialize:function serialize(e,t){var r=String(e.scheme).toLowerCase()==="https";if(e.port===(r?443:80)||e.port===""){e.port=undefined}if(!e.path){e.path="/"}return e}};var L={scheme:"https",domainHost:B.domainHost,parse:B.parse,serialize:B.serialize};function isSecure(e){return typeof e.secure==="boolean"?e.secure:String(e.scheme).toLowerCase()==="wss"}var M={scheme:"ws",domainHost:true,parse:function parse(e,t){var r=e;r.secure=isSecure(r);r.resourceName=(r.path||"/")+(r.query?"?"+r.query:"");r.path=undefined;r.query=undefined;return r},serialize:function serialize(e,t){if(e.port===(isSecure(e)?443:80)||e.port===""){e.port=undefined}if(typeof e.secure==="boolean"){e.scheme=e.secure?"wss":"ws";e.secure=undefined}if(e.resourceName){var r=e.resourceName.split("?"),i=a(r,2),n=i[0],s=i[1];e.path=n&&n!=="/"?n:undefined;e.query=s;e.resourceName=undefined}e.fragment=undefined;return e}};var U={scheme:"wss",domainHost:M.domainHost,parse:M.parse,serialize:M.serialize};var G={};var V=true;var q="[A-Za-z0-9\\-\\.\\_\\~"+(V?"\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF":"")+"]";var z="[0-9A-Fa-f]";var H=subexp(subexp("%[EFef]"+z+"%"+z+z+"%"+z+z)+"|"+subexp("%[89A-Fa-f]"+z+"%"+z+z)+"|"+subexp("%"+z+z));var K="[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]";var W="[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]";var J=merge(W,'[\\"\\\\]');var Y="[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]";var Q=new RegExp(q,"g");var X=new RegExp(H,"g");var Z=new RegExp(merge("[^]",K,"[\\.]",'[\\"]',J),"g");var ee=new RegExp(merge("[^]",q,Y),"g");var te=ee;function decodeUnreserved(e){var t=pctDecChars(e);return!t.match(Q)?e:t}var re={scheme:"mailto",parse:function parse$$1(e,t){var r=e;var a=r.to=r.path?r.path.split(","):[];r.path=undefined;if(r.query){var i=false;var n={};var s=r.query.split("&");for(var o=0,p=s.length;o{"use strict";Object.defineProperty(t,"__esModule",{value:true});Object.defineProperty(t,"v1",{enumerable:true,get:function(){return a.default}});Object.defineProperty(t,"v3",{enumerable:true,get:function(){return i.default}});Object.defineProperty(t,"v4",{enumerable:true,get:function(){return n.default}});Object.defineProperty(t,"v5",{enumerable:true,get:function(){return s.default}});Object.defineProperty(t,"NIL",{enumerable:true,get:function(){return o.default}});Object.defineProperty(t,"version",{enumerable:true,get:function(){return p.default}});Object.defineProperty(t,"validate",{enumerable:true,get:function(){return c.default}});Object.defineProperty(t,"stringify",{enumerable:true,get:function(){return l.default}});Object.defineProperty(t,"parse",{enumerable:true,get:function(){return d.default}});var a=_interopRequireDefault(r(8628));var i=_interopRequireDefault(r(6409));var n=_interopRequireDefault(r(5122));var s=_interopRequireDefault(r(9120));var o=_interopRequireDefault(r(5332));var p=_interopRequireDefault(r(1595));var c=_interopRequireDefault(r(6900));var l=_interopRequireDefault(r(8950));var d=_interopRequireDefault(r(2746));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}},4569:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var a=_interopRequireDefault(r(6113));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function md5(e){if(Array.isArray(e)){e=Buffer.from(e)}else if(typeof e==="string"){e=Buffer.from(e,"utf8")}return a.default.createHash("md5").update(e).digest()}var i=md5;t["default"]=i},5332:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var r="00000000-0000-0000-0000-000000000000";t["default"]=r},2746:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var a=_interopRequireDefault(r(6900));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function parse(e){if(!(0,a.default)(e)){throw TypeError("Invalid UUID")}let t;const r=new Uint8Array(16);r[0]=(t=parseInt(e.slice(0,8),16))>>>24;r[1]=t>>>16&255;r[2]=t>>>8&255;r[3]=t&255;r[4]=(t=parseInt(e.slice(9,13),16))>>>8;r[5]=t&255;r[6]=(t=parseInt(e.slice(14,18),16))>>>8;r[7]=t&255;r[8]=(t=parseInt(e.slice(19,23),16))>>>8;r[9]=t&255;r[10]=(t=parseInt(e.slice(24,36),16))/1099511627776&255;r[11]=t/4294967296&255;r[12]=t>>>24&255;r[13]=t>>>16&255;r[14]=t>>>8&255;r[15]=t&255;return r}var i=parse;t["default"]=i},814:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var r=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;t["default"]=r},807:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=rng;var a=_interopRequireDefault(r(6113));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const i=new Uint8Array(256);let n=i.length;function rng(){if(n>i.length-16){a.default.randomFillSync(i);n=0}return i.slice(n,n+=16)}},5274:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var a=_interopRequireDefault(r(6113));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function sha1(e){if(Array.isArray(e)){e=Buffer.from(e)}else if(typeof e==="string"){e=Buffer.from(e,"utf8")}return a.default.createHash("sha1").update(e).digest()}var i=sha1;t["default"]=i},8950:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var a=_interopRequireDefault(r(6900));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const i=[];for(let e=0;e<256;++e){i.push((e+256).toString(16).substr(1))}function stringify(e,t=0){const r=(i[e[t+0]]+i[e[t+1]]+i[e[t+2]]+i[e[t+3]]+"-"+i[e[t+4]]+i[e[t+5]]+"-"+i[e[t+6]]+i[e[t+7]]+"-"+i[e[t+8]]+i[e[t+9]]+"-"+i[e[t+10]]+i[e[t+11]]+i[e[t+12]]+i[e[t+13]]+i[e[t+14]]+i[e[t+15]]).toLowerCase();if(!(0,a.default)(r)){throw TypeError("Stringified UUID is invalid")}return r}var n=stringify;t["default"]=n},8628:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var a=_interopRequireDefault(r(807));var i=_interopRequireDefault(r(8950));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let n;let s;let o=0;let p=0;function v1(e,t,r){let c=t&&r||0;const l=t||new Array(16);e=e||{};let d=e.node||n;let u=e.clockseq!==undefined?e.clockseq:s;if(d==null||u==null){const t=e.random||(e.rng||a.default)();if(d==null){d=n=[t[0]|1,t[1],t[2],t[3],t[4],t[5]]}if(u==null){u=s=(t[6]<<8|t[7])&16383}}let m=e.msecs!==undefined?e.msecs:Date.now();let h=e.nsecs!==undefined?e.nsecs:p+1;const g=m-o+(h-p)/1e4;if(g<0&&e.clockseq===undefined){u=u+1&16383}if((g<0||m>o)&&e.nsecs===undefined){h=0}if(h>=1e4){throw new Error("uuid.v1(): Can't create more than 10M uuids/sec")}o=m;p=h;s=u;m+=122192928e5;const v=((m&268435455)*1e4+h)%4294967296;l[c++]=v>>>24&255;l[c++]=v>>>16&255;l[c++]=v>>>8&255;l[c++]=v&255;const y=m/4294967296*1e4&268435455;l[c++]=y>>>8&255;l[c++]=y&255;l[c++]=y>>>24&15|16;l[c++]=y>>>16&255;l[c++]=u>>>8|128;l[c++]=u&255;for(let e=0;e<6;++e){l[c+e]=d[e]}return t||(0,i.default)(l)}var c=v1;t["default"]=c},6409:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var a=_interopRequireDefault(r(5998));var i=_interopRequireDefault(r(4569));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const n=(0,a.default)("v3",48,i.default);var s=n;t["default"]=s},5998:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=_default;t.URL=t.DNS=void 0;var a=_interopRequireDefault(r(8950));var i=_interopRequireDefault(r(2746));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function stringToBytes(e){e=unescape(encodeURIComponent(e));const t=[];for(let r=0;r{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var a=_interopRequireDefault(r(807));var i=_interopRequireDefault(r(8950));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function v4(e,t,r){e=e||{};const n=e.random||(e.rng||a.default)();n[6]=n[6]&15|64;n[8]=n[8]&63|128;if(t){r=r||0;for(let e=0;e<16;++e){t[r+e]=n[e]}return t}return(0,i.default)(n)}var n=v4;t["default"]=n},9120:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var a=_interopRequireDefault(r(5998));var i=_interopRequireDefault(r(5274));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const n=(0,a.default)("v5",80,i.default);var s=n;t["default"]=s},6900:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var a=_interopRequireDefault(r(814));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function validate(e){return typeof e==="string"&&a.default.test(e)}var i=validate;t["default"]=i},1595:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var a=_interopRequireDefault(r(6900));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function version(e){if(!(0,a.default)(e)){throw TypeError("Invalid UUID")}return parseInt(e.substr(14,1),16)}var i=version;t["default"]=i},4886:e=>{"use strict";var t={};e.exports=t;function sign(e){return e<0?-1:1}function evenRound(e){if(e%1===.5&&(e&1)===0){return Math.floor(e)}else{return Math.round(e)}}function createNumberConversion(e,t){if(!t.unsigned){--e}const r=t.unsigned?0:-Math.pow(2,e);const a=Math.pow(2,e)-1;const i=t.moduloBitLength?Math.pow(2,t.moduloBitLength):Math.pow(2,e);const n=t.moduloBitLength?Math.pow(2,t.moduloBitLength-1):Math.pow(2,e-1);return function(e,s){if(!s)s={};let o=+e;if(s.enforceRange){if(!Number.isFinite(o)){throw new TypeError("Argument is not a finite number")}o=sign(o)*Math.floor(Math.abs(o));if(oa){throw new TypeError("Argument is not in byte range")}return o}if(!isNaN(o)&&s.clamp){o=evenRound(o);if(oa)o=a;return o}if(!Number.isFinite(o)||o===0){return 0}o=sign(o)*Math.floor(Math.abs(o));o=o%i;if(!t.unsigned&&o>=n){return o-i}else if(t.unsigned){if(o<0){o+=i}else if(o===-0){return 0}}return o}}t["void"]=function(){return undefined};t["boolean"]=function(e){return!!e};t["byte"]=createNumberConversion(8,{unsigned:false});t["octet"]=createNumberConversion(8,{unsigned:true});t["short"]=createNumberConversion(16,{unsigned:false});t["unsigned short"]=createNumberConversion(16,{unsigned:true});t["long"]=createNumberConversion(32,{unsigned:false});t["unsigned long"]=createNumberConversion(32,{unsigned:true});t["long long"]=createNumberConversion(32,{unsigned:false,moduloBitLength:64});t["unsigned long long"]=createNumberConversion(32,{unsigned:true,moduloBitLength:64});t["double"]=function(e){const t=+e;if(!Number.isFinite(t)){throw new TypeError("Argument is not a finite floating-point value")}return t};t["unrestricted double"]=function(e){const t=+e;if(isNaN(t)){throw new TypeError("Argument is NaN")}return t};t["float"]=t["double"];t["unrestricted float"]=t["unrestricted double"];t["DOMString"]=function(e,t){if(!t)t={};if(t.treatNullAsEmptyString&&e===null){return""}return String(e)};t["ByteString"]=function(e,t){const r=String(e);let a=undefined;for(let e=0;(a=r.codePointAt(e))!==undefined;++e){if(a>255){throw new TypeError("Argument is not a valid bytestring")}}return r};t["USVString"]=function(e){const t=String(e);const r=t.length;const a=[];for(let e=0;e57343){a.push(String.fromCodePoint(i))}else if(56320<=i&&i<=57343){a.push(String.fromCodePoint(65533))}else{if(e===r-1){a.push(String.fromCodePoint(65533))}else{const r=t.charCodeAt(e+1);if(56320<=r&&r<=57343){const t=i&1023;const n=r&1023;a.push(String.fromCodePoint((2<<15)+(2<<9)*t+n));++e}else{a.push(String.fromCodePoint(65533))}}}}return a.join("")};t["Date"]=function(e,t){if(!(e instanceof Date)){throw new TypeError("Argument is not a Date object")}if(isNaN(e)){return undefined}return e};t["RegExp"]=function(e,t){if(!(e instanceof RegExp)){e=new RegExp(e)}return e}},7537:(e,t,r)=>{"use strict";const a=r(5996);t.implementation=class URLImpl{constructor(e){const t=e[0];const r=e[1];let i=null;if(r!==undefined){i=a.basicURLParse(r);if(i==="failure"){throw new TypeError("Invalid base URL")}}const n=a.basicURLParse(t,{baseURL:i});if(n==="failure"){throw new TypeError("Invalid URL")}this._url=n}get href(){return a.serializeURL(this._url)}set href(e){const t=a.basicURLParse(e);if(t==="failure"){throw new TypeError("Invalid URL")}this._url=t}get origin(){return a.serializeURLOrigin(this._url)}get protocol(){return this._url.scheme+":"}set protocol(e){a.basicURLParse(e+":",{url:this._url,stateOverride:"scheme start"})}get username(){return this._url.username}set username(e){if(a.cannotHaveAUsernamePasswordPort(this._url)){return}a.setTheUsername(this._url,e)}get password(){return this._url.password}set password(e){if(a.cannotHaveAUsernamePasswordPort(this._url)){return}a.setThePassword(this._url,e)}get host(){const e=this._url;if(e.host===null){return""}if(e.port===null){return a.serializeHost(e.host)}return a.serializeHost(e.host)+":"+a.serializeInteger(e.port)}set host(e){if(this._url.cannotBeABaseURL){return}a.basicURLParse(e,{url:this._url,stateOverride:"host"})}get hostname(){if(this._url.host===null){return""}return a.serializeHost(this._url.host)}set hostname(e){if(this._url.cannotBeABaseURL){return}a.basicURLParse(e,{url:this._url,stateOverride:"hostname"})}get port(){if(this._url.port===null){return""}return a.serializeInteger(this._url.port)}set port(e){if(a.cannotHaveAUsernamePasswordPort(this._url)){return}if(e===""){this._url.port=null}else{a.basicURLParse(e,{url:this._url,stateOverride:"port"})}}get pathname(){if(this._url.cannotBeABaseURL){return this._url.path[0]}if(this._url.path.length===0){return""}return"/"+this._url.path.join("/")}set pathname(e){if(this._url.cannotBeABaseURL){return}this._url.path=[];a.basicURLParse(e,{url:this._url,stateOverride:"path start"})}get search(){if(this._url.query===null||this._url.query===""){return""}return"?"+this._url.query}set search(e){const t=this._url;if(e===""){t.query=null;return}const r=e[0]==="?"?e.substring(1):e;t.query="";a.basicURLParse(r,{url:t,stateOverride:"query"})}get hash(){if(this._url.fragment===null||this._url.fragment===""){return""}return"#"+this._url.fragment}set hash(e){if(e===""){this._url.fragment=null;return}const t=e[0]==="#"?e.substring(1):e;this._url.fragment="";a.basicURLParse(t,{url:this._url,stateOverride:"fragment"})}toJSON(){return this.href}}},3394:(e,t,r)=>{"use strict";const a=r(4886);const i=r(3185);const n=r(7537);const s=i.implSymbol;function URL(t){if(!this||this[s]||!(this instanceof URL)){throw new TypeError("Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.")}if(arguments.length<1){throw new TypeError("Failed to construct 'URL': 1 argument required, but only "+arguments.length+" present.")}const r=[];for(let e=0;e{"use strict";t.URL=r(3394)["interface"];t.serializeURL=r(5996).serializeURL;t.serializeURLOrigin=r(5996).serializeURLOrigin;t.basicURLParse=r(5996).basicURLParse;t.setTheUsername=r(5996).setTheUsername;t.setThePassword=r(5996).setThePassword;t.serializeHost=r(5996).serializeHost;t.serializeInteger=r(5996).serializeInteger;t.parseURL=r(5996).parseURL},5996:(e,t,r)=>{"use strict";const a=r(5477);const i=r(4256);const n={ftp:21,file:null,gopher:70,http:80,https:443,ws:80,wss:443};const s=Symbol("failure");function countSymbols(e){return a.ucs2.decode(e).length}function at(e,t){const r=e[t];return isNaN(r)?undefined:String.fromCodePoint(r)}function isASCIIDigit(e){return e>=48&&e<=57}function isASCIIAlpha(e){return e>=65&&e<=90||e>=97&&e<=122}function isASCIIAlphanumeric(e){return isASCIIAlpha(e)||isASCIIDigit(e)}function isASCIIHex(e){return isASCIIDigit(e)||e>=65&&e<=70||e>=97&&e<=102}function isSingleDot(e){return e==="."||e.toLowerCase()==="%2e"}function isDoubleDot(e){e=e.toLowerCase();return e===".."||e==="%2e."||e===".%2e"||e==="%2e%2e"}function isWindowsDriveLetterCodePoints(e,t){return isASCIIAlpha(e)&&(t===58||t===124)}function isWindowsDriveLetterString(e){return e.length===2&&isASCIIAlpha(e.codePointAt(0))&&(e[1]===":"||e[1]==="|")}function isNormalizedWindowsDriveLetterString(e){return e.length===2&&isASCIIAlpha(e.codePointAt(0))&&e[1]===":"}function containsForbiddenHostCodePoint(e){return e.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|%|\/|:|\?|@|\[|\\|\]/)!==-1}function containsForbiddenHostCodePointExcludingPercent(e){return e.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|\/|:|\?|@|\[|\\|\]/)!==-1}function isSpecialScheme(e){return n[e]!==undefined}function isSpecial(e){return isSpecialScheme(e.scheme)}function defaultPort(e){return n[e]}function percentEncode(e){let t=e.toString(16).toUpperCase();if(t.length===1){t="0"+t}return"%"+t}function utf8PercentEncode(e){const t=new Buffer(e);let r="";for(let e=0;e126}const o=new Set([32,34,35,60,62,63,96,123,125]);function isPathPercentEncode(e){return isC0ControlPercentEncode(e)||o.has(e)}const p=new Set([47,58,59,61,64,91,92,93,94,124]);function isUserinfoPercentEncode(e){return isPathPercentEncode(e)||p.has(e)}function percentEncodeChar(e,t){const r=String.fromCodePoint(e);if(t(e)){return utf8PercentEncode(r)}return r}function parseIPv4Number(e){let t=10;if(e.length>=2&&e.charAt(0)==="0"&&e.charAt(1).toLowerCase()==="x"){e=e.substring(2);t=16}else if(e.length>=2&&e.charAt(0)==="0"){e=e.substring(1);t=8}if(e===""){return 0}const r=t===10?/[^0-9]/:t===16?/[^0-9A-Fa-f]/:/[^0-7]/;if(r.test(e)){return s}return parseInt(e,t)}function parseIPv4(e){const t=e.split(".");if(t[t.length-1]===""){if(t.length>1){t.pop()}}if(t.length>4){return e}const r=[];for(const a of t){if(a===""){return e}const t=parseIPv4Number(a);if(t===s){return e}r.push(t)}for(let e=0;e255){return s}}if(r[r.length-1]>=Math.pow(256,5-r.length)){return s}let a=r.pop();let i=0;for(const e of r){a+=e*Math.pow(256,3-i);++i}return a}function serializeIPv4(e){let t="";let r=e;for(let e=1;e<=4;++e){t=String(r%256)+t;if(e!==4){t="."+t}r=Math.floor(r/256)}return t}function parseIPv6(e){const t=[0,0,0,0,0,0,0,0];let r=0;let i=null;let n=0;e=a.ucs2.decode(e);if(e[n]===58){if(e[n+1]!==58){return s}n+=2;++r;i=r}while(n6){return s}let a=0;while(e[n]!==undefined){let i=null;if(a>0){if(e[n]===46&&a<4){++n}else{return s}}if(!isASCIIDigit(e[n])){return s}while(isASCIIDigit(e[n])){const t=parseInt(at(e,n));if(i===null){i=t}else if(i===0){return s}else{i=i*10+t}if(i>255){return s}++n}t[r]=t[r]*256+i;++a;if(a===2||a===4){++r}}if(a!==4){return s}break}else if(e[n]===58){++n;if(e[n]===undefined){return s}}else if(e[n]!==undefined){return s}t[r]=a;++r}if(i!==null){let e=r-i;r=7;while(r!==0&&e>0){const a=t[i+e-1];t[i+e-1]=t[r];t[r]=a;--r;--e}}else if(i===null&&r!==8){return s}return t}function serializeIPv6(e){let t="";const r=findLongestZeroSequence(e);const a=r.idx;let i=false;for(let r=0;r<=7;++r){if(i&&e[r]===0){continue}else if(i){i=false}if(a===r){const e=r===0?"::":":";t+=e;i=true;continue}t+=e[r].toString(16);if(r!==7){t+=":"}}return t}function parseHost(e,t){if(e[0]==="["){if(e[e.length-1]!=="]"){return s}return parseIPv6(e.substring(1,e.length-1))}if(!t){return parseOpaqueHost(e)}const r=utf8PercentDecode(e);const a=i.toASCII(r,false,i.PROCESSING_OPTIONS.NONTRANSITIONAL,false);if(a===null){return s}if(containsForbiddenHostCodePoint(a)){return s}const n=parseIPv4(a);if(typeof n==="number"||n===s){return n}return a}function parseOpaqueHost(e){if(containsForbiddenHostCodePointExcludingPercent(e)){return s}let t="";const r=a.ucs2.decode(e);for(let e=0;er){t=a;r=i}a=null;i=0}else{if(a===null){a=n}++i}}if(i>r){t=a;r=i}return{idx:t,len:r}}function serializeHost(e){if(typeof e==="number"){return serializeIPv4(e)}if(e instanceof Array){return"["+serializeIPv6(e)+"]"}return e}function trimControlChars(e){return e.replace(/^[\u0000-\u001F\u0020]+|[\u0000-\u001F\u0020]+$/g,"")}function trimTabAndNewline(e){return e.replace(/\u0009|\u000A|\u000D/g,"")}function shortenPath(e){const t=e.path;if(t.length===0){return}if(e.scheme==="file"&&t.length===1&&isNormalizedWindowsDriveLetter(t[0])){return}t.pop()}function includesCredentials(e){return e.username!==""||e.password!==""}function cannotHaveAUsernamePasswordPort(e){return e.host===null||e.host===""||e.cannotBeABaseURL||e.scheme==="file"}function isNormalizedWindowsDriveLetter(e){return/^[A-Za-z]:$/.test(e)}function URLStateMachine(e,t,r,i,n){this.pointer=0;this.input=e;this.base=t||null;this.encodingOverride=r||"utf-8";this.stateOverride=n;this.url=i;this.failure=false;this.parseError=false;if(!this.url){this.url={scheme:"",username:"",password:"",host:null,port:null,path:[],query:null,fragment:null,cannotBeABaseURL:false};const e=trimControlChars(this.input);if(e!==this.input){this.parseError=true}this.input=e}const o=trimTabAndNewline(this.input);if(o!==this.input){this.parseError=true}this.input=o;this.state=n||"scheme start";this.buffer="";this.atFlag=false;this.arrFlag=false;this.passwordTokenSeenFlag=false;this.input=a.ucs2.decode(this.input);for(;this.pointer<=this.input.length;++this.pointer){const e=this.input[this.pointer];const t=isNaN(e)?undefined:String.fromCodePoint(e);const r=this["parse "+this.state](e,t);if(!r){break}else if(r===s){this.failure=true;break}}}URLStateMachine.prototype["parse scheme start"]=function parseSchemeStart(e,t){if(isASCIIAlpha(e)){this.buffer+=t.toLowerCase();this.state="scheme"}else if(!this.stateOverride){this.state="no scheme";--this.pointer}else{this.parseError=true;return s}return true};URLStateMachine.prototype["parse scheme"]=function parseScheme(e,t){if(isASCIIAlphanumeric(e)||e===43||e===45||e===46){this.buffer+=t.toLowerCase()}else if(e===58){if(this.stateOverride){if(isSpecial(this.url)&&!isSpecialScheme(this.buffer)){return false}if(!isSpecial(this.url)&&isSpecialScheme(this.buffer)){return false}if((includesCredentials(this.url)||this.url.port!==null)&&this.buffer==="file"){return false}if(this.url.scheme==="file"&&(this.url.host===""||this.url.host===null)){return false}}this.url.scheme=this.buffer;this.buffer="";if(this.stateOverride){return false}if(this.url.scheme==="file"){if(this.input[this.pointer+1]!==47||this.input[this.pointer+2]!==47){this.parseError=true}this.state="file"}else if(isSpecial(this.url)&&this.base!==null&&this.base.scheme===this.url.scheme){this.state="special relative or authority"}else if(isSpecial(this.url)){this.state="special authority slashes"}else if(this.input[this.pointer+1]===47){this.state="path or authority";++this.pointer}else{this.url.cannotBeABaseURL=true;this.url.path.push("");this.state="cannot-be-a-base-URL path"}}else if(!this.stateOverride){this.buffer="";this.state="no scheme";this.pointer=-1}else{this.parseError=true;return s}return true};URLStateMachine.prototype["parse no scheme"]=function parseNoScheme(e){if(this.base===null||this.base.cannotBeABaseURL&&e!==35){return s}else if(this.base.cannotBeABaseURL&&e===35){this.url.scheme=this.base.scheme;this.url.path=this.base.path.slice();this.url.query=this.base.query;this.url.fragment="";this.url.cannotBeABaseURL=true;this.state="fragment"}else if(this.base.scheme==="file"){this.state="file";--this.pointer}else{this.state="relative";--this.pointer}return true};URLStateMachine.prototype["parse special relative or authority"]=function parseSpecialRelativeOrAuthority(e){if(e===47&&this.input[this.pointer+1]===47){this.state="special authority ignore slashes";++this.pointer}else{this.parseError=true;this.state="relative";--this.pointer}return true};URLStateMachine.prototype["parse path or authority"]=function parsePathOrAuthority(e){if(e===47){this.state="authority"}else{this.state="path";--this.pointer}return true};URLStateMachine.prototype["parse relative"]=function parseRelative(e){this.url.scheme=this.base.scheme;if(isNaN(e)){this.url.username=this.base.username;this.url.password=this.base.password;this.url.host=this.base.host;this.url.port=this.base.port;this.url.path=this.base.path.slice();this.url.query=this.base.query}else if(e===47){this.state="relative slash"}else if(e===63){this.url.username=this.base.username;this.url.password=this.base.password;this.url.host=this.base.host;this.url.port=this.base.port;this.url.path=this.base.path.slice();this.url.query="";this.state="query"}else if(e===35){this.url.username=this.base.username;this.url.password=this.base.password;this.url.host=this.base.host;this.url.port=this.base.port;this.url.path=this.base.path.slice();this.url.query=this.base.query;this.url.fragment="";this.state="fragment"}else if(isSpecial(this.url)&&e===92){this.parseError=true;this.state="relative slash"}else{this.url.username=this.base.username;this.url.password=this.base.password;this.url.host=this.base.host;this.url.port=this.base.port;this.url.path=this.base.path.slice(0,this.base.path.length-1);this.state="path";--this.pointer}return true};URLStateMachine.prototype["parse relative slash"]=function parseRelativeSlash(e){if(isSpecial(this.url)&&(e===47||e===92)){if(e===92){this.parseError=true}this.state="special authority ignore slashes"}else if(e===47){this.state="authority"}else{this.url.username=this.base.username;this.url.password=this.base.password;this.url.host=this.base.host;this.url.port=this.base.port;this.state="path";--this.pointer}return true};URLStateMachine.prototype["parse special authority slashes"]=function parseSpecialAuthoritySlashes(e){if(e===47&&this.input[this.pointer+1]===47){this.state="special authority ignore slashes";++this.pointer}else{this.parseError=true;this.state="special authority ignore slashes";--this.pointer}return true};URLStateMachine.prototype["parse special authority ignore slashes"]=function parseSpecialAuthorityIgnoreSlashes(e){if(e!==47&&e!==92){this.state="authority";--this.pointer}else{this.parseError=true}return true};URLStateMachine.prototype["parse authority"]=function parseAuthority(e,t){if(e===64){this.parseError=true;if(this.atFlag){this.buffer="%40"+this.buffer}this.atFlag=true;const e=countSymbols(this.buffer);for(let t=0;tMath.pow(2,16)-1){this.parseError=true;return s}this.url.port=e===defaultPort(this.url.scheme)?null:e;this.buffer=""}if(this.stateOverride){return false}this.state="path start";--this.pointer}else{this.parseError=true;return s}return true};const c=new Set([47,92,63,35]);URLStateMachine.prototype["parse file"]=function parseFile(e){this.url.scheme="file";if(e===47||e===92){if(e===92){this.parseError=true}this.state="file slash"}else if(this.base!==null&&this.base.scheme==="file"){if(isNaN(e)){this.url.host=this.base.host;this.url.path=this.base.path.slice();this.url.query=this.base.query}else if(e===63){this.url.host=this.base.host;this.url.path=this.base.path.slice();this.url.query="";this.state="query"}else if(e===35){this.url.host=this.base.host;this.url.path=this.base.path.slice();this.url.query=this.base.query;this.url.fragment="";this.state="fragment"}else{if(this.input.length-this.pointer-1===0||!isWindowsDriveLetterCodePoints(e,this.input[this.pointer+1])||this.input.length-this.pointer-1>=2&&!c.has(this.input[this.pointer+2])){this.url.host=this.base.host;this.url.path=this.base.path.slice();shortenPath(this.url)}else{this.parseError=true}this.state="path";--this.pointer}}else{this.state="path";--this.pointer}return true};URLStateMachine.prototype["parse file slash"]=function parseFileSlash(e){if(e===47||e===92){if(e===92){this.parseError=true}this.state="file host"}else{if(this.base!==null&&this.base.scheme==="file"){if(isNormalizedWindowsDriveLetterString(this.base.path[0])){this.url.path.push(this.base.path[0])}else{this.url.host=this.base.host}}this.state="path";--this.pointer}return true};URLStateMachine.prototype["parse file host"]=function parseFileHost(e,t){if(isNaN(e)||e===47||e===92||e===63||e===35){--this.pointer;if(!this.stateOverride&&isWindowsDriveLetterString(this.buffer)){this.parseError=true;this.state="path"}else if(this.buffer===""){this.url.host="";if(this.stateOverride){return false}this.state="path start"}else{let e=parseHost(this.buffer,isSpecial(this.url));if(e===s){return s}if(e==="localhost"){e=""}this.url.host=e;if(this.stateOverride){return false}this.buffer="";this.state="path start"}}else{this.buffer+=t}return true};URLStateMachine.prototype["parse path start"]=function parsePathStart(e){if(isSpecial(this.url)){if(e===92){this.parseError=true}this.state="path";if(e!==47&&e!==92){--this.pointer}}else if(!this.stateOverride&&e===63){this.url.query="";this.state="query"}else if(!this.stateOverride&&e===35){this.url.fragment="";this.state="fragment"}else if(e!==undefined){this.state="path";if(e!==47){--this.pointer}}return true};URLStateMachine.prototype["parse path"]=function parsePath(e){if(isNaN(e)||e===47||isSpecial(this.url)&&e===92||!this.stateOverride&&(e===63||e===35)){if(isSpecial(this.url)&&e===92){this.parseError=true}if(isDoubleDot(this.buffer)){shortenPath(this.url);if(e!==47&&!(isSpecial(this.url)&&e===92)){this.url.path.push("")}}else if(isSingleDot(this.buffer)&&e!==47&&!(isSpecial(this.url)&&e===92)){this.url.path.push("")}else if(!isSingleDot(this.buffer)){if(this.url.scheme==="file"&&this.url.path.length===0&&isWindowsDriveLetterString(this.buffer)){if(this.url.host!==""&&this.url.host!==null){this.parseError=true;this.url.host=""}this.buffer=this.buffer[0]+":"}this.url.path.push(this.buffer)}this.buffer="";if(this.url.scheme==="file"&&(e===undefined||e===63||e===35)){while(this.url.path.length>1&&this.url.path[0]===""){this.parseError=true;this.url.path.shift()}}if(e===63){this.url.query="";this.state="query"}if(e===35){this.url.fragment="";this.state="fragment"}}else{if(e===37&&(!isASCIIHex(this.input[this.pointer+1])||!isASCIIHex(this.input[this.pointer+2]))){this.parseError=true}this.buffer+=percentEncodeChar(e,isPathPercentEncode)}return true};URLStateMachine.prototype["parse cannot-be-a-base-URL path"]=function parseCannotBeABaseURLPath(e){if(e===63){this.url.query="";this.state="query"}else if(e===35){this.url.fragment="";this.state="fragment"}else{if(!isNaN(e)&&e!==37){this.parseError=true}if(e===37&&(!isASCIIHex(this.input[this.pointer+1])||!isASCIIHex(this.input[this.pointer+2]))){this.parseError=true}if(!isNaN(e)){this.url.path[0]=this.url.path[0]+percentEncodeChar(e,isC0ControlPercentEncode)}}return true};URLStateMachine.prototype["parse query"]=function parseQuery(e,t){if(isNaN(e)||!this.stateOverride&&e===35){if(!isSpecial(this.url)||this.url.scheme==="ws"||this.url.scheme==="wss"){this.encodingOverride="utf-8"}const t=new Buffer(this.buffer);for(let e=0;e126||t[e]===34||t[e]===35||t[e]===60||t[e]===62){this.url.query+=percentEncode(t[e])}else{this.url.query+=String.fromCodePoint(t[e])}}this.buffer="";if(e===35){this.url.fragment="";this.state="fragment"}}else{if(e===37&&(!isASCIIHex(this.input[this.pointer+1])||!isASCIIHex(this.input[this.pointer+2]))){this.parseError=true}this.buffer+=t}return true};URLStateMachine.prototype["parse fragment"]=function parseFragment(e){if(isNaN(e)){}else if(e===0){this.parseError=true}else{if(e===37&&(!isASCIIHex(this.input[this.pointer+1])||!isASCIIHex(this.input[this.pointer+2]))){this.parseError=true}this.url.fragment+=percentEncodeChar(e,isC0ControlPercentEncode)}return true};function serializeURL(e,t){let r=e.scheme+":";if(e.host!==null){r+="//";if(e.username!==""||e.password!==""){r+=e.username;if(e.password!==""){r+=":"+e.password}r+="@"}r+=serializeHost(e.host);if(e.port!==null){r+=":"+e.port}}else if(e.host===null&&e.scheme==="file"){r+="//"}if(e.cannotBeABaseURL){r+=e.path[0]}else{for(const t of e.path){r+="/"+t}}if(e.query!==null){r+="?"+e.query}if(!t&&e.fragment!==null){r+="#"+e.fragment}return r}function serializeOrigin(e){let t=e.scheme+"://";t+=serializeHost(e.host);if(e.port!==null){t+=":"+e.port}return t}e.exports.serializeURL=serializeURL;e.exports.serializeURLOrigin=function(t){switch(t.scheme){case"blob":try{return e.exports.serializeURLOrigin(e.exports.parseURL(t.path[0]))}catch(e){return"null"}case"ftp":case"gopher":case"http":case"https":case"ws":case"wss":return serializeOrigin({scheme:t.scheme,host:t.host,port:t.port});case"file":return"file://";default:return"null"}};e.exports.basicURLParse=function(e,t){if(t===undefined){t={}}const r=new URLStateMachine(e,t.baseURL,t.encodingOverride,t.url,t.stateOverride);if(r.failure){return"failure"}return r.url};e.exports.setTheUsername=function(e,t){e.username="";const r=a.ucs2.decode(t);for(let t=0;t{"use strict";e.exports.mixin=function mixin(e,t){const r=Object.getOwnPropertyNames(t);for(let a=0;a{e.exports=wrappy;function wrappy(e,t){if(e&&t)return wrappy(e)(t);if(typeof e!=="function")throw new TypeError("need wrapper function");Object.keys(e).forEach((function(t){wrapper[t]=e[t]}));return wrapper;function wrapper(){var t=new Array(arguments.length);for(var r=0;r{if(e.result===l.ExecutionResult.NOT_OK){this.logger.error(`Failed to execute ${e.command} :`);e.errorMessage.split("\n").forEach((e=>this.logger.error(e)))}}))}printNodeExecutionFailure(e){e.forEach((e=>{if(this.commandExecutionFailure(e.executeCommandResults)){this.logger.error(`Failed to execute commands for ${e.node.project}`);this.printExecutionFailure(e.executeCommandResults)}}))}archiveArtifactsFailure(e){return!!e.find((e=>e.status==="rejected"))}nodeExecutionFailure(e){return e.reduce(((e,t)=>e||this.commandExecutionFailure(t.executeCommandResults)),false)}commandExecutionFailure(e){return!!e.find((e=>e.result===l.ExecutionResult.NOT_OK))}}t.Runner=Runner},6759:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.constants=void 0;t.constants={CONTAINER:{ENTRY_POINT:"entry-point"},GITHUB:{TOKEN:"token"}}},6848:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.EntryPoint=void 0;var r;(function(e){e[e["CLI"]=0]="CLI";e[e["GITHUB_EVENT"]=1]="GITHUB_EVENT"})(r=t.EntryPoint||(t.EntryPoint={}))},293:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.InvalidInput=t.NotFoundError=void 0;class NotFoundError extends Error{}t.NotFoundError=NotFoundError;class InvalidInput extends Error{}t.InvalidInput=InvalidInput},4396:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.ExecutionResult=void 0;var r;(function(e){e["OK"]="OK";e["NOT_OK"]="NOT OK";e["SKIP"]="SKIP"})(r=t.ExecutionResult||(t.ExecutionResult={}))},6696:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.ExecutionPhase=void 0;var r;(function(e){e["BEFORE"]="before";e["CURRENT"]="commands";e["AFTER"]="after"})(r=t.ExecutionPhase||(t.ExecutionPhase={}))},3947:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.defaultFlowResult=void 0;t.defaultFlowResult={checkoutInfo:[],artifactUploadResults:[],executionResult:{before:[],after:[],commands:[]}}},8373:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.defaultInputValues=t.LoggerLevel=t.FlowType=void 0;var r;(function(e){e["CROSS_PULL_REQUEST"]="cross_pr";e["FULL_DOWNSTREAM"]="full_downstream";e["SINGLE_PULL_REQUEST"]="single_pr";e["BRANCH"]="branch"})(r=t.FlowType||(t.FlowType={}));var a;(function(e){e[e["INFO"]=0]="INFO";e[e["TRACE"]=1]="TRACE";e[e["DEBUG"]=2]="DEBUG"})(a=t.LoggerLevel||(t.LoggerLevel={}));t.defaultInputValues={definitionFile:"",skipExecution:false,skipCheckout:false,skipParallelCheckout:false,loggerLevel:a.INFO}},6196:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.NodeExecutionLevel=void 0;var r;(function(e){e["UPSTREAM"]="upstream";e["CURRENT"]="current";e["DOWNSTREAM"]="downstream"})(r=t.NodeExecutionLevel||(t.NodeExecutionLevel={}))},5129:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var i=Object.getOwnPropertyDescriptor(t,r);if(!i||("get"in i?!t.__esModule:i.writable||i.configurable)){i={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,i)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.ActionArguments=void 0;const o=r(8373);const p=s(r(2186));const c=s(r(3802));const l=r(8081);const d=r(293);let u=class ActionArguments{getFlowType(e){switch(e){case"pull-request":return o.FlowType.CROSS_PULL_REQUEST;case"fdb":return o.FlowType.FULL_DOWNSTREAM;case"single":return o.FlowType.SINGLE_PULL_REQUEST;case"branch":return o.FlowType.BRANCH;default:throw new d.InvalidInput("Invalid flow-type")}}getLoggerLevel(e){switch(e){case"info":case"":return o.LoggerLevel.INFO;case"debug":return o.LoggerLevel.DEBUG;case"trace":return o.LoggerLevel.TRACE;default:throw new d.InvalidInput("Invalid logger-level")}}getAdditionalFlags(e){if(e===""){return{}}const t={};e.trim().split(";").forEach((e=>{const r=e.trim().split(" ");if(r[0].startsWith("--")){r[0]=r[0].substring(2)}else if(r[0].startsWith("-")){r[0]=r[0].substring(1)}if(r.length===1){t[r[0]]=true}else{t[r[0]]=r.slice(1).join(" ")}}));return t}parse(){const e={definitionFile:p.getInput("definition-file"),flowType:this.getFlowType(p.getInput("flow-type")),skipExecution:p.getBooleanInput("skip-execution"),skipParallelCheckout:p.getBooleanInput("skip-parallel-checkout"),skipProjectCheckout:p.getInput("skip-project-checkout").split(",").map((e=>e.trim())),skipProjectExecution:p.getInput("skip-project-execution").split(",").map((e=>e.trim())),skipCheckout:p.getBooleanInput("skip-checkout"),startProject:p.getInput("starting-project"),loggerLevel:this.getLoggerLevel(p.getInput("logger-level")),annotationsPrefix:p.getInput("annotations-prefix"),customCommandTreatment:p.getInput("custom-command-treatment")===""?[]:p.getInput("custom-command-treatment").split(","),...this.getAdditionalFlags(p.getInput("additional-flags"))};c.default.get(l.InputService).updateInputs(e)}};u=n([(0,c.Service)()],u);t.ActionArguments=u},7774:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var i=Object.getOwnPropertyDescriptor(t,r);if(!i||("get"in i?!t.__esModule:i.writable||i.configurable)){i={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,i)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var o=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:true});t.ArtifactService=void 0;const p=s(r(3802));const c=r(8114);const l=r(8501);const d=r(9837);let u=class ArtifactService{constructor(){this.uploadService=p.default.get(l.UploadService);this.logger=p.default.get(d.LoggerService).logger}getNodesToArchive(e,t){const r=t.archiveArtifacts?.dependencies??c.ArchiveDependencies.NONE;let a;switch(r){case c.ArchiveDependencies.NONE:a=t.archiveArtifacts?[t]:[];break;case c.ArchiveDependencies.ALL:a=e.filter((e=>!!e.archiveArtifacts));break;default:a=e.filter((e=>e.archiveArtifacts&&(r.includes(e.project)||e.project===t.project)))}return a}async uploadNodes(e,t){const r=this.getNodesToArchive(e,t);this.logger.info(r.length>0?`Archiving artifacts for ${r.map((e=>e.project))}`:"No artifacts to archive");const a=r.map((async e=>{this.logger.info(`Project [${e.project}]. Uploading artifacts...`);return this.uploadService.upload(e.archiveArtifacts,e.project)}));const i=await Promise.allSettled(a);i.forEach((e=>{if(e.status==="fulfilled"){if(e.value.artifactItems.length>0){this.logger.info(`Artifact ${e.value.artifactName} uploaded ${e.value.artifactItems.length} files: ${e.value.artifactItems}`)}if(e.value.failedItems.length>0){this.logger.info(`Artifact ${e.value.artifactName} failed to upload ${e.value.failedItems.length} files: ${e.value.failedItems}`)}}else{this.logger.info(`Failure in uploading artifacts for one or more nodes: ${e.reason}`)}}));return i}};u=n([(0,p.Service)(),o("design:paramtypes",[])],u);t.ArtifactService=u},8501:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var i=Object.getOwnPropertyDescriptor(t,r);if(!i||("get"in i?!t.__esModule:i.writable||i.configurable)){i={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,i)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var o=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};var p=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.UploadService=void 0;const c=r(8090);const l=p(r(1017));const d=s(r(3802));const u=r(7147);const m=r(3837);const h=r(9837);const g=r(8114);const v=s(r(2605));const y=r(8410);const b=(0,m.promisify)(u.stat);let w=class UploadService{constructor(){this.logger=d.default.get(h.LoggerService).logger}validateArtifactName(e){return e.replace(/[/\s":<>*?\\]/g,"_")}getMultiPathLCA(e){if(e.length<2){throw new Error("At least two search paths must be provided")}const t=[];const r=[];let a=Number.MAX_SAFE_INTEGER;for(const t of e){const e=l.default.normalize(t).split(l.default.sep);a=Math.min(a,e.length);r.push(e)}if(e[0].startsWith(l.default.sep)){t.push(l.default.sep)}for(let e=0;e1){this.logger.info("Multiple search paths detected. Calculating the least common ancestor of all paths");const t=this.getMultiPathLCA(e);this.logger.info(`The least common ancestor is ${t}. This will be the root directory of the artifact`);return t}if(t.length===1&&e[0]===t[0]){return l.default.dirname(t[0])}return e[0]}async findFilesToUpload(e,t={followSymbolicLinks:true,implicitDescendants:true,omitBrokenSymbolicLinks:true}){const r=[];const a=await(0,c.create)(e,t);const i=await a.glob();const n=new Set;for(const e of i){const t=await b(e);if(!t.isDirectory()){r.push(e);if(n.has(e.toLowerCase())){this.logger.info(`Uploads are case insensitive: ${e} was detected that it will be overwritten by another file with the same path`)}else{n.add(e.toLowerCase())}}}const s=this.getRootDir(a.getSearchPaths(),r);return{filesToUpload:r,rootDirectory:s}}noFileFound(e,t){switch(e["if-no-files-found"]){case g.IfNoFile.ERROR:throw(0,y.logAndThrow)(`No files were found with the provided path: ${t}. No artifacts will be uploaded.`);case g.IfNoFile.IGNORE:this.logger.info(`No files were found with the provided path: ${t}. No artifacts will be uploaded.`);break;case g.IfNoFile.WARN:default:this.logger.warn(`No files were found with the provided path: ${t}. No artifacts will be uploaded.`)}}async upload(e,t){const r=e.paths.filter((e=>e.path)).reduce(((e,t)=>e.concat(t.path,"\n")),"");const{filesToUpload:a,rootDirectory:i}=await this.findFilesToUpload(r);const n=this.validateArtifactName(e.name??t);if(a.length===0){this.noFileFound(e,r);return{artifactName:n,artifactItems:[],failedItems:[],size:0}}else{this.logger.debug(`With the provided path (${r}), there will be ${a.length} file(s) uploaded`);this.logger.debug(`Root artifact directory is ${i}`);return v.create().uploadArtifact(n,a,i,{continueOnError:false})}}};w=n([(0,d.Service)(),o("design:paramtypes",[])],w);t.UploadService=w},5173:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var i=Object.getOwnPropertyDescriptor(t,r);if(!i||("get"in i?!t.__esModule:i.writable||i.configurable)){i={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,i)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var o=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};var p=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.CheckoutService=void 0;const c=r(6229);const l=r(9837);const d=r(8114);const u=s(r(3802));const m=r(5630);const h=p(r(1017));const g=r(8031);const v=r(7616);const y=r(8410);const b=r(293);let w=class CheckoutService{constructor(){this.config=u.default.get(c.ConfigurationService);this.logger=u.default.get(l.LoggerService).logger}getProjectDir(e){return h.default.join(this.config.getRootFolder(),e.project.replace(/[/\s]/g,"_"))}async cloneNode(e){const t=[];e.clone?.forEach((r=>{t.push((0,m.copy)(this.getProjectDir(e),h.default.join(this.config.getRootFolder(),r)))}));await Promise.all(t)}async checkoutNode(e){if(this.config.skipCheckout(e)){this.logger.debug(`[${e.project}] Checkout skipped`);return undefined}const t=await this.getCheckoutInfo(e);this.logger.debug(`[${e.project}] CheckoutInfo - ${JSON.stringify(t)}`);const r=u.default.get(v.GitCLIService);const a=this.config.getCloneUrl(t.targetGroup,t.targetName);await r.clone(a,t.repoDir,t.targetBranch).catch((r=>{this.logger.debug(JSON.stringify(r));(0,y.logAndThrow)(`[${e.project}] Error cloning ${t.targetGroup}/${t.targetName} and switching to target branch ${t.targetBranch}`)}));if(t.merge){this.logger.debug(`[${e.project}] Merging ${t.sourceGroup}/${t.sourceName}:${t.sourceBranch}\n into ${t.targetGroup}/${t.targetName}:${t.targetBranch}`);const a=this.config.getCloneUrl(t.sourceGroup,t.sourceName);await r.merge(t.repoDir,a,t.sourceBranch).catch((r=>{this.logger.debug(JSON.stringify(r));(0,y.logAndThrow)(`[${e.project}] Error merging ${t.sourceGroup}/${t.sourceName}:${t.sourceBranch}\n into ${t.targetGroup}/${t.targetName}:${t.targetBranch}`)}))}await this.cloneNode(e);this.logger.debug(`[${e.project}] Checked out`);return t}async getCheckoutInfo(e){const t=u.default.get(g.GithubAPIService);const r=this.config.getStarterNode();const a=this.config.getTargetProject();const i={mappedBranch:(0,d.getMappedTarget)(r.project,r.mapping,e.project,e.mapping,a.branch),name:e.project.split("/")[1],group:e.project.split("/")[0]};const n=this.config.getSourceProject();const s=await t.getForkName(i.group,n.group,i.name).then((async e=>{const r=await t.hasPullRequest(i.group,i.name,`${n.group}/${e}:${n.branch}`,i.mappedBranch);return{forkName:e,hasPullRequest:r}})).catch((e=>{if(e instanceof b.NotFoundError){return{forkName:"",hasPullRequest:false}}throw e}));if(s.hasPullRequest){return{sourceBranch:n.branch,sourceGroup:n.group,sourceName:s.forkName,targetBranch:i.mappedBranch,targetGroup:i.group,targetName:i.name,repoDir:this.getProjectDir(e),merge:true}}const o=await t.hasPullRequest(i.group,i.name,`${i.group}:${n.branch}`,i.mappedBranch);if(o){return{sourceBranch:n.branch,sourceGroup:i.group,sourceName:i.name,targetBranch:i.mappedBranch,targetGroup:i.group,targetName:i.name,repoDir:this.getProjectDir(e),merge:true}}return{sourceBranch:i.mappedBranch,sourceGroup:i.group,sourceName:i.name,targetBranch:i.mappedBranch,targetGroup:i.group,targetName:i.name,repoDir:this.getProjectDir(e),merge:false}}async checkoutDefinitionTreeSequential(){const e=[];for(const t of this.config.nodeChain){const r=await this.checkoutNode(t);e.push({node:t,checkoutInfo:r})}return e}async checkoutDefinitionTreeParallel(){return Promise.all(this.config.nodeChain.map((async e=>this.checkoutNode(e).then((t=>({node:e,checkoutInfo:t}))))))}async checkoutDefinitionTree(){return this.config.skipParallelCheckout()?this.checkoutDefinitionTreeSequential():this.checkoutDefinitionTreeParallel()}};w=n([(0,u.Service)(),o("design:paramtypes",[])],w);t.CheckoutService=w},4303:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var i=Object.getOwnPropertyDescriptor(t,r);if(!i||("get"in i?!t.__esModule:i.writable||i.configurable)){i={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,i)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var o=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:true});t.ExecuteCommandService=void 0;const p=s(r(3802));const c=r(4396);const l=r(5676);const d=r(9425);const u=r(9837);const m=r(6229);const h=r(6196);let g=class ExecuteCommandService{constructor(e,t,r){this._commandTreatmentDelegator=e;this._commandExecutorDelegator=t;this._configurationService=r}async executeCommand(e,t){const r=this._commandTreatmentDelegator.treatCommand(e,this._configurationService.getTreatmentOptions());return this._commandExecutorDelegator.executeCommand(r,t)}async executeChainCommands(e,t){const r=[];for(const{node:a,cwd:i}of e){const e=this.getNodeCommands(a,t,this._configurationService.getNodeExecutionLevel(a));r.push(await this.executeNodeCommands(a,e??[],this._configurationService.skipExecution(a),i))}return r}getNodeCommands(e,t,r){const a=e[`${t}`];let i;if(a){i=a[`${r}`].length?a[`${r}`]:a[`${h.NodeExecutionLevel.CURRENT}`]}if(!a){p.default.get(u.LoggerService).logger.debug(`No commands defined for project ${e.project} and phase ${t}`)}else if(!i||!i.length){const a=r!==h.NodeExecutionLevel.CURRENT?`${r} or ${h.NodeExecutionLevel.CURRENT}`:h.NodeExecutionLevel.CURRENT;p.default.get(u.LoggerService).logger.debug(`No commands defined for project ${e.project} phase ${t} and level ${a}`)}return i}async executeNodeCommands(e,t,r,a){const i={node:e,executeCommandResults:[]};for(const e of t){i.executeCommandResults.push(r?{startingDate:Date.now(),endingDate:Date.now(),command:e,result:c.ExecutionResult.SKIP,errorMessage:"",time:0}:await this.executeCommand(e,a))}return i}};g=n([(0,p.Service)(),o("design:paramtypes",[l.CommandTreatmentDelegator,d.CommandExecutorDelegator,m.ConfigurationService])],g);t.ExecuteCommandService=g},652:function(e,t,r){"use strict";var a=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};Object.defineProperty(t,"__esModule",{value:true});t.BashExecutor=void 0;const i=r(1514);const n=r(3802);let s=class BashExecutor{async execute(e,t){await(0,i.exec)(e,[],{cwd:t})}};s=a([(0,n.Service)()],s);t.BashExecutor=s},9425:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var i=Object.getOwnPropertyDescriptor(t,r);if(!i||("get"in i?!t.__esModule:i.writable||i.configurable)){i={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,i)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var o=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:true});t.CommandExecutorDelegator=void 0;const p=s(r(3802));const c=r(652);const l=r(7019);const d=r(4396);const u=r(9837);const m=r(3678);let h=class CommandExecutorDelegator{constructor(e,t){this._bashExecutor=e;this._exportExecutor=t}async executeCommand(e,t){const r=process.hrtime();const a=Date.now();let i;let n="";try{this.isExport(e)?await this._exportExecutor.execute(e,t):await this._bashExecutor.execute(e,t);i=d.ExecutionResult.OK}catch(t){n=t instanceof Error?t.message:"unknown";p.default.get(u.LoggerService).logger.error(`Error executing command ${e}. ${n}`);i=d.ExecutionResult.NOT_OK}return{startingDate:a,command:e,result:i,errorMessage:n,endingDate:Date.now(),time:(0,m.hrtimeToMs)(r)}}isExport(e){return e.trim().match(/^export .*=/)!==null}};h=n([(0,p.Service)(),o("design:paramtypes",[c.BashExecutor,l.ExportExecutor])],h);t.CommandExecutorDelegator=h},7019:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var i=Object.getOwnPropertyDescriptor(t,r);if(!i||("get"in i?!t.__esModule:i.writable||i.configurable)){i={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,i)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.ExportExecutor=void 0;const o=r(1514);const p=s(r(3802));const c=r(9837);let l=class ExportExecutor{async execute(e,t){const r=new ExpressionCommand(e);process.env[r.variable]=await this.executeExpression(r.expression,t);p.default.get(c.LoggerService).logger.debug(`The variable \`${r.variable}\` has been set to the env with the value \`${process.env[r.variable]}\``)}async executeExpression(e,t){const r=e.match(/`(.*)`/);const a=r?r[1]:undefined;if(a){let e="";const r={listeners:{stdout:t=>{e+=t.toString()}},cwd:t};await(0,o.exec)(a,[],r);return e}return e.replace(/['"]+/g,"")}};l=n([(0,p.Service)()],l);t.ExportExecutor=l;class ExpressionCommand{constructor(e){const t=this.getCommandArray(e);this._variable=t[1];this._expression=t[2]}getCommandArray(e){const t=e.match(/^export (\w+)=(.*)/);if(!t||t.length!==3){const t=`The export command ${e} is not properly defined. It should be something like "export VARIBLE=expression". Please fix it an try again.`;p.default.get(c.LoggerService).logger.error(t);throw new Error(t)}return t}get variable(){return this._variable}get expression(){return this._expression}}},4191:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.CommandBuilder=void 0;class CommandBuilder{constructor(e,t){this.treatedCommand=e;this.options=t}treat(e){this.treatedCommand=e.treat(this.treatedCommand,this.options);return this}build(){return this.treatedCommand}}t.CommandBuilder=CommandBuilder},5676:function(e,t,r){"use strict";var a=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};var i=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:true});t.CommandTreatmentDelegator=void 0;const n=r(3802);const s=r(4191);const o=r(3735);const p=r(6741);const c=r(6495);let l=class CommandTreatmentDelegator{constructor(e,t,r){this._environmentCommandTreatment=e;this._mavenCommandTreatment=t;this._regexCommandTreatment=r}treatCommand(e,t){return new s.CommandBuilder(e,t).treat(this._environmentCommandTreatment).treat(this._mavenCommandTreatment).treat(this._regexCommandTreatment).build()}};l=a([(0,n.Service)(),i("design:paramtypes",[o.EnvironmentCommandTreatment,p.MavenCommandTreatment,c.RegexCommandTreatment])],l);t.CommandTreatmentDelegator=l},3735:function(e,t,r){"use strict";var a=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};Object.defineProperty(t,"__esModule",{value:true});t.EnvironmentCommandTreatment=void 0;const i=r(3802);let n=class EnvironmentCommandTreatment{treat(e,t){const r=this.getVariablesFromCommand(e);return r?.length>0?r.reduce(((e,t)=>e.replace(t[0],process.env[t[1]]??"")),e):e}getVariablesFromCommand(e){return[...e.matchAll(/\${{ env\.(\w+) }}/g)]}};n=a([(0,i.Service)()],n);t.EnvironmentCommandTreatment=n},6741:function(e,t,r){"use strict";var a=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};Object.defineProperty(t,"__esModule",{value:true});t.MavenCommandTreatment=void 0;const i=r(3802);let n=class MavenCommandTreatment{treat(e,t){return!this.isMavenCommand(e,t?.mavenBinary)?e:`${e} -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -B`}isMavenCommand(e,t="mvn"){return new RegExp(`.*${t} .*`).test(e)}};n=a([(0,i.Service)()],n);t.MavenCommandTreatment=n},6495:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var i=Object.getOwnPropertyDescriptor(t,r);if(!i||("get"in i?!t.__esModule:i.writable||i.configurable)){i={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,i)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var o;Object.defineProperty(t,"__esModule",{value:true});t.RegexCommandTreatment=void 0;const p=s(r(3802));const c=r(9837);let l=o=class RegexCommandTreatment{treat(e,t){if(t?.replaceExpressions){p.default.get(c.LoggerService).logger.debug(`[${o.name}] Replacing command: \`${e}\` by expressions: '${t.replaceExpressions}'`);const r=t.replaceExpressions.reduce(((e,t)=>this.treatReplaceEx(e,t)),e);p.default.get(c.LoggerService).logger.debug(r===e?`[${o.name}] No replacement for \`${e}\``:`[${o.name}] Replaced to: \`${r}\``);return r}else{return e}}treatReplaceEx(e,t){const r=this.getReplacementExpression(t);return e.replace(r.regEx,r.replace)}getReplacementExpression(e){const t=e.split("||");return new ReplacementExpression(this.createRegex(t[0]),t[1])}createRegex(e){const[,t,r]=e.split("/");if(t){return r?new RegExp(t,r):new RegExp(t)}return new RegExp(e)}};l=o=n([(0,p.Service)()],l);t.RegexCommandTreatment=l;class ReplacementExpression{constructor(e,t){this._regEx=e;this._replace=t}get regEx(){return this._regEx}get replace(){return this._replace}}},1055:function(e,t,r){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.ActionConfiguration=void 0;const i=r(6759);const n=r(332);const s=r(8410);const o=a(r(3802));const p=r(3977);const c=r(8373);class ActionConfiguration extends n.BaseConfiguration{loadProject(){if(this.parsedInputs.flowType===c.FlowType.BRANCH){const e=this.parsedInputs.startProject??this.gitConfiguration.repository;const t=e.split("/");const r={branch:this.parsedInputs.branch??this.gitConfiguration.ref,repository:e,name:t[t.length-1],group:this.parsedInputs.group??t[0]};return{source:r,target:r}}else{return super.loadProject()}}loadGitConfiguration(){const e=process.env.GITHUB_SERVER_URL?process.env.GITHUB_SERVER_URL.replace(/\/$/,""):"https://github.com";return{action:process.env.GITHUB_ACTION,actor:process.env.GITHUB_ACTOR,author:process.env.GITHUB_AUTHOR,serverUrl:e,serverUrlWithToken:e.replace("://",`://${o.default.get(i.constants.GITHUB.TOKEN)}@`),jobId:process.env.GITHUB_JOB,ref:process.env.GITHUB_REF,workflow:process.env.GITHUB_WORKFLOW,repository:process.env.GITHUB_REPOSITORY}}async loadGitEvent(){if(this.parsedInputs.flowType===c.FlowType.BRANCH){return{}}if(process.env.GITHUB_EVENT_PATH){this.logger.debug("Getting pull request information");const e=await(0,p.readFile)(process.env.GITHUB_EVENT_PATH,{encoding:"utf8"});return JSON.parse(e).pull_request}(0,s.logAndThrow)("Make sure you are running it in a github environment")}loadToken(){if(process.env.GITHUB_TOKEN){o.default.set(i.constants.GITHUB.TOKEN,process.env.GITHUB_TOKEN)}else{(0,s.logAndThrow)("A github token is needed")}}getFlowType(){return this.parsedInputs.flowType}}t.ActionConfiguration=ActionConfiguration},332:function(e,t,r){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.BaseConfiguration=void 0;const i=r(8373);const n=r(8081);const s=r(9837);const o=r(8410);const p=a(r(3802));class BaseConfiguration{constructor(){this.logger=p.default.get(s.LoggerService).logger;this._parsedInputs=i.defaultInputValues;this._gitEventData={};this._gitConfiguration={};this._sourceProject={};this._targetProject={}}async init(){this._parsedInputs=this.loadParsedInput();this.loadToken();this._gitEventData=await this.loadGitEvent();this._gitConfiguration=this.loadGitConfiguration();const{source:e,target:t}=this.loadProject();this._sourceProject=e;this._targetProject=t}get gitEventData(){return this._gitEventData}get gitConfiguration(){return this._gitConfiguration}get sourceProject(){return this._sourceProject}get targetProject(){return this._targetProject}get parsedInputs(){return this._parsedInputs}loadProject(){return{source:{branch:this.gitEventData.head.ref,repository:this.gitEventData.head.repo?.full_name,name:this.gitEventData.head.repo?.name,group:this.gitEventData.head.repo?.owner.login},target:{branch:this.gitEventData.base.ref,repository:this.gitEventData.base.repo.full_name,name:this.gitEventData.base.repo.name,group:this.gitEventData.base.repo.owner.login}}}loadParsedInput(){const e=p.default.get(n.InputService).inputs;e.customCommandTreatment?.forEach((e=>{if(e.split("||").length!==2){(0,o.logAndThrow)("Invalid format for custom command treatment. Required format: Regex||ReplaceRegex")}}));if(e.startProject&&e.startProject.split("/").length!==2){(0,o.logAndThrow)("Invalid start project. Start project must be of the form OWNER/PROJECT")}this.logger.debug(`Received input: ${JSON.stringify(e)}`);return e}}t.BaseConfiguration=BaseConfiguration},2336:function(e,t,r){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.CLIConfiguration=void 0;const i=r(6759);const n=r(8373);const s=r(332);const o=r(2322);const p=r(8410);const c=a(r(3802));class CLIConfiguration extends s.BaseConfiguration{loadProject(){if(this.parsedInputs.CLISubCommand===n.FlowType.BRANCH){const e=this.parsedInputs.startProject.split("/");const t={branch:this.parsedInputs.branch,name:e[e.length-1],group:this.parsedInputs.group??e[0],repository:this.parsedInputs.startProject};return{source:t,target:t}}else{return super.loadProject()}}loadGitConfiguration(){const e=process.env.GITHUB_SERVER_URL?process.env.GITHUB_SERVER_URL.replace(/\/$/,""):"https://github.com";let t={serverUrl:e,serverUrlWithToken:e.replace("://",`://${c.default.get(i.constants.GITHUB.TOKEN)}@`)};if(this.parsedInputs.CLISubCommand===n.FlowType.BRANCH){const e=this.parsedInputs.group??this.parsedInputs.startProject?.split("/")[0];if(!e){(0,p.logAndThrow)("Specify group option or set project name as GROUP_NAME/REPO_NAME")}t={...t,actor:e,ref:this.parsedInputs.branch}}return t}async loadGitEvent(){if(this.parsedInputs.CLISubCommand===n.FlowType.BRANCH){return{}}if(!this.parsedInputs.url){(0,p.logAndThrow)("If running from the CLI, event url needs to be defined")}const e=/^https?:\/\/.+\/([^/\s]+)\/([^/\s]+)\/pull\/(\d+)$/;const t=this.parsedInputs.url.match(e);if(t){this.logger.debug("Getting pull request information");try{const{data:e}=await c.default.get(o.OctokitService).octokit.pulls.get({owner:t[1],repo:t[2],pull_number:parseInt(t[3])});return e}catch(e){(0,p.logAndThrow)(`Invalid event url ${this.parsedInputs.url}`)}}(0,p.logAndThrow)(`Invalid event url ${this.parsedInputs.url}. URL must be a github pull request event url or a github tree url`)}loadToken(){if(this.parsedInputs.token){c.default.set(i.constants.GITHUB.TOKEN,this.parsedInputs.token)}else if(process.env.GITHUB_TOKEN){c.default.set(i.constants.GITHUB.TOKEN,process.env.GITHUB_TOKEN)}else{(0,p.logAndThrow)("A github token is needed")}}getFlowType(){const e=this.parsedInputs.CLISubCommand;if(Object.values(n.FlowType).includes(e)){return e}(0,p.logAndThrow)("The CLI subcommand is a tool commaand. No flow defined")}}t.CLIConfiguration=CLIConfiguration},6229:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var i=Object.getOwnPropertyDescriptor(t,r);if(!i||("get"in i?!t.__esModule:i.writable||i.configurable)){i={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,i)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var o=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:true});t.ConfigurationService=void 0;const p=s(r(3802));const c=r(6196);const l=r(6759);const d=r(6848);const u=r(2336);const m=r(1055);const h=r(8410);const g=r(8373);const v=r(6012);let y=class ConfigurationService{constructor(){switch(p.default.get(l.constants.CONTAINER.ENTRY_POINT)){case d.EntryPoint.CLI:this.configuration=new u.CLIConfiguration;break;case d.EntryPoint.GITHUB_EVENT:this.configuration=new m.ActionConfiguration;break;default:(0,h.logAndThrow)("Invalid entrypoint. Please contact with the administrator or report and issue to build-chain tool repository")}this._nodeChain=[];this._definitionFile={version:"2.1"}}get nodeChain(){return this._nodeChain}get definitionFile(){return this._definitionFile}async init(){await this.configuration.init();const e=new v.DefinitionFileReader(this.configuration);this._definitionFile=await e.getDefinitionFile();this._nodeChain=await e.generateNodeChain(this.getStarterProjectName())}getStarterProjectName(){const e=this.configuration.parsedInputs.startProject??process.env.GITHUB_REPOSITORY;if(!e){(0,h.logAndThrow)("Start project needs to be defined or build chain must be run in a Github environment")}return e}isNodeStarter(e){return e.project===this.getStarterProjectName()}getStarterNode(){const e=this.nodeChain.find((e=>this.isNodeStarter(e)));if(!e){(0,h.logAndThrow)(`There's no project ${this.getStarterProjectName()} in the chain\n This is normally due the project starting the job (or the one selected to behave like so it's not in the project tree information.\n Please choose a different project like starter or define the project ${this.getStarterProjectName()} in the tree.`)}return e}getNodeExecutionLevel(e){const t=this.nodeChain.indexOf(this.getStarterNode());const r=this.nodeChain.indexOf(e);if(rt){return c.NodeExecutionLevel.DOWNSTREAM}else{return c.NodeExecutionLevel.CURRENT}}skipExecution(e){if(this.configuration.parsedInputs.skipExecution){return true}return this.configuration.parsedInputs.skipProjectExecution?this.configuration.parsedInputs.skipProjectExecution.includes(e.project):false}skipCheckout(e){if(this.configuration.parsedInputs.skipCheckout){return true}return this.configuration.parsedInputs.skipProjectCheckout?this.configuration.parsedInputs.skipProjectCheckout.includes(e.project):false}skipParallelCheckout(){return this.configuration.parsedInputs.skipParallelCheckout}getTreatmentOptions(){if(this.configuration.parsedInputs.customCommandTreatment){return{replaceExpressions:this.configuration.parsedInputs.customCommandTreatment}}return{}}getTargetProject(){return this.configuration.targetProject}getSourceProject(){return this.configuration.sourceProject}getRootFolder(){return this.configuration.parsedInputs.outputFolder??process.env.GITHUB_WORKSPACE??process.cwd()}getFlowType(){return this.configuration.getFlowType()}getCloneUrl(e,t){if(process.env.ACT){return`${process.env.ACT_REPO}${e}/${t}`}return`${this.configuration.gitConfiguration.serverUrlWithToken}/${e}/${t}`}getPre(){return this.definitionFile.pre}getPost(){return this.definitionFile.post}getDefinitionFileUrl(){return this.configuration.parsedInputs.definitionFile}getEventUrl(){return this.getFlowType()===g.FlowType.BRANCH?"":this.configuration.gitEventData.html_url}};y=n([(0,p.Service)(),o("design:paramtypes",[])],y);t.ConfigurationService=y},6012:function(e,t,r){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.DefinitionFileReader=void 0;const i=r(6759);const n=r(8373);const s=r(9837);const o=r(8410);const p=r(8114);const c=a(r(3802));class DefinitionFileReader{constructor(e){this.configuration=e;this.logger=c.default.get(s.LoggerService).logger}async generateNodeChainWithOptions(e,t){let r;switch(this.configuration.getFlowType()){case n.FlowType.BRANCH:{if(this.configuration.parsedInputs.fullProjectDependencyTree){r=await(0,p.getOrderedListForProject)(this.configuration.parsedInputs.definitionFile,e,t)}else{const a=await(0,p.getTreeForProject)(this.configuration.parsedInputs.definitionFile,e,t);if(!a){throw new Error("Starting project not found")}r=(0,p.parentChainFromNode)(a)}break}case n.FlowType.CROSS_PULL_REQUEST:{const t=await(0,p.getTreeForProject)(this.configuration.parsedInputs.definitionFile,e);if(!t){throw new Error("Starting project not found")}r=(0,p.parentChainFromNode)(t);break}case n.FlowType.FULL_DOWNSTREAM:{r=await(0,p.getOrderedListForProject)(this.configuration.parsedInputs.definitionFile,e,t);break}case n.FlowType.SINGLE_PULL_REQUEST:{const a=await(0,p.getTreeForProject)(this.configuration.parsedInputs.definitionFile,e,t);if(!a){throw new Error("Starting project not found")}r=[a]}}return r}async getDefinitionFile(){try{return(0,p.readDefinitionFile)(this.configuration.parsedInputs.definitionFile,{...this.configuration.sourceProject,token:c.default.get(i.constants.GITHUB.TOKEN)})}catch(e){this.logger.debug("Did not find correct definition on file, trying target")}try{return(0,p.readDefinitionFile)(this.configuration.parsedInputs.definitionFile,{...this.configuration.targetProject,token:c.default.get(i.constants.GITHUB.TOKEN)})}catch(e){(0,o.logAndThrow)("Invalid definition file")}}async generateNodeChain(e){try{return await this.generateNodeChainWithOptions(e,{...this.configuration.sourceProject,token:c.default.get(i.constants.GITHUB.TOKEN)})}catch(e){this.logger.debug("Did not find correct definition on file, trying target")}try{return await this.generateNodeChainWithOptions(e,{...this.configuration.targetProject,token:c.default.get(i.constants.GITHUB.TOKEN)})}catch(e){(0,o.logAndThrow)("Invalid definition file")}}}t.DefinitionFileReader=DefinitionFileReader},6298:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var i=Object.getOwnPropertyDescriptor(t,r);if(!i||("get"in i?!t.__esModule:i.writable||i.configurable)){i={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,i)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var o=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:true});t.FlowService=void 0;const p=r(4396);const c=r(6696);const l=r(7774);const d=r(5173);const u=r(4303);const m=r(6229);const h=r(9837);const g=s(r(3802));let v=class FlowService{constructor(){this.configService=g.default.get(m.ConfigurationService);this.checkoutService=g.default.get(d.CheckoutService);this.executor=g.default.get(u.ExecuteCommandService);this.artifactService=g.default.get(l.ArtifactService);this.logger=g.default.get(h.LoggerService).logger}async run(){this.logger.startGroup("Execution Plan");this.printExecutionPlan();this.logger.endGroup();this.logger.startGroup(`Checking out ${this.configService.getStarterProjectName()} and its dependencies`);const e=await this.checkoutService.checkoutDefinitionTree();this.logger.info("Checkout summary");this.printCheckoutSummary(e);this.logger.endGroup();const t=this.configService.nodeChain.map((t=>({node:t,cwd:e.find((e=>e.node.project===t.project)).checkoutInfo?.repoDir})));const r=await this.executeAndPrint(t,c.ExecutionPhase.BEFORE);const a=await this.executeAndPrint(t,c.ExecutionPhase.CURRENT);const i=await this.executeAndPrint(t,c.ExecutionPhase.AFTER);this.logger.startGroup("Uploading artifacts");const n=await this.artifactService.uploadNodes(this.configService.nodeChain,this.configService.getStarterNode());this.logger.endGroup();return{checkoutInfo:e,artifactUploadResults:n,executionResult:{after:i,commands:a,before:r}}}printExecutionPlan(){this.logger.info(`${this.configService.nodeChain.length} projects will be executed`);this.configService.nodeChain.forEach((e=>{const t=this.configService.getNodeExecutionLevel(e);this.logger.info(`[${e.project}]`);this.logger.info(`\t Level type: ${t}`);if(this.configService.skipExecution(e)){this.logger.info("\t No command will be executed (this project will be skipped)")}else{const r=this.executor.getNodeCommands(e,c.ExecutionPhase.BEFORE,t);const a=this.executor.getNodeCommands(e,c.ExecutionPhase.CURRENT,t);const i=this.executor.getNodeCommands(e,c.ExecutionPhase.AFTER,t);if(r?.length){this.logger.info(`\t [${c.ExecutionPhase.BEFORE}]`);this.logger.info(`\t\t ${r.join("\n")}`)}if(a?.length){this.logger.info(`\t [${c.ExecutionPhase.CURRENT}]`);this.logger.info(`\t\t ${a.join("\n")}`)}if(i?.length){this.logger.info(`\t [${c.ExecutionPhase.AFTER}]`);this.logger.info(`\t\t ${i.join("\n")}`)}}}))}printCheckoutSummary(e){e.forEach((e=>{this.logger.info(`[${e.node.project}]`);if(e.checkoutInfo){this.logger.info(`\t Project taken from ${e.checkoutInfo.targetGroup}/${e.checkoutInfo.targetName}:${e.checkoutInfo.targetBranch}`);if(e.checkoutInfo.merge){this.logger.info(`\t Merged ${e.checkoutInfo.sourceGroup}/${e.checkoutInfo.sourceName}:${e.checkoutInfo.sourceBranch} into branch ${e.checkoutInfo.targetBranch}`)}}else{this.logger.info("\t This project wasn't checked out")}}))}printExecutionSummary(e){e.forEach((e=>{this.logger.info(`[${e.node.project}]`);if(!e.executeCommandResults.length){this.logger.info("\t No commands were found for this project")}e.executeCommandResults.forEach((e=>{this.logger.info(`\t [${e.result}] ${e.command} [Executed in ${e.time} ms]`);if(e.result===p.ExecutionResult.NOT_OK){this.logger.info(`\t\t Error: ${e.errorMessage}`)}}))}))}async executeAndPrint(e,t){this.logger.startGroup(`Executing ${t}`);const r=await this.executor.executeChainCommands(e,t);this.logger.info(`Execution summary for phase ${t}`);this.printExecutionSummary(r);this.logger.endGroup();return r}};v=n([(0,g.Service)(),o("design:paramtypes",[])],v);t.FlowService=v},7616:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var i=Object.getOwnPropertyDescriptor(t,r);if(!i||("get"in i?!t.__esModule:i.writable||i.configurable)){i={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,i)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var o=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};var p=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.GitCLIService=void 0;const c=p(r(9103));const l=s(r(3802));const d=p(r(7147));const u=r(9837);let m=class GitCLIService{constructor(){this.logger=l.default.get(u.LoggerService).logger}git(e,t){const r={...e?{baseDir:e}:{},...t?{errors:t}:{}};return(0,c.default)(r).addConfig("user.name","Github").addConfig("user.email","noreply@github.com")}async version(){const e=await(0,c.default)().raw("version");const t=e.match(/(\d+\.\d+(\.\d+)?)/);return t?t[1]:undefined}async clone(e,t,r){if(!d.default.existsSync(t)){await(0,c.default)().clone(e,t,["--quiet","--shallow-submodules","--no-tags","--branch",r])}else{this.logger.warn(`Folder ${t} already exist. Won't clone`)}}async fetch(e,t){await this.git(e).fetch("origin",t,["--quiet"])}async getCommonAncestor(e,...t){if(t.length===1){return t[0]}else if(t.length<1){throw new Error("empty refs!")}const errorHandler=(e,t)=>{if(t.exitCode===1||t.exitCode===0){return}if(e){return e}return Buffer.concat([...t.stdOut,...t.stdErr])};return(await this.git(e,errorHandler).raw("merge-base","--octopus",...t)).trim()}async getReachableParentCommits(e,t){return(await this.git(e).raw("rev-list","--parents",`${t}..HEAD`)).split(/\n/g).map((e=>e.split(/ /g).slice(1))).flat()}async merge(e,t,r){await this.git(e).pull(t,r,["--no-rebase","--allow-unrelated-histories"])}async head(e){return this.git(e).raw("show-ref","--head","-s","/HEAD")}async sha(e,t){return this.git(e).raw("show-ref","-s",`refs/remotes/origin/${t}`)}async rename(e,t){await this.git(e).branch(["--move",t])}async rebase(e,t){await this.git(e).rebase(["--quiet","--autosquash",t])}async push(e,t,r){const a=["--quiet"];if(t){a.push("--force-with-lease")}await this.git(e).push("origin",r,a)}};m=n([(0,l.Service)(),o("design:paramtypes",[])],m);t.GitCLIService=m},8031:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var i=Object.getOwnPropertyDescriptor(t,r);if(!i||("get"in i?!t.__esModule:i.writable||i.configurable)){i={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,i)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var o=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:true});t.GithubAPIService=void 0;const p=r(293);const c=r(2322);const l=r(9837);const d=r(8410);const u=s(r(3802));let m=class GithubAPIService{constructor(){this.logger=u.default.get(l.LoggerService).logger;this.octokit=u.default.get(c.OctokitService).octokit}async doesBranchExist(e,t,r){try{await this.octokit.repos.getBranch({owner:e,repo:t,branch:r});return true}catch(a){this.logger.warn(`project github.com/${e}/${t}:${r} does not exist. It's not necessarily an error.`);return false}}async hasPullRequest(e,t,r,a){let i={owner:e,repo:t,state:"open"};if(!a&&!r){(0,d.logAndThrow)(`[${e}/${t}] Either head or base needs to be defined while requesting pull request information`)}if(a){i={...i,base:a}}if(r){i={...i,head:r}}try{const{status:e,data:t}=await this.octokit.pulls.list(i);return e===200&&t.length>0}catch(i){let n=`Error getting pull request list from https://api.github.com/repos/${e}/${t}/pulls?state=open`;if(a){n+=`&base=${a}`}if(r){n+=`&head=${r}`}this.logger.error(n);throw i}}async getForkName(e,t,r){try{if(e===t){await this.octokit.repos.get({owner:t,repo:r});return r}else{for await(const a of this.octokit.paginate.iterator(this.octokit.repos.listForks,{owner:e,repo:r})){const e=a.data.find((e=>e.owner.login===t));if(e){return e.name}}throw new p.NotFoundError}}catch(a){this.logger.error(`Error getting fork name for ${e}/${r} where owner is ${t}`);throw a}}};m=n([(0,u.Service)(),o("design:paramtypes",[])],m);t.GithubAPIService=m},2322:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var i=Object.getOwnPropertyDescriptor(t,r);if(!i||("get"in i?!t.__esModule:i.writable||i.configurable)){i={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,i)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var o=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:true});t.OctokitService=void 0;const p=r(6759);const c=r(5375);const l=s(r(3802));const d=r(3764);let u=class OctokitService{constructor(){const e=process.env["http_proxy"];this._octokit=new c.Octokit({auth:l.default.get(p.constants.GITHUB.TOKEN),userAgent:"kiegroup/github-build-chain-action",request:{agent:e?new d.HttpProxyAgent(e):undefined}})}get octokit(){return this._octokit}};u=n([(0,l.Service)(),o("design:paramtypes",[])],u);t.OctokitService=u},8081:function(e,t,r){"use strict";var a=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};Object.defineProperty(t,"__esModule",{value:true});t.InputService=void 0;const i=r(8373);const n=r(3802);let s=class InputService{constructor(){this._inputs=i.defaultInputValues}get inputs(){return this._inputs}updateInputs(e){this._inputs={...this.inputs,...e}}};s=a([(0,n.Service)()],s);t.InputService=s},361:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var i=Object.getOwnPropertyDescriptor(t,r);if(!i||("get"in i?!t.__esModule:i.writable||i.configurable)){i={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,i)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var o=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:true});t.JobSummaryService=void 0;const p=s(r(3802));const c=s(r(2186));const l=r(6229);const d=r(8373);const u=r(7616);const m=r(4396);const h=r(6696);let g=class JobSummaryService{constructor(){this.configService=p.default.get(l.ConfigurationService);this.gitService=p.default.get(u.GitCLIService)}async generateSummary(e,t,r){const a=this.configService.getFlowType();if(a===d.FlowType.BRANCH){return}const i=c.summary.emptyBuffer().addRaw("You can copy paste the following commands to locally execute build chain tool.",true).addCodeBlock(`npm i ${process.env.npm_package_name}@${process.env.npm_package_version} -g build-chain-action -f ${this.configService.getDefinitionFileUrl()} build ${a} -u ${this.configService.getEventUrl()}`).addEOL().addRaw(`**Git Version**: \`${await this.gitService.version()}\``,true).addRaw("> **_Notice_**: The `GITHUB_TOKEN` should be set in the environment.",true).stringify();const n=this.constructExecutionResult(e.executionResult.before,e.checkoutInfo);const s=this.constructExecutionResult(e.executionResult.commands,e.checkoutInfo);const o=this.constructExecutionResult(e.executionResult.after,e.checkoutInfo);const p=this.constructPrePostResult(t);const l=this.constructPrePostResult(r);await c.summary.emptyBuffer().addHeading("Build Chain Execution Summary").addEOL().addRaw(`**Project Starting the Job:** [${this.configService.getStarterProjectName()}](https://github.com/${this.configService.getStarterProjectName()})`,true).addRaw(`

Pre

${p}
`,true).addRaw(`

Execution phase: ${h.ExecutionPhase.BEFORE}

${n}
`,true).addRaw(`

Execution phase: ${h.ExecutionPhase.CURRENT}

${s}
`,true).addRaw(`

Execution phase: ${h.ExecutionPhase.AFTER}

${o}
`,true).addRaw(`

Post

${l}
`,true).addRaw(`

Local Execution

${i}
`,true).write()}constructPrePostResult(e){const t=[{data:"Command",header:true},{data:"Execution Result",header:true},{data:"Execution Time",header:true}];const r=e.map((e=>[e.command,this.getExecutionResultString(e.result),`${e.time}`]));return c.summary.emptyBuffer().addTable([t,...r]).stringify()}constructExecutionResult(e,t){const r=[{data:"Project",header:true},{data:"Source",header:true},{data:"Target",header:true},{data:"Merged",header:true},{data:"Execution Result",header:true},{data:"Avg Execution Time",header:true}];return c.summary.emptyBuffer().addTable([r,...this.getExecutionResultData(e,t)]).addEOL().addRaw("```mermaid",true).addRaw(this.constructGraph(e),true).addRaw("```",true).stringify()}getExecutionResult(e){return e.find((e=>e.result!==m.ExecutionResult.OK))?.result??m.ExecutionResult.OK}getExecutionResultString(e){switch(e){case m.ExecutionResult.NOT_OK:return"❌";case m.ExecutionResult.SKIP:return"⛔";default:return"✅"}}getExecutionResultData(e,t){return e.map((e=>{const r=t.find((t=>t.node.project===e.node.project)).checkoutInfo;const a=this.getExecutionResultString(this.getExecutionResult(e.executeCommandResults));return[e.node.project,r?`${r.targetGroup}/${r.targetName}:${r.targetBranch}`:"checkout skipped",r?`${r.sourceGroup}/${r.sourceName}:${r.sourceBranch}`:"checkout skipped",r?.merge?"✅":"❌",a,e.executeCommandResults.length>0?`${e.executeCommandResults.reduce(((e,t)=>e+t.time),0)/e.executeCommandResults.length}`:"0"]}))}constructGraph(e){return`flowchart LR;\n ${e.map((e=>{const t=this.getExecutionResult(e.executeCommandResults);let r="okClass";switch(t){case m.ExecutionResult.NOT_OK:r="errorClass";break;case m.ExecutionResult.SKIP:r="noEntry";break}return`${e.node.project}:::${r}`})).join("==>")}\n ${e.map((e=>`click ${e.node.project} 'https://github.com/${e.node.project}'`)).join("\n\t\t\t\t")}\n classDef okClass fill:#218838,stroke:#1e7e34,color: #fff,border-radius: 4px\n classDef errorClass fill:#dc3545,stroke:#dc3545,color: #fff,border-radius: 4px\n classDef noEntry fill:#6c757d,stroke:#6c757d,color: #fff,border-radius: 4px`}};g=n([(0,p.Service)(),o("design:paramtypes",[])],g);t.JobSummaryService=g},8140:function(e,t,r){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.BaseLoggerService=void 0;const i=r(8373);const n=r(8081);const s=r(8416);const o=a(r(3802));class BaseLoggerService{constructor(){this._logger=new s.Logger;this.input=o.default.get(n.InputService)}debug(e){if(this.input.inputs.loggerLevel==i.LoggerLevel.DEBUG){this._logger.log("[DEBUG]",e)}}info(e){this._logger.log("[INFO]",e)}trace(e){if(this.input.inputs.loggerLevel==i.LoggerLevel.TRACE){this._logger.log("[TRACE]",e)}}warn(e){this._logger.log("[WARN]",e)}error(e){this._logger.log("[ERROR]",e)}get logger(){return this._logger}}t.BaseLoggerService=BaseLoggerService},8625:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.CLILoggerService=void 0;const a=r(8140);class CLILoggerService extends a.BaseLoggerService{constructor(){super()}endGroup(){super.logger.emptyLine()}startGroup(e){super.logger.log("#",e)}}t.CLILoggerService=CLILoggerService},418:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var i=Object.getOwnPropertyDescriptor(t,r);if(!i||("get"in i?!t.__esModule:i.writable||i.configurable)){i={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,i)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.GithubActionLoggerService=void 0;const s=r(8140);const o=n(r(2186));class GithubActionLoggerService extends s.BaseLoggerService{constructor(){super()}endGroup(){o.endGroup()}startGroup(e){o.startGroup(e)}}t.GithubActionLoggerService=GithubActionLoggerService},9837:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var i=Object.getOwnPropertyDescriptor(t,r);if(!i||("get"in i?!t.__esModule:i.writable||i.configurable)){i={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,i)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);i(t,e);return t};var o=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:true});t.LoggerService=void 0;const p=r(6759);const c=r(6848);const l=r(8625);const d=r(418);const u=s(r(3802));let m=class LoggerService{constructor(){const e=u.default.get(p.constants.CONTAINER.ENTRY_POINT);switch(e){case c.EntryPoint.CLI:this._logger=new l.CLILoggerService;break;case c.EntryPoint.GITHUB_EVENT:this._logger=new d.GithubActionLoggerService;break;default:throw new Error(`No LoggerService defined for ${e}`)}}get logger(){return this._logger}};m=n([(0,u.Service)(),o("design:paramtypes",[])],m);t.LoggerService=m},8416:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.Logger=void 0;class Logger{log(e,...t){console.log.apply(console,[e,...t])}emptyLine(){this.log("","")}}t.Logger=Logger},3063:function(e,t,r){"use strict";var a=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};var i=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};var n=this&&this.__param||function(e,t){return function(r,a){t(r,a,e)}};Object.defineProperty(t,"__esModule",{value:true});t.PostExecutor=void 0;const s=r(6165);const o=r(3802);let p=class PostExecutor extends s.PrePostExecutor{constructor(e){super();this.executionSuccess=e}async run(){const e=this.configService.getPost();let t=[];if(e){this.logger.startGroup("Executing post section");if(this.executionSuccess){this.logger.info("execution result is OK, so 'success' and 'always' sections will be executed");if(e.success){t=await this.execute(e.success)}}else{this.logger.info("execution result is NOT OK, so 'failure' and 'always' sections will be executed");if(e.failure){t=await this.execute(e.failure)}}if(e.always){t=[...t,...await this.execute(e.always)]}this.logger.endGroup()}return t}};p=a([(0,o.Service)(),n(0,(0,o.Inject)("post.executionSuccess")),i("design:paramtypes",[Boolean])],p);t.PostExecutor=p},6165:function(e,t,r){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.PrePostExecutor=void 0;const i=r(4303);const n=r(6229);const s=r(9837);const o=a(r(3802));class PrePostExecutor{constructor(){this.configService=o.default.get(n.ConfigurationService);this.logger=o.default.get(s.LoggerService).logger;this.executeService=o.default.get(i.ExecuteCommandService)}async execute(e){const t=[];if(Array.isArray(e)){for(const r of e){t.push(await this.executeService.executeCommand(r,process.cwd()))}}else{t.push(await this.executeService.executeCommand(e,process.cwd()))}return t}}t.PrePostExecutor=PrePostExecutor},7814:function(e,t,r){"use strict";var a=this&&this.__decorate||function(e,t,r,a){var i=arguments.length,n=i<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")n=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])n=(i<3?s(n):i>3?s(t,r,n):s(t,r))||n;return i>3&&n&&Object.defineProperty(t,r,n),n};Object.defineProperty(t,"__esModule",{value:true});t.PreExecutor=void 0;const i=r(6165);const n=r(3802);let s=class PreExecutor extends i.PrePostExecutor{async run(){const e=this.configService.getPre();let t=[];if(e){this.logger.startGroup("Executing pre section");t=await this.execute(e);this.logger.endGroup()}return t}};s=a([(0,n.Service)()],s);t.PreExecutor=s},3678:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.hrtimeToMs=t.formatDate=void 0;function formatDate(e){return`${e.getFullYear()}${e.getMonth()}${e.getDate()}${e.getHours()}${e.getMinutes()}${e.getSeconds()}`}t.formatDate=formatDate;function hrtimeToMs(e,t=process.hrtime(e)){return t[0]*1e3+t[1]/1e6}t.hrtimeToMs=hrtimeToMs},8410:function(e,t,r){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.logAndThrow=void 0;const i=r(9837);const n=a(r(3802));function logAndThrow(e){n.default.get(i.LoggerService).logger.error(e);throw new Error(e)}t.logAndThrow=logAndThrow},2877:module=>{module.exports=eval("require")("encoding")},9491:e=>{"use strict";e.exports=require("assert")},2081:e=>{"use strict";e.exports=require("child_process")},2057:e=>{"use strict";e.exports=require("constants")},6113:e=>{"use strict";e.exports=require("crypto")},2361:e=>{"use strict";e.exports=require("events")},7147:e=>{"use strict";e.exports=require("fs")},3292:e=>{"use strict";e.exports=require("fs/promises")},3685:e=>{"use strict";e.exports=require("http")},5687:e=>{"use strict";e.exports=require("https")},1808:e=>{"use strict";e.exports=require("net")},3977:e=>{"use strict";e.exports=require("node:fs/promises")},2037:e=>{"use strict";e.exports=require("os")},1017:e=>{"use strict";e.exports=require("path")},4074:e=>{"use strict";e.exports=require("perf_hooks")},5477:e=>{"use strict";e.exports=require("punycode")},2781:e=>{"use strict";e.exports=require("stream")},1576:e=>{"use strict";e.exports=require("string_decoder")},9512:e=>{"use strict";e.exports=require("timers")},4404:e=>{"use strict";e.exports=require("tls")},6224:e=>{"use strict";e.exports=require("tty")},7310:e=>{"use strict";e.exports=require("url")},3837:e=>{"use strict";e.exports=require("util")},9796:e=>{"use strict";e.exports=require("zlib")},8109:(e,t,r)=>{"use strict";var a=r(1399);var i=r(9338);var n=r(2986);var s=r(2289);var o=r(45);function composeCollection(e,t,r,p,c){let l;switch(r.type){case"block-map":{l=n.resolveBlockMap(e,t,r,c);break}case"block-seq":{l=s.resolveBlockSeq(e,t,r,c);break}case"flow-collection":{l=o.resolveFlowCollection(e,t,r,c);break}}if(!p)return l;const d=t.directives.tagName(p.source,(e=>c(p,"TAG_RESOLVE_FAILED",e)));if(!d)return l;const u=l.constructor;if(d==="!"||d===u.tagName){l.tag=u.tagName;return l}const m=a.isMap(l)?"map":"seq";let h=t.schema.tags.find((e=>e.collection===m&&e.tag===d));if(!h){const e=t.schema.knownTags[d];if(e&&e.collection===m){t.schema.tags.push(Object.assign({},e,{default:false}));h=e}else{c(p,"TAG_RESOLVE_FAILED",`Unresolved tag: ${d}`,true);l.tag=d;return l}}const g=h.resolve(l,(e=>c(p,"TAG_RESOLVE_FAILED",e)),t.options);const v=a.isNode(g)?g:new i.Scalar(g);v.range=l.range;v.tag=d;if(h?.format)v.format=h.format;return v}t.composeCollection=composeCollection},5050:(e,t,r)=>{"use strict";var a=r(42);var i=r(8676);var n=r(1250);var s=r(6985);function composeDoc(e,t,{offset:r,start:o,value:p,end:c},l){const d=Object.assign({_directives:t},e);const u=new a.Document(undefined,d);const m={atRoot:true,directives:u.directives,options:u.options,schema:u.schema};const h=s.resolveProps(o,{indicator:"doc-start",next:p??c?.[0],offset:r,onError:l,startOnNewline:true});if(h.found){u.directives.docStart=true;if(p&&(p.type==="block-map"||p.type==="block-seq")&&!h.hasNewline)l(h.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")}u.contents=p?i.composeNode(m,p,h,l):i.composeEmptyNode(m,h.end,o,null,h,l);const g=u.contents.range[2];const v=n.resolveEnd(c,g,false,l);if(v.comment)u.comment=v.comment;u.range=[r,g,v.offset];return u}t.composeDoc=composeDoc},8676:(e,t,r)=>{"use strict";var a=r(5639);var i=r(8109);var n=r(4766);var s=r(1250);var o=r(8781);const p={composeNode:composeNode,composeEmptyNode:composeEmptyNode};function composeNode(e,t,r,a){const{spaceBefore:s,comment:o,anchor:c,tag:l}=r;let d;let u=true;switch(t.type){case"alias":d=composeAlias(e,t,a);if(c||l)a(t,"ALIAS_PROPS","An alias node must not specify any properties");break;case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"block-scalar":d=n.composeScalar(e,t,l,a);if(c)d.anchor=c.source.substring(1);break;case"block-map":case"block-seq":case"flow-collection":d=i.composeCollection(p,e,t,l,a);if(c)d.anchor=c.source.substring(1);break;default:{const i=t.type==="error"?t.message:`Unsupported token (type: ${t.type})`;a(t,"UNEXPECTED_TOKEN",i);d=composeEmptyNode(e,t.offset,undefined,null,r,a);u=false}}if(c&&d.anchor==="")a(c,"BAD_ALIAS","Anchor cannot be an empty string");if(s)d.spaceBefore=true;if(o){if(t.type==="scalar"&&t.source==="")d.comment=o;else d.commentBefore=o}if(e.options.keepSourceTokens&&u)d.srcToken=t;return d}function composeEmptyNode(e,t,r,a,{spaceBefore:i,comment:s,anchor:p,tag:c,end:l},d){const u={type:"scalar",offset:o.emptyScalarPosition(t,r,a),indent:-1,source:""};const m=n.composeScalar(e,u,c,d);if(p){m.anchor=p.source.substring(1);if(m.anchor==="")d(p,"BAD_ALIAS","Anchor cannot be an empty string")}if(i)m.spaceBefore=true;if(s){m.comment=s;m.range[2]=l}return m}function composeAlias({options:e},{offset:t,source:r,end:i},n){const o=new a.Alias(r.substring(1));if(o.source==="")n(t,"BAD_ALIAS","Alias cannot be an empty string");if(o.source.endsWith(":"))n(t+r.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",true);const p=t+r.length;const c=s.resolveEnd(i,p,e.strict,n);o.range=[t,p,c.offset];if(c.comment)o.comment=c.comment;return o}t.composeEmptyNode=composeEmptyNode;t.composeNode=composeNode},4766:(e,t,r)=>{"use strict";var a=r(1399);var i=r(9338);var n=r(9485);var s=r(7578);function composeScalar(e,t,r,o){const{value:p,type:c,comment:l,range:d}=t.type==="block-scalar"?n.resolveBlockScalar(t,e.options.strict,o):s.resolveFlowScalar(t,e.options.strict,o);const u=r?e.directives.tagName(r.source,(e=>o(r,"TAG_RESOLVE_FAILED",e))):null;const m=r&&u?findScalarTagByName(e.schema,p,u,r,o):t.type==="scalar"?findScalarTagByTest(e,p,t,o):e.schema[a.SCALAR];let h;try{const n=m.resolve(p,(e=>o(r??t,"TAG_RESOLVE_FAILED",e)),e.options);h=a.isScalar(n)?n:new i.Scalar(n)}catch(e){const a=e instanceof Error?e.message:String(e);o(r??t,"TAG_RESOLVE_FAILED",a);h=new i.Scalar(p)}h.range=d;h.source=p;if(c)h.type=c;if(u)h.tag=u;if(m.format)h.format=m.format;if(l)h.comment=l;return h}function findScalarTagByName(e,t,r,i,n){if(r==="!")return e[a.SCALAR];const s=[];for(const t of e.tags){if(!t.collection&&t.tag===r){if(t.default&&t.test)s.push(t);else return t}}for(const e of s)if(e.test?.test(t))return e;const o=e.knownTags[r];if(o&&!o.collection){e.tags.push(Object.assign({},o,{default:false,test:undefined}));return o}n(i,"TAG_RESOLVE_FAILED",`Unresolved tag: ${r}`,r!=="tag:yaml.org,2002:str");return e[a.SCALAR]}function findScalarTagByTest({directives:e,schema:t},r,i,n){const s=t.tags.find((e=>e.default&&e.test?.test(r)))||t[a.SCALAR];if(t.compat){const o=t.compat.find((e=>e.default&&e.test?.test(r)))??t[a.SCALAR];if(s.tag!==o.tag){const t=e.tagString(s.tag);const r=e.tagString(o.tag);const a=`Value may be parsed as either ${t} or ${r}`;n(i,"TAG_RESOLVE_FAILED",a,true)}}return s}t.composeScalar=composeScalar},9493:(e,t,r)=>{"use strict";var a=r(5400);var i=r(42);var n=r(4236);var s=r(1399);var o=r(5050);var p=r(1250);function getErrorPos(e){if(typeof e==="number")return[e,e+1];if(Array.isArray(e))return e.length===2?e:[e[0],e[1]];const{offset:t,source:r}=e;return[t,t+(typeof r==="string"?r.length:1)]}function parsePrelude(e){let t="";let r=false;let a=false;for(let i=0;i{const i=getErrorPos(e);if(a)this.warnings.push(new n.YAMLWarning(i,t,r));else this.errors.push(new n.YAMLParseError(i,t,r))};this.directives=new a.Directives({version:e.version||"1.2"});this.options=e}decorate(e,t){const{comment:r,afterEmptyLine:a}=parsePrelude(this.prelude);if(r){const i=e.contents;if(t){e.comment=e.comment?`${e.comment}\n${r}`:r}else if(a||e.directives.docStart||!i){e.commentBefore=r}else if(s.isCollection(i)&&!i.flow&&i.items.length>0){let e=i.items[0];if(s.isPair(e))e=e.key;const t=e.commentBefore;e.commentBefore=t?`${r}\n${t}`:r}else{const e=i.commentBefore;i.commentBefore=e?`${r}\n${e}`:r}}if(t){Array.prototype.push.apply(e.errors,this.errors);Array.prototype.push.apply(e.warnings,this.warnings)}else{e.errors=this.errors;e.warnings=this.warnings}this.prelude=[];this.errors=[];this.warnings=[]}streamInfo(){return{comment:parsePrelude(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(e,t=false,r=-1){for(const t of e)yield*this.next(t);yield*this.end(t,r)}*next(e){if(process.env.LOG_STREAM)console.dir(e,{depth:null});switch(e.type){case"directive":this.directives.add(e.source,((t,r,a)=>{const i=getErrorPos(e);i[0]+=t;this.onError(i,"BAD_DIRECTIVE",r,a)}));this.prelude.push(e.source);this.atDirectives=true;break;case"document":{const t=o.composeDoc(this.options,this.directives,e,this.onError);if(this.atDirectives&&!t.directives.docStart)this.onError(e,"MISSING_CHAR","Missing directives-end/doc-start indicator line");this.decorate(t,false);if(this.doc)yield this.doc;this.doc=t;this.atDirectives=false;break}case"byte-order-mark":case"space":break;case"comment":case"newline":this.prelude.push(e.source);break;case"error":{const t=e.source?`${e.message}: ${JSON.stringify(e.source)}`:e.message;const r=new n.YAMLParseError(getErrorPos(e),"UNEXPECTED_TOKEN",t);if(this.atDirectives||!this.doc)this.errors.push(r);else this.doc.errors.push(r);break}case"doc-end":{if(!this.doc){const t="Unexpected doc-end without preceding document";this.errors.push(new n.YAMLParseError(getErrorPos(e),"UNEXPECTED_TOKEN",t));break}this.doc.directives.docEnd=true;const t=p.resolveEnd(e.end,e.offset+e.source.length,this.doc.options.strict,this.onError);this.decorate(this.doc,true);if(t.comment){const e=this.doc.comment;this.doc.comment=e?`${e}\n${t.comment}`:t.comment}this.doc.range[2]=t.offset;break}default:this.errors.push(new n.YAMLParseError(getErrorPos(e),"UNEXPECTED_TOKEN",`Unsupported token ${e.type}`))}}*end(e=false,t=-1){if(this.doc){this.decorate(this.doc,true);yield this.doc;this.doc=null}else if(e){const e=Object.assign({_directives:this.directives},this.options);const r=new i.Document(undefined,e);if(this.atDirectives)this.onError(t,"MISSING_CHAR","Missing directives-end indicator line");r.range=[0,t,t];this.decorate(r,false);yield r}}}t.Composer=Composer},2986:(e,t,r)=>{"use strict";var a=r(246);var i=r(6011);var n=r(6985);var s=r(976);var o=r(3669);var p=r(6899);const c="All mapping items must start at the same column";function resolveBlockMap({composeNode:e,composeEmptyNode:t},r,l,d){const u=new i.YAMLMap(r.schema);if(r.atRoot)r.atRoot=false;let m=l.offset;let h=null;for(const i of l.items){const{start:g,key:v,sep:y,value:b}=i;const w=n.resolveProps(g,{indicator:"explicit-key-ind",next:v??y?.[0],offset:m,onError:d,startOnNewline:true});const x=!w.found;if(x){if(v){if(v.type==="block-seq")d(m,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key");else if("indent"in v&&v.indent!==l.indent)d(m,"BAD_INDENT",c)}if(!w.anchor&&!w.tag&&!y){h=w.end;if(w.comment){if(u.comment)u.comment+="\n"+w.comment;else u.comment=w.comment}continue}if(w.hasNewlineAfterProp||s.containsNewline(v)){d(v??g[g.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}}else if(w.found?.indent!==l.indent){d(m,"BAD_INDENT",c)}const E=w.end;const S=v?e(r,v,w,d):t(r,E,g,null,w,d);if(r.schema.compat)o.flowIndentCheck(l.indent,v,d);if(p.mapIncludes(r,u.items,S))d(E,"DUPLICATE_KEY","Map keys must be unique");const T=n.resolveProps(y??[],{indicator:"map-value-ind",next:b,offset:S.range[2],onError:d,startOnNewline:!v||v.type==="block-scalar"});m=T.end;if(T.found){if(x){if(b?.type==="block-map"&&!T.hasNewline)d(m,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings");if(r.options.strict&&w.start{"use strict";var a=r(9338);function resolveBlockScalar(e,t,r){const i=e.offset;const n=parseBlockScalarHeader(e,t,r);if(!n)return{value:"",type:null,comment:"",range:[i,i,i]};const s=n.mode===">"?a.Scalar.BLOCK_FOLDED:a.Scalar.BLOCK_LITERAL;const o=e.source?splitLines(e.source):[];let p=o.length;for(let e=o.length-1;e>=0;--e){const t=o[e][1];if(t===""||t==="\r")p=e;else break}if(p===0){const t=n.chomp==="+"&&o.length>0?"\n".repeat(Math.max(1,o.length-1)):"";let r=i+n.length;if(e.source)r+=e.source.length;return{value:t,type:s,comment:n.comment,range:[i,r,r]}}let c=e.indent+n.indent;let l=e.offset+n.length;let d=0;for(let e=0;ec)c=t.length}else{if(t.length=p;--e){if(o[e][0].length>c)p=e+1}let u="";let m="";let h=false;for(let e=0;ec||i[0]==="\t"){if(m===" ")m="\n";else if(!h&&m==="\n")m="\n\n";u+=m+t.slice(c)+i;m="\n";h=true}else if(i===""){if(m==="\n")u+="\n";else m="\n"}else{u+=m+i;m=" ";h=false}}switch(n.chomp){case"-":break;case"+":for(let e=p;e{"use strict";var a=r(5161);var i=r(6985);var n=r(3669);function resolveBlockSeq({composeNode:e,composeEmptyNode:t},r,s,o){const p=new a.YAMLSeq(r.schema);if(r.atRoot)r.atRoot=false;let c=s.offset;let l=null;for(const{start:a,value:d}of s.items){const u=i.resolveProps(a,{indicator:"seq-item-ind",next:d,offset:c,onError:o,startOnNewline:true});if(!u.found){if(u.anchor||u.tag||d){if(d&&d.type==="block-seq")o(u.end,"BAD_INDENT","All sequence items must start at the same column");else o(c,"MISSING_CHAR","Sequence item without - indicator")}else{l=u.end;if(u.comment)p.comment=u.comment;continue}}const m=d?e(r,d,u,o):t(r,u.end,a,null,u,o);if(r.schema.compat)n.flowIndentCheck(s.indent,d,o);c=m.range[2];p.items.push(m)}p.range=[s.offset,c,l??c];return p}t.resolveBlockSeq=resolveBlockSeq},1250:(e,t)=>{"use strict";function resolveEnd(e,t,r,a){let i="";if(e){let n=false;let s="";for(const o of e){const{source:e,type:p}=o;switch(p){case"space":n=true;break;case"comment":{if(r&&!n)a(o,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");const t=e.substring(1)||" ";if(!i)i=t;else i+=s+t;s="";break}case"newline":if(i)s+=e;n=true;break;default:a(o,"UNEXPECTED_TOKEN",`Unexpected ${p} at node end`)}t+=e.length}}return{comment:i,offset:t}}t.resolveEnd=resolveEnd},45:(e,t,r)=>{"use strict";var a=r(1399);var i=r(246);var n=r(6011);var s=r(5161);var o=r(1250);var p=r(6985);var c=r(976);var l=r(6899);const d="Block collections are not allowed within flow collections";const isBlock=e=>e&&(e.type==="block-map"||e.type==="block-seq");function resolveFlowCollection({composeNode:e,composeEmptyNode:t},r,u,m){const h=u.start.source==="{";const g=h?"flow map":"flow sequence";const v=h?new n.YAMLMap(r.schema):new s.YAMLSeq(r.schema);v.flow=true;const y=r.atRoot;if(y)r.atRoot=false;let b=u.offset+u.start.source.length;for(let s=0;s0){const e=o.resolveEnd(E,S,r.options.strict,m);if(e.comment){if(v.comment)v.comment+="\n"+e.comment;else v.comment=e.comment}v.range=[u.offset,S,e.offset]}else{v.range=[u.offset,S,S]}return v}t.resolveFlowCollection=resolveFlowCollection},7578:(e,t,r)=>{"use strict";var a=r(9338);var i=r(1250);function resolveFlowScalar(e,t,r){const{offset:n,type:s,source:o,end:p}=e;let c;let l;const _onError=(e,t,a)=>r(n+e,t,a);switch(s){case"scalar":c=a.Scalar.PLAIN;l=plainValue(o,_onError);break;case"single-quoted-scalar":c=a.Scalar.QUOTE_SINGLE;l=singleQuotedValue(o,_onError);break;case"double-quoted-scalar":c=a.Scalar.QUOTE_DOUBLE;l=doubleQuotedValue(o,_onError);break;default:r(e,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${s}`);return{value:"",type:null,comment:"",range:[n,n+o.length,n+o.length]}}const d=n+o.length;const u=i.resolveEnd(p,d,t,r);return{value:l,type:c,comment:u.comment,range:[n,d,u.offset]}}function plainValue(e,t){let r="";switch(e[0]){case"\t":r="a tab character";break;case",":r="flow indicator character ,";break;case"%":r="directive indicator character %";break;case"|":case">":{r=`block scalar indicator ${e[0]}`;break}case"@":case"`":{r=`reserved character ${e[0]}`;break}}if(r)t(0,"BAD_SCALAR_START",`Plain value cannot start with ${r}`);return foldLines(e)}function singleQuotedValue(e,t){if(e[e.length-1]!=="'"||e.length===1)t(e.length,"MISSING_CHAR","Missing closing 'quote");return foldLines(e.slice(1,-1)).replace(/''/g,"'")}function foldLines(e){let t,r;try{t=new RegExp("(.*?)(?t?e.slice(t,a+1):i}else{r+=i}}if(e[e.length-1]!=='"'||e.length===1)t(e.length,"MISSING_CHAR",'Missing closing "quote');return r}function foldNewline(e,t){let r="";let a=e[t+1];while(a===" "||a==="\t"||a==="\n"||a==="\r"){if(a==="\r"&&e[t+2]!=="\n")break;if(a==="\n")r+="\n";t+=1;a=e[t+1]}if(!r)r=" ";return{fold:r,offset:t}}const n={0:"\0",a:"",b:"\b",e:"",f:"\f",n:"\n",r:"\r",t:"\t",v:"\v",N:"…",_:" ",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\","\t":"\t"};function parseCharCode(e,t,r,a){const i=e.substr(t,r);const n=i.length===r&&/^[0-9a-fA-F]+$/.test(i);const s=n?parseInt(i,16):NaN;if(isNaN(s)){const i=e.substr(t-2,r+2);a(t-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${i}`);return i}return String.fromCodePoint(s)}t.resolveFlowScalar=resolveFlowScalar},6985:(e,t)=>{"use strict";function resolveProps(e,{flow:t,indicator:r,next:a,offset:i,onError:n,startOnNewline:s}){let o=false;let p=s;let c=s;let l="";let d="";let u=false;let m=false;let h=false;let g=null;let v=null;let y=null;let b=null;let w=null;for(const a of e){if(h){if(a.type!=="space"&&a.type!=="newline"&&a.type!=="comma")n(a.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space");h=false}switch(a.type){case"space":if(!t&&p&&r!=="doc-start"&&a.source[0]==="\t")n(a,"TAB_AS_INDENT","Tabs are not allowed as indentation");c=true;break;case"comment":{if(!c)n(a,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");const e=a.source.substring(1)||" ";if(!l)l=e;else l+=d+e;d="";p=false;break}case"newline":if(p){if(l)l+=a.source;else o=true}else d+=a.source;p=true;u=true;if(g||v)m=true;c=true;break;case"anchor":if(g)n(a,"MULTIPLE_ANCHORS","A node can have at most one anchor");if(a.source.endsWith(":"))n(a.offset+a.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",true);g=a;if(w===null)w=a.offset;p=false;c=false;h=true;break;case"tag":{if(v)n(a,"MULTIPLE_TAGS","A node can have at most one tag");v=a;if(w===null)w=a.offset;p=false;c=false;h=true;break}case r:if(g||v)n(a,"BAD_PROP_ORDER",`Anchors and tags must be after the ${a.source} indicator`);if(b)n(a,"UNEXPECTED_TOKEN",`Unexpected ${a.source} in ${t??"collection"}`);b=a;p=false;c=false;break;case"comma":if(t){if(y)n(a,"UNEXPECTED_TOKEN",`Unexpected , in ${t}`);y=a;p=false;c=false;break}default:n(a,"UNEXPECTED_TOKEN",`Unexpected ${a.type} token`);p=false;c=false}}const x=e[e.length-1];const E=x?x.offset+x.source.length:i;if(h&&a&&a.type!=="space"&&a.type!=="newline"&&a.type!=="comma"&&(a.type!=="scalar"||a.source!==""))n(a.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space");return{comma:y,found:b,spaceBefore:o,comment:l,hasNewline:u,hasNewlineAfterProp:m,anchor:g,tag:v,end:E,start:w??E}}t.resolveProps=resolveProps},976:(e,t)=>{"use strict";function containsNewline(e){if(!e)return null;switch(e.type){case"alias":case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":if(e.source.includes("\n"))return true;if(e.end)for(const t of e.end)if(t.type==="newline")return true;return false;case"flow-collection":for(const t of e.items){for(const e of t.start)if(e.type==="newline")return true;if(t.sep)for(const e of t.sep)if(e.type==="newline")return true;if(containsNewline(t.key)||containsNewline(t.value))return true}return false;default:return true}}t.containsNewline=containsNewline},8781:(e,t)=>{"use strict";function emptyScalarPosition(e,t,r){if(t){if(r===null)r=t.length;for(let a=r-1;a>=0;--a){let r=t[a];switch(r.type){case"space":case"comment":case"newline":e-=r.source.length;continue}r=t[++a];while(r?.type==="space"){e+=r.source.length;r=t[++a]}break}}return e}t.emptyScalarPosition=emptyScalarPosition},3669:(e,t,r)=>{"use strict";var a=r(976);function flowIndentCheck(e,t,r){if(t?.type==="flow-collection"){const i=t.end[0];if(i.indent===e&&(i.source==="]"||i.source==="}")&&a.containsNewline(t)){const e="Flow end indicator should be more indented than parent";r(i,"BAD_INDENT",e,true)}}}t.flowIndentCheck=flowIndentCheck},6899:(e,t,r)=>{"use strict";var a=r(1399);function mapIncludes(e,t,r){const{uniqueKeys:i}=e.options;if(i===false)return false;const n=typeof i==="function"?i:(t,r)=>t===r||a.isScalar(t)&&a.isScalar(r)&&t.value===r.value&&!(t.value==="<<"&&e.schema.merge);return t.some((e=>n(e.key,r)))}t.mapIncludes=mapIncludes},42:(e,t,r)=>{"use strict";var a=r(5639);var i=r(3466);var n=r(1399);var s=r(246);var o=r(2463);var p=r(6831);var c=r(8409);var l=r(5225);var d=r(8459);var u=r(3412);var m=r(9652);var h=r(5400);class Document{constructor(e,t,r){this.commentBefore=null;this.comment=null;this.errors=[];this.warnings=[];Object.defineProperty(this,n.NODE_TYPE,{value:n.DOC});let a=null;if(typeof t==="function"||Array.isArray(t)){a=t}else if(r===undefined&&t){r=t;t=undefined}const i=Object.assign({intAsBigInt:false,keepSourceTokens:false,logLevel:"warn",prettyErrors:true,strict:true,uniqueKeys:true,version:"1.2"},r);this.options=i;let{version:s}=i;if(r?._directives){this.directives=r._directives.atDocument();if(this.directives.yaml.explicit)s=this.directives.yaml.version}else this.directives=new h.Directives({version:s});this.setSchema(s,r);if(e===undefined)this.contents=null;else{this.contents=this.createNode(e,a,r)}}clone(){const e=Object.create(Document.prototype,{[n.NODE_TYPE]:{value:n.DOC}});e.commentBefore=this.commentBefore;e.comment=this.comment;e.errors=this.errors.slice();e.warnings=this.warnings.slice();e.options=Object.assign({},this.options);if(this.directives)e.directives=this.directives.clone();e.schema=this.schema.clone();e.contents=n.isNode(this.contents)?this.contents.clone(e.schema):this.contents;if(this.range)e.range=this.range.slice();return e}add(e){if(assertCollection(this.contents))this.contents.add(e)}addIn(e,t){if(assertCollection(this.contents))this.contents.addIn(e,t)}createAlias(e,t){if(!e.anchor){const r=d.anchorNames(this);e.anchor=!t||r.has(t)?d.findNewAnchor(t||"a",r):t}return new a.Alias(e.anchor)}createNode(e,t,r){let a=undefined;if(typeof t==="function"){e=t.call({"":e},"",e);a=t}else if(Array.isArray(t)){const keyToStr=e=>typeof e==="number"||e instanceof String||e instanceof Number;const e=t.filter(keyToStr).map(String);if(e.length>0)t=t.concat(e);a=t}else if(r===undefined&&t){r=t;t=undefined}const{aliasDuplicateObjects:i,anchorPrefix:s,flow:o,keepUndefined:p,onTagObj:c,tag:l}=r??{};const{onAnchor:u,setAnchors:h,sourceObjects:g}=d.createNodeAnchors(this,s||"a");const v={aliasDuplicateObjects:i??true,keepUndefined:p??false,onAnchor:u,onTagObj:c,replacer:a,schema:this.schema,sourceObjects:g};const y=m.createNode(e,l,v);if(o&&n.isCollection(y))y.flow=true;h();return y}createPair(e,t,r={}){const a=this.createNode(e,null,r);const i=this.createNode(t,null,r);return new s.Pair(a,i)}delete(e){return assertCollection(this.contents)?this.contents.delete(e):false}deleteIn(e){if(i.isEmptyPath(e)){if(this.contents==null)return false;this.contents=null;return true}return assertCollection(this.contents)?this.contents.deleteIn(e):false}get(e,t){return n.isCollection(this.contents)?this.contents.get(e,t):undefined}getIn(e,t){if(i.isEmptyPath(e))return!t&&n.isScalar(this.contents)?this.contents.value:this.contents;return n.isCollection(this.contents)?this.contents.getIn(e,t):undefined}has(e){return n.isCollection(this.contents)?this.contents.has(e):false}hasIn(e){if(i.isEmptyPath(e))return this.contents!==undefined;return n.isCollection(this.contents)?this.contents.hasIn(e):false}set(e,t){if(this.contents==null){this.contents=i.collectionFromPath(this.schema,[e],t)}else if(assertCollection(this.contents)){this.contents.set(e,t)}}setIn(e,t){if(i.isEmptyPath(e))this.contents=t;else if(this.contents==null){this.contents=i.collectionFromPath(this.schema,Array.from(e),t)}else if(assertCollection(this.contents)){this.contents.setIn(e,t)}}setSchema(e,t={}){if(typeof e==="number")e=String(e);let r;switch(e){case"1.1":if(this.directives)this.directives.yaml.version="1.1";else this.directives=new h.Directives({version:"1.1"});r={merge:true,resolveKnownTags:false,schema:"yaml-1.1"};break;case"1.2":case"next":if(this.directives)this.directives.yaml.version=e;else this.directives=new h.Directives({version:e});r={merge:false,resolveKnownTags:true,schema:"core"};break;case null:if(this.directives)delete this.directives;r=null;break;default:{const t=JSON.stringify(e);throw new Error(`Expected '1.1', '1.2' or null as first argument, but found: ${t}`)}}if(t.schema instanceof Object)this.schema=t.schema;else if(r)this.schema=new p.Schema(Object.assign(r,t));else throw new Error(`With a null YAML version, the { schema: Schema } option is required`)}toJS({json:e,jsonArg:t,mapAsMap:r,maxAliasCount:a,onAnchor:i,reviver:n}={}){const s={anchors:new Map,doc:this,keep:!e,mapAsMap:r===true,mapKeyWarned:false,maxAliasCount:typeof a==="number"?a:100,stringify:c.stringify};const p=o.toJS(this.contents,t??"",s);if(typeof i==="function")for(const{count:e,res:t}of s.anchors.values())i(t,e);return typeof n==="function"?u.applyReviver(n,{"":p},"",p):p}toJSON(e,t){return this.toJS({json:true,jsonArg:e,mapAsMap:false,onAnchor:t})}toString(e={}){if(this.errors.length>0)throw new Error("Document with errors cannot be stringified");if("indent"in e&&(!Number.isInteger(e.indent)||Number(e.indent)<=0)){const t=JSON.stringify(e.indent);throw new Error(`"indent" option must be a positive integer, not ${t}`)}return l.stringifyDocument(this,e)}}function assertCollection(e){if(n.isCollection(e))return true;throw new Error("Expected a YAML collection as document contents")}t.Document=Document},8459:(e,t,r)=>{"use strict";var a=r(1399);var i=r(6796);function anchorIsValid(e){if(/[\x00-\x19\s,[\]{}]/.test(e)){const t=JSON.stringify(e);const r=`Anchor must not contain whitespace or control characters: ${t}`;throw new Error(r)}return true}function anchorNames(e){const t=new Set;i.visit(e,{Value(e,r){if(r.anchor)t.add(r.anchor)}});return t}function findNewAnchor(e,t){for(let r=1;true;++r){const a=`${e}${r}`;if(!t.has(a))return a}}function createNodeAnchors(e,t){const r=[];const i=new Map;let n=null;return{onAnchor:a=>{r.push(a);if(!n)n=anchorNames(e);const i=findNewAnchor(t,n);n.add(i);return i},setAnchors:()=>{for(const e of r){const t=i.get(e);if(typeof t==="object"&&t.anchor&&(a.isScalar(t.node)||a.isCollection(t.node))){t.node.anchor=t.anchor}else{const t=new Error("Failed to resolve repeated object (this should not happen)");t.source=e;throw t}}},sourceObjects:i}}t.anchorIsValid=anchorIsValid;t.anchorNames=anchorNames;t.createNodeAnchors=createNodeAnchors;t.findNewAnchor=findNewAnchor},3412:(e,t)=>{"use strict";function applyReviver(e,t,r,a){if(a&&typeof a==="object"){if(Array.isArray(a)){for(let t=0,r=a.length;t{"use strict";var a=r(5639);var i=r(1399);var n=r(9338);const s="tag:yaml.org,2002:";function findTagObject(e,t,r){if(t){const e=r.filter((e=>e.tag===t));const a=e.find((e=>!e.format))??e[0];if(!a)throw new Error(`Tag ${t} not found`);return a}return r.find((t=>t.identify?.(e)&&!t.format))}function createNode(e,t,r){if(i.isDocument(e))e=e.contents;if(i.isNode(e))return e;if(i.isPair(e)){const t=r.schema[i.MAP].createNode?.(r.schema,null,r);t.items.push(e);return t}if(e instanceof String||e instanceof Number||e instanceof Boolean||typeof BigInt!=="undefined"&&e instanceof BigInt){e=e.valueOf()}const{aliasDuplicateObjects:o,onAnchor:p,onTagObj:c,schema:l,sourceObjects:d}=r;let u=undefined;if(o&&e&&typeof e==="object"){u=d.get(e);if(u){if(!u.anchor)u.anchor=p(e);return new a.Alias(u.anchor)}else{u={anchor:null,node:null};d.set(e,u)}}if(t?.startsWith("!!"))t=s+t.slice(2);let m=findTagObject(e,t,l.tags);if(!m){if(e&&typeof e.toJSON==="function"){e=e.toJSON()}if(!e||typeof e!=="object"){const t=new n.Scalar(e);if(u)u.node=t;return t}m=e instanceof Map?l[i.MAP]:Symbol.iterator in Object(e)?l[i.SEQ]:l[i.MAP]}if(c){c(m);delete r.onTagObj}const h=m?.createNode?m.createNode(r.schema,e,r):new n.Scalar(e);if(t)h.tag=t;if(u)u.node=h;return h}t.createNode=createNode},5400:(e,t,r)=>{"use strict";var a=r(1399);var i=r(6796);const n={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"};const escapeTagName=e=>e.replace(/[!,[\]{}]/g,(e=>n[e]));class Directives{constructor(e,t){this.docStart=null;this.docEnd=false;this.yaml=Object.assign({},Directives.defaultYaml,e);this.tags=Object.assign({},Directives.defaultTags,t)}clone(){const e=new Directives(this.yaml,this.tags);e.docStart=this.docStart;return e}atDocument(){const e=new Directives(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=true;break;case"1.2":this.atNextDocument=false;this.yaml={explicit:Directives.defaultYaml.explicit,version:"1.2"};this.tags=Object.assign({},Directives.defaultTags);break}return e}add(e,t){if(this.atNextDocument){this.yaml={explicit:Directives.defaultYaml.explicit,version:"1.1"};this.tags=Object.assign({},Directives.defaultTags);this.atNextDocument=false}const r=e.trim().split(/[ \t]+/);const a=r.shift();switch(a){case"%TAG":{if(r.length!==2){t(0,"%TAG directive should contain exactly two parts");if(r.length<2)return false}const[e,a]=r;this.tags[e]=a;return true}case"%YAML":{this.yaml.explicit=true;if(r.length!==1){t(0,"%YAML directive should contain exactly one part");return false}const[e]=r;if(e==="1.1"||e==="1.2"){this.yaml.version=e;return true}else{const r=/^\d+\.\d+$/.test(e);t(6,`Unsupported YAML version ${e}`,r);return false}}default:t(0,`Unknown directive ${a}`,true);return false}}tagName(e,t){if(e==="!")return"!";if(e[0]!=="!"){t(`Not a valid tag: ${e}`);return null}if(e[1]==="<"){const r=e.slice(2,-1);if(r==="!"||r==="!!"){t(`Verbatim tags aren't resolved, so ${e} is invalid.`);return null}if(e[e.length-1]!==">")t("Verbatim tags must end with a >");return r}const[,r,a]=e.match(/^(.*!)([^!]*)$/);if(!a)t(`The ${e} tag has no suffix`);const i=this.tags[r];if(i)return i+decodeURIComponent(a);if(r==="!")return e;t(`Could not resolve tag: ${e}`);return null}tagString(e){for(const[t,r]of Object.entries(this.tags)){if(e.startsWith(r))return t+escapeTagName(e.substring(r.length))}return e[0]==="!"?e:`!<${e}>`}toString(e){const t=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[];const r=Object.entries(this.tags);let n;if(e&&r.length>0&&a.isNode(e.contents)){const t={};i.visit(e.contents,((e,r)=>{if(a.isNode(r)&&r.tag)t[r.tag]=true}));n=Object.keys(t)}else n=[];for(const[a,i]of r){if(a==="!!"&&i==="tag:yaml.org,2002:")continue;if(!e||n.some((e=>e.startsWith(i))))t.push(`%TAG ${a} ${i}`)}return t.join("\n")}}Directives.defaultYaml={explicit:false,version:"1.2"};Directives.defaultTags={"!!":"tag:yaml.org,2002:"};t.Directives=Directives},4236:(e,t)=>{"use strict";class YAMLError extends Error{constructor(e,t,r,a){super();this.name=e;this.code=r;this.message=a;this.pos=t}}class YAMLParseError extends YAMLError{constructor(e,t,r){super("YAMLParseError",e,t,r)}}class YAMLWarning extends YAMLError{constructor(e,t,r){super("YAMLWarning",e,t,r)}}const prettifyError=(e,t)=>r=>{if(r.pos[0]===-1)return;r.linePos=r.pos.map((e=>t.linePos(e)));const{line:a,col:i}=r.linePos[0];r.message+=` at line ${a}, column ${i}`;let n=i-1;let s=e.substring(t.lineStarts[a-1],t.lineStarts[a]).replace(/[\n\r]+$/,"");if(n>=60&&s.length>80){const e=Math.min(n-39,s.length-79);s="…"+s.substring(e);n-=e-1}if(s.length>80)s=s.substring(0,79)+"…";if(a>1&&/^ *$/.test(s.substring(0,n))){let r=e.substring(t.lineStarts[a-2],t.lineStarts[a-1]);if(r.length>80)r=r.substring(0,79)+"…\n";s=r+s}if(/[^ ]/.test(s)){let e=1;const t=r.linePos[1];if(t&&t.line===a&&t.col>i){e=Math.min(t.col-i,80-n)}const o=" ".repeat(n)+"^".repeat(e);r.message+=`:\n\n${s}\n${o}\n`}};t.YAMLError=YAMLError;t.YAMLParseError=YAMLParseError;t.YAMLWarning=YAMLWarning;t.prettifyError=prettifyError},4083:(e,t,r)=>{"use strict";var a=r(9493);var i=r(42);var n=r(6831);var s=r(4236);var o=r(5639);var p=r(1399);var c=r(246);var l=r(9338);var d=r(6011);var u=r(5161);var m=r(9169);var h=r(5976);var g=r(1929);var v=r(3328);var y=r(8649);var b=r(6796);t.Composer=a.Composer;t.Document=i.Document;t.Schema=n.Schema;t.YAMLError=s.YAMLError;t.YAMLParseError=s.YAMLParseError;t.YAMLWarning=s.YAMLWarning;t.Alias=o.Alias;t.isAlias=p.isAlias;t.isCollection=p.isCollection;t.isDocument=p.isDocument;t.isMap=p.isMap;t.isNode=p.isNode;t.isPair=p.isPair;t.isScalar=p.isScalar;t.isSeq=p.isSeq;t.Pair=c.Pair;t.Scalar=l.Scalar;t.YAMLMap=d.YAMLMap;t.YAMLSeq=u.YAMLSeq;t.CST=m;t.Lexer=h.Lexer;t.LineCounter=g.LineCounter;t.Parser=v.Parser;t.parse=y.parse;t.parseAllDocuments=y.parseAllDocuments;t.parseDocument=y.parseDocument;t.stringify=y.stringify;t.visit=b.visit;t.visitAsync=b.visitAsync},6909:(e,t)=>{"use strict";function debug(e,...t){if(e==="debug")console.log(...t)}function warn(e,t){if(e==="debug"||e==="warn"){if(typeof process!=="undefined"&&process.emitWarning)process.emitWarning(t);else console.warn(t)}}t.debug=debug;t.warn=warn},5639:(e,t,r)=>{"use strict";var a=r(8459);var i=r(6796);var n=r(1399);class Alias extends n.NodeBase{constructor(e){super(n.ALIAS);this.source=e;Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(e){let t=undefined;i.visit(e,{Node:(e,r)=>{if(r===this)return i.visit.BREAK;if(r.anchor===this.source)t=r}});return t}toJSON(e,t){if(!t)return{source:this.source};const{anchors:r,doc:a,maxAliasCount:i}=t;const n=this.resolve(a);if(!n){const e=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(e)}const s=r.get(n);if(!s||s.res===undefined){const e="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(e)}if(i>=0){s.count+=1;if(s.aliasCount===0)s.aliasCount=getAliasCount(a,n,r);if(s.count*s.aliasCount>i){const e="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(e)}}return s.res}toString(e,t,r){const i=`*${this.source}`;if(e){a.anchorIsValid(this.source);if(e.options.verifyAliasOrder&&!e.anchors.has(this.source)){const e=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new Error(e)}if(e.implicitKey)return`${i} `}return i}}function getAliasCount(e,t,r){if(n.isAlias(t)){const a=t.resolve(e);const i=r&&a&&r.get(a);return i?i.count*i.aliasCount:0}else if(n.isCollection(t)){let a=0;for(const i of t.items){const t=getAliasCount(e,i,r);if(t>a)a=t}return a}else if(n.isPair(t)){const a=getAliasCount(e,t.key,r);const i=getAliasCount(e,t.value,r);return Math.max(a,i)}return 1}t.Alias=Alias},3466:(e,t,r)=>{"use strict";var a=r(9652);var i=r(1399);function collectionFromPath(e,t,r){let i=r;for(let e=t.length-1;e>=0;--e){const r=t[e];if(typeof r==="number"&&Number.isInteger(r)&&r>=0){const e=[];e[r]=i;i=e}else{i=new Map([[r,i]])}}return a.createNode(i,undefined,{aliasDuplicateObjects:false,keepUndefined:false,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:e,sourceObjects:new Map})}const isEmptyPath=e=>e==null||typeof e==="object"&&!!e[Symbol.iterator]().next().done;class Collection extends i.NodeBase{constructor(e,t){super(e);Object.defineProperty(this,"schema",{value:t,configurable:true,enumerable:false,writable:true})}clone(e){const t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));if(e)t.schema=e;t.items=t.items.map((t=>i.isNode(t)||i.isPair(t)?t.clone(e):t));if(this.range)t.range=this.range.slice();return t}addIn(e,t){if(isEmptyPath(e))this.add(t);else{const[r,...a]=e;const n=this.get(r,true);if(i.isCollection(n))n.addIn(a,t);else if(n===undefined&&this.schema)this.set(r,collectionFromPath(this.schema,a,t));else throw new Error(`Expected YAML collection at ${r}. Remaining path: ${a}`)}}deleteIn(e){const[t,...r]=e;if(r.length===0)return this.delete(t);const a=this.get(t,true);if(i.isCollection(a))return a.deleteIn(r);else throw new Error(`Expected YAML collection at ${t}. Remaining path: ${r}`)}getIn(e,t){const[r,...a]=e;const n=this.get(r,true);if(a.length===0)return!t&&i.isScalar(n)?n.value:n;else return i.isCollection(n)?n.getIn(a,t):undefined}hasAllNullValues(e){return this.items.every((t=>{if(!i.isPair(t))return false;const r=t.value;return r==null||e&&i.isScalar(r)&&r.value==null&&!r.commentBefore&&!r.comment&&!r.tag}))}hasIn(e){const[t,...r]=e;if(r.length===0)return this.has(t);const a=this.get(t,true);return i.isCollection(a)?a.hasIn(r):false}setIn(e,t){const[r,...a]=e;if(a.length===0){this.set(r,t)}else{const e=this.get(r,true);if(i.isCollection(e))e.setIn(a,t);else if(e===undefined&&this.schema)this.set(r,collectionFromPath(this.schema,a,t));else throw new Error(`Expected YAML collection at ${r}. Remaining path: ${a}`)}}}Collection.maxFlowStringSingleLineLength=60;t.Collection=Collection;t.collectionFromPath=collectionFromPath;t.isEmptyPath=isEmptyPath},1399:(e,t)=>{"use strict";const r=Symbol.for("yaml.alias");const a=Symbol.for("yaml.document");const i=Symbol.for("yaml.map");const n=Symbol.for("yaml.pair");const s=Symbol.for("yaml.scalar");const o=Symbol.for("yaml.seq");const p=Symbol.for("yaml.node.type");const isAlias=e=>!!e&&typeof e==="object"&&e[p]===r;const isDocument=e=>!!e&&typeof e==="object"&&e[p]===a;const isMap=e=>!!e&&typeof e==="object"&&e[p]===i;const isPair=e=>!!e&&typeof e==="object"&&e[p]===n;const isScalar=e=>!!e&&typeof e==="object"&&e[p]===s;const isSeq=e=>!!e&&typeof e==="object"&&e[p]===o;function isCollection(e){if(e&&typeof e==="object")switch(e[p]){case i:case o:return true}return false}function isNode(e){if(e&&typeof e==="object")switch(e[p]){case r:case i:case s:case o:return true}return false}const hasAnchor=e=>(isScalar(e)||isCollection(e))&&!!e.anchor;class NodeBase{constructor(e){Object.defineProperty(this,p,{value:e})}clone(){const e=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));if(this.range)e.range=this.range.slice();return e}}t.ALIAS=r;t.DOC=a;t.MAP=i;t.NODE_TYPE=p;t.NodeBase=NodeBase;t.PAIR=n;t.SCALAR=s;t.SEQ=o;t.hasAnchor=hasAnchor;t.isAlias=isAlias;t.isCollection=isCollection;t.isDocument=isDocument;t.isMap=isMap;t.isNode=isNode;t.isPair=isPair;t.isScalar=isScalar;t.isSeq=isSeq},246:(e,t,r)=>{"use strict";var a=r(9652);var i=r(4875);var n=r(4676);var s=r(1399);function createPair(e,t,r){const i=a.createNode(e,undefined,r);const n=a.createNode(t,undefined,r);return new Pair(i,n)}class Pair{constructor(e,t=null){Object.defineProperty(this,s.NODE_TYPE,{value:s.PAIR});this.key=e;this.value=t}clone(e){let{key:t,value:r}=this;if(s.isNode(t))t=t.clone(e);if(s.isNode(r))r=r.clone(e);return new Pair(t,r)}toJSON(e,t){const r=t?.mapAsMap?new Map:{};return n.addPairToJSMap(t,r,this)}toString(e,t,r){return e?.doc?i.stringifyPair(this,e,t,r):JSON.stringify(this)}}t.Pair=Pair;t.createPair=createPair},9338:(e,t,r)=>{"use strict";var a=r(1399);var i=r(2463);const isScalarValue=e=>!e||typeof e!=="function"&&typeof e!=="object";class Scalar extends a.NodeBase{constructor(e){super(a.SCALAR);this.value=e}toJSON(e,t){return t?.keep?this.value:i.toJS(this.value,e,t)}toString(){return String(this.value)}}Scalar.BLOCK_FOLDED="BLOCK_FOLDED";Scalar.BLOCK_LITERAL="BLOCK_LITERAL";Scalar.PLAIN="PLAIN";Scalar.QUOTE_DOUBLE="QUOTE_DOUBLE";Scalar.QUOTE_SINGLE="QUOTE_SINGLE";t.Scalar=Scalar;t.isScalarValue=isScalarValue},6011:(e,t,r)=>{"use strict";var a=r(2466);var i=r(4676);var n=r(3466);var s=r(1399);var o=r(246);var p=r(9338);function findPair(e,t){const r=s.isScalar(t)?t.value:t;for(const a of e){if(s.isPair(a)){if(a.key===t||a.key===r)return a;if(s.isScalar(a.key)&&a.key.value===r)return a}}return undefined}class YAMLMap extends n.Collection{constructor(e){super(s.MAP,e);this.items=[]}static get tagName(){return"tag:yaml.org,2002:map"}add(e,t){let r;if(s.isPair(e))r=e;else if(!e||typeof e!=="object"||!("key"in e)){r=new o.Pair(e,e?.value)}else r=new o.Pair(e.key,e.value);const a=findPair(this.items,r.key);const i=this.schema?.sortMapEntries;if(a){if(!t)throw new Error(`Key ${r.key} already set`);if(s.isScalar(a.value)&&p.isScalarValue(r.value))a.value.value=r.value;else a.value=r.value}else if(i){const e=this.items.findIndex((e=>i(r,e)<0));if(e===-1)this.items.push(r);else this.items.splice(e,0,r)}else{this.items.push(r)}}delete(e){const t=findPair(this.items,e);if(!t)return false;const r=this.items.splice(this.items.indexOf(t),1);return r.length>0}get(e,t){const r=findPair(this.items,e);const a=r?.value;return(!t&&s.isScalar(a)?a.value:a)??undefined}has(e){return!!findPair(this.items,e)}set(e,t){this.add(new o.Pair(e,t),true)}toJSON(e,t,r){const a=r?new r:t?.mapAsMap?new Map:{};if(t?.onCreate)t.onCreate(a);for(const e of this.items)i.addPairToJSMap(t,a,e);return a}toString(e,t,r){if(!e)return JSON.stringify(this);for(const e of this.items){if(!s.isPair(e))throw new Error(`Map items must all be pairs; found ${JSON.stringify(e)} instead`)}if(!e.allNullValues&&this.hasAllNullValues(false))e=Object.assign({},e,{allNullValues:true});return a.stringifyCollection(this,e,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:e.indent||"",onChompKeep:r,onComment:t})}}t.YAMLMap=YAMLMap;t.findPair=findPair},5161:(e,t,r)=>{"use strict";var a=r(2466);var i=r(3466);var n=r(1399);var s=r(9338);var o=r(2463);class YAMLSeq extends i.Collection{constructor(e){super(n.SEQ,e);this.items=[]}static get tagName(){return"tag:yaml.org,2002:seq"}add(e){this.items.push(e)}delete(e){const t=asItemIndex(e);if(typeof t!=="number")return false;const r=this.items.splice(t,1);return r.length>0}get(e,t){const r=asItemIndex(e);if(typeof r!=="number")return undefined;const a=this.items[r];return!t&&n.isScalar(a)?a.value:a}has(e){const t=asItemIndex(e);return typeof t==="number"&&t=0?t:null}t.YAMLSeq=YAMLSeq},4676:(e,t,r)=>{"use strict";var a=r(6909);var i=r(8409);var n=r(1399);var s=r(9338);var o=r(2463);const p="<<";function addPairToJSMap(e,t,{key:r,value:a}){if(e?.doc.schema.merge&&isMergeKey(r)){a=n.isAlias(a)?a.resolve(e.doc):a;if(n.isSeq(a))for(const r of a.items)mergeToJSMap(e,t,r);else if(Array.isArray(a))for(const r of a)mergeToJSMap(e,t,r);else mergeToJSMap(e,t,a)}else{const i=o.toJS(r,"",e);if(t instanceof Map){t.set(i,o.toJS(a,i,e))}else if(t instanceof Set){t.add(i)}else{const n=stringifyKey(r,i,e);const s=o.toJS(a,n,e);if(n in t)Object.defineProperty(t,n,{value:s,writable:true,enumerable:true,configurable:true});else t[n]=s}}return t}const isMergeKey=e=>e===p||n.isScalar(e)&&e.value===p&&(!e.type||e.type===s.Scalar.PLAIN);function mergeToJSMap(e,t,r){const a=e&&n.isAlias(r)?r.resolve(e.doc):r;if(!n.isMap(a))throw new Error("Merge sources must be maps or map aliases");const i=a.toJSON(null,e,Map);for(const[e,r]of i){if(t instanceof Map){if(!t.has(e))t.set(e,r)}else if(t instanceof Set){t.add(e)}else if(!Object.prototype.hasOwnProperty.call(t,e)){Object.defineProperty(t,e,{value:r,writable:true,enumerable:true,configurable:true})}}return t}function stringifyKey(e,t,r){if(t===null)return"";if(typeof t!=="object")return String(t);if(n.isNode(e)&&r&&r.doc){const t=i.createStringifyContext(r.doc,{});t.anchors=new Set;for(const e of r.anchors.keys())t.anchors.add(e.anchor);t.inFlow=true;t.inStringifyKey=true;const n=e.toString(t);if(!r.mapKeyWarned){let e=JSON.stringify(n);if(e.length>40)e=e.substring(0,36)+'..."';a.warn(r.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${e}. Set mapAsMap: true to use object keys.`);r.mapKeyWarned=true}return n}return JSON.stringify(t)}t.addPairToJSMap=addPairToJSMap},2463:(e,t,r)=>{"use strict";var a=r(1399);function toJS(e,t,r){if(Array.isArray(e))return e.map(((e,t)=>toJS(e,String(t),r)));if(e&&typeof e.toJSON==="function"){if(!r||!a.hasAnchor(e))return e.toJSON(t,r);const i={aliasCount:0,count:1,res:undefined};r.anchors.set(e,i);r.onCreate=e=>{i.res=e;delete r.onCreate};const n=e.toJSON(t,r);if(r.onCreate)r.onCreate(n);return n}if(typeof e==="bigint"&&!r?.keep)return Number(e);return e}t.toJS=toJS},9027:(e,t,r)=>{"use strict";var a=r(9485);var i=r(7578);var n=r(4236);var s=r(6226);function resolveAsScalar(e,t=true,r){if(e){const _onError=(e,t,a)=>{const i=typeof e==="number"?e:Array.isArray(e)?e[0]:e.offset;if(r)r(i,t,a);else throw new n.YAMLParseError([i,i+1],t,a)};switch(e.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return i.resolveFlowScalar(e,t,_onError);case"block-scalar":return a.resolveBlockScalar(e,t,_onError)}}return null}function createScalarToken(e,t){const{implicitKey:r=false,indent:a,inFlow:i=false,offset:n=-1,type:o="PLAIN"}=t;const p=s.stringifyString({type:o,value:e},{implicitKey:r,indent:a>0?" ".repeat(a):"",inFlow:i,options:{blockQuote:true,lineWidth:-1}});const c=t.end??[{type:"newline",offset:-1,indent:a,source:"\n"}];switch(p[0]){case"|":case">":{const e=p.indexOf("\n");const t=p.substring(0,e);const r=p.substring(e+1)+"\n";const i=[{type:"block-scalar-header",offset:n,indent:a,source:t}];if(!addEndtoBlockProps(i,c))i.push({type:"newline",offset:-1,indent:a,source:"\n"});return{type:"block-scalar",offset:n,indent:a,props:i,source:r}}case'"':return{type:"double-quoted-scalar",offset:n,indent:a,source:p,end:c};case"'":return{type:"single-quoted-scalar",offset:n,indent:a,source:p,end:c};default:return{type:"scalar",offset:n,indent:a,source:p,end:c}}}function setScalarValue(e,t,r={}){let{afterKey:a=false,implicitKey:i=false,inFlow:n=false,type:o}=r;let p="indent"in e?e.indent:null;if(a&&typeof p==="number")p+=2;if(!o)switch(e.type){case"single-quoted-scalar":o="QUOTE_SINGLE";break;case"double-quoted-scalar":o="QUOTE_DOUBLE";break;case"block-scalar":{const t=e.props[0];if(t.type!=="block-scalar-header")throw new Error("Invalid block scalar header");o=t.source[0]===">"?"BLOCK_FOLDED":"BLOCK_LITERAL";break}default:o="PLAIN"}const c=s.stringifyString({type:o,value:t},{implicitKey:i||p===null,indent:p!==null&&p>0?" ".repeat(p):"",inFlow:n,options:{blockQuote:true,lineWidth:-1}});switch(c[0]){case"|":case">":setBlockScalarValue(e,c);break;case'"':setFlowScalarValue(e,c,"double-quoted-scalar");break;case"'":setFlowScalarValue(e,c,"single-quoted-scalar");break;default:setFlowScalarValue(e,c,"scalar")}}function setBlockScalarValue(e,t){const r=t.indexOf("\n");const a=t.substring(0,r);const i=t.substring(r+1)+"\n";if(e.type==="block-scalar"){const t=e.props[0];if(t.type!=="block-scalar-header")throw new Error("Invalid block scalar header");t.source=a;e.source=i}else{const{offset:t}=e;const r="indent"in e?e.indent:-1;const n=[{type:"block-scalar-header",offset:t,indent:r,source:a}];if(!addEndtoBlockProps(n,"end"in e?e.end:undefined))n.push({type:"newline",offset:-1,indent:r,source:"\n"});for(const t of Object.keys(e))if(t!=="type"&&t!=="offset")delete e[t];Object.assign(e,{type:"block-scalar",indent:r,props:n,source:i})}}function addEndtoBlockProps(e,t){if(t)for(const r of t)switch(r.type){case"space":case"comment":e.push(r);break;case"newline":e.push(r);return true}return false}function setFlowScalarValue(e,t,r){switch(e.type){case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":e.type=r;e.source=t;break;case"block-scalar":{const a=e.props.slice(1);let i=t.length;if(e.props[0].type==="block-scalar-header")i-=e.props[0].source.length;for(const e of a)e.offset+=i;delete e.props;Object.assign(e,{type:r,source:t,end:a});break}case"block-map":case"block-seq":{const a=e.offset+t.length;const i={type:"newline",offset:a,indent:e.indent,source:"\n"};delete e.items;Object.assign(e,{type:r,source:t,end:[i]});break}default:{const a="indent"in e?e.indent:-1;const i="end"in e&&Array.isArray(e.end)?e.end.filter((e=>e.type==="space"||e.type==="comment"||e.type==="newline")):[];for(const t of Object.keys(e))if(t!=="type"&&t!=="offset")delete e[t];Object.assign(e,{type:r,indent:a,source:t,end:i})}}}t.createScalarToken=createScalarToken;t.resolveAsScalar=resolveAsScalar;t.setScalarValue=setScalarValue},6307:(e,t)=>{"use strict";const stringify=e=>"type"in e?stringifyToken(e):stringifyItem(e);function stringifyToken(e){switch(e.type){case"block-scalar":{let t="";for(const r of e.props)t+=stringifyToken(r);return t+e.source}case"block-map":case"block-seq":{let t="";for(const r of e.items)t+=stringifyItem(r);return t}case"flow-collection":{let t=e.start.source;for(const r of e.items)t+=stringifyItem(r);for(const r of e.end)t+=r.source;return t}case"document":{let t=stringifyItem(e);if(e.end)for(const r of e.end)t+=r.source;return t}default:{let t=e.source;if("end"in e&&e.end)for(const r of e.end)t+=r.source;return t}}}function stringifyItem({start:e,key:t,sep:r,value:a}){let i="";for(const t of e)i+=t.source;if(t)i+=stringifyToken(t);if(r)for(const e of r)i+=e.source;if(a)i+=stringifyToken(a);return i}t.stringify=stringify},8497:(e,t)=>{"use strict";const r=Symbol("break visit");const a=Symbol("skip children");const i=Symbol("remove item");function visit(e,t){if("type"in e&&e.type==="document")e={start:e.start,value:e.value};_visit(Object.freeze([]),e,t)}visit.BREAK=r;visit.SKIP=a;visit.REMOVE=i;visit.itemAtPath=(e,t)=>{let r=e;for(const[e,a]of t){const t=r?.[e];if(t&&"items"in t){r=t.items[a]}else return undefined}return r};visit.parentCollection=(e,t)=>{const r=visit.itemAtPath(e,t.slice(0,-1));const a=t[t.length-1][0];const i=r?.[a];if(i&&"items"in i)return i;throw new Error("Parent collection not found")};function _visit(e,t,a){let n=a(t,e);if(typeof n==="symbol")return n;for(const s of["key","value"]){const o=t[s];if(o&&"items"in o){for(let t=0;t{"use strict";var a=r(9027);var i=r(6307);var n=r(8497);const s="\ufeff";const o="";const p="";const c="";const isCollection=e=>!!e&&"items"in e;const isScalar=e=>!!e&&(e.type==="scalar"||e.type==="single-quoted-scalar"||e.type==="double-quoted-scalar"||e.type==="block-scalar");function prettyToken(e){switch(e){case s:return"";case o:return"";case p:return"";case c:return"";default:return JSON.stringify(e)}}function tokenType(e){switch(e){case s:return"byte-order-mark";case o:return"doc-mode";case p:return"flow-error-end";case c:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case"\n":case"\r\n":return"newline";case"-":return"seq-item-ind";case"?":return"explicit-key-ind";case":":return"map-value-ind";case"{":return"flow-map-start";case"}":return"flow-map-end";case"[":return"flow-seq-start";case"]":return"flow-seq-end";case",":return"comma"}switch(e[0]){case" ":case"\t":return"space";case"#":return"comment";case"%":return"directive-line";case"*":return"alias";case"&":return"anchor";case"!":return"tag";case"'":return"single-quoted-scalar";case'"':return"double-quoted-scalar";case"|":case">":return"block-scalar-header"}return null}t.createScalarToken=a.createScalarToken;t.resolveAsScalar=a.resolveAsScalar;t.setScalarValue=a.setScalarValue;t.stringify=i.stringify;t.visit=n.visit;t.BOM=s;t.DOCUMENT=o;t.FLOW_END=p;t.SCALAR=c;t.isCollection=isCollection;t.isScalar=isScalar;t.prettyToken=prettyToken;t.tokenType=tokenType},5976:(e,t,r)=>{"use strict";var a=r(9169);function isEmpty(e){switch(e){case undefined:case" ":case"\n":case"\r":case"\t":return true;default:return false}}const i="0123456789ABCDEFabcdef".split("");const n="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()".split("");const s=",[]{}".split("");const o=" ,[]{}\n\r\t".split("");const isNotAnchorChar=e=>!e||o.includes(e);class Lexer{constructor(){this.atEnd=false;this.blockScalarIndent=-1;this.blockScalarKeep=false;this.buffer="";this.flowKey=false;this.flowLevel=0;this.indentNext=0;this.indentValue=0;this.lineEndPos=null;this.next=null;this.pos=0}*lex(e,t=false){if(e){this.buffer=this.buffer?this.buffer+e:e;this.lineEndPos=null}this.atEnd=!t;let r=this.next??"stream";while(r&&(t||this.hasChars(1)))r=yield*this.parseNext(r)}atLineEnd(){let e=this.pos;let t=this.buffer[e];while(t===" "||t==="\t")t=this.buffer[++e];if(!t||t==="#"||t==="\n")return true;if(t==="\r")return this.buffer[e+1]==="\n";return false}charAt(e){return this.buffer[this.pos+e]}continueScalar(e){let t=this.buffer[e];if(this.indentNext>0){let r=0;while(t===" ")t=this.buffer[++r+e];if(t==="\r"){const t=this.buffer[r+e+1];if(t==="\n"||!t&&!this.atEnd)return e+r+1}return t==="\n"||r>=this.indentNext||!t&&!this.atEnd?e+r:-1}if(t==="-"||t==="."){const t=this.buffer.substr(e,3);if((t==="---"||t==="...")&&isEmpty(this.buffer[e+3]))return-1}return e}getLine(){let e=this.lineEndPos;if(typeof e!=="number"||e!==-1&&ethis.indentValue&&!isEmpty(this.charAt(1)))this.indentNext=this.indentValue;return yield*this.parseBlockStart()}*parseBlockStart(){const[e,t]=this.peek(2);if(!t&&!this.atEnd)return this.setNext("block-start");if((e==="-"||e==="?"||e===":")&&isEmpty(t)){const e=(yield*this.pushCount(1))+(yield*this.pushSpaces(true));this.indentNext=this.indentValue+1;this.indentValue+=e;return yield*this.parseBlockStart()}return"doc"}*parseDocument(){yield*this.pushSpaces(true);const e=this.getLine();if(e===null)return this.setNext("doc");let t=yield*this.pushIndicators();switch(e[t]){case"#":yield*this.pushCount(e.length-t);case undefined:yield*this.pushNewline();return yield*this.parseLineStart();case"{":case"[":yield*this.pushCount(1);this.flowKey=false;this.flowLevel=1;return"flow";case"}":case"]":yield*this.pushCount(1);return"doc";case"*":yield*this.pushUntil(isNotAnchorChar);return"doc";case'"':case"'":return yield*this.parseQuotedScalar();case"|":case">":t+=(yield*this.parseBlockScalarHeader());t+=(yield*this.pushSpaces(true));yield*this.pushCount(e.length-t);yield*this.pushNewline();return yield*this.parseBlockScalar();default:return yield*this.parsePlainScalar()}}*parseFlowCollection(){let e,t;let r=-1;do{e=yield*this.pushNewline();if(e>0){t=yield*this.pushSpaces(false);this.indentValue=r=t}else{t=0}t+=(yield*this.pushSpaces(true))}while(e+t>0);const i=this.getLine();if(i===null)return this.setNext("flow");if(r!==-1&&r"0"&&t<="9")this.blockScalarIndent=Number(t)-1;else if(t!=="-")break}return yield*this.pushUntil((e=>isEmpty(e)||e==="#"))}*parseBlockScalar(){let e=this.pos-1;let t=0;let r;e:for(let a=this.pos;r=this.buffer[a];++a){switch(r){case" ":t+=1;break;case"\n":e=a;t=0;break;case"\r":{const e=this.buffer[a+1];if(!e&&!this.atEnd)return this.setNext("block-scalar");if(e==="\n")break}default:break e}}if(!r&&!this.atEnd)return this.setNext("block-scalar");if(t>=this.indentNext){if(this.blockScalarIndent===-1)this.indentNext=t;else this.indentNext+=this.blockScalarIndent;do{const t=this.continueScalar(e+1);if(t===-1)break;e=this.buffer.indexOf("\n",t)}while(e!==-1);if(e===-1){if(!this.atEnd)return this.setNext("block-scalar");e=this.buffer.length}}if(!this.blockScalarKeep){do{let r=e-1;let a=this.buffer[r];if(a==="\r")a=this.buffer[--r];const i=r;while(a===" "||a==="\t")a=this.buffer[--r];if(a==="\n"&&r>=this.pos&&r+1+t>i)e=r;else break}while(true)}yield a.SCALAR;yield*this.pushToIndex(e+1,true);return yield*this.parseLineStart()}*parsePlainScalar(){const e=this.flowLevel>0;let t=this.pos-1;let r=this.pos-1;let i;while(i=this.buffer[++r]){if(i===":"){const a=this.buffer[r+1];if(isEmpty(a)||e&&a===",")break;t=r}else if(isEmpty(i)){let a=this.buffer[r+1];if(i==="\r"){if(a==="\n"){r+=1;i="\n";a=this.buffer[r+1]}else t=r}if(a==="#"||e&&s.includes(a))break;if(i==="\n"){const e=this.continueScalar(r+1);if(e===-1)break;r=Math.max(r,e-2)}}else{if(e&&s.includes(i))break;t=r}}if(!i&&!this.atEnd)return this.setNext("plain-scalar");yield a.SCALAR;yield*this.pushToIndex(t+1,true);return e?"flow":"doc"}*pushCount(e){if(e>0){yield this.buffer.substr(this.pos,e);this.pos+=e;return e}return 0}*pushToIndex(e,t){const r=this.buffer.slice(this.pos,e);if(r){yield r;this.pos+=r.length;return r.length}else if(t)yield"";return 0}*pushIndicators(){switch(this.charAt(0)){case"!":return(yield*this.pushTag())+(yield*this.pushSpaces(true))+(yield*this.pushIndicators());case"&":return(yield*this.pushUntil(isNotAnchorChar))+(yield*this.pushSpaces(true))+(yield*this.pushIndicators());case"-":case"?":case":":{const e=this.flowLevel>0;const t=this.charAt(1);if(isEmpty(t)||e&&s.includes(t)){if(!e)this.indentNext=this.indentValue+1;else if(this.flowKey)this.flowKey=false;return(yield*this.pushCount(1))+(yield*this.pushSpaces(true))+(yield*this.pushIndicators())}}}return 0}*pushTag(){if(this.charAt(1)==="<"){let e=this.pos+2;let t=this.buffer[e];while(!isEmpty(t)&&t!==">")t=this.buffer[++e];return yield*this.pushToIndex(t===">"?e+1:e,false)}else{let e=this.pos+1;let t=this.buffer[e];while(t){if(n.includes(t))t=this.buffer[++e];else if(t==="%"&&i.includes(this.buffer[e+1])&&i.includes(this.buffer[e+2])){t=this.buffer[e+=3]}else break}return yield*this.pushToIndex(e,false)}}*pushNewline(){const e=this.buffer[this.pos];if(e==="\n")return yield*this.pushCount(1);else if(e==="\r"&&this.charAt(1)==="\n")return yield*this.pushCount(2);else return 0}*pushSpaces(e){let t=this.pos-1;let r;do{r=this.buffer[++t]}while(r===" "||e&&r==="\t");const a=t-this.pos;if(a>0){yield this.buffer.substr(this.pos,a);this.pos=t}return a}*pushUntil(e){let t=this.pos;let r=this.buffer[t];while(!e(r))r=this.buffer[++t];return yield*this.pushToIndex(t,false)}}t.Lexer=Lexer},1929:(e,t)=>{"use strict";class LineCounter{constructor(){this.lineStarts=[];this.addNewLine=e=>this.lineStarts.push(e);this.linePos=e=>{let t=0;let r=this.lineStarts.length;while(t>1;if(this.lineStarts[a]{"use strict";var a=r(9169);var i=r(5976);function includesToken(e,t){for(let r=0;r=0){switch(e[t].type){case"doc-start":case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":case"newline":break e}}while(e[++t]?.type==="space"){}return e.splice(t,e.length)}function fixFlowSeqItems(e){if(e.start.type==="flow-seq-start"){for(const t of e.items){if(t.sep&&!t.value&&!includesToken(t.start,"explicit-key-ind")&&!includesToken(t.sep,"map-value-ind")){if(t.key)t.value=t.key;delete t.key;if(isFlowToken(t.value)){if(t.value.end)Array.prototype.push.apply(t.value.end,t.sep);else t.value.end=t.sep}else Array.prototype.push.apply(t.start,t.sep);delete t.sep}}}}class Parser{constructor(e){this.atNewLine=true;this.atScalar=false;this.indent=0;this.offset=0;this.onKeyLine=false;this.stack=[];this.source="";this.type="";this.lexer=new i.Lexer;this.onNewLine=e}*parse(e,t=false){if(this.onNewLine&&this.offset===0)this.onNewLine(0);for(const r of this.lexer.lex(e,t))yield*this.next(r);if(!t)yield*this.end()}*next(e){this.source=e;if(process.env.LOG_TOKENS)console.log("|",a.prettyToken(e));if(this.atScalar){this.atScalar=false;yield*this.step();this.offset+=e.length;return}const t=a.tokenType(e);if(!t){const t=`Not a YAML token: ${e}`;yield*this.pop({type:"error",offset:this.offset,message:t,source:e});this.offset+=e.length}else if(t==="scalar"){this.atNewLine=false;this.atScalar=true;this.type="scalar"}else{this.type=t;yield*this.step();switch(t){case"newline":this.atNewLine=true;this.indent=0;if(this.onNewLine)this.onNewLine(this.offset+e.length);break;case"space":if(this.atNewLine&&e[0]===" ")this.indent+=e.length;break;case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":if(this.atNewLine)this.indent+=e.length;break;case"doc-mode":case"flow-error-end":return;default:this.atNewLine=false}this.offset+=e.length}}*end(){while(this.stack.length>0)yield*this.pop()}get sourceToken(){const e={type:this.type,offset:this.offset,indent:this.indent,source:this.source};return e}*step(){const e=this.peek(1);if(this.type==="doc-end"&&(!e||e.type!=="doc-end")){while(this.stack.length>0)yield*this.pop();this.stack.push({type:"doc-end",offset:this.offset,source:this.source});return}if(!e)return yield*this.stream();switch(e.type){case"document":return yield*this.document(e);case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return yield*this.scalar(e);case"block-scalar":return yield*this.blockScalar(e);case"block-map":return yield*this.blockMap(e);case"block-seq":return yield*this.blockSequence(e);case"flow-collection":return yield*this.flowCollection(e);case"doc-end":return yield*this.documentEnd(e)}yield*this.pop()}peek(e){return this.stack[this.stack.length-e]}*pop(e){const t=e??this.stack.pop();if(!t){const e="Tried to pop an empty stack";yield{type:"error",offset:this.offset,source:"",message:e}}else if(this.stack.length===0){yield t}else{const e=this.peek(1);if(t.type==="block-scalar"){t.indent="indent"in e?e.indent:0}else if(t.type==="flow-collection"&&e.type==="document"){t.indent=0}if(t.type==="flow-collection")fixFlowSeqItems(t);switch(e.type){case"document":e.value=t;break;case"block-scalar":e.props.push(t);break;case"block-map":{const r=e.items[e.items.length-1];if(r.value){e.items.push({start:[],key:t,sep:[]});this.onKeyLine=true;return}else if(r.sep){r.value=t}else{Object.assign(r,{key:t,sep:[]});this.onKeyLine=!includesToken(r.start,"explicit-key-ind");return}break}case"block-seq":{const r=e.items[e.items.length-1];if(r.value)e.items.push({start:[],value:t});else r.value=t;break}case"flow-collection":{const r=e.items[e.items.length-1];if(!r||r.value)e.items.push({start:[],key:t,sep:[]});else if(r.sep)r.value=t;else Object.assign(r,{key:t,sep:[]});return}default:yield*this.pop();yield*this.pop(t)}if((e.type==="document"||e.type==="block-map"||e.type==="block-seq")&&(t.type==="block-map"||t.type==="block-seq")){const r=t.items[t.items.length-1];if(r&&!r.sep&&!r.value&&r.start.length>0&&findNonEmptyIndex(r.start)===-1&&(t.indent===0||r.start.every((e=>e.type!=="comment"||e.indent=e.indent){const r=!this.onKeyLine&&this.indent===e.indent&&t.sep;let a=[];if(r&&t.sep&&!t.value){const r=[];for(let a=0;ae.indent)r.length=0;break;default:r.length=0}}if(r.length>=2)a=t.sep.splice(r[1])}switch(this.type){case"anchor":case"tag":if(r||t.value){a.push(this.sourceToken);e.items.push({start:a});this.onKeyLine=true}else if(t.sep){t.sep.push(this.sourceToken)}else{t.start.push(this.sourceToken)}return;case"explicit-key-ind":if(!t.sep&&!includesToken(t.start,"explicit-key-ind")){t.start.push(this.sourceToken)}else if(r||t.value){a.push(this.sourceToken);e.items.push({start:a})}else{this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]})}this.onKeyLine=true;return;case"map-value-ind":if(includesToken(t.start,"explicit-key-ind")){if(!t.sep){if(includesToken(t.start,"newline")){Object.assign(t,{key:null,sep:[this.sourceToken]})}else{const e=getFirstKeyStartProps(t.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:e,key:null,sep:[this.sourceToken]}]})}}else if(t.value){e.items.push({start:[],key:null,sep:[this.sourceToken]})}else if(includesToken(t.sep,"map-value-ind")){this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:a,key:null,sep:[this.sourceToken]}]})}else if(isFlowToken(t.key)&&!includesToken(t.sep,"newline")){const e=getFirstKeyStartProps(t.start);const r=t.key;const a=t.sep;a.push(this.sourceToken);delete t.key,delete t.sep;this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:e,key:r,sep:a}]})}else if(a.length>0){t.sep=t.sep.concat(a,this.sourceToken)}else{t.sep.push(this.sourceToken)}}else{if(!t.sep){Object.assign(t,{key:null,sep:[this.sourceToken]})}else if(t.value||r){e.items.push({start:a,key:null,sep:[this.sourceToken]})}else if(includesToken(t.sep,"map-value-ind")){this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]})}else{t.sep.push(this.sourceToken)}}this.onKeyLine=true;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{const i=this.flowScalar(this.type);if(r||t.value){e.items.push({start:a,key:i,sep:[]});this.onKeyLine=true}else if(t.sep){this.stack.push(i)}else{Object.assign(t,{key:i,sep:[]});this.onKeyLine=true}return}default:{const i=this.startBlockValue(e);if(i){if(r&&i.type!=="block-seq"&&includesToken(t.start,"explicit-key-ind")){e.items.push({start:a})}this.stack.push(i);return}}}}yield*this.pop();yield*this.step()}*blockSequence(e){const t=e.items[e.items.length-1];switch(this.type){case"newline":if(t.value){const r="end"in t.value?t.value.end:undefined;const a=Array.isArray(r)?r[r.length-1]:undefined;if(a?.type==="comment")r?.push(this.sourceToken);else e.items.push({start:[this.sourceToken]})}else t.start.push(this.sourceToken);return;case"space":case"comment":if(t.value)e.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(t.start,e.indent)){const r=e.items[e.items.length-2];const a=r?.value?.end;if(Array.isArray(a)){Array.prototype.push.apply(a,t.start);a.push(this.sourceToken);e.items.pop();return}}t.start.push(this.sourceToken)}return;case"anchor":case"tag":if(t.value||this.indent<=e.indent)break;t.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==e.indent)break;if(t.value||includesToken(t.start,"seq-item-ind"))e.items.push({start:[this.sourceToken]});else t.start.push(this.sourceToken);return}if(this.indent>e.indent){const t=this.startBlockValue(e);if(t){this.stack.push(t);return}}yield*this.pop();yield*this.step()}*flowCollection(e){const t=e.items[e.items.length-1];if(this.type==="flow-error-end"){let e;do{yield*this.pop();e=this.peek(1)}while(e&&e.type==="flow-collection")}else if(e.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":if(!t||t.sep)e.items.push({start:[this.sourceToken]});else t.start.push(this.sourceToken);return;case"map-value-ind":if(!t||t.value)e.items.push({start:[],key:null,sep:[this.sourceToken]});else if(t.sep)t.sep.push(this.sourceToken);else Object.assign(t,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":if(!t||t.value)e.items.push({start:[this.sourceToken]});else if(t.sep)t.sep.push(this.sourceToken);else t.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{const r=this.flowScalar(this.type);if(!t||t.value)e.items.push({start:[],key:r,sep:[]});else if(t.sep)this.stack.push(r);else Object.assign(t,{key:r,sep:[]});return}case"flow-map-end":case"flow-seq-end":e.end.push(this.sourceToken);return}const r=this.startBlockValue(e);if(r)this.stack.push(r);else{yield*this.pop();yield*this.step()}}else{const t=this.peek(2);if(t.type==="block-map"&&(this.type==="map-value-ind"&&t.indent===e.indent||this.type==="newline"&&!t.items[t.items.length-1].sep)){yield*this.pop();yield*this.step()}else if(this.type==="map-value-ind"&&t.type!=="flow-collection"){const r=getPrevProps(t);const a=getFirstKeyStartProps(r);fixFlowSeqItems(e);const i=e.end.splice(1,e.end.length);i.push(this.sourceToken);const n={type:"block-map",offset:e.offset,indent:e.indent,items:[{start:a,key:e,sep:i}]};this.onKeyLine=true;this.stack[this.stack.length-1]=n}else{yield*this.lineEnd(e)}}}flowScalar(e){if(this.onNewLine){let e=this.source.indexOf("\n")+1;while(e!==0){this.onNewLine(this.offset+e);e=this.source.indexOf("\n",e)+1}}return{type:e,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(e){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=true;const t=getPrevProps(e);const r=getFirstKeyStartProps(t);r.push(this.sourceToken);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r}]}}case"map-value-ind":{this.onKeyLine=true;const t=getPrevProps(e);const r=getFirstKeyStartProps(t);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(e,t){if(this.type!=="comment")return false;if(this.indent<=t)return false;return e.every((e=>e.type==="newline"||e.type==="space"))}*documentEnd(e){if(this.type!=="doc-mode"){if(e.end)e.end.push(this.sourceToken);else e.end=[this.sourceToken];if(this.type==="newline")yield*this.pop()}}*lineEnd(e){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop();yield*this.step();break;case"newline":this.onKeyLine=false;case"space":case"comment":default:if(e.end)e.end.push(this.sourceToken);else e.end=[this.sourceToken];if(this.type==="newline")yield*this.pop()}}}t.Parser=Parser},8649:(e,t,r)=>{"use strict";var a=r(9493);var i=r(42);var n=r(4236);var s=r(6909);var o=r(1929);var p=r(3328);function parseOptions(e){const t=e.prettyErrors!==false;const r=e.lineCounter||t&&new o.LineCounter||null;return{lineCounter:r,prettyErrors:t}}function parseAllDocuments(e,t={}){const{lineCounter:r,prettyErrors:i}=parseOptions(t);const s=new p.Parser(r?.addNewLine);const o=new a.Composer(t);const c=Array.from(o.compose(s.parse(e)));if(i&&r)for(const t of c){t.errors.forEach(n.prettifyError(e,r));t.warnings.forEach(n.prettifyError(e,r))}if(c.length>0)return c;return Object.assign([],{empty:true},o.streamInfo())}function parseDocument(e,t={}){const{lineCounter:r,prettyErrors:i}=parseOptions(t);const s=new p.Parser(r?.addNewLine);const o=new a.Composer(t);let c=null;for(const t of o.compose(s.parse(e),true,e.length)){if(!c)c=t;else if(c.options.logLevel!=="silent"){c.errors.push(new n.YAMLParseError(t.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}}if(i&&r){c.errors.forEach(n.prettifyError(e,r));c.warnings.forEach(n.prettifyError(e,r))}return c}function parse(e,t,r){let a=undefined;if(typeof t==="function"){a=t}else if(r===undefined&&t&&typeof t==="object"){r=t}const i=parseDocument(e,r);if(!i)return null;i.warnings.forEach((e=>s.warn(i.options.logLevel,e)));if(i.errors.length>0){if(i.options.logLevel!=="silent")throw i.errors[0];else i.errors=[]}return i.toJS(Object.assign({reviver:a},r))}function stringify(e,t,r){let a=null;if(typeof t==="function"||Array.isArray(t)){a=t}else if(r===undefined&&t){r=t}if(typeof r==="string")r=r.length;if(typeof r==="number"){const e=Math.round(r);r=e<1?undefined:e>8?{indent:8}:{indent:e}}if(e===undefined){const{keepUndefined:e}=r??t??{};if(!e)return undefined}return new i.Document(e,a,r).toString(r)}t.parse=parse;t.parseAllDocuments=parseAllDocuments;t.parseDocument=parseDocument;t.stringify=stringify},6831:(e,t,r)=>{"use strict";var a=r(1399);var i=r(83);var n=r(1693);var s=r(2201);var o=r(4138);const sortMapEntriesByKey=(e,t)=>e.keyt.key?1:0;class Schema{constructor({compat:e,customTags:t,merge:r,resolveKnownTags:p,schema:c,sortMapEntries:l,toStringDefaults:d}){this.compat=Array.isArray(e)?o.getTags(e,"compat"):e?o.getTags(null,e):null;this.merge=!!r;this.name=typeof c==="string"&&c||"core";this.knownTags=p?o.coreKnownTags:{};this.tags=o.getTags(t,this.name);this.toStringOptions=d??null;Object.defineProperty(this,a.MAP,{value:i.map});Object.defineProperty(this,a.SCALAR,{value:s.string});Object.defineProperty(this,a.SEQ,{value:n.seq});this.sortMapEntries=typeof l==="function"?l:l===true?sortMapEntriesByKey:null}clone(){const e=Object.create(Schema.prototype,Object.getOwnPropertyDescriptors(this));e.tags=this.tags.slice();return e}}t.Schema=Schema},83:(e,t,r)=>{"use strict";var a=r(1399);var i=r(246);var n=r(6011);function createMap(e,t,r){const{keepUndefined:a,replacer:s}=r;const o=new n.YAMLMap(e);const add=(e,n)=>{if(typeof s==="function")n=s.call(t,e,n);else if(Array.isArray(s)&&!s.includes(e))return;if(n!==undefined||a)o.items.push(i.createPair(e,n,r))};if(t instanceof Map){for(const[e,r]of t)add(e,r)}else if(t&&typeof t==="object"){for(const e of Object.keys(t))add(e,t[e])}if(typeof e.sortMapEntries==="function"){o.items.sort(e.sortMapEntries)}return o}const s={collection:"map",createNode:createMap,default:true,nodeClass:n.YAMLMap,tag:"tag:yaml.org,2002:map",resolve(e,t){if(!a.isMap(e))t("Expected a mapping for this tag");return e}};t.map=s},6703:(e,t,r)=>{"use strict";var a=r(9338);const i={identify:e=>e==null,createNode:()=>new a.Scalar(null),default:true,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new a.Scalar(null),stringify:({source:e},t)=>typeof e==="string"&&i.test.test(e)?e:t.options.nullStr};t.nullTag=i},1693:(e,t,r)=>{"use strict";var a=r(9652);var i=r(1399);var n=r(5161);function createSeq(e,t,r){const{replacer:i}=r;const s=new n.YAMLSeq(e);if(t&&Symbol.iterator in Object(t)){let e=0;for(let n of t){if(typeof i==="function"){const r=t instanceof Set?n:String(e++);n=i.call(t,r,n)}s.items.push(a.createNode(n,undefined,r))}}return s}const s={collection:"seq",createNode:createSeq,default:true,nodeClass:n.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve(e,t){if(!i.isSeq(e))t("Expected a sequence for this tag");return e}};t.seq=s},2201:(e,t,r)=>{"use strict";var a=r(6226);const i={identify:e=>typeof e==="string",default:true,tag:"tag:yaml.org,2002:str",resolve:e=>e,stringify(e,t,r,i){t=Object.assign({actualString:true},t);return a.stringifyString(e,t,r,i)}};t.string=i},2045:(e,t,r)=>{"use strict";var a=r(9338);const i={identify:e=>typeof e==="boolean",default:true,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:e=>new a.Scalar(e[0]==="t"||e[0]==="T"),stringify({source:e,value:t},r){if(e&&i.test.test(e)){const r=e[0]==="t"||e[0]==="T";if(t===r)return e}return t?r.options.trueStr:r.options.falseStr}};t.boolTag=i},6810:(e,t,r)=>{"use strict";var a=r(9338);var i=r(4174);const n={identify:e=>typeof e==="number",default:true,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF|nan|NaN|NAN))$/,resolve:e=>e.slice(-3).toLowerCase()==="nan"?NaN:e[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:i.stringifyNumber};const s={identify:e=>typeof e==="number",default:true,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e),stringify(e){const t=Number(e.value);return isFinite(t)?t.toExponential():i.stringifyNumber(e)}};const o={identify:e=>typeof e==="number",default:true,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(e){const t=new a.Scalar(parseFloat(e));const r=e.indexOf(".");if(r!==-1&&e[e.length-1]==="0")t.minFractionDigits=e.length-r-1;return t},stringify:i.stringifyNumber};t.float=o;t.floatExp=s;t.floatNaN=n},3019:(e,t,r)=>{"use strict";var a=r(4174);const intIdentify=e=>typeof e==="bigint"||Number.isInteger(e);const intResolve=(e,t,r,{intAsBigInt:a})=>a?BigInt(e):parseInt(e.substring(t),r);function intStringify(e,t,r){const{value:i}=e;if(intIdentify(i)&&i>=0)return r+i.toString(t);return a.stringifyNumber(e)}const i={identify:e=>intIdentify(e)&&e>=0,default:true,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(e,t,r)=>intResolve(e,2,8,r),stringify:e=>intStringify(e,8,"0o")};const n={identify:intIdentify,default:true,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(e,t,r)=>intResolve(e,0,10,r),stringify:a.stringifyNumber};const s={identify:e=>intIdentify(e)&&e>=0,default:true,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(e,t,r)=>intResolve(e,2,16,r),stringify:e=>intStringify(e,16,"0x")};t.int=n;t.intHex=s;t.intOct=i},27:(e,t,r)=>{"use strict";var a=r(83);var i=r(6703);var n=r(1693);var s=r(2201);var o=r(2045);var p=r(6810);var c=r(3019);const l=[a.map,n.seq,s.string,i.nullTag,o.boolTag,c.intOct,c.int,c.intHex,p.floatNaN,p.floatExp,p.float];t.schema=l},4545:(e,t,r)=>{"use strict";var a=r(9338);var i=r(83);var n=r(1693);function intIdentify(e){return typeof e==="bigint"||Number.isInteger(e)}const stringifyJSON=({value:e})=>JSON.stringify(e);const s=[{identify:e=>typeof e==="string",default:true,tag:"tag:yaml.org,2002:str",resolve:e=>e,stringify:stringifyJSON},{identify:e=>e==null,createNode:()=>new a.Scalar(null),default:true,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:stringifyJSON},{identify:e=>typeof e==="boolean",default:true,tag:"tag:yaml.org,2002:bool",test:/^true|false$/,resolve:e=>e==="true",stringify:stringifyJSON},{identify:intIdentify,default:true,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(e,t,{intAsBigInt:r})=>r?BigInt(e):parseInt(e,10),stringify:({value:e})=>intIdentify(e)?e.toString():JSON.stringify(e)},{identify:e=>typeof e==="number",default:true,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:e=>parseFloat(e),stringify:stringifyJSON}];const o={default:true,tag:"",test:/^/,resolve(e,t){t(`Unresolved plain scalar ${JSON.stringify(e)}`);return e}};const p=[i.map,n.seq].concat(s,o);t.schema=p},4138:(e,t,r)=>{"use strict";var a=r(83);var i=r(6703);var n=r(1693);var s=r(2201);var o=r(2045);var p=r(6810);var c=r(3019);var l=r(27);var d=r(4545);var u=r(5724);var m=r(8974);var h=r(9841);var g=r(5389);var v=r(7847);var y=r(1156);const b=new Map([["core",l.schema],["failsafe",[a.map,n.seq,s.string]],["json",d.schema],["yaml11",g.schema],["yaml-1.1",g.schema]]);const w={binary:u.binary,bool:o.boolTag,float:p.float,floatExp:p.floatExp,floatNaN:p.floatNaN,floatTime:y.floatTime,int:c.int,intHex:c.intHex,intOct:c.intOct,intTime:y.intTime,map:a.map,null:i.nullTag,omap:m.omap,pairs:h.pairs,seq:n.seq,set:v.set,timestamp:y.timestamp};const x={"tag:yaml.org,2002:binary":u.binary,"tag:yaml.org,2002:omap":m.omap,"tag:yaml.org,2002:pairs":h.pairs,"tag:yaml.org,2002:set":v.set,"tag:yaml.org,2002:timestamp":y.timestamp};function getTags(e,t){let r=b.get(t);if(!r){if(Array.isArray(e))r=[];else{const e=Array.from(b.keys()).filter((e=>e!=="yaml11")).map((e=>JSON.stringify(e))).join(", ");throw new Error(`Unknown schema "${t}"; use one of ${e} or define customTags array`)}}if(Array.isArray(e)){for(const t of e)r=r.concat(t)}else if(typeof e==="function"){r=e(r.slice())}return r.map((e=>{if(typeof e!=="string")return e;const t=w[e];if(t)return t;const r=Object.keys(w).map((e=>JSON.stringify(e))).join(", ");throw new Error(`Unknown custom tag "${e}"; use one of ${r}`)}))}t.coreKnownTags=x;t.getTags=getTags},5724:(e,t,r)=>{"use strict";var a=r(9338);var i=r(6226);const n={identify:e=>e instanceof Uint8Array,default:false,tag:"tag:yaml.org,2002:binary",resolve(e,t){if(typeof Buffer==="function"){return Buffer.from(e,"base64")}else if(typeof atob==="function"){const t=atob(e.replace(/[\n\r]/g,""));const r=new Uint8Array(t.length);for(let e=0;e{"use strict";var a=r(9338);function boolStringify({value:e,source:t},r){const a=e?i:n;if(t&&a.test.test(t))return t;return e?r.options.trueStr:r.options.falseStr}const i={identify:e=>e===true,default:true,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new a.Scalar(true),stringify:boolStringify};const n={identify:e=>e===false,default:true,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/i,resolve:()=>new a.Scalar(false),stringify:boolStringify};t.falseTag=n;t.trueTag=i},8035:(e,t,r)=>{"use strict";var a=r(9338);var i=r(4174);const n={identify:e=>typeof e==="number",default:true,tag:"tag:yaml.org,2002:float",test:/^[-+]?\.(?:inf|Inf|INF|nan|NaN|NAN)$/,resolve:e=>e.slice(-3).toLowerCase()==="nan"?NaN:e[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:i.stringifyNumber};const s={identify:e=>typeof e==="number",default:true,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e.replace(/_/g,"")),stringify(e){const t=Number(e.value);return isFinite(t)?t.toExponential():i.stringifyNumber(e)}};const o={identify:e=>typeof e==="number",default:true,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(e){const t=new a.Scalar(parseFloat(e.replace(/_/g,"")));const r=e.indexOf(".");if(r!==-1){const a=e.substring(r+1).replace(/_/g,"");if(a[a.length-1]==="0")t.minFractionDigits=a.length}return t},stringify:i.stringifyNumber};t.float=o;t.floatExp=s;t.floatNaN=n},9503:(e,t,r)=>{"use strict";var a=r(4174);const intIdentify=e=>typeof e==="bigint"||Number.isInteger(e);function intResolve(e,t,r,{intAsBigInt:a}){const i=e[0];if(i==="-"||i==="+")t+=1;e=e.substring(t).replace(/_/g,"");if(a){switch(r){case 2:e=`0b${e}`;break;case 8:e=`0o${e}`;break;case 16:e=`0x${e}`;break}const t=BigInt(e);return i==="-"?BigInt(-1)*t:t}const n=parseInt(e,r);return i==="-"?-1*n:n}function intStringify(e,t,r){const{value:i}=e;if(intIdentify(i)){const e=i.toString(t);return i<0?"-"+r+e.substr(1):r+e}return a.stringifyNumber(e)}const i={identify:intIdentify,default:true,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(e,t,r)=>intResolve(e,2,2,r),stringify:e=>intStringify(e,2,"0b")};const n={identify:intIdentify,default:true,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(e,t,r)=>intResolve(e,1,8,r),stringify:e=>intStringify(e,8,"0")};const s={identify:intIdentify,default:true,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(e,t,r)=>intResolve(e,0,10,r),stringify:a.stringifyNumber};const o={identify:intIdentify,default:true,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(e,t,r)=>intResolve(e,2,16,r),stringify:e=>intStringify(e,16,"0x")};t.int=s;t.intBin=i;t.intHex=o;t.intOct=n},8974:(e,t,r)=>{"use strict";var a=r(5161);var i=r(2463);var n=r(1399);var s=r(6011);var o=r(9841);class YAMLOMap extends a.YAMLSeq{constructor(){super();this.add=s.YAMLMap.prototype.add.bind(this);this.delete=s.YAMLMap.prototype.delete.bind(this);this.get=s.YAMLMap.prototype.get.bind(this);this.has=s.YAMLMap.prototype.has.bind(this);this.set=s.YAMLMap.prototype.set.bind(this);this.tag=YAMLOMap.tag}toJSON(e,t){if(!t)return super.toJSON(e);const r=new Map;if(t?.onCreate)t.onCreate(r);for(const e of this.items){let a,s;if(n.isPair(e)){a=i.toJS(e.key,"",t);s=i.toJS(e.value,a,t)}else{a=i.toJS(e,"",t)}if(r.has(a))throw new Error("Ordered maps must not include duplicate keys");r.set(a,s)}return r}}YAMLOMap.tag="tag:yaml.org,2002:omap";const p={collection:"seq",identify:e=>e instanceof Map,nodeClass:YAMLOMap,default:false,tag:"tag:yaml.org,2002:omap",resolve(e,t){const r=o.resolvePairs(e,t);const a=[];for(const{key:e}of r.items){if(n.isScalar(e)){if(a.includes(e.value)){t(`Ordered maps must not include duplicate keys: ${e.value}`)}else{a.push(e.value)}}}return Object.assign(new YAMLOMap,r)},createNode(e,t,r){const a=o.createPairs(e,t,r);const i=new YAMLOMap;i.items=a.items;return i}};t.YAMLOMap=YAMLOMap;t.omap=p},9841:(e,t,r)=>{"use strict";var a=r(1399);var i=r(246);var n=r(9338);var s=r(5161);function resolvePairs(e,t){if(a.isSeq(e)){for(let r=0;r1)t("Each pair must have its own sequence indicator");const e=s.items[0]||new i.Pair(new n.Scalar(null));if(s.commentBefore)e.key.commentBefore=e.key.commentBefore?`${s.commentBefore}\n${e.key.commentBefore}`:s.commentBefore;if(s.comment){const t=e.value??e.key;t.comment=t.comment?`${s.comment}\n${t.comment}`:s.comment}s=e}e.items[r]=a.isPair(s)?s:new i.Pair(s)}}else t("Expected a sequence for this tag");return e}function createPairs(e,t,r){const{replacer:a}=r;const n=new s.YAMLSeq(e);n.tag="tag:yaml.org,2002:pairs";let o=0;if(t&&Symbol.iterator in Object(t))for(let e of t){if(typeof a==="function")e=a.call(t,String(o++),e);let s,p;if(Array.isArray(e)){if(e.length===2){s=e[0];p=e[1]}else throw new TypeError(`Expected [key, value] tuple: ${e}`)}else if(e&&e instanceof Object){const t=Object.keys(e);if(t.length===1){s=t[0];p=e[s]}else throw new TypeError(`Expected { key: value } tuple: ${e}`)}else{s=e}n.items.push(i.createPair(s,p,r))}return n}const o={collection:"seq",default:false,tag:"tag:yaml.org,2002:pairs",resolve:resolvePairs,createNode:createPairs};t.createPairs=createPairs;t.pairs=o;t.resolvePairs=resolvePairs},5389:(e,t,r)=>{"use strict";var a=r(83);var i=r(6703);var n=r(1693);var s=r(2201);var o=r(5724);var p=r(2631);var c=r(8035);var l=r(9503);var d=r(8974);var u=r(9841);var m=r(7847);var h=r(1156);const g=[a.map,n.seq,s.string,i.nullTag,p.trueTag,p.falseTag,l.intBin,l.intOct,l.int,l.intHex,c.floatNaN,c.floatExp,c.float,o.binary,d.omap,u.pairs,m.set,h.intTime,h.floatTime,h.timestamp];t.schema=g},7847:(e,t,r)=>{"use strict";var a=r(1399);var i=r(246);var n=r(6011);class YAMLSet extends n.YAMLMap{constructor(e){super(e);this.tag=YAMLSet.tag}add(e){let t;if(a.isPair(e))t=e;else if(e&&typeof e==="object"&&"key"in e&&"value"in e&&e.value===null)t=new i.Pair(e.key,null);else t=new i.Pair(e,null);const r=n.findPair(this.items,t.key);if(!r)this.items.push(t)}get(e,t){const r=n.findPair(this.items,e);return!t&&a.isPair(r)?a.isScalar(r.key)?r.key.value:r.key:r}set(e,t){if(typeof t!=="boolean")throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof t}`);const r=n.findPair(this.items,e);if(r&&!t){this.items.splice(this.items.indexOf(r),1)}else if(!r&&t){this.items.push(new i.Pair(e))}}toJSON(e,t){return super.toJSON(e,t,Set)}toString(e,t,r){if(!e)return JSON.stringify(this);if(this.hasAllNullValues(true))return super.toString(Object.assign({},e,{allNullValues:true}),t,r);else throw new Error("Set items must all have null values")}}YAMLSet.tag="tag:yaml.org,2002:set";const s={collection:"map",identify:e=>e instanceof Set,nodeClass:YAMLSet,default:false,tag:"tag:yaml.org,2002:set",resolve(e,t){if(a.isMap(e)){if(e.hasAllNullValues(true))return Object.assign(new YAMLSet,e);else t("Set items must all have null values")}else t("Expected a mapping for this tag");return e},createNode(e,t,r){const{replacer:a}=r;const n=new YAMLSet(e);if(t&&Symbol.iterator in Object(t))for(let e of t){if(typeof a==="function")e=a.call(t,e,e);n.items.push(i.createPair(e,null,r))}return n}};t.YAMLSet=YAMLSet;t.set=s},1156:(e,t,r)=>{"use strict";var a=r(4174);function parseSexagesimal(e,t){const r=e[0];const a=r==="-"||r==="+"?e.substring(1):e;const num=e=>t?BigInt(e):Number(e);const i=a.replace(/_/g,"").split(":").reduce(((e,t)=>e*num(60)+num(t)),num(0));return r==="-"?num(-1)*i:i}function stringifySexagesimal(e){let{value:t}=e;let num=e=>e;if(typeof t==="bigint")num=e=>BigInt(e);else if(isNaN(t)||!isFinite(t))return a.stringifyNumber(e);let r="";if(t<0){r="-";t*=num(-1)}const i=num(60);const n=[t%i];if(t<60){n.unshift(0)}else{t=(t-n[0])/i;n.unshift(t%i);if(t>=60){t=(t-n[0])/i;n.unshift(t)}}return r+n.map((e=>e<10?"0"+String(e):String(e))).join(":").replace(/000000\d*$/,"")}const i={identify:e=>typeof e==="bigint"||Number.isInteger(e),default:true,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(e,t,{intAsBigInt:r})=>parseSexagesimal(e,r),stringify:stringifySexagesimal};const n={identify:e=>typeof e==="number",default:true,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:e=>parseSexagesimal(e,false),stringify:stringifySexagesimal};const s={identify:e=>e instanceof Date,default:true,tag:"tag:yaml.org,2002:timestamp",test:RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})"+"(?:"+"(?:t|T|[ \\t]+)"+"([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)"+"(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?"+")?$"),resolve(e){const t=e.match(s.test);if(!t)throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");const[,r,a,i,n,o,p]=t.map(Number);const c=t[7]?Number((t[7]+"00").substr(1,3)):0;let l=Date.UTC(r,a-1,i,n||0,o||0,p||0,c);const d=t[8];if(d&&d!=="Z"){let e=parseSexagesimal(d,false);if(Math.abs(e)<30)e*=60;l-=6e4*e}return new Date(l)},stringify:({value:e})=>e.toISOString().replace(/((T00:00)?:00)?\.000Z$/,"")};t.floatTime=n;t.intTime=i;t.timestamp=s},2889:(e,t)=>{"use strict";const r="flow";const a="block";const i="quoted";function foldFlowLines(e,t,r="flow",{indentAtStart:n,lineWidth:s=80,minContentWidth:o=20,onFold:p,onOverflow:c}={}){if(!s||s<0)return e;const l=Math.max(1+o,1+s-t.length);if(e.length<=l)return e;const d=[];const u={};let m=s-t.length;if(typeof n==="number"){if(n>s-Math.max(2,o))d.push(0);else m=s-n}let h=undefined;let g=undefined;let v=false;let y=-1;let b=-1;let w=-1;if(r===a){y=consumeMoreIndentedLines(e,y);if(y!==-1)m=y+l}for(let t;t=e[y+=1];){if(r===i&&t==="\\"){b=y;switch(e[y+1]){case"x":y+=3;break;case"u":y+=5;break;case"U":y+=9;break;default:y+=1}w=y}if(t==="\n"){if(r===a)y=consumeMoreIndentedLines(e,y);m=y+l;h=undefined}else{if(t===" "&&g&&g!==" "&&g!=="\n"&&g!=="\t"){const t=e[y+1];if(t&&t!==" "&&t!=="\n"&&t!=="\t")h=y}if(y>=m){if(h){d.push(h);m=h+l;h=undefined}else if(r===i){while(g===" "||g==="\t"){g=t;t=e[y+=1];v=true}const r=y>w+1?y-2:b-1;if(u[r])return e;d.push(r);u[r]=true;m=r+l;h=undefined}else{v=true}}}g=t}if(v&&c)c();if(d.length===0)return e;if(p)p();let x=e.slice(0,d[0]);for(let a=0;a{"use strict";var a=r(8459);var i=r(1399);var n=r(5182);var s=r(6226);function createStringifyContext(e,t){const r=Object.assign({blockQuote:true,commentString:n.stringifyComment,defaultKeyType:null,defaultStringType:"PLAIN",directives:null,doubleQuotedAsJSON:false,doubleQuotedMinMultiLineLength:40,falseStr:"false",indentSeq:true,lineWidth:80,minContentWidth:20,nullStr:"null",simpleKeys:false,singleQuote:null,trueStr:"true",verifyAliasOrder:true},e.schema.toStringOptions,t);let a;switch(r.collectionStyle){case"block":a=false;break;case"flow":a=true;break;default:a=null}return{anchors:new Set,doc:e,indent:"",indentStep:typeof r.indent==="number"?" ".repeat(r.indent):" ",inFlow:a,options:r}}function getTagObject(e,t){if(t.tag){const r=e.filter((e=>e.tag===t.tag));if(r.length>0)return r.find((e=>e.format===t.format))??r[0]}let r=undefined;let a;if(i.isScalar(t)){a=t.value;const i=e.filter((e=>e.identify?.(a)));r=i.find((e=>e.format===t.format))??i.find((e=>!e.format))}else{a=t;r=e.find((e=>e.nodeClass&&a instanceof e.nodeClass))}if(!r){const e=a?.constructor?.name??typeof a;throw new Error(`Tag not resolved for ${e} value`)}return r}function stringifyProps(e,t,{anchors:r,doc:n}){if(!n.directives)return"";const s=[];const o=(i.isScalar(e)||i.isCollection(e))&&e.anchor;if(o&&a.anchorIsValid(o)){r.add(o);s.push(`&${o}`)}const p=e.tag?e.tag:t.default?null:t.tag;if(p)s.push(n.directives.tagString(p));return s.join(" ")}function stringify(e,t,r,a){if(i.isPair(e))return e.toString(t,r,a);if(i.isAlias(e)){if(t.doc.directives)return e.toString(t);if(t.resolvedAliases?.has(e)){throw new TypeError(`Cannot stringify circular structure without alias nodes`)}else{if(t.resolvedAliases)t.resolvedAliases.add(e);else t.resolvedAliases=new Set([e]);e=e.resolve(t.doc)}}let n=undefined;const o=i.isNode(e)?e:t.doc.createNode(e,{onTagObj:e=>n=e});if(!n)n=getTagObject(t.doc.schema.tags,o);const p=stringifyProps(o,n,t);if(p.length>0)t.indentAtStart=(t.indentAtStart??0)+p.length+1;const c=typeof n.stringify==="function"?n.stringify(o,t,r,a):i.isScalar(o)?s.stringifyString(o,t,r,a):o.toString(t,r,a);if(!p)return c;return i.isScalar(o)||c[0]==="{"||c[0]==="["?`${p} ${c}`:`${p}\n${t.indent}${c}`}t.createStringifyContext=createStringifyContext;t.stringify=stringify},2466:(e,t,r)=>{"use strict";var a=r(3466);var i=r(1399);var n=r(8409);var s=r(5182);function stringifyCollection(e,t,r){const a=t.inFlow??e.flow;const i=a?stringifyFlowCollection:stringifyBlockCollection;return i(e,t,r)}function stringifyBlockCollection({comment:e,items:t},r,{blockItemPrefix:a,flowChars:o,itemIndent:p,onChompKeep:c,onComment:l}){const{indent:d,options:{commentString:u}}=r;const m=Object.assign({},r,{indent:p,type:null});let h=false;const g=[];for(let e=0;ec=null),(()=>h=true));if(c)l+=s.lineComment(l,p,u(c));if(h&&c)h=false;g.push(a+l)}let v;if(g.length===0){v=o.start+o.end}else{v=g[0];for(let e=1;eo=null));if(eg||c.includes("\n")))h=true;v.push(c);g=v.length}let y;const{start:b,end:w}=o;if(v.length===0){y=b+w}else{if(!h){const e=v.reduce(((e,t)=>e+t.length+2),2);h=e>a.Collection.maxFlowStringSingleLineLength}if(h){y=b;for(const e of v)y+=e?`\n${d}${l}${e}`:"\n";y+=`\n${l}${w}`}else{y=`${b} ${v.join(" ")} ${w}`}}if(e){y+=s.lineComment(y,u(e),l);if(c)c()}return y}function addCommentBefore({indent:e,options:{commentString:t}},r,a,i){if(a&&i)a=a.replace(/^\n+/,"");if(a){const i=s.indentComment(t(a),e);r.push(i.trimStart())}}t.stringifyCollection=stringifyCollection},5182:(e,t)=>{"use strict";const stringifyComment=e=>e.replace(/^(?!$)(?: $)?/gm,"#");function indentComment(e,t){if(/^\n+$/.test(e))return e.substring(1);return t?e.replace(/^(?! *$)/gm,t):e}const lineComment=(e,t,r)=>e.endsWith("\n")?indentComment(r,t):r.includes("\n")?"\n"+indentComment(r,t):(e.endsWith(" ")?"":" ")+r;t.indentComment=indentComment;t.lineComment=lineComment;t.stringifyComment=stringifyComment},5225:(e,t,r)=>{"use strict";var a=r(1399);var i=r(8409);var n=r(5182);function stringifyDocument(e,t){const r=[];let s=t.directives===true;if(t.directives!==false&&e.directives){const t=e.directives.toString(e);if(t){r.push(t);s=true}else if(e.directives.docStart)s=true}if(s)r.push("---");const o=i.createStringifyContext(e,t);const{commentString:p}=o.options;if(e.commentBefore){if(r.length!==1)r.unshift("");const t=p(e.commentBefore);r.unshift(n.indentComment(t,""))}let c=false;let l=null;if(e.contents){if(a.isNode(e.contents)){if(e.contents.spaceBefore&&s)r.push("");if(e.contents.commentBefore){const t=p(e.contents.commentBefore);r.push(n.indentComment(t,""))}o.forceBlockIndent=!!e.comment;l=e.contents.comment}const t=l?undefined:()=>c=true;let d=i.stringify(e.contents,o,(()=>l=null),t);if(l)d+=n.lineComment(d,"",p(l));if((d[0]==="|"||d[0]===">")&&r[r.length-1]==="---"){r[r.length-1]=`--- ${d}`}else r.push(d)}else{r.push(i.stringify(e.contents,o))}if(e.directives?.docEnd){if(e.comment){const t=p(e.comment);if(t.includes("\n")){r.push("...");r.push(n.indentComment(t,""))}else{r.push(`... ${t}`)}}else{r.push("...")}}else{let t=e.comment;if(t&&c)t=t.replace(/^\n+/,"");if(t){if((!c||l)&&r[r.length-1]!=="")r.push("");r.push(n.indentComment(p(t),""))}}return r.join("\n")+"\n"}t.stringifyDocument=stringifyDocument},4174:(e,t)=>{"use strict";function stringifyNumber({format:e,minFractionDigits:t,tag:r,value:a}){if(typeof a==="bigint")return String(a);const i=typeof a==="number"?a:Number(a);if(!isFinite(i))return isNaN(i)?".nan":i<0?"-.inf":".inf";let n=JSON.stringify(a);if(!e&&t&&(!r||r==="tag:yaml.org,2002:float")&&/^\d/.test(n)){let e=n.indexOf(".");if(e<0){e=n.length;n+="."}let r=t-(n.length-e-1);while(r-- >0)n+="0"}return n}t.stringifyNumber=stringifyNumber},4875:(e,t,r)=>{"use strict";var a=r(1399);var i=r(9338);var n=r(8409);var s=r(5182);function stringifyPair({key:e,value:t},r,o,p){const{allNullValues:c,doc:l,indent:d,indentStep:u,options:{commentString:m,indentSeq:h,simpleKeys:g}}=r;let v=a.isNode(e)&&e.comment||null;if(g){if(v){throw new Error("With simple keys, key nodes cannot have comments")}if(a.isCollection(e)){const e="With simple keys, collection cannot be used as a key value";throw new Error(e)}}let y=!g&&(!e||v&&t==null&&!r.inFlow||a.isCollection(e)||(a.isScalar(e)?e.type===i.Scalar.BLOCK_FOLDED||e.type===i.Scalar.BLOCK_LITERAL:typeof e==="object"));r=Object.assign({},r,{allNullValues:false,implicitKey:!y&&(g||!c),indent:d+u});let b=false;let w=false;let x=n.stringify(e,r,(()=>b=true),(()=>w=true));if(!y&&!r.inFlow&&x.length>1024){if(g)throw new Error("With simple keys, single line scalar must not span more than 1024 characters");y=true}if(r.inFlow){if(c||t==null){if(b&&o)o();return x===""?"?":y?`? ${x}`:x}}else if(c&&!g||t==null&&y){x=`? ${x}`;if(v&&!b){x+=s.lineComment(x,r.indent,m(v))}else if(w&&p)p();return x}if(b)v=null;if(y){if(v)x+=s.lineComment(x,r.indent,m(v));x=`? ${x}\n${d}:`}else{x=`${x}:`;if(v)x+=s.lineComment(x,r.indent,m(v))}let E="";let S=null;if(a.isNode(t)){if(t.spaceBefore)E="\n";if(t.commentBefore){const e=m(t.commentBefore);E+=`\n${s.indentComment(e,r.indent)}`}S=t.comment}else if(t&&typeof t==="object"){t=l.createNode(t)}r.implicitKey=false;if(!y&&!v&&a.isScalar(t))r.indentAtStart=x.length+1;w=false;if(!h&&u.length>=2&&!r.inFlow&&!y&&a.isSeq(t)&&!t.flow&&!t.tag&&!t.anchor){r.indent=r.indent.substr(2)}let T=false;const k=n.stringify(t,r,(()=>T=true),(()=>w=true));let C=" ";if(E||v){if(k===""&&!r.inFlow)C=E==="\n"?"\n\n":E;else C=`${E}\n${r.indent}`}else if(!y&&a.isCollection(t)){const e=k[0]==="["||k[0]==="{";if(!e||k.includes("\n"))C=`\n${r.indent}`}else if(k===""||k[0]==="\n")C="";x+=C+k;if(r.inFlow){if(T&&o)o()}else if(S&&!T){x+=s.lineComment(x,r.indent,m(S))}else if(w&&p){p()}return x}t.stringifyPair=stringifyPair},6226:(e,t,r)=>{"use strict";var a=r(9338);var i=r(2889);const getFoldOptions=e=>({indentAtStart:e.indentAtStart,lineWidth:e.options.lineWidth,minContentWidth:e.options.minContentWidth});const containsDocumentMarker=e=>/^(%|---|\.\.\.)/m.test(e);function lineLengthOverLimit(e,t,r){if(!t||t<0)return false;const a=t-r;const i=e.length;if(i<=a)return false;for(let t=0,r=0;ta)return true;r=t+1;if(i-r<=a)return false}}return true}function doubleQuotedString(e,t){const r=JSON.stringify(e);if(t.options.doubleQuotedAsJSON)return r;const{implicitKey:a}=t;const n=t.options.doubleQuotedMinMultiLineLength;const s=t.indent||(containsDocumentMarker(e)?" ":"");let o="";let p=0;for(let e=0,t=r[e];t;t=r[++e]){if(t===" "&&r[e+1]==="\\"&&r[e+2]==="n"){o+=r.slice(p,e)+"\\ ";e+=1;p=e;t="\\"}if(t==="\\")switch(r[e+1]){case"u":{o+=r.slice(p,e);const t=r.substr(e+2,4);switch(t){case"0000":o+="\\0";break;case"0007":o+="\\a";break;case"000b":o+="\\v";break;case"001b":o+="\\e";break;case"0085":o+="\\N";break;case"00a0":o+="\\_";break;case"2028":o+="\\L";break;case"2029":o+="\\P";break;default:if(t.substr(0,2)==="00")o+="\\x"+t.substr(2);else o+=r.substr(e,6)}e+=5;p=e+1}break;case"n":if(a||r[e+2]==='"'||r.length\n";let m;let h;for(h=r.length;h>0;--h){const e=r[h-1];if(e!=="\n"&&e!=="\t"&&e!==" ")break}let g=r.substring(h);const v=g.indexOf("\n");if(v===-1){m="-"}else if(r===g||v!==g.length-1){m="+";if(o)o()}else{m=""}if(g){r=r.slice(0,-g.length);if(g[g.length-1]==="\n")g=g.slice(0,-1);g=g.replace(/\n+(?!\n|$)/g,`$&${d}`)}let y=false;let b;let w=-1;for(b=0;b")+(y?E:"")+m;if(e){S+=" "+c(e.replace(/ ?[\r\n]+/g," "));if(s)s()}if(u){r=r.replace(/\n+/g,`$&${d}`);return`${S}\n${d}${x}${r}${g}`}r=r.replace(/\n+/g,"\n$&").replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${d}`);const T=i.foldFlowLines(`${x}${r}${g}`,d,i.FOLD_BLOCK,getFoldOptions(n));return`${S}\n${d}${T}`}function plainString(e,t,r,n){const{type:s,value:o}=e;const{actualString:p,implicitKey:c,indent:l,inFlow:d}=t;if(c&&/[\n[\]{},]/.test(o)||d&&/[[\]{},]/.test(o)){return quotedString(o,t)}if(!o||/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(o)){return c||d||!o.includes("\n")?quotedString(o,t):blockString(e,t,r,n)}if(!c&&!d&&s!==a.Scalar.PLAIN&&o.includes("\n")){return blockString(e,t,r,n)}if(l===""&&containsDocumentMarker(o)){t.forceBlockIndent=true;return blockString(e,t,r,n)}const u=o.replace(/\n+/g,`$&\n${l}`);if(p){const test=e=>e.default&&e.tag!=="tag:yaml.org,2002:str"&&e.test?.test(u);const{compat:e,tags:r}=t.doc.schema;if(r.some(test)||e?.some(test))return quotedString(o,t)}return c?u:i.foldFlowLines(u,l,i.FOLD_FLOW,getFoldOptions(t))}function stringifyString(e,t,r,i){const{implicitKey:n,inFlow:s}=t;const o=typeof e.value==="string"?e:Object.assign({},e,{value:String(e.value)});let{type:p}=e;if(p!==a.Scalar.QUOTE_DOUBLE){if(/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(o.value))p=a.Scalar.QUOTE_DOUBLE}const _stringify=e=>{switch(e){case a.Scalar.BLOCK_FOLDED:case a.Scalar.BLOCK_LITERAL:return n||s?quotedString(o.value,t):blockString(o,t,r,i);case a.Scalar.QUOTE_DOUBLE:return doubleQuotedString(o.value,t);case a.Scalar.QUOTE_SINGLE:return singleQuotedString(o.value,t);case a.Scalar.PLAIN:return plainString(o,t,r,i);default:return null}};let c=_stringify(p);if(c===null){const{defaultKeyType:e,defaultStringType:r}=t.options;const a=n&&e||r;c=_stringify(a);if(c===null)throw new Error(`Unsupported default string type ${a}`)}return c}t.stringifyString=stringifyString},6796:(e,t,r)=>{"use strict";var a=r(1399);const i=Symbol("break visit");const n=Symbol("skip children");const s=Symbol("remove node");function visit(e,t){const r=initVisitor(t);if(a.isDocument(e)){const t=visit_(null,e.contents,r,Object.freeze([e]));if(t===s)e.contents=null}else visit_(null,e,r,Object.freeze([]))}visit.BREAK=i;visit.SKIP=n;visit.REMOVE=s;function visit_(e,t,r,n){const o=callVisitor(e,t,r,n);if(a.isNode(o)||a.isPair(o)){replaceNode(e,n,o);return visit_(e,o,r,n)}if(typeof o!=="symbol"){if(a.isCollection(t)){n=Object.freeze(n.concat(t));for(let e=0;e{"use strict";e.exports=JSON.parse('{"$id":"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#","description":"Meta-schema for $data reference (JSON AnySchema extension proposal)","type":"object","required":["$data"],"properties":{"$data":{"type":"string","anyOf":[{"format":"relative-json-pointer"},{"format":"json-pointer"}]}},"additionalProperties":false}')},3712:e=>{"use strict";e.exports=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#","$id":"http://json-schema.org/draft-07/schema#","title":"Core schema meta-schema","definitions":{"schemaArray":{"type":"array","minItems":1,"items":{"$ref":"#"}},"nonNegativeInteger":{"type":"integer","minimum":0},"nonNegativeIntegerDefault0":{"allOf":[{"$ref":"#/definitions/nonNegativeInteger"},{"default":0}]},"simpleTypes":{"enum":["array","boolean","integer","null","number","object","string"]},"stringArray":{"type":"array","items":{"type":"string"},"uniqueItems":true,"default":[]}},"type":["object","boolean"],"properties":{"$id":{"type":"string","format":"uri-reference"},"$schema":{"type":"string","format":"uri"},"$ref":{"type":"string","format":"uri-reference"},"$comment":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"default":true,"readOnly":{"type":"boolean","default":false},"examples":{"type":"array","items":true},"multipleOf":{"type":"number","exclusiveMinimum":0},"maximum":{"type":"number"},"exclusiveMaximum":{"type":"number"},"minimum":{"type":"number"},"exclusiveMinimum":{"type":"number"},"maxLength":{"$ref":"#/definitions/nonNegativeInteger"},"minLength":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"pattern":{"type":"string","format":"regex"},"additionalItems":{"$ref":"#"},"items":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/schemaArray"}],"default":true},"maxItems":{"$ref":"#/definitions/nonNegativeInteger"},"minItems":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"uniqueItems":{"type":"boolean","default":false},"contains":{"$ref":"#"},"maxProperties":{"$ref":"#/definitions/nonNegativeInteger"},"minProperties":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"required":{"$ref":"#/definitions/stringArray"},"additionalProperties":{"$ref":"#"},"definitions":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"properties":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"patternProperties":{"type":"object","additionalProperties":{"$ref":"#"},"propertyNames":{"format":"regex"},"default":{}},"dependencies":{"type":"object","additionalProperties":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/stringArray"}]}},"propertyNames":{"$ref":"#"},"const":true,"enum":{"type":"array","items":true,"minItems":1,"uniqueItems":true},"type":{"anyOf":[{"$ref":"#/definitions/simpleTypes"},{"type":"array","items":{"$ref":"#/definitions/simpleTypes"},"minItems":1,"uniqueItems":true}]},"format":{"type":"string"},"contentMediaType":{"type":"string"},"contentEncoding":{"type":"string"},"if":{"$ref":"#"},"then":{"$ref":"#"},"else":{"$ref":"#"},"allOf":{"$ref":"#/definitions/schemaArray"},"anyOf":{"$ref":"#/definitions/schemaArray"},"oneOf":{"$ref":"#/definitions/schemaArray"},"not":{"$ref":"#"}},"default":true}')},3765:e=>{"use strict";e.exports=JSON.parse('{"application/1d-interleaved-parityfec":{"source":"iana"},"application/3gpdash-qoe-report+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/3gpp-ims+xml":{"source":"iana","compressible":true},"application/3gpphal+json":{"source":"iana","compressible":true},"application/3gpphalforms+json":{"source":"iana","compressible":true},"application/a2l":{"source":"iana"},"application/ace+cbor":{"source":"iana"},"application/activemessage":{"source":"iana"},"application/activity+json":{"source":"iana","compressible":true},"application/alto-costmap+json":{"source":"iana","compressible":true},"application/alto-costmapfilter+json":{"source":"iana","compressible":true},"application/alto-directory+json":{"source":"iana","compressible":true},"application/alto-endpointcost+json":{"source":"iana","compressible":true},"application/alto-endpointcostparams+json":{"source":"iana","compressible":true},"application/alto-endpointprop+json":{"source":"iana","compressible":true},"application/alto-endpointpropparams+json":{"source":"iana","compressible":true},"application/alto-error+json":{"source":"iana","compressible":true},"application/alto-networkmap+json":{"source":"iana","compressible":true},"application/alto-networkmapfilter+json":{"source":"iana","compressible":true},"application/alto-updatestreamcontrol+json":{"source":"iana","compressible":true},"application/alto-updatestreamparams+json":{"source":"iana","compressible":true},"application/aml":{"source":"iana"},"application/andrew-inset":{"source":"iana","extensions":["ez"]},"application/applefile":{"source":"iana"},"application/applixware":{"source":"apache","extensions":["aw"]},"application/at+jwt":{"source":"iana"},"application/atf":{"source":"iana"},"application/atfx":{"source":"iana"},"application/atom+xml":{"source":"iana","compressible":true,"extensions":["atom"]},"application/atomcat+xml":{"source":"iana","compressible":true,"extensions":["atomcat"]},"application/atomdeleted+xml":{"source":"iana","compressible":true,"extensions":["atomdeleted"]},"application/atomicmail":{"source":"iana"},"application/atomsvc+xml":{"source":"iana","compressible":true,"extensions":["atomsvc"]},"application/atsc-dwd+xml":{"source":"iana","compressible":true,"extensions":["dwd"]},"application/atsc-dynamic-event-message":{"source":"iana"},"application/atsc-held+xml":{"source":"iana","compressible":true,"extensions":["held"]},"application/atsc-rdt+json":{"source":"iana","compressible":true},"application/atsc-rsat+xml":{"source":"iana","compressible":true,"extensions":["rsat"]},"application/atxml":{"source":"iana"},"application/auth-policy+xml":{"source":"iana","compressible":true},"application/bacnet-xdd+zip":{"source":"iana","compressible":false},"application/batch-smtp":{"source":"iana"},"application/bdoc":{"compressible":false,"extensions":["bdoc"]},"application/beep+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/calendar+json":{"source":"iana","compressible":true},"application/calendar+xml":{"source":"iana","compressible":true,"extensions":["xcs"]},"application/call-completion":{"source":"iana"},"application/cals-1840":{"source":"iana"},"application/captive+json":{"source":"iana","compressible":true},"application/cbor":{"source":"iana"},"application/cbor-seq":{"source":"iana"},"application/cccex":{"source":"iana"},"application/ccmp+xml":{"source":"iana","compressible":true},"application/ccxml+xml":{"source":"iana","compressible":true,"extensions":["ccxml"]},"application/cdfx+xml":{"source":"iana","compressible":true,"extensions":["cdfx"]},"application/cdmi-capability":{"source":"iana","extensions":["cdmia"]},"application/cdmi-container":{"source":"iana","extensions":["cdmic"]},"application/cdmi-domain":{"source":"iana","extensions":["cdmid"]},"application/cdmi-object":{"source":"iana","extensions":["cdmio"]},"application/cdmi-queue":{"source":"iana","extensions":["cdmiq"]},"application/cdni":{"source":"iana"},"application/cea":{"source":"iana"},"application/cea-2018+xml":{"source":"iana","compressible":true},"application/cellml+xml":{"source":"iana","compressible":true},"application/cfw":{"source":"iana"},"application/city+json":{"source":"iana","compressible":true},"application/clr":{"source":"iana"},"application/clue+xml":{"source":"iana","compressible":true},"application/clue_info+xml":{"source":"iana","compressible":true},"application/cms":{"source":"iana"},"application/cnrp+xml":{"source":"iana","compressible":true},"application/coap-group+json":{"source":"iana","compressible":true},"application/coap-payload":{"source":"iana"},"application/commonground":{"source":"iana"},"application/conference-info+xml":{"source":"iana","compressible":true},"application/cose":{"source":"iana"},"application/cose-key":{"source":"iana"},"application/cose-key-set":{"source":"iana"},"application/cpl+xml":{"source":"iana","compressible":true,"extensions":["cpl"]},"application/csrattrs":{"source":"iana"},"application/csta+xml":{"source":"iana","compressible":true},"application/cstadata+xml":{"source":"iana","compressible":true},"application/csvm+json":{"source":"iana","compressible":true},"application/cu-seeme":{"source":"apache","extensions":["cu"]},"application/cwt":{"source":"iana"},"application/cybercash":{"source":"iana"},"application/dart":{"compressible":true},"application/dash+xml":{"source":"iana","compressible":true,"extensions":["mpd"]},"application/dash-patch+xml":{"source":"iana","compressible":true,"extensions":["mpp"]},"application/dashdelta":{"source":"iana"},"application/davmount+xml":{"source":"iana","compressible":true,"extensions":["davmount"]},"application/dca-rft":{"source":"iana"},"application/dcd":{"source":"iana"},"application/dec-dx":{"source":"iana"},"application/dialog-info+xml":{"source":"iana","compressible":true},"application/dicom":{"source":"iana"},"application/dicom+json":{"source":"iana","compressible":true},"application/dicom+xml":{"source":"iana","compressible":true},"application/dii":{"source":"iana"},"application/dit":{"source":"iana"},"application/dns":{"source":"iana"},"application/dns+json":{"source":"iana","compressible":true},"application/dns-message":{"source":"iana"},"application/docbook+xml":{"source":"apache","compressible":true,"extensions":["dbk"]},"application/dots+cbor":{"source":"iana"},"application/dskpp+xml":{"source":"iana","compressible":true},"application/dssc+der":{"source":"iana","extensions":["dssc"]},"application/dssc+xml":{"source":"iana","compressible":true,"extensions":["xdssc"]},"application/dvcs":{"source":"iana"},"application/ecmascript":{"source":"iana","compressible":true,"extensions":["es","ecma"]},"application/edi-consent":{"source":"iana"},"application/edi-x12":{"source":"iana","compressible":false},"application/edifact":{"source":"iana","compressible":false},"application/efi":{"source":"iana"},"application/elm+json":{"source":"iana","charset":"UTF-8","compressible":true},"application/elm+xml":{"source":"iana","compressible":true},"application/emergencycalldata.cap+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/emergencycalldata.comment+xml":{"source":"iana","compressible":true},"application/emergencycalldata.control+xml":{"source":"iana","compressible":true},"application/emergencycalldata.deviceinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.ecall.msd":{"source":"iana"},"application/emergencycalldata.providerinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.serviceinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.subscriberinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.veds+xml":{"source":"iana","compressible":true},"application/emma+xml":{"source":"iana","compressible":true,"extensions":["emma"]},"application/emotionml+xml":{"source":"iana","compressible":true,"extensions":["emotionml"]},"application/encaprtp":{"source":"iana"},"application/epp+xml":{"source":"iana","compressible":true},"application/epub+zip":{"source":"iana","compressible":false,"extensions":["epub"]},"application/eshop":{"source":"iana"},"application/exi":{"source":"iana","extensions":["exi"]},"application/expect-ct-report+json":{"source":"iana","compressible":true},"application/express":{"source":"iana","extensions":["exp"]},"application/fastinfoset":{"source":"iana"},"application/fastsoap":{"source":"iana"},"application/fdt+xml":{"source":"iana","compressible":true,"extensions":["fdt"]},"application/fhir+json":{"source":"iana","charset":"UTF-8","compressible":true},"application/fhir+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/fido.trusted-apps+json":{"compressible":true},"application/fits":{"source":"iana"},"application/flexfec":{"source":"iana"},"application/font-sfnt":{"source":"iana"},"application/font-tdpfr":{"source":"iana","extensions":["pfr"]},"application/font-woff":{"source":"iana","compressible":false},"application/framework-attributes+xml":{"source":"iana","compressible":true},"application/geo+json":{"source":"iana","compressible":true,"extensions":["geojson"]},"application/geo+json-seq":{"source":"iana"},"application/geopackage+sqlite3":{"source":"iana"},"application/geoxacml+xml":{"source":"iana","compressible":true},"application/gltf-buffer":{"source":"iana"},"application/gml+xml":{"source":"iana","compressible":true,"extensions":["gml"]},"application/gpx+xml":{"source":"apache","compressible":true,"extensions":["gpx"]},"application/gxf":{"source":"apache","extensions":["gxf"]},"application/gzip":{"source":"iana","compressible":false,"extensions":["gz"]},"application/h224":{"source":"iana"},"application/held+xml":{"source":"iana","compressible":true},"application/hjson":{"extensions":["hjson"]},"application/http":{"source":"iana"},"application/hyperstudio":{"source":"iana","extensions":["stk"]},"application/ibe-key-request+xml":{"source":"iana","compressible":true},"application/ibe-pkg-reply+xml":{"source":"iana","compressible":true},"application/ibe-pp-data":{"source":"iana"},"application/iges":{"source":"iana"},"application/im-iscomposing+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/index":{"source":"iana"},"application/index.cmd":{"source":"iana"},"application/index.obj":{"source":"iana"},"application/index.response":{"source":"iana"},"application/index.vnd":{"source":"iana"},"application/inkml+xml":{"source":"iana","compressible":true,"extensions":["ink","inkml"]},"application/iotp":{"source":"iana"},"application/ipfix":{"source":"iana","extensions":["ipfix"]},"application/ipp":{"source":"iana"},"application/isup":{"source":"iana"},"application/its+xml":{"source":"iana","compressible":true,"extensions":["its"]},"application/java-archive":{"source":"apache","compressible":false,"extensions":["jar","war","ear"]},"application/java-serialized-object":{"source":"apache","compressible":false,"extensions":["ser"]},"application/java-vm":{"source":"apache","compressible":false,"extensions":["class"]},"application/javascript":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["js","mjs"]},"application/jf2feed+json":{"source":"iana","compressible":true},"application/jose":{"source":"iana"},"application/jose+json":{"source":"iana","compressible":true},"application/jrd+json":{"source":"iana","compressible":true},"application/jscalendar+json":{"source":"iana","compressible":true},"application/json":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["json","map"]},"application/json-patch+json":{"source":"iana","compressible":true},"application/json-seq":{"source":"iana"},"application/json5":{"extensions":["json5"]},"application/jsonml+json":{"source":"apache","compressible":true,"extensions":["jsonml"]},"application/jwk+json":{"source":"iana","compressible":true},"application/jwk-set+json":{"source":"iana","compressible":true},"application/jwt":{"source":"iana"},"application/kpml-request+xml":{"source":"iana","compressible":true},"application/kpml-response+xml":{"source":"iana","compressible":true},"application/ld+json":{"source":"iana","compressible":true,"extensions":["jsonld"]},"application/lgr+xml":{"source":"iana","compressible":true,"extensions":["lgr"]},"application/link-format":{"source":"iana"},"application/load-control+xml":{"source":"iana","compressible":true},"application/lost+xml":{"source":"iana","compressible":true,"extensions":["lostxml"]},"application/lostsync+xml":{"source":"iana","compressible":true},"application/lpf+zip":{"source":"iana","compressible":false},"application/lxf":{"source":"iana"},"application/mac-binhex40":{"source":"iana","extensions":["hqx"]},"application/mac-compactpro":{"source":"apache","extensions":["cpt"]},"application/macwriteii":{"source":"iana"},"application/mads+xml":{"source":"iana","compressible":true,"extensions":["mads"]},"application/manifest+json":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["webmanifest"]},"application/marc":{"source":"iana","extensions":["mrc"]},"application/marcxml+xml":{"source":"iana","compressible":true,"extensions":["mrcx"]},"application/mathematica":{"source":"iana","extensions":["ma","nb","mb"]},"application/mathml+xml":{"source":"iana","compressible":true,"extensions":["mathml"]},"application/mathml-content+xml":{"source":"iana","compressible":true},"application/mathml-presentation+xml":{"source":"iana","compressible":true},"application/mbms-associated-procedure-description+xml":{"source":"iana","compressible":true},"application/mbms-deregister+xml":{"source":"iana","compressible":true},"application/mbms-envelope+xml":{"source":"iana","compressible":true},"application/mbms-msk+xml":{"source":"iana","compressible":true},"application/mbms-msk-response+xml":{"source":"iana","compressible":true},"application/mbms-protection-description+xml":{"source":"iana","compressible":true},"application/mbms-reception-report+xml":{"source":"iana","compressible":true},"application/mbms-register+xml":{"source":"iana","compressible":true},"application/mbms-register-response+xml":{"source":"iana","compressible":true},"application/mbms-schedule+xml":{"source":"iana","compressible":true},"application/mbms-user-service-description+xml":{"source":"iana","compressible":true},"application/mbox":{"source":"iana","extensions":["mbox"]},"application/media-policy-dataset+xml":{"source":"iana","compressible":true,"extensions":["mpf"]},"application/media_control+xml":{"source":"iana","compressible":true},"application/mediaservercontrol+xml":{"source":"iana","compressible":true,"extensions":["mscml"]},"application/merge-patch+json":{"source":"iana","compressible":true},"application/metalink+xml":{"source":"apache","compressible":true,"extensions":["metalink"]},"application/metalink4+xml":{"source":"iana","compressible":true,"extensions":["meta4"]},"application/mets+xml":{"source":"iana","compressible":true,"extensions":["mets"]},"application/mf4":{"source":"iana"},"application/mikey":{"source":"iana"},"application/mipc":{"source":"iana"},"application/missing-blocks+cbor-seq":{"source":"iana"},"application/mmt-aei+xml":{"source":"iana","compressible":true,"extensions":["maei"]},"application/mmt-usd+xml":{"source":"iana","compressible":true,"extensions":["musd"]},"application/mods+xml":{"source":"iana","compressible":true,"extensions":["mods"]},"application/moss-keys":{"source":"iana"},"application/moss-signature":{"source":"iana"},"application/mosskey-data":{"source":"iana"},"application/mosskey-request":{"source":"iana"},"application/mp21":{"source":"iana","extensions":["m21","mp21"]},"application/mp4":{"source":"iana","extensions":["mp4s","m4p"]},"application/mpeg4-generic":{"source":"iana"},"application/mpeg4-iod":{"source":"iana"},"application/mpeg4-iod-xmt":{"source":"iana"},"application/mrb-consumer+xml":{"source":"iana","compressible":true},"application/mrb-publish+xml":{"source":"iana","compressible":true},"application/msc-ivr+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/msc-mixer+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/msword":{"source":"iana","compressible":false,"extensions":["doc","dot"]},"application/mud+json":{"source":"iana","compressible":true},"application/multipart-core":{"source":"iana"},"application/mxf":{"source":"iana","extensions":["mxf"]},"application/n-quads":{"source":"iana","extensions":["nq"]},"application/n-triples":{"source":"iana","extensions":["nt"]},"application/nasdata":{"source":"iana"},"application/news-checkgroups":{"source":"iana","charset":"US-ASCII"},"application/news-groupinfo":{"source":"iana","charset":"US-ASCII"},"application/news-transmission":{"source":"iana"},"application/nlsml+xml":{"source":"iana","compressible":true},"application/node":{"source":"iana","extensions":["cjs"]},"application/nss":{"source":"iana"},"application/oauth-authz-req+jwt":{"source":"iana"},"application/oblivious-dns-message":{"source":"iana"},"application/ocsp-request":{"source":"iana"},"application/ocsp-response":{"source":"iana"},"application/octet-stream":{"source":"iana","compressible":false,"extensions":["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"]},"application/oda":{"source":"iana","extensions":["oda"]},"application/odm+xml":{"source":"iana","compressible":true},"application/odx":{"source":"iana"},"application/oebps-package+xml":{"source":"iana","compressible":true,"extensions":["opf"]},"application/ogg":{"source":"iana","compressible":false,"extensions":["ogx"]},"application/omdoc+xml":{"source":"apache","compressible":true,"extensions":["omdoc"]},"application/onenote":{"source":"apache","extensions":["onetoc","onetoc2","onetmp","onepkg"]},"application/opc-nodeset+xml":{"source":"iana","compressible":true},"application/oscore":{"source":"iana"},"application/oxps":{"source":"iana","extensions":["oxps"]},"application/p21":{"source":"iana"},"application/p21+zip":{"source":"iana","compressible":false},"application/p2p-overlay+xml":{"source":"iana","compressible":true,"extensions":["relo"]},"application/parityfec":{"source":"iana"},"application/passport":{"source":"iana"},"application/patch-ops-error+xml":{"source":"iana","compressible":true,"extensions":["xer"]},"application/pdf":{"source":"iana","compressible":false,"extensions":["pdf"]},"application/pdx":{"source":"iana"},"application/pem-certificate-chain":{"source":"iana"},"application/pgp-encrypted":{"source":"iana","compressible":false,"extensions":["pgp"]},"application/pgp-keys":{"source":"iana","extensions":["asc"]},"application/pgp-signature":{"source":"iana","extensions":["asc","sig"]},"application/pics-rules":{"source":"apache","extensions":["prf"]},"application/pidf+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/pidf-diff+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/pkcs10":{"source":"iana","extensions":["p10"]},"application/pkcs12":{"source":"iana"},"application/pkcs7-mime":{"source":"iana","extensions":["p7m","p7c"]},"application/pkcs7-signature":{"source":"iana","extensions":["p7s"]},"application/pkcs8":{"source":"iana","extensions":["p8"]},"application/pkcs8-encrypted":{"source":"iana"},"application/pkix-attr-cert":{"source":"iana","extensions":["ac"]},"application/pkix-cert":{"source":"iana","extensions":["cer"]},"application/pkix-crl":{"source":"iana","extensions":["crl"]},"application/pkix-pkipath":{"source":"iana","extensions":["pkipath"]},"application/pkixcmp":{"source":"iana","extensions":["pki"]},"application/pls+xml":{"source":"iana","compressible":true,"extensions":["pls"]},"application/poc-settings+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/postscript":{"source":"iana","compressible":true,"extensions":["ai","eps","ps"]},"application/ppsp-tracker+json":{"source":"iana","compressible":true},"application/problem+json":{"source":"iana","compressible":true},"application/problem+xml":{"source":"iana","compressible":true},"application/provenance+xml":{"source":"iana","compressible":true,"extensions":["provx"]},"application/prs.alvestrand.titrax-sheet":{"source":"iana"},"application/prs.cww":{"source":"iana","extensions":["cww"]},"application/prs.cyn":{"source":"iana","charset":"7-BIT"},"application/prs.hpub+zip":{"source":"iana","compressible":false},"application/prs.nprend":{"source":"iana"},"application/prs.plucker":{"source":"iana"},"application/prs.rdf-xml-crypt":{"source":"iana"},"application/prs.xsf+xml":{"source":"iana","compressible":true},"application/pskc+xml":{"source":"iana","compressible":true,"extensions":["pskcxml"]},"application/pvd+json":{"source":"iana","compressible":true},"application/qsig":{"source":"iana"},"application/raml+yaml":{"compressible":true,"extensions":["raml"]},"application/raptorfec":{"source":"iana"},"application/rdap+json":{"source":"iana","compressible":true},"application/rdf+xml":{"source":"iana","compressible":true,"extensions":["rdf","owl"]},"application/reginfo+xml":{"source":"iana","compressible":true,"extensions":["rif"]},"application/relax-ng-compact-syntax":{"source":"iana","extensions":["rnc"]},"application/remote-printing":{"source":"iana"},"application/reputon+json":{"source":"iana","compressible":true},"application/resource-lists+xml":{"source":"iana","compressible":true,"extensions":["rl"]},"application/resource-lists-diff+xml":{"source":"iana","compressible":true,"extensions":["rld"]},"application/rfc+xml":{"source":"iana","compressible":true},"application/riscos":{"source":"iana"},"application/rlmi+xml":{"source":"iana","compressible":true},"application/rls-services+xml":{"source":"iana","compressible":true,"extensions":["rs"]},"application/route-apd+xml":{"source":"iana","compressible":true,"extensions":["rapd"]},"application/route-s-tsid+xml":{"source":"iana","compressible":true,"extensions":["sls"]},"application/route-usd+xml":{"source":"iana","compressible":true,"extensions":["rusd"]},"application/rpki-ghostbusters":{"source":"iana","extensions":["gbr"]},"application/rpki-manifest":{"source":"iana","extensions":["mft"]},"application/rpki-publication":{"source":"iana"},"application/rpki-roa":{"source":"iana","extensions":["roa"]},"application/rpki-updown":{"source":"iana"},"application/rsd+xml":{"source":"apache","compressible":true,"extensions":["rsd"]},"application/rss+xml":{"source":"apache","compressible":true,"extensions":["rss"]},"application/rtf":{"source":"iana","compressible":true,"extensions":["rtf"]},"application/rtploopback":{"source":"iana"},"application/rtx":{"source":"iana"},"application/samlassertion+xml":{"source":"iana","compressible":true},"application/samlmetadata+xml":{"source":"iana","compressible":true},"application/sarif+json":{"source":"iana","compressible":true},"application/sarif-external-properties+json":{"source":"iana","compressible":true},"application/sbe":{"source":"iana"},"application/sbml+xml":{"source":"iana","compressible":true,"extensions":["sbml"]},"application/scaip+xml":{"source":"iana","compressible":true},"application/scim+json":{"source":"iana","compressible":true},"application/scvp-cv-request":{"source":"iana","extensions":["scq"]},"application/scvp-cv-response":{"source":"iana","extensions":["scs"]},"application/scvp-vp-request":{"source":"iana","extensions":["spq"]},"application/scvp-vp-response":{"source":"iana","extensions":["spp"]},"application/sdp":{"source":"iana","extensions":["sdp"]},"application/secevent+jwt":{"source":"iana"},"application/senml+cbor":{"source":"iana"},"application/senml+json":{"source":"iana","compressible":true},"application/senml+xml":{"source":"iana","compressible":true,"extensions":["senmlx"]},"application/senml-etch+cbor":{"source":"iana"},"application/senml-etch+json":{"source":"iana","compressible":true},"application/senml-exi":{"source":"iana"},"application/sensml+cbor":{"source":"iana"},"application/sensml+json":{"source":"iana","compressible":true},"application/sensml+xml":{"source":"iana","compressible":true,"extensions":["sensmlx"]},"application/sensml-exi":{"source":"iana"},"application/sep+xml":{"source":"iana","compressible":true},"application/sep-exi":{"source":"iana"},"application/session-info":{"source":"iana"},"application/set-payment":{"source":"iana"},"application/set-payment-initiation":{"source":"iana","extensions":["setpay"]},"application/set-registration":{"source":"iana"},"application/set-registration-initiation":{"source":"iana","extensions":["setreg"]},"application/sgml":{"source":"iana"},"application/sgml-open-catalog":{"source":"iana"},"application/shf+xml":{"source":"iana","compressible":true,"extensions":["shf"]},"application/sieve":{"source":"iana","extensions":["siv","sieve"]},"application/simple-filter+xml":{"source":"iana","compressible":true},"application/simple-message-summary":{"source":"iana"},"application/simplesymbolcontainer":{"source":"iana"},"application/sipc":{"source":"iana"},"application/slate":{"source":"iana"},"application/smil":{"source":"iana"},"application/smil+xml":{"source":"iana","compressible":true,"extensions":["smi","smil"]},"application/smpte336m":{"source":"iana"},"application/soap+fastinfoset":{"source":"iana"},"application/soap+xml":{"source":"iana","compressible":true},"application/sparql-query":{"source":"iana","extensions":["rq"]},"application/sparql-results+xml":{"source":"iana","compressible":true,"extensions":["srx"]},"application/spdx+json":{"source":"iana","compressible":true},"application/spirits-event+xml":{"source":"iana","compressible":true},"application/sql":{"source":"iana"},"application/srgs":{"source":"iana","extensions":["gram"]},"application/srgs+xml":{"source":"iana","compressible":true,"extensions":["grxml"]},"application/sru+xml":{"source":"iana","compressible":true,"extensions":["sru"]},"application/ssdl+xml":{"source":"apache","compressible":true,"extensions":["ssdl"]},"application/ssml+xml":{"source":"iana","compressible":true,"extensions":["ssml"]},"application/stix+json":{"source":"iana","compressible":true},"application/swid+xml":{"source":"iana","compressible":true,"extensions":["swidtag"]},"application/tamp-apex-update":{"source":"iana"},"application/tamp-apex-update-confirm":{"source":"iana"},"application/tamp-community-update":{"source":"iana"},"application/tamp-community-update-confirm":{"source":"iana"},"application/tamp-error":{"source":"iana"},"application/tamp-sequence-adjust":{"source":"iana"},"application/tamp-sequence-adjust-confirm":{"source":"iana"},"application/tamp-status-query":{"source":"iana"},"application/tamp-status-response":{"source":"iana"},"application/tamp-update":{"source":"iana"},"application/tamp-update-confirm":{"source":"iana"},"application/tar":{"compressible":true},"application/taxii+json":{"source":"iana","compressible":true},"application/td+json":{"source":"iana","compressible":true},"application/tei+xml":{"source":"iana","compressible":true,"extensions":["tei","teicorpus"]},"application/tetra_isi":{"source":"iana"},"application/thraud+xml":{"source":"iana","compressible":true,"extensions":["tfi"]},"application/timestamp-query":{"source":"iana"},"application/timestamp-reply":{"source":"iana"},"application/timestamped-data":{"source":"iana","extensions":["tsd"]},"application/tlsrpt+gzip":{"source":"iana"},"application/tlsrpt+json":{"source":"iana","compressible":true},"application/tnauthlist":{"source":"iana"},"application/token-introspection+jwt":{"source":"iana"},"application/toml":{"compressible":true,"extensions":["toml"]},"application/trickle-ice-sdpfrag":{"source":"iana"},"application/trig":{"source":"iana","extensions":["trig"]},"application/ttml+xml":{"source":"iana","compressible":true,"extensions":["ttml"]},"application/tve-trigger":{"source":"iana"},"application/tzif":{"source":"iana"},"application/tzif-leap":{"source":"iana"},"application/ubjson":{"compressible":false,"extensions":["ubj"]},"application/ulpfec":{"source":"iana"},"application/urc-grpsheet+xml":{"source":"iana","compressible":true},"application/urc-ressheet+xml":{"source":"iana","compressible":true,"extensions":["rsheet"]},"application/urc-targetdesc+xml":{"source":"iana","compressible":true,"extensions":["td"]},"application/urc-uisocketdesc+xml":{"source":"iana","compressible":true},"application/vcard+json":{"source":"iana","compressible":true},"application/vcard+xml":{"source":"iana","compressible":true},"application/vemmi":{"source":"iana"},"application/vividence.scriptfile":{"source":"apache"},"application/vnd.1000minds.decision-model+xml":{"source":"iana","compressible":true,"extensions":["1km"]},"application/vnd.3gpp-prose+xml":{"source":"iana","compressible":true},"application/vnd.3gpp-prose-pc3ch+xml":{"source":"iana","compressible":true},"application/vnd.3gpp-v2x-local-service-information":{"source":"iana"},"application/vnd.3gpp.5gnas":{"source":"iana"},"application/vnd.3gpp.access-transfer-events+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.bsf+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.gmop+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.gtpc":{"source":"iana"},"application/vnd.3gpp.interworking-data":{"source":"iana"},"application/vnd.3gpp.lpp":{"source":"iana"},"application/vnd.3gpp.mc-signalling-ear":{"source":"iana"},"application/vnd.3gpp.mcdata-affiliation-command+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-payload":{"source":"iana"},"application/vnd.3gpp.mcdata-service-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-signalling":{"source":"iana"},"application/vnd.3gpp.mcdata-ue-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-user-profile+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-affiliation-command+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-floor-request+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-location-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-mbms-usage-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-service-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-signed+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-ue-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-ue-init-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-user-profile+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-affiliation-command+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-affiliation-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-location-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-mbms-usage-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-service-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-transmission-request+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-ue-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-user-profile+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mid-call+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.ngap":{"source":"iana"},"application/vnd.3gpp.pfcp":{"source":"iana"},"application/vnd.3gpp.pic-bw-large":{"source":"iana","extensions":["plb"]},"application/vnd.3gpp.pic-bw-small":{"source":"iana","extensions":["psb"]},"application/vnd.3gpp.pic-bw-var":{"source":"iana","extensions":["pvb"]},"application/vnd.3gpp.s1ap":{"source":"iana"},"application/vnd.3gpp.sms":{"source":"iana"},"application/vnd.3gpp.sms+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.srvcc-ext+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.srvcc-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.state-and-event-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.ussd+xml":{"source":"iana","compressible":true},"application/vnd.3gpp2.bcmcsinfo+xml":{"source":"iana","compressible":true},"application/vnd.3gpp2.sms":{"source":"iana"},"application/vnd.3gpp2.tcap":{"source":"iana","extensions":["tcap"]},"application/vnd.3lightssoftware.imagescal":{"source":"iana"},"application/vnd.3m.post-it-notes":{"source":"iana","extensions":["pwn"]},"application/vnd.accpac.simply.aso":{"source":"iana","extensions":["aso"]},"application/vnd.accpac.simply.imp":{"source":"iana","extensions":["imp"]},"application/vnd.acucobol":{"source":"iana","extensions":["acu"]},"application/vnd.acucorp":{"source":"iana","extensions":["atc","acutc"]},"application/vnd.adobe.air-application-installer-package+zip":{"source":"apache","compressible":false,"extensions":["air"]},"application/vnd.adobe.flash.movie":{"source":"iana"},"application/vnd.adobe.formscentral.fcdt":{"source":"iana","extensions":["fcdt"]},"application/vnd.adobe.fxp":{"source":"iana","extensions":["fxp","fxpl"]},"application/vnd.adobe.partial-upload":{"source":"iana"},"application/vnd.adobe.xdp+xml":{"source":"iana","compressible":true,"extensions":["xdp"]},"application/vnd.adobe.xfdf":{"source":"iana","extensions":["xfdf"]},"application/vnd.aether.imp":{"source":"iana"},"application/vnd.afpc.afplinedata":{"source":"iana"},"application/vnd.afpc.afplinedata-pagedef":{"source":"iana"},"application/vnd.afpc.cmoca-cmresource":{"source":"iana"},"application/vnd.afpc.foca-charset":{"source":"iana"},"application/vnd.afpc.foca-codedfont":{"source":"iana"},"application/vnd.afpc.foca-codepage":{"source":"iana"},"application/vnd.afpc.modca":{"source":"iana"},"application/vnd.afpc.modca-cmtable":{"source":"iana"},"application/vnd.afpc.modca-formdef":{"source":"iana"},"application/vnd.afpc.modca-mediummap":{"source":"iana"},"application/vnd.afpc.modca-objectcontainer":{"source":"iana"},"application/vnd.afpc.modca-overlay":{"source":"iana"},"application/vnd.afpc.modca-pagesegment":{"source":"iana"},"application/vnd.age":{"source":"iana","extensions":["age"]},"application/vnd.ah-barcode":{"source":"iana"},"application/vnd.ahead.space":{"source":"iana","extensions":["ahead"]},"application/vnd.airzip.filesecure.azf":{"source":"iana","extensions":["azf"]},"application/vnd.airzip.filesecure.azs":{"source":"iana","extensions":["azs"]},"application/vnd.amadeus+json":{"source":"iana","compressible":true},"application/vnd.amazon.ebook":{"source":"apache","extensions":["azw"]},"application/vnd.amazon.mobi8-ebook":{"source":"iana"},"application/vnd.americandynamics.acc":{"source":"iana","extensions":["acc"]},"application/vnd.amiga.ami":{"source":"iana","extensions":["ami"]},"application/vnd.amundsen.maze+xml":{"source":"iana","compressible":true},"application/vnd.android.ota":{"source":"iana"},"application/vnd.android.package-archive":{"source":"apache","compressible":false,"extensions":["apk"]},"application/vnd.anki":{"source":"iana"},"application/vnd.anser-web-certificate-issue-initiation":{"source":"iana","extensions":["cii"]},"application/vnd.anser-web-funds-transfer-initiation":{"source":"apache","extensions":["fti"]},"application/vnd.antix.game-component":{"source":"iana","extensions":["atx"]},"application/vnd.apache.arrow.file":{"source":"iana"},"application/vnd.apache.arrow.stream":{"source":"iana"},"application/vnd.apache.thrift.binary":{"source":"iana"},"application/vnd.apache.thrift.compact":{"source":"iana"},"application/vnd.apache.thrift.json":{"source":"iana"},"application/vnd.api+json":{"source":"iana","compressible":true},"application/vnd.aplextor.warrp+json":{"source":"iana","compressible":true},"application/vnd.apothekende.reservation+json":{"source":"iana","compressible":true},"application/vnd.apple.installer+xml":{"source":"iana","compressible":true,"extensions":["mpkg"]},"application/vnd.apple.keynote":{"source":"iana","extensions":["key"]},"application/vnd.apple.mpegurl":{"source":"iana","extensions":["m3u8"]},"application/vnd.apple.numbers":{"source":"iana","extensions":["numbers"]},"application/vnd.apple.pages":{"source":"iana","extensions":["pages"]},"application/vnd.apple.pkpass":{"compressible":false,"extensions":["pkpass"]},"application/vnd.arastra.swi":{"source":"iana"},"application/vnd.aristanetworks.swi":{"source":"iana","extensions":["swi"]},"application/vnd.artisan+json":{"source":"iana","compressible":true},"application/vnd.artsquare":{"source":"iana"},"application/vnd.astraea-software.iota":{"source":"iana","extensions":["iota"]},"application/vnd.audiograph":{"source":"iana","extensions":["aep"]},"application/vnd.autopackage":{"source":"iana"},"application/vnd.avalon+json":{"source":"iana","compressible":true},"application/vnd.avistar+xml":{"source":"iana","compressible":true},"application/vnd.balsamiq.bmml+xml":{"source":"iana","compressible":true,"extensions":["bmml"]},"application/vnd.balsamiq.bmpr":{"source":"iana"},"application/vnd.banana-accounting":{"source":"iana"},"application/vnd.bbf.usp.error":{"source":"iana"},"application/vnd.bbf.usp.msg":{"source":"iana"},"application/vnd.bbf.usp.msg+json":{"source":"iana","compressible":true},"application/vnd.bekitzur-stech+json":{"source":"iana","compressible":true},"application/vnd.bint.med-content":{"source":"iana"},"application/vnd.biopax.rdf+xml":{"source":"iana","compressible":true},"application/vnd.blink-idb-value-wrapper":{"source":"iana"},"application/vnd.blueice.multipass":{"source":"iana","extensions":["mpm"]},"application/vnd.bluetooth.ep.oob":{"source":"iana"},"application/vnd.bluetooth.le.oob":{"source":"iana"},"application/vnd.bmi":{"source":"iana","extensions":["bmi"]},"application/vnd.bpf":{"source":"iana"},"application/vnd.bpf3":{"source":"iana"},"application/vnd.businessobjects":{"source":"iana","extensions":["rep"]},"application/vnd.byu.uapi+json":{"source":"iana","compressible":true},"application/vnd.cab-jscript":{"source":"iana"},"application/vnd.canon-cpdl":{"source":"iana"},"application/vnd.canon-lips":{"source":"iana"},"application/vnd.capasystems-pg+json":{"source":"iana","compressible":true},"application/vnd.cendio.thinlinc.clientconf":{"source":"iana"},"application/vnd.century-systems.tcp_stream":{"source":"iana"},"application/vnd.chemdraw+xml":{"source":"iana","compressible":true,"extensions":["cdxml"]},"application/vnd.chess-pgn":{"source":"iana"},"application/vnd.chipnuts.karaoke-mmd":{"source":"iana","extensions":["mmd"]},"application/vnd.ciedi":{"source":"iana"},"application/vnd.cinderella":{"source":"iana","extensions":["cdy"]},"application/vnd.cirpack.isdn-ext":{"source":"iana"},"application/vnd.citationstyles.style+xml":{"source":"iana","compressible":true,"extensions":["csl"]},"application/vnd.claymore":{"source":"iana","extensions":["cla"]},"application/vnd.cloanto.rp9":{"source":"iana","extensions":["rp9"]},"application/vnd.clonk.c4group":{"source":"iana","extensions":["c4g","c4d","c4f","c4p","c4u"]},"application/vnd.cluetrust.cartomobile-config":{"source":"iana","extensions":["c11amc"]},"application/vnd.cluetrust.cartomobile-config-pkg":{"source":"iana","extensions":["c11amz"]},"application/vnd.coffeescript":{"source":"iana"},"application/vnd.collabio.xodocuments.document":{"source":"iana"},"application/vnd.collabio.xodocuments.document-template":{"source":"iana"},"application/vnd.collabio.xodocuments.presentation":{"source":"iana"},"application/vnd.collabio.xodocuments.presentation-template":{"source":"iana"},"application/vnd.collabio.xodocuments.spreadsheet":{"source":"iana"},"application/vnd.collabio.xodocuments.spreadsheet-template":{"source":"iana"},"application/vnd.collection+json":{"source":"iana","compressible":true},"application/vnd.collection.doc+json":{"source":"iana","compressible":true},"application/vnd.collection.next+json":{"source":"iana","compressible":true},"application/vnd.comicbook+zip":{"source":"iana","compressible":false},"application/vnd.comicbook-rar":{"source":"iana"},"application/vnd.commerce-battelle":{"source":"iana"},"application/vnd.commonspace":{"source":"iana","extensions":["csp"]},"application/vnd.contact.cmsg":{"source":"iana","extensions":["cdbcmsg"]},"application/vnd.coreos.ignition+json":{"source":"iana","compressible":true},"application/vnd.cosmocaller":{"source":"iana","extensions":["cmc"]},"application/vnd.crick.clicker":{"source":"iana","extensions":["clkx"]},"application/vnd.crick.clicker.keyboard":{"source":"iana","extensions":["clkk"]},"application/vnd.crick.clicker.palette":{"source":"iana","extensions":["clkp"]},"application/vnd.crick.clicker.template":{"source":"iana","extensions":["clkt"]},"application/vnd.crick.clicker.wordbank":{"source":"iana","extensions":["clkw"]},"application/vnd.criticaltools.wbs+xml":{"source":"iana","compressible":true,"extensions":["wbs"]},"application/vnd.cryptii.pipe+json":{"source":"iana","compressible":true},"application/vnd.crypto-shade-file":{"source":"iana"},"application/vnd.cryptomator.encrypted":{"source":"iana"},"application/vnd.cryptomator.vault":{"source":"iana"},"application/vnd.ctc-posml":{"source":"iana","extensions":["pml"]},"application/vnd.ctct.ws+xml":{"source":"iana","compressible":true},"application/vnd.cups-pdf":{"source":"iana"},"application/vnd.cups-postscript":{"source":"iana"},"application/vnd.cups-ppd":{"source":"iana","extensions":["ppd"]},"application/vnd.cups-raster":{"source":"iana"},"application/vnd.cups-raw":{"source":"iana"},"application/vnd.curl":{"source":"iana"},"application/vnd.curl.car":{"source":"apache","extensions":["car"]},"application/vnd.curl.pcurl":{"source":"apache","extensions":["pcurl"]},"application/vnd.cyan.dean.root+xml":{"source":"iana","compressible":true},"application/vnd.cybank":{"source":"iana"},"application/vnd.cyclonedx+json":{"source":"iana","compressible":true},"application/vnd.cyclonedx+xml":{"source":"iana","compressible":true},"application/vnd.d2l.coursepackage1p0+zip":{"source":"iana","compressible":false},"application/vnd.d3m-dataset":{"source":"iana"},"application/vnd.d3m-problem":{"source":"iana"},"application/vnd.dart":{"source":"iana","compressible":true,"extensions":["dart"]},"application/vnd.data-vision.rdz":{"source":"iana","extensions":["rdz"]},"application/vnd.datapackage+json":{"source":"iana","compressible":true},"application/vnd.dataresource+json":{"source":"iana","compressible":true},"application/vnd.dbf":{"source":"iana","extensions":["dbf"]},"application/vnd.debian.binary-package":{"source":"iana"},"application/vnd.dece.data":{"source":"iana","extensions":["uvf","uvvf","uvd","uvvd"]},"application/vnd.dece.ttml+xml":{"source":"iana","compressible":true,"extensions":["uvt","uvvt"]},"application/vnd.dece.unspecified":{"source":"iana","extensions":["uvx","uvvx"]},"application/vnd.dece.zip":{"source":"iana","extensions":["uvz","uvvz"]},"application/vnd.denovo.fcselayout-link":{"source":"iana","extensions":["fe_launch"]},"application/vnd.desmume.movie":{"source":"iana"},"application/vnd.dir-bi.plate-dl-nosuffix":{"source":"iana"},"application/vnd.dm.delegation+xml":{"source":"iana","compressible":true},"application/vnd.dna":{"source":"iana","extensions":["dna"]},"application/vnd.document+json":{"source":"iana","compressible":true},"application/vnd.dolby.mlp":{"source":"apache","extensions":["mlp"]},"application/vnd.dolby.mobile.1":{"source":"iana"},"application/vnd.dolby.mobile.2":{"source":"iana"},"application/vnd.doremir.scorecloud-binary-document":{"source":"iana"},"application/vnd.dpgraph":{"source":"iana","extensions":["dpg"]},"application/vnd.dreamfactory":{"source":"iana","extensions":["dfac"]},"application/vnd.drive+json":{"source":"iana","compressible":true},"application/vnd.ds-keypoint":{"source":"apache","extensions":["kpxx"]},"application/vnd.dtg.local":{"source":"iana"},"application/vnd.dtg.local.flash":{"source":"iana"},"application/vnd.dtg.local.html":{"source":"iana"},"application/vnd.dvb.ait":{"source":"iana","extensions":["ait"]},"application/vnd.dvb.dvbisl+xml":{"source":"iana","compressible":true},"application/vnd.dvb.dvbj":{"source":"iana"},"application/vnd.dvb.esgcontainer":{"source":"iana"},"application/vnd.dvb.ipdcdftnotifaccess":{"source":"iana"},"application/vnd.dvb.ipdcesgaccess":{"source":"iana"},"application/vnd.dvb.ipdcesgaccess2":{"source":"iana"},"application/vnd.dvb.ipdcesgpdd":{"source":"iana"},"application/vnd.dvb.ipdcroaming":{"source":"iana"},"application/vnd.dvb.iptv.alfec-base":{"source":"iana"},"application/vnd.dvb.iptv.alfec-enhancement":{"source":"iana"},"application/vnd.dvb.notif-aggregate-root+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-container+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-generic+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-ia-msglist+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-ia-registration-request+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-ia-registration-response+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-init+xml":{"source":"iana","compressible":true},"application/vnd.dvb.pfr":{"source":"iana"},"application/vnd.dvb.service":{"source":"iana","extensions":["svc"]},"application/vnd.dxr":{"source":"iana"},"application/vnd.dynageo":{"source":"iana","extensions":["geo"]},"application/vnd.dzr":{"source":"iana"},"application/vnd.easykaraoke.cdgdownload":{"source":"iana"},"application/vnd.ecdis-update":{"source":"iana"},"application/vnd.ecip.rlp":{"source":"iana"},"application/vnd.eclipse.ditto+json":{"source":"iana","compressible":true},"application/vnd.ecowin.chart":{"source":"iana","extensions":["mag"]},"application/vnd.ecowin.filerequest":{"source":"iana"},"application/vnd.ecowin.fileupdate":{"source":"iana"},"application/vnd.ecowin.series":{"source":"iana"},"application/vnd.ecowin.seriesrequest":{"source":"iana"},"application/vnd.ecowin.seriesupdate":{"source":"iana"},"application/vnd.efi.img":{"source":"iana"},"application/vnd.efi.iso":{"source":"iana"},"application/vnd.emclient.accessrequest+xml":{"source":"iana","compressible":true},"application/vnd.enliven":{"source":"iana","extensions":["nml"]},"application/vnd.enphase.envoy":{"source":"iana"},"application/vnd.eprints.data+xml":{"source":"iana","compressible":true},"application/vnd.epson.esf":{"source":"iana","extensions":["esf"]},"application/vnd.epson.msf":{"source":"iana","extensions":["msf"]},"application/vnd.epson.quickanime":{"source":"iana","extensions":["qam"]},"application/vnd.epson.salt":{"source":"iana","extensions":["slt"]},"application/vnd.epson.ssf":{"source":"iana","extensions":["ssf"]},"application/vnd.ericsson.quickcall":{"source":"iana"},"application/vnd.espass-espass+zip":{"source":"iana","compressible":false},"application/vnd.eszigno3+xml":{"source":"iana","compressible":true,"extensions":["es3","et3"]},"application/vnd.etsi.aoc+xml":{"source":"iana","compressible":true},"application/vnd.etsi.asic-e+zip":{"source":"iana","compressible":false},"application/vnd.etsi.asic-s+zip":{"source":"iana","compressible":false},"application/vnd.etsi.cug+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvcommand+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvdiscovery+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvprofile+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsad-bc+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsad-cod+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsad-npvr+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvservice+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsync+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvueprofile+xml":{"source":"iana","compressible":true},"application/vnd.etsi.mcid+xml":{"source":"iana","compressible":true},"application/vnd.etsi.mheg5":{"source":"iana"},"application/vnd.etsi.overload-control-policy-dataset+xml":{"source":"iana","compressible":true},"application/vnd.etsi.pstn+xml":{"source":"iana","compressible":true},"application/vnd.etsi.sci+xml":{"source":"iana","compressible":true},"application/vnd.etsi.simservs+xml":{"source":"iana","compressible":true},"application/vnd.etsi.timestamp-token":{"source":"iana"},"application/vnd.etsi.tsl+xml":{"source":"iana","compressible":true},"application/vnd.etsi.tsl.der":{"source":"iana"},"application/vnd.eu.kasparian.car+json":{"source":"iana","compressible":true},"application/vnd.eudora.data":{"source":"iana"},"application/vnd.evolv.ecig.profile":{"source":"iana"},"application/vnd.evolv.ecig.settings":{"source":"iana"},"application/vnd.evolv.ecig.theme":{"source":"iana"},"application/vnd.exstream-empower+zip":{"source":"iana","compressible":false},"application/vnd.exstream-package":{"source":"iana"},"application/vnd.ezpix-album":{"source":"iana","extensions":["ez2"]},"application/vnd.ezpix-package":{"source":"iana","extensions":["ez3"]},"application/vnd.f-secure.mobile":{"source":"iana"},"application/vnd.familysearch.gedcom+zip":{"source":"iana","compressible":false},"application/vnd.fastcopy-disk-image":{"source":"iana"},"application/vnd.fdf":{"source":"iana","extensions":["fdf"]},"application/vnd.fdsn.mseed":{"source":"iana","extensions":["mseed"]},"application/vnd.fdsn.seed":{"source":"iana","extensions":["seed","dataless"]},"application/vnd.ffsns":{"source":"iana"},"application/vnd.ficlab.flb+zip":{"source":"iana","compressible":false},"application/vnd.filmit.zfc":{"source":"iana"},"application/vnd.fints":{"source":"iana"},"application/vnd.firemonkeys.cloudcell":{"source":"iana"},"application/vnd.flographit":{"source":"iana","extensions":["gph"]},"application/vnd.fluxtime.clip":{"source":"iana","extensions":["ftc"]},"application/vnd.font-fontforge-sfd":{"source":"iana"},"application/vnd.framemaker":{"source":"iana","extensions":["fm","frame","maker","book"]},"application/vnd.frogans.fnc":{"source":"iana","extensions":["fnc"]},"application/vnd.frogans.ltf":{"source":"iana","extensions":["ltf"]},"application/vnd.fsc.weblaunch":{"source":"iana","extensions":["fsc"]},"application/vnd.fujifilm.fb.docuworks":{"source":"iana"},"application/vnd.fujifilm.fb.docuworks.binder":{"source":"iana"},"application/vnd.fujifilm.fb.docuworks.container":{"source":"iana"},"application/vnd.fujifilm.fb.jfi+xml":{"source":"iana","compressible":true},"application/vnd.fujitsu.oasys":{"source":"iana","extensions":["oas"]},"application/vnd.fujitsu.oasys2":{"source":"iana","extensions":["oa2"]},"application/vnd.fujitsu.oasys3":{"source":"iana","extensions":["oa3"]},"application/vnd.fujitsu.oasysgp":{"source":"iana","extensions":["fg5"]},"application/vnd.fujitsu.oasysprs":{"source":"iana","extensions":["bh2"]},"application/vnd.fujixerox.art-ex":{"source":"iana"},"application/vnd.fujixerox.art4":{"source":"iana"},"application/vnd.fujixerox.ddd":{"source":"iana","extensions":["ddd"]},"application/vnd.fujixerox.docuworks":{"source":"iana","extensions":["xdw"]},"application/vnd.fujixerox.docuworks.binder":{"source":"iana","extensions":["xbd"]},"application/vnd.fujixerox.docuworks.container":{"source":"iana"},"application/vnd.fujixerox.hbpl":{"source":"iana"},"application/vnd.fut-misnet":{"source":"iana"},"application/vnd.futoin+cbor":{"source":"iana"},"application/vnd.futoin+json":{"source":"iana","compressible":true},"application/vnd.fuzzysheet":{"source":"iana","extensions":["fzs"]},"application/vnd.genomatix.tuxedo":{"source":"iana","extensions":["txd"]},"application/vnd.gentics.grd+json":{"source":"iana","compressible":true},"application/vnd.geo+json":{"source":"iana","compressible":true},"application/vnd.geocube+xml":{"source":"iana","compressible":true},"application/vnd.geogebra.file":{"source":"iana","extensions":["ggb"]},"application/vnd.geogebra.slides":{"source":"iana"},"application/vnd.geogebra.tool":{"source":"iana","extensions":["ggt"]},"application/vnd.geometry-explorer":{"source":"iana","extensions":["gex","gre"]},"application/vnd.geonext":{"source":"iana","extensions":["gxt"]},"application/vnd.geoplan":{"source":"iana","extensions":["g2w"]},"application/vnd.geospace":{"source":"iana","extensions":["g3w"]},"application/vnd.gerber":{"source":"iana"},"application/vnd.globalplatform.card-content-mgt":{"source":"iana"},"application/vnd.globalplatform.card-content-mgt-response":{"source":"iana"},"application/vnd.gmx":{"source":"iana","extensions":["gmx"]},"application/vnd.google-apps.document":{"compressible":false,"extensions":["gdoc"]},"application/vnd.google-apps.presentation":{"compressible":false,"extensions":["gslides"]},"application/vnd.google-apps.spreadsheet":{"compressible":false,"extensions":["gsheet"]},"application/vnd.google-earth.kml+xml":{"source":"iana","compressible":true,"extensions":["kml"]},"application/vnd.google-earth.kmz":{"source":"iana","compressible":false,"extensions":["kmz"]},"application/vnd.gov.sk.e-form+xml":{"source":"iana","compressible":true},"application/vnd.gov.sk.e-form+zip":{"source":"iana","compressible":false},"application/vnd.gov.sk.xmldatacontainer+xml":{"source":"iana","compressible":true},"application/vnd.grafeq":{"source":"iana","extensions":["gqf","gqs"]},"application/vnd.gridmp":{"source":"iana"},"application/vnd.groove-account":{"source":"iana","extensions":["gac"]},"application/vnd.groove-help":{"source":"iana","extensions":["ghf"]},"application/vnd.groove-identity-message":{"source":"iana","extensions":["gim"]},"application/vnd.groove-injector":{"source":"iana","extensions":["grv"]},"application/vnd.groove-tool-message":{"source":"iana","extensions":["gtm"]},"application/vnd.groove-tool-template":{"source":"iana","extensions":["tpl"]},"application/vnd.groove-vcard":{"source":"iana","extensions":["vcg"]},"application/vnd.hal+json":{"source":"iana","compressible":true},"application/vnd.hal+xml":{"source":"iana","compressible":true,"extensions":["hal"]},"application/vnd.handheld-entertainment+xml":{"source":"iana","compressible":true,"extensions":["zmm"]},"application/vnd.hbci":{"source":"iana","extensions":["hbci"]},"application/vnd.hc+json":{"source":"iana","compressible":true},"application/vnd.hcl-bireports":{"source":"iana"},"application/vnd.hdt":{"source":"iana"},"application/vnd.heroku+json":{"source":"iana","compressible":true},"application/vnd.hhe.lesson-player":{"source":"iana","extensions":["les"]},"application/vnd.hl7cda+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.hl7v2+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.hp-hpgl":{"source":"iana","extensions":["hpgl"]},"application/vnd.hp-hpid":{"source":"iana","extensions":["hpid"]},"application/vnd.hp-hps":{"source":"iana","extensions":["hps"]},"application/vnd.hp-jlyt":{"source":"iana","extensions":["jlt"]},"application/vnd.hp-pcl":{"source":"iana","extensions":["pcl"]},"application/vnd.hp-pclxl":{"source":"iana","extensions":["pclxl"]},"application/vnd.httphone":{"source":"iana"},"application/vnd.hydrostatix.sof-data":{"source":"iana","extensions":["sfd-hdstx"]},"application/vnd.hyper+json":{"source":"iana","compressible":true},"application/vnd.hyper-item+json":{"source":"iana","compressible":true},"application/vnd.hyperdrive+json":{"source":"iana","compressible":true},"application/vnd.hzn-3d-crossword":{"source":"iana"},"application/vnd.ibm.afplinedata":{"source":"iana"},"application/vnd.ibm.electronic-media":{"source":"iana"},"application/vnd.ibm.minipay":{"source":"iana","extensions":["mpy"]},"application/vnd.ibm.modcap":{"source":"iana","extensions":["afp","listafp","list3820"]},"application/vnd.ibm.rights-management":{"source":"iana","extensions":["irm"]},"application/vnd.ibm.secure-container":{"source":"iana","extensions":["sc"]},"application/vnd.iccprofile":{"source":"iana","extensions":["icc","icm"]},"application/vnd.ieee.1905":{"source":"iana"},"application/vnd.igloader":{"source":"iana","extensions":["igl"]},"application/vnd.imagemeter.folder+zip":{"source":"iana","compressible":false},"application/vnd.imagemeter.image+zip":{"source":"iana","compressible":false},"application/vnd.immervision-ivp":{"source":"iana","extensions":["ivp"]},"application/vnd.immervision-ivu":{"source":"iana","extensions":["ivu"]},"application/vnd.ims.imsccv1p1":{"source":"iana"},"application/vnd.ims.imsccv1p2":{"source":"iana"},"application/vnd.ims.imsccv1p3":{"source":"iana"},"application/vnd.ims.lis.v2.result+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolconsumerprofile+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolproxy+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolproxy.id+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolsettings+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolsettings.simple+json":{"source":"iana","compressible":true},"application/vnd.informedcontrol.rms+xml":{"source":"iana","compressible":true},"application/vnd.informix-visionary":{"source":"iana"},"application/vnd.infotech.project":{"source":"iana"},"application/vnd.infotech.project+xml":{"source":"iana","compressible":true},"application/vnd.innopath.wamp.notification":{"source":"iana"},"application/vnd.insors.igm":{"source":"iana","extensions":["igm"]},"application/vnd.intercon.formnet":{"source":"iana","extensions":["xpw","xpx"]},"application/vnd.intergeo":{"source":"iana","extensions":["i2g"]},"application/vnd.intertrust.digibox":{"source":"iana"},"application/vnd.intertrust.nncp":{"source":"iana"},"application/vnd.intu.qbo":{"source":"iana","extensions":["qbo"]},"application/vnd.intu.qfx":{"source":"iana","extensions":["qfx"]},"application/vnd.iptc.g2.catalogitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.conceptitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.knowledgeitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.newsitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.newsmessage+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.packageitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.planningitem+xml":{"source":"iana","compressible":true},"application/vnd.ipunplugged.rcprofile":{"source":"iana","extensions":["rcprofile"]},"application/vnd.irepository.package+xml":{"source":"iana","compressible":true,"extensions":["irp"]},"application/vnd.is-xpr":{"source":"iana","extensions":["xpr"]},"application/vnd.isac.fcs":{"source":"iana","extensions":["fcs"]},"application/vnd.iso11783-10+zip":{"source":"iana","compressible":false},"application/vnd.jam":{"source":"iana","extensions":["jam"]},"application/vnd.japannet-directory-service":{"source":"iana"},"application/vnd.japannet-jpnstore-wakeup":{"source":"iana"},"application/vnd.japannet-payment-wakeup":{"source":"iana"},"application/vnd.japannet-registration":{"source":"iana"},"application/vnd.japannet-registration-wakeup":{"source":"iana"},"application/vnd.japannet-setstore-wakeup":{"source":"iana"},"application/vnd.japannet-verification":{"source":"iana"},"application/vnd.japannet-verification-wakeup":{"source":"iana"},"application/vnd.jcp.javame.midlet-rms":{"source":"iana","extensions":["rms"]},"application/vnd.jisp":{"source":"iana","extensions":["jisp"]},"application/vnd.joost.joda-archive":{"source":"iana","extensions":["joda"]},"application/vnd.jsk.isdn-ngn":{"source":"iana"},"application/vnd.kahootz":{"source":"iana","extensions":["ktz","ktr"]},"application/vnd.kde.karbon":{"source":"iana","extensions":["karbon"]},"application/vnd.kde.kchart":{"source":"iana","extensions":["chrt"]},"application/vnd.kde.kformula":{"source":"iana","extensions":["kfo"]},"application/vnd.kde.kivio":{"source":"iana","extensions":["flw"]},"application/vnd.kde.kontour":{"source":"iana","extensions":["kon"]},"application/vnd.kde.kpresenter":{"source":"iana","extensions":["kpr","kpt"]},"application/vnd.kde.kspread":{"source":"iana","extensions":["ksp"]},"application/vnd.kde.kword":{"source":"iana","extensions":["kwd","kwt"]},"application/vnd.kenameaapp":{"source":"iana","extensions":["htke"]},"application/vnd.kidspiration":{"source":"iana","extensions":["kia"]},"application/vnd.kinar":{"source":"iana","extensions":["kne","knp"]},"application/vnd.koan":{"source":"iana","extensions":["skp","skd","skt","skm"]},"application/vnd.kodak-descriptor":{"source":"iana","extensions":["sse"]},"application/vnd.las":{"source":"iana"},"application/vnd.las.las+json":{"source":"iana","compressible":true},"application/vnd.las.las+xml":{"source":"iana","compressible":true,"extensions":["lasxml"]},"application/vnd.laszip":{"source":"iana"},"application/vnd.leap+json":{"source":"iana","compressible":true},"application/vnd.liberty-request+xml":{"source":"iana","compressible":true},"application/vnd.llamagraphics.life-balance.desktop":{"source":"iana","extensions":["lbd"]},"application/vnd.llamagraphics.life-balance.exchange+xml":{"source":"iana","compressible":true,"extensions":["lbe"]},"application/vnd.logipipe.circuit+zip":{"source":"iana","compressible":false},"application/vnd.loom":{"source":"iana"},"application/vnd.lotus-1-2-3":{"source":"iana","extensions":["123"]},"application/vnd.lotus-approach":{"source":"iana","extensions":["apr"]},"application/vnd.lotus-freelance":{"source":"iana","extensions":["pre"]},"application/vnd.lotus-notes":{"source":"iana","extensions":["nsf"]},"application/vnd.lotus-organizer":{"source":"iana","extensions":["org"]},"application/vnd.lotus-screencam":{"source":"iana","extensions":["scm"]},"application/vnd.lotus-wordpro":{"source":"iana","extensions":["lwp"]},"application/vnd.macports.portpkg":{"source":"iana","extensions":["portpkg"]},"application/vnd.mapbox-vector-tile":{"source":"iana","extensions":["mvt"]},"application/vnd.marlin.drm.actiontoken+xml":{"source":"iana","compressible":true},"application/vnd.marlin.drm.conftoken+xml":{"source":"iana","compressible":true},"application/vnd.marlin.drm.license+xml":{"source":"iana","compressible":true},"application/vnd.marlin.drm.mdcf":{"source":"iana"},"application/vnd.mason+json":{"source":"iana","compressible":true},"application/vnd.maxar.archive.3tz+zip":{"source":"iana","compressible":false},"application/vnd.maxmind.maxmind-db":{"source":"iana"},"application/vnd.mcd":{"source":"iana","extensions":["mcd"]},"application/vnd.medcalcdata":{"source":"iana","extensions":["mc1"]},"application/vnd.mediastation.cdkey":{"source":"iana","extensions":["cdkey"]},"application/vnd.meridian-slingshot":{"source":"iana"},"application/vnd.mfer":{"source":"iana","extensions":["mwf"]},"application/vnd.mfmp":{"source":"iana","extensions":["mfm"]},"application/vnd.micro+json":{"source":"iana","compressible":true},"application/vnd.micrografx.flo":{"source":"iana","extensions":["flo"]},"application/vnd.micrografx.igx":{"source":"iana","extensions":["igx"]},"application/vnd.microsoft.portable-executable":{"source":"iana"},"application/vnd.microsoft.windows.thumbnail-cache":{"source":"iana"},"application/vnd.miele+json":{"source":"iana","compressible":true},"application/vnd.mif":{"source":"iana","extensions":["mif"]},"application/vnd.minisoft-hp3000-save":{"source":"iana"},"application/vnd.mitsubishi.misty-guard.trustweb":{"source":"iana"},"application/vnd.mobius.daf":{"source":"iana","extensions":["daf"]},"application/vnd.mobius.dis":{"source":"iana","extensions":["dis"]},"application/vnd.mobius.mbk":{"source":"iana","extensions":["mbk"]},"application/vnd.mobius.mqy":{"source":"iana","extensions":["mqy"]},"application/vnd.mobius.msl":{"source":"iana","extensions":["msl"]},"application/vnd.mobius.plc":{"source":"iana","extensions":["plc"]},"application/vnd.mobius.txf":{"source":"iana","extensions":["txf"]},"application/vnd.mophun.application":{"source":"iana","extensions":["mpn"]},"application/vnd.mophun.certificate":{"source":"iana","extensions":["mpc"]},"application/vnd.motorola.flexsuite":{"source":"iana"},"application/vnd.motorola.flexsuite.adsi":{"source":"iana"},"application/vnd.motorola.flexsuite.fis":{"source":"iana"},"application/vnd.motorola.flexsuite.gotap":{"source":"iana"},"application/vnd.motorola.flexsuite.kmr":{"source":"iana"},"application/vnd.motorola.flexsuite.ttc":{"source":"iana"},"application/vnd.motorola.flexsuite.wem":{"source":"iana"},"application/vnd.motorola.iprm":{"source":"iana"},"application/vnd.mozilla.xul+xml":{"source":"iana","compressible":true,"extensions":["xul"]},"application/vnd.ms-3mfdocument":{"source":"iana"},"application/vnd.ms-artgalry":{"source":"iana","extensions":["cil"]},"application/vnd.ms-asf":{"source":"iana"},"application/vnd.ms-cab-compressed":{"source":"iana","extensions":["cab"]},"application/vnd.ms-color.iccprofile":{"source":"apache"},"application/vnd.ms-excel":{"source":"iana","compressible":false,"extensions":["xls","xlm","xla","xlc","xlt","xlw"]},"application/vnd.ms-excel.addin.macroenabled.12":{"source":"iana","extensions":["xlam"]},"application/vnd.ms-excel.sheet.binary.macroenabled.12":{"source":"iana","extensions":["xlsb"]},"application/vnd.ms-excel.sheet.macroenabled.12":{"source":"iana","extensions":["xlsm"]},"application/vnd.ms-excel.template.macroenabled.12":{"source":"iana","extensions":["xltm"]},"application/vnd.ms-fontobject":{"source":"iana","compressible":true,"extensions":["eot"]},"application/vnd.ms-htmlhelp":{"source":"iana","extensions":["chm"]},"application/vnd.ms-ims":{"source":"iana","extensions":["ims"]},"application/vnd.ms-lrm":{"source":"iana","extensions":["lrm"]},"application/vnd.ms-office.activex+xml":{"source":"iana","compressible":true},"application/vnd.ms-officetheme":{"source":"iana","extensions":["thmx"]},"application/vnd.ms-opentype":{"source":"apache","compressible":true},"application/vnd.ms-outlook":{"compressible":false,"extensions":["msg"]},"application/vnd.ms-package.obfuscated-opentype":{"source":"apache"},"application/vnd.ms-pki.seccat":{"source":"apache","extensions":["cat"]},"application/vnd.ms-pki.stl":{"source":"apache","extensions":["stl"]},"application/vnd.ms-playready.initiator+xml":{"source":"iana","compressible":true},"application/vnd.ms-powerpoint":{"source":"iana","compressible":false,"extensions":["ppt","pps","pot"]},"application/vnd.ms-powerpoint.addin.macroenabled.12":{"source":"iana","extensions":["ppam"]},"application/vnd.ms-powerpoint.presentation.macroenabled.12":{"source":"iana","extensions":["pptm"]},"application/vnd.ms-powerpoint.slide.macroenabled.12":{"source":"iana","extensions":["sldm"]},"application/vnd.ms-powerpoint.slideshow.macroenabled.12":{"source":"iana","extensions":["ppsm"]},"application/vnd.ms-powerpoint.template.macroenabled.12":{"source":"iana","extensions":["potm"]},"application/vnd.ms-printdevicecapabilities+xml":{"source":"iana","compressible":true},"application/vnd.ms-printing.printticket+xml":{"source":"apache","compressible":true},"application/vnd.ms-printschematicket+xml":{"source":"iana","compressible":true},"application/vnd.ms-project":{"source":"iana","extensions":["mpp","mpt"]},"application/vnd.ms-tnef":{"source":"iana"},"application/vnd.ms-windows.devicepairing":{"source":"iana"},"application/vnd.ms-windows.nwprinting.oob":{"source":"iana"},"application/vnd.ms-windows.printerpairing":{"source":"iana"},"application/vnd.ms-windows.wsd.oob":{"source":"iana"},"application/vnd.ms-wmdrm.lic-chlg-req":{"source":"iana"},"application/vnd.ms-wmdrm.lic-resp":{"source":"iana"},"application/vnd.ms-wmdrm.meter-chlg-req":{"source":"iana"},"application/vnd.ms-wmdrm.meter-resp":{"source":"iana"},"application/vnd.ms-word.document.macroenabled.12":{"source":"iana","extensions":["docm"]},"application/vnd.ms-word.template.macroenabled.12":{"source":"iana","extensions":["dotm"]},"application/vnd.ms-works":{"source":"iana","extensions":["wps","wks","wcm","wdb"]},"application/vnd.ms-wpl":{"source":"iana","extensions":["wpl"]},"application/vnd.ms-xpsdocument":{"source":"iana","compressible":false,"extensions":["xps"]},"application/vnd.msa-disk-image":{"source":"iana"},"application/vnd.mseq":{"source":"iana","extensions":["mseq"]},"application/vnd.msign":{"source":"iana"},"application/vnd.multiad.creator":{"source":"iana"},"application/vnd.multiad.creator.cif":{"source":"iana"},"application/vnd.music-niff":{"source":"iana"},"application/vnd.musician":{"source":"iana","extensions":["mus"]},"application/vnd.muvee.style":{"source":"iana","extensions":["msty"]},"application/vnd.mynfc":{"source":"iana","extensions":["taglet"]},"application/vnd.nacamar.ybrid+json":{"source":"iana","compressible":true},"application/vnd.ncd.control":{"source":"iana"},"application/vnd.ncd.reference":{"source":"iana"},"application/vnd.nearst.inv+json":{"source":"iana","compressible":true},"application/vnd.nebumind.line":{"source":"iana"},"application/vnd.nervana":{"source":"iana"},"application/vnd.netfpx":{"source":"iana"},"application/vnd.neurolanguage.nlu":{"source":"iana","extensions":["nlu"]},"application/vnd.nimn":{"source":"iana"},"application/vnd.nintendo.nitro.rom":{"source":"iana"},"application/vnd.nintendo.snes.rom":{"source":"iana"},"application/vnd.nitf":{"source":"iana","extensions":["ntf","nitf"]},"application/vnd.noblenet-directory":{"source":"iana","extensions":["nnd"]},"application/vnd.noblenet-sealer":{"source":"iana","extensions":["nns"]},"application/vnd.noblenet-web":{"source":"iana","extensions":["nnw"]},"application/vnd.nokia.catalogs":{"source":"iana"},"application/vnd.nokia.conml+wbxml":{"source":"iana"},"application/vnd.nokia.conml+xml":{"source":"iana","compressible":true},"application/vnd.nokia.iptv.config+xml":{"source":"iana","compressible":true},"application/vnd.nokia.isds-radio-presets":{"source":"iana"},"application/vnd.nokia.landmark+wbxml":{"source":"iana"},"application/vnd.nokia.landmark+xml":{"source":"iana","compressible":true},"application/vnd.nokia.landmarkcollection+xml":{"source":"iana","compressible":true},"application/vnd.nokia.n-gage.ac+xml":{"source":"iana","compressible":true,"extensions":["ac"]},"application/vnd.nokia.n-gage.data":{"source":"iana","extensions":["ngdat"]},"application/vnd.nokia.n-gage.symbian.install":{"source":"iana","extensions":["n-gage"]},"application/vnd.nokia.ncd":{"source":"iana"},"application/vnd.nokia.pcd+wbxml":{"source":"iana"},"application/vnd.nokia.pcd+xml":{"source":"iana","compressible":true},"application/vnd.nokia.radio-preset":{"source":"iana","extensions":["rpst"]},"application/vnd.nokia.radio-presets":{"source":"iana","extensions":["rpss"]},"application/vnd.novadigm.edm":{"source":"iana","extensions":["edm"]},"application/vnd.novadigm.edx":{"source":"iana","extensions":["edx"]},"application/vnd.novadigm.ext":{"source":"iana","extensions":["ext"]},"application/vnd.ntt-local.content-share":{"source":"iana"},"application/vnd.ntt-local.file-transfer":{"source":"iana"},"application/vnd.ntt-local.ogw_remote-access":{"source":"iana"},"application/vnd.ntt-local.sip-ta_remote":{"source":"iana"},"application/vnd.ntt-local.sip-ta_tcp_stream":{"source":"iana"},"application/vnd.oasis.opendocument.chart":{"source":"iana","extensions":["odc"]},"application/vnd.oasis.opendocument.chart-template":{"source":"iana","extensions":["otc"]},"application/vnd.oasis.opendocument.database":{"source":"iana","extensions":["odb"]},"application/vnd.oasis.opendocument.formula":{"source":"iana","extensions":["odf"]},"application/vnd.oasis.opendocument.formula-template":{"source":"iana","extensions":["odft"]},"application/vnd.oasis.opendocument.graphics":{"source":"iana","compressible":false,"extensions":["odg"]},"application/vnd.oasis.opendocument.graphics-template":{"source":"iana","extensions":["otg"]},"application/vnd.oasis.opendocument.image":{"source":"iana","extensions":["odi"]},"application/vnd.oasis.opendocument.image-template":{"source":"iana","extensions":["oti"]},"application/vnd.oasis.opendocument.presentation":{"source":"iana","compressible":false,"extensions":["odp"]},"application/vnd.oasis.opendocument.presentation-template":{"source":"iana","extensions":["otp"]},"application/vnd.oasis.opendocument.spreadsheet":{"source":"iana","compressible":false,"extensions":["ods"]},"application/vnd.oasis.opendocument.spreadsheet-template":{"source":"iana","extensions":["ots"]},"application/vnd.oasis.opendocument.text":{"source":"iana","compressible":false,"extensions":["odt"]},"application/vnd.oasis.opendocument.text-master":{"source":"iana","extensions":["odm"]},"application/vnd.oasis.opendocument.text-template":{"source":"iana","extensions":["ott"]},"application/vnd.oasis.opendocument.text-web":{"source":"iana","extensions":["oth"]},"application/vnd.obn":{"source":"iana"},"application/vnd.ocf+cbor":{"source":"iana"},"application/vnd.oci.image.manifest.v1+json":{"source":"iana","compressible":true},"application/vnd.oftn.l10n+json":{"source":"iana","compressible":true},"application/vnd.oipf.contentaccessdownload+xml":{"source":"iana","compressible":true},"application/vnd.oipf.contentaccessstreaming+xml":{"source":"iana","compressible":true},"application/vnd.oipf.cspg-hexbinary":{"source":"iana"},"application/vnd.oipf.dae.svg+xml":{"source":"iana","compressible":true},"application/vnd.oipf.dae.xhtml+xml":{"source":"iana","compressible":true},"application/vnd.oipf.mippvcontrolmessage+xml":{"source":"iana","compressible":true},"application/vnd.oipf.pae.gem":{"source":"iana"},"application/vnd.oipf.spdiscovery+xml":{"source":"iana","compressible":true},"application/vnd.oipf.spdlist+xml":{"source":"iana","compressible":true},"application/vnd.oipf.ueprofile+xml":{"source":"iana","compressible":true},"application/vnd.oipf.userprofile+xml":{"source":"iana","compressible":true},"application/vnd.olpc-sugar":{"source":"iana","extensions":["xo"]},"application/vnd.oma-scws-config":{"source":"iana"},"application/vnd.oma-scws-http-request":{"source":"iana"},"application/vnd.oma-scws-http-response":{"source":"iana"},"application/vnd.oma.bcast.associated-procedure-parameter+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.drm-trigger+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.imd+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.ltkm":{"source":"iana"},"application/vnd.oma.bcast.notification+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.provisioningtrigger":{"source":"iana"},"application/vnd.oma.bcast.sgboot":{"source":"iana"},"application/vnd.oma.bcast.sgdd+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.sgdu":{"source":"iana"},"application/vnd.oma.bcast.simple-symbol-container":{"source":"iana"},"application/vnd.oma.bcast.smartcard-trigger+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.sprov+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.stkm":{"source":"iana"},"application/vnd.oma.cab-address-book+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-feature-handler+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-pcc+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-subs-invite+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-user-prefs+xml":{"source":"iana","compressible":true},"application/vnd.oma.dcd":{"source":"iana"},"application/vnd.oma.dcdc":{"source":"iana"},"application/vnd.oma.dd2+xml":{"source":"iana","compressible":true,"extensions":["dd2"]},"application/vnd.oma.drm.risd+xml":{"source":"iana","compressible":true},"application/vnd.oma.group-usage-list+xml":{"source":"iana","compressible":true},"application/vnd.oma.lwm2m+cbor":{"source":"iana"},"application/vnd.oma.lwm2m+json":{"source":"iana","compressible":true},"application/vnd.oma.lwm2m+tlv":{"source":"iana"},"application/vnd.oma.pal+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.detailed-progress-report+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.final-report+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.groups+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.invocation-descriptor+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.optimized-progress-report+xml":{"source":"iana","compressible":true},"application/vnd.oma.push":{"source":"iana"},"application/vnd.oma.scidm.messages+xml":{"source":"iana","compressible":true},"application/vnd.oma.xcap-directory+xml":{"source":"iana","compressible":true},"application/vnd.omads-email+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.omads-file+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.omads-folder+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.omaloc-supl-init":{"source":"iana"},"application/vnd.onepager":{"source":"iana"},"application/vnd.onepagertamp":{"source":"iana"},"application/vnd.onepagertamx":{"source":"iana"},"application/vnd.onepagertat":{"source":"iana"},"application/vnd.onepagertatp":{"source":"iana"},"application/vnd.onepagertatx":{"source":"iana"},"application/vnd.openblox.game+xml":{"source":"iana","compressible":true,"extensions":["obgx"]},"application/vnd.openblox.game-binary":{"source":"iana"},"application/vnd.openeye.oeb":{"source":"iana"},"application/vnd.openofficeorg.extension":{"source":"apache","extensions":["oxt"]},"application/vnd.openstreetmap.data+xml":{"source":"iana","compressible":true,"extensions":["osm"]},"application/vnd.opentimestamps.ots":{"source":"iana"},"application/vnd.openxmlformats-officedocument.custom-properties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.customxmlproperties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawing+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.chart+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.extended-properties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.comments+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.presentation":{"source":"iana","compressible":false,"extensions":["pptx"]},"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slide":{"source":"iana","extensions":["sldx"]},"application/vnd.openxmlformats-officedocument.presentationml.slide+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slideshow":{"source":"iana","extensions":["ppsx"]},"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.tags+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.template":{"source":"iana","extensions":["potx"]},"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":{"source":"iana","compressible":false,"extensions":["xlsx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.template":{"source":"iana","extensions":["xltx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.theme+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.themeoverride+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.vmldrawing":{"source":"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.document":{"source":"iana","compressible":false,"extensions":["docx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.template":{"source":"iana","extensions":["dotx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-package.core-properties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-package.relationships+xml":{"source":"iana","compressible":true},"application/vnd.oracle.resource+json":{"source":"iana","compressible":true},"application/vnd.orange.indata":{"source":"iana"},"application/vnd.osa.netdeploy":{"source":"iana"},"application/vnd.osgeo.mapguide.package":{"source":"iana","extensions":["mgp"]},"application/vnd.osgi.bundle":{"source":"iana"},"application/vnd.osgi.dp":{"source":"iana","extensions":["dp"]},"application/vnd.osgi.subsystem":{"source":"iana","extensions":["esa"]},"application/vnd.otps.ct-kip+xml":{"source":"iana","compressible":true},"application/vnd.oxli.countgraph":{"source":"iana"},"application/vnd.pagerduty+json":{"source":"iana","compressible":true},"application/vnd.palm":{"source":"iana","extensions":["pdb","pqa","oprc"]},"application/vnd.panoply":{"source":"iana"},"application/vnd.paos.xml":{"source":"iana"},"application/vnd.patentdive":{"source":"iana"},"application/vnd.patientecommsdoc":{"source":"iana"},"application/vnd.pawaafile":{"source":"iana","extensions":["paw"]},"application/vnd.pcos":{"source":"iana"},"application/vnd.pg.format":{"source":"iana","extensions":["str"]},"application/vnd.pg.osasli":{"source":"iana","extensions":["ei6"]},"application/vnd.piaccess.application-licence":{"source":"iana"},"application/vnd.picsel":{"source":"iana","extensions":["efif"]},"application/vnd.pmi.widget":{"source":"iana","extensions":["wg"]},"application/vnd.poc.group-advertisement+xml":{"source":"iana","compressible":true},"application/vnd.pocketlearn":{"source":"iana","extensions":["plf"]},"application/vnd.powerbuilder6":{"source":"iana","extensions":["pbd"]},"application/vnd.powerbuilder6-s":{"source":"iana"},"application/vnd.powerbuilder7":{"source":"iana"},"application/vnd.powerbuilder7-s":{"source":"iana"},"application/vnd.powerbuilder75":{"source":"iana"},"application/vnd.powerbuilder75-s":{"source":"iana"},"application/vnd.preminet":{"source":"iana"},"application/vnd.previewsystems.box":{"source":"iana","extensions":["box"]},"application/vnd.proteus.magazine":{"source":"iana","extensions":["mgz"]},"application/vnd.psfs":{"source":"iana"},"application/vnd.publishare-delta-tree":{"source":"iana","extensions":["qps"]},"application/vnd.pvi.ptid1":{"source":"iana","extensions":["ptid"]},"application/vnd.pwg-multiplexed":{"source":"iana"},"application/vnd.pwg-xhtml-print+xml":{"source":"iana","compressible":true},"application/vnd.qualcomm.brew-app-res":{"source":"iana"},"application/vnd.quarantainenet":{"source":"iana"},"application/vnd.quark.quarkxpress":{"source":"iana","extensions":["qxd","qxt","qwd","qwt","qxl","qxb"]},"application/vnd.quobject-quoxdocument":{"source":"iana"},"application/vnd.radisys.moml+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-conf+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-conn+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-dialog+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-stream+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-conf+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-base+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-fax-detect+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-fax-sendrecv+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-group+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-speech+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-transform+xml":{"source":"iana","compressible":true},"application/vnd.rainstor.data":{"source":"iana"},"application/vnd.rapid":{"source":"iana"},"application/vnd.rar":{"source":"iana","extensions":["rar"]},"application/vnd.realvnc.bed":{"source":"iana","extensions":["bed"]},"application/vnd.recordare.musicxml":{"source":"iana","extensions":["mxl"]},"application/vnd.recordare.musicxml+xml":{"source":"iana","compressible":true,"extensions":["musicxml"]},"application/vnd.renlearn.rlprint":{"source":"iana"},"application/vnd.resilient.logic":{"source":"iana"},"application/vnd.restful+json":{"source":"iana","compressible":true},"application/vnd.rig.cryptonote":{"source":"iana","extensions":["cryptonote"]},"application/vnd.rim.cod":{"source":"apache","extensions":["cod"]},"application/vnd.rn-realmedia":{"source":"apache","extensions":["rm"]},"application/vnd.rn-realmedia-vbr":{"source":"apache","extensions":["rmvb"]},"application/vnd.route66.link66+xml":{"source":"iana","compressible":true,"extensions":["link66"]},"application/vnd.rs-274x":{"source":"iana"},"application/vnd.ruckus.download":{"source":"iana"},"application/vnd.s3sms":{"source":"iana"},"application/vnd.sailingtracker.track":{"source":"iana","extensions":["st"]},"application/vnd.sar":{"source":"iana"},"application/vnd.sbm.cid":{"source":"iana"},"application/vnd.sbm.mid2":{"source":"iana"},"application/vnd.scribus":{"source":"iana"},"application/vnd.sealed.3df":{"source":"iana"},"application/vnd.sealed.csf":{"source":"iana"},"application/vnd.sealed.doc":{"source":"iana"},"application/vnd.sealed.eml":{"source":"iana"},"application/vnd.sealed.mht":{"source":"iana"},"application/vnd.sealed.net":{"source":"iana"},"application/vnd.sealed.ppt":{"source":"iana"},"application/vnd.sealed.tiff":{"source":"iana"},"application/vnd.sealed.xls":{"source":"iana"},"application/vnd.sealedmedia.softseal.html":{"source":"iana"},"application/vnd.sealedmedia.softseal.pdf":{"source":"iana"},"application/vnd.seemail":{"source":"iana","extensions":["see"]},"application/vnd.seis+json":{"source":"iana","compressible":true},"application/vnd.sema":{"source":"iana","extensions":["sema"]},"application/vnd.semd":{"source":"iana","extensions":["semd"]},"application/vnd.semf":{"source":"iana","extensions":["semf"]},"application/vnd.shade-save-file":{"source":"iana"},"application/vnd.shana.informed.formdata":{"source":"iana","extensions":["ifm"]},"application/vnd.shana.informed.formtemplate":{"source":"iana","extensions":["itp"]},"application/vnd.shana.informed.interchange":{"source":"iana","extensions":["iif"]},"application/vnd.shana.informed.package":{"source":"iana","extensions":["ipk"]},"application/vnd.shootproof+json":{"source":"iana","compressible":true},"application/vnd.shopkick+json":{"source":"iana","compressible":true},"application/vnd.shp":{"source":"iana"},"application/vnd.shx":{"source":"iana"},"application/vnd.sigrok.session":{"source":"iana"},"application/vnd.simtech-mindmapper":{"source":"iana","extensions":["twd","twds"]},"application/vnd.siren+json":{"source":"iana","compressible":true},"application/vnd.smaf":{"source":"iana","extensions":["mmf"]},"application/vnd.smart.notebook":{"source":"iana"},"application/vnd.smart.teacher":{"source":"iana","extensions":["teacher"]},"application/vnd.snesdev-page-table":{"source":"iana"},"application/vnd.software602.filler.form+xml":{"source":"iana","compressible":true,"extensions":["fo"]},"application/vnd.software602.filler.form-xml-zip":{"source":"iana"},"application/vnd.solent.sdkm+xml":{"source":"iana","compressible":true,"extensions":["sdkm","sdkd"]},"application/vnd.spotfire.dxp":{"source":"iana","extensions":["dxp"]},"application/vnd.spotfire.sfs":{"source":"iana","extensions":["sfs"]},"application/vnd.sqlite3":{"source":"iana"},"application/vnd.sss-cod":{"source":"iana"},"application/vnd.sss-dtf":{"source":"iana"},"application/vnd.sss-ntf":{"source":"iana"},"application/vnd.stardivision.calc":{"source":"apache","extensions":["sdc"]},"application/vnd.stardivision.draw":{"source":"apache","extensions":["sda"]},"application/vnd.stardivision.impress":{"source":"apache","extensions":["sdd"]},"application/vnd.stardivision.math":{"source":"apache","extensions":["smf"]},"application/vnd.stardivision.writer":{"source":"apache","extensions":["sdw","vor"]},"application/vnd.stardivision.writer-global":{"source":"apache","extensions":["sgl"]},"application/vnd.stepmania.package":{"source":"iana","extensions":["smzip"]},"application/vnd.stepmania.stepchart":{"source":"iana","extensions":["sm"]},"application/vnd.street-stream":{"source":"iana"},"application/vnd.sun.wadl+xml":{"source":"iana","compressible":true,"extensions":["wadl"]},"application/vnd.sun.xml.calc":{"source":"apache","extensions":["sxc"]},"application/vnd.sun.xml.calc.template":{"source":"apache","extensions":["stc"]},"application/vnd.sun.xml.draw":{"source":"apache","extensions":["sxd"]},"application/vnd.sun.xml.draw.template":{"source":"apache","extensions":["std"]},"application/vnd.sun.xml.impress":{"source":"apache","extensions":["sxi"]},"application/vnd.sun.xml.impress.template":{"source":"apache","extensions":["sti"]},"application/vnd.sun.xml.math":{"source":"apache","extensions":["sxm"]},"application/vnd.sun.xml.writer":{"source":"apache","extensions":["sxw"]},"application/vnd.sun.xml.writer.global":{"source":"apache","extensions":["sxg"]},"application/vnd.sun.xml.writer.template":{"source":"apache","extensions":["stw"]},"application/vnd.sus-calendar":{"source":"iana","extensions":["sus","susp"]},"application/vnd.svd":{"source":"iana","extensions":["svd"]},"application/vnd.swiftview-ics":{"source":"iana"},"application/vnd.sycle+xml":{"source":"iana","compressible":true},"application/vnd.syft+json":{"source":"iana","compressible":true},"application/vnd.symbian.install":{"source":"apache","extensions":["sis","sisx"]},"application/vnd.syncml+xml":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["xsm"]},"application/vnd.syncml.dm+wbxml":{"source":"iana","charset":"UTF-8","extensions":["bdm"]},"application/vnd.syncml.dm+xml":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["xdm"]},"application/vnd.syncml.dm.notification":{"source":"iana"},"application/vnd.syncml.dmddf+wbxml":{"source":"iana"},"application/vnd.syncml.dmddf+xml":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["ddf"]},"application/vnd.syncml.dmtnds+wbxml":{"source":"iana"},"application/vnd.syncml.dmtnds+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.syncml.ds.notification":{"source":"iana"},"application/vnd.tableschema+json":{"source":"iana","compressible":true},"application/vnd.tao.intent-module-archive":{"source":"iana","extensions":["tao"]},"application/vnd.tcpdump.pcap":{"source":"iana","extensions":["pcap","cap","dmp"]},"application/vnd.think-cell.ppttc+json":{"source":"iana","compressible":true},"application/vnd.tmd.mediaflex.api+xml":{"source":"iana","compressible":true},"application/vnd.tml":{"source":"iana"},"application/vnd.tmobile-livetv":{"source":"iana","extensions":["tmo"]},"application/vnd.tri.onesource":{"source":"iana"},"application/vnd.trid.tpt":{"source":"iana","extensions":["tpt"]},"application/vnd.triscape.mxs":{"source":"iana","extensions":["mxs"]},"application/vnd.trueapp":{"source":"iana","extensions":["tra"]},"application/vnd.truedoc":{"source":"iana"},"application/vnd.ubisoft.webplayer":{"source":"iana"},"application/vnd.ufdl":{"source":"iana","extensions":["ufd","ufdl"]},"application/vnd.uiq.theme":{"source":"iana","extensions":["utz"]},"application/vnd.umajin":{"source":"iana","extensions":["umj"]},"application/vnd.unity":{"source":"iana","extensions":["unityweb"]},"application/vnd.uoml+xml":{"source":"iana","compressible":true,"extensions":["uoml"]},"application/vnd.uplanet.alert":{"source":"iana"},"application/vnd.uplanet.alert-wbxml":{"source":"iana"},"application/vnd.uplanet.bearer-choice":{"source":"iana"},"application/vnd.uplanet.bearer-choice-wbxml":{"source":"iana"},"application/vnd.uplanet.cacheop":{"source":"iana"},"application/vnd.uplanet.cacheop-wbxml":{"source":"iana"},"application/vnd.uplanet.channel":{"source":"iana"},"application/vnd.uplanet.channel-wbxml":{"source":"iana"},"application/vnd.uplanet.list":{"source":"iana"},"application/vnd.uplanet.list-wbxml":{"source":"iana"},"application/vnd.uplanet.listcmd":{"source":"iana"},"application/vnd.uplanet.listcmd-wbxml":{"source":"iana"},"application/vnd.uplanet.signal":{"source":"iana"},"application/vnd.uri-map":{"source":"iana"},"application/vnd.valve.source.material":{"source":"iana"},"application/vnd.vcx":{"source":"iana","extensions":["vcx"]},"application/vnd.vd-study":{"source":"iana"},"application/vnd.vectorworks":{"source":"iana"},"application/vnd.vel+json":{"source":"iana","compressible":true},"application/vnd.verimatrix.vcas":{"source":"iana"},"application/vnd.veritone.aion+json":{"source":"iana","compressible":true},"application/vnd.veryant.thin":{"source":"iana"},"application/vnd.ves.encrypted":{"source":"iana"},"application/vnd.vidsoft.vidconference":{"source":"iana"},"application/vnd.visio":{"source":"iana","extensions":["vsd","vst","vss","vsw"]},"application/vnd.visionary":{"source":"iana","extensions":["vis"]},"application/vnd.vividence.scriptfile":{"source":"iana"},"application/vnd.vsf":{"source":"iana","extensions":["vsf"]},"application/vnd.wap.sic":{"source":"iana"},"application/vnd.wap.slc":{"source":"iana"},"application/vnd.wap.wbxml":{"source":"iana","charset":"UTF-8","extensions":["wbxml"]},"application/vnd.wap.wmlc":{"source":"iana","extensions":["wmlc"]},"application/vnd.wap.wmlscriptc":{"source":"iana","extensions":["wmlsc"]},"application/vnd.webturbo":{"source":"iana","extensions":["wtb"]},"application/vnd.wfa.dpp":{"source":"iana"},"application/vnd.wfa.p2p":{"source":"iana"},"application/vnd.wfa.wsc":{"source":"iana"},"application/vnd.windows.devicepairing":{"source":"iana"},"application/vnd.wmc":{"source":"iana"},"application/vnd.wmf.bootstrap":{"source":"iana"},"application/vnd.wolfram.mathematica":{"source":"iana"},"application/vnd.wolfram.mathematica.package":{"source":"iana"},"application/vnd.wolfram.player":{"source":"iana","extensions":["nbp"]},"application/vnd.wordperfect":{"source":"iana","extensions":["wpd"]},"application/vnd.wqd":{"source":"iana","extensions":["wqd"]},"application/vnd.wrq-hp3000-labelled":{"source":"iana"},"application/vnd.wt.stf":{"source":"iana","extensions":["stf"]},"application/vnd.wv.csp+wbxml":{"source":"iana"},"application/vnd.wv.csp+xml":{"source":"iana","compressible":true},"application/vnd.wv.ssp+xml":{"source":"iana","compressible":true},"application/vnd.xacml+json":{"source":"iana","compressible":true},"application/vnd.xara":{"source":"iana","extensions":["xar"]},"application/vnd.xfdl":{"source":"iana","extensions":["xfdl"]},"application/vnd.xfdl.webform":{"source":"iana"},"application/vnd.xmi+xml":{"source":"iana","compressible":true},"application/vnd.xmpie.cpkg":{"source":"iana"},"application/vnd.xmpie.dpkg":{"source":"iana"},"application/vnd.xmpie.plan":{"source":"iana"},"application/vnd.xmpie.ppkg":{"source":"iana"},"application/vnd.xmpie.xlim":{"source":"iana"},"application/vnd.yamaha.hv-dic":{"source":"iana","extensions":["hvd"]},"application/vnd.yamaha.hv-script":{"source":"iana","extensions":["hvs"]},"application/vnd.yamaha.hv-voice":{"source":"iana","extensions":["hvp"]},"application/vnd.yamaha.openscoreformat":{"source":"iana","extensions":["osf"]},"application/vnd.yamaha.openscoreformat.osfpvg+xml":{"source":"iana","compressible":true,"extensions":["osfpvg"]},"application/vnd.yamaha.remote-setup":{"source":"iana"},"application/vnd.yamaha.smaf-audio":{"source":"iana","extensions":["saf"]},"application/vnd.yamaha.smaf-phrase":{"source":"iana","extensions":["spf"]},"application/vnd.yamaha.through-ngn":{"source":"iana"},"application/vnd.yamaha.tunnel-udpencap":{"source":"iana"},"application/vnd.yaoweme":{"source":"iana"},"application/vnd.yellowriver-custom-menu":{"source":"iana","extensions":["cmp"]},"application/vnd.youtube.yt":{"source":"iana"},"application/vnd.zul":{"source":"iana","extensions":["zir","zirz"]},"application/vnd.zzazz.deck+xml":{"source":"iana","compressible":true,"extensions":["zaz"]},"application/voicexml+xml":{"source":"iana","compressible":true,"extensions":["vxml"]},"application/voucher-cms+json":{"source":"iana","compressible":true},"application/vq-rtcpxr":{"source":"iana"},"application/wasm":{"source":"iana","compressible":true,"extensions":["wasm"]},"application/watcherinfo+xml":{"source":"iana","compressible":true,"extensions":["wif"]},"application/webpush-options+json":{"source":"iana","compressible":true},"application/whoispp-query":{"source":"iana"},"application/whoispp-response":{"source":"iana"},"application/widget":{"source":"iana","extensions":["wgt"]},"application/winhlp":{"source":"apache","extensions":["hlp"]},"application/wita":{"source":"iana"},"application/wordperfect5.1":{"source":"iana"},"application/wsdl+xml":{"source":"iana","compressible":true,"extensions":["wsdl"]},"application/wspolicy+xml":{"source":"iana","compressible":true,"extensions":["wspolicy"]},"application/x-7z-compressed":{"source":"apache","compressible":false,"extensions":["7z"]},"application/x-abiword":{"source":"apache","extensions":["abw"]},"application/x-ace-compressed":{"source":"apache","extensions":["ace"]},"application/x-amf":{"source":"apache"},"application/x-apple-diskimage":{"source":"apache","extensions":["dmg"]},"application/x-arj":{"compressible":false,"extensions":["arj"]},"application/x-authorware-bin":{"source":"apache","extensions":["aab","x32","u32","vox"]},"application/x-authorware-map":{"source":"apache","extensions":["aam"]},"application/x-authorware-seg":{"source":"apache","extensions":["aas"]},"application/x-bcpio":{"source":"apache","extensions":["bcpio"]},"application/x-bdoc":{"compressible":false,"extensions":["bdoc"]},"application/x-bittorrent":{"source":"apache","extensions":["torrent"]},"application/x-blorb":{"source":"apache","extensions":["blb","blorb"]},"application/x-bzip":{"source":"apache","compressible":false,"extensions":["bz"]},"application/x-bzip2":{"source":"apache","compressible":false,"extensions":["bz2","boz"]},"application/x-cbr":{"source":"apache","extensions":["cbr","cba","cbt","cbz","cb7"]},"application/x-cdlink":{"source":"apache","extensions":["vcd"]},"application/x-cfs-compressed":{"source":"apache","extensions":["cfs"]},"application/x-chat":{"source":"apache","extensions":["chat"]},"application/x-chess-pgn":{"source":"apache","extensions":["pgn"]},"application/x-chrome-extension":{"extensions":["crx"]},"application/x-cocoa":{"source":"nginx","extensions":["cco"]},"application/x-compress":{"source":"apache"},"application/x-conference":{"source":"apache","extensions":["nsc"]},"application/x-cpio":{"source":"apache","extensions":["cpio"]},"application/x-csh":{"source":"apache","extensions":["csh"]},"application/x-deb":{"compressible":false},"application/x-debian-package":{"source":"apache","extensions":["deb","udeb"]},"application/x-dgc-compressed":{"source":"apache","extensions":["dgc"]},"application/x-director":{"source":"apache","extensions":["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"]},"application/x-doom":{"source":"apache","extensions":["wad"]},"application/x-dtbncx+xml":{"source":"apache","compressible":true,"extensions":["ncx"]},"application/x-dtbook+xml":{"source":"apache","compressible":true,"extensions":["dtb"]},"application/x-dtbresource+xml":{"source":"apache","compressible":true,"extensions":["res"]},"application/x-dvi":{"source":"apache","compressible":false,"extensions":["dvi"]},"application/x-envoy":{"source":"apache","extensions":["evy"]},"application/x-eva":{"source":"apache","extensions":["eva"]},"application/x-font-bdf":{"source":"apache","extensions":["bdf"]},"application/x-font-dos":{"source":"apache"},"application/x-font-framemaker":{"source":"apache"},"application/x-font-ghostscript":{"source":"apache","extensions":["gsf"]},"application/x-font-libgrx":{"source":"apache"},"application/x-font-linux-psf":{"source":"apache","extensions":["psf"]},"application/x-font-pcf":{"source":"apache","extensions":["pcf"]},"application/x-font-snf":{"source":"apache","extensions":["snf"]},"application/x-font-speedo":{"source":"apache"},"application/x-font-sunos-news":{"source":"apache"},"application/x-font-type1":{"source":"apache","extensions":["pfa","pfb","pfm","afm"]},"application/x-font-vfont":{"source":"apache"},"application/x-freearc":{"source":"apache","extensions":["arc"]},"application/x-futuresplash":{"source":"apache","extensions":["spl"]},"application/x-gca-compressed":{"source":"apache","extensions":["gca"]},"application/x-glulx":{"source":"apache","extensions":["ulx"]},"application/x-gnumeric":{"source":"apache","extensions":["gnumeric"]},"application/x-gramps-xml":{"source":"apache","extensions":["gramps"]},"application/x-gtar":{"source":"apache","extensions":["gtar"]},"application/x-gzip":{"source":"apache"},"application/x-hdf":{"source":"apache","extensions":["hdf"]},"application/x-httpd-php":{"compressible":true,"extensions":["php"]},"application/x-install-instructions":{"source":"apache","extensions":["install"]},"application/x-iso9660-image":{"source":"apache","extensions":["iso"]},"application/x-iwork-keynote-sffkey":{"extensions":["key"]},"application/x-iwork-numbers-sffnumbers":{"extensions":["numbers"]},"application/x-iwork-pages-sffpages":{"extensions":["pages"]},"application/x-java-archive-diff":{"source":"nginx","extensions":["jardiff"]},"application/x-java-jnlp-file":{"source":"apache","compressible":false,"extensions":["jnlp"]},"application/x-javascript":{"compressible":true},"application/x-keepass2":{"extensions":["kdbx"]},"application/x-latex":{"source":"apache","compressible":false,"extensions":["latex"]},"application/x-lua-bytecode":{"extensions":["luac"]},"application/x-lzh-compressed":{"source":"apache","extensions":["lzh","lha"]},"application/x-makeself":{"source":"nginx","extensions":["run"]},"application/x-mie":{"source":"apache","extensions":["mie"]},"application/x-mobipocket-ebook":{"source":"apache","extensions":["prc","mobi"]},"application/x-mpegurl":{"compressible":false},"application/x-ms-application":{"source":"apache","extensions":["application"]},"application/x-ms-shortcut":{"source":"apache","extensions":["lnk"]},"application/x-ms-wmd":{"source":"apache","extensions":["wmd"]},"application/x-ms-wmz":{"source":"apache","extensions":["wmz"]},"application/x-ms-xbap":{"source":"apache","extensions":["xbap"]},"application/x-msaccess":{"source":"apache","extensions":["mdb"]},"application/x-msbinder":{"source":"apache","extensions":["obd"]},"application/x-mscardfile":{"source":"apache","extensions":["crd"]},"application/x-msclip":{"source":"apache","extensions":["clp"]},"application/x-msdos-program":{"extensions":["exe"]},"application/x-msdownload":{"source":"apache","extensions":["exe","dll","com","bat","msi"]},"application/x-msmediaview":{"source":"apache","extensions":["mvb","m13","m14"]},"application/x-msmetafile":{"source":"apache","extensions":["wmf","wmz","emf","emz"]},"application/x-msmoney":{"source":"apache","extensions":["mny"]},"application/x-mspublisher":{"source":"apache","extensions":["pub"]},"application/x-msschedule":{"source":"apache","extensions":["scd"]},"application/x-msterminal":{"source":"apache","extensions":["trm"]},"application/x-mswrite":{"source":"apache","extensions":["wri"]},"application/x-netcdf":{"source":"apache","extensions":["nc","cdf"]},"application/x-ns-proxy-autoconfig":{"compressible":true,"extensions":["pac"]},"application/x-nzb":{"source":"apache","extensions":["nzb"]},"application/x-perl":{"source":"nginx","extensions":["pl","pm"]},"application/x-pilot":{"source":"nginx","extensions":["prc","pdb"]},"application/x-pkcs12":{"source":"apache","compressible":false,"extensions":["p12","pfx"]},"application/x-pkcs7-certificates":{"source":"apache","extensions":["p7b","spc"]},"application/x-pkcs7-certreqresp":{"source":"apache","extensions":["p7r"]},"application/x-pki-message":{"source":"iana"},"application/x-rar-compressed":{"source":"apache","compressible":false,"extensions":["rar"]},"application/x-redhat-package-manager":{"source":"nginx","extensions":["rpm"]},"application/x-research-info-systems":{"source":"apache","extensions":["ris"]},"application/x-sea":{"source":"nginx","extensions":["sea"]},"application/x-sh":{"source":"apache","compressible":true,"extensions":["sh"]},"application/x-shar":{"source":"apache","extensions":["shar"]},"application/x-shockwave-flash":{"source":"apache","compressible":false,"extensions":["swf"]},"application/x-silverlight-app":{"source":"apache","extensions":["xap"]},"application/x-sql":{"source":"apache","extensions":["sql"]},"application/x-stuffit":{"source":"apache","compressible":false,"extensions":["sit"]},"application/x-stuffitx":{"source":"apache","extensions":["sitx"]},"application/x-subrip":{"source":"apache","extensions":["srt"]},"application/x-sv4cpio":{"source":"apache","extensions":["sv4cpio"]},"application/x-sv4crc":{"source":"apache","extensions":["sv4crc"]},"application/x-t3vm-image":{"source":"apache","extensions":["t3"]},"application/x-tads":{"source":"apache","extensions":["gam"]},"application/x-tar":{"source":"apache","compressible":true,"extensions":["tar"]},"application/x-tcl":{"source":"apache","extensions":["tcl","tk"]},"application/x-tex":{"source":"apache","extensions":["tex"]},"application/x-tex-tfm":{"source":"apache","extensions":["tfm"]},"application/x-texinfo":{"source":"apache","extensions":["texinfo","texi"]},"application/x-tgif":{"source":"apache","extensions":["obj"]},"application/x-ustar":{"source":"apache","extensions":["ustar"]},"application/x-virtualbox-hdd":{"compressible":true,"extensions":["hdd"]},"application/x-virtualbox-ova":{"compressible":true,"extensions":["ova"]},"application/x-virtualbox-ovf":{"compressible":true,"extensions":["ovf"]},"application/x-virtualbox-vbox":{"compressible":true,"extensions":["vbox"]},"application/x-virtualbox-vbox-extpack":{"compressible":false,"extensions":["vbox-extpack"]},"application/x-virtualbox-vdi":{"compressible":true,"extensions":["vdi"]},"application/x-virtualbox-vhd":{"compressible":true,"extensions":["vhd"]},"application/x-virtualbox-vmdk":{"compressible":true,"extensions":["vmdk"]},"application/x-wais-source":{"source":"apache","extensions":["src"]},"application/x-web-app-manifest+json":{"compressible":true,"extensions":["webapp"]},"application/x-www-form-urlencoded":{"source":"iana","compressible":true},"application/x-x509-ca-cert":{"source":"iana","extensions":["der","crt","pem"]},"application/x-x509-ca-ra-cert":{"source":"iana"},"application/x-x509-next-ca-cert":{"source":"iana"},"application/x-xfig":{"source":"apache","extensions":["fig"]},"application/x-xliff+xml":{"source":"apache","compressible":true,"extensions":["xlf"]},"application/x-xpinstall":{"source":"apache","compressible":false,"extensions":["xpi"]},"application/x-xz":{"source":"apache","extensions":["xz"]},"application/x-zmachine":{"source":"apache","extensions":["z1","z2","z3","z4","z5","z6","z7","z8"]},"application/x400-bp":{"source":"iana"},"application/xacml+xml":{"source":"iana","compressible":true},"application/xaml+xml":{"source":"apache","compressible":true,"extensions":["xaml"]},"application/xcap-att+xml":{"source":"iana","compressible":true,"extensions":["xav"]},"application/xcap-caps+xml":{"source":"iana","compressible":true,"extensions":["xca"]},"application/xcap-diff+xml":{"source":"iana","compressible":true,"extensions":["xdf"]},"application/xcap-el+xml":{"source":"iana","compressible":true,"extensions":["xel"]},"application/xcap-error+xml":{"source":"iana","compressible":true},"application/xcap-ns+xml":{"source":"iana","compressible":true,"extensions":["xns"]},"application/xcon-conference-info+xml":{"source":"iana","compressible":true},"application/xcon-conference-info-diff+xml":{"source":"iana","compressible":true},"application/xenc+xml":{"source":"iana","compressible":true,"extensions":["xenc"]},"application/xhtml+xml":{"source":"iana","compressible":true,"extensions":["xhtml","xht"]},"application/xhtml-voice+xml":{"source":"apache","compressible":true},"application/xliff+xml":{"source":"iana","compressible":true,"extensions":["xlf"]},"application/xml":{"source":"iana","compressible":true,"extensions":["xml","xsl","xsd","rng"]},"application/xml-dtd":{"source":"iana","compressible":true,"extensions":["dtd"]},"application/xml-external-parsed-entity":{"source":"iana"},"application/xml-patch+xml":{"source":"iana","compressible":true},"application/xmpp+xml":{"source":"iana","compressible":true},"application/xop+xml":{"source":"iana","compressible":true,"extensions":["xop"]},"application/xproc+xml":{"source":"apache","compressible":true,"extensions":["xpl"]},"application/xslt+xml":{"source":"iana","compressible":true,"extensions":["xsl","xslt"]},"application/xspf+xml":{"source":"apache","compressible":true,"extensions":["xspf"]},"application/xv+xml":{"source":"iana","compressible":true,"extensions":["mxml","xhvml","xvml","xvm"]},"application/yang":{"source":"iana","extensions":["yang"]},"application/yang-data+json":{"source":"iana","compressible":true},"application/yang-data+xml":{"source":"iana","compressible":true},"application/yang-patch+json":{"source":"iana","compressible":true},"application/yang-patch+xml":{"source":"iana","compressible":true},"application/yin+xml":{"source":"iana","compressible":true,"extensions":["yin"]},"application/zip":{"source":"iana","compressible":false,"extensions":["zip"]},"application/zlib":{"source":"iana"},"application/zstd":{"source":"iana"},"audio/1d-interleaved-parityfec":{"source":"iana"},"audio/32kadpcm":{"source":"iana"},"audio/3gpp":{"source":"iana","compressible":false,"extensions":["3gpp"]},"audio/3gpp2":{"source":"iana"},"audio/aac":{"source":"iana"},"audio/ac3":{"source":"iana"},"audio/adpcm":{"source":"apache","extensions":["adp"]},"audio/amr":{"source":"iana","extensions":["amr"]},"audio/amr-wb":{"source":"iana"},"audio/amr-wb+":{"source":"iana"},"audio/aptx":{"source":"iana"},"audio/asc":{"source":"iana"},"audio/atrac-advanced-lossless":{"source":"iana"},"audio/atrac-x":{"source":"iana"},"audio/atrac3":{"source":"iana"},"audio/basic":{"source":"iana","compressible":false,"extensions":["au","snd"]},"audio/bv16":{"source":"iana"},"audio/bv32":{"source":"iana"},"audio/clearmode":{"source":"iana"},"audio/cn":{"source":"iana"},"audio/dat12":{"source":"iana"},"audio/dls":{"source":"iana"},"audio/dsr-es201108":{"source":"iana"},"audio/dsr-es202050":{"source":"iana"},"audio/dsr-es202211":{"source":"iana"},"audio/dsr-es202212":{"source":"iana"},"audio/dv":{"source":"iana"},"audio/dvi4":{"source":"iana"},"audio/eac3":{"source":"iana"},"audio/encaprtp":{"source":"iana"},"audio/evrc":{"source":"iana"},"audio/evrc-qcp":{"source":"iana"},"audio/evrc0":{"source":"iana"},"audio/evrc1":{"source":"iana"},"audio/evrcb":{"source":"iana"},"audio/evrcb0":{"source":"iana"},"audio/evrcb1":{"source":"iana"},"audio/evrcnw":{"source":"iana"},"audio/evrcnw0":{"source":"iana"},"audio/evrcnw1":{"source":"iana"},"audio/evrcwb":{"source":"iana"},"audio/evrcwb0":{"source":"iana"},"audio/evrcwb1":{"source":"iana"},"audio/evs":{"source":"iana"},"audio/flexfec":{"source":"iana"},"audio/fwdred":{"source":"iana"},"audio/g711-0":{"source":"iana"},"audio/g719":{"source":"iana"},"audio/g722":{"source":"iana"},"audio/g7221":{"source":"iana"},"audio/g723":{"source":"iana"},"audio/g726-16":{"source":"iana"},"audio/g726-24":{"source":"iana"},"audio/g726-32":{"source":"iana"},"audio/g726-40":{"source":"iana"},"audio/g728":{"source":"iana"},"audio/g729":{"source":"iana"},"audio/g7291":{"source":"iana"},"audio/g729d":{"source":"iana"},"audio/g729e":{"source":"iana"},"audio/gsm":{"source":"iana"},"audio/gsm-efr":{"source":"iana"},"audio/gsm-hr-08":{"source":"iana"},"audio/ilbc":{"source":"iana"},"audio/ip-mr_v2.5":{"source":"iana"},"audio/isac":{"source":"apache"},"audio/l16":{"source":"iana"},"audio/l20":{"source":"iana"},"audio/l24":{"source":"iana","compressible":false},"audio/l8":{"source":"iana"},"audio/lpc":{"source":"iana"},"audio/melp":{"source":"iana"},"audio/melp1200":{"source":"iana"},"audio/melp2400":{"source":"iana"},"audio/melp600":{"source":"iana"},"audio/mhas":{"source":"iana"},"audio/midi":{"source":"apache","extensions":["mid","midi","kar","rmi"]},"audio/mobile-xmf":{"source":"iana","extensions":["mxmf"]},"audio/mp3":{"compressible":false,"extensions":["mp3"]},"audio/mp4":{"source":"iana","compressible":false,"extensions":["m4a","mp4a"]},"audio/mp4a-latm":{"source":"iana"},"audio/mpa":{"source":"iana"},"audio/mpa-robust":{"source":"iana"},"audio/mpeg":{"source":"iana","compressible":false,"extensions":["mpga","mp2","mp2a","mp3","m2a","m3a"]},"audio/mpeg4-generic":{"source":"iana"},"audio/musepack":{"source":"apache"},"audio/ogg":{"source":"iana","compressible":false,"extensions":["oga","ogg","spx","opus"]},"audio/opus":{"source":"iana"},"audio/parityfec":{"source":"iana"},"audio/pcma":{"source":"iana"},"audio/pcma-wb":{"source":"iana"},"audio/pcmu":{"source":"iana"},"audio/pcmu-wb":{"source":"iana"},"audio/prs.sid":{"source":"iana"},"audio/qcelp":{"source":"iana"},"audio/raptorfec":{"source":"iana"},"audio/red":{"source":"iana"},"audio/rtp-enc-aescm128":{"source":"iana"},"audio/rtp-midi":{"source":"iana"},"audio/rtploopback":{"source":"iana"},"audio/rtx":{"source":"iana"},"audio/s3m":{"source":"apache","extensions":["s3m"]},"audio/scip":{"source":"iana"},"audio/silk":{"source":"apache","extensions":["sil"]},"audio/smv":{"source":"iana"},"audio/smv-qcp":{"source":"iana"},"audio/smv0":{"source":"iana"},"audio/sofa":{"source":"iana"},"audio/sp-midi":{"source":"iana"},"audio/speex":{"source":"iana"},"audio/t140c":{"source":"iana"},"audio/t38":{"source":"iana"},"audio/telephone-event":{"source":"iana"},"audio/tetra_acelp":{"source":"iana"},"audio/tetra_acelp_bb":{"source":"iana"},"audio/tone":{"source":"iana"},"audio/tsvcis":{"source":"iana"},"audio/uemclip":{"source":"iana"},"audio/ulpfec":{"source":"iana"},"audio/usac":{"source":"iana"},"audio/vdvi":{"source":"iana"},"audio/vmr-wb":{"source":"iana"},"audio/vnd.3gpp.iufp":{"source":"iana"},"audio/vnd.4sb":{"source":"iana"},"audio/vnd.audiokoz":{"source":"iana"},"audio/vnd.celp":{"source":"iana"},"audio/vnd.cisco.nse":{"source":"iana"},"audio/vnd.cmles.radio-events":{"source":"iana"},"audio/vnd.cns.anp1":{"source":"iana"},"audio/vnd.cns.inf1":{"source":"iana"},"audio/vnd.dece.audio":{"source":"iana","extensions":["uva","uvva"]},"audio/vnd.digital-winds":{"source":"iana","extensions":["eol"]},"audio/vnd.dlna.adts":{"source":"iana"},"audio/vnd.dolby.heaac.1":{"source":"iana"},"audio/vnd.dolby.heaac.2":{"source":"iana"},"audio/vnd.dolby.mlp":{"source":"iana"},"audio/vnd.dolby.mps":{"source":"iana"},"audio/vnd.dolby.pl2":{"source":"iana"},"audio/vnd.dolby.pl2x":{"source":"iana"},"audio/vnd.dolby.pl2z":{"source":"iana"},"audio/vnd.dolby.pulse.1":{"source":"iana"},"audio/vnd.dra":{"source":"iana","extensions":["dra"]},"audio/vnd.dts":{"source":"iana","extensions":["dts"]},"audio/vnd.dts.hd":{"source":"iana","extensions":["dtshd"]},"audio/vnd.dts.uhd":{"source":"iana"},"audio/vnd.dvb.file":{"source":"iana"},"audio/vnd.everad.plj":{"source":"iana"},"audio/vnd.hns.audio":{"source":"iana"},"audio/vnd.lucent.voice":{"source":"iana","extensions":["lvp"]},"audio/vnd.ms-playready.media.pya":{"source":"iana","extensions":["pya"]},"audio/vnd.nokia.mobile-xmf":{"source":"iana"},"audio/vnd.nortel.vbk":{"source":"iana"},"audio/vnd.nuera.ecelp4800":{"source":"iana","extensions":["ecelp4800"]},"audio/vnd.nuera.ecelp7470":{"source":"iana","extensions":["ecelp7470"]},"audio/vnd.nuera.ecelp9600":{"source":"iana","extensions":["ecelp9600"]},"audio/vnd.octel.sbc":{"source":"iana"},"audio/vnd.presonus.multitrack":{"source":"iana"},"audio/vnd.qcelp":{"source":"iana"},"audio/vnd.rhetorex.32kadpcm":{"source":"iana"},"audio/vnd.rip":{"source":"iana","extensions":["rip"]},"audio/vnd.rn-realaudio":{"compressible":false},"audio/vnd.sealedmedia.softseal.mpeg":{"source":"iana"},"audio/vnd.vmx.cvsd":{"source":"iana"},"audio/vnd.wave":{"compressible":false},"audio/vorbis":{"source":"iana","compressible":false},"audio/vorbis-config":{"source":"iana"},"audio/wav":{"compressible":false,"extensions":["wav"]},"audio/wave":{"compressible":false,"extensions":["wav"]},"audio/webm":{"source":"apache","compressible":false,"extensions":["weba"]},"audio/x-aac":{"source":"apache","compressible":false,"extensions":["aac"]},"audio/x-aiff":{"source":"apache","extensions":["aif","aiff","aifc"]},"audio/x-caf":{"source":"apache","compressible":false,"extensions":["caf"]},"audio/x-flac":{"source":"apache","extensions":["flac"]},"audio/x-m4a":{"source":"nginx","extensions":["m4a"]},"audio/x-matroska":{"source":"apache","extensions":["mka"]},"audio/x-mpegurl":{"source":"apache","extensions":["m3u"]},"audio/x-ms-wax":{"source":"apache","extensions":["wax"]},"audio/x-ms-wma":{"source":"apache","extensions":["wma"]},"audio/x-pn-realaudio":{"source":"apache","extensions":["ram","ra"]},"audio/x-pn-realaudio-plugin":{"source":"apache","extensions":["rmp"]},"audio/x-realaudio":{"source":"nginx","extensions":["ra"]},"audio/x-tta":{"source":"apache"},"audio/x-wav":{"source":"apache","extensions":["wav"]},"audio/xm":{"source":"apache","extensions":["xm"]},"chemical/x-cdx":{"source":"apache","extensions":["cdx"]},"chemical/x-cif":{"source":"apache","extensions":["cif"]},"chemical/x-cmdf":{"source":"apache","extensions":["cmdf"]},"chemical/x-cml":{"source":"apache","extensions":["cml"]},"chemical/x-csml":{"source":"apache","extensions":["csml"]},"chemical/x-pdb":{"source":"apache"},"chemical/x-xyz":{"source":"apache","extensions":["xyz"]},"font/collection":{"source":"iana","extensions":["ttc"]},"font/otf":{"source":"iana","compressible":true,"extensions":["otf"]},"font/sfnt":{"source":"iana"},"font/ttf":{"source":"iana","compressible":true,"extensions":["ttf"]},"font/woff":{"source":"iana","extensions":["woff"]},"font/woff2":{"source":"iana","extensions":["woff2"]},"image/aces":{"source":"iana","extensions":["exr"]},"image/apng":{"compressible":false,"extensions":["apng"]},"image/avci":{"source":"iana","extensions":["avci"]},"image/avcs":{"source":"iana","extensions":["avcs"]},"image/avif":{"source":"iana","compressible":false,"extensions":["avif"]},"image/bmp":{"source":"iana","compressible":true,"extensions":["bmp"]},"image/cgm":{"source":"iana","extensions":["cgm"]},"image/dicom-rle":{"source":"iana","extensions":["drle"]},"image/emf":{"source":"iana","extensions":["emf"]},"image/fits":{"source":"iana","extensions":["fits"]},"image/g3fax":{"source":"iana","extensions":["g3"]},"image/gif":{"source":"iana","compressible":false,"extensions":["gif"]},"image/heic":{"source":"iana","extensions":["heic"]},"image/heic-sequence":{"source":"iana","extensions":["heics"]},"image/heif":{"source":"iana","extensions":["heif"]},"image/heif-sequence":{"source":"iana","extensions":["heifs"]},"image/hej2k":{"source":"iana","extensions":["hej2"]},"image/hsj2":{"source":"iana","extensions":["hsj2"]},"image/ief":{"source":"iana","extensions":["ief"]},"image/jls":{"source":"iana","extensions":["jls"]},"image/jp2":{"source":"iana","compressible":false,"extensions":["jp2","jpg2"]},"image/jpeg":{"source":"iana","compressible":false,"extensions":["jpeg","jpg","jpe"]},"image/jph":{"source":"iana","extensions":["jph"]},"image/jphc":{"source":"iana","extensions":["jhc"]},"image/jpm":{"source":"iana","compressible":false,"extensions":["jpm"]},"image/jpx":{"source":"iana","compressible":false,"extensions":["jpx","jpf"]},"image/jxr":{"source":"iana","extensions":["jxr"]},"image/jxra":{"source":"iana","extensions":["jxra"]},"image/jxrs":{"source":"iana","extensions":["jxrs"]},"image/jxs":{"source":"iana","extensions":["jxs"]},"image/jxsc":{"source":"iana","extensions":["jxsc"]},"image/jxsi":{"source":"iana","extensions":["jxsi"]},"image/jxss":{"source":"iana","extensions":["jxss"]},"image/ktx":{"source":"iana","extensions":["ktx"]},"image/ktx2":{"source":"iana","extensions":["ktx2"]},"image/naplps":{"source":"iana"},"image/pjpeg":{"compressible":false},"image/png":{"source":"iana","compressible":false,"extensions":["png"]},"image/prs.btif":{"source":"iana","extensions":["btif"]},"image/prs.pti":{"source":"iana","extensions":["pti"]},"image/pwg-raster":{"source":"iana"},"image/sgi":{"source":"apache","extensions":["sgi"]},"image/svg+xml":{"source":"iana","compressible":true,"extensions":["svg","svgz"]},"image/t38":{"source":"iana","extensions":["t38"]},"image/tiff":{"source":"iana","compressible":false,"extensions":["tif","tiff"]},"image/tiff-fx":{"source":"iana","extensions":["tfx"]},"image/vnd.adobe.photoshop":{"source":"iana","compressible":true,"extensions":["psd"]},"image/vnd.airzip.accelerator.azv":{"source":"iana","extensions":["azv"]},"image/vnd.cns.inf2":{"source":"iana"},"image/vnd.dece.graphic":{"source":"iana","extensions":["uvi","uvvi","uvg","uvvg"]},"image/vnd.djvu":{"source":"iana","extensions":["djvu","djv"]},"image/vnd.dvb.subtitle":{"source":"iana","extensions":["sub"]},"image/vnd.dwg":{"source":"iana","extensions":["dwg"]},"image/vnd.dxf":{"source":"iana","extensions":["dxf"]},"image/vnd.fastbidsheet":{"source":"iana","extensions":["fbs"]},"image/vnd.fpx":{"source":"iana","extensions":["fpx"]},"image/vnd.fst":{"source":"iana","extensions":["fst"]},"image/vnd.fujixerox.edmics-mmr":{"source":"iana","extensions":["mmr"]},"image/vnd.fujixerox.edmics-rlc":{"source":"iana","extensions":["rlc"]},"image/vnd.globalgraphics.pgb":{"source":"iana"},"image/vnd.microsoft.icon":{"source":"iana","compressible":true,"extensions":["ico"]},"image/vnd.mix":{"source":"iana"},"image/vnd.mozilla.apng":{"source":"iana"},"image/vnd.ms-dds":{"compressible":true,"extensions":["dds"]},"image/vnd.ms-modi":{"source":"iana","extensions":["mdi"]},"image/vnd.ms-photo":{"source":"apache","extensions":["wdp"]},"image/vnd.net-fpx":{"source":"iana","extensions":["npx"]},"image/vnd.pco.b16":{"source":"iana","extensions":["b16"]},"image/vnd.radiance":{"source":"iana"},"image/vnd.sealed.png":{"source":"iana"},"image/vnd.sealedmedia.softseal.gif":{"source":"iana"},"image/vnd.sealedmedia.softseal.jpg":{"source":"iana"},"image/vnd.svf":{"source":"iana"},"image/vnd.tencent.tap":{"source":"iana","extensions":["tap"]},"image/vnd.valve.source.texture":{"source":"iana","extensions":["vtf"]},"image/vnd.wap.wbmp":{"source":"iana","extensions":["wbmp"]},"image/vnd.xiff":{"source":"iana","extensions":["xif"]},"image/vnd.zbrush.pcx":{"source":"iana","extensions":["pcx"]},"image/webp":{"source":"apache","extensions":["webp"]},"image/wmf":{"source":"iana","extensions":["wmf"]},"image/x-3ds":{"source":"apache","extensions":["3ds"]},"image/x-cmu-raster":{"source":"apache","extensions":["ras"]},"image/x-cmx":{"source":"apache","extensions":["cmx"]},"image/x-freehand":{"source":"apache","extensions":["fh","fhc","fh4","fh5","fh7"]},"image/x-icon":{"source":"apache","compressible":true,"extensions":["ico"]},"image/x-jng":{"source":"nginx","extensions":["jng"]},"image/x-mrsid-image":{"source":"apache","extensions":["sid"]},"image/x-ms-bmp":{"source":"nginx","compressible":true,"extensions":["bmp"]},"image/x-pcx":{"source":"apache","extensions":["pcx"]},"image/x-pict":{"source":"apache","extensions":["pic","pct"]},"image/x-portable-anymap":{"source":"apache","extensions":["pnm"]},"image/x-portable-bitmap":{"source":"apache","extensions":["pbm"]},"image/x-portable-graymap":{"source":"apache","extensions":["pgm"]},"image/x-portable-pixmap":{"source":"apache","extensions":["ppm"]},"image/x-rgb":{"source":"apache","extensions":["rgb"]},"image/x-tga":{"source":"apache","extensions":["tga"]},"image/x-xbitmap":{"source":"apache","extensions":["xbm"]},"image/x-xcf":{"compressible":false},"image/x-xpixmap":{"source":"apache","extensions":["xpm"]},"image/x-xwindowdump":{"source":"apache","extensions":["xwd"]},"message/cpim":{"source":"iana"},"message/delivery-status":{"source":"iana"},"message/disposition-notification":{"source":"iana","extensions":["disposition-notification"]},"message/external-body":{"source":"iana"},"message/feedback-report":{"source":"iana"},"message/global":{"source":"iana","extensions":["u8msg"]},"message/global-delivery-status":{"source":"iana","extensions":["u8dsn"]},"message/global-disposition-notification":{"source":"iana","extensions":["u8mdn"]},"message/global-headers":{"source":"iana","extensions":["u8hdr"]},"message/http":{"source":"iana","compressible":false},"message/imdn+xml":{"source":"iana","compressible":true},"message/news":{"source":"iana"},"message/partial":{"source":"iana","compressible":false},"message/rfc822":{"source":"iana","compressible":true,"extensions":["eml","mime"]},"message/s-http":{"source":"iana"},"message/sip":{"source":"iana"},"message/sipfrag":{"source":"iana"},"message/tracking-status":{"source":"iana"},"message/vnd.si.simp":{"source":"iana"},"message/vnd.wfa.wsc":{"source":"iana","extensions":["wsc"]},"model/3mf":{"source":"iana","extensions":["3mf"]},"model/e57":{"source":"iana"},"model/gltf+json":{"source":"iana","compressible":true,"extensions":["gltf"]},"model/gltf-binary":{"source":"iana","compressible":true,"extensions":["glb"]},"model/iges":{"source":"iana","compressible":false,"extensions":["igs","iges"]},"model/mesh":{"source":"iana","compressible":false,"extensions":["msh","mesh","silo"]},"model/mtl":{"source":"iana","extensions":["mtl"]},"model/obj":{"source":"iana","extensions":["obj"]},"model/step":{"source":"iana"},"model/step+xml":{"source":"iana","compressible":true,"extensions":["stpx"]},"model/step+zip":{"source":"iana","compressible":false,"extensions":["stpz"]},"model/step-xml+zip":{"source":"iana","compressible":false,"extensions":["stpxz"]},"model/stl":{"source":"iana","extensions":["stl"]},"model/vnd.collada+xml":{"source":"iana","compressible":true,"extensions":["dae"]},"model/vnd.dwf":{"source":"iana","extensions":["dwf"]},"model/vnd.flatland.3dml":{"source":"iana"},"model/vnd.gdl":{"source":"iana","extensions":["gdl"]},"model/vnd.gs-gdl":{"source":"apache"},"model/vnd.gs.gdl":{"source":"iana"},"model/vnd.gtw":{"source":"iana","extensions":["gtw"]},"model/vnd.moml+xml":{"source":"iana","compressible":true},"model/vnd.mts":{"source":"iana","extensions":["mts"]},"model/vnd.opengex":{"source":"iana","extensions":["ogex"]},"model/vnd.parasolid.transmit.binary":{"source":"iana","extensions":["x_b"]},"model/vnd.parasolid.transmit.text":{"source":"iana","extensions":["x_t"]},"model/vnd.pytha.pyox":{"source":"iana"},"model/vnd.rosette.annotated-data-model":{"source":"iana"},"model/vnd.sap.vds":{"source":"iana","extensions":["vds"]},"model/vnd.usdz+zip":{"source":"iana","compressible":false,"extensions":["usdz"]},"model/vnd.valve.source.compiled-map":{"source":"iana","extensions":["bsp"]},"model/vnd.vtu":{"source":"iana","extensions":["vtu"]},"model/vrml":{"source":"iana","compressible":false,"extensions":["wrl","vrml"]},"model/x3d+binary":{"source":"apache","compressible":false,"extensions":["x3db","x3dbz"]},"model/x3d+fastinfoset":{"source":"iana","extensions":["x3db"]},"model/x3d+vrml":{"source":"apache","compressible":false,"extensions":["x3dv","x3dvz"]},"model/x3d+xml":{"source":"iana","compressible":true,"extensions":["x3d","x3dz"]},"model/x3d-vrml":{"source":"iana","extensions":["x3dv"]},"multipart/alternative":{"source":"iana","compressible":false},"multipart/appledouble":{"source":"iana"},"multipart/byteranges":{"source":"iana"},"multipart/digest":{"source":"iana"},"multipart/encrypted":{"source":"iana","compressible":false},"multipart/form-data":{"source":"iana","compressible":false},"multipart/header-set":{"source":"iana"},"multipart/mixed":{"source":"iana"},"multipart/multilingual":{"source":"iana"},"multipart/parallel":{"source":"iana"},"multipart/related":{"source":"iana","compressible":false},"multipart/report":{"source":"iana"},"multipart/signed":{"source":"iana","compressible":false},"multipart/vnd.bint.med-plus":{"source":"iana"},"multipart/voice-message":{"source":"iana"},"multipart/x-mixed-replace":{"source":"iana"},"text/1d-interleaved-parityfec":{"source":"iana"},"text/cache-manifest":{"source":"iana","compressible":true,"extensions":["appcache","manifest"]},"text/calendar":{"source":"iana","extensions":["ics","ifb"]},"text/calender":{"compressible":true},"text/cmd":{"compressible":true},"text/coffeescript":{"extensions":["coffee","litcoffee"]},"text/cql":{"source":"iana"},"text/cql-expression":{"source":"iana"},"text/cql-identifier":{"source":"iana"},"text/css":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["css"]},"text/csv":{"source":"iana","compressible":true,"extensions":["csv"]},"text/csv-schema":{"source":"iana"},"text/directory":{"source":"iana"},"text/dns":{"source":"iana"},"text/ecmascript":{"source":"iana"},"text/encaprtp":{"source":"iana"},"text/enriched":{"source":"iana"},"text/fhirpath":{"source":"iana"},"text/flexfec":{"source":"iana"},"text/fwdred":{"source":"iana"},"text/gff3":{"source":"iana"},"text/grammar-ref-list":{"source":"iana"},"text/html":{"source":"iana","compressible":true,"extensions":["html","htm","shtml"]},"text/jade":{"extensions":["jade"]},"text/javascript":{"source":"iana","compressible":true},"text/jcr-cnd":{"source":"iana"},"text/jsx":{"compressible":true,"extensions":["jsx"]},"text/less":{"compressible":true,"extensions":["less"]},"text/markdown":{"source":"iana","compressible":true,"extensions":["markdown","md"]},"text/mathml":{"source":"nginx","extensions":["mml"]},"text/mdx":{"compressible":true,"extensions":["mdx"]},"text/mizar":{"source":"iana"},"text/n3":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["n3"]},"text/parameters":{"source":"iana","charset":"UTF-8"},"text/parityfec":{"source":"iana"},"text/plain":{"source":"iana","compressible":true,"extensions":["txt","text","conf","def","list","log","in","ini"]},"text/provenance-notation":{"source":"iana","charset":"UTF-8"},"text/prs.fallenstein.rst":{"source":"iana"},"text/prs.lines.tag":{"source":"iana","extensions":["dsc"]},"text/prs.prop.logic":{"source":"iana"},"text/raptorfec":{"source":"iana"},"text/red":{"source":"iana"},"text/rfc822-headers":{"source":"iana"},"text/richtext":{"source":"iana","compressible":true,"extensions":["rtx"]},"text/rtf":{"source":"iana","compressible":true,"extensions":["rtf"]},"text/rtp-enc-aescm128":{"source":"iana"},"text/rtploopback":{"source":"iana"},"text/rtx":{"source":"iana"},"text/sgml":{"source":"iana","extensions":["sgml","sgm"]},"text/shaclc":{"source":"iana"},"text/shex":{"source":"iana","extensions":["shex"]},"text/slim":{"extensions":["slim","slm"]},"text/spdx":{"source":"iana","extensions":["spdx"]},"text/strings":{"source":"iana"},"text/stylus":{"extensions":["stylus","styl"]},"text/t140":{"source":"iana"},"text/tab-separated-values":{"source":"iana","compressible":true,"extensions":["tsv"]},"text/troff":{"source":"iana","extensions":["t","tr","roff","man","me","ms"]},"text/turtle":{"source":"iana","charset":"UTF-8","extensions":["ttl"]},"text/ulpfec":{"source":"iana"},"text/uri-list":{"source":"iana","compressible":true,"extensions":["uri","uris","urls"]},"text/vcard":{"source":"iana","compressible":true,"extensions":["vcard"]},"text/vnd.a":{"source":"iana"},"text/vnd.abc":{"source":"iana"},"text/vnd.ascii-art":{"source":"iana"},"text/vnd.curl":{"source":"iana","extensions":["curl"]},"text/vnd.curl.dcurl":{"source":"apache","extensions":["dcurl"]},"text/vnd.curl.mcurl":{"source":"apache","extensions":["mcurl"]},"text/vnd.curl.scurl":{"source":"apache","extensions":["scurl"]},"text/vnd.debian.copyright":{"source":"iana","charset":"UTF-8"},"text/vnd.dmclientscript":{"source":"iana"},"text/vnd.dvb.subtitle":{"source":"iana","extensions":["sub"]},"text/vnd.esmertec.theme-descriptor":{"source":"iana","charset":"UTF-8"},"text/vnd.familysearch.gedcom":{"source":"iana","extensions":["ged"]},"text/vnd.ficlab.flt":{"source":"iana"},"text/vnd.fly":{"source":"iana","extensions":["fly"]},"text/vnd.fmi.flexstor":{"source":"iana","extensions":["flx"]},"text/vnd.gml":{"source":"iana"},"text/vnd.graphviz":{"source":"iana","extensions":["gv"]},"text/vnd.hans":{"source":"iana"},"text/vnd.hgl":{"source":"iana"},"text/vnd.in3d.3dml":{"source":"iana","extensions":["3dml"]},"text/vnd.in3d.spot":{"source":"iana","extensions":["spot"]},"text/vnd.iptc.newsml":{"source":"iana"},"text/vnd.iptc.nitf":{"source":"iana"},"text/vnd.latex-z":{"source":"iana"},"text/vnd.motorola.reflex":{"source":"iana"},"text/vnd.ms-mediapackage":{"source":"iana"},"text/vnd.net2phone.commcenter.command":{"source":"iana"},"text/vnd.radisys.msml-basic-layout":{"source":"iana"},"text/vnd.senx.warpscript":{"source":"iana"},"text/vnd.si.uricatalogue":{"source":"iana"},"text/vnd.sosi":{"source":"iana"},"text/vnd.sun.j2me.app-descriptor":{"source":"iana","charset":"UTF-8","extensions":["jad"]},"text/vnd.trolltech.linguist":{"source":"iana","charset":"UTF-8"},"text/vnd.wap.si":{"source":"iana"},"text/vnd.wap.sl":{"source":"iana"},"text/vnd.wap.wml":{"source":"iana","extensions":["wml"]},"text/vnd.wap.wmlscript":{"source":"iana","extensions":["wmls"]},"text/vtt":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["vtt"]},"text/x-asm":{"source":"apache","extensions":["s","asm"]},"text/x-c":{"source":"apache","extensions":["c","cc","cxx","cpp","h","hh","dic"]},"text/x-component":{"source":"nginx","extensions":["htc"]},"text/x-fortran":{"source":"apache","extensions":["f","for","f77","f90"]},"text/x-gwt-rpc":{"compressible":true},"text/x-handlebars-template":{"extensions":["hbs"]},"text/x-java-source":{"source":"apache","extensions":["java"]},"text/x-jquery-tmpl":{"compressible":true},"text/x-lua":{"extensions":["lua"]},"text/x-markdown":{"compressible":true,"extensions":["mkd"]},"text/x-nfo":{"source":"apache","extensions":["nfo"]},"text/x-opml":{"source":"apache","extensions":["opml"]},"text/x-org":{"compressible":true,"extensions":["org"]},"text/x-pascal":{"source":"apache","extensions":["p","pas"]},"text/x-processing":{"compressible":true,"extensions":["pde"]},"text/x-sass":{"extensions":["sass"]},"text/x-scss":{"extensions":["scss"]},"text/x-setext":{"source":"apache","extensions":["etx"]},"text/x-sfv":{"source":"apache","extensions":["sfv"]},"text/x-suse-ymp":{"compressible":true,"extensions":["ymp"]},"text/x-uuencode":{"source":"apache","extensions":["uu"]},"text/x-vcalendar":{"source":"apache","extensions":["vcs"]},"text/x-vcard":{"source":"apache","extensions":["vcf"]},"text/xml":{"source":"iana","compressible":true,"extensions":["xml"]},"text/xml-external-parsed-entity":{"source":"iana"},"text/yaml":{"compressible":true,"extensions":["yaml","yml"]},"video/1d-interleaved-parityfec":{"source":"iana"},"video/3gpp":{"source":"iana","extensions":["3gp","3gpp"]},"video/3gpp-tt":{"source":"iana"},"video/3gpp2":{"source":"iana","extensions":["3g2"]},"video/av1":{"source":"iana"},"video/bmpeg":{"source":"iana"},"video/bt656":{"source":"iana"},"video/celb":{"source":"iana"},"video/dv":{"source":"iana"},"video/encaprtp":{"source":"iana"},"video/ffv1":{"source":"iana"},"video/flexfec":{"source":"iana"},"video/h261":{"source":"iana","extensions":["h261"]},"video/h263":{"source":"iana","extensions":["h263"]},"video/h263-1998":{"source":"iana"},"video/h263-2000":{"source":"iana"},"video/h264":{"source":"iana","extensions":["h264"]},"video/h264-rcdo":{"source":"iana"},"video/h264-svc":{"source":"iana"},"video/h265":{"source":"iana"},"video/iso.segment":{"source":"iana","extensions":["m4s"]},"video/jpeg":{"source":"iana","extensions":["jpgv"]},"video/jpeg2000":{"source":"iana"},"video/jpm":{"source":"apache","extensions":["jpm","jpgm"]},"video/jxsv":{"source":"iana"},"video/mj2":{"source":"iana","extensions":["mj2","mjp2"]},"video/mp1s":{"source":"iana"},"video/mp2p":{"source":"iana"},"video/mp2t":{"source":"iana","extensions":["ts"]},"video/mp4":{"source":"iana","compressible":false,"extensions":["mp4","mp4v","mpg4"]},"video/mp4v-es":{"source":"iana"},"video/mpeg":{"source":"iana","compressible":false,"extensions":["mpeg","mpg","mpe","m1v","m2v"]},"video/mpeg4-generic":{"source":"iana"},"video/mpv":{"source":"iana"},"video/nv":{"source":"iana"},"video/ogg":{"source":"iana","compressible":false,"extensions":["ogv"]},"video/parityfec":{"source":"iana"},"video/pointer":{"source":"iana"},"video/quicktime":{"source":"iana","compressible":false,"extensions":["qt","mov"]},"video/raptorfec":{"source":"iana"},"video/raw":{"source":"iana"},"video/rtp-enc-aescm128":{"source":"iana"},"video/rtploopback":{"source":"iana"},"video/rtx":{"source":"iana"},"video/scip":{"source":"iana"},"video/smpte291":{"source":"iana"},"video/smpte292m":{"source":"iana"},"video/ulpfec":{"source":"iana"},"video/vc1":{"source":"iana"},"video/vc2":{"source":"iana"},"video/vnd.cctv":{"source":"iana"},"video/vnd.dece.hd":{"source":"iana","extensions":["uvh","uvvh"]},"video/vnd.dece.mobile":{"source":"iana","extensions":["uvm","uvvm"]},"video/vnd.dece.mp4":{"source":"iana"},"video/vnd.dece.pd":{"source":"iana","extensions":["uvp","uvvp"]},"video/vnd.dece.sd":{"source":"iana","extensions":["uvs","uvvs"]},"video/vnd.dece.video":{"source":"iana","extensions":["uvv","uvvv"]},"video/vnd.directv.mpeg":{"source":"iana"},"video/vnd.directv.mpeg-tts":{"source":"iana"},"video/vnd.dlna.mpeg-tts":{"source":"iana"},"video/vnd.dvb.file":{"source":"iana","extensions":["dvb"]},"video/vnd.fvt":{"source":"iana","extensions":["fvt"]},"video/vnd.hns.video":{"source":"iana"},"video/vnd.iptvforum.1dparityfec-1010":{"source":"iana"},"video/vnd.iptvforum.1dparityfec-2005":{"source":"iana"},"video/vnd.iptvforum.2dparityfec-1010":{"source":"iana"},"video/vnd.iptvforum.2dparityfec-2005":{"source":"iana"},"video/vnd.iptvforum.ttsavc":{"source":"iana"},"video/vnd.iptvforum.ttsmpeg2":{"source":"iana"},"video/vnd.motorola.video":{"source":"iana"},"video/vnd.motorola.videop":{"source":"iana"},"video/vnd.mpegurl":{"source":"iana","extensions":["mxu","m4u"]},"video/vnd.ms-playready.media.pyv":{"source":"iana","extensions":["pyv"]},"video/vnd.nokia.interleaved-multimedia":{"source":"iana"},"video/vnd.nokia.mp4vr":{"source":"iana"},"video/vnd.nokia.videovoip":{"source":"iana"},"video/vnd.objectvideo":{"source":"iana"},"video/vnd.radgamettools.bink":{"source":"iana"},"video/vnd.radgamettools.smacker":{"source":"iana"},"video/vnd.sealed.mpeg1":{"source":"iana"},"video/vnd.sealed.mpeg4":{"source":"iana"},"video/vnd.sealed.swf":{"source":"iana"},"video/vnd.sealedmedia.softseal.mov":{"source":"iana"},"video/vnd.uvvu.mp4":{"source":"iana","extensions":["uvu","uvvu"]},"video/vnd.vivo":{"source":"iana","extensions":["viv"]},"video/vnd.youtube.yt":{"source":"iana"},"video/vp8":{"source":"iana"},"video/vp9":{"source":"iana"},"video/webm":{"source":"apache","compressible":false,"extensions":["webm"]},"video/x-f4v":{"source":"apache","extensions":["f4v"]},"video/x-fli":{"source":"apache","extensions":["fli"]},"video/x-flv":{"source":"apache","compressible":false,"extensions":["flv"]},"video/x-m4v":{"source":"apache","extensions":["m4v"]},"video/x-matroska":{"source":"apache","compressible":false,"extensions":["mkv","mk3d","mks"]},"video/x-mng":{"source":"apache","extensions":["mng"]},"video/x-ms-asf":{"source":"apache","extensions":["asf","asx"]},"video/x-ms-vob":{"source":"apache","extensions":["vob"]},"video/x-ms-wm":{"source":"apache","extensions":["wm"]},"video/x-ms-wmv":{"source":"apache","compressible":false,"extensions":["wmv"]},"video/x-ms-wmx":{"source":"apache","extensions":["wmx"]},"video/x-ms-wvx":{"source":"apache","extensions":["wvx"]},"video/x-msvideo":{"source":"apache","extensions":["avi"]},"video/x-sgi-movie":{"source":"apache","extensions":["movie"]},"video/x-smv":{"source":"apache","extensions":["smv"]},"x-conference/x-cooltalk":{"source":"apache","extensions":["ice"]},"x-shader/x-fragment":{"compressible":true},"x-shader/x-vertex":{"compressible":true}}')},2020:e=>{"use strict";e.exports=JSON.parse('[[[0,44],"disallowed_STD3_valid"],[[45,46],"valid"],[[47,47],"disallowed_STD3_valid"],[[48,57],"valid"],[[58,64],"disallowed_STD3_valid"],[[65,65],"mapped",[97]],[[66,66],"mapped",[98]],[[67,67],"mapped",[99]],[[68,68],"mapped",[100]],[[69,69],"mapped",[101]],[[70,70],"mapped",[102]],[[71,71],"mapped",[103]],[[72,72],"mapped",[104]],[[73,73],"mapped",[105]],[[74,74],"mapped",[106]],[[75,75],"mapped",[107]],[[76,76],"mapped",[108]],[[77,77],"mapped",[109]],[[78,78],"mapped",[110]],[[79,79],"mapped",[111]],[[80,80],"mapped",[112]],[[81,81],"mapped",[113]],[[82,82],"mapped",[114]],[[83,83],"mapped",[115]],[[84,84],"mapped",[116]],[[85,85],"mapped",[117]],[[86,86],"mapped",[118]],[[87,87],"mapped",[119]],[[88,88],"mapped",[120]],[[89,89],"mapped",[121]],[[90,90],"mapped",[122]],[[91,96],"disallowed_STD3_valid"],[[97,122],"valid"],[[123,127],"disallowed_STD3_valid"],[[128,159],"disallowed"],[[160,160],"disallowed_STD3_mapped",[32]],[[161,167],"valid",[],"NV8"],[[168,168],"disallowed_STD3_mapped",[32,776]],[[169,169],"valid",[],"NV8"],[[170,170],"mapped",[97]],[[171,172],"valid",[],"NV8"],[[173,173],"ignored"],[[174,174],"valid",[],"NV8"],[[175,175],"disallowed_STD3_mapped",[32,772]],[[176,177],"valid",[],"NV8"],[[178,178],"mapped",[50]],[[179,179],"mapped",[51]],[[180,180],"disallowed_STD3_mapped",[32,769]],[[181,181],"mapped",[956]],[[182,182],"valid",[],"NV8"],[[183,183],"valid"],[[184,184],"disallowed_STD3_mapped",[32,807]],[[185,185],"mapped",[49]],[[186,186],"mapped",[111]],[[187,187],"valid",[],"NV8"],[[188,188],"mapped",[49,8260,52]],[[189,189],"mapped",[49,8260,50]],[[190,190],"mapped",[51,8260,52]],[[191,191],"valid",[],"NV8"],[[192,192],"mapped",[224]],[[193,193],"mapped",[225]],[[194,194],"mapped",[226]],[[195,195],"mapped",[227]],[[196,196],"mapped",[228]],[[197,197],"mapped",[229]],[[198,198],"mapped",[230]],[[199,199],"mapped",[231]],[[200,200],"mapped",[232]],[[201,201],"mapped",[233]],[[202,202],"mapped",[234]],[[203,203],"mapped",[235]],[[204,204],"mapped",[236]],[[205,205],"mapped",[237]],[[206,206],"mapped",[238]],[[207,207],"mapped",[239]],[[208,208],"mapped",[240]],[[209,209],"mapped",[241]],[[210,210],"mapped",[242]],[[211,211],"mapped",[243]],[[212,212],"mapped",[244]],[[213,213],"mapped",[245]],[[214,214],"mapped",[246]],[[215,215],"valid",[],"NV8"],[[216,216],"mapped",[248]],[[217,217],"mapped",[249]],[[218,218],"mapped",[250]],[[219,219],"mapped",[251]],[[220,220],"mapped",[252]],[[221,221],"mapped",[253]],[[222,222],"mapped",[254]],[[223,223],"deviation",[115,115]],[[224,246],"valid"],[[247,247],"valid",[],"NV8"],[[248,255],"valid"],[[256,256],"mapped",[257]],[[257,257],"valid"],[[258,258],"mapped",[259]],[[259,259],"valid"],[[260,260],"mapped",[261]],[[261,261],"valid"],[[262,262],"mapped",[263]],[[263,263],"valid"],[[264,264],"mapped",[265]],[[265,265],"valid"],[[266,266],"mapped",[267]],[[267,267],"valid"],[[268,268],"mapped",[269]],[[269,269],"valid"],[[270,270],"mapped",[271]],[[271,271],"valid"],[[272,272],"mapped",[273]],[[273,273],"valid"],[[274,274],"mapped",[275]],[[275,275],"valid"],[[276,276],"mapped",[277]],[[277,277],"valid"],[[278,278],"mapped",[279]],[[279,279],"valid"],[[280,280],"mapped",[281]],[[281,281],"valid"],[[282,282],"mapped",[283]],[[283,283],"valid"],[[284,284],"mapped",[285]],[[285,285],"valid"],[[286,286],"mapped",[287]],[[287,287],"valid"],[[288,288],"mapped",[289]],[[289,289],"valid"],[[290,290],"mapped",[291]],[[291,291],"valid"],[[292,292],"mapped",[293]],[[293,293],"valid"],[[294,294],"mapped",[295]],[[295,295],"valid"],[[296,296],"mapped",[297]],[[297,297],"valid"],[[298,298],"mapped",[299]],[[299,299],"valid"],[[300,300],"mapped",[301]],[[301,301],"valid"],[[302,302],"mapped",[303]],[[303,303],"valid"],[[304,304],"mapped",[105,775]],[[305,305],"valid"],[[306,307],"mapped",[105,106]],[[308,308],"mapped",[309]],[[309,309],"valid"],[[310,310],"mapped",[311]],[[311,312],"valid"],[[313,313],"mapped",[314]],[[314,314],"valid"],[[315,315],"mapped",[316]],[[316,316],"valid"],[[317,317],"mapped",[318]],[[318,318],"valid"],[[319,320],"mapped",[108,183]],[[321,321],"mapped",[322]],[[322,322],"valid"],[[323,323],"mapped",[324]],[[324,324],"valid"],[[325,325],"mapped",[326]],[[326,326],"valid"],[[327,327],"mapped",[328]],[[328,328],"valid"],[[329,329],"mapped",[700,110]],[[330,330],"mapped",[331]],[[331,331],"valid"],[[332,332],"mapped",[333]],[[333,333],"valid"],[[334,334],"mapped",[335]],[[335,335],"valid"],[[336,336],"mapped",[337]],[[337,337],"valid"],[[338,338],"mapped",[339]],[[339,339],"valid"],[[340,340],"mapped",[341]],[[341,341],"valid"],[[342,342],"mapped",[343]],[[343,343],"valid"],[[344,344],"mapped",[345]],[[345,345],"valid"],[[346,346],"mapped",[347]],[[347,347],"valid"],[[348,348],"mapped",[349]],[[349,349],"valid"],[[350,350],"mapped",[351]],[[351,351],"valid"],[[352,352],"mapped",[353]],[[353,353],"valid"],[[354,354],"mapped",[355]],[[355,355],"valid"],[[356,356],"mapped",[357]],[[357,357],"valid"],[[358,358],"mapped",[359]],[[359,359],"valid"],[[360,360],"mapped",[361]],[[361,361],"valid"],[[362,362],"mapped",[363]],[[363,363],"valid"],[[364,364],"mapped",[365]],[[365,365],"valid"],[[366,366],"mapped",[367]],[[367,367],"valid"],[[368,368],"mapped",[369]],[[369,369],"valid"],[[370,370],"mapped",[371]],[[371,371],"valid"],[[372,372],"mapped",[373]],[[373,373],"valid"],[[374,374],"mapped",[375]],[[375,375],"valid"],[[376,376],"mapped",[255]],[[377,377],"mapped",[378]],[[378,378],"valid"],[[379,379],"mapped",[380]],[[380,380],"valid"],[[381,381],"mapped",[382]],[[382,382],"valid"],[[383,383],"mapped",[115]],[[384,384],"valid"],[[385,385],"mapped",[595]],[[386,386],"mapped",[387]],[[387,387],"valid"],[[388,388],"mapped",[389]],[[389,389],"valid"],[[390,390],"mapped",[596]],[[391,391],"mapped",[392]],[[392,392],"valid"],[[393,393],"mapped",[598]],[[394,394],"mapped",[599]],[[395,395],"mapped",[396]],[[396,397],"valid"],[[398,398],"mapped",[477]],[[399,399],"mapped",[601]],[[400,400],"mapped",[603]],[[401,401],"mapped",[402]],[[402,402],"valid"],[[403,403],"mapped",[608]],[[404,404],"mapped",[611]],[[405,405],"valid"],[[406,406],"mapped",[617]],[[407,407],"mapped",[616]],[[408,408],"mapped",[409]],[[409,411],"valid"],[[412,412],"mapped",[623]],[[413,413],"mapped",[626]],[[414,414],"valid"],[[415,415],"mapped",[629]],[[416,416],"mapped",[417]],[[417,417],"valid"],[[418,418],"mapped",[419]],[[419,419],"valid"],[[420,420],"mapped",[421]],[[421,421],"valid"],[[422,422],"mapped",[640]],[[423,423],"mapped",[424]],[[424,424],"valid"],[[425,425],"mapped",[643]],[[426,427],"valid"],[[428,428],"mapped",[429]],[[429,429],"valid"],[[430,430],"mapped",[648]],[[431,431],"mapped",[432]],[[432,432],"valid"],[[433,433],"mapped",[650]],[[434,434],"mapped",[651]],[[435,435],"mapped",[436]],[[436,436],"valid"],[[437,437],"mapped",[438]],[[438,438],"valid"],[[439,439],"mapped",[658]],[[440,440],"mapped",[441]],[[441,443],"valid"],[[444,444],"mapped",[445]],[[445,451],"valid"],[[452,454],"mapped",[100,382]],[[455,457],"mapped",[108,106]],[[458,460],"mapped",[110,106]],[[461,461],"mapped",[462]],[[462,462],"valid"],[[463,463],"mapped",[464]],[[464,464],"valid"],[[465,465],"mapped",[466]],[[466,466],"valid"],[[467,467],"mapped",[468]],[[468,468],"valid"],[[469,469],"mapped",[470]],[[470,470],"valid"],[[471,471],"mapped",[472]],[[472,472],"valid"],[[473,473],"mapped",[474]],[[474,474],"valid"],[[475,475],"mapped",[476]],[[476,477],"valid"],[[478,478],"mapped",[479]],[[479,479],"valid"],[[480,480],"mapped",[481]],[[481,481],"valid"],[[482,482],"mapped",[483]],[[483,483],"valid"],[[484,484],"mapped",[485]],[[485,485],"valid"],[[486,486],"mapped",[487]],[[487,487],"valid"],[[488,488],"mapped",[489]],[[489,489],"valid"],[[490,490],"mapped",[491]],[[491,491],"valid"],[[492,492],"mapped",[493]],[[493,493],"valid"],[[494,494],"mapped",[495]],[[495,496],"valid"],[[497,499],"mapped",[100,122]],[[500,500],"mapped",[501]],[[501,501],"valid"],[[502,502],"mapped",[405]],[[503,503],"mapped",[447]],[[504,504],"mapped",[505]],[[505,505],"valid"],[[506,506],"mapped",[507]],[[507,507],"valid"],[[508,508],"mapped",[509]],[[509,509],"valid"],[[510,510],"mapped",[511]],[[511,511],"valid"],[[512,512],"mapped",[513]],[[513,513],"valid"],[[514,514],"mapped",[515]],[[515,515],"valid"],[[516,516],"mapped",[517]],[[517,517],"valid"],[[518,518],"mapped",[519]],[[519,519],"valid"],[[520,520],"mapped",[521]],[[521,521],"valid"],[[522,522],"mapped",[523]],[[523,523],"valid"],[[524,524],"mapped",[525]],[[525,525],"valid"],[[526,526],"mapped",[527]],[[527,527],"valid"],[[528,528],"mapped",[529]],[[529,529],"valid"],[[530,530],"mapped",[531]],[[531,531],"valid"],[[532,532],"mapped",[533]],[[533,533],"valid"],[[534,534],"mapped",[535]],[[535,535],"valid"],[[536,536],"mapped",[537]],[[537,537],"valid"],[[538,538],"mapped",[539]],[[539,539],"valid"],[[540,540],"mapped",[541]],[[541,541],"valid"],[[542,542],"mapped",[543]],[[543,543],"valid"],[[544,544],"mapped",[414]],[[545,545],"valid"],[[546,546],"mapped",[547]],[[547,547],"valid"],[[548,548],"mapped",[549]],[[549,549],"valid"],[[550,550],"mapped",[551]],[[551,551],"valid"],[[552,552],"mapped",[553]],[[553,553],"valid"],[[554,554],"mapped",[555]],[[555,555],"valid"],[[556,556],"mapped",[557]],[[557,557],"valid"],[[558,558],"mapped",[559]],[[559,559],"valid"],[[560,560],"mapped",[561]],[[561,561],"valid"],[[562,562],"mapped",[563]],[[563,563],"valid"],[[564,566],"valid"],[[567,569],"valid"],[[570,570],"mapped",[11365]],[[571,571],"mapped",[572]],[[572,572],"valid"],[[573,573],"mapped",[410]],[[574,574],"mapped",[11366]],[[575,576],"valid"],[[577,577],"mapped",[578]],[[578,578],"valid"],[[579,579],"mapped",[384]],[[580,580],"mapped",[649]],[[581,581],"mapped",[652]],[[582,582],"mapped",[583]],[[583,583],"valid"],[[584,584],"mapped",[585]],[[585,585],"valid"],[[586,586],"mapped",[587]],[[587,587],"valid"],[[588,588],"mapped",[589]],[[589,589],"valid"],[[590,590],"mapped",[591]],[[591,591],"valid"],[[592,680],"valid"],[[681,685],"valid"],[[686,687],"valid"],[[688,688],"mapped",[104]],[[689,689],"mapped",[614]],[[690,690],"mapped",[106]],[[691,691],"mapped",[114]],[[692,692],"mapped",[633]],[[693,693],"mapped",[635]],[[694,694],"mapped",[641]],[[695,695],"mapped",[119]],[[696,696],"mapped",[121]],[[697,705],"valid"],[[706,709],"valid",[],"NV8"],[[710,721],"valid"],[[722,727],"valid",[],"NV8"],[[728,728],"disallowed_STD3_mapped",[32,774]],[[729,729],"disallowed_STD3_mapped",[32,775]],[[730,730],"disallowed_STD3_mapped",[32,778]],[[731,731],"disallowed_STD3_mapped",[32,808]],[[732,732],"disallowed_STD3_mapped",[32,771]],[[733,733],"disallowed_STD3_mapped",[32,779]],[[734,734],"valid",[],"NV8"],[[735,735],"valid",[],"NV8"],[[736,736],"mapped",[611]],[[737,737],"mapped",[108]],[[738,738],"mapped",[115]],[[739,739],"mapped",[120]],[[740,740],"mapped",[661]],[[741,745],"valid",[],"NV8"],[[746,747],"valid",[],"NV8"],[[748,748],"valid"],[[749,749],"valid",[],"NV8"],[[750,750],"valid"],[[751,767],"valid",[],"NV8"],[[768,831],"valid"],[[832,832],"mapped",[768]],[[833,833],"mapped",[769]],[[834,834],"valid"],[[835,835],"mapped",[787]],[[836,836],"mapped",[776,769]],[[837,837],"mapped",[953]],[[838,846],"valid"],[[847,847],"ignored"],[[848,855],"valid"],[[856,860],"valid"],[[861,863],"valid"],[[864,865],"valid"],[[866,866],"valid"],[[867,879],"valid"],[[880,880],"mapped",[881]],[[881,881],"valid"],[[882,882],"mapped",[883]],[[883,883],"valid"],[[884,884],"mapped",[697]],[[885,885],"valid"],[[886,886],"mapped",[887]],[[887,887],"valid"],[[888,889],"disallowed"],[[890,890],"disallowed_STD3_mapped",[32,953]],[[891,893],"valid"],[[894,894],"disallowed_STD3_mapped",[59]],[[895,895],"mapped",[1011]],[[896,899],"disallowed"],[[900,900],"disallowed_STD3_mapped",[32,769]],[[901,901],"disallowed_STD3_mapped",[32,776,769]],[[902,902],"mapped",[940]],[[903,903],"mapped",[183]],[[904,904],"mapped",[941]],[[905,905],"mapped",[942]],[[906,906],"mapped",[943]],[[907,907],"disallowed"],[[908,908],"mapped",[972]],[[909,909],"disallowed"],[[910,910],"mapped",[973]],[[911,911],"mapped",[974]],[[912,912],"valid"],[[913,913],"mapped",[945]],[[914,914],"mapped",[946]],[[915,915],"mapped",[947]],[[916,916],"mapped",[948]],[[917,917],"mapped",[949]],[[918,918],"mapped",[950]],[[919,919],"mapped",[951]],[[920,920],"mapped",[952]],[[921,921],"mapped",[953]],[[922,922],"mapped",[954]],[[923,923],"mapped",[955]],[[924,924],"mapped",[956]],[[925,925],"mapped",[957]],[[926,926],"mapped",[958]],[[927,927],"mapped",[959]],[[928,928],"mapped",[960]],[[929,929],"mapped",[961]],[[930,930],"disallowed"],[[931,931],"mapped",[963]],[[932,932],"mapped",[964]],[[933,933],"mapped",[965]],[[934,934],"mapped",[966]],[[935,935],"mapped",[967]],[[936,936],"mapped",[968]],[[937,937],"mapped",[969]],[[938,938],"mapped",[970]],[[939,939],"mapped",[971]],[[940,961],"valid"],[[962,962],"deviation",[963]],[[963,974],"valid"],[[975,975],"mapped",[983]],[[976,976],"mapped",[946]],[[977,977],"mapped",[952]],[[978,978],"mapped",[965]],[[979,979],"mapped",[973]],[[980,980],"mapped",[971]],[[981,981],"mapped",[966]],[[982,982],"mapped",[960]],[[983,983],"valid"],[[984,984],"mapped",[985]],[[985,985],"valid"],[[986,986],"mapped",[987]],[[987,987],"valid"],[[988,988],"mapped",[989]],[[989,989],"valid"],[[990,990],"mapped",[991]],[[991,991],"valid"],[[992,992],"mapped",[993]],[[993,993],"valid"],[[994,994],"mapped",[995]],[[995,995],"valid"],[[996,996],"mapped",[997]],[[997,997],"valid"],[[998,998],"mapped",[999]],[[999,999],"valid"],[[1000,1000],"mapped",[1001]],[[1001,1001],"valid"],[[1002,1002],"mapped",[1003]],[[1003,1003],"valid"],[[1004,1004],"mapped",[1005]],[[1005,1005],"valid"],[[1006,1006],"mapped",[1007]],[[1007,1007],"valid"],[[1008,1008],"mapped",[954]],[[1009,1009],"mapped",[961]],[[1010,1010],"mapped",[963]],[[1011,1011],"valid"],[[1012,1012],"mapped",[952]],[[1013,1013],"mapped",[949]],[[1014,1014],"valid",[],"NV8"],[[1015,1015],"mapped",[1016]],[[1016,1016],"valid"],[[1017,1017],"mapped",[963]],[[1018,1018],"mapped",[1019]],[[1019,1019],"valid"],[[1020,1020],"valid"],[[1021,1021],"mapped",[891]],[[1022,1022],"mapped",[892]],[[1023,1023],"mapped",[893]],[[1024,1024],"mapped",[1104]],[[1025,1025],"mapped",[1105]],[[1026,1026],"mapped",[1106]],[[1027,1027],"mapped",[1107]],[[1028,1028],"mapped",[1108]],[[1029,1029],"mapped",[1109]],[[1030,1030],"mapped",[1110]],[[1031,1031],"mapped",[1111]],[[1032,1032],"mapped",[1112]],[[1033,1033],"mapped",[1113]],[[1034,1034],"mapped",[1114]],[[1035,1035],"mapped",[1115]],[[1036,1036],"mapped",[1116]],[[1037,1037],"mapped",[1117]],[[1038,1038],"mapped",[1118]],[[1039,1039],"mapped",[1119]],[[1040,1040],"mapped",[1072]],[[1041,1041],"mapped",[1073]],[[1042,1042],"mapped",[1074]],[[1043,1043],"mapped",[1075]],[[1044,1044],"mapped",[1076]],[[1045,1045],"mapped",[1077]],[[1046,1046],"mapped",[1078]],[[1047,1047],"mapped",[1079]],[[1048,1048],"mapped",[1080]],[[1049,1049],"mapped",[1081]],[[1050,1050],"mapped",[1082]],[[1051,1051],"mapped",[1083]],[[1052,1052],"mapped",[1084]],[[1053,1053],"mapped",[1085]],[[1054,1054],"mapped",[1086]],[[1055,1055],"mapped",[1087]],[[1056,1056],"mapped",[1088]],[[1057,1057],"mapped",[1089]],[[1058,1058],"mapped",[1090]],[[1059,1059],"mapped",[1091]],[[1060,1060],"mapped",[1092]],[[1061,1061],"mapped",[1093]],[[1062,1062],"mapped",[1094]],[[1063,1063],"mapped",[1095]],[[1064,1064],"mapped",[1096]],[[1065,1065],"mapped",[1097]],[[1066,1066],"mapped",[1098]],[[1067,1067],"mapped",[1099]],[[1068,1068],"mapped",[1100]],[[1069,1069],"mapped",[1101]],[[1070,1070],"mapped",[1102]],[[1071,1071],"mapped",[1103]],[[1072,1103],"valid"],[[1104,1104],"valid"],[[1105,1116],"valid"],[[1117,1117],"valid"],[[1118,1119],"valid"],[[1120,1120],"mapped",[1121]],[[1121,1121],"valid"],[[1122,1122],"mapped",[1123]],[[1123,1123],"valid"],[[1124,1124],"mapped",[1125]],[[1125,1125],"valid"],[[1126,1126],"mapped",[1127]],[[1127,1127],"valid"],[[1128,1128],"mapped",[1129]],[[1129,1129],"valid"],[[1130,1130],"mapped",[1131]],[[1131,1131],"valid"],[[1132,1132],"mapped",[1133]],[[1133,1133],"valid"],[[1134,1134],"mapped",[1135]],[[1135,1135],"valid"],[[1136,1136],"mapped",[1137]],[[1137,1137],"valid"],[[1138,1138],"mapped",[1139]],[[1139,1139],"valid"],[[1140,1140],"mapped",[1141]],[[1141,1141],"valid"],[[1142,1142],"mapped",[1143]],[[1143,1143],"valid"],[[1144,1144],"mapped",[1145]],[[1145,1145],"valid"],[[1146,1146],"mapped",[1147]],[[1147,1147],"valid"],[[1148,1148],"mapped",[1149]],[[1149,1149],"valid"],[[1150,1150],"mapped",[1151]],[[1151,1151],"valid"],[[1152,1152],"mapped",[1153]],[[1153,1153],"valid"],[[1154,1154],"valid",[],"NV8"],[[1155,1158],"valid"],[[1159,1159],"valid"],[[1160,1161],"valid",[],"NV8"],[[1162,1162],"mapped",[1163]],[[1163,1163],"valid"],[[1164,1164],"mapped",[1165]],[[1165,1165],"valid"],[[1166,1166],"mapped",[1167]],[[1167,1167],"valid"],[[1168,1168],"mapped",[1169]],[[1169,1169],"valid"],[[1170,1170],"mapped",[1171]],[[1171,1171],"valid"],[[1172,1172],"mapped",[1173]],[[1173,1173],"valid"],[[1174,1174],"mapped",[1175]],[[1175,1175],"valid"],[[1176,1176],"mapped",[1177]],[[1177,1177],"valid"],[[1178,1178],"mapped",[1179]],[[1179,1179],"valid"],[[1180,1180],"mapped",[1181]],[[1181,1181],"valid"],[[1182,1182],"mapped",[1183]],[[1183,1183],"valid"],[[1184,1184],"mapped",[1185]],[[1185,1185],"valid"],[[1186,1186],"mapped",[1187]],[[1187,1187],"valid"],[[1188,1188],"mapped",[1189]],[[1189,1189],"valid"],[[1190,1190],"mapped",[1191]],[[1191,1191],"valid"],[[1192,1192],"mapped",[1193]],[[1193,1193],"valid"],[[1194,1194],"mapped",[1195]],[[1195,1195],"valid"],[[1196,1196],"mapped",[1197]],[[1197,1197],"valid"],[[1198,1198],"mapped",[1199]],[[1199,1199],"valid"],[[1200,1200],"mapped",[1201]],[[1201,1201],"valid"],[[1202,1202],"mapped",[1203]],[[1203,1203],"valid"],[[1204,1204],"mapped",[1205]],[[1205,1205],"valid"],[[1206,1206],"mapped",[1207]],[[1207,1207],"valid"],[[1208,1208],"mapped",[1209]],[[1209,1209],"valid"],[[1210,1210],"mapped",[1211]],[[1211,1211],"valid"],[[1212,1212],"mapped",[1213]],[[1213,1213],"valid"],[[1214,1214],"mapped",[1215]],[[1215,1215],"valid"],[[1216,1216],"disallowed"],[[1217,1217],"mapped",[1218]],[[1218,1218],"valid"],[[1219,1219],"mapped",[1220]],[[1220,1220],"valid"],[[1221,1221],"mapped",[1222]],[[1222,1222],"valid"],[[1223,1223],"mapped",[1224]],[[1224,1224],"valid"],[[1225,1225],"mapped",[1226]],[[1226,1226],"valid"],[[1227,1227],"mapped",[1228]],[[1228,1228],"valid"],[[1229,1229],"mapped",[1230]],[[1230,1230],"valid"],[[1231,1231],"valid"],[[1232,1232],"mapped",[1233]],[[1233,1233],"valid"],[[1234,1234],"mapped",[1235]],[[1235,1235],"valid"],[[1236,1236],"mapped",[1237]],[[1237,1237],"valid"],[[1238,1238],"mapped",[1239]],[[1239,1239],"valid"],[[1240,1240],"mapped",[1241]],[[1241,1241],"valid"],[[1242,1242],"mapped",[1243]],[[1243,1243],"valid"],[[1244,1244],"mapped",[1245]],[[1245,1245],"valid"],[[1246,1246],"mapped",[1247]],[[1247,1247],"valid"],[[1248,1248],"mapped",[1249]],[[1249,1249],"valid"],[[1250,1250],"mapped",[1251]],[[1251,1251],"valid"],[[1252,1252],"mapped",[1253]],[[1253,1253],"valid"],[[1254,1254],"mapped",[1255]],[[1255,1255],"valid"],[[1256,1256],"mapped",[1257]],[[1257,1257],"valid"],[[1258,1258],"mapped",[1259]],[[1259,1259],"valid"],[[1260,1260],"mapped",[1261]],[[1261,1261],"valid"],[[1262,1262],"mapped",[1263]],[[1263,1263],"valid"],[[1264,1264],"mapped",[1265]],[[1265,1265],"valid"],[[1266,1266],"mapped",[1267]],[[1267,1267],"valid"],[[1268,1268],"mapped",[1269]],[[1269,1269],"valid"],[[1270,1270],"mapped",[1271]],[[1271,1271],"valid"],[[1272,1272],"mapped",[1273]],[[1273,1273],"valid"],[[1274,1274],"mapped",[1275]],[[1275,1275],"valid"],[[1276,1276],"mapped",[1277]],[[1277,1277],"valid"],[[1278,1278],"mapped",[1279]],[[1279,1279],"valid"],[[1280,1280],"mapped",[1281]],[[1281,1281],"valid"],[[1282,1282],"mapped",[1283]],[[1283,1283],"valid"],[[1284,1284],"mapped",[1285]],[[1285,1285],"valid"],[[1286,1286],"mapped",[1287]],[[1287,1287],"valid"],[[1288,1288],"mapped",[1289]],[[1289,1289],"valid"],[[1290,1290],"mapped",[1291]],[[1291,1291],"valid"],[[1292,1292],"mapped",[1293]],[[1293,1293],"valid"],[[1294,1294],"mapped",[1295]],[[1295,1295],"valid"],[[1296,1296],"mapped",[1297]],[[1297,1297],"valid"],[[1298,1298],"mapped",[1299]],[[1299,1299],"valid"],[[1300,1300],"mapped",[1301]],[[1301,1301],"valid"],[[1302,1302],"mapped",[1303]],[[1303,1303],"valid"],[[1304,1304],"mapped",[1305]],[[1305,1305],"valid"],[[1306,1306],"mapped",[1307]],[[1307,1307],"valid"],[[1308,1308],"mapped",[1309]],[[1309,1309],"valid"],[[1310,1310],"mapped",[1311]],[[1311,1311],"valid"],[[1312,1312],"mapped",[1313]],[[1313,1313],"valid"],[[1314,1314],"mapped",[1315]],[[1315,1315],"valid"],[[1316,1316],"mapped",[1317]],[[1317,1317],"valid"],[[1318,1318],"mapped",[1319]],[[1319,1319],"valid"],[[1320,1320],"mapped",[1321]],[[1321,1321],"valid"],[[1322,1322],"mapped",[1323]],[[1323,1323],"valid"],[[1324,1324],"mapped",[1325]],[[1325,1325],"valid"],[[1326,1326],"mapped",[1327]],[[1327,1327],"valid"],[[1328,1328],"disallowed"],[[1329,1329],"mapped",[1377]],[[1330,1330],"mapped",[1378]],[[1331,1331],"mapped",[1379]],[[1332,1332],"mapped",[1380]],[[1333,1333],"mapped",[1381]],[[1334,1334],"mapped",[1382]],[[1335,1335],"mapped",[1383]],[[1336,1336],"mapped",[1384]],[[1337,1337],"mapped",[1385]],[[1338,1338],"mapped",[1386]],[[1339,1339],"mapped",[1387]],[[1340,1340],"mapped",[1388]],[[1341,1341],"mapped",[1389]],[[1342,1342],"mapped",[1390]],[[1343,1343],"mapped",[1391]],[[1344,1344],"mapped",[1392]],[[1345,1345],"mapped",[1393]],[[1346,1346],"mapped",[1394]],[[1347,1347],"mapped",[1395]],[[1348,1348],"mapped",[1396]],[[1349,1349],"mapped",[1397]],[[1350,1350],"mapped",[1398]],[[1351,1351],"mapped",[1399]],[[1352,1352],"mapped",[1400]],[[1353,1353],"mapped",[1401]],[[1354,1354],"mapped",[1402]],[[1355,1355],"mapped",[1403]],[[1356,1356],"mapped",[1404]],[[1357,1357],"mapped",[1405]],[[1358,1358],"mapped",[1406]],[[1359,1359],"mapped",[1407]],[[1360,1360],"mapped",[1408]],[[1361,1361],"mapped",[1409]],[[1362,1362],"mapped",[1410]],[[1363,1363],"mapped",[1411]],[[1364,1364],"mapped",[1412]],[[1365,1365],"mapped",[1413]],[[1366,1366],"mapped",[1414]],[[1367,1368],"disallowed"],[[1369,1369],"valid"],[[1370,1375],"valid",[],"NV8"],[[1376,1376],"disallowed"],[[1377,1414],"valid"],[[1415,1415],"mapped",[1381,1410]],[[1416,1416],"disallowed"],[[1417,1417],"valid",[],"NV8"],[[1418,1418],"valid",[],"NV8"],[[1419,1420],"disallowed"],[[1421,1422],"valid",[],"NV8"],[[1423,1423],"valid",[],"NV8"],[[1424,1424],"disallowed"],[[1425,1441],"valid"],[[1442,1442],"valid"],[[1443,1455],"valid"],[[1456,1465],"valid"],[[1466,1466],"valid"],[[1467,1469],"valid"],[[1470,1470],"valid",[],"NV8"],[[1471,1471],"valid"],[[1472,1472],"valid",[],"NV8"],[[1473,1474],"valid"],[[1475,1475],"valid",[],"NV8"],[[1476,1476],"valid"],[[1477,1477],"valid"],[[1478,1478],"valid",[],"NV8"],[[1479,1479],"valid"],[[1480,1487],"disallowed"],[[1488,1514],"valid"],[[1515,1519],"disallowed"],[[1520,1524],"valid"],[[1525,1535],"disallowed"],[[1536,1539],"disallowed"],[[1540,1540],"disallowed"],[[1541,1541],"disallowed"],[[1542,1546],"valid",[],"NV8"],[[1547,1547],"valid",[],"NV8"],[[1548,1548],"valid",[],"NV8"],[[1549,1551],"valid",[],"NV8"],[[1552,1557],"valid"],[[1558,1562],"valid"],[[1563,1563],"valid",[],"NV8"],[[1564,1564],"disallowed"],[[1565,1565],"disallowed"],[[1566,1566],"valid",[],"NV8"],[[1567,1567],"valid",[],"NV8"],[[1568,1568],"valid"],[[1569,1594],"valid"],[[1595,1599],"valid"],[[1600,1600],"valid",[],"NV8"],[[1601,1618],"valid"],[[1619,1621],"valid"],[[1622,1624],"valid"],[[1625,1630],"valid"],[[1631,1631],"valid"],[[1632,1641],"valid"],[[1642,1645],"valid",[],"NV8"],[[1646,1647],"valid"],[[1648,1652],"valid"],[[1653,1653],"mapped",[1575,1652]],[[1654,1654],"mapped",[1608,1652]],[[1655,1655],"mapped",[1735,1652]],[[1656,1656],"mapped",[1610,1652]],[[1657,1719],"valid"],[[1720,1721],"valid"],[[1722,1726],"valid"],[[1727,1727],"valid"],[[1728,1742],"valid"],[[1743,1743],"valid"],[[1744,1747],"valid"],[[1748,1748],"valid",[],"NV8"],[[1749,1756],"valid"],[[1757,1757],"disallowed"],[[1758,1758],"valid",[],"NV8"],[[1759,1768],"valid"],[[1769,1769],"valid",[],"NV8"],[[1770,1773],"valid"],[[1774,1775],"valid"],[[1776,1785],"valid"],[[1786,1790],"valid"],[[1791,1791],"valid"],[[1792,1805],"valid",[],"NV8"],[[1806,1806],"disallowed"],[[1807,1807],"disallowed"],[[1808,1836],"valid"],[[1837,1839],"valid"],[[1840,1866],"valid"],[[1867,1868],"disallowed"],[[1869,1871],"valid"],[[1872,1901],"valid"],[[1902,1919],"valid"],[[1920,1968],"valid"],[[1969,1969],"valid"],[[1970,1983],"disallowed"],[[1984,2037],"valid"],[[2038,2042],"valid",[],"NV8"],[[2043,2047],"disallowed"],[[2048,2093],"valid"],[[2094,2095],"disallowed"],[[2096,2110],"valid",[],"NV8"],[[2111,2111],"disallowed"],[[2112,2139],"valid"],[[2140,2141],"disallowed"],[[2142,2142],"valid",[],"NV8"],[[2143,2207],"disallowed"],[[2208,2208],"valid"],[[2209,2209],"valid"],[[2210,2220],"valid"],[[2221,2226],"valid"],[[2227,2228],"valid"],[[2229,2274],"disallowed"],[[2275,2275],"valid"],[[2276,2302],"valid"],[[2303,2303],"valid"],[[2304,2304],"valid"],[[2305,2307],"valid"],[[2308,2308],"valid"],[[2309,2361],"valid"],[[2362,2363],"valid"],[[2364,2381],"valid"],[[2382,2382],"valid"],[[2383,2383],"valid"],[[2384,2388],"valid"],[[2389,2389],"valid"],[[2390,2391],"valid"],[[2392,2392],"mapped",[2325,2364]],[[2393,2393],"mapped",[2326,2364]],[[2394,2394],"mapped",[2327,2364]],[[2395,2395],"mapped",[2332,2364]],[[2396,2396],"mapped",[2337,2364]],[[2397,2397],"mapped",[2338,2364]],[[2398,2398],"mapped",[2347,2364]],[[2399,2399],"mapped",[2351,2364]],[[2400,2403],"valid"],[[2404,2405],"valid",[],"NV8"],[[2406,2415],"valid"],[[2416,2416],"valid",[],"NV8"],[[2417,2418],"valid"],[[2419,2423],"valid"],[[2424,2424],"valid"],[[2425,2426],"valid"],[[2427,2428],"valid"],[[2429,2429],"valid"],[[2430,2431],"valid"],[[2432,2432],"valid"],[[2433,2435],"valid"],[[2436,2436],"disallowed"],[[2437,2444],"valid"],[[2445,2446],"disallowed"],[[2447,2448],"valid"],[[2449,2450],"disallowed"],[[2451,2472],"valid"],[[2473,2473],"disallowed"],[[2474,2480],"valid"],[[2481,2481],"disallowed"],[[2482,2482],"valid"],[[2483,2485],"disallowed"],[[2486,2489],"valid"],[[2490,2491],"disallowed"],[[2492,2492],"valid"],[[2493,2493],"valid"],[[2494,2500],"valid"],[[2501,2502],"disallowed"],[[2503,2504],"valid"],[[2505,2506],"disallowed"],[[2507,2509],"valid"],[[2510,2510],"valid"],[[2511,2518],"disallowed"],[[2519,2519],"valid"],[[2520,2523],"disallowed"],[[2524,2524],"mapped",[2465,2492]],[[2525,2525],"mapped",[2466,2492]],[[2526,2526],"disallowed"],[[2527,2527],"mapped",[2479,2492]],[[2528,2531],"valid"],[[2532,2533],"disallowed"],[[2534,2545],"valid"],[[2546,2554],"valid",[],"NV8"],[[2555,2555],"valid",[],"NV8"],[[2556,2560],"disallowed"],[[2561,2561],"valid"],[[2562,2562],"valid"],[[2563,2563],"valid"],[[2564,2564],"disallowed"],[[2565,2570],"valid"],[[2571,2574],"disallowed"],[[2575,2576],"valid"],[[2577,2578],"disallowed"],[[2579,2600],"valid"],[[2601,2601],"disallowed"],[[2602,2608],"valid"],[[2609,2609],"disallowed"],[[2610,2610],"valid"],[[2611,2611],"mapped",[2610,2620]],[[2612,2612],"disallowed"],[[2613,2613],"valid"],[[2614,2614],"mapped",[2616,2620]],[[2615,2615],"disallowed"],[[2616,2617],"valid"],[[2618,2619],"disallowed"],[[2620,2620],"valid"],[[2621,2621],"disallowed"],[[2622,2626],"valid"],[[2627,2630],"disallowed"],[[2631,2632],"valid"],[[2633,2634],"disallowed"],[[2635,2637],"valid"],[[2638,2640],"disallowed"],[[2641,2641],"valid"],[[2642,2648],"disallowed"],[[2649,2649],"mapped",[2582,2620]],[[2650,2650],"mapped",[2583,2620]],[[2651,2651],"mapped",[2588,2620]],[[2652,2652],"valid"],[[2653,2653],"disallowed"],[[2654,2654],"mapped",[2603,2620]],[[2655,2661],"disallowed"],[[2662,2676],"valid"],[[2677,2677],"valid"],[[2678,2688],"disallowed"],[[2689,2691],"valid"],[[2692,2692],"disallowed"],[[2693,2699],"valid"],[[2700,2700],"valid"],[[2701,2701],"valid"],[[2702,2702],"disallowed"],[[2703,2705],"valid"],[[2706,2706],"disallowed"],[[2707,2728],"valid"],[[2729,2729],"disallowed"],[[2730,2736],"valid"],[[2737,2737],"disallowed"],[[2738,2739],"valid"],[[2740,2740],"disallowed"],[[2741,2745],"valid"],[[2746,2747],"disallowed"],[[2748,2757],"valid"],[[2758,2758],"disallowed"],[[2759,2761],"valid"],[[2762,2762],"disallowed"],[[2763,2765],"valid"],[[2766,2767],"disallowed"],[[2768,2768],"valid"],[[2769,2783],"disallowed"],[[2784,2784],"valid"],[[2785,2787],"valid"],[[2788,2789],"disallowed"],[[2790,2799],"valid"],[[2800,2800],"valid",[],"NV8"],[[2801,2801],"valid",[],"NV8"],[[2802,2808],"disallowed"],[[2809,2809],"valid"],[[2810,2816],"disallowed"],[[2817,2819],"valid"],[[2820,2820],"disallowed"],[[2821,2828],"valid"],[[2829,2830],"disallowed"],[[2831,2832],"valid"],[[2833,2834],"disallowed"],[[2835,2856],"valid"],[[2857,2857],"disallowed"],[[2858,2864],"valid"],[[2865,2865],"disallowed"],[[2866,2867],"valid"],[[2868,2868],"disallowed"],[[2869,2869],"valid"],[[2870,2873],"valid"],[[2874,2875],"disallowed"],[[2876,2883],"valid"],[[2884,2884],"valid"],[[2885,2886],"disallowed"],[[2887,2888],"valid"],[[2889,2890],"disallowed"],[[2891,2893],"valid"],[[2894,2901],"disallowed"],[[2902,2903],"valid"],[[2904,2907],"disallowed"],[[2908,2908],"mapped",[2849,2876]],[[2909,2909],"mapped",[2850,2876]],[[2910,2910],"disallowed"],[[2911,2913],"valid"],[[2914,2915],"valid"],[[2916,2917],"disallowed"],[[2918,2927],"valid"],[[2928,2928],"valid",[],"NV8"],[[2929,2929],"valid"],[[2930,2935],"valid",[],"NV8"],[[2936,2945],"disallowed"],[[2946,2947],"valid"],[[2948,2948],"disallowed"],[[2949,2954],"valid"],[[2955,2957],"disallowed"],[[2958,2960],"valid"],[[2961,2961],"disallowed"],[[2962,2965],"valid"],[[2966,2968],"disallowed"],[[2969,2970],"valid"],[[2971,2971],"disallowed"],[[2972,2972],"valid"],[[2973,2973],"disallowed"],[[2974,2975],"valid"],[[2976,2978],"disallowed"],[[2979,2980],"valid"],[[2981,2983],"disallowed"],[[2984,2986],"valid"],[[2987,2989],"disallowed"],[[2990,2997],"valid"],[[2998,2998],"valid"],[[2999,3001],"valid"],[[3002,3005],"disallowed"],[[3006,3010],"valid"],[[3011,3013],"disallowed"],[[3014,3016],"valid"],[[3017,3017],"disallowed"],[[3018,3021],"valid"],[[3022,3023],"disallowed"],[[3024,3024],"valid"],[[3025,3030],"disallowed"],[[3031,3031],"valid"],[[3032,3045],"disallowed"],[[3046,3046],"valid"],[[3047,3055],"valid"],[[3056,3058],"valid",[],"NV8"],[[3059,3066],"valid",[],"NV8"],[[3067,3071],"disallowed"],[[3072,3072],"valid"],[[3073,3075],"valid"],[[3076,3076],"disallowed"],[[3077,3084],"valid"],[[3085,3085],"disallowed"],[[3086,3088],"valid"],[[3089,3089],"disallowed"],[[3090,3112],"valid"],[[3113,3113],"disallowed"],[[3114,3123],"valid"],[[3124,3124],"valid"],[[3125,3129],"valid"],[[3130,3132],"disallowed"],[[3133,3133],"valid"],[[3134,3140],"valid"],[[3141,3141],"disallowed"],[[3142,3144],"valid"],[[3145,3145],"disallowed"],[[3146,3149],"valid"],[[3150,3156],"disallowed"],[[3157,3158],"valid"],[[3159,3159],"disallowed"],[[3160,3161],"valid"],[[3162,3162],"valid"],[[3163,3167],"disallowed"],[[3168,3169],"valid"],[[3170,3171],"valid"],[[3172,3173],"disallowed"],[[3174,3183],"valid"],[[3184,3191],"disallowed"],[[3192,3199],"valid",[],"NV8"],[[3200,3200],"disallowed"],[[3201,3201],"valid"],[[3202,3203],"valid"],[[3204,3204],"disallowed"],[[3205,3212],"valid"],[[3213,3213],"disallowed"],[[3214,3216],"valid"],[[3217,3217],"disallowed"],[[3218,3240],"valid"],[[3241,3241],"disallowed"],[[3242,3251],"valid"],[[3252,3252],"disallowed"],[[3253,3257],"valid"],[[3258,3259],"disallowed"],[[3260,3261],"valid"],[[3262,3268],"valid"],[[3269,3269],"disallowed"],[[3270,3272],"valid"],[[3273,3273],"disallowed"],[[3274,3277],"valid"],[[3278,3284],"disallowed"],[[3285,3286],"valid"],[[3287,3293],"disallowed"],[[3294,3294],"valid"],[[3295,3295],"disallowed"],[[3296,3297],"valid"],[[3298,3299],"valid"],[[3300,3301],"disallowed"],[[3302,3311],"valid"],[[3312,3312],"disallowed"],[[3313,3314],"valid"],[[3315,3328],"disallowed"],[[3329,3329],"valid"],[[3330,3331],"valid"],[[3332,3332],"disallowed"],[[3333,3340],"valid"],[[3341,3341],"disallowed"],[[3342,3344],"valid"],[[3345,3345],"disallowed"],[[3346,3368],"valid"],[[3369,3369],"valid"],[[3370,3385],"valid"],[[3386,3386],"valid"],[[3387,3388],"disallowed"],[[3389,3389],"valid"],[[3390,3395],"valid"],[[3396,3396],"valid"],[[3397,3397],"disallowed"],[[3398,3400],"valid"],[[3401,3401],"disallowed"],[[3402,3405],"valid"],[[3406,3406],"valid"],[[3407,3414],"disallowed"],[[3415,3415],"valid"],[[3416,3422],"disallowed"],[[3423,3423],"valid"],[[3424,3425],"valid"],[[3426,3427],"valid"],[[3428,3429],"disallowed"],[[3430,3439],"valid"],[[3440,3445],"valid",[],"NV8"],[[3446,3448],"disallowed"],[[3449,3449],"valid",[],"NV8"],[[3450,3455],"valid"],[[3456,3457],"disallowed"],[[3458,3459],"valid"],[[3460,3460],"disallowed"],[[3461,3478],"valid"],[[3479,3481],"disallowed"],[[3482,3505],"valid"],[[3506,3506],"disallowed"],[[3507,3515],"valid"],[[3516,3516],"disallowed"],[[3517,3517],"valid"],[[3518,3519],"disallowed"],[[3520,3526],"valid"],[[3527,3529],"disallowed"],[[3530,3530],"valid"],[[3531,3534],"disallowed"],[[3535,3540],"valid"],[[3541,3541],"disallowed"],[[3542,3542],"valid"],[[3543,3543],"disallowed"],[[3544,3551],"valid"],[[3552,3557],"disallowed"],[[3558,3567],"valid"],[[3568,3569],"disallowed"],[[3570,3571],"valid"],[[3572,3572],"valid",[],"NV8"],[[3573,3584],"disallowed"],[[3585,3634],"valid"],[[3635,3635],"mapped",[3661,3634]],[[3636,3642],"valid"],[[3643,3646],"disallowed"],[[3647,3647],"valid",[],"NV8"],[[3648,3662],"valid"],[[3663,3663],"valid",[],"NV8"],[[3664,3673],"valid"],[[3674,3675],"valid",[],"NV8"],[[3676,3712],"disallowed"],[[3713,3714],"valid"],[[3715,3715],"disallowed"],[[3716,3716],"valid"],[[3717,3718],"disallowed"],[[3719,3720],"valid"],[[3721,3721],"disallowed"],[[3722,3722],"valid"],[[3723,3724],"disallowed"],[[3725,3725],"valid"],[[3726,3731],"disallowed"],[[3732,3735],"valid"],[[3736,3736],"disallowed"],[[3737,3743],"valid"],[[3744,3744],"disallowed"],[[3745,3747],"valid"],[[3748,3748],"disallowed"],[[3749,3749],"valid"],[[3750,3750],"disallowed"],[[3751,3751],"valid"],[[3752,3753],"disallowed"],[[3754,3755],"valid"],[[3756,3756],"disallowed"],[[3757,3762],"valid"],[[3763,3763],"mapped",[3789,3762]],[[3764,3769],"valid"],[[3770,3770],"disallowed"],[[3771,3773],"valid"],[[3774,3775],"disallowed"],[[3776,3780],"valid"],[[3781,3781],"disallowed"],[[3782,3782],"valid"],[[3783,3783],"disallowed"],[[3784,3789],"valid"],[[3790,3791],"disallowed"],[[3792,3801],"valid"],[[3802,3803],"disallowed"],[[3804,3804],"mapped",[3755,3737]],[[3805,3805],"mapped",[3755,3745]],[[3806,3807],"valid"],[[3808,3839],"disallowed"],[[3840,3840],"valid"],[[3841,3850],"valid",[],"NV8"],[[3851,3851],"valid"],[[3852,3852],"mapped",[3851]],[[3853,3863],"valid",[],"NV8"],[[3864,3865],"valid"],[[3866,3871],"valid",[],"NV8"],[[3872,3881],"valid"],[[3882,3892],"valid",[],"NV8"],[[3893,3893],"valid"],[[3894,3894],"valid",[],"NV8"],[[3895,3895],"valid"],[[3896,3896],"valid",[],"NV8"],[[3897,3897],"valid"],[[3898,3901],"valid",[],"NV8"],[[3902,3906],"valid"],[[3907,3907],"mapped",[3906,4023]],[[3908,3911],"valid"],[[3912,3912],"disallowed"],[[3913,3916],"valid"],[[3917,3917],"mapped",[3916,4023]],[[3918,3921],"valid"],[[3922,3922],"mapped",[3921,4023]],[[3923,3926],"valid"],[[3927,3927],"mapped",[3926,4023]],[[3928,3931],"valid"],[[3932,3932],"mapped",[3931,4023]],[[3933,3944],"valid"],[[3945,3945],"mapped",[3904,4021]],[[3946,3946],"valid"],[[3947,3948],"valid"],[[3949,3952],"disallowed"],[[3953,3954],"valid"],[[3955,3955],"mapped",[3953,3954]],[[3956,3956],"valid"],[[3957,3957],"mapped",[3953,3956]],[[3958,3958],"mapped",[4018,3968]],[[3959,3959],"mapped",[4018,3953,3968]],[[3960,3960],"mapped",[4019,3968]],[[3961,3961],"mapped",[4019,3953,3968]],[[3962,3968],"valid"],[[3969,3969],"mapped",[3953,3968]],[[3970,3972],"valid"],[[3973,3973],"valid",[],"NV8"],[[3974,3979],"valid"],[[3980,3983],"valid"],[[3984,3986],"valid"],[[3987,3987],"mapped",[3986,4023]],[[3988,3989],"valid"],[[3990,3990],"valid"],[[3991,3991],"valid"],[[3992,3992],"disallowed"],[[3993,3996],"valid"],[[3997,3997],"mapped",[3996,4023]],[[3998,4001],"valid"],[[4002,4002],"mapped",[4001,4023]],[[4003,4006],"valid"],[[4007,4007],"mapped",[4006,4023]],[[4008,4011],"valid"],[[4012,4012],"mapped",[4011,4023]],[[4013,4013],"valid"],[[4014,4016],"valid"],[[4017,4023],"valid"],[[4024,4024],"valid"],[[4025,4025],"mapped",[3984,4021]],[[4026,4028],"valid"],[[4029,4029],"disallowed"],[[4030,4037],"valid",[],"NV8"],[[4038,4038],"valid"],[[4039,4044],"valid",[],"NV8"],[[4045,4045],"disallowed"],[[4046,4046],"valid",[],"NV8"],[[4047,4047],"valid",[],"NV8"],[[4048,4049],"valid",[],"NV8"],[[4050,4052],"valid",[],"NV8"],[[4053,4056],"valid",[],"NV8"],[[4057,4058],"valid",[],"NV8"],[[4059,4095],"disallowed"],[[4096,4129],"valid"],[[4130,4130],"valid"],[[4131,4135],"valid"],[[4136,4136],"valid"],[[4137,4138],"valid"],[[4139,4139],"valid"],[[4140,4146],"valid"],[[4147,4149],"valid"],[[4150,4153],"valid"],[[4154,4159],"valid"],[[4160,4169],"valid"],[[4170,4175],"valid",[],"NV8"],[[4176,4185],"valid"],[[4186,4249],"valid"],[[4250,4253],"valid"],[[4254,4255],"valid",[],"NV8"],[[4256,4293],"disallowed"],[[4294,4294],"disallowed"],[[4295,4295],"mapped",[11559]],[[4296,4300],"disallowed"],[[4301,4301],"mapped",[11565]],[[4302,4303],"disallowed"],[[4304,4342],"valid"],[[4343,4344],"valid"],[[4345,4346],"valid"],[[4347,4347],"valid",[],"NV8"],[[4348,4348],"mapped",[4316]],[[4349,4351],"valid"],[[4352,4441],"valid",[],"NV8"],[[4442,4446],"valid",[],"NV8"],[[4447,4448],"disallowed"],[[4449,4514],"valid",[],"NV8"],[[4515,4519],"valid",[],"NV8"],[[4520,4601],"valid",[],"NV8"],[[4602,4607],"valid",[],"NV8"],[[4608,4614],"valid"],[[4615,4615],"valid"],[[4616,4678],"valid"],[[4679,4679],"valid"],[[4680,4680],"valid"],[[4681,4681],"disallowed"],[[4682,4685],"valid"],[[4686,4687],"disallowed"],[[4688,4694],"valid"],[[4695,4695],"disallowed"],[[4696,4696],"valid"],[[4697,4697],"disallowed"],[[4698,4701],"valid"],[[4702,4703],"disallowed"],[[4704,4742],"valid"],[[4743,4743],"valid"],[[4744,4744],"valid"],[[4745,4745],"disallowed"],[[4746,4749],"valid"],[[4750,4751],"disallowed"],[[4752,4782],"valid"],[[4783,4783],"valid"],[[4784,4784],"valid"],[[4785,4785],"disallowed"],[[4786,4789],"valid"],[[4790,4791],"disallowed"],[[4792,4798],"valid"],[[4799,4799],"disallowed"],[[4800,4800],"valid"],[[4801,4801],"disallowed"],[[4802,4805],"valid"],[[4806,4807],"disallowed"],[[4808,4814],"valid"],[[4815,4815],"valid"],[[4816,4822],"valid"],[[4823,4823],"disallowed"],[[4824,4846],"valid"],[[4847,4847],"valid"],[[4848,4878],"valid"],[[4879,4879],"valid"],[[4880,4880],"valid"],[[4881,4881],"disallowed"],[[4882,4885],"valid"],[[4886,4887],"disallowed"],[[4888,4894],"valid"],[[4895,4895],"valid"],[[4896,4934],"valid"],[[4935,4935],"valid"],[[4936,4954],"valid"],[[4955,4956],"disallowed"],[[4957,4958],"valid"],[[4959,4959],"valid"],[[4960,4960],"valid",[],"NV8"],[[4961,4988],"valid",[],"NV8"],[[4989,4991],"disallowed"],[[4992,5007],"valid"],[[5008,5017],"valid",[],"NV8"],[[5018,5023],"disallowed"],[[5024,5108],"valid"],[[5109,5109],"valid"],[[5110,5111],"disallowed"],[[5112,5112],"mapped",[5104]],[[5113,5113],"mapped",[5105]],[[5114,5114],"mapped",[5106]],[[5115,5115],"mapped",[5107]],[[5116,5116],"mapped",[5108]],[[5117,5117],"mapped",[5109]],[[5118,5119],"disallowed"],[[5120,5120],"valid",[],"NV8"],[[5121,5740],"valid"],[[5741,5742],"valid",[],"NV8"],[[5743,5750],"valid"],[[5751,5759],"valid"],[[5760,5760],"disallowed"],[[5761,5786],"valid"],[[5787,5788],"valid",[],"NV8"],[[5789,5791],"disallowed"],[[5792,5866],"valid"],[[5867,5872],"valid",[],"NV8"],[[5873,5880],"valid"],[[5881,5887],"disallowed"],[[5888,5900],"valid"],[[5901,5901],"disallowed"],[[5902,5908],"valid"],[[5909,5919],"disallowed"],[[5920,5940],"valid"],[[5941,5942],"valid",[],"NV8"],[[5943,5951],"disallowed"],[[5952,5971],"valid"],[[5972,5983],"disallowed"],[[5984,5996],"valid"],[[5997,5997],"disallowed"],[[5998,6000],"valid"],[[6001,6001],"disallowed"],[[6002,6003],"valid"],[[6004,6015],"disallowed"],[[6016,6067],"valid"],[[6068,6069],"disallowed"],[[6070,6099],"valid"],[[6100,6102],"valid",[],"NV8"],[[6103,6103],"valid"],[[6104,6107],"valid",[],"NV8"],[[6108,6108],"valid"],[[6109,6109],"valid"],[[6110,6111],"disallowed"],[[6112,6121],"valid"],[[6122,6127],"disallowed"],[[6128,6137],"valid",[],"NV8"],[[6138,6143],"disallowed"],[[6144,6149],"valid",[],"NV8"],[[6150,6150],"disallowed"],[[6151,6154],"valid",[],"NV8"],[[6155,6157],"ignored"],[[6158,6158],"disallowed"],[[6159,6159],"disallowed"],[[6160,6169],"valid"],[[6170,6175],"disallowed"],[[6176,6263],"valid"],[[6264,6271],"disallowed"],[[6272,6313],"valid"],[[6314,6314],"valid"],[[6315,6319],"disallowed"],[[6320,6389],"valid"],[[6390,6399],"disallowed"],[[6400,6428],"valid"],[[6429,6430],"valid"],[[6431,6431],"disallowed"],[[6432,6443],"valid"],[[6444,6447],"disallowed"],[[6448,6459],"valid"],[[6460,6463],"disallowed"],[[6464,6464],"valid",[],"NV8"],[[6465,6467],"disallowed"],[[6468,6469],"valid",[],"NV8"],[[6470,6509],"valid"],[[6510,6511],"disallowed"],[[6512,6516],"valid"],[[6517,6527],"disallowed"],[[6528,6569],"valid"],[[6570,6571],"valid"],[[6572,6575],"disallowed"],[[6576,6601],"valid"],[[6602,6607],"disallowed"],[[6608,6617],"valid"],[[6618,6618],"valid",[],"XV8"],[[6619,6621],"disallowed"],[[6622,6623],"valid",[],"NV8"],[[6624,6655],"valid",[],"NV8"],[[6656,6683],"valid"],[[6684,6685],"disallowed"],[[6686,6687],"valid",[],"NV8"],[[6688,6750],"valid"],[[6751,6751],"disallowed"],[[6752,6780],"valid"],[[6781,6782],"disallowed"],[[6783,6793],"valid"],[[6794,6799],"disallowed"],[[6800,6809],"valid"],[[6810,6815],"disallowed"],[[6816,6822],"valid",[],"NV8"],[[6823,6823],"valid"],[[6824,6829],"valid",[],"NV8"],[[6830,6831],"disallowed"],[[6832,6845],"valid"],[[6846,6846],"valid",[],"NV8"],[[6847,6911],"disallowed"],[[6912,6987],"valid"],[[6988,6991],"disallowed"],[[6992,7001],"valid"],[[7002,7018],"valid",[],"NV8"],[[7019,7027],"valid"],[[7028,7036],"valid",[],"NV8"],[[7037,7039],"disallowed"],[[7040,7082],"valid"],[[7083,7085],"valid"],[[7086,7097],"valid"],[[7098,7103],"valid"],[[7104,7155],"valid"],[[7156,7163],"disallowed"],[[7164,7167],"valid",[],"NV8"],[[7168,7223],"valid"],[[7224,7226],"disallowed"],[[7227,7231],"valid",[],"NV8"],[[7232,7241],"valid"],[[7242,7244],"disallowed"],[[7245,7293],"valid"],[[7294,7295],"valid",[],"NV8"],[[7296,7359],"disallowed"],[[7360,7367],"valid",[],"NV8"],[[7368,7375],"disallowed"],[[7376,7378],"valid"],[[7379,7379],"valid",[],"NV8"],[[7380,7410],"valid"],[[7411,7414],"valid"],[[7415,7415],"disallowed"],[[7416,7417],"valid"],[[7418,7423],"disallowed"],[[7424,7467],"valid"],[[7468,7468],"mapped",[97]],[[7469,7469],"mapped",[230]],[[7470,7470],"mapped",[98]],[[7471,7471],"valid"],[[7472,7472],"mapped",[100]],[[7473,7473],"mapped",[101]],[[7474,7474],"mapped",[477]],[[7475,7475],"mapped",[103]],[[7476,7476],"mapped",[104]],[[7477,7477],"mapped",[105]],[[7478,7478],"mapped",[106]],[[7479,7479],"mapped",[107]],[[7480,7480],"mapped",[108]],[[7481,7481],"mapped",[109]],[[7482,7482],"mapped",[110]],[[7483,7483],"valid"],[[7484,7484],"mapped",[111]],[[7485,7485],"mapped",[547]],[[7486,7486],"mapped",[112]],[[7487,7487],"mapped",[114]],[[7488,7488],"mapped",[116]],[[7489,7489],"mapped",[117]],[[7490,7490],"mapped",[119]],[[7491,7491],"mapped",[97]],[[7492,7492],"mapped",[592]],[[7493,7493],"mapped",[593]],[[7494,7494],"mapped",[7426]],[[7495,7495],"mapped",[98]],[[7496,7496],"mapped",[100]],[[7497,7497],"mapped",[101]],[[7498,7498],"mapped",[601]],[[7499,7499],"mapped",[603]],[[7500,7500],"mapped",[604]],[[7501,7501],"mapped",[103]],[[7502,7502],"valid"],[[7503,7503],"mapped",[107]],[[7504,7504],"mapped",[109]],[[7505,7505],"mapped",[331]],[[7506,7506],"mapped",[111]],[[7507,7507],"mapped",[596]],[[7508,7508],"mapped",[7446]],[[7509,7509],"mapped",[7447]],[[7510,7510],"mapped",[112]],[[7511,7511],"mapped",[116]],[[7512,7512],"mapped",[117]],[[7513,7513],"mapped",[7453]],[[7514,7514],"mapped",[623]],[[7515,7515],"mapped",[118]],[[7516,7516],"mapped",[7461]],[[7517,7517],"mapped",[946]],[[7518,7518],"mapped",[947]],[[7519,7519],"mapped",[948]],[[7520,7520],"mapped",[966]],[[7521,7521],"mapped",[967]],[[7522,7522],"mapped",[105]],[[7523,7523],"mapped",[114]],[[7524,7524],"mapped",[117]],[[7525,7525],"mapped",[118]],[[7526,7526],"mapped",[946]],[[7527,7527],"mapped",[947]],[[7528,7528],"mapped",[961]],[[7529,7529],"mapped",[966]],[[7530,7530],"mapped",[967]],[[7531,7531],"valid"],[[7532,7543],"valid"],[[7544,7544],"mapped",[1085]],[[7545,7578],"valid"],[[7579,7579],"mapped",[594]],[[7580,7580],"mapped",[99]],[[7581,7581],"mapped",[597]],[[7582,7582],"mapped",[240]],[[7583,7583],"mapped",[604]],[[7584,7584],"mapped",[102]],[[7585,7585],"mapped",[607]],[[7586,7586],"mapped",[609]],[[7587,7587],"mapped",[613]],[[7588,7588],"mapped",[616]],[[7589,7589],"mapped",[617]],[[7590,7590],"mapped",[618]],[[7591,7591],"mapped",[7547]],[[7592,7592],"mapped",[669]],[[7593,7593],"mapped",[621]],[[7594,7594],"mapped",[7557]],[[7595,7595],"mapped",[671]],[[7596,7596],"mapped",[625]],[[7597,7597],"mapped",[624]],[[7598,7598],"mapped",[626]],[[7599,7599],"mapped",[627]],[[7600,7600],"mapped",[628]],[[7601,7601],"mapped",[629]],[[7602,7602],"mapped",[632]],[[7603,7603],"mapped",[642]],[[7604,7604],"mapped",[643]],[[7605,7605],"mapped",[427]],[[7606,7606],"mapped",[649]],[[7607,7607],"mapped",[650]],[[7608,7608],"mapped",[7452]],[[7609,7609],"mapped",[651]],[[7610,7610],"mapped",[652]],[[7611,7611],"mapped",[122]],[[7612,7612],"mapped",[656]],[[7613,7613],"mapped",[657]],[[7614,7614],"mapped",[658]],[[7615,7615],"mapped",[952]],[[7616,7619],"valid"],[[7620,7626],"valid"],[[7627,7654],"valid"],[[7655,7669],"valid"],[[7670,7675],"disallowed"],[[7676,7676],"valid"],[[7677,7677],"valid"],[[7678,7679],"valid"],[[7680,7680],"mapped",[7681]],[[7681,7681],"valid"],[[7682,7682],"mapped",[7683]],[[7683,7683],"valid"],[[7684,7684],"mapped",[7685]],[[7685,7685],"valid"],[[7686,7686],"mapped",[7687]],[[7687,7687],"valid"],[[7688,7688],"mapped",[7689]],[[7689,7689],"valid"],[[7690,7690],"mapped",[7691]],[[7691,7691],"valid"],[[7692,7692],"mapped",[7693]],[[7693,7693],"valid"],[[7694,7694],"mapped",[7695]],[[7695,7695],"valid"],[[7696,7696],"mapped",[7697]],[[7697,7697],"valid"],[[7698,7698],"mapped",[7699]],[[7699,7699],"valid"],[[7700,7700],"mapped",[7701]],[[7701,7701],"valid"],[[7702,7702],"mapped",[7703]],[[7703,7703],"valid"],[[7704,7704],"mapped",[7705]],[[7705,7705],"valid"],[[7706,7706],"mapped",[7707]],[[7707,7707],"valid"],[[7708,7708],"mapped",[7709]],[[7709,7709],"valid"],[[7710,7710],"mapped",[7711]],[[7711,7711],"valid"],[[7712,7712],"mapped",[7713]],[[7713,7713],"valid"],[[7714,7714],"mapped",[7715]],[[7715,7715],"valid"],[[7716,7716],"mapped",[7717]],[[7717,7717],"valid"],[[7718,7718],"mapped",[7719]],[[7719,7719],"valid"],[[7720,7720],"mapped",[7721]],[[7721,7721],"valid"],[[7722,7722],"mapped",[7723]],[[7723,7723],"valid"],[[7724,7724],"mapped",[7725]],[[7725,7725],"valid"],[[7726,7726],"mapped",[7727]],[[7727,7727],"valid"],[[7728,7728],"mapped",[7729]],[[7729,7729],"valid"],[[7730,7730],"mapped",[7731]],[[7731,7731],"valid"],[[7732,7732],"mapped",[7733]],[[7733,7733],"valid"],[[7734,7734],"mapped",[7735]],[[7735,7735],"valid"],[[7736,7736],"mapped",[7737]],[[7737,7737],"valid"],[[7738,7738],"mapped",[7739]],[[7739,7739],"valid"],[[7740,7740],"mapped",[7741]],[[7741,7741],"valid"],[[7742,7742],"mapped",[7743]],[[7743,7743],"valid"],[[7744,7744],"mapped",[7745]],[[7745,7745],"valid"],[[7746,7746],"mapped",[7747]],[[7747,7747],"valid"],[[7748,7748],"mapped",[7749]],[[7749,7749],"valid"],[[7750,7750],"mapped",[7751]],[[7751,7751],"valid"],[[7752,7752],"mapped",[7753]],[[7753,7753],"valid"],[[7754,7754],"mapped",[7755]],[[7755,7755],"valid"],[[7756,7756],"mapped",[7757]],[[7757,7757],"valid"],[[7758,7758],"mapped",[7759]],[[7759,7759],"valid"],[[7760,7760],"mapped",[7761]],[[7761,7761],"valid"],[[7762,7762],"mapped",[7763]],[[7763,7763],"valid"],[[7764,7764],"mapped",[7765]],[[7765,7765],"valid"],[[7766,7766],"mapped",[7767]],[[7767,7767],"valid"],[[7768,7768],"mapped",[7769]],[[7769,7769],"valid"],[[7770,7770],"mapped",[7771]],[[7771,7771],"valid"],[[7772,7772],"mapped",[7773]],[[7773,7773],"valid"],[[7774,7774],"mapped",[7775]],[[7775,7775],"valid"],[[7776,7776],"mapped",[7777]],[[7777,7777],"valid"],[[7778,7778],"mapped",[7779]],[[7779,7779],"valid"],[[7780,7780],"mapped",[7781]],[[7781,7781],"valid"],[[7782,7782],"mapped",[7783]],[[7783,7783],"valid"],[[7784,7784],"mapped",[7785]],[[7785,7785],"valid"],[[7786,7786],"mapped",[7787]],[[7787,7787],"valid"],[[7788,7788],"mapped",[7789]],[[7789,7789],"valid"],[[7790,7790],"mapped",[7791]],[[7791,7791],"valid"],[[7792,7792],"mapped",[7793]],[[7793,7793],"valid"],[[7794,7794],"mapped",[7795]],[[7795,7795],"valid"],[[7796,7796],"mapped",[7797]],[[7797,7797],"valid"],[[7798,7798],"mapped",[7799]],[[7799,7799],"valid"],[[7800,7800],"mapped",[7801]],[[7801,7801],"valid"],[[7802,7802],"mapped",[7803]],[[7803,7803],"valid"],[[7804,7804],"mapped",[7805]],[[7805,7805],"valid"],[[7806,7806],"mapped",[7807]],[[7807,7807],"valid"],[[7808,7808],"mapped",[7809]],[[7809,7809],"valid"],[[7810,7810],"mapped",[7811]],[[7811,7811],"valid"],[[7812,7812],"mapped",[7813]],[[7813,7813],"valid"],[[7814,7814],"mapped",[7815]],[[7815,7815],"valid"],[[7816,7816],"mapped",[7817]],[[7817,7817],"valid"],[[7818,7818],"mapped",[7819]],[[7819,7819],"valid"],[[7820,7820],"mapped",[7821]],[[7821,7821],"valid"],[[7822,7822],"mapped",[7823]],[[7823,7823],"valid"],[[7824,7824],"mapped",[7825]],[[7825,7825],"valid"],[[7826,7826],"mapped",[7827]],[[7827,7827],"valid"],[[7828,7828],"mapped",[7829]],[[7829,7833],"valid"],[[7834,7834],"mapped",[97,702]],[[7835,7835],"mapped",[7777]],[[7836,7837],"valid"],[[7838,7838],"mapped",[115,115]],[[7839,7839],"valid"],[[7840,7840],"mapped",[7841]],[[7841,7841],"valid"],[[7842,7842],"mapped",[7843]],[[7843,7843],"valid"],[[7844,7844],"mapped",[7845]],[[7845,7845],"valid"],[[7846,7846],"mapped",[7847]],[[7847,7847],"valid"],[[7848,7848],"mapped",[7849]],[[7849,7849],"valid"],[[7850,7850],"mapped",[7851]],[[7851,7851],"valid"],[[7852,7852],"mapped",[7853]],[[7853,7853],"valid"],[[7854,7854],"mapped",[7855]],[[7855,7855],"valid"],[[7856,7856],"mapped",[7857]],[[7857,7857],"valid"],[[7858,7858],"mapped",[7859]],[[7859,7859],"valid"],[[7860,7860],"mapped",[7861]],[[7861,7861],"valid"],[[7862,7862],"mapped",[7863]],[[7863,7863],"valid"],[[7864,7864],"mapped",[7865]],[[7865,7865],"valid"],[[7866,7866],"mapped",[7867]],[[7867,7867],"valid"],[[7868,7868],"mapped",[7869]],[[7869,7869],"valid"],[[7870,7870],"mapped",[7871]],[[7871,7871],"valid"],[[7872,7872],"mapped",[7873]],[[7873,7873],"valid"],[[7874,7874],"mapped",[7875]],[[7875,7875],"valid"],[[7876,7876],"mapped",[7877]],[[7877,7877],"valid"],[[7878,7878],"mapped",[7879]],[[7879,7879],"valid"],[[7880,7880],"mapped",[7881]],[[7881,7881],"valid"],[[7882,7882],"mapped",[7883]],[[7883,7883],"valid"],[[7884,7884],"mapped",[7885]],[[7885,7885],"valid"],[[7886,7886],"mapped",[7887]],[[7887,7887],"valid"],[[7888,7888],"mapped",[7889]],[[7889,7889],"valid"],[[7890,7890],"mapped",[7891]],[[7891,7891],"valid"],[[7892,7892],"mapped",[7893]],[[7893,7893],"valid"],[[7894,7894],"mapped",[7895]],[[7895,7895],"valid"],[[7896,7896],"mapped",[7897]],[[7897,7897],"valid"],[[7898,7898],"mapped",[7899]],[[7899,7899],"valid"],[[7900,7900],"mapped",[7901]],[[7901,7901],"valid"],[[7902,7902],"mapped",[7903]],[[7903,7903],"valid"],[[7904,7904],"mapped",[7905]],[[7905,7905],"valid"],[[7906,7906],"mapped",[7907]],[[7907,7907],"valid"],[[7908,7908],"mapped",[7909]],[[7909,7909],"valid"],[[7910,7910],"mapped",[7911]],[[7911,7911],"valid"],[[7912,7912],"mapped",[7913]],[[7913,7913],"valid"],[[7914,7914],"mapped",[7915]],[[7915,7915],"valid"],[[7916,7916],"mapped",[7917]],[[7917,7917],"valid"],[[7918,7918],"mapped",[7919]],[[7919,7919],"valid"],[[7920,7920],"mapped",[7921]],[[7921,7921],"valid"],[[7922,7922],"mapped",[7923]],[[7923,7923],"valid"],[[7924,7924],"mapped",[7925]],[[7925,7925],"valid"],[[7926,7926],"mapped",[7927]],[[7927,7927],"valid"],[[7928,7928],"mapped",[7929]],[[7929,7929],"valid"],[[7930,7930],"mapped",[7931]],[[7931,7931],"valid"],[[7932,7932],"mapped",[7933]],[[7933,7933],"valid"],[[7934,7934],"mapped",[7935]],[[7935,7935],"valid"],[[7936,7943],"valid"],[[7944,7944],"mapped",[7936]],[[7945,7945],"mapped",[7937]],[[7946,7946],"mapped",[7938]],[[7947,7947],"mapped",[7939]],[[7948,7948],"mapped",[7940]],[[7949,7949],"mapped",[7941]],[[7950,7950],"mapped",[7942]],[[7951,7951],"mapped",[7943]],[[7952,7957],"valid"],[[7958,7959],"disallowed"],[[7960,7960],"mapped",[7952]],[[7961,7961],"mapped",[7953]],[[7962,7962],"mapped",[7954]],[[7963,7963],"mapped",[7955]],[[7964,7964],"mapped",[7956]],[[7965,7965],"mapped",[7957]],[[7966,7967],"disallowed"],[[7968,7975],"valid"],[[7976,7976],"mapped",[7968]],[[7977,7977],"mapped",[7969]],[[7978,7978],"mapped",[7970]],[[7979,7979],"mapped",[7971]],[[7980,7980],"mapped",[7972]],[[7981,7981],"mapped",[7973]],[[7982,7982],"mapped",[7974]],[[7983,7983],"mapped",[7975]],[[7984,7991],"valid"],[[7992,7992],"mapped",[7984]],[[7993,7993],"mapped",[7985]],[[7994,7994],"mapped",[7986]],[[7995,7995],"mapped",[7987]],[[7996,7996],"mapped",[7988]],[[7997,7997],"mapped",[7989]],[[7998,7998],"mapped",[7990]],[[7999,7999],"mapped",[7991]],[[8000,8005],"valid"],[[8006,8007],"disallowed"],[[8008,8008],"mapped",[8000]],[[8009,8009],"mapped",[8001]],[[8010,8010],"mapped",[8002]],[[8011,8011],"mapped",[8003]],[[8012,8012],"mapped",[8004]],[[8013,8013],"mapped",[8005]],[[8014,8015],"disallowed"],[[8016,8023],"valid"],[[8024,8024],"disallowed"],[[8025,8025],"mapped",[8017]],[[8026,8026],"disallowed"],[[8027,8027],"mapped",[8019]],[[8028,8028],"disallowed"],[[8029,8029],"mapped",[8021]],[[8030,8030],"disallowed"],[[8031,8031],"mapped",[8023]],[[8032,8039],"valid"],[[8040,8040],"mapped",[8032]],[[8041,8041],"mapped",[8033]],[[8042,8042],"mapped",[8034]],[[8043,8043],"mapped",[8035]],[[8044,8044],"mapped",[8036]],[[8045,8045],"mapped",[8037]],[[8046,8046],"mapped",[8038]],[[8047,8047],"mapped",[8039]],[[8048,8048],"valid"],[[8049,8049],"mapped",[940]],[[8050,8050],"valid"],[[8051,8051],"mapped",[941]],[[8052,8052],"valid"],[[8053,8053],"mapped",[942]],[[8054,8054],"valid"],[[8055,8055],"mapped",[943]],[[8056,8056],"valid"],[[8057,8057],"mapped",[972]],[[8058,8058],"valid"],[[8059,8059],"mapped",[973]],[[8060,8060],"valid"],[[8061,8061],"mapped",[974]],[[8062,8063],"disallowed"],[[8064,8064],"mapped",[7936,953]],[[8065,8065],"mapped",[7937,953]],[[8066,8066],"mapped",[7938,953]],[[8067,8067],"mapped",[7939,953]],[[8068,8068],"mapped",[7940,953]],[[8069,8069],"mapped",[7941,953]],[[8070,8070],"mapped",[7942,953]],[[8071,8071],"mapped",[7943,953]],[[8072,8072],"mapped",[7936,953]],[[8073,8073],"mapped",[7937,953]],[[8074,8074],"mapped",[7938,953]],[[8075,8075],"mapped",[7939,953]],[[8076,8076],"mapped",[7940,953]],[[8077,8077],"mapped",[7941,953]],[[8078,8078],"mapped",[7942,953]],[[8079,8079],"mapped",[7943,953]],[[8080,8080],"mapped",[7968,953]],[[8081,8081],"mapped",[7969,953]],[[8082,8082],"mapped",[7970,953]],[[8083,8083],"mapped",[7971,953]],[[8084,8084],"mapped",[7972,953]],[[8085,8085],"mapped",[7973,953]],[[8086,8086],"mapped",[7974,953]],[[8087,8087],"mapped",[7975,953]],[[8088,8088],"mapped",[7968,953]],[[8089,8089],"mapped",[7969,953]],[[8090,8090],"mapped",[7970,953]],[[8091,8091],"mapped",[7971,953]],[[8092,8092],"mapped",[7972,953]],[[8093,8093],"mapped",[7973,953]],[[8094,8094],"mapped",[7974,953]],[[8095,8095],"mapped",[7975,953]],[[8096,8096],"mapped",[8032,953]],[[8097,8097],"mapped",[8033,953]],[[8098,8098],"mapped",[8034,953]],[[8099,8099],"mapped",[8035,953]],[[8100,8100],"mapped",[8036,953]],[[8101,8101],"mapped",[8037,953]],[[8102,8102],"mapped",[8038,953]],[[8103,8103],"mapped",[8039,953]],[[8104,8104],"mapped",[8032,953]],[[8105,8105],"mapped",[8033,953]],[[8106,8106],"mapped",[8034,953]],[[8107,8107],"mapped",[8035,953]],[[8108,8108],"mapped",[8036,953]],[[8109,8109],"mapped",[8037,953]],[[8110,8110],"mapped",[8038,953]],[[8111,8111],"mapped",[8039,953]],[[8112,8113],"valid"],[[8114,8114],"mapped",[8048,953]],[[8115,8115],"mapped",[945,953]],[[8116,8116],"mapped",[940,953]],[[8117,8117],"disallowed"],[[8118,8118],"valid"],[[8119,8119],"mapped",[8118,953]],[[8120,8120],"mapped",[8112]],[[8121,8121],"mapped",[8113]],[[8122,8122],"mapped",[8048]],[[8123,8123],"mapped",[940]],[[8124,8124],"mapped",[945,953]],[[8125,8125],"disallowed_STD3_mapped",[32,787]],[[8126,8126],"mapped",[953]],[[8127,8127],"disallowed_STD3_mapped",[32,787]],[[8128,8128],"disallowed_STD3_mapped",[32,834]],[[8129,8129],"disallowed_STD3_mapped",[32,776,834]],[[8130,8130],"mapped",[8052,953]],[[8131,8131],"mapped",[951,953]],[[8132,8132],"mapped",[942,953]],[[8133,8133],"disallowed"],[[8134,8134],"valid"],[[8135,8135],"mapped",[8134,953]],[[8136,8136],"mapped",[8050]],[[8137,8137],"mapped",[941]],[[8138,8138],"mapped",[8052]],[[8139,8139],"mapped",[942]],[[8140,8140],"mapped",[951,953]],[[8141,8141],"disallowed_STD3_mapped",[32,787,768]],[[8142,8142],"disallowed_STD3_mapped",[32,787,769]],[[8143,8143],"disallowed_STD3_mapped",[32,787,834]],[[8144,8146],"valid"],[[8147,8147],"mapped",[912]],[[8148,8149],"disallowed"],[[8150,8151],"valid"],[[8152,8152],"mapped",[8144]],[[8153,8153],"mapped",[8145]],[[8154,8154],"mapped",[8054]],[[8155,8155],"mapped",[943]],[[8156,8156],"disallowed"],[[8157,8157],"disallowed_STD3_mapped",[32,788,768]],[[8158,8158],"disallowed_STD3_mapped",[32,788,769]],[[8159,8159],"disallowed_STD3_mapped",[32,788,834]],[[8160,8162],"valid"],[[8163,8163],"mapped",[944]],[[8164,8167],"valid"],[[8168,8168],"mapped",[8160]],[[8169,8169],"mapped",[8161]],[[8170,8170],"mapped",[8058]],[[8171,8171],"mapped",[973]],[[8172,8172],"mapped",[8165]],[[8173,8173],"disallowed_STD3_mapped",[32,776,768]],[[8174,8174],"disallowed_STD3_mapped",[32,776,769]],[[8175,8175],"disallowed_STD3_mapped",[96]],[[8176,8177],"disallowed"],[[8178,8178],"mapped",[8060,953]],[[8179,8179],"mapped",[969,953]],[[8180,8180],"mapped",[974,953]],[[8181,8181],"disallowed"],[[8182,8182],"valid"],[[8183,8183],"mapped",[8182,953]],[[8184,8184],"mapped",[8056]],[[8185,8185],"mapped",[972]],[[8186,8186],"mapped",[8060]],[[8187,8187],"mapped",[974]],[[8188,8188],"mapped",[969,953]],[[8189,8189],"disallowed_STD3_mapped",[32,769]],[[8190,8190],"disallowed_STD3_mapped",[32,788]],[[8191,8191],"disallowed"],[[8192,8202],"disallowed_STD3_mapped",[32]],[[8203,8203],"ignored"],[[8204,8205],"deviation",[]],[[8206,8207],"disallowed"],[[8208,8208],"valid",[],"NV8"],[[8209,8209],"mapped",[8208]],[[8210,8214],"valid",[],"NV8"],[[8215,8215],"disallowed_STD3_mapped",[32,819]],[[8216,8227],"valid",[],"NV8"],[[8228,8230],"disallowed"],[[8231,8231],"valid",[],"NV8"],[[8232,8238],"disallowed"],[[8239,8239],"disallowed_STD3_mapped",[32]],[[8240,8242],"valid",[],"NV8"],[[8243,8243],"mapped",[8242,8242]],[[8244,8244],"mapped",[8242,8242,8242]],[[8245,8245],"valid",[],"NV8"],[[8246,8246],"mapped",[8245,8245]],[[8247,8247],"mapped",[8245,8245,8245]],[[8248,8251],"valid",[],"NV8"],[[8252,8252],"disallowed_STD3_mapped",[33,33]],[[8253,8253],"valid",[],"NV8"],[[8254,8254],"disallowed_STD3_mapped",[32,773]],[[8255,8262],"valid",[],"NV8"],[[8263,8263],"disallowed_STD3_mapped",[63,63]],[[8264,8264],"disallowed_STD3_mapped",[63,33]],[[8265,8265],"disallowed_STD3_mapped",[33,63]],[[8266,8269],"valid",[],"NV8"],[[8270,8274],"valid",[],"NV8"],[[8275,8276],"valid",[],"NV8"],[[8277,8278],"valid",[],"NV8"],[[8279,8279],"mapped",[8242,8242,8242,8242]],[[8280,8286],"valid",[],"NV8"],[[8287,8287],"disallowed_STD3_mapped",[32]],[[8288,8288],"ignored"],[[8289,8291],"disallowed"],[[8292,8292],"ignored"],[[8293,8293],"disallowed"],[[8294,8297],"disallowed"],[[8298,8303],"disallowed"],[[8304,8304],"mapped",[48]],[[8305,8305],"mapped",[105]],[[8306,8307],"disallowed"],[[8308,8308],"mapped",[52]],[[8309,8309],"mapped",[53]],[[8310,8310],"mapped",[54]],[[8311,8311],"mapped",[55]],[[8312,8312],"mapped",[56]],[[8313,8313],"mapped",[57]],[[8314,8314],"disallowed_STD3_mapped",[43]],[[8315,8315],"mapped",[8722]],[[8316,8316],"disallowed_STD3_mapped",[61]],[[8317,8317],"disallowed_STD3_mapped",[40]],[[8318,8318],"disallowed_STD3_mapped",[41]],[[8319,8319],"mapped",[110]],[[8320,8320],"mapped",[48]],[[8321,8321],"mapped",[49]],[[8322,8322],"mapped",[50]],[[8323,8323],"mapped",[51]],[[8324,8324],"mapped",[52]],[[8325,8325],"mapped",[53]],[[8326,8326],"mapped",[54]],[[8327,8327],"mapped",[55]],[[8328,8328],"mapped",[56]],[[8329,8329],"mapped",[57]],[[8330,8330],"disallowed_STD3_mapped",[43]],[[8331,8331],"mapped",[8722]],[[8332,8332],"disallowed_STD3_mapped",[61]],[[8333,8333],"disallowed_STD3_mapped",[40]],[[8334,8334],"disallowed_STD3_mapped",[41]],[[8335,8335],"disallowed"],[[8336,8336],"mapped",[97]],[[8337,8337],"mapped",[101]],[[8338,8338],"mapped",[111]],[[8339,8339],"mapped",[120]],[[8340,8340],"mapped",[601]],[[8341,8341],"mapped",[104]],[[8342,8342],"mapped",[107]],[[8343,8343],"mapped",[108]],[[8344,8344],"mapped",[109]],[[8345,8345],"mapped",[110]],[[8346,8346],"mapped",[112]],[[8347,8347],"mapped",[115]],[[8348,8348],"mapped",[116]],[[8349,8351],"disallowed"],[[8352,8359],"valid",[],"NV8"],[[8360,8360],"mapped",[114,115]],[[8361,8362],"valid",[],"NV8"],[[8363,8363],"valid",[],"NV8"],[[8364,8364],"valid",[],"NV8"],[[8365,8367],"valid",[],"NV8"],[[8368,8369],"valid",[],"NV8"],[[8370,8373],"valid",[],"NV8"],[[8374,8376],"valid",[],"NV8"],[[8377,8377],"valid",[],"NV8"],[[8378,8378],"valid",[],"NV8"],[[8379,8381],"valid",[],"NV8"],[[8382,8382],"valid",[],"NV8"],[[8383,8399],"disallowed"],[[8400,8417],"valid",[],"NV8"],[[8418,8419],"valid",[],"NV8"],[[8420,8426],"valid",[],"NV8"],[[8427,8427],"valid",[],"NV8"],[[8428,8431],"valid",[],"NV8"],[[8432,8432],"valid",[],"NV8"],[[8433,8447],"disallowed"],[[8448,8448],"disallowed_STD3_mapped",[97,47,99]],[[8449,8449],"disallowed_STD3_mapped",[97,47,115]],[[8450,8450],"mapped",[99]],[[8451,8451],"mapped",[176,99]],[[8452,8452],"valid",[],"NV8"],[[8453,8453],"disallowed_STD3_mapped",[99,47,111]],[[8454,8454],"disallowed_STD3_mapped",[99,47,117]],[[8455,8455],"mapped",[603]],[[8456,8456],"valid",[],"NV8"],[[8457,8457],"mapped",[176,102]],[[8458,8458],"mapped",[103]],[[8459,8462],"mapped",[104]],[[8463,8463],"mapped",[295]],[[8464,8465],"mapped",[105]],[[8466,8467],"mapped",[108]],[[8468,8468],"valid",[],"NV8"],[[8469,8469],"mapped",[110]],[[8470,8470],"mapped",[110,111]],[[8471,8472],"valid",[],"NV8"],[[8473,8473],"mapped",[112]],[[8474,8474],"mapped",[113]],[[8475,8477],"mapped",[114]],[[8478,8479],"valid",[],"NV8"],[[8480,8480],"mapped",[115,109]],[[8481,8481],"mapped",[116,101,108]],[[8482,8482],"mapped",[116,109]],[[8483,8483],"valid",[],"NV8"],[[8484,8484],"mapped",[122]],[[8485,8485],"valid",[],"NV8"],[[8486,8486],"mapped",[969]],[[8487,8487],"valid",[],"NV8"],[[8488,8488],"mapped",[122]],[[8489,8489],"valid",[],"NV8"],[[8490,8490],"mapped",[107]],[[8491,8491],"mapped",[229]],[[8492,8492],"mapped",[98]],[[8493,8493],"mapped",[99]],[[8494,8494],"valid",[],"NV8"],[[8495,8496],"mapped",[101]],[[8497,8497],"mapped",[102]],[[8498,8498],"disallowed"],[[8499,8499],"mapped",[109]],[[8500,8500],"mapped",[111]],[[8501,8501],"mapped",[1488]],[[8502,8502],"mapped",[1489]],[[8503,8503],"mapped",[1490]],[[8504,8504],"mapped",[1491]],[[8505,8505],"mapped",[105]],[[8506,8506],"valid",[],"NV8"],[[8507,8507],"mapped",[102,97,120]],[[8508,8508],"mapped",[960]],[[8509,8510],"mapped",[947]],[[8511,8511],"mapped",[960]],[[8512,8512],"mapped",[8721]],[[8513,8516],"valid",[],"NV8"],[[8517,8518],"mapped",[100]],[[8519,8519],"mapped",[101]],[[8520,8520],"mapped",[105]],[[8521,8521],"mapped",[106]],[[8522,8523],"valid",[],"NV8"],[[8524,8524],"valid",[],"NV8"],[[8525,8525],"valid",[],"NV8"],[[8526,8526],"valid"],[[8527,8527],"valid",[],"NV8"],[[8528,8528],"mapped",[49,8260,55]],[[8529,8529],"mapped",[49,8260,57]],[[8530,8530],"mapped",[49,8260,49,48]],[[8531,8531],"mapped",[49,8260,51]],[[8532,8532],"mapped",[50,8260,51]],[[8533,8533],"mapped",[49,8260,53]],[[8534,8534],"mapped",[50,8260,53]],[[8535,8535],"mapped",[51,8260,53]],[[8536,8536],"mapped",[52,8260,53]],[[8537,8537],"mapped",[49,8260,54]],[[8538,8538],"mapped",[53,8260,54]],[[8539,8539],"mapped",[49,8260,56]],[[8540,8540],"mapped",[51,8260,56]],[[8541,8541],"mapped",[53,8260,56]],[[8542,8542],"mapped",[55,8260,56]],[[8543,8543],"mapped",[49,8260]],[[8544,8544],"mapped",[105]],[[8545,8545],"mapped",[105,105]],[[8546,8546],"mapped",[105,105,105]],[[8547,8547],"mapped",[105,118]],[[8548,8548],"mapped",[118]],[[8549,8549],"mapped",[118,105]],[[8550,8550],"mapped",[118,105,105]],[[8551,8551],"mapped",[118,105,105,105]],[[8552,8552],"mapped",[105,120]],[[8553,8553],"mapped",[120]],[[8554,8554],"mapped",[120,105]],[[8555,8555],"mapped",[120,105,105]],[[8556,8556],"mapped",[108]],[[8557,8557],"mapped",[99]],[[8558,8558],"mapped",[100]],[[8559,8559],"mapped",[109]],[[8560,8560],"mapped",[105]],[[8561,8561],"mapped",[105,105]],[[8562,8562],"mapped",[105,105,105]],[[8563,8563],"mapped",[105,118]],[[8564,8564],"mapped",[118]],[[8565,8565],"mapped",[118,105]],[[8566,8566],"mapped",[118,105,105]],[[8567,8567],"mapped",[118,105,105,105]],[[8568,8568],"mapped",[105,120]],[[8569,8569],"mapped",[120]],[[8570,8570],"mapped",[120,105]],[[8571,8571],"mapped",[120,105,105]],[[8572,8572],"mapped",[108]],[[8573,8573],"mapped",[99]],[[8574,8574],"mapped",[100]],[[8575,8575],"mapped",[109]],[[8576,8578],"valid",[],"NV8"],[[8579,8579],"disallowed"],[[8580,8580],"valid"],[[8581,8584],"valid",[],"NV8"],[[8585,8585],"mapped",[48,8260,51]],[[8586,8587],"valid",[],"NV8"],[[8588,8591],"disallowed"],[[8592,8682],"valid",[],"NV8"],[[8683,8691],"valid",[],"NV8"],[[8692,8703],"valid",[],"NV8"],[[8704,8747],"valid",[],"NV8"],[[8748,8748],"mapped",[8747,8747]],[[8749,8749],"mapped",[8747,8747,8747]],[[8750,8750],"valid",[],"NV8"],[[8751,8751],"mapped",[8750,8750]],[[8752,8752],"mapped",[8750,8750,8750]],[[8753,8799],"valid",[],"NV8"],[[8800,8800],"disallowed_STD3_valid"],[[8801,8813],"valid",[],"NV8"],[[8814,8815],"disallowed_STD3_valid"],[[8816,8945],"valid",[],"NV8"],[[8946,8959],"valid",[],"NV8"],[[8960,8960],"valid",[],"NV8"],[[8961,8961],"valid",[],"NV8"],[[8962,9000],"valid",[],"NV8"],[[9001,9001],"mapped",[12296]],[[9002,9002],"mapped",[12297]],[[9003,9082],"valid",[],"NV8"],[[9083,9083],"valid",[],"NV8"],[[9084,9084],"valid",[],"NV8"],[[9085,9114],"valid",[],"NV8"],[[9115,9166],"valid",[],"NV8"],[[9167,9168],"valid",[],"NV8"],[[9169,9179],"valid",[],"NV8"],[[9180,9191],"valid",[],"NV8"],[[9192,9192],"valid",[],"NV8"],[[9193,9203],"valid",[],"NV8"],[[9204,9210],"valid",[],"NV8"],[[9211,9215],"disallowed"],[[9216,9252],"valid",[],"NV8"],[[9253,9254],"valid",[],"NV8"],[[9255,9279],"disallowed"],[[9280,9290],"valid",[],"NV8"],[[9291,9311],"disallowed"],[[9312,9312],"mapped",[49]],[[9313,9313],"mapped",[50]],[[9314,9314],"mapped",[51]],[[9315,9315],"mapped",[52]],[[9316,9316],"mapped",[53]],[[9317,9317],"mapped",[54]],[[9318,9318],"mapped",[55]],[[9319,9319],"mapped",[56]],[[9320,9320],"mapped",[57]],[[9321,9321],"mapped",[49,48]],[[9322,9322],"mapped",[49,49]],[[9323,9323],"mapped",[49,50]],[[9324,9324],"mapped",[49,51]],[[9325,9325],"mapped",[49,52]],[[9326,9326],"mapped",[49,53]],[[9327,9327],"mapped",[49,54]],[[9328,9328],"mapped",[49,55]],[[9329,9329],"mapped",[49,56]],[[9330,9330],"mapped",[49,57]],[[9331,9331],"mapped",[50,48]],[[9332,9332],"disallowed_STD3_mapped",[40,49,41]],[[9333,9333],"disallowed_STD3_mapped",[40,50,41]],[[9334,9334],"disallowed_STD3_mapped",[40,51,41]],[[9335,9335],"disallowed_STD3_mapped",[40,52,41]],[[9336,9336],"disallowed_STD3_mapped",[40,53,41]],[[9337,9337],"disallowed_STD3_mapped",[40,54,41]],[[9338,9338],"disallowed_STD3_mapped",[40,55,41]],[[9339,9339],"disallowed_STD3_mapped",[40,56,41]],[[9340,9340],"disallowed_STD3_mapped",[40,57,41]],[[9341,9341],"disallowed_STD3_mapped",[40,49,48,41]],[[9342,9342],"disallowed_STD3_mapped",[40,49,49,41]],[[9343,9343],"disallowed_STD3_mapped",[40,49,50,41]],[[9344,9344],"disallowed_STD3_mapped",[40,49,51,41]],[[9345,9345],"disallowed_STD3_mapped",[40,49,52,41]],[[9346,9346],"disallowed_STD3_mapped",[40,49,53,41]],[[9347,9347],"disallowed_STD3_mapped",[40,49,54,41]],[[9348,9348],"disallowed_STD3_mapped",[40,49,55,41]],[[9349,9349],"disallowed_STD3_mapped",[40,49,56,41]],[[9350,9350],"disallowed_STD3_mapped",[40,49,57,41]],[[9351,9351],"disallowed_STD3_mapped",[40,50,48,41]],[[9352,9371],"disallowed"],[[9372,9372],"disallowed_STD3_mapped",[40,97,41]],[[9373,9373],"disallowed_STD3_mapped",[40,98,41]],[[9374,9374],"disallowed_STD3_mapped",[40,99,41]],[[9375,9375],"disallowed_STD3_mapped",[40,100,41]],[[9376,9376],"disallowed_STD3_mapped",[40,101,41]],[[9377,9377],"disallowed_STD3_mapped",[40,102,41]],[[9378,9378],"disallowed_STD3_mapped",[40,103,41]],[[9379,9379],"disallowed_STD3_mapped",[40,104,41]],[[9380,9380],"disallowed_STD3_mapped",[40,105,41]],[[9381,9381],"disallowed_STD3_mapped",[40,106,41]],[[9382,9382],"disallowed_STD3_mapped",[40,107,41]],[[9383,9383],"disallowed_STD3_mapped",[40,108,41]],[[9384,9384],"disallowed_STD3_mapped",[40,109,41]],[[9385,9385],"disallowed_STD3_mapped",[40,110,41]],[[9386,9386],"disallowed_STD3_mapped",[40,111,41]],[[9387,9387],"disallowed_STD3_mapped",[40,112,41]],[[9388,9388],"disallowed_STD3_mapped",[40,113,41]],[[9389,9389],"disallowed_STD3_mapped",[40,114,41]],[[9390,9390],"disallowed_STD3_mapped",[40,115,41]],[[9391,9391],"disallowed_STD3_mapped",[40,116,41]],[[9392,9392],"disallowed_STD3_mapped",[40,117,41]],[[9393,9393],"disallowed_STD3_mapped",[40,118,41]],[[9394,9394],"disallowed_STD3_mapped",[40,119,41]],[[9395,9395],"disallowed_STD3_mapped",[40,120,41]],[[9396,9396],"disallowed_STD3_mapped",[40,121,41]],[[9397,9397],"disallowed_STD3_mapped",[40,122,41]],[[9398,9398],"mapped",[97]],[[9399,9399],"mapped",[98]],[[9400,9400],"mapped",[99]],[[9401,9401],"mapped",[100]],[[9402,9402],"mapped",[101]],[[9403,9403],"mapped",[102]],[[9404,9404],"mapped",[103]],[[9405,9405],"mapped",[104]],[[9406,9406],"mapped",[105]],[[9407,9407],"mapped",[106]],[[9408,9408],"mapped",[107]],[[9409,9409],"mapped",[108]],[[9410,9410],"mapped",[109]],[[9411,9411],"mapped",[110]],[[9412,9412],"mapped",[111]],[[9413,9413],"mapped",[112]],[[9414,9414],"mapped",[113]],[[9415,9415],"mapped",[114]],[[9416,9416],"mapped",[115]],[[9417,9417],"mapped",[116]],[[9418,9418],"mapped",[117]],[[9419,9419],"mapped",[118]],[[9420,9420],"mapped",[119]],[[9421,9421],"mapped",[120]],[[9422,9422],"mapped",[121]],[[9423,9423],"mapped",[122]],[[9424,9424],"mapped",[97]],[[9425,9425],"mapped",[98]],[[9426,9426],"mapped",[99]],[[9427,9427],"mapped",[100]],[[9428,9428],"mapped",[101]],[[9429,9429],"mapped",[102]],[[9430,9430],"mapped",[103]],[[9431,9431],"mapped",[104]],[[9432,9432],"mapped",[105]],[[9433,9433],"mapped",[106]],[[9434,9434],"mapped",[107]],[[9435,9435],"mapped",[108]],[[9436,9436],"mapped",[109]],[[9437,9437],"mapped",[110]],[[9438,9438],"mapped",[111]],[[9439,9439],"mapped",[112]],[[9440,9440],"mapped",[113]],[[9441,9441],"mapped",[114]],[[9442,9442],"mapped",[115]],[[9443,9443],"mapped",[116]],[[9444,9444],"mapped",[117]],[[9445,9445],"mapped",[118]],[[9446,9446],"mapped",[119]],[[9447,9447],"mapped",[120]],[[9448,9448],"mapped",[121]],[[9449,9449],"mapped",[122]],[[9450,9450],"mapped",[48]],[[9451,9470],"valid",[],"NV8"],[[9471,9471],"valid",[],"NV8"],[[9472,9621],"valid",[],"NV8"],[[9622,9631],"valid",[],"NV8"],[[9632,9711],"valid",[],"NV8"],[[9712,9719],"valid",[],"NV8"],[[9720,9727],"valid",[],"NV8"],[[9728,9747],"valid",[],"NV8"],[[9748,9749],"valid",[],"NV8"],[[9750,9751],"valid",[],"NV8"],[[9752,9752],"valid",[],"NV8"],[[9753,9753],"valid",[],"NV8"],[[9754,9839],"valid",[],"NV8"],[[9840,9841],"valid",[],"NV8"],[[9842,9853],"valid",[],"NV8"],[[9854,9855],"valid",[],"NV8"],[[9856,9865],"valid",[],"NV8"],[[9866,9873],"valid",[],"NV8"],[[9874,9884],"valid",[],"NV8"],[[9885,9885],"valid",[],"NV8"],[[9886,9887],"valid",[],"NV8"],[[9888,9889],"valid",[],"NV8"],[[9890,9905],"valid",[],"NV8"],[[9906,9906],"valid",[],"NV8"],[[9907,9916],"valid",[],"NV8"],[[9917,9919],"valid",[],"NV8"],[[9920,9923],"valid",[],"NV8"],[[9924,9933],"valid",[],"NV8"],[[9934,9934],"valid",[],"NV8"],[[9935,9953],"valid",[],"NV8"],[[9954,9954],"valid",[],"NV8"],[[9955,9955],"valid",[],"NV8"],[[9956,9959],"valid",[],"NV8"],[[9960,9983],"valid",[],"NV8"],[[9984,9984],"valid",[],"NV8"],[[9985,9988],"valid",[],"NV8"],[[9989,9989],"valid",[],"NV8"],[[9990,9993],"valid",[],"NV8"],[[9994,9995],"valid",[],"NV8"],[[9996,10023],"valid",[],"NV8"],[[10024,10024],"valid",[],"NV8"],[[10025,10059],"valid",[],"NV8"],[[10060,10060],"valid",[],"NV8"],[[10061,10061],"valid",[],"NV8"],[[10062,10062],"valid",[],"NV8"],[[10063,10066],"valid",[],"NV8"],[[10067,10069],"valid",[],"NV8"],[[10070,10070],"valid",[],"NV8"],[[10071,10071],"valid",[],"NV8"],[[10072,10078],"valid",[],"NV8"],[[10079,10080],"valid",[],"NV8"],[[10081,10087],"valid",[],"NV8"],[[10088,10101],"valid",[],"NV8"],[[10102,10132],"valid",[],"NV8"],[[10133,10135],"valid",[],"NV8"],[[10136,10159],"valid",[],"NV8"],[[10160,10160],"valid",[],"NV8"],[[10161,10174],"valid",[],"NV8"],[[10175,10175],"valid",[],"NV8"],[[10176,10182],"valid",[],"NV8"],[[10183,10186],"valid",[],"NV8"],[[10187,10187],"valid",[],"NV8"],[[10188,10188],"valid",[],"NV8"],[[10189,10189],"valid",[],"NV8"],[[10190,10191],"valid",[],"NV8"],[[10192,10219],"valid",[],"NV8"],[[10220,10223],"valid",[],"NV8"],[[10224,10239],"valid",[],"NV8"],[[10240,10495],"valid",[],"NV8"],[[10496,10763],"valid",[],"NV8"],[[10764,10764],"mapped",[8747,8747,8747,8747]],[[10765,10867],"valid",[],"NV8"],[[10868,10868],"disallowed_STD3_mapped",[58,58,61]],[[10869,10869],"disallowed_STD3_mapped",[61,61]],[[10870,10870],"disallowed_STD3_mapped",[61,61,61]],[[10871,10971],"valid",[],"NV8"],[[10972,10972],"mapped",[10973,824]],[[10973,11007],"valid",[],"NV8"],[[11008,11021],"valid",[],"NV8"],[[11022,11027],"valid",[],"NV8"],[[11028,11034],"valid",[],"NV8"],[[11035,11039],"valid",[],"NV8"],[[11040,11043],"valid",[],"NV8"],[[11044,11084],"valid",[],"NV8"],[[11085,11087],"valid",[],"NV8"],[[11088,11092],"valid",[],"NV8"],[[11093,11097],"valid",[],"NV8"],[[11098,11123],"valid",[],"NV8"],[[11124,11125],"disallowed"],[[11126,11157],"valid",[],"NV8"],[[11158,11159],"disallowed"],[[11160,11193],"valid",[],"NV8"],[[11194,11196],"disallowed"],[[11197,11208],"valid",[],"NV8"],[[11209,11209],"disallowed"],[[11210,11217],"valid",[],"NV8"],[[11218,11243],"disallowed"],[[11244,11247],"valid",[],"NV8"],[[11248,11263],"disallowed"],[[11264,11264],"mapped",[11312]],[[11265,11265],"mapped",[11313]],[[11266,11266],"mapped",[11314]],[[11267,11267],"mapped",[11315]],[[11268,11268],"mapped",[11316]],[[11269,11269],"mapped",[11317]],[[11270,11270],"mapped",[11318]],[[11271,11271],"mapped",[11319]],[[11272,11272],"mapped",[11320]],[[11273,11273],"mapped",[11321]],[[11274,11274],"mapped",[11322]],[[11275,11275],"mapped",[11323]],[[11276,11276],"mapped",[11324]],[[11277,11277],"mapped",[11325]],[[11278,11278],"mapped",[11326]],[[11279,11279],"mapped",[11327]],[[11280,11280],"mapped",[11328]],[[11281,11281],"mapped",[11329]],[[11282,11282],"mapped",[11330]],[[11283,11283],"mapped",[11331]],[[11284,11284],"mapped",[11332]],[[11285,11285],"mapped",[11333]],[[11286,11286],"mapped",[11334]],[[11287,11287],"mapped",[11335]],[[11288,11288],"mapped",[11336]],[[11289,11289],"mapped",[11337]],[[11290,11290],"mapped",[11338]],[[11291,11291],"mapped",[11339]],[[11292,11292],"mapped",[11340]],[[11293,11293],"mapped",[11341]],[[11294,11294],"mapped",[11342]],[[11295,11295],"mapped",[11343]],[[11296,11296],"mapped",[11344]],[[11297,11297],"mapped",[11345]],[[11298,11298],"mapped",[11346]],[[11299,11299],"mapped",[11347]],[[11300,11300],"mapped",[11348]],[[11301,11301],"mapped",[11349]],[[11302,11302],"mapped",[11350]],[[11303,11303],"mapped",[11351]],[[11304,11304],"mapped",[11352]],[[11305,11305],"mapped",[11353]],[[11306,11306],"mapped",[11354]],[[11307,11307],"mapped",[11355]],[[11308,11308],"mapped",[11356]],[[11309,11309],"mapped",[11357]],[[11310,11310],"mapped",[11358]],[[11311,11311],"disallowed"],[[11312,11358],"valid"],[[11359,11359],"disallowed"],[[11360,11360],"mapped",[11361]],[[11361,11361],"valid"],[[11362,11362],"mapped",[619]],[[11363,11363],"mapped",[7549]],[[11364,11364],"mapped",[637]],[[11365,11366],"valid"],[[11367,11367],"mapped",[11368]],[[11368,11368],"valid"],[[11369,11369],"mapped",[11370]],[[11370,11370],"valid"],[[11371,11371],"mapped",[11372]],[[11372,11372],"valid"],[[11373,11373],"mapped",[593]],[[11374,11374],"mapped",[625]],[[11375,11375],"mapped",[592]],[[11376,11376],"mapped",[594]],[[11377,11377],"valid"],[[11378,11378],"mapped",[11379]],[[11379,11379],"valid"],[[11380,11380],"valid"],[[11381,11381],"mapped",[11382]],[[11382,11383],"valid"],[[11384,11387],"valid"],[[11388,11388],"mapped",[106]],[[11389,11389],"mapped",[118]],[[11390,11390],"mapped",[575]],[[11391,11391],"mapped",[576]],[[11392,11392],"mapped",[11393]],[[11393,11393],"valid"],[[11394,11394],"mapped",[11395]],[[11395,11395],"valid"],[[11396,11396],"mapped",[11397]],[[11397,11397],"valid"],[[11398,11398],"mapped",[11399]],[[11399,11399],"valid"],[[11400,11400],"mapped",[11401]],[[11401,11401],"valid"],[[11402,11402],"mapped",[11403]],[[11403,11403],"valid"],[[11404,11404],"mapped",[11405]],[[11405,11405],"valid"],[[11406,11406],"mapped",[11407]],[[11407,11407],"valid"],[[11408,11408],"mapped",[11409]],[[11409,11409],"valid"],[[11410,11410],"mapped",[11411]],[[11411,11411],"valid"],[[11412,11412],"mapped",[11413]],[[11413,11413],"valid"],[[11414,11414],"mapped",[11415]],[[11415,11415],"valid"],[[11416,11416],"mapped",[11417]],[[11417,11417],"valid"],[[11418,11418],"mapped",[11419]],[[11419,11419],"valid"],[[11420,11420],"mapped",[11421]],[[11421,11421],"valid"],[[11422,11422],"mapped",[11423]],[[11423,11423],"valid"],[[11424,11424],"mapped",[11425]],[[11425,11425],"valid"],[[11426,11426],"mapped",[11427]],[[11427,11427],"valid"],[[11428,11428],"mapped",[11429]],[[11429,11429],"valid"],[[11430,11430],"mapped",[11431]],[[11431,11431],"valid"],[[11432,11432],"mapped",[11433]],[[11433,11433],"valid"],[[11434,11434],"mapped",[11435]],[[11435,11435],"valid"],[[11436,11436],"mapped",[11437]],[[11437,11437],"valid"],[[11438,11438],"mapped",[11439]],[[11439,11439],"valid"],[[11440,11440],"mapped",[11441]],[[11441,11441],"valid"],[[11442,11442],"mapped",[11443]],[[11443,11443],"valid"],[[11444,11444],"mapped",[11445]],[[11445,11445],"valid"],[[11446,11446],"mapped",[11447]],[[11447,11447],"valid"],[[11448,11448],"mapped",[11449]],[[11449,11449],"valid"],[[11450,11450],"mapped",[11451]],[[11451,11451],"valid"],[[11452,11452],"mapped",[11453]],[[11453,11453],"valid"],[[11454,11454],"mapped",[11455]],[[11455,11455],"valid"],[[11456,11456],"mapped",[11457]],[[11457,11457],"valid"],[[11458,11458],"mapped",[11459]],[[11459,11459],"valid"],[[11460,11460],"mapped",[11461]],[[11461,11461],"valid"],[[11462,11462],"mapped",[11463]],[[11463,11463],"valid"],[[11464,11464],"mapped",[11465]],[[11465,11465],"valid"],[[11466,11466],"mapped",[11467]],[[11467,11467],"valid"],[[11468,11468],"mapped",[11469]],[[11469,11469],"valid"],[[11470,11470],"mapped",[11471]],[[11471,11471],"valid"],[[11472,11472],"mapped",[11473]],[[11473,11473],"valid"],[[11474,11474],"mapped",[11475]],[[11475,11475],"valid"],[[11476,11476],"mapped",[11477]],[[11477,11477],"valid"],[[11478,11478],"mapped",[11479]],[[11479,11479],"valid"],[[11480,11480],"mapped",[11481]],[[11481,11481],"valid"],[[11482,11482],"mapped",[11483]],[[11483,11483],"valid"],[[11484,11484],"mapped",[11485]],[[11485,11485],"valid"],[[11486,11486],"mapped",[11487]],[[11487,11487],"valid"],[[11488,11488],"mapped",[11489]],[[11489,11489],"valid"],[[11490,11490],"mapped",[11491]],[[11491,11492],"valid"],[[11493,11498],"valid",[],"NV8"],[[11499,11499],"mapped",[11500]],[[11500,11500],"valid"],[[11501,11501],"mapped",[11502]],[[11502,11505],"valid"],[[11506,11506],"mapped",[11507]],[[11507,11507],"valid"],[[11508,11512],"disallowed"],[[11513,11519],"valid",[],"NV8"],[[11520,11557],"valid"],[[11558,11558],"disallowed"],[[11559,11559],"valid"],[[11560,11564],"disallowed"],[[11565,11565],"valid"],[[11566,11567],"disallowed"],[[11568,11621],"valid"],[[11622,11623],"valid"],[[11624,11630],"disallowed"],[[11631,11631],"mapped",[11617]],[[11632,11632],"valid",[],"NV8"],[[11633,11646],"disallowed"],[[11647,11647],"valid"],[[11648,11670],"valid"],[[11671,11679],"disallowed"],[[11680,11686],"valid"],[[11687,11687],"disallowed"],[[11688,11694],"valid"],[[11695,11695],"disallowed"],[[11696,11702],"valid"],[[11703,11703],"disallowed"],[[11704,11710],"valid"],[[11711,11711],"disallowed"],[[11712,11718],"valid"],[[11719,11719],"disallowed"],[[11720,11726],"valid"],[[11727,11727],"disallowed"],[[11728,11734],"valid"],[[11735,11735],"disallowed"],[[11736,11742],"valid"],[[11743,11743],"disallowed"],[[11744,11775],"valid"],[[11776,11799],"valid",[],"NV8"],[[11800,11803],"valid",[],"NV8"],[[11804,11805],"valid",[],"NV8"],[[11806,11822],"valid",[],"NV8"],[[11823,11823],"valid"],[[11824,11824],"valid",[],"NV8"],[[11825,11825],"valid",[],"NV8"],[[11826,11835],"valid",[],"NV8"],[[11836,11842],"valid",[],"NV8"],[[11843,11903],"disallowed"],[[11904,11929],"valid",[],"NV8"],[[11930,11930],"disallowed"],[[11931,11934],"valid",[],"NV8"],[[11935,11935],"mapped",[27597]],[[11936,12018],"valid",[],"NV8"],[[12019,12019],"mapped",[40863]],[[12020,12031],"disallowed"],[[12032,12032],"mapped",[19968]],[[12033,12033],"mapped",[20008]],[[12034,12034],"mapped",[20022]],[[12035,12035],"mapped",[20031]],[[12036,12036],"mapped",[20057]],[[12037,12037],"mapped",[20101]],[[12038,12038],"mapped",[20108]],[[12039,12039],"mapped",[20128]],[[12040,12040],"mapped",[20154]],[[12041,12041],"mapped",[20799]],[[12042,12042],"mapped",[20837]],[[12043,12043],"mapped",[20843]],[[12044,12044],"mapped",[20866]],[[12045,12045],"mapped",[20886]],[[12046,12046],"mapped",[20907]],[[12047,12047],"mapped",[20960]],[[12048,12048],"mapped",[20981]],[[12049,12049],"mapped",[20992]],[[12050,12050],"mapped",[21147]],[[12051,12051],"mapped",[21241]],[[12052,12052],"mapped",[21269]],[[12053,12053],"mapped",[21274]],[[12054,12054],"mapped",[21304]],[[12055,12055],"mapped",[21313]],[[12056,12056],"mapped",[21340]],[[12057,12057],"mapped",[21353]],[[12058,12058],"mapped",[21378]],[[12059,12059],"mapped",[21430]],[[12060,12060],"mapped",[21448]],[[12061,12061],"mapped",[21475]],[[12062,12062],"mapped",[22231]],[[12063,12063],"mapped",[22303]],[[12064,12064],"mapped",[22763]],[[12065,12065],"mapped",[22786]],[[12066,12066],"mapped",[22794]],[[12067,12067],"mapped",[22805]],[[12068,12068],"mapped",[22823]],[[12069,12069],"mapped",[22899]],[[12070,12070],"mapped",[23376]],[[12071,12071],"mapped",[23424]],[[12072,12072],"mapped",[23544]],[[12073,12073],"mapped",[23567]],[[12074,12074],"mapped",[23586]],[[12075,12075],"mapped",[23608]],[[12076,12076],"mapped",[23662]],[[12077,12077],"mapped",[23665]],[[12078,12078],"mapped",[24027]],[[12079,12079],"mapped",[24037]],[[12080,12080],"mapped",[24049]],[[12081,12081],"mapped",[24062]],[[12082,12082],"mapped",[24178]],[[12083,12083],"mapped",[24186]],[[12084,12084],"mapped",[24191]],[[12085,12085],"mapped",[24308]],[[12086,12086],"mapped",[24318]],[[12087,12087],"mapped",[24331]],[[12088,12088],"mapped",[24339]],[[12089,12089],"mapped",[24400]],[[12090,12090],"mapped",[24417]],[[12091,12091],"mapped",[24435]],[[12092,12092],"mapped",[24515]],[[12093,12093],"mapped",[25096]],[[12094,12094],"mapped",[25142]],[[12095,12095],"mapped",[25163]],[[12096,12096],"mapped",[25903]],[[12097,12097],"mapped",[25908]],[[12098,12098],"mapped",[25991]],[[12099,12099],"mapped",[26007]],[[12100,12100],"mapped",[26020]],[[12101,12101],"mapped",[26041]],[[12102,12102],"mapped",[26080]],[[12103,12103],"mapped",[26085]],[[12104,12104],"mapped",[26352]],[[12105,12105],"mapped",[26376]],[[12106,12106],"mapped",[26408]],[[12107,12107],"mapped",[27424]],[[12108,12108],"mapped",[27490]],[[12109,12109],"mapped",[27513]],[[12110,12110],"mapped",[27571]],[[12111,12111],"mapped",[27595]],[[12112,12112],"mapped",[27604]],[[12113,12113],"mapped",[27611]],[[12114,12114],"mapped",[27663]],[[12115,12115],"mapped",[27668]],[[12116,12116],"mapped",[27700]],[[12117,12117],"mapped",[28779]],[[12118,12118],"mapped",[29226]],[[12119,12119],"mapped",[29238]],[[12120,12120],"mapped",[29243]],[[12121,12121],"mapped",[29247]],[[12122,12122],"mapped",[29255]],[[12123,12123],"mapped",[29273]],[[12124,12124],"mapped",[29275]],[[12125,12125],"mapped",[29356]],[[12126,12126],"mapped",[29572]],[[12127,12127],"mapped",[29577]],[[12128,12128],"mapped",[29916]],[[12129,12129],"mapped",[29926]],[[12130,12130],"mapped",[29976]],[[12131,12131],"mapped",[29983]],[[12132,12132],"mapped",[29992]],[[12133,12133],"mapped",[30000]],[[12134,12134],"mapped",[30091]],[[12135,12135],"mapped",[30098]],[[12136,12136],"mapped",[30326]],[[12137,12137],"mapped",[30333]],[[12138,12138],"mapped",[30382]],[[12139,12139],"mapped",[30399]],[[12140,12140],"mapped",[30446]],[[12141,12141],"mapped",[30683]],[[12142,12142],"mapped",[30690]],[[12143,12143],"mapped",[30707]],[[12144,12144],"mapped",[31034]],[[12145,12145],"mapped",[31160]],[[12146,12146],"mapped",[31166]],[[12147,12147],"mapped",[31348]],[[12148,12148],"mapped",[31435]],[[12149,12149],"mapped",[31481]],[[12150,12150],"mapped",[31859]],[[12151,12151],"mapped",[31992]],[[12152,12152],"mapped",[32566]],[[12153,12153],"mapped",[32593]],[[12154,12154],"mapped",[32650]],[[12155,12155],"mapped",[32701]],[[12156,12156],"mapped",[32769]],[[12157,12157],"mapped",[32780]],[[12158,12158],"mapped",[32786]],[[12159,12159],"mapped",[32819]],[[12160,12160],"mapped",[32895]],[[12161,12161],"mapped",[32905]],[[12162,12162],"mapped",[33251]],[[12163,12163],"mapped",[33258]],[[12164,12164],"mapped",[33267]],[[12165,12165],"mapped",[33276]],[[12166,12166],"mapped",[33292]],[[12167,12167],"mapped",[33307]],[[12168,12168],"mapped",[33311]],[[12169,12169],"mapped",[33390]],[[12170,12170],"mapped",[33394]],[[12171,12171],"mapped",[33400]],[[12172,12172],"mapped",[34381]],[[12173,12173],"mapped",[34411]],[[12174,12174],"mapped",[34880]],[[12175,12175],"mapped",[34892]],[[12176,12176],"mapped",[34915]],[[12177,12177],"mapped",[35198]],[[12178,12178],"mapped",[35211]],[[12179,12179],"mapped",[35282]],[[12180,12180],"mapped",[35328]],[[12181,12181],"mapped",[35895]],[[12182,12182],"mapped",[35910]],[[12183,12183],"mapped",[35925]],[[12184,12184],"mapped",[35960]],[[12185,12185],"mapped",[35997]],[[12186,12186],"mapped",[36196]],[[12187,12187],"mapped",[36208]],[[12188,12188],"mapped",[36275]],[[12189,12189],"mapped",[36523]],[[12190,12190],"mapped",[36554]],[[12191,12191],"mapped",[36763]],[[12192,12192],"mapped",[36784]],[[12193,12193],"mapped",[36789]],[[12194,12194],"mapped",[37009]],[[12195,12195],"mapped",[37193]],[[12196,12196],"mapped",[37318]],[[12197,12197],"mapped",[37324]],[[12198,12198],"mapped",[37329]],[[12199,12199],"mapped",[38263]],[[12200,12200],"mapped",[38272]],[[12201,12201],"mapped",[38428]],[[12202,12202],"mapped",[38582]],[[12203,12203],"mapped",[38585]],[[12204,12204],"mapped",[38632]],[[12205,12205],"mapped",[38737]],[[12206,12206],"mapped",[38750]],[[12207,12207],"mapped",[38754]],[[12208,12208],"mapped",[38761]],[[12209,12209],"mapped",[38859]],[[12210,12210],"mapped",[38893]],[[12211,12211],"mapped",[38899]],[[12212,12212],"mapped",[38913]],[[12213,12213],"mapped",[39080]],[[12214,12214],"mapped",[39131]],[[12215,12215],"mapped",[39135]],[[12216,12216],"mapped",[39318]],[[12217,12217],"mapped",[39321]],[[12218,12218],"mapped",[39340]],[[12219,12219],"mapped",[39592]],[[12220,12220],"mapped",[39640]],[[12221,12221],"mapped",[39647]],[[12222,12222],"mapped",[39717]],[[12223,12223],"mapped",[39727]],[[12224,12224],"mapped",[39730]],[[12225,12225],"mapped",[39740]],[[12226,12226],"mapped",[39770]],[[12227,12227],"mapped",[40165]],[[12228,12228],"mapped",[40565]],[[12229,12229],"mapped",[40575]],[[12230,12230],"mapped",[40613]],[[12231,12231],"mapped",[40635]],[[12232,12232],"mapped",[40643]],[[12233,12233],"mapped",[40653]],[[12234,12234],"mapped",[40657]],[[12235,12235],"mapped",[40697]],[[12236,12236],"mapped",[40701]],[[12237,12237],"mapped",[40718]],[[12238,12238],"mapped",[40723]],[[12239,12239],"mapped",[40736]],[[12240,12240],"mapped",[40763]],[[12241,12241],"mapped",[40778]],[[12242,12242],"mapped",[40786]],[[12243,12243],"mapped",[40845]],[[12244,12244],"mapped",[40860]],[[12245,12245],"mapped",[40864]],[[12246,12271],"disallowed"],[[12272,12283],"disallowed"],[[12284,12287],"disallowed"],[[12288,12288],"disallowed_STD3_mapped",[32]],[[12289,12289],"valid",[],"NV8"],[[12290,12290],"mapped",[46]],[[12291,12292],"valid",[],"NV8"],[[12293,12295],"valid"],[[12296,12329],"valid",[],"NV8"],[[12330,12333],"valid"],[[12334,12341],"valid",[],"NV8"],[[12342,12342],"mapped",[12306]],[[12343,12343],"valid",[],"NV8"],[[12344,12344],"mapped",[21313]],[[12345,12345],"mapped",[21316]],[[12346,12346],"mapped",[21317]],[[12347,12347],"valid",[],"NV8"],[[12348,12348],"valid"],[[12349,12349],"valid",[],"NV8"],[[12350,12350],"valid",[],"NV8"],[[12351,12351],"valid",[],"NV8"],[[12352,12352],"disallowed"],[[12353,12436],"valid"],[[12437,12438],"valid"],[[12439,12440],"disallowed"],[[12441,12442],"valid"],[[12443,12443],"disallowed_STD3_mapped",[32,12441]],[[12444,12444],"disallowed_STD3_mapped",[32,12442]],[[12445,12446],"valid"],[[12447,12447],"mapped",[12424,12426]],[[12448,12448],"valid",[],"NV8"],[[12449,12542],"valid"],[[12543,12543],"mapped",[12467,12488]],[[12544,12548],"disallowed"],[[12549,12588],"valid"],[[12589,12589],"valid"],[[12590,12592],"disallowed"],[[12593,12593],"mapped",[4352]],[[12594,12594],"mapped",[4353]],[[12595,12595],"mapped",[4522]],[[12596,12596],"mapped",[4354]],[[12597,12597],"mapped",[4524]],[[12598,12598],"mapped",[4525]],[[12599,12599],"mapped",[4355]],[[12600,12600],"mapped",[4356]],[[12601,12601],"mapped",[4357]],[[12602,12602],"mapped",[4528]],[[12603,12603],"mapped",[4529]],[[12604,12604],"mapped",[4530]],[[12605,12605],"mapped",[4531]],[[12606,12606],"mapped",[4532]],[[12607,12607],"mapped",[4533]],[[12608,12608],"mapped",[4378]],[[12609,12609],"mapped",[4358]],[[12610,12610],"mapped",[4359]],[[12611,12611],"mapped",[4360]],[[12612,12612],"mapped",[4385]],[[12613,12613],"mapped",[4361]],[[12614,12614],"mapped",[4362]],[[12615,12615],"mapped",[4363]],[[12616,12616],"mapped",[4364]],[[12617,12617],"mapped",[4365]],[[12618,12618],"mapped",[4366]],[[12619,12619],"mapped",[4367]],[[12620,12620],"mapped",[4368]],[[12621,12621],"mapped",[4369]],[[12622,12622],"mapped",[4370]],[[12623,12623],"mapped",[4449]],[[12624,12624],"mapped",[4450]],[[12625,12625],"mapped",[4451]],[[12626,12626],"mapped",[4452]],[[12627,12627],"mapped",[4453]],[[12628,12628],"mapped",[4454]],[[12629,12629],"mapped",[4455]],[[12630,12630],"mapped",[4456]],[[12631,12631],"mapped",[4457]],[[12632,12632],"mapped",[4458]],[[12633,12633],"mapped",[4459]],[[12634,12634],"mapped",[4460]],[[12635,12635],"mapped",[4461]],[[12636,12636],"mapped",[4462]],[[12637,12637],"mapped",[4463]],[[12638,12638],"mapped",[4464]],[[12639,12639],"mapped",[4465]],[[12640,12640],"mapped",[4466]],[[12641,12641],"mapped",[4467]],[[12642,12642],"mapped",[4468]],[[12643,12643],"mapped",[4469]],[[12644,12644],"disallowed"],[[12645,12645],"mapped",[4372]],[[12646,12646],"mapped",[4373]],[[12647,12647],"mapped",[4551]],[[12648,12648],"mapped",[4552]],[[12649,12649],"mapped",[4556]],[[12650,12650],"mapped",[4558]],[[12651,12651],"mapped",[4563]],[[12652,12652],"mapped",[4567]],[[12653,12653],"mapped",[4569]],[[12654,12654],"mapped",[4380]],[[12655,12655],"mapped",[4573]],[[12656,12656],"mapped",[4575]],[[12657,12657],"mapped",[4381]],[[12658,12658],"mapped",[4382]],[[12659,12659],"mapped",[4384]],[[12660,12660],"mapped",[4386]],[[12661,12661],"mapped",[4387]],[[12662,12662],"mapped",[4391]],[[12663,12663],"mapped",[4393]],[[12664,12664],"mapped",[4395]],[[12665,12665],"mapped",[4396]],[[12666,12666],"mapped",[4397]],[[12667,12667],"mapped",[4398]],[[12668,12668],"mapped",[4399]],[[12669,12669],"mapped",[4402]],[[12670,12670],"mapped",[4406]],[[12671,12671],"mapped",[4416]],[[12672,12672],"mapped",[4423]],[[12673,12673],"mapped",[4428]],[[12674,12674],"mapped",[4593]],[[12675,12675],"mapped",[4594]],[[12676,12676],"mapped",[4439]],[[12677,12677],"mapped",[4440]],[[12678,12678],"mapped",[4441]],[[12679,12679],"mapped",[4484]],[[12680,12680],"mapped",[4485]],[[12681,12681],"mapped",[4488]],[[12682,12682],"mapped",[4497]],[[12683,12683],"mapped",[4498]],[[12684,12684],"mapped",[4500]],[[12685,12685],"mapped",[4510]],[[12686,12686],"mapped",[4513]],[[12687,12687],"disallowed"],[[12688,12689],"valid",[],"NV8"],[[12690,12690],"mapped",[19968]],[[12691,12691],"mapped",[20108]],[[12692,12692],"mapped",[19977]],[[12693,12693],"mapped",[22235]],[[12694,12694],"mapped",[19978]],[[12695,12695],"mapped",[20013]],[[12696,12696],"mapped",[19979]],[[12697,12697],"mapped",[30002]],[[12698,12698],"mapped",[20057]],[[12699,12699],"mapped",[19993]],[[12700,12700],"mapped",[19969]],[[12701,12701],"mapped",[22825]],[[12702,12702],"mapped",[22320]],[[12703,12703],"mapped",[20154]],[[12704,12727],"valid"],[[12728,12730],"valid"],[[12731,12735],"disallowed"],[[12736,12751],"valid",[],"NV8"],[[12752,12771],"valid",[],"NV8"],[[12772,12783],"disallowed"],[[12784,12799],"valid"],[[12800,12800],"disallowed_STD3_mapped",[40,4352,41]],[[12801,12801],"disallowed_STD3_mapped",[40,4354,41]],[[12802,12802],"disallowed_STD3_mapped",[40,4355,41]],[[12803,12803],"disallowed_STD3_mapped",[40,4357,41]],[[12804,12804],"disallowed_STD3_mapped",[40,4358,41]],[[12805,12805],"disallowed_STD3_mapped",[40,4359,41]],[[12806,12806],"disallowed_STD3_mapped",[40,4361,41]],[[12807,12807],"disallowed_STD3_mapped",[40,4363,41]],[[12808,12808],"disallowed_STD3_mapped",[40,4364,41]],[[12809,12809],"disallowed_STD3_mapped",[40,4366,41]],[[12810,12810],"disallowed_STD3_mapped",[40,4367,41]],[[12811,12811],"disallowed_STD3_mapped",[40,4368,41]],[[12812,12812],"disallowed_STD3_mapped",[40,4369,41]],[[12813,12813],"disallowed_STD3_mapped",[40,4370,41]],[[12814,12814],"disallowed_STD3_mapped",[40,44032,41]],[[12815,12815],"disallowed_STD3_mapped",[40,45208,41]],[[12816,12816],"disallowed_STD3_mapped",[40,45796,41]],[[12817,12817],"disallowed_STD3_mapped",[40,46972,41]],[[12818,12818],"disallowed_STD3_mapped",[40,47560,41]],[[12819,12819],"disallowed_STD3_mapped",[40,48148,41]],[[12820,12820],"disallowed_STD3_mapped",[40,49324,41]],[[12821,12821],"disallowed_STD3_mapped",[40,50500,41]],[[12822,12822],"disallowed_STD3_mapped",[40,51088,41]],[[12823,12823],"disallowed_STD3_mapped",[40,52264,41]],[[12824,12824],"disallowed_STD3_mapped",[40,52852,41]],[[12825,12825],"disallowed_STD3_mapped",[40,53440,41]],[[12826,12826],"disallowed_STD3_mapped",[40,54028,41]],[[12827,12827],"disallowed_STD3_mapped",[40,54616,41]],[[12828,12828],"disallowed_STD3_mapped",[40,51452,41]],[[12829,12829],"disallowed_STD3_mapped",[40,50724,51204,41]],[[12830,12830],"disallowed_STD3_mapped",[40,50724,54980,41]],[[12831,12831],"disallowed"],[[12832,12832],"disallowed_STD3_mapped",[40,19968,41]],[[12833,12833],"disallowed_STD3_mapped",[40,20108,41]],[[12834,12834],"disallowed_STD3_mapped",[40,19977,41]],[[12835,12835],"disallowed_STD3_mapped",[40,22235,41]],[[12836,12836],"disallowed_STD3_mapped",[40,20116,41]],[[12837,12837],"disallowed_STD3_mapped",[40,20845,41]],[[12838,12838],"disallowed_STD3_mapped",[40,19971,41]],[[12839,12839],"disallowed_STD3_mapped",[40,20843,41]],[[12840,12840],"disallowed_STD3_mapped",[40,20061,41]],[[12841,12841],"disallowed_STD3_mapped",[40,21313,41]],[[12842,12842],"disallowed_STD3_mapped",[40,26376,41]],[[12843,12843],"disallowed_STD3_mapped",[40,28779,41]],[[12844,12844],"disallowed_STD3_mapped",[40,27700,41]],[[12845,12845],"disallowed_STD3_mapped",[40,26408,41]],[[12846,12846],"disallowed_STD3_mapped",[40,37329,41]],[[12847,12847],"disallowed_STD3_mapped",[40,22303,41]],[[12848,12848],"disallowed_STD3_mapped",[40,26085,41]],[[12849,12849],"disallowed_STD3_mapped",[40,26666,41]],[[12850,12850],"disallowed_STD3_mapped",[40,26377,41]],[[12851,12851],"disallowed_STD3_mapped",[40,31038,41]],[[12852,12852],"disallowed_STD3_mapped",[40,21517,41]],[[12853,12853],"disallowed_STD3_mapped",[40,29305,41]],[[12854,12854],"disallowed_STD3_mapped",[40,36001,41]],[[12855,12855],"disallowed_STD3_mapped",[40,31069,41]],[[12856,12856],"disallowed_STD3_mapped",[40,21172,41]],[[12857,12857],"disallowed_STD3_mapped",[40,20195,41]],[[12858,12858],"disallowed_STD3_mapped",[40,21628,41]],[[12859,12859],"disallowed_STD3_mapped",[40,23398,41]],[[12860,12860],"disallowed_STD3_mapped",[40,30435,41]],[[12861,12861],"disallowed_STD3_mapped",[40,20225,41]],[[12862,12862],"disallowed_STD3_mapped",[40,36039,41]],[[12863,12863],"disallowed_STD3_mapped",[40,21332,41]],[[12864,12864],"disallowed_STD3_mapped",[40,31085,41]],[[12865,12865],"disallowed_STD3_mapped",[40,20241,41]],[[12866,12866],"disallowed_STD3_mapped",[40,33258,41]],[[12867,12867],"disallowed_STD3_mapped",[40,33267,41]],[[12868,12868],"mapped",[21839]],[[12869,12869],"mapped",[24188]],[[12870,12870],"mapped",[25991]],[[12871,12871],"mapped",[31631]],[[12872,12879],"valid",[],"NV8"],[[12880,12880],"mapped",[112,116,101]],[[12881,12881],"mapped",[50,49]],[[12882,12882],"mapped",[50,50]],[[12883,12883],"mapped",[50,51]],[[12884,12884],"mapped",[50,52]],[[12885,12885],"mapped",[50,53]],[[12886,12886],"mapped",[50,54]],[[12887,12887],"mapped",[50,55]],[[12888,12888],"mapped",[50,56]],[[12889,12889],"mapped",[50,57]],[[12890,12890],"mapped",[51,48]],[[12891,12891],"mapped",[51,49]],[[12892,12892],"mapped",[51,50]],[[12893,12893],"mapped",[51,51]],[[12894,12894],"mapped",[51,52]],[[12895,12895],"mapped",[51,53]],[[12896,12896],"mapped",[4352]],[[12897,12897],"mapped",[4354]],[[12898,12898],"mapped",[4355]],[[12899,12899],"mapped",[4357]],[[12900,12900],"mapped",[4358]],[[12901,12901],"mapped",[4359]],[[12902,12902],"mapped",[4361]],[[12903,12903],"mapped",[4363]],[[12904,12904],"mapped",[4364]],[[12905,12905],"mapped",[4366]],[[12906,12906],"mapped",[4367]],[[12907,12907],"mapped",[4368]],[[12908,12908],"mapped",[4369]],[[12909,12909],"mapped",[4370]],[[12910,12910],"mapped",[44032]],[[12911,12911],"mapped",[45208]],[[12912,12912],"mapped",[45796]],[[12913,12913],"mapped",[46972]],[[12914,12914],"mapped",[47560]],[[12915,12915],"mapped",[48148]],[[12916,12916],"mapped",[49324]],[[12917,12917],"mapped",[50500]],[[12918,12918],"mapped",[51088]],[[12919,12919],"mapped",[52264]],[[12920,12920],"mapped",[52852]],[[12921,12921],"mapped",[53440]],[[12922,12922],"mapped",[54028]],[[12923,12923],"mapped",[54616]],[[12924,12924],"mapped",[52280,44256]],[[12925,12925],"mapped",[51452,51032]],[[12926,12926],"mapped",[50864]],[[12927,12927],"valid",[],"NV8"],[[12928,12928],"mapped",[19968]],[[12929,12929],"mapped",[20108]],[[12930,12930],"mapped",[19977]],[[12931,12931],"mapped",[22235]],[[12932,12932],"mapped",[20116]],[[12933,12933],"mapped",[20845]],[[12934,12934],"mapped",[19971]],[[12935,12935],"mapped",[20843]],[[12936,12936],"mapped",[20061]],[[12937,12937],"mapped",[21313]],[[12938,12938],"mapped",[26376]],[[12939,12939],"mapped",[28779]],[[12940,12940],"mapped",[27700]],[[12941,12941],"mapped",[26408]],[[12942,12942],"mapped",[37329]],[[12943,12943],"mapped",[22303]],[[12944,12944],"mapped",[26085]],[[12945,12945],"mapped",[26666]],[[12946,12946],"mapped",[26377]],[[12947,12947],"mapped",[31038]],[[12948,12948],"mapped",[21517]],[[12949,12949],"mapped",[29305]],[[12950,12950],"mapped",[36001]],[[12951,12951],"mapped",[31069]],[[12952,12952],"mapped",[21172]],[[12953,12953],"mapped",[31192]],[[12954,12954],"mapped",[30007]],[[12955,12955],"mapped",[22899]],[[12956,12956],"mapped",[36969]],[[12957,12957],"mapped",[20778]],[[12958,12958],"mapped",[21360]],[[12959,12959],"mapped",[27880]],[[12960,12960],"mapped",[38917]],[[12961,12961],"mapped",[20241]],[[12962,12962],"mapped",[20889]],[[12963,12963],"mapped",[27491]],[[12964,12964],"mapped",[19978]],[[12965,12965],"mapped",[20013]],[[12966,12966],"mapped",[19979]],[[12967,12967],"mapped",[24038]],[[12968,12968],"mapped",[21491]],[[12969,12969],"mapped",[21307]],[[12970,12970],"mapped",[23447]],[[12971,12971],"mapped",[23398]],[[12972,12972],"mapped",[30435]],[[12973,12973],"mapped",[20225]],[[12974,12974],"mapped",[36039]],[[12975,12975],"mapped",[21332]],[[12976,12976],"mapped",[22812]],[[12977,12977],"mapped",[51,54]],[[12978,12978],"mapped",[51,55]],[[12979,12979],"mapped",[51,56]],[[12980,12980],"mapped",[51,57]],[[12981,12981],"mapped",[52,48]],[[12982,12982],"mapped",[52,49]],[[12983,12983],"mapped",[52,50]],[[12984,12984],"mapped",[52,51]],[[12985,12985],"mapped",[52,52]],[[12986,12986],"mapped",[52,53]],[[12987,12987],"mapped",[52,54]],[[12988,12988],"mapped",[52,55]],[[12989,12989],"mapped",[52,56]],[[12990,12990],"mapped",[52,57]],[[12991,12991],"mapped",[53,48]],[[12992,12992],"mapped",[49,26376]],[[12993,12993],"mapped",[50,26376]],[[12994,12994],"mapped",[51,26376]],[[12995,12995],"mapped",[52,26376]],[[12996,12996],"mapped",[53,26376]],[[12997,12997],"mapped",[54,26376]],[[12998,12998],"mapped",[55,26376]],[[12999,12999],"mapped",[56,26376]],[[13000,13000],"mapped",[57,26376]],[[13001,13001],"mapped",[49,48,26376]],[[13002,13002],"mapped",[49,49,26376]],[[13003,13003],"mapped",[49,50,26376]],[[13004,13004],"mapped",[104,103]],[[13005,13005],"mapped",[101,114,103]],[[13006,13006],"mapped",[101,118]],[[13007,13007],"mapped",[108,116,100]],[[13008,13008],"mapped",[12450]],[[13009,13009],"mapped",[12452]],[[13010,13010],"mapped",[12454]],[[13011,13011],"mapped",[12456]],[[13012,13012],"mapped",[12458]],[[13013,13013],"mapped",[12459]],[[13014,13014],"mapped",[12461]],[[13015,13015],"mapped",[12463]],[[13016,13016],"mapped",[12465]],[[13017,13017],"mapped",[12467]],[[13018,13018],"mapped",[12469]],[[13019,13019],"mapped",[12471]],[[13020,13020],"mapped",[12473]],[[13021,13021],"mapped",[12475]],[[13022,13022],"mapped",[12477]],[[13023,13023],"mapped",[12479]],[[13024,13024],"mapped",[12481]],[[13025,13025],"mapped",[12484]],[[13026,13026],"mapped",[12486]],[[13027,13027],"mapped",[12488]],[[13028,13028],"mapped",[12490]],[[13029,13029],"mapped",[12491]],[[13030,13030],"mapped",[12492]],[[13031,13031],"mapped",[12493]],[[13032,13032],"mapped",[12494]],[[13033,13033],"mapped",[12495]],[[13034,13034],"mapped",[12498]],[[13035,13035],"mapped",[12501]],[[13036,13036],"mapped",[12504]],[[13037,13037],"mapped",[12507]],[[13038,13038],"mapped",[12510]],[[13039,13039],"mapped",[12511]],[[13040,13040],"mapped",[12512]],[[13041,13041],"mapped",[12513]],[[13042,13042],"mapped",[12514]],[[13043,13043],"mapped",[12516]],[[13044,13044],"mapped",[12518]],[[13045,13045],"mapped",[12520]],[[13046,13046],"mapped",[12521]],[[13047,13047],"mapped",[12522]],[[13048,13048],"mapped",[12523]],[[13049,13049],"mapped",[12524]],[[13050,13050],"mapped",[12525]],[[13051,13051],"mapped",[12527]],[[13052,13052],"mapped",[12528]],[[13053,13053],"mapped",[12529]],[[13054,13054],"mapped",[12530]],[[13055,13055],"disallowed"],[[13056,13056],"mapped",[12450,12497,12540,12488]],[[13057,13057],"mapped",[12450,12523,12501,12449]],[[13058,13058],"mapped",[12450,12531,12506,12450]],[[13059,13059],"mapped",[12450,12540,12523]],[[13060,13060],"mapped",[12452,12491,12531,12464]],[[13061,13061],"mapped",[12452,12531,12481]],[[13062,13062],"mapped",[12454,12457,12531]],[[13063,13063],"mapped",[12456,12473,12463,12540,12489]],[[13064,13064],"mapped",[12456,12540,12459,12540]],[[13065,13065],"mapped",[12458,12531,12473]],[[13066,13066],"mapped",[12458,12540,12512]],[[13067,13067],"mapped",[12459,12452,12522]],[[13068,13068],"mapped",[12459,12521,12483,12488]],[[13069,13069],"mapped",[12459,12525,12522,12540]],[[13070,13070],"mapped",[12460,12525,12531]],[[13071,13071],"mapped",[12460,12531,12510]],[[13072,13072],"mapped",[12462,12460]],[[13073,13073],"mapped",[12462,12491,12540]],[[13074,13074],"mapped",[12461,12517,12522,12540]],[[13075,13075],"mapped",[12462,12523,12480,12540]],[[13076,13076],"mapped",[12461,12525]],[[13077,13077],"mapped",[12461,12525,12464,12521,12512]],[[13078,13078],"mapped",[12461,12525,12513,12540,12488,12523]],[[13079,13079],"mapped",[12461,12525,12527,12483,12488]],[[13080,13080],"mapped",[12464,12521,12512]],[[13081,13081],"mapped",[12464,12521,12512,12488,12531]],[[13082,13082],"mapped",[12463,12523,12476,12452,12525]],[[13083,13083],"mapped",[12463,12525,12540,12493]],[[13084,13084],"mapped",[12465,12540,12473]],[[13085,13085],"mapped",[12467,12523,12490]],[[13086,13086],"mapped",[12467,12540,12509]],[[13087,13087],"mapped",[12469,12452,12463,12523]],[[13088,13088],"mapped",[12469,12531,12481,12540,12512]],[[13089,13089],"mapped",[12471,12522,12531,12464]],[[13090,13090],"mapped",[12475,12531,12481]],[[13091,13091],"mapped",[12475,12531,12488]],[[13092,13092],"mapped",[12480,12540,12473]],[[13093,13093],"mapped",[12487,12471]],[[13094,13094],"mapped",[12489,12523]],[[13095,13095],"mapped",[12488,12531]],[[13096,13096],"mapped",[12490,12494]],[[13097,13097],"mapped",[12494,12483,12488]],[[13098,13098],"mapped",[12495,12452,12484]],[[13099,13099],"mapped",[12497,12540,12475,12531,12488]],[[13100,13100],"mapped",[12497,12540,12484]],[[13101,13101],"mapped",[12496,12540,12524,12523]],[[13102,13102],"mapped",[12500,12450,12473,12488,12523]],[[13103,13103],"mapped",[12500,12463,12523]],[[13104,13104],"mapped",[12500,12467]],[[13105,13105],"mapped",[12499,12523]],[[13106,13106],"mapped",[12501,12449,12521,12483,12489]],[[13107,13107],"mapped",[12501,12451,12540,12488]],[[13108,13108],"mapped",[12502,12483,12471,12455,12523]],[[13109,13109],"mapped",[12501,12521,12531]],[[13110,13110],"mapped",[12504,12463,12479,12540,12523]],[[13111,13111],"mapped",[12506,12477]],[[13112,13112],"mapped",[12506,12491,12498]],[[13113,13113],"mapped",[12504,12523,12484]],[[13114,13114],"mapped",[12506,12531,12473]],[[13115,13115],"mapped",[12506,12540,12472]],[[13116,13116],"mapped",[12505,12540,12479]],[[13117,13117],"mapped",[12509,12452,12531,12488]],[[13118,13118],"mapped",[12508,12523,12488]],[[13119,13119],"mapped",[12507,12531]],[[13120,13120],"mapped",[12509,12531,12489]],[[13121,13121],"mapped",[12507,12540,12523]],[[13122,13122],"mapped",[12507,12540,12531]],[[13123,13123],"mapped",[12510,12452,12463,12525]],[[13124,13124],"mapped",[12510,12452,12523]],[[13125,13125],"mapped",[12510,12483,12495]],[[13126,13126],"mapped",[12510,12523,12463]],[[13127,13127],"mapped",[12510,12531,12471,12519,12531]],[[13128,13128],"mapped",[12511,12463,12525,12531]],[[13129,13129],"mapped",[12511,12522]],[[13130,13130],"mapped",[12511,12522,12496,12540,12523]],[[13131,13131],"mapped",[12513,12460]],[[13132,13132],"mapped",[12513,12460,12488,12531]],[[13133,13133],"mapped",[12513,12540,12488,12523]],[[13134,13134],"mapped",[12516,12540,12489]],[[13135,13135],"mapped",[12516,12540,12523]],[[13136,13136],"mapped",[12518,12450,12531]],[[13137,13137],"mapped",[12522,12483,12488,12523]],[[13138,13138],"mapped",[12522,12521]],[[13139,13139],"mapped",[12523,12500,12540]],[[13140,13140],"mapped",[12523,12540,12502,12523]],[[13141,13141],"mapped",[12524,12512]],[[13142,13142],"mapped",[12524,12531,12488,12466,12531]],[[13143,13143],"mapped",[12527,12483,12488]],[[13144,13144],"mapped",[48,28857]],[[13145,13145],"mapped",[49,28857]],[[13146,13146],"mapped",[50,28857]],[[13147,13147],"mapped",[51,28857]],[[13148,13148],"mapped",[52,28857]],[[13149,13149],"mapped",[53,28857]],[[13150,13150],"mapped",[54,28857]],[[13151,13151],"mapped",[55,28857]],[[13152,13152],"mapped",[56,28857]],[[13153,13153],"mapped",[57,28857]],[[13154,13154],"mapped",[49,48,28857]],[[13155,13155],"mapped",[49,49,28857]],[[13156,13156],"mapped",[49,50,28857]],[[13157,13157],"mapped",[49,51,28857]],[[13158,13158],"mapped",[49,52,28857]],[[13159,13159],"mapped",[49,53,28857]],[[13160,13160],"mapped",[49,54,28857]],[[13161,13161],"mapped",[49,55,28857]],[[13162,13162],"mapped",[49,56,28857]],[[13163,13163],"mapped",[49,57,28857]],[[13164,13164],"mapped",[50,48,28857]],[[13165,13165],"mapped",[50,49,28857]],[[13166,13166],"mapped",[50,50,28857]],[[13167,13167],"mapped",[50,51,28857]],[[13168,13168],"mapped",[50,52,28857]],[[13169,13169],"mapped",[104,112,97]],[[13170,13170],"mapped",[100,97]],[[13171,13171],"mapped",[97,117]],[[13172,13172],"mapped",[98,97,114]],[[13173,13173],"mapped",[111,118]],[[13174,13174],"mapped",[112,99]],[[13175,13175],"mapped",[100,109]],[[13176,13176],"mapped",[100,109,50]],[[13177,13177],"mapped",[100,109,51]],[[13178,13178],"mapped",[105,117]],[[13179,13179],"mapped",[24179,25104]],[[13180,13180],"mapped",[26157,21644]],[[13181,13181],"mapped",[22823,27491]],[[13182,13182],"mapped",[26126,27835]],[[13183,13183],"mapped",[26666,24335,20250,31038]],[[13184,13184],"mapped",[112,97]],[[13185,13185],"mapped",[110,97]],[[13186,13186],"mapped",[956,97]],[[13187,13187],"mapped",[109,97]],[[13188,13188],"mapped",[107,97]],[[13189,13189],"mapped",[107,98]],[[13190,13190],"mapped",[109,98]],[[13191,13191],"mapped",[103,98]],[[13192,13192],"mapped",[99,97,108]],[[13193,13193],"mapped",[107,99,97,108]],[[13194,13194],"mapped",[112,102]],[[13195,13195],"mapped",[110,102]],[[13196,13196],"mapped",[956,102]],[[13197,13197],"mapped",[956,103]],[[13198,13198],"mapped",[109,103]],[[13199,13199],"mapped",[107,103]],[[13200,13200],"mapped",[104,122]],[[13201,13201],"mapped",[107,104,122]],[[13202,13202],"mapped",[109,104,122]],[[13203,13203],"mapped",[103,104,122]],[[13204,13204],"mapped",[116,104,122]],[[13205,13205],"mapped",[956,108]],[[13206,13206],"mapped",[109,108]],[[13207,13207],"mapped",[100,108]],[[13208,13208],"mapped",[107,108]],[[13209,13209],"mapped",[102,109]],[[13210,13210],"mapped",[110,109]],[[13211,13211],"mapped",[956,109]],[[13212,13212],"mapped",[109,109]],[[13213,13213],"mapped",[99,109]],[[13214,13214],"mapped",[107,109]],[[13215,13215],"mapped",[109,109,50]],[[13216,13216],"mapped",[99,109,50]],[[13217,13217],"mapped",[109,50]],[[13218,13218],"mapped",[107,109,50]],[[13219,13219],"mapped",[109,109,51]],[[13220,13220],"mapped",[99,109,51]],[[13221,13221],"mapped",[109,51]],[[13222,13222],"mapped",[107,109,51]],[[13223,13223],"mapped",[109,8725,115]],[[13224,13224],"mapped",[109,8725,115,50]],[[13225,13225],"mapped",[112,97]],[[13226,13226],"mapped",[107,112,97]],[[13227,13227],"mapped",[109,112,97]],[[13228,13228],"mapped",[103,112,97]],[[13229,13229],"mapped",[114,97,100]],[[13230,13230],"mapped",[114,97,100,8725,115]],[[13231,13231],"mapped",[114,97,100,8725,115,50]],[[13232,13232],"mapped",[112,115]],[[13233,13233],"mapped",[110,115]],[[13234,13234],"mapped",[956,115]],[[13235,13235],"mapped",[109,115]],[[13236,13236],"mapped",[112,118]],[[13237,13237],"mapped",[110,118]],[[13238,13238],"mapped",[956,118]],[[13239,13239],"mapped",[109,118]],[[13240,13240],"mapped",[107,118]],[[13241,13241],"mapped",[109,118]],[[13242,13242],"mapped",[112,119]],[[13243,13243],"mapped",[110,119]],[[13244,13244],"mapped",[956,119]],[[13245,13245],"mapped",[109,119]],[[13246,13246],"mapped",[107,119]],[[13247,13247],"mapped",[109,119]],[[13248,13248],"mapped",[107,969]],[[13249,13249],"mapped",[109,969]],[[13250,13250],"disallowed"],[[13251,13251],"mapped",[98,113]],[[13252,13252],"mapped",[99,99]],[[13253,13253],"mapped",[99,100]],[[13254,13254],"mapped",[99,8725,107,103]],[[13255,13255],"disallowed"],[[13256,13256],"mapped",[100,98]],[[13257,13257],"mapped",[103,121]],[[13258,13258],"mapped",[104,97]],[[13259,13259],"mapped",[104,112]],[[13260,13260],"mapped",[105,110]],[[13261,13261],"mapped",[107,107]],[[13262,13262],"mapped",[107,109]],[[13263,13263],"mapped",[107,116]],[[13264,13264],"mapped",[108,109]],[[13265,13265],"mapped",[108,110]],[[13266,13266],"mapped",[108,111,103]],[[13267,13267],"mapped",[108,120]],[[13268,13268],"mapped",[109,98]],[[13269,13269],"mapped",[109,105,108]],[[13270,13270],"mapped",[109,111,108]],[[13271,13271],"mapped",[112,104]],[[13272,13272],"disallowed"],[[13273,13273],"mapped",[112,112,109]],[[13274,13274],"mapped",[112,114]],[[13275,13275],"mapped",[115,114]],[[13276,13276],"mapped",[115,118]],[[13277,13277],"mapped",[119,98]],[[13278,13278],"mapped",[118,8725,109]],[[13279,13279],"mapped",[97,8725,109]],[[13280,13280],"mapped",[49,26085]],[[13281,13281],"mapped",[50,26085]],[[13282,13282],"mapped",[51,26085]],[[13283,13283],"mapped",[52,26085]],[[13284,13284],"mapped",[53,26085]],[[13285,13285],"mapped",[54,26085]],[[13286,13286],"mapped",[55,26085]],[[13287,13287],"mapped",[56,26085]],[[13288,13288],"mapped",[57,26085]],[[13289,13289],"mapped",[49,48,26085]],[[13290,13290],"mapped",[49,49,26085]],[[13291,13291],"mapped",[49,50,26085]],[[13292,13292],"mapped",[49,51,26085]],[[13293,13293],"mapped",[49,52,26085]],[[13294,13294],"mapped",[49,53,26085]],[[13295,13295],"mapped",[49,54,26085]],[[13296,13296],"mapped",[49,55,26085]],[[13297,13297],"mapped",[49,56,26085]],[[13298,13298],"mapped",[49,57,26085]],[[13299,13299],"mapped",[50,48,26085]],[[13300,13300],"mapped",[50,49,26085]],[[13301,13301],"mapped",[50,50,26085]],[[13302,13302],"mapped",[50,51,26085]],[[13303,13303],"mapped",[50,52,26085]],[[13304,13304],"mapped",[50,53,26085]],[[13305,13305],"mapped",[50,54,26085]],[[13306,13306],"mapped",[50,55,26085]],[[13307,13307],"mapped",[50,56,26085]],[[13308,13308],"mapped",[50,57,26085]],[[13309,13309],"mapped",[51,48,26085]],[[13310,13310],"mapped",[51,49,26085]],[[13311,13311],"mapped",[103,97,108]],[[13312,19893],"valid"],[[19894,19903],"disallowed"],[[19904,19967],"valid",[],"NV8"],[[19968,40869],"valid"],[[40870,40891],"valid"],[[40892,40899],"valid"],[[40900,40907],"valid"],[[40908,40908],"valid"],[[40909,40917],"valid"],[[40918,40959],"disallowed"],[[40960,42124],"valid"],[[42125,42127],"disallowed"],[[42128,42145],"valid",[],"NV8"],[[42146,42147],"valid",[],"NV8"],[[42148,42163],"valid",[],"NV8"],[[42164,42164],"valid",[],"NV8"],[[42165,42176],"valid",[],"NV8"],[[42177,42177],"valid",[],"NV8"],[[42178,42180],"valid",[],"NV8"],[[42181,42181],"valid",[],"NV8"],[[42182,42182],"valid",[],"NV8"],[[42183,42191],"disallowed"],[[42192,42237],"valid"],[[42238,42239],"valid",[],"NV8"],[[42240,42508],"valid"],[[42509,42511],"valid",[],"NV8"],[[42512,42539],"valid"],[[42540,42559],"disallowed"],[[42560,42560],"mapped",[42561]],[[42561,42561],"valid"],[[42562,42562],"mapped",[42563]],[[42563,42563],"valid"],[[42564,42564],"mapped",[42565]],[[42565,42565],"valid"],[[42566,42566],"mapped",[42567]],[[42567,42567],"valid"],[[42568,42568],"mapped",[42569]],[[42569,42569],"valid"],[[42570,42570],"mapped",[42571]],[[42571,42571],"valid"],[[42572,42572],"mapped",[42573]],[[42573,42573],"valid"],[[42574,42574],"mapped",[42575]],[[42575,42575],"valid"],[[42576,42576],"mapped",[42577]],[[42577,42577],"valid"],[[42578,42578],"mapped",[42579]],[[42579,42579],"valid"],[[42580,42580],"mapped",[42581]],[[42581,42581],"valid"],[[42582,42582],"mapped",[42583]],[[42583,42583],"valid"],[[42584,42584],"mapped",[42585]],[[42585,42585],"valid"],[[42586,42586],"mapped",[42587]],[[42587,42587],"valid"],[[42588,42588],"mapped",[42589]],[[42589,42589],"valid"],[[42590,42590],"mapped",[42591]],[[42591,42591],"valid"],[[42592,42592],"mapped",[42593]],[[42593,42593],"valid"],[[42594,42594],"mapped",[42595]],[[42595,42595],"valid"],[[42596,42596],"mapped",[42597]],[[42597,42597],"valid"],[[42598,42598],"mapped",[42599]],[[42599,42599],"valid"],[[42600,42600],"mapped",[42601]],[[42601,42601],"valid"],[[42602,42602],"mapped",[42603]],[[42603,42603],"valid"],[[42604,42604],"mapped",[42605]],[[42605,42607],"valid"],[[42608,42611],"valid",[],"NV8"],[[42612,42619],"valid"],[[42620,42621],"valid"],[[42622,42622],"valid",[],"NV8"],[[42623,42623],"valid"],[[42624,42624],"mapped",[42625]],[[42625,42625],"valid"],[[42626,42626],"mapped",[42627]],[[42627,42627],"valid"],[[42628,42628],"mapped",[42629]],[[42629,42629],"valid"],[[42630,42630],"mapped",[42631]],[[42631,42631],"valid"],[[42632,42632],"mapped",[42633]],[[42633,42633],"valid"],[[42634,42634],"mapped",[42635]],[[42635,42635],"valid"],[[42636,42636],"mapped",[42637]],[[42637,42637],"valid"],[[42638,42638],"mapped",[42639]],[[42639,42639],"valid"],[[42640,42640],"mapped",[42641]],[[42641,42641],"valid"],[[42642,42642],"mapped",[42643]],[[42643,42643],"valid"],[[42644,42644],"mapped",[42645]],[[42645,42645],"valid"],[[42646,42646],"mapped",[42647]],[[42647,42647],"valid"],[[42648,42648],"mapped",[42649]],[[42649,42649],"valid"],[[42650,42650],"mapped",[42651]],[[42651,42651],"valid"],[[42652,42652],"mapped",[1098]],[[42653,42653],"mapped",[1100]],[[42654,42654],"valid"],[[42655,42655],"valid"],[[42656,42725],"valid"],[[42726,42735],"valid",[],"NV8"],[[42736,42737],"valid"],[[42738,42743],"valid",[],"NV8"],[[42744,42751],"disallowed"],[[42752,42774],"valid",[],"NV8"],[[42775,42778],"valid"],[[42779,42783],"valid"],[[42784,42785],"valid",[],"NV8"],[[42786,42786],"mapped",[42787]],[[42787,42787],"valid"],[[42788,42788],"mapped",[42789]],[[42789,42789],"valid"],[[42790,42790],"mapped",[42791]],[[42791,42791],"valid"],[[42792,42792],"mapped",[42793]],[[42793,42793],"valid"],[[42794,42794],"mapped",[42795]],[[42795,42795],"valid"],[[42796,42796],"mapped",[42797]],[[42797,42797],"valid"],[[42798,42798],"mapped",[42799]],[[42799,42801],"valid"],[[42802,42802],"mapped",[42803]],[[42803,42803],"valid"],[[42804,42804],"mapped",[42805]],[[42805,42805],"valid"],[[42806,42806],"mapped",[42807]],[[42807,42807],"valid"],[[42808,42808],"mapped",[42809]],[[42809,42809],"valid"],[[42810,42810],"mapped",[42811]],[[42811,42811],"valid"],[[42812,42812],"mapped",[42813]],[[42813,42813],"valid"],[[42814,42814],"mapped",[42815]],[[42815,42815],"valid"],[[42816,42816],"mapped",[42817]],[[42817,42817],"valid"],[[42818,42818],"mapped",[42819]],[[42819,42819],"valid"],[[42820,42820],"mapped",[42821]],[[42821,42821],"valid"],[[42822,42822],"mapped",[42823]],[[42823,42823],"valid"],[[42824,42824],"mapped",[42825]],[[42825,42825],"valid"],[[42826,42826],"mapped",[42827]],[[42827,42827],"valid"],[[42828,42828],"mapped",[42829]],[[42829,42829],"valid"],[[42830,42830],"mapped",[42831]],[[42831,42831],"valid"],[[42832,42832],"mapped",[42833]],[[42833,42833],"valid"],[[42834,42834],"mapped",[42835]],[[42835,42835],"valid"],[[42836,42836],"mapped",[42837]],[[42837,42837],"valid"],[[42838,42838],"mapped",[42839]],[[42839,42839],"valid"],[[42840,42840],"mapped",[42841]],[[42841,42841],"valid"],[[42842,42842],"mapped",[42843]],[[42843,42843],"valid"],[[42844,42844],"mapped",[42845]],[[42845,42845],"valid"],[[42846,42846],"mapped",[42847]],[[42847,42847],"valid"],[[42848,42848],"mapped",[42849]],[[42849,42849],"valid"],[[42850,42850],"mapped",[42851]],[[42851,42851],"valid"],[[42852,42852],"mapped",[42853]],[[42853,42853],"valid"],[[42854,42854],"mapped",[42855]],[[42855,42855],"valid"],[[42856,42856],"mapped",[42857]],[[42857,42857],"valid"],[[42858,42858],"mapped",[42859]],[[42859,42859],"valid"],[[42860,42860],"mapped",[42861]],[[42861,42861],"valid"],[[42862,42862],"mapped",[42863]],[[42863,42863],"valid"],[[42864,42864],"mapped",[42863]],[[42865,42872],"valid"],[[42873,42873],"mapped",[42874]],[[42874,42874],"valid"],[[42875,42875],"mapped",[42876]],[[42876,42876],"valid"],[[42877,42877],"mapped",[7545]],[[42878,42878],"mapped",[42879]],[[42879,42879],"valid"],[[42880,42880],"mapped",[42881]],[[42881,42881],"valid"],[[42882,42882],"mapped",[42883]],[[42883,42883],"valid"],[[42884,42884],"mapped",[42885]],[[42885,42885],"valid"],[[42886,42886],"mapped",[42887]],[[42887,42888],"valid"],[[42889,42890],"valid",[],"NV8"],[[42891,42891],"mapped",[42892]],[[42892,42892],"valid"],[[42893,42893],"mapped",[613]],[[42894,42894],"valid"],[[42895,42895],"valid"],[[42896,42896],"mapped",[42897]],[[42897,42897],"valid"],[[42898,42898],"mapped",[42899]],[[42899,42899],"valid"],[[42900,42901],"valid"],[[42902,42902],"mapped",[42903]],[[42903,42903],"valid"],[[42904,42904],"mapped",[42905]],[[42905,42905],"valid"],[[42906,42906],"mapped",[42907]],[[42907,42907],"valid"],[[42908,42908],"mapped",[42909]],[[42909,42909],"valid"],[[42910,42910],"mapped",[42911]],[[42911,42911],"valid"],[[42912,42912],"mapped",[42913]],[[42913,42913],"valid"],[[42914,42914],"mapped",[42915]],[[42915,42915],"valid"],[[42916,42916],"mapped",[42917]],[[42917,42917],"valid"],[[42918,42918],"mapped",[42919]],[[42919,42919],"valid"],[[42920,42920],"mapped",[42921]],[[42921,42921],"valid"],[[42922,42922],"mapped",[614]],[[42923,42923],"mapped",[604]],[[42924,42924],"mapped",[609]],[[42925,42925],"mapped",[620]],[[42926,42927],"disallowed"],[[42928,42928],"mapped",[670]],[[42929,42929],"mapped",[647]],[[42930,42930],"mapped",[669]],[[42931,42931],"mapped",[43859]],[[42932,42932],"mapped",[42933]],[[42933,42933],"valid"],[[42934,42934],"mapped",[42935]],[[42935,42935],"valid"],[[42936,42998],"disallowed"],[[42999,42999],"valid"],[[43000,43000],"mapped",[295]],[[43001,43001],"mapped",[339]],[[43002,43002],"valid"],[[43003,43007],"valid"],[[43008,43047],"valid"],[[43048,43051],"valid",[],"NV8"],[[43052,43055],"disallowed"],[[43056,43065],"valid",[],"NV8"],[[43066,43071],"disallowed"],[[43072,43123],"valid"],[[43124,43127],"valid",[],"NV8"],[[43128,43135],"disallowed"],[[43136,43204],"valid"],[[43205,43213],"disallowed"],[[43214,43215],"valid",[],"NV8"],[[43216,43225],"valid"],[[43226,43231],"disallowed"],[[43232,43255],"valid"],[[43256,43258],"valid",[],"NV8"],[[43259,43259],"valid"],[[43260,43260],"valid",[],"NV8"],[[43261,43261],"valid"],[[43262,43263],"disallowed"],[[43264,43309],"valid"],[[43310,43311],"valid",[],"NV8"],[[43312,43347],"valid"],[[43348,43358],"disallowed"],[[43359,43359],"valid",[],"NV8"],[[43360,43388],"valid",[],"NV8"],[[43389,43391],"disallowed"],[[43392,43456],"valid"],[[43457,43469],"valid",[],"NV8"],[[43470,43470],"disallowed"],[[43471,43481],"valid"],[[43482,43485],"disallowed"],[[43486,43487],"valid",[],"NV8"],[[43488,43518],"valid"],[[43519,43519],"disallowed"],[[43520,43574],"valid"],[[43575,43583],"disallowed"],[[43584,43597],"valid"],[[43598,43599],"disallowed"],[[43600,43609],"valid"],[[43610,43611],"disallowed"],[[43612,43615],"valid",[],"NV8"],[[43616,43638],"valid"],[[43639,43641],"valid",[],"NV8"],[[43642,43643],"valid"],[[43644,43647],"valid"],[[43648,43714],"valid"],[[43715,43738],"disallowed"],[[43739,43741],"valid"],[[43742,43743],"valid",[],"NV8"],[[43744,43759],"valid"],[[43760,43761],"valid",[],"NV8"],[[43762,43766],"valid"],[[43767,43776],"disallowed"],[[43777,43782],"valid"],[[43783,43784],"disallowed"],[[43785,43790],"valid"],[[43791,43792],"disallowed"],[[43793,43798],"valid"],[[43799,43807],"disallowed"],[[43808,43814],"valid"],[[43815,43815],"disallowed"],[[43816,43822],"valid"],[[43823,43823],"disallowed"],[[43824,43866],"valid"],[[43867,43867],"valid",[],"NV8"],[[43868,43868],"mapped",[42791]],[[43869,43869],"mapped",[43831]],[[43870,43870],"mapped",[619]],[[43871,43871],"mapped",[43858]],[[43872,43875],"valid"],[[43876,43877],"valid"],[[43878,43887],"disallowed"],[[43888,43888],"mapped",[5024]],[[43889,43889],"mapped",[5025]],[[43890,43890],"mapped",[5026]],[[43891,43891],"mapped",[5027]],[[43892,43892],"mapped",[5028]],[[43893,43893],"mapped",[5029]],[[43894,43894],"mapped",[5030]],[[43895,43895],"mapped",[5031]],[[43896,43896],"mapped",[5032]],[[43897,43897],"mapped",[5033]],[[43898,43898],"mapped",[5034]],[[43899,43899],"mapped",[5035]],[[43900,43900],"mapped",[5036]],[[43901,43901],"mapped",[5037]],[[43902,43902],"mapped",[5038]],[[43903,43903],"mapped",[5039]],[[43904,43904],"mapped",[5040]],[[43905,43905],"mapped",[5041]],[[43906,43906],"mapped",[5042]],[[43907,43907],"mapped",[5043]],[[43908,43908],"mapped",[5044]],[[43909,43909],"mapped",[5045]],[[43910,43910],"mapped",[5046]],[[43911,43911],"mapped",[5047]],[[43912,43912],"mapped",[5048]],[[43913,43913],"mapped",[5049]],[[43914,43914],"mapped",[5050]],[[43915,43915],"mapped",[5051]],[[43916,43916],"mapped",[5052]],[[43917,43917],"mapped",[5053]],[[43918,43918],"mapped",[5054]],[[43919,43919],"mapped",[5055]],[[43920,43920],"mapped",[5056]],[[43921,43921],"mapped",[5057]],[[43922,43922],"mapped",[5058]],[[43923,43923],"mapped",[5059]],[[43924,43924],"mapped",[5060]],[[43925,43925],"mapped",[5061]],[[43926,43926],"mapped",[5062]],[[43927,43927],"mapped",[5063]],[[43928,43928],"mapped",[5064]],[[43929,43929],"mapped",[5065]],[[43930,43930],"mapped",[5066]],[[43931,43931],"mapped",[5067]],[[43932,43932],"mapped",[5068]],[[43933,43933],"mapped",[5069]],[[43934,43934],"mapped",[5070]],[[43935,43935],"mapped",[5071]],[[43936,43936],"mapped",[5072]],[[43937,43937],"mapped",[5073]],[[43938,43938],"mapped",[5074]],[[43939,43939],"mapped",[5075]],[[43940,43940],"mapped",[5076]],[[43941,43941],"mapped",[5077]],[[43942,43942],"mapped",[5078]],[[43943,43943],"mapped",[5079]],[[43944,43944],"mapped",[5080]],[[43945,43945],"mapped",[5081]],[[43946,43946],"mapped",[5082]],[[43947,43947],"mapped",[5083]],[[43948,43948],"mapped",[5084]],[[43949,43949],"mapped",[5085]],[[43950,43950],"mapped",[5086]],[[43951,43951],"mapped",[5087]],[[43952,43952],"mapped",[5088]],[[43953,43953],"mapped",[5089]],[[43954,43954],"mapped",[5090]],[[43955,43955],"mapped",[5091]],[[43956,43956],"mapped",[5092]],[[43957,43957],"mapped",[5093]],[[43958,43958],"mapped",[5094]],[[43959,43959],"mapped",[5095]],[[43960,43960],"mapped",[5096]],[[43961,43961],"mapped",[5097]],[[43962,43962],"mapped",[5098]],[[43963,43963],"mapped",[5099]],[[43964,43964],"mapped",[5100]],[[43965,43965],"mapped",[5101]],[[43966,43966],"mapped",[5102]],[[43967,43967],"mapped",[5103]],[[43968,44010],"valid"],[[44011,44011],"valid",[],"NV8"],[[44012,44013],"valid"],[[44014,44015],"disallowed"],[[44016,44025],"valid"],[[44026,44031],"disallowed"],[[44032,55203],"valid"],[[55204,55215],"disallowed"],[[55216,55238],"valid",[],"NV8"],[[55239,55242],"disallowed"],[[55243,55291],"valid",[],"NV8"],[[55292,55295],"disallowed"],[[55296,57343],"disallowed"],[[57344,63743],"disallowed"],[[63744,63744],"mapped",[35912]],[[63745,63745],"mapped",[26356]],[[63746,63746],"mapped",[36554]],[[63747,63747],"mapped",[36040]],[[63748,63748],"mapped",[28369]],[[63749,63749],"mapped",[20018]],[[63750,63750],"mapped",[21477]],[[63751,63752],"mapped",[40860]],[[63753,63753],"mapped",[22865]],[[63754,63754],"mapped",[37329]],[[63755,63755],"mapped",[21895]],[[63756,63756],"mapped",[22856]],[[63757,63757],"mapped",[25078]],[[63758,63758],"mapped",[30313]],[[63759,63759],"mapped",[32645]],[[63760,63760],"mapped",[34367]],[[63761,63761],"mapped",[34746]],[[63762,63762],"mapped",[35064]],[[63763,63763],"mapped",[37007]],[[63764,63764],"mapped",[27138]],[[63765,63765],"mapped",[27931]],[[63766,63766],"mapped",[28889]],[[63767,63767],"mapped",[29662]],[[63768,63768],"mapped",[33853]],[[63769,63769],"mapped",[37226]],[[63770,63770],"mapped",[39409]],[[63771,63771],"mapped",[20098]],[[63772,63772],"mapped",[21365]],[[63773,63773],"mapped",[27396]],[[63774,63774],"mapped",[29211]],[[63775,63775],"mapped",[34349]],[[63776,63776],"mapped",[40478]],[[63777,63777],"mapped",[23888]],[[63778,63778],"mapped",[28651]],[[63779,63779],"mapped",[34253]],[[63780,63780],"mapped",[35172]],[[63781,63781],"mapped",[25289]],[[63782,63782],"mapped",[33240]],[[63783,63783],"mapped",[34847]],[[63784,63784],"mapped",[24266]],[[63785,63785],"mapped",[26391]],[[63786,63786],"mapped",[28010]],[[63787,63787],"mapped",[29436]],[[63788,63788],"mapped",[37070]],[[63789,63789],"mapped",[20358]],[[63790,63790],"mapped",[20919]],[[63791,63791],"mapped",[21214]],[[63792,63792],"mapped",[25796]],[[63793,63793],"mapped",[27347]],[[63794,63794],"mapped",[29200]],[[63795,63795],"mapped",[30439]],[[63796,63796],"mapped",[32769]],[[63797,63797],"mapped",[34310]],[[63798,63798],"mapped",[34396]],[[63799,63799],"mapped",[36335]],[[63800,63800],"mapped",[38706]],[[63801,63801],"mapped",[39791]],[[63802,63802],"mapped",[40442]],[[63803,63803],"mapped",[30860]],[[63804,63804],"mapped",[31103]],[[63805,63805],"mapped",[32160]],[[63806,63806],"mapped",[33737]],[[63807,63807],"mapped",[37636]],[[63808,63808],"mapped",[40575]],[[63809,63809],"mapped",[35542]],[[63810,63810],"mapped",[22751]],[[63811,63811],"mapped",[24324]],[[63812,63812],"mapped",[31840]],[[63813,63813],"mapped",[32894]],[[63814,63814],"mapped",[29282]],[[63815,63815],"mapped",[30922]],[[63816,63816],"mapped",[36034]],[[63817,63817],"mapped",[38647]],[[63818,63818],"mapped",[22744]],[[63819,63819],"mapped",[23650]],[[63820,63820],"mapped",[27155]],[[63821,63821],"mapped",[28122]],[[63822,63822],"mapped",[28431]],[[63823,63823],"mapped",[32047]],[[63824,63824],"mapped",[32311]],[[63825,63825],"mapped",[38475]],[[63826,63826],"mapped",[21202]],[[63827,63827],"mapped",[32907]],[[63828,63828],"mapped",[20956]],[[63829,63829],"mapped",[20940]],[[63830,63830],"mapped",[31260]],[[63831,63831],"mapped",[32190]],[[63832,63832],"mapped",[33777]],[[63833,63833],"mapped",[38517]],[[63834,63834],"mapped",[35712]],[[63835,63835],"mapped",[25295]],[[63836,63836],"mapped",[27138]],[[63837,63837],"mapped",[35582]],[[63838,63838],"mapped",[20025]],[[63839,63839],"mapped",[23527]],[[63840,63840],"mapped",[24594]],[[63841,63841],"mapped",[29575]],[[63842,63842],"mapped",[30064]],[[63843,63843],"mapped",[21271]],[[63844,63844],"mapped",[30971]],[[63845,63845],"mapped",[20415]],[[63846,63846],"mapped",[24489]],[[63847,63847],"mapped",[19981]],[[63848,63848],"mapped",[27852]],[[63849,63849],"mapped",[25976]],[[63850,63850],"mapped",[32034]],[[63851,63851],"mapped",[21443]],[[63852,63852],"mapped",[22622]],[[63853,63853],"mapped",[30465]],[[63854,63854],"mapped",[33865]],[[63855,63855],"mapped",[35498]],[[63856,63856],"mapped",[27578]],[[63857,63857],"mapped",[36784]],[[63858,63858],"mapped",[27784]],[[63859,63859],"mapped",[25342]],[[63860,63860],"mapped",[33509]],[[63861,63861],"mapped",[25504]],[[63862,63862],"mapped",[30053]],[[63863,63863],"mapped",[20142]],[[63864,63864],"mapped",[20841]],[[63865,63865],"mapped",[20937]],[[63866,63866],"mapped",[26753]],[[63867,63867],"mapped",[31975]],[[63868,63868],"mapped",[33391]],[[63869,63869],"mapped",[35538]],[[63870,63870],"mapped",[37327]],[[63871,63871],"mapped",[21237]],[[63872,63872],"mapped",[21570]],[[63873,63873],"mapped",[22899]],[[63874,63874],"mapped",[24300]],[[63875,63875],"mapped",[26053]],[[63876,63876],"mapped",[28670]],[[63877,63877],"mapped",[31018]],[[63878,63878],"mapped",[38317]],[[63879,63879],"mapped",[39530]],[[63880,63880],"mapped",[40599]],[[63881,63881],"mapped",[40654]],[[63882,63882],"mapped",[21147]],[[63883,63883],"mapped",[26310]],[[63884,63884],"mapped",[27511]],[[63885,63885],"mapped",[36706]],[[63886,63886],"mapped",[24180]],[[63887,63887],"mapped",[24976]],[[63888,63888],"mapped",[25088]],[[63889,63889],"mapped",[25754]],[[63890,63890],"mapped",[28451]],[[63891,63891],"mapped",[29001]],[[63892,63892],"mapped",[29833]],[[63893,63893],"mapped",[31178]],[[63894,63894],"mapped",[32244]],[[63895,63895],"mapped",[32879]],[[63896,63896],"mapped",[36646]],[[63897,63897],"mapped",[34030]],[[63898,63898],"mapped",[36899]],[[63899,63899],"mapped",[37706]],[[63900,63900],"mapped",[21015]],[[63901,63901],"mapped",[21155]],[[63902,63902],"mapped",[21693]],[[63903,63903],"mapped",[28872]],[[63904,63904],"mapped",[35010]],[[63905,63905],"mapped",[35498]],[[63906,63906],"mapped",[24265]],[[63907,63907],"mapped",[24565]],[[63908,63908],"mapped",[25467]],[[63909,63909],"mapped",[27566]],[[63910,63910],"mapped",[31806]],[[63911,63911],"mapped",[29557]],[[63912,63912],"mapped",[20196]],[[63913,63913],"mapped",[22265]],[[63914,63914],"mapped",[23527]],[[63915,63915],"mapped",[23994]],[[63916,63916],"mapped",[24604]],[[63917,63917],"mapped",[29618]],[[63918,63918],"mapped",[29801]],[[63919,63919],"mapped",[32666]],[[63920,63920],"mapped",[32838]],[[63921,63921],"mapped",[37428]],[[63922,63922],"mapped",[38646]],[[63923,63923],"mapped",[38728]],[[63924,63924],"mapped",[38936]],[[63925,63925],"mapped",[20363]],[[63926,63926],"mapped",[31150]],[[63927,63927],"mapped",[37300]],[[63928,63928],"mapped",[38584]],[[63929,63929],"mapped",[24801]],[[63930,63930],"mapped",[20102]],[[63931,63931],"mapped",[20698]],[[63932,63932],"mapped",[23534]],[[63933,63933],"mapped",[23615]],[[63934,63934],"mapped",[26009]],[[63935,63935],"mapped",[27138]],[[63936,63936],"mapped",[29134]],[[63937,63937],"mapped",[30274]],[[63938,63938],"mapped",[34044]],[[63939,63939],"mapped",[36988]],[[63940,63940],"mapped",[40845]],[[63941,63941],"mapped",[26248]],[[63942,63942],"mapped",[38446]],[[63943,63943],"mapped",[21129]],[[63944,63944],"mapped",[26491]],[[63945,63945],"mapped",[26611]],[[63946,63946],"mapped",[27969]],[[63947,63947],"mapped",[28316]],[[63948,63948],"mapped",[29705]],[[63949,63949],"mapped",[30041]],[[63950,63950],"mapped",[30827]],[[63951,63951],"mapped",[32016]],[[63952,63952],"mapped",[39006]],[[63953,63953],"mapped",[20845]],[[63954,63954],"mapped",[25134]],[[63955,63955],"mapped",[38520]],[[63956,63956],"mapped",[20523]],[[63957,63957],"mapped",[23833]],[[63958,63958],"mapped",[28138]],[[63959,63959],"mapped",[36650]],[[63960,63960],"mapped",[24459]],[[63961,63961],"mapped",[24900]],[[63962,63962],"mapped",[26647]],[[63963,63963],"mapped",[29575]],[[63964,63964],"mapped",[38534]],[[63965,63965],"mapped",[21033]],[[63966,63966],"mapped",[21519]],[[63967,63967],"mapped",[23653]],[[63968,63968],"mapped",[26131]],[[63969,63969],"mapped",[26446]],[[63970,63970],"mapped",[26792]],[[63971,63971],"mapped",[27877]],[[63972,63972],"mapped",[29702]],[[63973,63973],"mapped",[30178]],[[63974,63974],"mapped",[32633]],[[63975,63975],"mapped",[35023]],[[63976,63976],"mapped",[35041]],[[63977,63977],"mapped",[37324]],[[63978,63978],"mapped",[38626]],[[63979,63979],"mapped",[21311]],[[63980,63980],"mapped",[28346]],[[63981,63981],"mapped",[21533]],[[63982,63982],"mapped",[29136]],[[63983,63983],"mapped",[29848]],[[63984,63984],"mapped",[34298]],[[63985,63985],"mapped",[38563]],[[63986,63986],"mapped",[40023]],[[63987,63987],"mapped",[40607]],[[63988,63988],"mapped",[26519]],[[63989,63989],"mapped",[28107]],[[63990,63990],"mapped",[33256]],[[63991,63991],"mapped",[31435]],[[63992,63992],"mapped",[31520]],[[63993,63993],"mapped",[31890]],[[63994,63994],"mapped",[29376]],[[63995,63995],"mapped",[28825]],[[63996,63996],"mapped",[35672]],[[63997,63997],"mapped",[20160]],[[63998,63998],"mapped",[33590]],[[63999,63999],"mapped",[21050]],[[64000,64000],"mapped",[20999]],[[64001,64001],"mapped",[24230]],[[64002,64002],"mapped",[25299]],[[64003,64003],"mapped",[31958]],[[64004,64004],"mapped",[23429]],[[64005,64005],"mapped",[27934]],[[64006,64006],"mapped",[26292]],[[64007,64007],"mapped",[36667]],[[64008,64008],"mapped",[34892]],[[64009,64009],"mapped",[38477]],[[64010,64010],"mapped",[35211]],[[64011,64011],"mapped",[24275]],[[64012,64012],"mapped",[20800]],[[64013,64013],"mapped",[21952]],[[64014,64015],"valid"],[[64016,64016],"mapped",[22618]],[[64017,64017],"valid"],[[64018,64018],"mapped",[26228]],[[64019,64020],"valid"],[[64021,64021],"mapped",[20958]],[[64022,64022],"mapped",[29482]],[[64023,64023],"mapped",[30410]],[[64024,64024],"mapped",[31036]],[[64025,64025],"mapped",[31070]],[[64026,64026],"mapped",[31077]],[[64027,64027],"mapped",[31119]],[[64028,64028],"mapped",[38742]],[[64029,64029],"mapped",[31934]],[[64030,64030],"mapped",[32701]],[[64031,64031],"valid"],[[64032,64032],"mapped",[34322]],[[64033,64033],"valid"],[[64034,64034],"mapped",[35576]],[[64035,64036],"valid"],[[64037,64037],"mapped",[36920]],[[64038,64038],"mapped",[37117]],[[64039,64041],"valid"],[[64042,64042],"mapped",[39151]],[[64043,64043],"mapped",[39164]],[[64044,64044],"mapped",[39208]],[[64045,64045],"mapped",[40372]],[[64046,64046],"mapped",[37086]],[[64047,64047],"mapped",[38583]],[[64048,64048],"mapped",[20398]],[[64049,64049],"mapped",[20711]],[[64050,64050],"mapped",[20813]],[[64051,64051],"mapped",[21193]],[[64052,64052],"mapped",[21220]],[[64053,64053],"mapped",[21329]],[[64054,64054],"mapped",[21917]],[[64055,64055],"mapped",[22022]],[[64056,64056],"mapped",[22120]],[[64057,64057],"mapped",[22592]],[[64058,64058],"mapped",[22696]],[[64059,64059],"mapped",[23652]],[[64060,64060],"mapped",[23662]],[[64061,64061],"mapped",[24724]],[[64062,64062],"mapped",[24936]],[[64063,64063],"mapped",[24974]],[[64064,64064],"mapped",[25074]],[[64065,64065],"mapped",[25935]],[[64066,64066],"mapped",[26082]],[[64067,64067],"mapped",[26257]],[[64068,64068],"mapped",[26757]],[[64069,64069],"mapped",[28023]],[[64070,64070],"mapped",[28186]],[[64071,64071],"mapped",[28450]],[[64072,64072],"mapped",[29038]],[[64073,64073],"mapped",[29227]],[[64074,64074],"mapped",[29730]],[[64075,64075],"mapped",[30865]],[[64076,64076],"mapped",[31038]],[[64077,64077],"mapped",[31049]],[[64078,64078],"mapped",[31048]],[[64079,64079],"mapped",[31056]],[[64080,64080],"mapped",[31062]],[[64081,64081],"mapped",[31069]],[[64082,64082],"mapped",[31117]],[[64083,64083],"mapped",[31118]],[[64084,64084],"mapped",[31296]],[[64085,64085],"mapped",[31361]],[[64086,64086],"mapped",[31680]],[[64087,64087],"mapped",[32244]],[[64088,64088],"mapped",[32265]],[[64089,64089],"mapped",[32321]],[[64090,64090],"mapped",[32626]],[[64091,64091],"mapped",[32773]],[[64092,64092],"mapped",[33261]],[[64093,64094],"mapped",[33401]],[[64095,64095],"mapped",[33879]],[[64096,64096],"mapped",[35088]],[[64097,64097],"mapped",[35222]],[[64098,64098],"mapped",[35585]],[[64099,64099],"mapped",[35641]],[[64100,64100],"mapped",[36051]],[[64101,64101],"mapped",[36104]],[[64102,64102],"mapped",[36790]],[[64103,64103],"mapped",[36920]],[[64104,64104],"mapped",[38627]],[[64105,64105],"mapped",[38911]],[[64106,64106],"mapped",[38971]],[[64107,64107],"mapped",[24693]],[[64108,64108],"mapped",[148206]],[[64109,64109],"mapped",[33304]],[[64110,64111],"disallowed"],[[64112,64112],"mapped",[20006]],[[64113,64113],"mapped",[20917]],[[64114,64114],"mapped",[20840]],[[64115,64115],"mapped",[20352]],[[64116,64116],"mapped",[20805]],[[64117,64117],"mapped",[20864]],[[64118,64118],"mapped",[21191]],[[64119,64119],"mapped",[21242]],[[64120,64120],"mapped",[21917]],[[64121,64121],"mapped",[21845]],[[64122,64122],"mapped",[21913]],[[64123,64123],"mapped",[21986]],[[64124,64124],"mapped",[22618]],[[64125,64125],"mapped",[22707]],[[64126,64126],"mapped",[22852]],[[64127,64127],"mapped",[22868]],[[64128,64128],"mapped",[23138]],[[64129,64129],"mapped",[23336]],[[64130,64130],"mapped",[24274]],[[64131,64131],"mapped",[24281]],[[64132,64132],"mapped",[24425]],[[64133,64133],"mapped",[24493]],[[64134,64134],"mapped",[24792]],[[64135,64135],"mapped",[24910]],[[64136,64136],"mapped",[24840]],[[64137,64137],"mapped",[24974]],[[64138,64138],"mapped",[24928]],[[64139,64139],"mapped",[25074]],[[64140,64140],"mapped",[25140]],[[64141,64141],"mapped",[25540]],[[64142,64142],"mapped",[25628]],[[64143,64143],"mapped",[25682]],[[64144,64144],"mapped",[25942]],[[64145,64145],"mapped",[26228]],[[64146,64146],"mapped",[26391]],[[64147,64147],"mapped",[26395]],[[64148,64148],"mapped",[26454]],[[64149,64149],"mapped",[27513]],[[64150,64150],"mapped",[27578]],[[64151,64151],"mapped",[27969]],[[64152,64152],"mapped",[28379]],[[64153,64153],"mapped",[28363]],[[64154,64154],"mapped",[28450]],[[64155,64155],"mapped",[28702]],[[64156,64156],"mapped",[29038]],[[64157,64157],"mapped",[30631]],[[64158,64158],"mapped",[29237]],[[64159,64159],"mapped",[29359]],[[64160,64160],"mapped",[29482]],[[64161,64161],"mapped",[29809]],[[64162,64162],"mapped",[29958]],[[64163,64163],"mapped",[30011]],[[64164,64164],"mapped",[30237]],[[64165,64165],"mapped",[30239]],[[64166,64166],"mapped",[30410]],[[64167,64167],"mapped",[30427]],[[64168,64168],"mapped",[30452]],[[64169,64169],"mapped",[30538]],[[64170,64170],"mapped",[30528]],[[64171,64171],"mapped",[30924]],[[64172,64172],"mapped",[31409]],[[64173,64173],"mapped",[31680]],[[64174,64174],"mapped",[31867]],[[64175,64175],"mapped",[32091]],[[64176,64176],"mapped",[32244]],[[64177,64177],"mapped",[32574]],[[64178,64178],"mapped",[32773]],[[64179,64179],"mapped",[33618]],[[64180,64180],"mapped",[33775]],[[64181,64181],"mapped",[34681]],[[64182,64182],"mapped",[35137]],[[64183,64183],"mapped",[35206]],[[64184,64184],"mapped",[35222]],[[64185,64185],"mapped",[35519]],[[64186,64186],"mapped",[35576]],[[64187,64187],"mapped",[35531]],[[64188,64188],"mapped",[35585]],[[64189,64189],"mapped",[35582]],[[64190,64190],"mapped",[35565]],[[64191,64191],"mapped",[35641]],[[64192,64192],"mapped",[35722]],[[64193,64193],"mapped",[36104]],[[64194,64194],"mapped",[36664]],[[64195,64195],"mapped",[36978]],[[64196,64196],"mapped",[37273]],[[64197,64197],"mapped",[37494]],[[64198,64198],"mapped",[38524]],[[64199,64199],"mapped",[38627]],[[64200,64200],"mapped",[38742]],[[64201,64201],"mapped",[38875]],[[64202,64202],"mapped",[38911]],[[64203,64203],"mapped",[38923]],[[64204,64204],"mapped",[38971]],[[64205,64205],"mapped",[39698]],[[64206,64206],"mapped",[40860]],[[64207,64207],"mapped",[141386]],[[64208,64208],"mapped",[141380]],[[64209,64209],"mapped",[144341]],[[64210,64210],"mapped",[15261]],[[64211,64211],"mapped",[16408]],[[64212,64212],"mapped",[16441]],[[64213,64213],"mapped",[152137]],[[64214,64214],"mapped",[154832]],[[64215,64215],"mapped",[163539]],[[64216,64216],"mapped",[40771]],[[64217,64217],"mapped",[40846]],[[64218,64255],"disallowed"],[[64256,64256],"mapped",[102,102]],[[64257,64257],"mapped",[102,105]],[[64258,64258],"mapped",[102,108]],[[64259,64259],"mapped",[102,102,105]],[[64260,64260],"mapped",[102,102,108]],[[64261,64262],"mapped",[115,116]],[[64263,64274],"disallowed"],[[64275,64275],"mapped",[1396,1398]],[[64276,64276],"mapped",[1396,1381]],[[64277,64277],"mapped",[1396,1387]],[[64278,64278],"mapped",[1406,1398]],[[64279,64279],"mapped",[1396,1389]],[[64280,64284],"disallowed"],[[64285,64285],"mapped",[1497,1460]],[[64286,64286],"valid"],[[64287,64287],"mapped",[1522,1463]],[[64288,64288],"mapped",[1506]],[[64289,64289],"mapped",[1488]],[[64290,64290],"mapped",[1491]],[[64291,64291],"mapped",[1492]],[[64292,64292],"mapped",[1499]],[[64293,64293],"mapped",[1500]],[[64294,64294],"mapped",[1501]],[[64295,64295],"mapped",[1512]],[[64296,64296],"mapped",[1514]],[[64297,64297],"disallowed_STD3_mapped",[43]],[[64298,64298],"mapped",[1513,1473]],[[64299,64299],"mapped",[1513,1474]],[[64300,64300],"mapped",[1513,1468,1473]],[[64301,64301],"mapped",[1513,1468,1474]],[[64302,64302],"mapped",[1488,1463]],[[64303,64303],"mapped",[1488,1464]],[[64304,64304],"mapped",[1488,1468]],[[64305,64305],"mapped",[1489,1468]],[[64306,64306],"mapped",[1490,1468]],[[64307,64307],"mapped",[1491,1468]],[[64308,64308],"mapped",[1492,1468]],[[64309,64309],"mapped",[1493,1468]],[[64310,64310],"mapped",[1494,1468]],[[64311,64311],"disallowed"],[[64312,64312],"mapped",[1496,1468]],[[64313,64313],"mapped",[1497,1468]],[[64314,64314],"mapped",[1498,1468]],[[64315,64315],"mapped",[1499,1468]],[[64316,64316],"mapped",[1500,1468]],[[64317,64317],"disallowed"],[[64318,64318],"mapped",[1502,1468]],[[64319,64319],"disallowed"],[[64320,64320],"mapped",[1504,1468]],[[64321,64321],"mapped",[1505,1468]],[[64322,64322],"disallowed"],[[64323,64323],"mapped",[1507,1468]],[[64324,64324],"mapped",[1508,1468]],[[64325,64325],"disallowed"],[[64326,64326],"mapped",[1510,1468]],[[64327,64327],"mapped",[1511,1468]],[[64328,64328],"mapped",[1512,1468]],[[64329,64329],"mapped",[1513,1468]],[[64330,64330],"mapped",[1514,1468]],[[64331,64331],"mapped",[1493,1465]],[[64332,64332],"mapped",[1489,1471]],[[64333,64333],"mapped",[1499,1471]],[[64334,64334],"mapped",[1508,1471]],[[64335,64335],"mapped",[1488,1500]],[[64336,64337],"mapped",[1649]],[[64338,64341],"mapped",[1659]],[[64342,64345],"mapped",[1662]],[[64346,64349],"mapped",[1664]],[[64350,64353],"mapped",[1658]],[[64354,64357],"mapped",[1663]],[[64358,64361],"mapped",[1657]],[[64362,64365],"mapped",[1700]],[[64366,64369],"mapped",[1702]],[[64370,64373],"mapped",[1668]],[[64374,64377],"mapped",[1667]],[[64378,64381],"mapped",[1670]],[[64382,64385],"mapped",[1671]],[[64386,64387],"mapped",[1677]],[[64388,64389],"mapped",[1676]],[[64390,64391],"mapped",[1678]],[[64392,64393],"mapped",[1672]],[[64394,64395],"mapped",[1688]],[[64396,64397],"mapped",[1681]],[[64398,64401],"mapped",[1705]],[[64402,64405],"mapped",[1711]],[[64406,64409],"mapped",[1715]],[[64410,64413],"mapped",[1713]],[[64414,64415],"mapped",[1722]],[[64416,64419],"mapped",[1723]],[[64420,64421],"mapped",[1728]],[[64422,64425],"mapped",[1729]],[[64426,64429],"mapped",[1726]],[[64430,64431],"mapped",[1746]],[[64432,64433],"mapped",[1747]],[[64434,64449],"valid",[],"NV8"],[[64450,64466],"disallowed"],[[64467,64470],"mapped",[1709]],[[64471,64472],"mapped",[1735]],[[64473,64474],"mapped",[1734]],[[64475,64476],"mapped",[1736]],[[64477,64477],"mapped",[1735,1652]],[[64478,64479],"mapped",[1739]],[[64480,64481],"mapped",[1733]],[[64482,64483],"mapped",[1737]],[[64484,64487],"mapped",[1744]],[[64488,64489],"mapped",[1609]],[[64490,64491],"mapped",[1574,1575]],[[64492,64493],"mapped",[1574,1749]],[[64494,64495],"mapped",[1574,1608]],[[64496,64497],"mapped",[1574,1735]],[[64498,64499],"mapped",[1574,1734]],[[64500,64501],"mapped",[1574,1736]],[[64502,64504],"mapped",[1574,1744]],[[64505,64507],"mapped",[1574,1609]],[[64508,64511],"mapped",[1740]],[[64512,64512],"mapped",[1574,1580]],[[64513,64513],"mapped",[1574,1581]],[[64514,64514],"mapped",[1574,1605]],[[64515,64515],"mapped",[1574,1609]],[[64516,64516],"mapped",[1574,1610]],[[64517,64517],"mapped",[1576,1580]],[[64518,64518],"mapped",[1576,1581]],[[64519,64519],"mapped",[1576,1582]],[[64520,64520],"mapped",[1576,1605]],[[64521,64521],"mapped",[1576,1609]],[[64522,64522],"mapped",[1576,1610]],[[64523,64523],"mapped",[1578,1580]],[[64524,64524],"mapped",[1578,1581]],[[64525,64525],"mapped",[1578,1582]],[[64526,64526],"mapped",[1578,1605]],[[64527,64527],"mapped",[1578,1609]],[[64528,64528],"mapped",[1578,1610]],[[64529,64529],"mapped",[1579,1580]],[[64530,64530],"mapped",[1579,1605]],[[64531,64531],"mapped",[1579,1609]],[[64532,64532],"mapped",[1579,1610]],[[64533,64533],"mapped",[1580,1581]],[[64534,64534],"mapped",[1580,1605]],[[64535,64535],"mapped",[1581,1580]],[[64536,64536],"mapped",[1581,1605]],[[64537,64537],"mapped",[1582,1580]],[[64538,64538],"mapped",[1582,1581]],[[64539,64539],"mapped",[1582,1605]],[[64540,64540],"mapped",[1587,1580]],[[64541,64541],"mapped",[1587,1581]],[[64542,64542],"mapped",[1587,1582]],[[64543,64543],"mapped",[1587,1605]],[[64544,64544],"mapped",[1589,1581]],[[64545,64545],"mapped",[1589,1605]],[[64546,64546],"mapped",[1590,1580]],[[64547,64547],"mapped",[1590,1581]],[[64548,64548],"mapped",[1590,1582]],[[64549,64549],"mapped",[1590,1605]],[[64550,64550],"mapped",[1591,1581]],[[64551,64551],"mapped",[1591,1605]],[[64552,64552],"mapped",[1592,1605]],[[64553,64553],"mapped",[1593,1580]],[[64554,64554],"mapped",[1593,1605]],[[64555,64555],"mapped",[1594,1580]],[[64556,64556],"mapped",[1594,1605]],[[64557,64557],"mapped",[1601,1580]],[[64558,64558],"mapped",[1601,1581]],[[64559,64559],"mapped",[1601,1582]],[[64560,64560],"mapped",[1601,1605]],[[64561,64561],"mapped",[1601,1609]],[[64562,64562],"mapped",[1601,1610]],[[64563,64563],"mapped",[1602,1581]],[[64564,64564],"mapped",[1602,1605]],[[64565,64565],"mapped",[1602,1609]],[[64566,64566],"mapped",[1602,1610]],[[64567,64567],"mapped",[1603,1575]],[[64568,64568],"mapped",[1603,1580]],[[64569,64569],"mapped",[1603,1581]],[[64570,64570],"mapped",[1603,1582]],[[64571,64571],"mapped",[1603,1604]],[[64572,64572],"mapped",[1603,1605]],[[64573,64573],"mapped",[1603,1609]],[[64574,64574],"mapped",[1603,1610]],[[64575,64575],"mapped",[1604,1580]],[[64576,64576],"mapped",[1604,1581]],[[64577,64577],"mapped",[1604,1582]],[[64578,64578],"mapped",[1604,1605]],[[64579,64579],"mapped",[1604,1609]],[[64580,64580],"mapped",[1604,1610]],[[64581,64581],"mapped",[1605,1580]],[[64582,64582],"mapped",[1605,1581]],[[64583,64583],"mapped",[1605,1582]],[[64584,64584],"mapped",[1605,1605]],[[64585,64585],"mapped",[1605,1609]],[[64586,64586],"mapped",[1605,1610]],[[64587,64587],"mapped",[1606,1580]],[[64588,64588],"mapped",[1606,1581]],[[64589,64589],"mapped",[1606,1582]],[[64590,64590],"mapped",[1606,1605]],[[64591,64591],"mapped",[1606,1609]],[[64592,64592],"mapped",[1606,1610]],[[64593,64593],"mapped",[1607,1580]],[[64594,64594],"mapped",[1607,1605]],[[64595,64595],"mapped",[1607,1609]],[[64596,64596],"mapped",[1607,1610]],[[64597,64597],"mapped",[1610,1580]],[[64598,64598],"mapped",[1610,1581]],[[64599,64599],"mapped",[1610,1582]],[[64600,64600],"mapped",[1610,1605]],[[64601,64601],"mapped",[1610,1609]],[[64602,64602],"mapped",[1610,1610]],[[64603,64603],"mapped",[1584,1648]],[[64604,64604],"mapped",[1585,1648]],[[64605,64605],"mapped",[1609,1648]],[[64606,64606],"disallowed_STD3_mapped",[32,1612,1617]],[[64607,64607],"disallowed_STD3_mapped",[32,1613,1617]],[[64608,64608],"disallowed_STD3_mapped",[32,1614,1617]],[[64609,64609],"disallowed_STD3_mapped",[32,1615,1617]],[[64610,64610],"disallowed_STD3_mapped",[32,1616,1617]],[[64611,64611],"disallowed_STD3_mapped",[32,1617,1648]],[[64612,64612],"mapped",[1574,1585]],[[64613,64613],"mapped",[1574,1586]],[[64614,64614],"mapped",[1574,1605]],[[64615,64615],"mapped",[1574,1606]],[[64616,64616],"mapped",[1574,1609]],[[64617,64617],"mapped",[1574,1610]],[[64618,64618],"mapped",[1576,1585]],[[64619,64619],"mapped",[1576,1586]],[[64620,64620],"mapped",[1576,1605]],[[64621,64621],"mapped",[1576,1606]],[[64622,64622],"mapped",[1576,1609]],[[64623,64623],"mapped",[1576,1610]],[[64624,64624],"mapped",[1578,1585]],[[64625,64625],"mapped",[1578,1586]],[[64626,64626],"mapped",[1578,1605]],[[64627,64627],"mapped",[1578,1606]],[[64628,64628],"mapped",[1578,1609]],[[64629,64629],"mapped",[1578,1610]],[[64630,64630],"mapped",[1579,1585]],[[64631,64631],"mapped",[1579,1586]],[[64632,64632],"mapped",[1579,1605]],[[64633,64633],"mapped",[1579,1606]],[[64634,64634],"mapped",[1579,1609]],[[64635,64635],"mapped",[1579,1610]],[[64636,64636],"mapped",[1601,1609]],[[64637,64637],"mapped",[1601,1610]],[[64638,64638],"mapped",[1602,1609]],[[64639,64639],"mapped",[1602,1610]],[[64640,64640],"mapped",[1603,1575]],[[64641,64641],"mapped",[1603,1604]],[[64642,64642],"mapped",[1603,1605]],[[64643,64643],"mapped",[1603,1609]],[[64644,64644],"mapped",[1603,1610]],[[64645,64645],"mapped",[1604,1605]],[[64646,64646],"mapped",[1604,1609]],[[64647,64647],"mapped",[1604,1610]],[[64648,64648],"mapped",[1605,1575]],[[64649,64649],"mapped",[1605,1605]],[[64650,64650],"mapped",[1606,1585]],[[64651,64651],"mapped",[1606,1586]],[[64652,64652],"mapped",[1606,1605]],[[64653,64653],"mapped",[1606,1606]],[[64654,64654],"mapped",[1606,1609]],[[64655,64655],"mapped",[1606,1610]],[[64656,64656],"mapped",[1609,1648]],[[64657,64657],"mapped",[1610,1585]],[[64658,64658],"mapped",[1610,1586]],[[64659,64659],"mapped",[1610,1605]],[[64660,64660],"mapped",[1610,1606]],[[64661,64661],"mapped",[1610,1609]],[[64662,64662],"mapped",[1610,1610]],[[64663,64663],"mapped",[1574,1580]],[[64664,64664],"mapped",[1574,1581]],[[64665,64665],"mapped",[1574,1582]],[[64666,64666],"mapped",[1574,1605]],[[64667,64667],"mapped",[1574,1607]],[[64668,64668],"mapped",[1576,1580]],[[64669,64669],"mapped",[1576,1581]],[[64670,64670],"mapped",[1576,1582]],[[64671,64671],"mapped",[1576,1605]],[[64672,64672],"mapped",[1576,1607]],[[64673,64673],"mapped",[1578,1580]],[[64674,64674],"mapped",[1578,1581]],[[64675,64675],"mapped",[1578,1582]],[[64676,64676],"mapped",[1578,1605]],[[64677,64677],"mapped",[1578,1607]],[[64678,64678],"mapped",[1579,1605]],[[64679,64679],"mapped",[1580,1581]],[[64680,64680],"mapped",[1580,1605]],[[64681,64681],"mapped",[1581,1580]],[[64682,64682],"mapped",[1581,1605]],[[64683,64683],"mapped",[1582,1580]],[[64684,64684],"mapped",[1582,1605]],[[64685,64685],"mapped",[1587,1580]],[[64686,64686],"mapped",[1587,1581]],[[64687,64687],"mapped",[1587,1582]],[[64688,64688],"mapped",[1587,1605]],[[64689,64689],"mapped",[1589,1581]],[[64690,64690],"mapped",[1589,1582]],[[64691,64691],"mapped",[1589,1605]],[[64692,64692],"mapped",[1590,1580]],[[64693,64693],"mapped",[1590,1581]],[[64694,64694],"mapped",[1590,1582]],[[64695,64695],"mapped",[1590,1605]],[[64696,64696],"mapped",[1591,1581]],[[64697,64697],"mapped",[1592,1605]],[[64698,64698],"mapped",[1593,1580]],[[64699,64699],"mapped",[1593,1605]],[[64700,64700],"mapped",[1594,1580]],[[64701,64701],"mapped",[1594,1605]],[[64702,64702],"mapped",[1601,1580]],[[64703,64703],"mapped",[1601,1581]],[[64704,64704],"mapped",[1601,1582]],[[64705,64705],"mapped",[1601,1605]],[[64706,64706],"mapped",[1602,1581]],[[64707,64707],"mapped",[1602,1605]],[[64708,64708],"mapped",[1603,1580]],[[64709,64709],"mapped",[1603,1581]],[[64710,64710],"mapped",[1603,1582]],[[64711,64711],"mapped",[1603,1604]],[[64712,64712],"mapped",[1603,1605]],[[64713,64713],"mapped",[1604,1580]],[[64714,64714],"mapped",[1604,1581]],[[64715,64715],"mapped",[1604,1582]],[[64716,64716],"mapped",[1604,1605]],[[64717,64717],"mapped",[1604,1607]],[[64718,64718],"mapped",[1605,1580]],[[64719,64719],"mapped",[1605,1581]],[[64720,64720],"mapped",[1605,1582]],[[64721,64721],"mapped",[1605,1605]],[[64722,64722],"mapped",[1606,1580]],[[64723,64723],"mapped",[1606,1581]],[[64724,64724],"mapped",[1606,1582]],[[64725,64725],"mapped",[1606,1605]],[[64726,64726],"mapped",[1606,1607]],[[64727,64727],"mapped",[1607,1580]],[[64728,64728],"mapped",[1607,1605]],[[64729,64729],"mapped",[1607,1648]],[[64730,64730],"mapped",[1610,1580]],[[64731,64731],"mapped",[1610,1581]],[[64732,64732],"mapped",[1610,1582]],[[64733,64733],"mapped",[1610,1605]],[[64734,64734],"mapped",[1610,1607]],[[64735,64735],"mapped",[1574,1605]],[[64736,64736],"mapped",[1574,1607]],[[64737,64737],"mapped",[1576,1605]],[[64738,64738],"mapped",[1576,1607]],[[64739,64739],"mapped",[1578,1605]],[[64740,64740],"mapped",[1578,1607]],[[64741,64741],"mapped",[1579,1605]],[[64742,64742],"mapped",[1579,1607]],[[64743,64743],"mapped",[1587,1605]],[[64744,64744],"mapped",[1587,1607]],[[64745,64745],"mapped",[1588,1605]],[[64746,64746],"mapped",[1588,1607]],[[64747,64747],"mapped",[1603,1604]],[[64748,64748],"mapped",[1603,1605]],[[64749,64749],"mapped",[1604,1605]],[[64750,64750],"mapped",[1606,1605]],[[64751,64751],"mapped",[1606,1607]],[[64752,64752],"mapped",[1610,1605]],[[64753,64753],"mapped",[1610,1607]],[[64754,64754],"mapped",[1600,1614,1617]],[[64755,64755],"mapped",[1600,1615,1617]],[[64756,64756],"mapped",[1600,1616,1617]],[[64757,64757],"mapped",[1591,1609]],[[64758,64758],"mapped",[1591,1610]],[[64759,64759],"mapped",[1593,1609]],[[64760,64760],"mapped",[1593,1610]],[[64761,64761],"mapped",[1594,1609]],[[64762,64762],"mapped",[1594,1610]],[[64763,64763],"mapped",[1587,1609]],[[64764,64764],"mapped",[1587,1610]],[[64765,64765],"mapped",[1588,1609]],[[64766,64766],"mapped",[1588,1610]],[[64767,64767],"mapped",[1581,1609]],[[64768,64768],"mapped",[1581,1610]],[[64769,64769],"mapped",[1580,1609]],[[64770,64770],"mapped",[1580,1610]],[[64771,64771],"mapped",[1582,1609]],[[64772,64772],"mapped",[1582,1610]],[[64773,64773],"mapped",[1589,1609]],[[64774,64774],"mapped",[1589,1610]],[[64775,64775],"mapped",[1590,1609]],[[64776,64776],"mapped",[1590,1610]],[[64777,64777],"mapped",[1588,1580]],[[64778,64778],"mapped",[1588,1581]],[[64779,64779],"mapped",[1588,1582]],[[64780,64780],"mapped",[1588,1605]],[[64781,64781],"mapped",[1588,1585]],[[64782,64782],"mapped",[1587,1585]],[[64783,64783],"mapped",[1589,1585]],[[64784,64784],"mapped",[1590,1585]],[[64785,64785],"mapped",[1591,1609]],[[64786,64786],"mapped",[1591,1610]],[[64787,64787],"mapped",[1593,1609]],[[64788,64788],"mapped",[1593,1610]],[[64789,64789],"mapped",[1594,1609]],[[64790,64790],"mapped",[1594,1610]],[[64791,64791],"mapped",[1587,1609]],[[64792,64792],"mapped",[1587,1610]],[[64793,64793],"mapped",[1588,1609]],[[64794,64794],"mapped",[1588,1610]],[[64795,64795],"mapped",[1581,1609]],[[64796,64796],"mapped",[1581,1610]],[[64797,64797],"mapped",[1580,1609]],[[64798,64798],"mapped",[1580,1610]],[[64799,64799],"mapped",[1582,1609]],[[64800,64800],"mapped",[1582,1610]],[[64801,64801],"mapped",[1589,1609]],[[64802,64802],"mapped",[1589,1610]],[[64803,64803],"mapped",[1590,1609]],[[64804,64804],"mapped",[1590,1610]],[[64805,64805],"mapped",[1588,1580]],[[64806,64806],"mapped",[1588,1581]],[[64807,64807],"mapped",[1588,1582]],[[64808,64808],"mapped",[1588,1605]],[[64809,64809],"mapped",[1588,1585]],[[64810,64810],"mapped",[1587,1585]],[[64811,64811],"mapped",[1589,1585]],[[64812,64812],"mapped",[1590,1585]],[[64813,64813],"mapped",[1588,1580]],[[64814,64814],"mapped",[1588,1581]],[[64815,64815],"mapped",[1588,1582]],[[64816,64816],"mapped",[1588,1605]],[[64817,64817],"mapped",[1587,1607]],[[64818,64818],"mapped",[1588,1607]],[[64819,64819],"mapped",[1591,1605]],[[64820,64820],"mapped",[1587,1580]],[[64821,64821],"mapped",[1587,1581]],[[64822,64822],"mapped",[1587,1582]],[[64823,64823],"mapped",[1588,1580]],[[64824,64824],"mapped",[1588,1581]],[[64825,64825],"mapped",[1588,1582]],[[64826,64826],"mapped",[1591,1605]],[[64827,64827],"mapped",[1592,1605]],[[64828,64829],"mapped",[1575,1611]],[[64830,64831],"valid",[],"NV8"],[[64832,64847],"disallowed"],[[64848,64848],"mapped",[1578,1580,1605]],[[64849,64850],"mapped",[1578,1581,1580]],[[64851,64851],"mapped",[1578,1581,1605]],[[64852,64852],"mapped",[1578,1582,1605]],[[64853,64853],"mapped",[1578,1605,1580]],[[64854,64854],"mapped",[1578,1605,1581]],[[64855,64855],"mapped",[1578,1605,1582]],[[64856,64857],"mapped",[1580,1605,1581]],[[64858,64858],"mapped",[1581,1605,1610]],[[64859,64859],"mapped",[1581,1605,1609]],[[64860,64860],"mapped",[1587,1581,1580]],[[64861,64861],"mapped",[1587,1580,1581]],[[64862,64862],"mapped",[1587,1580,1609]],[[64863,64864],"mapped",[1587,1605,1581]],[[64865,64865],"mapped",[1587,1605,1580]],[[64866,64867],"mapped",[1587,1605,1605]],[[64868,64869],"mapped",[1589,1581,1581]],[[64870,64870],"mapped",[1589,1605,1605]],[[64871,64872],"mapped",[1588,1581,1605]],[[64873,64873],"mapped",[1588,1580,1610]],[[64874,64875],"mapped",[1588,1605,1582]],[[64876,64877],"mapped",[1588,1605,1605]],[[64878,64878],"mapped",[1590,1581,1609]],[[64879,64880],"mapped",[1590,1582,1605]],[[64881,64882],"mapped",[1591,1605,1581]],[[64883,64883],"mapped",[1591,1605,1605]],[[64884,64884],"mapped",[1591,1605,1610]],[[64885,64885],"mapped",[1593,1580,1605]],[[64886,64887],"mapped",[1593,1605,1605]],[[64888,64888],"mapped",[1593,1605,1609]],[[64889,64889],"mapped",[1594,1605,1605]],[[64890,64890],"mapped",[1594,1605,1610]],[[64891,64891],"mapped",[1594,1605,1609]],[[64892,64893],"mapped",[1601,1582,1605]],[[64894,64894],"mapped",[1602,1605,1581]],[[64895,64895],"mapped",[1602,1605,1605]],[[64896,64896],"mapped",[1604,1581,1605]],[[64897,64897],"mapped",[1604,1581,1610]],[[64898,64898],"mapped",[1604,1581,1609]],[[64899,64900],"mapped",[1604,1580,1580]],[[64901,64902],"mapped",[1604,1582,1605]],[[64903,64904],"mapped",[1604,1605,1581]],[[64905,64905],"mapped",[1605,1581,1580]],[[64906,64906],"mapped",[1605,1581,1605]],[[64907,64907],"mapped",[1605,1581,1610]],[[64908,64908],"mapped",[1605,1580,1581]],[[64909,64909],"mapped",[1605,1580,1605]],[[64910,64910],"mapped",[1605,1582,1580]],[[64911,64911],"mapped",[1605,1582,1605]],[[64912,64913],"disallowed"],[[64914,64914],"mapped",[1605,1580,1582]],[[64915,64915],"mapped",[1607,1605,1580]],[[64916,64916],"mapped",[1607,1605,1605]],[[64917,64917],"mapped",[1606,1581,1605]],[[64918,64918],"mapped",[1606,1581,1609]],[[64919,64920],"mapped",[1606,1580,1605]],[[64921,64921],"mapped",[1606,1580,1609]],[[64922,64922],"mapped",[1606,1605,1610]],[[64923,64923],"mapped",[1606,1605,1609]],[[64924,64925],"mapped",[1610,1605,1605]],[[64926,64926],"mapped",[1576,1582,1610]],[[64927,64927],"mapped",[1578,1580,1610]],[[64928,64928],"mapped",[1578,1580,1609]],[[64929,64929],"mapped",[1578,1582,1610]],[[64930,64930],"mapped",[1578,1582,1609]],[[64931,64931],"mapped",[1578,1605,1610]],[[64932,64932],"mapped",[1578,1605,1609]],[[64933,64933],"mapped",[1580,1605,1610]],[[64934,64934],"mapped",[1580,1581,1609]],[[64935,64935],"mapped",[1580,1605,1609]],[[64936,64936],"mapped",[1587,1582,1609]],[[64937,64937],"mapped",[1589,1581,1610]],[[64938,64938],"mapped",[1588,1581,1610]],[[64939,64939],"mapped",[1590,1581,1610]],[[64940,64940],"mapped",[1604,1580,1610]],[[64941,64941],"mapped",[1604,1605,1610]],[[64942,64942],"mapped",[1610,1581,1610]],[[64943,64943],"mapped",[1610,1580,1610]],[[64944,64944],"mapped",[1610,1605,1610]],[[64945,64945],"mapped",[1605,1605,1610]],[[64946,64946],"mapped",[1602,1605,1610]],[[64947,64947],"mapped",[1606,1581,1610]],[[64948,64948],"mapped",[1602,1605,1581]],[[64949,64949],"mapped",[1604,1581,1605]],[[64950,64950],"mapped",[1593,1605,1610]],[[64951,64951],"mapped",[1603,1605,1610]],[[64952,64952],"mapped",[1606,1580,1581]],[[64953,64953],"mapped",[1605,1582,1610]],[[64954,64954],"mapped",[1604,1580,1605]],[[64955,64955],"mapped",[1603,1605,1605]],[[64956,64956],"mapped",[1604,1580,1605]],[[64957,64957],"mapped",[1606,1580,1581]],[[64958,64958],"mapped",[1580,1581,1610]],[[64959,64959],"mapped",[1581,1580,1610]],[[64960,64960],"mapped",[1605,1580,1610]],[[64961,64961],"mapped",[1601,1605,1610]],[[64962,64962],"mapped",[1576,1581,1610]],[[64963,64963],"mapped",[1603,1605,1605]],[[64964,64964],"mapped",[1593,1580,1605]],[[64965,64965],"mapped",[1589,1605,1605]],[[64966,64966],"mapped",[1587,1582,1610]],[[64967,64967],"mapped",[1606,1580,1610]],[[64968,64975],"disallowed"],[[64976,65007],"disallowed"],[[65008,65008],"mapped",[1589,1604,1746]],[[65009,65009],"mapped",[1602,1604,1746]],[[65010,65010],"mapped",[1575,1604,1604,1607]],[[65011,65011],"mapped",[1575,1603,1576,1585]],[[65012,65012],"mapped",[1605,1581,1605,1583]],[[65013,65013],"mapped",[1589,1604,1593,1605]],[[65014,65014],"mapped",[1585,1587,1608,1604]],[[65015,65015],"mapped",[1593,1604,1610,1607]],[[65016,65016],"mapped",[1608,1587,1604,1605]],[[65017,65017],"mapped",[1589,1604,1609]],[[65018,65018],"disallowed_STD3_mapped",[1589,1604,1609,32,1575,1604,1604,1607,32,1593,1604,1610,1607,32,1608,1587,1604,1605]],[[65019,65019],"disallowed_STD3_mapped",[1580,1604,32,1580,1604,1575,1604,1607]],[[65020,65020],"mapped",[1585,1740,1575,1604]],[[65021,65021],"valid",[],"NV8"],[[65022,65023],"disallowed"],[[65024,65039],"ignored"],[[65040,65040],"disallowed_STD3_mapped",[44]],[[65041,65041],"mapped",[12289]],[[65042,65042],"disallowed"],[[65043,65043],"disallowed_STD3_mapped",[58]],[[65044,65044],"disallowed_STD3_mapped",[59]],[[65045,65045],"disallowed_STD3_mapped",[33]],[[65046,65046],"disallowed_STD3_mapped",[63]],[[65047,65047],"mapped",[12310]],[[65048,65048],"mapped",[12311]],[[65049,65049],"disallowed"],[[65050,65055],"disallowed"],[[65056,65059],"valid"],[[65060,65062],"valid"],[[65063,65069],"valid"],[[65070,65071],"valid"],[[65072,65072],"disallowed"],[[65073,65073],"mapped",[8212]],[[65074,65074],"mapped",[8211]],[[65075,65076],"disallowed_STD3_mapped",[95]],[[65077,65077],"disallowed_STD3_mapped",[40]],[[65078,65078],"disallowed_STD3_mapped",[41]],[[65079,65079],"disallowed_STD3_mapped",[123]],[[65080,65080],"disallowed_STD3_mapped",[125]],[[65081,65081],"mapped",[12308]],[[65082,65082],"mapped",[12309]],[[65083,65083],"mapped",[12304]],[[65084,65084],"mapped",[12305]],[[65085,65085],"mapped",[12298]],[[65086,65086],"mapped",[12299]],[[65087,65087],"mapped",[12296]],[[65088,65088],"mapped",[12297]],[[65089,65089],"mapped",[12300]],[[65090,65090],"mapped",[12301]],[[65091,65091],"mapped",[12302]],[[65092,65092],"mapped",[12303]],[[65093,65094],"valid",[],"NV8"],[[65095,65095],"disallowed_STD3_mapped",[91]],[[65096,65096],"disallowed_STD3_mapped",[93]],[[65097,65100],"disallowed_STD3_mapped",[32,773]],[[65101,65103],"disallowed_STD3_mapped",[95]],[[65104,65104],"disallowed_STD3_mapped",[44]],[[65105,65105],"mapped",[12289]],[[65106,65106],"disallowed"],[[65107,65107],"disallowed"],[[65108,65108],"disallowed_STD3_mapped",[59]],[[65109,65109],"disallowed_STD3_mapped",[58]],[[65110,65110],"disallowed_STD3_mapped",[63]],[[65111,65111],"disallowed_STD3_mapped",[33]],[[65112,65112],"mapped",[8212]],[[65113,65113],"disallowed_STD3_mapped",[40]],[[65114,65114],"disallowed_STD3_mapped",[41]],[[65115,65115],"disallowed_STD3_mapped",[123]],[[65116,65116],"disallowed_STD3_mapped",[125]],[[65117,65117],"mapped",[12308]],[[65118,65118],"mapped",[12309]],[[65119,65119],"disallowed_STD3_mapped",[35]],[[65120,65120],"disallowed_STD3_mapped",[38]],[[65121,65121],"disallowed_STD3_mapped",[42]],[[65122,65122],"disallowed_STD3_mapped",[43]],[[65123,65123],"mapped",[45]],[[65124,65124],"disallowed_STD3_mapped",[60]],[[65125,65125],"disallowed_STD3_mapped",[62]],[[65126,65126],"disallowed_STD3_mapped",[61]],[[65127,65127],"disallowed"],[[65128,65128],"disallowed_STD3_mapped",[92]],[[65129,65129],"disallowed_STD3_mapped",[36]],[[65130,65130],"disallowed_STD3_mapped",[37]],[[65131,65131],"disallowed_STD3_mapped",[64]],[[65132,65135],"disallowed"],[[65136,65136],"disallowed_STD3_mapped",[32,1611]],[[65137,65137],"mapped",[1600,1611]],[[65138,65138],"disallowed_STD3_mapped",[32,1612]],[[65139,65139],"valid"],[[65140,65140],"disallowed_STD3_mapped",[32,1613]],[[65141,65141],"disallowed"],[[65142,65142],"disallowed_STD3_mapped",[32,1614]],[[65143,65143],"mapped",[1600,1614]],[[65144,65144],"disallowed_STD3_mapped",[32,1615]],[[65145,65145],"mapped",[1600,1615]],[[65146,65146],"disallowed_STD3_mapped",[32,1616]],[[65147,65147],"mapped",[1600,1616]],[[65148,65148],"disallowed_STD3_mapped",[32,1617]],[[65149,65149],"mapped",[1600,1617]],[[65150,65150],"disallowed_STD3_mapped",[32,1618]],[[65151,65151],"mapped",[1600,1618]],[[65152,65152],"mapped",[1569]],[[65153,65154],"mapped",[1570]],[[65155,65156],"mapped",[1571]],[[65157,65158],"mapped",[1572]],[[65159,65160],"mapped",[1573]],[[65161,65164],"mapped",[1574]],[[65165,65166],"mapped",[1575]],[[65167,65170],"mapped",[1576]],[[65171,65172],"mapped",[1577]],[[65173,65176],"mapped",[1578]],[[65177,65180],"mapped",[1579]],[[65181,65184],"mapped",[1580]],[[65185,65188],"mapped",[1581]],[[65189,65192],"mapped",[1582]],[[65193,65194],"mapped",[1583]],[[65195,65196],"mapped",[1584]],[[65197,65198],"mapped",[1585]],[[65199,65200],"mapped",[1586]],[[65201,65204],"mapped",[1587]],[[65205,65208],"mapped",[1588]],[[65209,65212],"mapped",[1589]],[[65213,65216],"mapped",[1590]],[[65217,65220],"mapped",[1591]],[[65221,65224],"mapped",[1592]],[[65225,65228],"mapped",[1593]],[[65229,65232],"mapped",[1594]],[[65233,65236],"mapped",[1601]],[[65237,65240],"mapped",[1602]],[[65241,65244],"mapped",[1603]],[[65245,65248],"mapped",[1604]],[[65249,65252],"mapped",[1605]],[[65253,65256],"mapped",[1606]],[[65257,65260],"mapped",[1607]],[[65261,65262],"mapped",[1608]],[[65263,65264],"mapped",[1609]],[[65265,65268],"mapped",[1610]],[[65269,65270],"mapped",[1604,1570]],[[65271,65272],"mapped",[1604,1571]],[[65273,65274],"mapped",[1604,1573]],[[65275,65276],"mapped",[1604,1575]],[[65277,65278],"disallowed"],[[65279,65279],"ignored"],[[65280,65280],"disallowed"],[[65281,65281],"disallowed_STD3_mapped",[33]],[[65282,65282],"disallowed_STD3_mapped",[34]],[[65283,65283],"disallowed_STD3_mapped",[35]],[[65284,65284],"disallowed_STD3_mapped",[36]],[[65285,65285],"disallowed_STD3_mapped",[37]],[[65286,65286],"disallowed_STD3_mapped",[38]],[[65287,65287],"disallowed_STD3_mapped",[39]],[[65288,65288],"disallowed_STD3_mapped",[40]],[[65289,65289],"disallowed_STD3_mapped",[41]],[[65290,65290],"disallowed_STD3_mapped",[42]],[[65291,65291],"disallowed_STD3_mapped",[43]],[[65292,65292],"disallowed_STD3_mapped",[44]],[[65293,65293],"mapped",[45]],[[65294,65294],"mapped",[46]],[[65295,65295],"disallowed_STD3_mapped",[47]],[[65296,65296],"mapped",[48]],[[65297,65297],"mapped",[49]],[[65298,65298],"mapped",[50]],[[65299,65299],"mapped",[51]],[[65300,65300],"mapped",[52]],[[65301,65301],"mapped",[53]],[[65302,65302],"mapped",[54]],[[65303,65303],"mapped",[55]],[[65304,65304],"mapped",[56]],[[65305,65305],"mapped",[57]],[[65306,65306],"disallowed_STD3_mapped",[58]],[[65307,65307],"disallowed_STD3_mapped",[59]],[[65308,65308],"disallowed_STD3_mapped",[60]],[[65309,65309],"disallowed_STD3_mapped",[61]],[[65310,65310],"disallowed_STD3_mapped",[62]],[[65311,65311],"disallowed_STD3_mapped",[63]],[[65312,65312],"disallowed_STD3_mapped",[64]],[[65313,65313],"mapped",[97]],[[65314,65314],"mapped",[98]],[[65315,65315],"mapped",[99]],[[65316,65316],"mapped",[100]],[[65317,65317],"mapped",[101]],[[65318,65318],"mapped",[102]],[[65319,65319],"mapped",[103]],[[65320,65320],"mapped",[104]],[[65321,65321],"mapped",[105]],[[65322,65322],"mapped",[106]],[[65323,65323],"mapped",[107]],[[65324,65324],"mapped",[108]],[[65325,65325],"mapped",[109]],[[65326,65326],"mapped",[110]],[[65327,65327],"mapped",[111]],[[65328,65328],"mapped",[112]],[[65329,65329],"mapped",[113]],[[65330,65330],"mapped",[114]],[[65331,65331],"mapped",[115]],[[65332,65332],"mapped",[116]],[[65333,65333],"mapped",[117]],[[65334,65334],"mapped",[118]],[[65335,65335],"mapped",[119]],[[65336,65336],"mapped",[120]],[[65337,65337],"mapped",[121]],[[65338,65338],"mapped",[122]],[[65339,65339],"disallowed_STD3_mapped",[91]],[[65340,65340],"disallowed_STD3_mapped",[92]],[[65341,65341],"disallowed_STD3_mapped",[93]],[[65342,65342],"disallowed_STD3_mapped",[94]],[[65343,65343],"disallowed_STD3_mapped",[95]],[[65344,65344],"disallowed_STD3_mapped",[96]],[[65345,65345],"mapped",[97]],[[65346,65346],"mapped",[98]],[[65347,65347],"mapped",[99]],[[65348,65348],"mapped",[100]],[[65349,65349],"mapped",[101]],[[65350,65350],"mapped",[102]],[[65351,65351],"mapped",[103]],[[65352,65352],"mapped",[104]],[[65353,65353],"mapped",[105]],[[65354,65354],"mapped",[106]],[[65355,65355],"mapped",[107]],[[65356,65356],"mapped",[108]],[[65357,65357],"mapped",[109]],[[65358,65358],"mapped",[110]],[[65359,65359],"mapped",[111]],[[65360,65360],"mapped",[112]],[[65361,65361],"mapped",[113]],[[65362,65362],"mapped",[114]],[[65363,65363],"mapped",[115]],[[65364,65364],"mapped",[116]],[[65365,65365],"mapped",[117]],[[65366,65366],"mapped",[118]],[[65367,65367],"mapped",[119]],[[65368,65368],"mapped",[120]],[[65369,65369],"mapped",[121]],[[65370,65370],"mapped",[122]],[[65371,65371],"disallowed_STD3_mapped",[123]],[[65372,65372],"disallowed_STD3_mapped",[124]],[[65373,65373],"disallowed_STD3_mapped",[125]],[[65374,65374],"disallowed_STD3_mapped",[126]],[[65375,65375],"mapped",[10629]],[[65376,65376],"mapped",[10630]],[[65377,65377],"mapped",[46]],[[65378,65378],"mapped",[12300]],[[65379,65379],"mapped",[12301]],[[65380,65380],"mapped",[12289]],[[65381,65381],"mapped",[12539]],[[65382,65382],"mapped",[12530]],[[65383,65383],"mapped",[12449]],[[65384,65384],"mapped",[12451]],[[65385,65385],"mapped",[12453]],[[65386,65386],"mapped",[12455]],[[65387,65387],"mapped",[12457]],[[65388,65388],"mapped",[12515]],[[65389,65389],"mapped",[12517]],[[65390,65390],"mapped",[12519]],[[65391,65391],"mapped",[12483]],[[65392,65392],"mapped",[12540]],[[65393,65393],"mapped",[12450]],[[65394,65394],"mapped",[12452]],[[65395,65395],"mapped",[12454]],[[65396,65396],"mapped",[12456]],[[65397,65397],"mapped",[12458]],[[65398,65398],"mapped",[12459]],[[65399,65399],"mapped",[12461]],[[65400,65400],"mapped",[12463]],[[65401,65401],"mapped",[12465]],[[65402,65402],"mapped",[12467]],[[65403,65403],"mapped",[12469]],[[65404,65404],"mapped",[12471]],[[65405,65405],"mapped",[12473]],[[65406,65406],"mapped",[12475]],[[65407,65407],"mapped",[12477]],[[65408,65408],"mapped",[12479]],[[65409,65409],"mapped",[12481]],[[65410,65410],"mapped",[12484]],[[65411,65411],"mapped",[12486]],[[65412,65412],"mapped",[12488]],[[65413,65413],"mapped",[12490]],[[65414,65414],"mapped",[12491]],[[65415,65415],"mapped",[12492]],[[65416,65416],"mapped",[12493]],[[65417,65417],"mapped",[12494]],[[65418,65418],"mapped",[12495]],[[65419,65419],"mapped",[12498]],[[65420,65420],"mapped",[12501]],[[65421,65421],"mapped",[12504]],[[65422,65422],"mapped",[12507]],[[65423,65423],"mapped",[12510]],[[65424,65424],"mapped",[12511]],[[65425,65425],"mapped",[12512]],[[65426,65426],"mapped",[12513]],[[65427,65427],"mapped",[12514]],[[65428,65428],"mapped",[12516]],[[65429,65429],"mapped",[12518]],[[65430,65430],"mapped",[12520]],[[65431,65431],"mapped",[12521]],[[65432,65432],"mapped",[12522]],[[65433,65433],"mapped",[12523]],[[65434,65434],"mapped",[12524]],[[65435,65435],"mapped",[12525]],[[65436,65436],"mapped",[12527]],[[65437,65437],"mapped",[12531]],[[65438,65438],"mapped",[12441]],[[65439,65439],"mapped",[12442]],[[65440,65440],"disallowed"],[[65441,65441],"mapped",[4352]],[[65442,65442],"mapped",[4353]],[[65443,65443],"mapped",[4522]],[[65444,65444],"mapped",[4354]],[[65445,65445],"mapped",[4524]],[[65446,65446],"mapped",[4525]],[[65447,65447],"mapped",[4355]],[[65448,65448],"mapped",[4356]],[[65449,65449],"mapped",[4357]],[[65450,65450],"mapped",[4528]],[[65451,65451],"mapped",[4529]],[[65452,65452],"mapped",[4530]],[[65453,65453],"mapped",[4531]],[[65454,65454],"mapped",[4532]],[[65455,65455],"mapped",[4533]],[[65456,65456],"mapped",[4378]],[[65457,65457],"mapped",[4358]],[[65458,65458],"mapped",[4359]],[[65459,65459],"mapped",[4360]],[[65460,65460],"mapped",[4385]],[[65461,65461],"mapped",[4361]],[[65462,65462],"mapped",[4362]],[[65463,65463],"mapped",[4363]],[[65464,65464],"mapped",[4364]],[[65465,65465],"mapped",[4365]],[[65466,65466],"mapped",[4366]],[[65467,65467],"mapped",[4367]],[[65468,65468],"mapped",[4368]],[[65469,65469],"mapped",[4369]],[[65470,65470],"mapped",[4370]],[[65471,65473],"disallowed"],[[65474,65474],"mapped",[4449]],[[65475,65475],"mapped",[4450]],[[65476,65476],"mapped",[4451]],[[65477,65477],"mapped",[4452]],[[65478,65478],"mapped",[4453]],[[65479,65479],"mapped",[4454]],[[65480,65481],"disallowed"],[[65482,65482],"mapped",[4455]],[[65483,65483],"mapped",[4456]],[[65484,65484],"mapped",[4457]],[[65485,65485],"mapped",[4458]],[[65486,65486],"mapped",[4459]],[[65487,65487],"mapped",[4460]],[[65488,65489],"disallowed"],[[65490,65490],"mapped",[4461]],[[65491,65491],"mapped",[4462]],[[65492,65492],"mapped",[4463]],[[65493,65493],"mapped",[4464]],[[65494,65494],"mapped",[4465]],[[65495,65495],"mapped",[4466]],[[65496,65497],"disallowed"],[[65498,65498],"mapped",[4467]],[[65499,65499],"mapped",[4468]],[[65500,65500],"mapped",[4469]],[[65501,65503],"disallowed"],[[65504,65504],"mapped",[162]],[[65505,65505],"mapped",[163]],[[65506,65506],"mapped",[172]],[[65507,65507],"disallowed_STD3_mapped",[32,772]],[[65508,65508],"mapped",[166]],[[65509,65509],"mapped",[165]],[[65510,65510],"mapped",[8361]],[[65511,65511],"disallowed"],[[65512,65512],"mapped",[9474]],[[65513,65513],"mapped",[8592]],[[65514,65514],"mapped",[8593]],[[65515,65515],"mapped",[8594]],[[65516,65516],"mapped",[8595]],[[65517,65517],"mapped",[9632]],[[65518,65518],"mapped",[9675]],[[65519,65528],"disallowed"],[[65529,65531],"disallowed"],[[65532,65532],"disallowed"],[[65533,65533],"disallowed"],[[65534,65535],"disallowed"],[[65536,65547],"valid"],[[65548,65548],"disallowed"],[[65549,65574],"valid"],[[65575,65575],"disallowed"],[[65576,65594],"valid"],[[65595,65595],"disallowed"],[[65596,65597],"valid"],[[65598,65598],"disallowed"],[[65599,65613],"valid"],[[65614,65615],"disallowed"],[[65616,65629],"valid"],[[65630,65663],"disallowed"],[[65664,65786],"valid"],[[65787,65791],"disallowed"],[[65792,65794],"valid",[],"NV8"],[[65795,65798],"disallowed"],[[65799,65843],"valid",[],"NV8"],[[65844,65846],"disallowed"],[[65847,65855],"valid",[],"NV8"],[[65856,65930],"valid",[],"NV8"],[[65931,65932],"valid",[],"NV8"],[[65933,65935],"disallowed"],[[65936,65947],"valid",[],"NV8"],[[65948,65951],"disallowed"],[[65952,65952],"valid",[],"NV8"],[[65953,65999],"disallowed"],[[66000,66044],"valid",[],"NV8"],[[66045,66045],"valid"],[[66046,66175],"disallowed"],[[66176,66204],"valid"],[[66205,66207],"disallowed"],[[66208,66256],"valid"],[[66257,66271],"disallowed"],[[66272,66272],"valid"],[[66273,66299],"valid",[],"NV8"],[[66300,66303],"disallowed"],[[66304,66334],"valid"],[[66335,66335],"valid"],[[66336,66339],"valid",[],"NV8"],[[66340,66351],"disallowed"],[[66352,66368],"valid"],[[66369,66369],"valid",[],"NV8"],[[66370,66377],"valid"],[[66378,66378],"valid",[],"NV8"],[[66379,66383],"disallowed"],[[66384,66426],"valid"],[[66427,66431],"disallowed"],[[66432,66461],"valid"],[[66462,66462],"disallowed"],[[66463,66463],"valid",[],"NV8"],[[66464,66499],"valid"],[[66500,66503],"disallowed"],[[66504,66511],"valid"],[[66512,66517],"valid",[],"NV8"],[[66518,66559],"disallowed"],[[66560,66560],"mapped",[66600]],[[66561,66561],"mapped",[66601]],[[66562,66562],"mapped",[66602]],[[66563,66563],"mapped",[66603]],[[66564,66564],"mapped",[66604]],[[66565,66565],"mapped",[66605]],[[66566,66566],"mapped",[66606]],[[66567,66567],"mapped",[66607]],[[66568,66568],"mapped",[66608]],[[66569,66569],"mapped",[66609]],[[66570,66570],"mapped",[66610]],[[66571,66571],"mapped",[66611]],[[66572,66572],"mapped",[66612]],[[66573,66573],"mapped",[66613]],[[66574,66574],"mapped",[66614]],[[66575,66575],"mapped",[66615]],[[66576,66576],"mapped",[66616]],[[66577,66577],"mapped",[66617]],[[66578,66578],"mapped",[66618]],[[66579,66579],"mapped",[66619]],[[66580,66580],"mapped",[66620]],[[66581,66581],"mapped",[66621]],[[66582,66582],"mapped",[66622]],[[66583,66583],"mapped",[66623]],[[66584,66584],"mapped",[66624]],[[66585,66585],"mapped",[66625]],[[66586,66586],"mapped",[66626]],[[66587,66587],"mapped",[66627]],[[66588,66588],"mapped",[66628]],[[66589,66589],"mapped",[66629]],[[66590,66590],"mapped",[66630]],[[66591,66591],"mapped",[66631]],[[66592,66592],"mapped",[66632]],[[66593,66593],"mapped",[66633]],[[66594,66594],"mapped",[66634]],[[66595,66595],"mapped",[66635]],[[66596,66596],"mapped",[66636]],[[66597,66597],"mapped",[66637]],[[66598,66598],"mapped",[66638]],[[66599,66599],"mapped",[66639]],[[66600,66637],"valid"],[[66638,66717],"valid"],[[66718,66719],"disallowed"],[[66720,66729],"valid"],[[66730,66815],"disallowed"],[[66816,66855],"valid"],[[66856,66863],"disallowed"],[[66864,66915],"valid"],[[66916,66926],"disallowed"],[[66927,66927],"valid",[],"NV8"],[[66928,67071],"disallowed"],[[67072,67382],"valid"],[[67383,67391],"disallowed"],[[67392,67413],"valid"],[[67414,67423],"disallowed"],[[67424,67431],"valid"],[[67432,67583],"disallowed"],[[67584,67589],"valid"],[[67590,67591],"disallowed"],[[67592,67592],"valid"],[[67593,67593],"disallowed"],[[67594,67637],"valid"],[[67638,67638],"disallowed"],[[67639,67640],"valid"],[[67641,67643],"disallowed"],[[67644,67644],"valid"],[[67645,67646],"disallowed"],[[67647,67647],"valid"],[[67648,67669],"valid"],[[67670,67670],"disallowed"],[[67671,67679],"valid",[],"NV8"],[[67680,67702],"valid"],[[67703,67711],"valid",[],"NV8"],[[67712,67742],"valid"],[[67743,67750],"disallowed"],[[67751,67759],"valid",[],"NV8"],[[67760,67807],"disallowed"],[[67808,67826],"valid"],[[67827,67827],"disallowed"],[[67828,67829],"valid"],[[67830,67834],"disallowed"],[[67835,67839],"valid",[],"NV8"],[[67840,67861],"valid"],[[67862,67865],"valid",[],"NV8"],[[67866,67867],"valid",[],"NV8"],[[67868,67870],"disallowed"],[[67871,67871],"valid",[],"NV8"],[[67872,67897],"valid"],[[67898,67902],"disallowed"],[[67903,67903],"valid",[],"NV8"],[[67904,67967],"disallowed"],[[67968,68023],"valid"],[[68024,68027],"disallowed"],[[68028,68029],"valid",[],"NV8"],[[68030,68031],"valid"],[[68032,68047],"valid",[],"NV8"],[[68048,68049],"disallowed"],[[68050,68095],"valid",[],"NV8"],[[68096,68099],"valid"],[[68100,68100],"disallowed"],[[68101,68102],"valid"],[[68103,68107],"disallowed"],[[68108,68115],"valid"],[[68116,68116],"disallowed"],[[68117,68119],"valid"],[[68120,68120],"disallowed"],[[68121,68147],"valid"],[[68148,68151],"disallowed"],[[68152,68154],"valid"],[[68155,68158],"disallowed"],[[68159,68159],"valid"],[[68160,68167],"valid",[],"NV8"],[[68168,68175],"disallowed"],[[68176,68184],"valid",[],"NV8"],[[68185,68191],"disallowed"],[[68192,68220],"valid"],[[68221,68223],"valid",[],"NV8"],[[68224,68252],"valid"],[[68253,68255],"valid",[],"NV8"],[[68256,68287],"disallowed"],[[68288,68295],"valid"],[[68296,68296],"valid",[],"NV8"],[[68297,68326],"valid"],[[68327,68330],"disallowed"],[[68331,68342],"valid",[],"NV8"],[[68343,68351],"disallowed"],[[68352,68405],"valid"],[[68406,68408],"disallowed"],[[68409,68415],"valid",[],"NV8"],[[68416,68437],"valid"],[[68438,68439],"disallowed"],[[68440,68447],"valid",[],"NV8"],[[68448,68466],"valid"],[[68467,68471],"disallowed"],[[68472,68479],"valid",[],"NV8"],[[68480,68497],"valid"],[[68498,68504],"disallowed"],[[68505,68508],"valid",[],"NV8"],[[68509,68520],"disallowed"],[[68521,68527],"valid",[],"NV8"],[[68528,68607],"disallowed"],[[68608,68680],"valid"],[[68681,68735],"disallowed"],[[68736,68736],"mapped",[68800]],[[68737,68737],"mapped",[68801]],[[68738,68738],"mapped",[68802]],[[68739,68739],"mapped",[68803]],[[68740,68740],"mapped",[68804]],[[68741,68741],"mapped",[68805]],[[68742,68742],"mapped",[68806]],[[68743,68743],"mapped",[68807]],[[68744,68744],"mapped",[68808]],[[68745,68745],"mapped",[68809]],[[68746,68746],"mapped",[68810]],[[68747,68747],"mapped",[68811]],[[68748,68748],"mapped",[68812]],[[68749,68749],"mapped",[68813]],[[68750,68750],"mapped",[68814]],[[68751,68751],"mapped",[68815]],[[68752,68752],"mapped",[68816]],[[68753,68753],"mapped",[68817]],[[68754,68754],"mapped",[68818]],[[68755,68755],"mapped",[68819]],[[68756,68756],"mapped",[68820]],[[68757,68757],"mapped",[68821]],[[68758,68758],"mapped",[68822]],[[68759,68759],"mapped",[68823]],[[68760,68760],"mapped",[68824]],[[68761,68761],"mapped",[68825]],[[68762,68762],"mapped",[68826]],[[68763,68763],"mapped",[68827]],[[68764,68764],"mapped",[68828]],[[68765,68765],"mapped",[68829]],[[68766,68766],"mapped",[68830]],[[68767,68767],"mapped",[68831]],[[68768,68768],"mapped",[68832]],[[68769,68769],"mapped",[68833]],[[68770,68770],"mapped",[68834]],[[68771,68771],"mapped",[68835]],[[68772,68772],"mapped",[68836]],[[68773,68773],"mapped",[68837]],[[68774,68774],"mapped",[68838]],[[68775,68775],"mapped",[68839]],[[68776,68776],"mapped",[68840]],[[68777,68777],"mapped",[68841]],[[68778,68778],"mapped",[68842]],[[68779,68779],"mapped",[68843]],[[68780,68780],"mapped",[68844]],[[68781,68781],"mapped",[68845]],[[68782,68782],"mapped",[68846]],[[68783,68783],"mapped",[68847]],[[68784,68784],"mapped",[68848]],[[68785,68785],"mapped",[68849]],[[68786,68786],"mapped",[68850]],[[68787,68799],"disallowed"],[[68800,68850],"valid"],[[68851,68857],"disallowed"],[[68858,68863],"valid",[],"NV8"],[[68864,69215],"disallowed"],[[69216,69246],"valid",[],"NV8"],[[69247,69631],"disallowed"],[[69632,69702],"valid"],[[69703,69709],"valid",[],"NV8"],[[69710,69713],"disallowed"],[[69714,69733],"valid",[],"NV8"],[[69734,69743],"valid"],[[69744,69758],"disallowed"],[[69759,69759],"valid"],[[69760,69818],"valid"],[[69819,69820],"valid",[],"NV8"],[[69821,69821],"disallowed"],[[69822,69825],"valid",[],"NV8"],[[69826,69839],"disallowed"],[[69840,69864],"valid"],[[69865,69871],"disallowed"],[[69872,69881],"valid"],[[69882,69887],"disallowed"],[[69888,69940],"valid"],[[69941,69941],"disallowed"],[[69942,69951],"valid"],[[69952,69955],"valid",[],"NV8"],[[69956,69967],"disallowed"],[[69968,70003],"valid"],[[70004,70005],"valid",[],"NV8"],[[70006,70006],"valid"],[[70007,70015],"disallowed"],[[70016,70084],"valid"],[[70085,70088],"valid",[],"NV8"],[[70089,70089],"valid",[],"NV8"],[[70090,70092],"valid"],[[70093,70093],"valid",[],"NV8"],[[70094,70095],"disallowed"],[[70096,70105],"valid"],[[70106,70106],"valid"],[[70107,70107],"valid",[],"NV8"],[[70108,70108],"valid"],[[70109,70111],"valid",[],"NV8"],[[70112,70112],"disallowed"],[[70113,70132],"valid",[],"NV8"],[[70133,70143],"disallowed"],[[70144,70161],"valid"],[[70162,70162],"disallowed"],[[70163,70199],"valid"],[[70200,70205],"valid",[],"NV8"],[[70206,70271],"disallowed"],[[70272,70278],"valid"],[[70279,70279],"disallowed"],[[70280,70280],"valid"],[[70281,70281],"disallowed"],[[70282,70285],"valid"],[[70286,70286],"disallowed"],[[70287,70301],"valid"],[[70302,70302],"disallowed"],[[70303,70312],"valid"],[[70313,70313],"valid",[],"NV8"],[[70314,70319],"disallowed"],[[70320,70378],"valid"],[[70379,70383],"disallowed"],[[70384,70393],"valid"],[[70394,70399],"disallowed"],[[70400,70400],"valid"],[[70401,70403],"valid"],[[70404,70404],"disallowed"],[[70405,70412],"valid"],[[70413,70414],"disallowed"],[[70415,70416],"valid"],[[70417,70418],"disallowed"],[[70419,70440],"valid"],[[70441,70441],"disallowed"],[[70442,70448],"valid"],[[70449,70449],"disallowed"],[[70450,70451],"valid"],[[70452,70452],"disallowed"],[[70453,70457],"valid"],[[70458,70459],"disallowed"],[[70460,70468],"valid"],[[70469,70470],"disallowed"],[[70471,70472],"valid"],[[70473,70474],"disallowed"],[[70475,70477],"valid"],[[70478,70479],"disallowed"],[[70480,70480],"valid"],[[70481,70486],"disallowed"],[[70487,70487],"valid"],[[70488,70492],"disallowed"],[[70493,70499],"valid"],[[70500,70501],"disallowed"],[[70502,70508],"valid"],[[70509,70511],"disallowed"],[[70512,70516],"valid"],[[70517,70783],"disallowed"],[[70784,70853],"valid"],[[70854,70854],"valid",[],"NV8"],[[70855,70855],"valid"],[[70856,70863],"disallowed"],[[70864,70873],"valid"],[[70874,71039],"disallowed"],[[71040,71093],"valid"],[[71094,71095],"disallowed"],[[71096,71104],"valid"],[[71105,71113],"valid",[],"NV8"],[[71114,71127],"valid",[],"NV8"],[[71128,71133],"valid"],[[71134,71167],"disallowed"],[[71168,71232],"valid"],[[71233,71235],"valid",[],"NV8"],[[71236,71236],"valid"],[[71237,71247],"disallowed"],[[71248,71257],"valid"],[[71258,71295],"disallowed"],[[71296,71351],"valid"],[[71352,71359],"disallowed"],[[71360,71369],"valid"],[[71370,71423],"disallowed"],[[71424,71449],"valid"],[[71450,71452],"disallowed"],[[71453,71467],"valid"],[[71468,71471],"disallowed"],[[71472,71481],"valid"],[[71482,71487],"valid",[],"NV8"],[[71488,71839],"disallowed"],[[71840,71840],"mapped",[71872]],[[71841,71841],"mapped",[71873]],[[71842,71842],"mapped",[71874]],[[71843,71843],"mapped",[71875]],[[71844,71844],"mapped",[71876]],[[71845,71845],"mapped",[71877]],[[71846,71846],"mapped",[71878]],[[71847,71847],"mapped",[71879]],[[71848,71848],"mapped",[71880]],[[71849,71849],"mapped",[71881]],[[71850,71850],"mapped",[71882]],[[71851,71851],"mapped",[71883]],[[71852,71852],"mapped",[71884]],[[71853,71853],"mapped",[71885]],[[71854,71854],"mapped",[71886]],[[71855,71855],"mapped",[71887]],[[71856,71856],"mapped",[71888]],[[71857,71857],"mapped",[71889]],[[71858,71858],"mapped",[71890]],[[71859,71859],"mapped",[71891]],[[71860,71860],"mapped",[71892]],[[71861,71861],"mapped",[71893]],[[71862,71862],"mapped",[71894]],[[71863,71863],"mapped",[71895]],[[71864,71864],"mapped",[71896]],[[71865,71865],"mapped",[71897]],[[71866,71866],"mapped",[71898]],[[71867,71867],"mapped",[71899]],[[71868,71868],"mapped",[71900]],[[71869,71869],"mapped",[71901]],[[71870,71870],"mapped",[71902]],[[71871,71871],"mapped",[71903]],[[71872,71913],"valid"],[[71914,71922],"valid",[],"NV8"],[[71923,71934],"disallowed"],[[71935,71935],"valid"],[[71936,72383],"disallowed"],[[72384,72440],"valid"],[[72441,73727],"disallowed"],[[73728,74606],"valid"],[[74607,74648],"valid"],[[74649,74649],"valid"],[[74650,74751],"disallowed"],[[74752,74850],"valid",[],"NV8"],[[74851,74862],"valid",[],"NV8"],[[74863,74863],"disallowed"],[[74864,74867],"valid",[],"NV8"],[[74868,74868],"valid",[],"NV8"],[[74869,74879],"disallowed"],[[74880,75075],"valid"],[[75076,77823],"disallowed"],[[77824,78894],"valid"],[[78895,82943],"disallowed"],[[82944,83526],"valid"],[[83527,92159],"disallowed"],[[92160,92728],"valid"],[[92729,92735],"disallowed"],[[92736,92766],"valid"],[[92767,92767],"disallowed"],[[92768,92777],"valid"],[[92778,92781],"disallowed"],[[92782,92783],"valid",[],"NV8"],[[92784,92879],"disallowed"],[[92880,92909],"valid"],[[92910,92911],"disallowed"],[[92912,92916],"valid"],[[92917,92917],"valid",[],"NV8"],[[92918,92927],"disallowed"],[[92928,92982],"valid"],[[92983,92991],"valid",[],"NV8"],[[92992,92995],"valid"],[[92996,92997],"valid",[],"NV8"],[[92998,93007],"disallowed"],[[93008,93017],"valid"],[[93018,93018],"disallowed"],[[93019,93025],"valid",[],"NV8"],[[93026,93026],"disallowed"],[[93027,93047],"valid"],[[93048,93052],"disallowed"],[[93053,93071],"valid"],[[93072,93951],"disallowed"],[[93952,94020],"valid"],[[94021,94031],"disallowed"],[[94032,94078],"valid"],[[94079,94094],"disallowed"],[[94095,94111],"valid"],[[94112,110591],"disallowed"],[[110592,110593],"valid"],[[110594,113663],"disallowed"],[[113664,113770],"valid"],[[113771,113775],"disallowed"],[[113776,113788],"valid"],[[113789,113791],"disallowed"],[[113792,113800],"valid"],[[113801,113807],"disallowed"],[[113808,113817],"valid"],[[113818,113819],"disallowed"],[[113820,113820],"valid",[],"NV8"],[[113821,113822],"valid"],[[113823,113823],"valid",[],"NV8"],[[113824,113827],"ignored"],[[113828,118783],"disallowed"],[[118784,119029],"valid",[],"NV8"],[[119030,119039],"disallowed"],[[119040,119078],"valid",[],"NV8"],[[119079,119080],"disallowed"],[[119081,119081],"valid",[],"NV8"],[[119082,119133],"valid",[],"NV8"],[[119134,119134],"mapped",[119127,119141]],[[119135,119135],"mapped",[119128,119141]],[[119136,119136],"mapped",[119128,119141,119150]],[[119137,119137],"mapped",[119128,119141,119151]],[[119138,119138],"mapped",[119128,119141,119152]],[[119139,119139],"mapped",[119128,119141,119153]],[[119140,119140],"mapped",[119128,119141,119154]],[[119141,119154],"valid",[],"NV8"],[[119155,119162],"disallowed"],[[119163,119226],"valid",[],"NV8"],[[119227,119227],"mapped",[119225,119141]],[[119228,119228],"mapped",[119226,119141]],[[119229,119229],"mapped",[119225,119141,119150]],[[119230,119230],"mapped",[119226,119141,119150]],[[119231,119231],"mapped",[119225,119141,119151]],[[119232,119232],"mapped",[119226,119141,119151]],[[119233,119261],"valid",[],"NV8"],[[119262,119272],"valid",[],"NV8"],[[119273,119295],"disallowed"],[[119296,119365],"valid",[],"NV8"],[[119366,119551],"disallowed"],[[119552,119638],"valid",[],"NV8"],[[119639,119647],"disallowed"],[[119648,119665],"valid",[],"NV8"],[[119666,119807],"disallowed"],[[119808,119808],"mapped",[97]],[[119809,119809],"mapped",[98]],[[119810,119810],"mapped",[99]],[[119811,119811],"mapped",[100]],[[119812,119812],"mapped",[101]],[[119813,119813],"mapped",[102]],[[119814,119814],"mapped",[103]],[[119815,119815],"mapped",[104]],[[119816,119816],"mapped",[105]],[[119817,119817],"mapped",[106]],[[119818,119818],"mapped",[107]],[[119819,119819],"mapped",[108]],[[119820,119820],"mapped",[109]],[[119821,119821],"mapped",[110]],[[119822,119822],"mapped",[111]],[[119823,119823],"mapped",[112]],[[119824,119824],"mapped",[113]],[[119825,119825],"mapped",[114]],[[119826,119826],"mapped",[115]],[[119827,119827],"mapped",[116]],[[119828,119828],"mapped",[117]],[[119829,119829],"mapped",[118]],[[119830,119830],"mapped",[119]],[[119831,119831],"mapped",[120]],[[119832,119832],"mapped",[121]],[[119833,119833],"mapped",[122]],[[119834,119834],"mapped",[97]],[[119835,119835],"mapped",[98]],[[119836,119836],"mapped",[99]],[[119837,119837],"mapped",[100]],[[119838,119838],"mapped",[101]],[[119839,119839],"mapped",[102]],[[119840,119840],"mapped",[103]],[[119841,119841],"mapped",[104]],[[119842,119842],"mapped",[105]],[[119843,119843],"mapped",[106]],[[119844,119844],"mapped",[107]],[[119845,119845],"mapped",[108]],[[119846,119846],"mapped",[109]],[[119847,119847],"mapped",[110]],[[119848,119848],"mapped",[111]],[[119849,119849],"mapped",[112]],[[119850,119850],"mapped",[113]],[[119851,119851],"mapped",[114]],[[119852,119852],"mapped",[115]],[[119853,119853],"mapped",[116]],[[119854,119854],"mapped",[117]],[[119855,119855],"mapped",[118]],[[119856,119856],"mapped",[119]],[[119857,119857],"mapped",[120]],[[119858,119858],"mapped",[121]],[[119859,119859],"mapped",[122]],[[119860,119860],"mapped",[97]],[[119861,119861],"mapped",[98]],[[119862,119862],"mapped",[99]],[[119863,119863],"mapped",[100]],[[119864,119864],"mapped",[101]],[[119865,119865],"mapped",[102]],[[119866,119866],"mapped",[103]],[[119867,119867],"mapped",[104]],[[119868,119868],"mapped",[105]],[[119869,119869],"mapped",[106]],[[119870,119870],"mapped",[107]],[[119871,119871],"mapped",[108]],[[119872,119872],"mapped",[109]],[[119873,119873],"mapped",[110]],[[119874,119874],"mapped",[111]],[[119875,119875],"mapped",[112]],[[119876,119876],"mapped",[113]],[[119877,119877],"mapped",[114]],[[119878,119878],"mapped",[115]],[[119879,119879],"mapped",[116]],[[119880,119880],"mapped",[117]],[[119881,119881],"mapped",[118]],[[119882,119882],"mapped",[119]],[[119883,119883],"mapped",[120]],[[119884,119884],"mapped",[121]],[[119885,119885],"mapped",[122]],[[119886,119886],"mapped",[97]],[[119887,119887],"mapped",[98]],[[119888,119888],"mapped",[99]],[[119889,119889],"mapped",[100]],[[119890,119890],"mapped",[101]],[[119891,119891],"mapped",[102]],[[119892,119892],"mapped",[103]],[[119893,119893],"disallowed"],[[119894,119894],"mapped",[105]],[[119895,119895],"mapped",[106]],[[119896,119896],"mapped",[107]],[[119897,119897],"mapped",[108]],[[119898,119898],"mapped",[109]],[[119899,119899],"mapped",[110]],[[119900,119900],"mapped",[111]],[[119901,119901],"mapped",[112]],[[119902,119902],"mapped",[113]],[[119903,119903],"mapped",[114]],[[119904,119904],"mapped",[115]],[[119905,119905],"mapped",[116]],[[119906,119906],"mapped",[117]],[[119907,119907],"mapped",[118]],[[119908,119908],"mapped",[119]],[[119909,119909],"mapped",[120]],[[119910,119910],"mapped",[121]],[[119911,119911],"mapped",[122]],[[119912,119912],"mapped",[97]],[[119913,119913],"mapped",[98]],[[119914,119914],"mapped",[99]],[[119915,119915],"mapped",[100]],[[119916,119916],"mapped",[101]],[[119917,119917],"mapped",[102]],[[119918,119918],"mapped",[103]],[[119919,119919],"mapped",[104]],[[119920,119920],"mapped",[105]],[[119921,119921],"mapped",[106]],[[119922,119922],"mapped",[107]],[[119923,119923],"mapped",[108]],[[119924,119924],"mapped",[109]],[[119925,119925],"mapped",[110]],[[119926,119926],"mapped",[111]],[[119927,119927],"mapped",[112]],[[119928,119928],"mapped",[113]],[[119929,119929],"mapped",[114]],[[119930,119930],"mapped",[115]],[[119931,119931],"mapped",[116]],[[119932,119932],"mapped",[117]],[[119933,119933],"mapped",[118]],[[119934,119934],"mapped",[119]],[[119935,119935],"mapped",[120]],[[119936,119936],"mapped",[121]],[[119937,119937],"mapped",[122]],[[119938,119938],"mapped",[97]],[[119939,119939],"mapped",[98]],[[119940,119940],"mapped",[99]],[[119941,119941],"mapped",[100]],[[119942,119942],"mapped",[101]],[[119943,119943],"mapped",[102]],[[119944,119944],"mapped",[103]],[[119945,119945],"mapped",[104]],[[119946,119946],"mapped",[105]],[[119947,119947],"mapped",[106]],[[119948,119948],"mapped",[107]],[[119949,119949],"mapped",[108]],[[119950,119950],"mapped",[109]],[[119951,119951],"mapped",[110]],[[119952,119952],"mapped",[111]],[[119953,119953],"mapped",[112]],[[119954,119954],"mapped",[113]],[[119955,119955],"mapped",[114]],[[119956,119956],"mapped",[115]],[[119957,119957],"mapped",[116]],[[119958,119958],"mapped",[117]],[[119959,119959],"mapped",[118]],[[119960,119960],"mapped",[119]],[[119961,119961],"mapped",[120]],[[119962,119962],"mapped",[121]],[[119963,119963],"mapped",[122]],[[119964,119964],"mapped",[97]],[[119965,119965],"disallowed"],[[119966,119966],"mapped",[99]],[[119967,119967],"mapped",[100]],[[119968,119969],"disallowed"],[[119970,119970],"mapped",[103]],[[119971,119972],"disallowed"],[[119973,119973],"mapped",[106]],[[119974,119974],"mapped",[107]],[[119975,119976],"disallowed"],[[119977,119977],"mapped",[110]],[[119978,119978],"mapped",[111]],[[119979,119979],"mapped",[112]],[[119980,119980],"mapped",[113]],[[119981,119981],"disallowed"],[[119982,119982],"mapped",[115]],[[119983,119983],"mapped",[116]],[[119984,119984],"mapped",[117]],[[119985,119985],"mapped",[118]],[[119986,119986],"mapped",[119]],[[119987,119987],"mapped",[120]],[[119988,119988],"mapped",[121]],[[119989,119989],"mapped",[122]],[[119990,119990],"mapped",[97]],[[119991,119991],"mapped",[98]],[[119992,119992],"mapped",[99]],[[119993,119993],"mapped",[100]],[[119994,119994],"disallowed"],[[119995,119995],"mapped",[102]],[[119996,119996],"disallowed"],[[119997,119997],"mapped",[104]],[[119998,119998],"mapped",[105]],[[119999,119999],"mapped",[106]],[[120000,120000],"mapped",[107]],[[120001,120001],"mapped",[108]],[[120002,120002],"mapped",[109]],[[120003,120003],"mapped",[110]],[[120004,120004],"disallowed"],[[120005,120005],"mapped",[112]],[[120006,120006],"mapped",[113]],[[120007,120007],"mapped",[114]],[[120008,120008],"mapped",[115]],[[120009,120009],"mapped",[116]],[[120010,120010],"mapped",[117]],[[120011,120011],"mapped",[118]],[[120012,120012],"mapped",[119]],[[120013,120013],"mapped",[120]],[[120014,120014],"mapped",[121]],[[120015,120015],"mapped",[122]],[[120016,120016],"mapped",[97]],[[120017,120017],"mapped",[98]],[[120018,120018],"mapped",[99]],[[120019,120019],"mapped",[100]],[[120020,120020],"mapped",[101]],[[120021,120021],"mapped",[102]],[[120022,120022],"mapped",[103]],[[120023,120023],"mapped",[104]],[[120024,120024],"mapped",[105]],[[120025,120025],"mapped",[106]],[[120026,120026],"mapped",[107]],[[120027,120027],"mapped",[108]],[[120028,120028],"mapped",[109]],[[120029,120029],"mapped",[110]],[[120030,120030],"mapped",[111]],[[120031,120031],"mapped",[112]],[[120032,120032],"mapped",[113]],[[120033,120033],"mapped",[114]],[[120034,120034],"mapped",[115]],[[120035,120035],"mapped",[116]],[[120036,120036],"mapped",[117]],[[120037,120037],"mapped",[118]],[[120038,120038],"mapped",[119]],[[120039,120039],"mapped",[120]],[[120040,120040],"mapped",[121]],[[120041,120041],"mapped",[122]],[[120042,120042],"mapped",[97]],[[120043,120043],"mapped",[98]],[[120044,120044],"mapped",[99]],[[120045,120045],"mapped",[100]],[[120046,120046],"mapped",[101]],[[120047,120047],"mapped",[102]],[[120048,120048],"mapped",[103]],[[120049,120049],"mapped",[104]],[[120050,120050],"mapped",[105]],[[120051,120051],"mapped",[106]],[[120052,120052],"mapped",[107]],[[120053,120053],"mapped",[108]],[[120054,120054],"mapped",[109]],[[120055,120055],"mapped",[110]],[[120056,120056],"mapped",[111]],[[120057,120057],"mapped",[112]],[[120058,120058],"mapped",[113]],[[120059,120059],"mapped",[114]],[[120060,120060],"mapped",[115]],[[120061,120061],"mapped",[116]],[[120062,120062],"mapped",[117]],[[120063,120063],"mapped",[118]],[[120064,120064],"mapped",[119]],[[120065,120065],"mapped",[120]],[[120066,120066],"mapped",[121]],[[120067,120067],"mapped",[122]],[[120068,120068],"mapped",[97]],[[120069,120069],"mapped",[98]],[[120070,120070],"disallowed"],[[120071,120071],"mapped",[100]],[[120072,120072],"mapped",[101]],[[120073,120073],"mapped",[102]],[[120074,120074],"mapped",[103]],[[120075,120076],"disallowed"],[[120077,120077],"mapped",[106]],[[120078,120078],"mapped",[107]],[[120079,120079],"mapped",[108]],[[120080,120080],"mapped",[109]],[[120081,120081],"mapped",[110]],[[120082,120082],"mapped",[111]],[[120083,120083],"mapped",[112]],[[120084,120084],"mapped",[113]],[[120085,120085],"disallowed"],[[120086,120086],"mapped",[115]],[[120087,120087],"mapped",[116]],[[120088,120088],"mapped",[117]],[[120089,120089],"mapped",[118]],[[120090,120090],"mapped",[119]],[[120091,120091],"mapped",[120]],[[120092,120092],"mapped",[121]],[[120093,120093],"disallowed"],[[120094,120094],"mapped",[97]],[[120095,120095],"mapped",[98]],[[120096,120096],"mapped",[99]],[[120097,120097],"mapped",[100]],[[120098,120098],"mapped",[101]],[[120099,120099],"mapped",[102]],[[120100,120100],"mapped",[103]],[[120101,120101],"mapped",[104]],[[120102,120102],"mapped",[105]],[[120103,120103],"mapped",[106]],[[120104,120104],"mapped",[107]],[[120105,120105],"mapped",[108]],[[120106,120106],"mapped",[109]],[[120107,120107],"mapped",[110]],[[120108,120108],"mapped",[111]],[[120109,120109],"mapped",[112]],[[120110,120110],"mapped",[113]],[[120111,120111],"mapped",[114]],[[120112,120112],"mapped",[115]],[[120113,120113],"mapped",[116]],[[120114,120114],"mapped",[117]],[[120115,120115],"mapped",[118]],[[120116,120116],"mapped",[119]],[[120117,120117],"mapped",[120]],[[120118,120118],"mapped",[121]],[[120119,120119],"mapped",[122]],[[120120,120120],"mapped",[97]],[[120121,120121],"mapped",[98]],[[120122,120122],"disallowed"],[[120123,120123],"mapped",[100]],[[120124,120124],"mapped",[101]],[[120125,120125],"mapped",[102]],[[120126,120126],"mapped",[103]],[[120127,120127],"disallowed"],[[120128,120128],"mapped",[105]],[[120129,120129],"mapped",[106]],[[120130,120130],"mapped",[107]],[[120131,120131],"mapped",[108]],[[120132,120132],"mapped",[109]],[[120133,120133],"disallowed"],[[120134,120134],"mapped",[111]],[[120135,120137],"disallowed"],[[120138,120138],"mapped",[115]],[[120139,120139],"mapped",[116]],[[120140,120140],"mapped",[117]],[[120141,120141],"mapped",[118]],[[120142,120142],"mapped",[119]],[[120143,120143],"mapped",[120]],[[120144,120144],"mapped",[121]],[[120145,120145],"disallowed"],[[120146,120146],"mapped",[97]],[[120147,120147],"mapped",[98]],[[120148,120148],"mapped",[99]],[[120149,120149],"mapped",[100]],[[120150,120150],"mapped",[101]],[[120151,120151],"mapped",[102]],[[120152,120152],"mapped",[103]],[[120153,120153],"mapped",[104]],[[120154,120154],"mapped",[105]],[[120155,120155],"mapped",[106]],[[120156,120156],"mapped",[107]],[[120157,120157],"mapped",[108]],[[120158,120158],"mapped",[109]],[[120159,120159],"mapped",[110]],[[120160,120160],"mapped",[111]],[[120161,120161],"mapped",[112]],[[120162,120162],"mapped",[113]],[[120163,120163],"mapped",[114]],[[120164,120164],"mapped",[115]],[[120165,120165],"mapped",[116]],[[120166,120166],"mapped",[117]],[[120167,120167],"mapped",[118]],[[120168,120168],"mapped",[119]],[[120169,120169],"mapped",[120]],[[120170,120170],"mapped",[121]],[[120171,120171],"mapped",[122]],[[120172,120172],"mapped",[97]],[[120173,120173],"mapped",[98]],[[120174,120174],"mapped",[99]],[[120175,120175],"mapped",[100]],[[120176,120176],"mapped",[101]],[[120177,120177],"mapped",[102]],[[120178,120178],"mapped",[103]],[[120179,120179],"mapped",[104]],[[120180,120180],"mapped",[105]],[[120181,120181],"mapped",[106]],[[120182,120182],"mapped",[107]],[[120183,120183],"mapped",[108]],[[120184,120184],"mapped",[109]],[[120185,120185],"mapped",[110]],[[120186,120186],"mapped",[111]],[[120187,120187],"mapped",[112]],[[120188,120188],"mapped",[113]],[[120189,120189],"mapped",[114]],[[120190,120190],"mapped",[115]],[[120191,120191],"mapped",[116]],[[120192,120192],"mapped",[117]],[[120193,120193],"mapped",[118]],[[120194,120194],"mapped",[119]],[[120195,120195],"mapped",[120]],[[120196,120196],"mapped",[121]],[[120197,120197],"mapped",[122]],[[120198,120198],"mapped",[97]],[[120199,120199],"mapped",[98]],[[120200,120200],"mapped",[99]],[[120201,120201],"mapped",[100]],[[120202,120202],"mapped",[101]],[[120203,120203],"mapped",[102]],[[120204,120204],"mapped",[103]],[[120205,120205],"mapped",[104]],[[120206,120206],"mapped",[105]],[[120207,120207],"mapped",[106]],[[120208,120208],"mapped",[107]],[[120209,120209],"mapped",[108]],[[120210,120210],"mapped",[109]],[[120211,120211],"mapped",[110]],[[120212,120212],"mapped",[111]],[[120213,120213],"mapped",[112]],[[120214,120214],"mapped",[113]],[[120215,120215],"mapped",[114]],[[120216,120216],"mapped",[115]],[[120217,120217],"mapped",[116]],[[120218,120218],"mapped",[117]],[[120219,120219],"mapped",[118]],[[120220,120220],"mapped",[119]],[[120221,120221],"mapped",[120]],[[120222,120222],"mapped",[121]],[[120223,120223],"mapped",[122]],[[120224,120224],"mapped",[97]],[[120225,120225],"mapped",[98]],[[120226,120226],"mapped",[99]],[[120227,120227],"mapped",[100]],[[120228,120228],"mapped",[101]],[[120229,120229],"mapped",[102]],[[120230,120230],"mapped",[103]],[[120231,120231],"mapped",[104]],[[120232,120232],"mapped",[105]],[[120233,120233],"mapped",[106]],[[120234,120234],"mapped",[107]],[[120235,120235],"mapped",[108]],[[120236,120236],"mapped",[109]],[[120237,120237],"mapped",[110]],[[120238,120238],"mapped",[111]],[[120239,120239],"mapped",[112]],[[120240,120240],"mapped",[113]],[[120241,120241],"mapped",[114]],[[120242,120242],"mapped",[115]],[[120243,120243],"mapped",[116]],[[120244,120244],"mapped",[117]],[[120245,120245],"mapped",[118]],[[120246,120246],"mapped",[119]],[[120247,120247],"mapped",[120]],[[120248,120248],"mapped",[121]],[[120249,120249],"mapped",[122]],[[120250,120250],"mapped",[97]],[[120251,120251],"mapped",[98]],[[120252,120252],"mapped",[99]],[[120253,120253],"mapped",[100]],[[120254,120254],"mapped",[101]],[[120255,120255],"mapped",[102]],[[120256,120256],"mapped",[103]],[[120257,120257],"mapped",[104]],[[120258,120258],"mapped",[105]],[[120259,120259],"mapped",[106]],[[120260,120260],"mapped",[107]],[[120261,120261],"mapped",[108]],[[120262,120262],"mapped",[109]],[[120263,120263],"mapped",[110]],[[120264,120264],"mapped",[111]],[[120265,120265],"mapped",[112]],[[120266,120266],"mapped",[113]],[[120267,120267],"mapped",[114]],[[120268,120268],"mapped",[115]],[[120269,120269],"mapped",[116]],[[120270,120270],"mapped",[117]],[[120271,120271],"mapped",[118]],[[120272,120272],"mapped",[119]],[[120273,120273],"mapped",[120]],[[120274,120274],"mapped",[121]],[[120275,120275],"mapped",[122]],[[120276,120276],"mapped",[97]],[[120277,120277],"mapped",[98]],[[120278,120278],"mapped",[99]],[[120279,120279],"mapped",[100]],[[120280,120280],"mapped",[101]],[[120281,120281],"mapped",[102]],[[120282,120282],"mapped",[103]],[[120283,120283],"mapped",[104]],[[120284,120284],"mapped",[105]],[[120285,120285],"mapped",[106]],[[120286,120286],"mapped",[107]],[[120287,120287],"mapped",[108]],[[120288,120288],"mapped",[109]],[[120289,120289],"mapped",[110]],[[120290,120290],"mapped",[111]],[[120291,120291],"mapped",[112]],[[120292,120292],"mapped",[113]],[[120293,120293],"mapped",[114]],[[120294,120294],"mapped",[115]],[[120295,120295],"mapped",[116]],[[120296,120296],"mapped",[117]],[[120297,120297],"mapped",[118]],[[120298,120298],"mapped",[119]],[[120299,120299],"mapped",[120]],[[120300,120300],"mapped",[121]],[[120301,120301],"mapped",[122]],[[120302,120302],"mapped",[97]],[[120303,120303],"mapped",[98]],[[120304,120304],"mapped",[99]],[[120305,120305],"mapped",[100]],[[120306,120306],"mapped",[101]],[[120307,120307],"mapped",[102]],[[120308,120308],"mapped",[103]],[[120309,120309],"mapped",[104]],[[120310,120310],"mapped",[105]],[[120311,120311],"mapped",[106]],[[120312,120312],"mapped",[107]],[[120313,120313],"mapped",[108]],[[120314,120314],"mapped",[109]],[[120315,120315],"mapped",[110]],[[120316,120316],"mapped",[111]],[[120317,120317],"mapped",[112]],[[120318,120318],"mapped",[113]],[[120319,120319],"mapped",[114]],[[120320,120320],"mapped",[115]],[[120321,120321],"mapped",[116]],[[120322,120322],"mapped",[117]],[[120323,120323],"mapped",[118]],[[120324,120324],"mapped",[119]],[[120325,120325],"mapped",[120]],[[120326,120326],"mapped",[121]],[[120327,120327],"mapped",[122]],[[120328,120328],"mapped",[97]],[[120329,120329],"mapped",[98]],[[120330,120330],"mapped",[99]],[[120331,120331],"mapped",[100]],[[120332,120332],"mapped",[101]],[[120333,120333],"mapped",[102]],[[120334,120334],"mapped",[103]],[[120335,120335],"mapped",[104]],[[120336,120336],"mapped",[105]],[[120337,120337],"mapped",[106]],[[120338,120338],"mapped",[107]],[[120339,120339],"mapped",[108]],[[120340,120340],"mapped",[109]],[[120341,120341],"mapped",[110]],[[120342,120342],"mapped",[111]],[[120343,120343],"mapped",[112]],[[120344,120344],"mapped",[113]],[[120345,120345],"mapped",[114]],[[120346,120346],"mapped",[115]],[[120347,120347],"mapped",[116]],[[120348,120348],"mapped",[117]],[[120349,120349],"mapped",[118]],[[120350,120350],"mapped",[119]],[[120351,120351],"mapped",[120]],[[120352,120352],"mapped",[121]],[[120353,120353],"mapped",[122]],[[120354,120354],"mapped",[97]],[[120355,120355],"mapped",[98]],[[120356,120356],"mapped",[99]],[[120357,120357],"mapped",[100]],[[120358,120358],"mapped",[101]],[[120359,120359],"mapped",[102]],[[120360,120360],"mapped",[103]],[[120361,120361],"mapped",[104]],[[120362,120362],"mapped",[105]],[[120363,120363],"mapped",[106]],[[120364,120364],"mapped",[107]],[[120365,120365],"mapped",[108]],[[120366,120366],"mapped",[109]],[[120367,120367],"mapped",[110]],[[120368,120368],"mapped",[111]],[[120369,120369],"mapped",[112]],[[120370,120370],"mapped",[113]],[[120371,120371],"mapped",[114]],[[120372,120372],"mapped",[115]],[[120373,120373],"mapped",[116]],[[120374,120374],"mapped",[117]],[[120375,120375],"mapped",[118]],[[120376,120376],"mapped",[119]],[[120377,120377],"mapped",[120]],[[120378,120378],"mapped",[121]],[[120379,120379],"mapped",[122]],[[120380,120380],"mapped",[97]],[[120381,120381],"mapped",[98]],[[120382,120382],"mapped",[99]],[[120383,120383],"mapped",[100]],[[120384,120384],"mapped",[101]],[[120385,120385],"mapped",[102]],[[120386,120386],"mapped",[103]],[[120387,120387],"mapped",[104]],[[120388,120388],"mapped",[105]],[[120389,120389],"mapped",[106]],[[120390,120390],"mapped",[107]],[[120391,120391],"mapped",[108]],[[120392,120392],"mapped",[109]],[[120393,120393],"mapped",[110]],[[120394,120394],"mapped",[111]],[[120395,120395],"mapped",[112]],[[120396,120396],"mapped",[113]],[[120397,120397],"mapped",[114]],[[120398,120398],"mapped",[115]],[[120399,120399],"mapped",[116]],[[120400,120400],"mapped",[117]],[[120401,120401],"mapped",[118]],[[120402,120402],"mapped",[119]],[[120403,120403],"mapped",[120]],[[120404,120404],"mapped",[121]],[[120405,120405],"mapped",[122]],[[120406,120406],"mapped",[97]],[[120407,120407],"mapped",[98]],[[120408,120408],"mapped",[99]],[[120409,120409],"mapped",[100]],[[120410,120410],"mapped",[101]],[[120411,120411],"mapped",[102]],[[120412,120412],"mapped",[103]],[[120413,120413],"mapped",[104]],[[120414,120414],"mapped",[105]],[[120415,120415],"mapped",[106]],[[120416,120416],"mapped",[107]],[[120417,120417],"mapped",[108]],[[120418,120418],"mapped",[109]],[[120419,120419],"mapped",[110]],[[120420,120420],"mapped",[111]],[[120421,120421],"mapped",[112]],[[120422,120422],"mapped",[113]],[[120423,120423],"mapped",[114]],[[120424,120424],"mapped",[115]],[[120425,120425],"mapped",[116]],[[120426,120426],"mapped",[117]],[[120427,120427],"mapped",[118]],[[120428,120428],"mapped",[119]],[[120429,120429],"mapped",[120]],[[120430,120430],"mapped",[121]],[[120431,120431],"mapped",[122]],[[120432,120432],"mapped",[97]],[[120433,120433],"mapped",[98]],[[120434,120434],"mapped",[99]],[[120435,120435],"mapped",[100]],[[120436,120436],"mapped",[101]],[[120437,120437],"mapped",[102]],[[120438,120438],"mapped",[103]],[[120439,120439],"mapped",[104]],[[120440,120440],"mapped",[105]],[[120441,120441],"mapped",[106]],[[120442,120442],"mapped",[107]],[[120443,120443],"mapped",[108]],[[120444,120444],"mapped",[109]],[[120445,120445],"mapped",[110]],[[120446,120446],"mapped",[111]],[[120447,120447],"mapped",[112]],[[120448,120448],"mapped",[113]],[[120449,120449],"mapped",[114]],[[120450,120450],"mapped",[115]],[[120451,120451],"mapped",[116]],[[120452,120452],"mapped",[117]],[[120453,120453],"mapped",[118]],[[120454,120454],"mapped",[119]],[[120455,120455],"mapped",[120]],[[120456,120456],"mapped",[121]],[[120457,120457],"mapped",[122]],[[120458,120458],"mapped",[97]],[[120459,120459],"mapped",[98]],[[120460,120460],"mapped",[99]],[[120461,120461],"mapped",[100]],[[120462,120462],"mapped",[101]],[[120463,120463],"mapped",[102]],[[120464,120464],"mapped",[103]],[[120465,120465],"mapped",[104]],[[120466,120466],"mapped",[105]],[[120467,120467],"mapped",[106]],[[120468,120468],"mapped",[107]],[[120469,120469],"mapped",[108]],[[120470,120470],"mapped",[109]],[[120471,120471],"mapped",[110]],[[120472,120472],"mapped",[111]],[[120473,120473],"mapped",[112]],[[120474,120474],"mapped",[113]],[[120475,120475],"mapped",[114]],[[120476,120476],"mapped",[115]],[[120477,120477],"mapped",[116]],[[120478,120478],"mapped",[117]],[[120479,120479],"mapped",[118]],[[120480,120480],"mapped",[119]],[[120481,120481],"mapped",[120]],[[120482,120482],"mapped",[121]],[[120483,120483],"mapped",[122]],[[120484,120484],"mapped",[305]],[[120485,120485],"mapped",[567]],[[120486,120487],"disallowed"],[[120488,120488],"mapped",[945]],[[120489,120489],"mapped",[946]],[[120490,120490],"mapped",[947]],[[120491,120491],"mapped",[948]],[[120492,120492],"mapped",[949]],[[120493,120493],"mapped",[950]],[[120494,120494],"mapped",[951]],[[120495,120495],"mapped",[952]],[[120496,120496],"mapped",[953]],[[120497,120497],"mapped",[954]],[[120498,120498],"mapped",[955]],[[120499,120499],"mapped",[956]],[[120500,120500],"mapped",[957]],[[120501,120501],"mapped",[958]],[[120502,120502],"mapped",[959]],[[120503,120503],"mapped",[960]],[[120504,120504],"mapped",[961]],[[120505,120505],"mapped",[952]],[[120506,120506],"mapped",[963]],[[120507,120507],"mapped",[964]],[[120508,120508],"mapped",[965]],[[120509,120509],"mapped",[966]],[[120510,120510],"mapped",[967]],[[120511,120511],"mapped",[968]],[[120512,120512],"mapped",[969]],[[120513,120513],"mapped",[8711]],[[120514,120514],"mapped",[945]],[[120515,120515],"mapped",[946]],[[120516,120516],"mapped",[947]],[[120517,120517],"mapped",[948]],[[120518,120518],"mapped",[949]],[[120519,120519],"mapped",[950]],[[120520,120520],"mapped",[951]],[[120521,120521],"mapped",[952]],[[120522,120522],"mapped",[953]],[[120523,120523],"mapped",[954]],[[120524,120524],"mapped",[955]],[[120525,120525],"mapped",[956]],[[120526,120526],"mapped",[957]],[[120527,120527],"mapped",[958]],[[120528,120528],"mapped",[959]],[[120529,120529],"mapped",[960]],[[120530,120530],"mapped",[961]],[[120531,120532],"mapped",[963]],[[120533,120533],"mapped",[964]],[[120534,120534],"mapped",[965]],[[120535,120535],"mapped",[966]],[[120536,120536],"mapped",[967]],[[120537,120537],"mapped",[968]],[[120538,120538],"mapped",[969]],[[120539,120539],"mapped",[8706]],[[120540,120540],"mapped",[949]],[[120541,120541],"mapped",[952]],[[120542,120542],"mapped",[954]],[[120543,120543],"mapped",[966]],[[120544,120544],"mapped",[961]],[[120545,120545],"mapped",[960]],[[120546,120546],"mapped",[945]],[[120547,120547],"mapped",[946]],[[120548,120548],"mapped",[947]],[[120549,120549],"mapped",[948]],[[120550,120550],"mapped",[949]],[[120551,120551],"mapped",[950]],[[120552,120552],"mapped",[951]],[[120553,120553],"mapped",[952]],[[120554,120554],"mapped",[953]],[[120555,120555],"mapped",[954]],[[120556,120556],"mapped",[955]],[[120557,120557],"mapped",[956]],[[120558,120558],"mapped",[957]],[[120559,120559],"mapped",[958]],[[120560,120560],"mapped",[959]],[[120561,120561],"mapped",[960]],[[120562,120562],"mapped",[961]],[[120563,120563],"mapped",[952]],[[120564,120564],"mapped",[963]],[[120565,120565],"mapped",[964]],[[120566,120566],"mapped",[965]],[[120567,120567],"mapped",[966]],[[120568,120568],"mapped",[967]],[[120569,120569],"mapped",[968]],[[120570,120570],"mapped",[969]],[[120571,120571],"mapped",[8711]],[[120572,120572],"mapped",[945]],[[120573,120573],"mapped",[946]],[[120574,120574],"mapped",[947]],[[120575,120575],"mapped",[948]],[[120576,120576],"mapped",[949]],[[120577,120577],"mapped",[950]],[[120578,120578],"mapped",[951]],[[120579,120579],"mapped",[952]],[[120580,120580],"mapped",[953]],[[120581,120581],"mapped",[954]],[[120582,120582],"mapped",[955]],[[120583,120583],"mapped",[956]],[[120584,120584],"mapped",[957]],[[120585,120585],"mapped",[958]],[[120586,120586],"mapped",[959]],[[120587,120587],"mapped",[960]],[[120588,120588],"mapped",[961]],[[120589,120590],"mapped",[963]],[[120591,120591],"mapped",[964]],[[120592,120592],"mapped",[965]],[[120593,120593],"mapped",[966]],[[120594,120594],"mapped",[967]],[[120595,120595],"mapped",[968]],[[120596,120596],"mapped",[969]],[[120597,120597],"mapped",[8706]],[[120598,120598],"mapped",[949]],[[120599,120599],"mapped",[952]],[[120600,120600],"mapped",[954]],[[120601,120601],"mapped",[966]],[[120602,120602],"mapped",[961]],[[120603,120603],"mapped",[960]],[[120604,120604],"mapped",[945]],[[120605,120605],"mapped",[946]],[[120606,120606],"mapped",[947]],[[120607,120607],"mapped",[948]],[[120608,120608],"mapped",[949]],[[120609,120609],"mapped",[950]],[[120610,120610],"mapped",[951]],[[120611,120611],"mapped",[952]],[[120612,120612],"mapped",[953]],[[120613,120613],"mapped",[954]],[[120614,120614],"mapped",[955]],[[120615,120615],"mapped",[956]],[[120616,120616],"mapped",[957]],[[120617,120617],"mapped",[958]],[[120618,120618],"mapped",[959]],[[120619,120619],"mapped",[960]],[[120620,120620],"mapped",[961]],[[120621,120621],"mapped",[952]],[[120622,120622],"mapped",[963]],[[120623,120623],"mapped",[964]],[[120624,120624],"mapped",[965]],[[120625,120625],"mapped",[966]],[[120626,120626],"mapped",[967]],[[120627,120627],"mapped",[968]],[[120628,120628],"mapped",[969]],[[120629,120629],"mapped",[8711]],[[120630,120630],"mapped",[945]],[[120631,120631],"mapped",[946]],[[120632,120632],"mapped",[947]],[[120633,120633],"mapped",[948]],[[120634,120634],"mapped",[949]],[[120635,120635],"mapped",[950]],[[120636,120636],"mapped",[951]],[[120637,120637],"mapped",[952]],[[120638,120638],"mapped",[953]],[[120639,120639],"mapped",[954]],[[120640,120640],"mapped",[955]],[[120641,120641],"mapped",[956]],[[120642,120642],"mapped",[957]],[[120643,120643],"mapped",[958]],[[120644,120644],"mapped",[959]],[[120645,120645],"mapped",[960]],[[120646,120646],"mapped",[961]],[[120647,120648],"mapped",[963]],[[120649,120649],"mapped",[964]],[[120650,120650],"mapped",[965]],[[120651,120651],"mapped",[966]],[[120652,120652],"mapped",[967]],[[120653,120653],"mapped",[968]],[[120654,120654],"mapped",[969]],[[120655,120655],"mapped",[8706]],[[120656,120656],"mapped",[949]],[[120657,120657],"mapped",[952]],[[120658,120658],"mapped",[954]],[[120659,120659],"mapped",[966]],[[120660,120660],"mapped",[961]],[[120661,120661],"mapped",[960]],[[120662,120662],"mapped",[945]],[[120663,120663],"mapped",[946]],[[120664,120664],"mapped",[947]],[[120665,120665],"mapped",[948]],[[120666,120666],"mapped",[949]],[[120667,120667],"mapped",[950]],[[120668,120668],"mapped",[951]],[[120669,120669],"mapped",[952]],[[120670,120670],"mapped",[953]],[[120671,120671],"mapped",[954]],[[120672,120672],"mapped",[955]],[[120673,120673],"mapped",[956]],[[120674,120674],"mapped",[957]],[[120675,120675],"mapped",[958]],[[120676,120676],"mapped",[959]],[[120677,120677],"mapped",[960]],[[120678,120678],"mapped",[961]],[[120679,120679],"mapped",[952]],[[120680,120680],"mapped",[963]],[[120681,120681],"mapped",[964]],[[120682,120682],"mapped",[965]],[[120683,120683],"mapped",[966]],[[120684,120684],"mapped",[967]],[[120685,120685],"mapped",[968]],[[120686,120686],"mapped",[969]],[[120687,120687],"mapped",[8711]],[[120688,120688],"mapped",[945]],[[120689,120689],"mapped",[946]],[[120690,120690],"mapped",[947]],[[120691,120691],"mapped",[948]],[[120692,120692],"mapped",[949]],[[120693,120693],"mapped",[950]],[[120694,120694],"mapped",[951]],[[120695,120695],"mapped",[952]],[[120696,120696],"mapped",[953]],[[120697,120697],"mapped",[954]],[[120698,120698],"mapped",[955]],[[120699,120699],"mapped",[956]],[[120700,120700],"mapped",[957]],[[120701,120701],"mapped",[958]],[[120702,120702],"mapped",[959]],[[120703,120703],"mapped",[960]],[[120704,120704],"mapped",[961]],[[120705,120706],"mapped",[963]],[[120707,120707],"mapped",[964]],[[120708,120708],"mapped",[965]],[[120709,120709],"mapped",[966]],[[120710,120710],"mapped",[967]],[[120711,120711],"mapped",[968]],[[120712,120712],"mapped",[969]],[[120713,120713],"mapped",[8706]],[[120714,120714],"mapped",[949]],[[120715,120715],"mapped",[952]],[[120716,120716],"mapped",[954]],[[120717,120717],"mapped",[966]],[[120718,120718],"mapped",[961]],[[120719,120719],"mapped",[960]],[[120720,120720],"mapped",[945]],[[120721,120721],"mapped",[946]],[[120722,120722],"mapped",[947]],[[120723,120723],"mapped",[948]],[[120724,120724],"mapped",[949]],[[120725,120725],"mapped",[950]],[[120726,120726],"mapped",[951]],[[120727,120727],"mapped",[952]],[[120728,120728],"mapped",[953]],[[120729,120729],"mapped",[954]],[[120730,120730],"mapped",[955]],[[120731,120731],"mapped",[956]],[[120732,120732],"mapped",[957]],[[120733,120733],"mapped",[958]],[[120734,120734],"mapped",[959]],[[120735,120735],"mapped",[960]],[[120736,120736],"mapped",[961]],[[120737,120737],"mapped",[952]],[[120738,120738],"mapped",[963]],[[120739,120739],"mapped",[964]],[[120740,120740],"mapped",[965]],[[120741,120741],"mapped",[966]],[[120742,120742],"mapped",[967]],[[120743,120743],"mapped",[968]],[[120744,120744],"mapped",[969]],[[120745,120745],"mapped",[8711]],[[120746,120746],"mapped",[945]],[[120747,120747],"mapped",[946]],[[120748,120748],"mapped",[947]],[[120749,120749],"mapped",[948]],[[120750,120750],"mapped",[949]],[[120751,120751],"mapped",[950]],[[120752,120752],"mapped",[951]],[[120753,120753],"mapped",[952]],[[120754,120754],"mapped",[953]],[[120755,120755],"mapped",[954]],[[120756,120756],"mapped",[955]],[[120757,120757],"mapped",[956]],[[120758,120758],"mapped",[957]],[[120759,120759],"mapped",[958]],[[120760,120760],"mapped",[959]],[[120761,120761],"mapped",[960]],[[120762,120762],"mapped",[961]],[[120763,120764],"mapped",[963]],[[120765,120765],"mapped",[964]],[[120766,120766],"mapped",[965]],[[120767,120767],"mapped",[966]],[[120768,120768],"mapped",[967]],[[120769,120769],"mapped",[968]],[[120770,120770],"mapped",[969]],[[120771,120771],"mapped",[8706]],[[120772,120772],"mapped",[949]],[[120773,120773],"mapped",[952]],[[120774,120774],"mapped",[954]],[[120775,120775],"mapped",[966]],[[120776,120776],"mapped",[961]],[[120777,120777],"mapped",[960]],[[120778,120779],"mapped",[989]],[[120780,120781],"disallowed"],[[120782,120782],"mapped",[48]],[[120783,120783],"mapped",[49]],[[120784,120784],"mapped",[50]],[[120785,120785],"mapped",[51]],[[120786,120786],"mapped",[52]],[[120787,120787],"mapped",[53]],[[120788,120788],"mapped",[54]],[[120789,120789],"mapped",[55]],[[120790,120790],"mapped",[56]],[[120791,120791],"mapped",[57]],[[120792,120792],"mapped",[48]],[[120793,120793],"mapped",[49]],[[120794,120794],"mapped",[50]],[[120795,120795],"mapped",[51]],[[120796,120796],"mapped",[52]],[[120797,120797],"mapped",[53]],[[120798,120798],"mapped",[54]],[[120799,120799],"mapped",[55]],[[120800,120800],"mapped",[56]],[[120801,120801],"mapped",[57]],[[120802,120802],"mapped",[48]],[[120803,120803],"mapped",[49]],[[120804,120804],"mapped",[50]],[[120805,120805],"mapped",[51]],[[120806,120806],"mapped",[52]],[[120807,120807],"mapped",[53]],[[120808,120808],"mapped",[54]],[[120809,120809],"mapped",[55]],[[120810,120810],"mapped",[56]],[[120811,120811],"mapped",[57]],[[120812,120812],"mapped",[48]],[[120813,120813],"mapped",[49]],[[120814,120814],"mapped",[50]],[[120815,120815],"mapped",[51]],[[120816,120816],"mapped",[52]],[[120817,120817],"mapped",[53]],[[120818,120818],"mapped",[54]],[[120819,120819],"mapped",[55]],[[120820,120820],"mapped",[56]],[[120821,120821],"mapped",[57]],[[120822,120822],"mapped",[48]],[[120823,120823],"mapped",[49]],[[120824,120824],"mapped",[50]],[[120825,120825],"mapped",[51]],[[120826,120826],"mapped",[52]],[[120827,120827],"mapped",[53]],[[120828,120828],"mapped",[54]],[[120829,120829],"mapped",[55]],[[120830,120830],"mapped",[56]],[[120831,120831],"mapped",[57]],[[120832,121343],"valid",[],"NV8"],[[121344,121398],"valid"],[[121399,121402],"valid",[],"NV8"],[[121403,121452],"valid"],[[121453,121460],"valid",[],"NV8"],[[121461,121461],"valid"],[[121462,121475],"valid",[],"NV8"],[[121476,121476],"valid"],[[121477,121483],"valid",[],"NV8"],[[121484,121498],"disallowed"],[[121499,121503],"valid"],[[121504,121504],"disallowed"],[[121505,121519],"valid"],[[121520,124927],"disallowed"],[[124928,125124],"valid"],[[125125,125126],"disallowed"],[[125127,125135],"valid",[],"NV8"],[[125136,125142],"valid"],[[125143,126463],"disallowed"],[[126464,126464],"mapped",[1575]],[[126465,126465],"mapped",[1576]],[[126466,126466],"mapped",[1580]],[[126467,126467],"mapped",[1583]],[[126468,126468],"disallowed"],[[126469,126469],"mapped",[1608]],[[126470,126470],"mapped",[1586]],[[126471,126471],"mapped",[1581]],[[126472,126472],"mapped",[1591]],[[126473,126473],"mapped",[1610]],[[126474,126474],"mapped",[1603]],[[126475,126475],"mapped",[1604]],[[126476,126476],"mapped",[1605]],[[126477,126477],"mapped",[1606]],[[126478,126478],"mapped",[1587]],[[126479,126479],"mapped",[1593]],[[126480,126480],"mapped",[1601]],[[126481,126481],"mapped",[1589]],[[126482,126482],"mapped",[1602]],[[126483,126483],"mapped",[1585]],[[126484,126484],"mapped",[1588]],[[126485,126485],"mapped",[1578]],[[126486,126486],"mapped",[1579]],[[126487,126487],"mapped",[1582]],[[126488,126488],"mapped",[1584]],[[126489,126489],"mapped",[1590]],[[126490,126490],"mapped",[1592]],[[126491,126491],"mapped",[1594]],[[126492,126492],"mapped",[1646]],[[126493,126493],"mapped",[1722]],[[126494,126494],"mapped",[1697]],[[126495,126495],"mapped",[1647]],[[126496,126496],"disallowed"],[[126497,126497],"mapped",[1576]],[[126498,126498],"mapped",[1580]],[[126499,126499],"disallowed"],[[126500,126500],"mapped",[1607]],[[126501,126502],"disallowed"],[[126503,126503],"mapped",[1581]],[[126504,126504],"disallowed"],[[126505,126505],"mapped",[1610]],[[126506,126506],"mapped",[1603]],[[126507,126507],"mapped",[1604]],[[126508,126508],"mapped",[1605]],[[126509,126509],"mapped",[1606]],[[126510,126510],"mapped",[1587]],[[126511,126511],"mapped",[1593]],[[126512,126512],"mapped",[1601]],[[126513,126513],"mapped",[1589]],[[126514,126514],"mapped",[1602]],[[126515,126515],"disallowed"],[[126516,126516],"mapped",[1588]],[[126517,126517],"mapped",[1578]],[[126518,126518],"mapped",[1579]],[[126519,126519],"mapped",[1582]],[[126520,126520],"disallowed"],[[126521,126521],"mapped",[1590]],[[126522,126522],"disallowed"],[[126523,126523],"mapped",[1594]],[[126524,126529],"disallowed"],[[126530,126530],"mapped",[1580]],[[126531,126534],"disallowed"],[[126535,126535],"mapped",[1581]],[[126536,126536],"disallowed"],[[126537,126537],"mapped",[1610]],[[126538,126538],"disallowed"],[[126539,126539],"mapped",[1604]],[[126540,126540],"disallowed"],[[126541,126541],"mapped",[1606]],[[126542,126542],"mapped",[1587]],[[126543,126543],"mapped",[1593]],[[126544,126544],"disallowed"],[[126545,126545],"mapped",[1589]],[[126546,126546],"mapped",[1602]],[[126547,126547],"disallowed"],[[126548,126548],"mapped",[1588]],[[126549,126550],"disallowed"],[[126551,126551],"mapped",[1582]],[[126552,126552],"disallowed"],[[126553,126553],"mapped",[1590]],[[126554,126554],"disallowed"],[[126555,126555],"mapped",[1594]],[[126556,126556],"disallowed"],[[126557,126557],"mapped",[1722]],[[126558,126558],"disallowed"],[[126559,126559],"mapped",[1647]],[[126560,126560],"disallowed"],[[126561,126561],"mapped",[1576]],[[126562,126562],"mapped",[1580]],[[126563,126563],"disallowed"],[[126564,126564],"mapped",[1607]],[[126565,126566],"disallowed"],[[126567,126567],"mapped",[1581]],[[126568,126568],"mapped",[1591]],[[126569,126569],"mapped",[1610]],[[126570,126570],"mapped",[1603]],[[126571,126571],"disallowed"],[[126572,126572],"mapped",[1605]],[[126573,126573],"mapped",[1606]],[[126574,126574],"mapped",[1587]],[[126575,126575],"mapped",[1593]],[[126576,126576],"mapped",[1601]],[[126577,126577],"mapped",[1589]],[[126578,126578],"mapped",[1602]],[[126579,126579],"disallowed"],[[126580,126580],"mapped",[1588]],[[126581,126581],"mapped",[1578]],[[126582,126582],"mapped",[1579]],[[126583,126583],"mapped",[1582]],[[126584,126584],"disallowed"],[[126585,126585],"mapped",[1590]],[[126586,126586],"mapped",[1592]],[[126587,126587],"mapped",[1594]],[[126588,126588],"mapped",[1646]],[[126589,126589],"disallowed"],[[126590,126590],"mapped",[1697]],[[126591,126591],"disallowed"],[[126592,126592],"mapped",[1575]],[[126593,126593],"mapped",[1576]],[[126594,126594],"mapped",[1580]],[[126595,126595],"mapped",[1583]],[[126596,126596],"mapped",[1607]],[[126597,126597],"mapped",[1608]],[[126598,126598],"mapped",[1586]],[[126599,126599],"mapped",[1581]],[[126600,126600],"mapped",[1591]],[[126601,126601],"mapped",[1610]],[[126602,126602],"disallowed"],[[126603,126603],"mapped",[1604]],[[126604,126604],"mapped",[1605]],[[126605,126605],"mapped",[1606]],[[126606,126606],"mapped",[1587]],[[126607,126607],"mapped",[1593]],[[126608,126608],"mapped",[1601]],[[126609,126609],"mapped",[1589]],[[126610,126610],"mapped",[1602]],[[126611,126611],"mapped",[1585]],[[126612,126612],"mapped",[1588]],[[126613,126613],"mapped",[1578]],[[126614,126614],"mapped",[1579]],[[126615,126615],"mapped",[1582]],[[126616,126616],"mapped",[1584]],[[126617,126617],"mapped",[1590]],[[126618,126618],"mapped",[1592]],[[126619,126619],"mapped",[1594]],[[126620,126624],"disallowed"],[[126625,126625],"mapped",[1576]],[[126626,126626],"mapped",[1580]],[[126627,126627],"mapped",[1583]],[[126628,126628],"disallowed"],[[126629,126629],"mapped",[1608]],[[126630,126630],"mapped",[1586]],[[126631,126631],"mapped",[1581]],[[126632,126632],"mapped",[1591]],[[126633,126633],"mapped",[1610]],[[126634,126634],"disallowed"],[[126635,126635],"mapped",[1604]],[[126636,126636],"mapped",[1605]],[[126637,126637],"mapped",[1606]],[[126638,126638],"mapped",[1587]],[[126639,126639],"mapped",[1593]],[[126640,126640],"mapped",[1601]],[[126641,126641],"mapped",[1589]],[[126642,126642],"mapped",[1602]],[[126643,126643],"mapped",[1585]],[[126644,126644],"mapped",[1588]],[[126645,126645],"mapped",[1578]],[[126646,126646],"mapped",[1579]],[[126647,126647],"mapped",[1582]],[[126648,126648],"mapped",[1584]],[[126649,126649],"mapped",[1590]],[[126650,126650],"mapped",[1592]],[[126651,126651],"mapped",[1594]],[[126652,126703],"disallowed"],[[126704,126705],"valid",[],"NV8"],[[126706,126975],"disallowed"],[[126976,127019],"valid",[],"NV8"],[[127020,127023],"disallowed"],[[127024,127123],"valid",[],"NV8"],[[127124,127135],"disallowed"],[[127136,127150],"valid",[],"NV8"],[[127151,127152],"disallowed"],[[127153,127166],"valid",[],"NV8"],[[127167,127167],"valid",[],"NV8"],[[127168,127168],"disallowed"],[[127169,127183],"valid",[],"NV8"],[[127184,127184],"disallowed"],[[127185,127199],"valid",[],"NV8"],[[127200,127221],"valid",[],"NV8"],[[127222,127231],"disallowed"],[[127232,127232],"disallowed"],[[127233,127233],"disallowed_STD3_mapped",[48,44]],[[127234,127234],"disallowed_STD3_mapped",[49,44]],[[127235,127235],"disallowed_STD3_mapped",[50,44]],[[127236,127236],"disallowed_STD3_mapped",[51,44]],[[127237,127237],"disallowed_STD3_mapped",[52,44]],[[127238,127238],"disallowed_STD3_mapped",[53,44]],[[127239,127239],"disallowed_STD3_mapped",[54,44]],[[127240,127240],"disallowed_STD3_mapped",[55,44]],[[127241,127241],"disallowed_STD3_mapped",[56,44]],[[127242,127242],"disallowed_STD3_mapped",[57,44]],[[127243,127244],"valid",[],"NV8"],[[127245,127247],"disallowed"],[[127248,127248],"disallowed_STD3_mapped",[40,97,41]],[[127249,127249],"disallowed_STD3_mapped",[40,98,41]],[[127250,127250],"disallowed_STD3_mapped",[40,99,41]],[[127251,127251],"disallowed_STD3_mapped",[40,100,41]],[[127252,127252],"disallowed_STD3_mapped",[40,101,41]],[[127253,127253],"disallowed_STD3_mapped",[40,102,41]],[[127254,127254],"disallowed_STD3_mapped",[40,103,41]],[[127255,127255],"disallowed_STD3_mapped",[40,104,41]],[[127256,127256],"disallowed_STD3_mapped",[40,105,41]],[[127257,127257],"disallowed_STD3_mapped",[40,106,41]],[[127258,127258],"disallowed_STD3_mapped",[40,107,41]],[[127259,127259],"disallowed_STD3_mapped",[40,108,41]],[[127260,127260],"disallowed_STD3_mapped",[40,109,41]],[[127261,127261],"disallowed_STD3_mapped",[40,110,41]],[[127262,127262],"disallowed_STD3_mapped",[40,111,41]],[[127263,127263],"disallowed_STD3_mapped",[40,112,41]],[[127264,127264],"disallowed_STD3_mapped",[40,113,41]],[[127265,127265],"disallowed_STD3_mapped",[40,114,41]],[[127266,127266],"disallowed_STD3_mapped",[40,115,41]],[[127267,127267],"disallowed_STD3_mapped",[40,116,41]],[[127268,127268],"disallowed_STD3_mapped",[40,117,41]],[[127269,127269],"disallowed_STD3_mapped",[40,118,41]],[[127270,127270],"disallowed_STD3_mapped",[40,119,41]],[[127271,127271],"disallowed_STD3_mapped",[40,120,41]],[[127272,127272],"disallowed_STD3_mapped",[40,121,41]],[[127273,127273],"disallowed_STD3_mapped",[40,122,41]],[[127274,127274],"mapped",[12308,115,12309]],[[127275,127275],"mapped",[99]],[[127276,127276],"mapped",[114]],[[127277,127277],"mapped",[99,100]],[[127278,127278],"mapped",[119,122]],[[127279,127279],"disallowed"],[[127280,127280],"mapped",[97]],[[127281,127281],"mapped",[98]],[[127282,127282],"mapped",[99]],[[127283,127283],"mapped",[100]],[[127284,127284],"mapped",[101]],[[127285,127285],"mapped",[102]],[[127286,127286],"mapped",[103]],[[127287,127287],"mapped",[104]],[[127288,127288],"mapped",[105]],[[127289,127289],"mapped",[106]],[[127290,127290],"mapped",[107]],[[127291,127291],"mapped",[108]],[[127292,127292],"mapped",[109]],[[127293,127293],"mapped",[110]],[[127294,127294],"mapped",[111]],[[127295,127295],"mapped",[112]],[[127296,127296],"mapped",[113]],[[127297,127297],"mapped",[114]],[[127298,127298],"mapped",[115]],[[127299,127299],"mapped",[116]],[[127300,127300],"mapped",[117]],[[127301,127301],"mapped",[118]],[[127302,127302],"mapped",[119]],[[127303,127303],"mapped",[120]],[[127304,127304],"mapped",[121]],[[127305,127305],"mapped",[122]],[[127306,127306],"mapped",[104,118]],[[127307,127307],"mapped",[109,118]],[[127308,127308],"mapped",[115,100]],[[127309,127309],"mapped",[115,115]],[[127310,127310],"mapped",[112,112,118]],[[127311,127311],"mapped",[119,99]],[[127312,127318],"valid",[],"NV8"],[[127319,127319],"valid",[],"NV8"],[[127320,127326],"valid",[],"NV8"],[[127327,127327],"valid",[],"NV8"],[[127328,127337],"valid",[],"NV8"],[[127338,127338],"mapped",[109,99]],[[127339,127339],"mapped",[109,100]],[[127340,127343],"disallowed"],[[127344,127352],"valid",[],"NV8"],[[127353,127353],"valid",[],"NV8"],[[127354,127354],"valid",[],"NV8"],[[127355,127356],"valid",[],"NV8"],[[127357,127358],"valid",[],"NV8"],[[127359,127359],"valid",[],"NV8"],[[127360,127369],"valid",[],"NV8"],[[127370,127373],"valid",[],"NV8"],[[127374,127375],"valid",[],"NV8"],[[127376,127376],"mapped",[100,106]],[[127377,127386],"valid",[],"NV8"],[[127387,127461],"disallowed"],[[127462,127487],"valid",[],"NV8"],[[127488,127488],"mapped",[12411,12363]],[[127489,127489],"mapped",[12467,12467]],[[127490,127490],"mapped",[12469]],[[127491,127503],"disallowed"],[[127504,127504],"mapped",[25163]],[[127505,127505],"mapped",[23383]],[[127506,127506],"mapped",[21452]],[[127507,127507],"mapped",[12487]],[[127508,127508],"mapped",[20108]],[[127509,127509],"mapped",[22810]],[[127510,127510],"mapped",[35299]],[[127511,127511],"mapped",[22825]],[[127512,127512],"mapped",[20132]],[[127513,127513],"mapped",[26144]],[[127514,127514],"mapped",[28961]],[[127515,127515],"mapped",[26009]],[[127516,127516],"mapped",[21069]],[[127517,127517],"mapped",[24460]],[[127518,127518],"mapped",[20877]],[[127519,127519],"mapped",[26032]],[[127520,127520],"mapped",[21021]],[[127521,127521],"mapped",[32066]],[[127522,127522],"mapped",[29983]],[[127523,127523],"mapped",[36009]],[[127524,127524],"mapped",[22768]],[[127525,127525],"mapped",[21561]],[[127526,127526],"mapped",[28436]],[[127527,127527],"mapped",[25237]],[[127528,127528],"mapped",[25429]],[[127529,127529],"mapped",[19968]],[[127530,127530],"mapped",[19977]],[[127531,127531],"mapped",[36938]],[[127532,127532],"mapped",[24038]],[[127533,127533],"mapped",[20013]],[[127534,127534],"mapped",[21491]],[[127535,127535],"mapped",[25351]],[[127536,127536],"mapped",[36208]],[[127537,127537],"mapped",[25171]],[[127538,127538],"mapped",[31105]],[[127539,127539],"mapped",[31354]],[[127540,127540],"mapped",[21512]],[[127541,127541],"mapped",[28288]],[[127542,127542],"mapped",[26377]],[[127543,127543],"mapped",[26376]],[[127544,127544],"mapped",[30003]],[[127545,127545],"mapped",[21106]],[[127546,127546],"mapped",[21942]],[[127547,127551],"disallowed"],[[127552,127552],"mapped",[12308,26412,12309]],[[127553,127553],"mapped",[12308,19977,12309]],[[127554,127554],"mapped",[12308,20108,12309]],[[127555,127555],"mapped",[12308,23433,12309]],[[127556,127556],"mapped",[12308,28857,12309]],[[127557,127557],"mapped",[12308,25171,12309]],[[127558,127558],"mapped",[12308,30423,12309]],[[127559,127559],"mapped",[12308,21213,12309]],[[127560,127560],"mapped",[12308,25943,12309]],[[127561,127567],"disallowed"],[[127568,127568],"mapped",[24471]],[[127569,127569],"mapped",[21487]],[[127570,127743],"disallowed"],[[127744,127776],"valid",[],"NV8"],[[127777,127788],"valid",[],"NV8"],[[127789,127791],"valid",[],"NV8"],[[127792,127797],"valid",[],"NV8"],[[127798,127798],"valid",[],"NV8"],[[127799,127868],"valid",[],"NV8"],[[127869,127869],"valid",[],"NV8"],[[127870,127871],"valid",[],"NV8"],[[127872,127891],"valid",[],"NV8"],[[127892,127903],"valid",[],"NV8"],[[127904,127940],"valid",[],"NV8"],[[127941,127941],"valid",[],"NV8"],[[127942,127946],"valid",[],"NV8"],[[127947,127950],"valid",[],"NV8"],[[127951,127955],"valid",[],"NV8"],[[127956,127967],"valid",[],"NV8"],[[127968,127984],"valid",[],"NV8"],[[127985,127991],"valid",[],"NV8"],[[127992,127999],"valid",[],"NV8"],[[128000,128062],"valid",[],"NV8"],[[128063,128063],"valid",[],"NV8"],[[128064,128064],"valid",[],"NV8"],[[128065,128065],"valid",[],"NV8"],[[128066,128247],"valid",[],"NV8"],[[128248,128248],"valid",[],"NV8"],[[128249,128252],"valid",[],"NV8"],[[128253,128254],"valid",[],"NV8"],[[128255,128255],"valid",[],"NV8"],[[128256,128317],"valid",[],"NV8"],[[128318,128319],"valid",[],"NV8"],[[128320,128323],"valid",[],"NV8"],[[128324,128330],"valid",[],"NV8"],[[128331,128335],"valid",[],"NV8"],[[128336,128359],"valid",[],"NV8"],[[128360,128377],"valid",[],"NV8"],[[128378,128378],"disallowed"],[[128379,128419],"valid",[],"NV8"],[[128420,128420],"disallowed"],[[128421,128506],"valid",[],"NV8"],[[128507,128511],"valid",[],"NV8"],[[128512,128512],"valid",[],"NV8"],[[128513,128528],"valid",[],"NV8"],[[128529,128529],"valid",[],"NV8"],[[128530,128532],"valid",[],"NV8"],[[128533,128533],"valid",[],"NV8"],[[128534,128534],"valid",[],"NV8"],[[128535,128535],"valid",[],"NV8"],[[128536,128536],"valid",[],"NV8"],[[128537,128537],"valid",[],"NV8"],[[128538,128538],"valid",[],"NV8"],[[128539,128539],"valid",[],"NV8"],[[128540,128542],"valid",[],"NV8"],[[128543,128543],"valid",[],"NV8"],[[128544,128549],"valid",[],"NV8"],[[128550,128551],"valid",[],"NV8"],[[128552,128555],"valid",[],"NV8"],[[128556,128556],"valid",[],"NV8"],[[128557,128557],"valid",[],"NV8"],[[128558,128559],"valid",[],"NV8"],[[128560,128563],"valid",[],"NV8"],[[128564,128564],"valid",[],"NV8"],[[128565,128576],"valid",[],"NV8"],[[128577,128578],"valid",[],"NV8"],[[128579,128580],"valid",[],"NV8"],[[128581,128591],"valid",[],"NV8"],[[128592,128639],"valid",[],"NV8"],[[128640,128709],"valid",[],"NV8"],[[128710,128719],"valid",[],"NV8"],[[128720,128720],"valid",[],"NV8"],[[128721,128735],"disallowed"],[[128736,128748],"valid",[],"NV8"],[[128749,128751],"disallowed"],[[128752,128755],"valid",[],"NV8"],[[128756,128767],"disallowed"],[[128768,128883],"valid",[],"NV8"],[[128884,128895],"disallowed"],[[128896,128980],"valid",[],"NV8"],[[128981,129023],"disallowed"],[[129024,129035],"valid",[],"NV8"],[[129036,129039],"disallowed"],[[129040,129095],"valid",[],"NV8"],[[129096,129103],"disallowed"],[[129104,129113],"valid",[],"NV8"],[[129114,129119],"disallowed"],[[129120,129159],"valid",[],"NV8"],[[129160,129167],"disallowed"],[[129168,129197],"valid",[],"NV8"],[[129198,129295],"disallowed"],[[129296,129304],"valid",[],"NV8"],[[129305,129407],"disallowed"],[[129408,129412],"valid",[],"NV8"],[[129413,129471],"disallowed"],[[129472,129472],"valid",[],"NV8"],[[129473,131069],"disallowed"],[[131070,131071],"disallowed"],[[131072,173782],"valid"],[[173783,173823],"disallowed"],[[173824,177972],"valid"],[[177973,177983],"disallowed"],[[177984,178205],"valid"],[[178206,178207],"disallowed"],[[178208,183969],"valid"],[[183970,194559],"disallowed"],[[194560,194560],"mapped",[20029]],[[194561,194561],"mapped",[20024]],[[194562,194562],"mapped",[20033]],[[194563,194563],"mapped",[131362]],[[194564,194564],"mapped",[20320]],[[194565,194565],"mapped",[20398]],[[194566,194566],"mapped",[20411]],[[194567,194567],"mapped",[20482]],[[194568,194568],"mapped",[20602]],[[194569,194569],"mapped",[20633]],[[194570,194570],"mapped",[20711]],[[194571,194571],"mapped",[20687]],[[194572,194572],"mapped",[13470]],[[194573,194573],"mapped",[132666]],[[194574,194574],"mapped",[20813]],[[194575,194575],"mapped",[20820]],[[194576,194576],"mapped",[20836]],[[194577,194577],"mapped",[20855]],[[194578,194578],"mapped",[132380]],[[194579,194579],"mapped",[13497]],[[194580,194580],"mapped",[20839]],[[194581,194581],"mapped",[20877]],[[194582,194582],"mapped",[132427]],[[194583,194583],"mapped",[20887]],[[194584,194584],"mapped",[20900]],[[194585,194585],"mapped",[20172]],[[194586,194586],"mapped",[20908]],[[194587,194587],"mapped",[20917]],[[194588,194588],"mapped",[168415]],[[194589,194589],"mapped",[20981]],[[194590,194590],"mapped",[20995]],[[194591,194591],"mapped",[13535]],[[194592,194592],"mapped",[21051]],[[194593,194593],"mapped",[21062]],[[194594,194594],"mapped",[21106]],[[194595,194595],"mapped",[21111]],[[194596,194596],"mapped",[13589]],[[194597,194597],"mapped",[21191]],[[194598,194598],"mapped",[21193]],[[194599,194599],"mapped",[21220]],[[194600,194600],"mapped",[21242]],[[194601,194601],"mapped",[21253]],[[194602,194602],"mapped",[21254]],[[194603,194603],"mapped",[21271]],[[194604,194604],"mapped",[21321]],[[194605,194605],"mapped",[21329]],[[194606,194606],"mapped",[21338]],[[194607,194607],"mapped",[21363]],[[194608,194608],"mapped",[21373]],[[194609,194611],"mapped",[21375]],[[194612,194612],"mapped",[133676]],[[194613,194613],"mapped",[28784]],[[194614,194614],"mapped",[21450]],[[194615,194615],"mapped",[21471]],[[194616,194616],"mapped",[133987]],[[194617,194617],"mapped",[21483]],[[194618,194618],"mapped",[21489]],[[194619,194619],"mapped",[21510]],[[194620,194620],"mapped",[21662]],[[194621,194621],"mapped",[21560]],[[194622,194622],"mapped",[21576]],[[194623,194623],"mapped",[21608]],[[194624,194624],"mapped",[21666]],[[194625,194625],"mapped",[21750]],[[194626,194626],"mapped",[21776]],[[194627,194627],"mapped",[21843]],[[194628,194628],"mapped",[21859]],[[194629,194630],"mapped",[21892]],[[194631,194631],"mapped",[21913]],[[194632,194632],"mapped",[21931]],[[194633,194633],"mapped",[21939]],[[194634,194634],"mapped",[21954]],[[194635,194635],"mapped",[22294]],[[194636,194636],"mapped",[22022]],[[194637,194637],"mapped",[22295]],[[194638,194638],"mapped",[22097]],[[194639,194639],"mapped",[22132]],[[194640,194640],"mapped",[20999]],[[194641,194641],"mapped",[22766]],[[194642,194642],"mapped",[22478]],[[194643,194643],"mapped",[22516]],[[194644,194644],"mapped",[22541]],[[194645,194645],"mapped",[22411]],[[194646,194646],"mapped",[22578]],[[194647,194647],"mapped",[22577]],[[194648,194648],"mapped",[22700]],[[194649,194649],"mapped",[136420]],[[194650,194650],"mapped",[22770]],[[194651,194651],"mapped",[22775]],[[194652,194652],"mapped",[22790]],[[194653,194653],"mapped",[22810]],[[194654,194654],"mapped",[22818]],[[194655,194655],"mapped",[22882]],[[194656,194656],"mapped",[136872]],[[194657,194657],"mapped",[136938]],[[194658,194658],"mapped",[23020]],[[194659,194659],"mapped",[23067]],[[194660,194660],"mapped",[23079]],[[194661,194661],"mapped",[23000]],[[194662,194662],"mapped",[23142]],[[194663,194663],"mapped",[14062]],[[194664,194664],"disallowed"],[[194665,194665],"mapped",[23304]],[[194666,194667],"mapped",[23358]],[[194668,194668],"mapped",[137672]],[[194669,194669],"mapped",[23491]],[[194670,194670],"mapped",[23512]],[[194671,194671],"mapped",[23527]],[[194672,194672],"mapped",[23539]],[[194673,194673],"mapped",[138008]],[[194674,194674],"mapped",[23551]],[[194675,194675],"mapped",[23558]],[[194676,194676],"disallowed"],[[194677,194677],"mapped",[23586]],[[194678,194678],"mapped",[14209]],[[194679,194679],"mapped",[23648]],[[194680,194680],"mapped",[23662]],[[194681,194681],"mapped",[23744]],[[194682,194682],"mapped",[23693]],[[194683,194683],"mapped",[138724]],[[194684,194684],"mapped",[23875]],[[194685,194685],"mapped",[138726]],[[194686,194686],"mapped",[23918]],[[194687,194687],"mapped",[23915]],[[194688,194688],"mapped",[23932]],[[194689,194689],"mapped",[24033]],[[194690,194690],"mapped",[24034]],[[194691,194691],"mapped",[14383]],[[194692,194692],"mapped",[24061]],[[194693,194693],"mapped",[24104]],[[194694,194694],"mapped",[24125]],[[194695,194695],"mapped",[24169]],[[194696,194696],"mapped",[14434]],[[194697,194697],"mapped",[139651]],[[194698,194698],"mapped",[14460]],[[194699,194699],"mapped",[24240]],[[194700,194700],"mapped",[24243]],[[194701,194701],"mapped",[24246]],[[194702,194702],"mapped",[24266]],[[194703,194703],"mapped",[172946]],[[194704,194704],"mapped",[24318]],[[194705,194706],"mapped",[140081]],[[194707,194707],"mapped",[33281]],[[194708,194709],"mapped",[24354]],[[194710,194710],"mapped",[14535]],[[194711,194711],"mapped",[144056]],[[194712,194712],"mapped",[156122]],[[194713,194713],"mapped",[24418]],[[194714,194714],"mapped",[24427]],[[194715,194715],"mapped",[14563]],[[194716,194716],"mapped",[24474]],[[194717,194717],"mapped",[24525]],[[194718,194718],"mapped",[24535]],[[194719,194719],"mapped",[24569]],[[194720,194720],"mapped",[24705]],[[194721,194721],"mapped",[14650]],[[194722,194722],"mapped",[14620]],[[194723,194723],"mapped",[24724]],[[194724,194724],"mapped",[141012]],[[194725,194725],"mapped",[24775]],[[194726,194726],"mapped",[24904]],[[194727,194727],"mapped",[24908]],[[194728,194728],"mapped",[24910]],[[194729,194729],"mapped",[24908]],[[194730,194730],"mapped",[24954]],[[194731,194731],"mapped",[24974]],[[194732,194732],"mapped",[25010]],[[194733,194733],"mapped",[24996]],[[194734,194734],"mapped",[25007]],[[194735,194735],"mapped",[25054]],[[194736,194736],"mapped",[25074]],[[194737,194737],"mapped",[25078]],[[194738,194738],"mapped",[25104]],[[194739,194739],"mapped",[25115]],[[194740,194740],"mapped",[25181]],[[194741,194741],"mapped",[25265]],[[194742,194742],"mapped",[25300]],[[194743,194743],"mapped",[25424]],[[194744,194744],"mapped",[142092]],[[194745,194745],"mapped",[25405]],[[194746,194746],"mapped",[25340]],[[194747,194747],"mapped",[25448]],[[194748,194748],"mapped",[25475]],[[194749,194749],"mapped",[25572]],[[194750,194750],"mapped",[142321]],[[194751,194751],"mapped",[25634]],[[194752,194752],"mapped",[25541]],[[194753,194753],"mapped",[25513]],[[194754,194754],"mapped",[14894]],[[194755,194755],"mapped",[25705]],[[194756,194756],"mapped",[25726]],[[194757,194757],"mapped",[25757]],[[194758,194758],"mapped",[25719]],[[194759,194759],"mapped",[14956]],[[194760,194760],"mapped",[25935]],[[194761,194761],"mapped",[25964]],[[194762,194762],"mapped",[143370]],[[194763,194763],"mapped",[26083]],[[194764,194764],"mapped",[26360]],[[194765,194765],"mapped",[26185]],[[194766,194766],"mapped",[15129]],[[194767,194767],"mapped",[26257]],[[194768,194768],"mapped",[15112]],[[194769,194769],"mapped",[15076]],[[194770,194770],"mapped",[20882]],[[194771,194771],"mapped",[20885]],[[194772,194772],"mapped",[26368]],[[194773,194773],"mapped",[26268]],[[194774,194774],"mapped",[32941]],[[194775,194775],"mapped",[17369]],[[194776,194776],"mapped",[26391]],[[194777,194777],"mapped",[26395]],[[194778,194778],"mapped",[26401]],[[194779,194779],"mapped",[26462]],[[194780,194780],"mapped",[26451]],[[194781,194781],"mapped",[144323]],[[194782,194782],"mapped",[15177]],[[194783,194783],"mapped",[26618]],[[194784,194784],"mapped",[26501]],[[194785,194785],"mapped",[26706]],[[194786,194786],"mapped",[26757]],[[194787,194787],"mapped",[144493]],[[194788,194788],"mapped",[26766]],[[194789,194789],"mapped",[26655]],[[194790,194790],"mapped",[26900]],[[194791,194791],"mapped",[15261]],[[194792,194792],"mapped",[26946]],[[194793,194793],"mapped",[27043]],[[194794,194794],"mapped",[27114]],[[194795,194795],"mapped",[27304]],[[194796,194796],"mapped",[145059]],[[194797,194797],"mapped",[27355]],[[194798,194798],"mapped",[15384]],[[194799,194799],"mapped",[27425]],[[194800,194800],"mapped",[145575]],[[194801,194801],"mapped",[27476]],[[194802,194802],"mapped",[15438]],[[194803,194803],"mapped",[27506]],[[194804,194804],"mapped",[27551]],[[194805,194805],"mapped",[27578]],[[194806,194806],"mapped",[27579]],[[194807,194807],"mapped",[146061]],[[194808,194808],"mapped",[138507]],[[194809,194809],"mapped",[146170]],[[194810,194810],"mapped",[27726]],[[194811,194811],"mapped",[146620]],[[194812,194812],"mapped",[27839]],[[194813,194813],"mapped",[27853]],[[194814,194814],"mapped",[27751]],[[194815,194815],"mapped",[27926]],[[194816,194816],"mapped",[27966]],[[194817,194817],"mapped",[28023]],[[194818,194818],"mapped",[27969]],[[194819,194819],"mapped",[28009]],[[194820,194820],"mapped",[28024]],[[194821,194821],"mapped",[28037]],[[194822,194822],"mapped",[146718]],[[194823,194823],"mapped",[27956]],[[194824,194824],"mapped",[28207]],[[194825,194825],"mapped",[28270]],[[194826,194826],"mapped",[15667]],[[194827,194827],"mapped",[28363]],[[194828,194828],"mapped",[28359]],[[194829,194829],"mapped",[147153]],[[194830,194830],"mapped",[28153]],[[194831,194831],"mapped",[28526]],[[194832,194832],"mapped",[147294]],[[194833,194833],"mapped",[147342]],[[194834,194834],"mapped",[28614]],[[194835,194835],"mapped",[28729]],[[194836,194836],"mapped",[28702]],[[194837,194837],"mapped",[28699]],[[194838,194838],"mapped",[15766]],[[194839,194839],"mapped",[28746]],[[194840,194840],"mapped",[28797]],[[194841,194841],"mapped",[28791]],[[194842,194842],"mapped",[28845]],[[194843,194843],"mapped",[132389]],[[194844,194844],"mapped",[28997]],[[194845,194845],"mapped",[148067]],[[194846,194846],"mapped",[29084]],[[194847,194847],"disallowed"],[[194848,194848],"mapped",[29224]],[[194849,194849],"mapped",[29237]],[[194850,194850],"mapped",[29264]],[[194851,194851],"mapped",[149000]],[[194852,194852],"mapped",[29312]],[[194853,194853],"mapped",[29333]],[[194854,194854],"mapped",[149301]],[[194855,194855],"mapped",[149524]],[[194856,194856],"mapped",[29562]],[[194857,194857],"mapped",[29579]],[[194858,194858],"mapped",[16044]],[[194859,194859],"mapped",[29605]],[[194860,194861],"mapped",[16056]],[[194862,194862],"mapped",[29767]],[[194863,194863],"mapped",[29788]],[[194864,194864],"mapped",[29809]],[[194865,194865],"mapped",[29829]],[[194866,194866],"mapped",[29898]],[[194867,194867],"mapped",[16155]],[[194868,194868],"mapped",[29988]],[[194869,194869],"mapped",[150582]],[[194870,194870],"mapped",[30014]],[[194871,194871],"mapped",[150674]],[[194872,194872],"mapped",[30064]],[[194873,194873],"mapped",[139679]],[[194874,194874],"mapped",[30224]],[[194875,194875],"mapped",[151457]],[[194876,194876],"mapped",[151480]],[[194877,194877],"mapped",[151620]],[[194878,194878],"mapped",[16380]],[[194879,194879],"mapped",[16392]],[[194880,194880],"mapped",[30452]],[[194881,194881],"mapped",[151795]],[[194882,194882],"mapped",[151794]],[[194883,194883],"mapped",[151833]],[[194884,194884],"mapped",[151859]],[[194885,194885],"mapped",[30494]],[[194886,194887],"mapped",[30495]],[[194888,194888],"mapped",[30538]],[[194889,194889],"mapped",[16441]],[[194890,194890],"mapped",[30603]],[[194891,194891],"mapped",[16454]],[[194892,194892],"mapped",[16534]],[[194893,194893],"mapped",[152605]],[[194894,194894],"mapped",[30798]],[[194895,194895],"mapped",[30860]],[[194896,194896],"mapped",[30924]],[[194897,194897],"mapped",[16611]],[[194898,194898],"mapped",[153126]],[[194899,194899],"mapped",[31062]],[[194900,194900],"mapped",[153242]],[[194901,194901],"mapped",[153285]],[[194902,194902],"mapped",[31119]],[[194903,194903],"mapped",[31211]],[[194904,194904],"mapped",[16687]],[[194905,194905],"mapped",[31296]],[[194906,194906],"mapped",[31306]],[[194907,194907],"mapped",[31311]],[[194908,194908],"mapped",[153980]],[[194909,194910],"mapped",[154279]],[[194911,194911],"disallowed"],[[194912,194912],"mapped",[16898]],[[194913,194913],"mapped",[154539]],[[194914,194914],"mapped",[31686]],[[194915,194915],"mapped",[31689]],[[194916,194916],"mapped",[16935]],[[194917,194917],"mapped",[154752]],[[194918,194918],"mapped",[31954]],[[194919,194919],"mapped",[17056]],[[194920,194920],"mapped",[31976]],[[194921,194921],"mapped",[31971]],[[194922,194922],"mapped",[32000]],[[194923,194923],"mapped",[155526]],[[194924,194924],"mapped",[32099]],[[194925,194925],"mapped",[17153]],[[194926,194926],"mapped",[32199]],[[194927,194927],"mapped",[32258]],[[194928,194928],"mapped",[32325]],[[194929,194929],"mapped",[17204]],[[194930,194930],"mapped",[156200]],[[194931,194931],"mapped",[156231]],[[194932,194932],"mapped",[17241]],[[194933,194933],"mapped",[156377]],[[194934,194934],"mapped",[32634]],[[194935,194935],"mapped",[156478]],[[194936,194936],"mapped",[32661]],[[194937,194937],"mapped",[32762]],[[194938,194938],"mapped",[32773]],[[194939,194939],"mapped",[156890]],[[194940,194940],"mapped",[156963]],[[194941,194941],"mapped",[32864]],[[194942,194942],"mapped",[157096]],[[194943,194943],"mapped",[32880]],[[194944,194944],"mapped",[144223]],[[194945,194945],"mapped",[17365]],[[194946,194946],"mapped",[32946]],[[194947,194947],"mapped",[33027]],[[194948,194948],"mapped",[17419]],[[194949,194949],"mapped",[33086]],[[194950,194950],"mapped",[23221]],[[194951,194951],"mapped",[157607]],[[194952,194952],"mapped",[157621]],[[194953,194953],"mapped",[144275]],[[194954,194954],"mapped",[144284]],[[194955,194955],"mapped",[33281]],[[194956,194956],"mapped",[33284]],[[194957,194957],"mapped",[36766]],[[194958,194958],"mapped",[17515]],[[194959,194959],"mapped",[33425]],[[194960,194960],"mapped",[33419]],[[194961,194961],"mapped",[33437]],[[194962,194962],"mapped",[21171]],[[194963,194963],"mapped",[33457]],[[194964,194964],"mapped",[33459]],[[194965,194965],"mapped",[33469]],[[194966,194966],"mapped",[33510]],[[194967,194967],"mapped",[158524]],[[194968,194968],"mapped",[33509]],[[194969,194969],"mapped",[33565]],[[194970,194970],"mapped",[33635]],[[194971,194971],"mapped",[33709]],[[194972,194972],"mapped",[33571]],[[194973,194973],"mapped",[33725]],[[194974,194974],"mapped",[33767]],[[194975,194975],"mapped",[33879]],[[194976,194976],"mapped",[33619]],[[194977,194977],"mapped",[33738]],[[194978,194978],"mapped",[33740]],[[194979,194979],"mapped",[33756]],[[194980,194980],"mapped",[158774]],[[194981,194981],"mapped",[159083]],[[194982,194982],"mapped",[158933]],[[194983,194983],"mapped",[17707]],[[194984,194984],"mapped",[34033]],[[194985,194985],"mapped",[34035]],[[194986,194986],"mapped",[34070]],[[194987,194987],"mapped",[160714]],[[194988,194988],"mapped",[34148]],[[194989,194989],"mapped",[159532]],[[194990,194990],"mapped",[17757]],[[194991,194991],"mapped",[17761]],[[194992,194992],"mapped",[159665]],[[194993,194993],"mapped",[159954]],[[194994,194994],"mapped",[17771]],[[194995,194995],"mapped",[34384]],[[194996,194996],"mapped",[34396]],[[194997,194997],"mapped",[34407]],[[194998,194998],"mapped",[34409]],[[194999,194999],"mapped",[34473]],[[195000,195000],"mapped",[34440]],[[195001,195001],"mapped",[34574]],[[195002,195002],"mapped",[34530]],[[195003,195003],"mapped",[34681]],[[195004,195004],"mapped",[34600]],[[195005,195005],"mapped",[34667]],[[195006,195006],"mapped",[34694]],[[195007,195007],"disallowed"],[[195008,195008],"mapped",[34785]],[[195009,195009],"mapped",[34817]],[[195010,195010],"mapped",[17913]],[[195011,195011],"mapped",[34912]],[[195012,195012],"mapped",[34915]],[[195013,195013],"mapped",[161383]],[[195014,195014],"mapped",[35031]],[[195015,195015],"mapped",[35038]],[[195016,195016],"mapped",[17973]],[[195017,195017],"mapped",[35066]],[[195018,195018],"mapped",[13499]],[[195019,195019],"mapped",[161966]],[[195020,195020],"mapped",[162150]],[[195021,195021],"mapped",[18110]],[[195022,195022],"mapped",[18119]],[[195023,195023],"mapped",[35488]],[[195024,195024],"mapped",[35565]],[[195025,195025],"mapped",[35722]],[[195026,195026],"mapped",[35925]],[[195027,195027],"mapped",[162984]],[[195028,195028],"mapped",[36011]],[[195029,195029],"mapped",[36033]],[[195030,195030],"mapped",[36123]],[[195031,195031],"mapped",[36215]],[[195032,195032],"mapped",[163631]],[[195033,195033],"mapped",[133124]],[[195034,195034],"mapped",[36299]],[[195035,195035],"mapped",[36284]],[[195036,195036],"mapped",[36336]],[[195037,195037],"mapped",[133342]],[[195038,195038],"mapped",[36564]],[[195039,195039],"mapped",[36664]],[[195040,195040],"mapped",[165330]],[[195041,195041],"mapped",[165357]],[[195042,195042],"mapped",[37012]],[[195043,195043],"mapped",[37105]],[[195044,195044],"mapped",[37137]],[[195045,195045],"mapped",[165678]],[[195046,195046],"mapped",[37147]],[[195047,195047],"mapped",[37432]],[[195048,195048],"mapped",[37591]],[[195049,195049],"mapped",[37592]],[[195050,195050],"mapped",[37500]],[[195051,195051],"mapped",[37881]],[[195052,195052],"mapped",[37909]],[[195053,195053],"mapped",[166906]],[[195054,195054],"mapped",[38283]],[[195055,195055],"mapped",[18837]],[[195056,195056],"mapped",[38327]],[[195057,195057],"mapped",[167287]],[[195058,195058],"mapped",[18918]],[[195059,195059],"mapped",[38595]],[[195060,195060],"mapped",[23986]],[[195061,195061],"mapped",[38691]],[[195062,195062],"mapped",[168261]],[[195063,195063],"mapped",[168474]],[[195064,195064],"mapped",[19054]],[[195065,195065],"mapped",[19062]],[[195066,195066],"mapped",[38880]],[[195067,195067],"mapped",[168970]],[[195068,195068],"mapped",[19122]],[[195069,195069],"mapped",[169110]],[[195070,195071],"mapped",[38923]],[[195072,195072],"mapped",[38953]],[[195073,195073],"mapped",[169398]],[[195074,195074],"mapped",[39138]],[[195075,195075],"mapped",[19251]],[[195076,195076],"mapped",[39209]],[[195077,195077],"mapped",[39335]],[[195078,195078],"mapped",[39362]],[[195079,195079],"mapped",[39422]],[[195080,195080],"mapped",[19406]],[[195081,195081],"mapped",[170800]],[[195082,195082],"mapped",[39698]],[[195083,195083],"mapped",[40000]],[[195084,195084],"mapped",[40189]],[[195085,195085],"mapped",[19662]],[[195086,195086],"mapped",[19693]],[[195087,195087],"mapped",[40295]],[[195088,195088],"mapped",[172238]],[[195089,195089],"mapped",[19704]],[[195090,195090],"mapped",[172293]],[[195091,195091],"mapped",[172558]],[[195092,195092],"mapped",[172689]],[[195093,195093],"mapped",[40635]],[[195094,195094],"mapped",[19798]],[[195095,195095],"mapped",[40697]],[[195096,195096],"mapped",[40702]],[[195097,195097],"mapped",[40709]],[[195098,195098],"mapped",[40719]],[[195099,195099],"mapped",[40726]],[[195100,195100],"mapped",[40763]],[[195101,195101],"mapped",[173568]],[[195102,196605],"disallowed"],[[196606,196607],"disallowed"],[[196608,262141],"disallowed"],[[262142,262143],"disallowed"],[[262144,327677],"disallowed"],[[327678,327679],"disallowed"],[[327680,393213],"disallowed"],[[393214,393215],"disallowed"],[[393216,458749],"disallowed"],[[458750,458751],"disallowed"],[[458752,524285],"disallowed"],[[524286,524287],"disallowed"],[[524288,589821],"disallowed"],[[589822,589823],"disallowed"],[[589824,655357],"disallowed"],[[655358,655359],"disallowed"],[[655360,720893],"disallowed"],[[720894,720895],"disallowed"],[[720896,786429],"disallowed"],[[786430,786431],"disallowed"],[[786432,851965],"disallowed"],[[851966,851967],"disallowed"],[[851968,917501],"disallowed"],[[917502,917503],"disallowed"],[[917504,917504],"disallowed"],[[917505,917505],"disallowed"],[[917506,917535],"disallowed"],[[917536,917631],"disallowed"],[[917632,917759],"disallowed"],[[917760,917999],"ignored"],[[918000,983037],"disallowed"],[[983038,983039],"disallowed"],[[983040,1048573],"disallowed"],[[1048574,1048575],"disallowed"],[[1048576,1114109],"disallowed"],[[1114110,1114111],"disallowed"]]')}};var __webpack_module_cache__={};function __nccwpck_require__(e){var t=__webpack_module_cache__[e];if(t!==undefined){return t.exports}var r=__webpack_module_cache__[e]={exports:{}};var a=true;try{__webpack_modules__[e].call(r.exports,r,r.exports,__nccwpck_require__);a=false}finally{if(a)delete __webpack_module_cache__[e]}return r.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var __webpack_exports__={};(()=>{"use strict";var e=__webpack_exports__;Object.defineProperty(e,"__esModule",{value:true});const t=__nccwpck_require__(7747);(new t.GithubActionRunner).execute()})();module.exports=__webpack_exports__})(); \ No newline at end of file +(function(e,r){true?r(t):0})(this,(function(e){"use strict";function merge(){for(var e=arguments.length,t=Array(e),r=0;r1){t[0]=t[0].slice(0,-1);var a=t.length-1;for(var n=1;n= 0x80 (not a basic code point)","invalid-input":"Invalid input"};var y=i-s;var b=Math.floor;var w=String.fromCharCode;function error$1(e){throw new RangeError(v[e])}function map(e,t){var r=[];var a=e.length;while(a--){r[a]=t(e[a])}return r}function mapDomain(e,t){var r=e.split("@");var a="";if(r.length>1){a=r[0]+"@";e=r[1]}e=e.replace(g,".");var n=e.split(".");var i=map(n,t).join(".");return a+i}function ucs2decode(e){var t=[];var r=0;var a=e.length;while(r=55296&&n<=56319&&r>1;e+=b(e/t);for(;e>y*o>>1;a+=i){e=b(e/y)}return b(a+(y+1)*e/(e+p))};var k=function decode(e){var t=[];var r=e.length;var a=0;var p=d;var c=l;var m=e.lastIndexOf(u);if(m<0){m=0}for(var h=0;h=128){error$1("not-basic")}t.push(e.charCodeAt(h))}for(var g=m>0?m+1:0;g=r){error$1("invalid-input")}var x=E(e.charCodeAt(g++));if(x>=i||x>b((n-a)/y)){error$1("overflow")}a+=x*y;var T=w<=c?s:w>=c+o?o:w-c;if(xb(n/k)){error$1("overflow")}y*=k}var O=t.length+1;c=S(a-v,O,v==0);if(b(a/O)>n-p){error$1("overflow")}p+=b(a/O);a%=O;t.splice(a++,0,p)}return String.fromCodePoint.apply(String,t)};var O=function encode(e){var t=[];e=ucs2decode(e);var r=e.length;var a=d;var p=0;var c=l;var m=true;var h=false;var g=undefined;try{for(var v=e[Symbol.iterator](),y;!(m=(y=v.next()).done);m=true){var x=y.value;if(x<128){t.push(w(x))}}}catch(e){h=true;g=e}finally{try{if(!m&&v.return){v.return()}}finally{if(h){throw g}}}var E=t.length;var k=E;if(E){t.push(u)}while(k=a&&Nb((n-p)/j)){error$1("overflow")}p+=(O-a)*j;a=O;var I=true;var F=false;var $=undefined;try{for(var B=e[Symbol.iterator](),L;!(I=(L=B.next()).done);I=true){var M=L.value;if(Mn){error$1("overflow")}if(M==a){var U=p;for(var G=i;;G+=i){var V=G<=c?s:G>=c+o?o:G-c;if(U>6|192).toString(16).toUpperCase()+"%"+(t&63|128).toString(16).toUpperCase();else r="%"+(t>>12|224).toString(16).toUpperCase()+"%"+(t>>6&63|128).toString(16).toUpperCase()+"%"+(t&63|128).toString(16).toUpperCase();return r}function pctDecChars(e){var t="";var r=0;var a=e.length;while(r=194&&n<224){if(a-r>=6){var i=parseInt(e.substr(r+4,2),16);t+=String.fromCharCode((n&31)<<6|i&63)}else{t+=e.substr(r,6)}r+=6}else if(n>=224){if(a-r>=9){var s=parseInt(e.substr(r+4,2),16);var o=parseInt(e.substr(r+7,2),16);t+=String.fromCharCode((n&15)<<12|(s&63)<<6|o&63)}else{t+=e.substr(r,9)}r+=9}else{t+=e.substr(r,3);r+=3}}return t}function _normalizeComponentEncoding(e,t){function decodeUnreserved(e){var r=pctDecChars(e);return!r.match(t.UNRESERVED)?e:r}if(e.scheme)e.scheme=String(e.scheme).replace(t.PCT_ENCODED,decodeUnreserved).toLowerCase().replace(t.NOT_SCHEME,"");if(e.userinfo!==undefined)e.userinfo=String(e.userinfo).replace(t.PCT_ENCODED,decodeUnreserved).replace(t.NOT_USERINFO,pctEncChar).replace(t.PCT_ENCODED,toUpperCase);if(e.host!==undefined)e.host=String(e.host).replace(t.PCT_ENCODED,decodeUnreserved).toLowerCase().replace(t.NOT_HOST,pctEncChar).replace(t.PCT_ENCODED,toUpperCase);if(e.path!==undefined)e.path=String(e.path).replace(t.PCT_ENCODED,decodeUnreserved).replace(e.scheme?t.NOT_PATH:t.NOT_PATH_NOSCHEME,pctEncChar).replace(t.PCT_ENCODED,toUpperCase);if(e.query!==undefined)e.query=String(e.query).replace(t.PCT_ENCODED,decodeUnreserved).replace(t.NOT_QUERY,pctEncChar).replace(t.PCT_ENCODED,toUpperCase);if(e.fragment!==undefined)e.fragment=String(e.fragment).replace(t.PCT_ENCODED,decodeUnreserved).replace(t.NOT_FRAGMENT,pctEncChar).replace(t.PCT_ENCODED,toUpperCase);return e}function _stripLeadingZeros(e){return e.replace(/^0*(.*)/,"$1")||"0"}function _normalizeIPv4(e,t){var r=e.match(t.IPV4ADDRESS)||[];var n=a(r,2),i=n[1];if(i){return i.split(".").map(_stripLeadingZeros).join(".")}else{return e}}function _normalizeIPv6(e,t){var r=e.match(t.IPV6ADDRESS)||[];var n=a(r,3),i=n[1],s=n[2];if(i){var o=i.toLowerCase().split("::").reverse(),p=a(o,2),c=p[0],l=p[1];var d=l?l.split(":").map(_stripLeadingZeros):[];var u=c.split(":").map(_stripLeadingZeros);var m=t.IPV4ADDRESS.test(u[u.length-1]);var h=m?7:8;var g=u.length-h;var v=Array(h);for(var y=0;y1){var E=v.slice(0,w.index);var T=v.slice(w.index+w.length);x=E.join(":")+"::"+T.join(":")}else{x=v.join(":")}if(s){x+="%"+s}return x}else{return e}}var R=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i;var N="".match(/(){0}/)[1]===undefined;function parse(e){var a=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var n={};var i=a.iri!==false?r:t;if(a.reference==="suffix")e=(a.scheme?a.scheme+":":"")+"//"+e;var s=e.match(R);if(s){if(N){n.scheme=s[1];n.userinfo=s[3];n.host=s[4];n.port=parseInt(s[5],10);n.path=s[6]||"";n.query=s[7];n.fragment=s[8];if(isNaN(n.port)){n.port=s[5]}}else{n.scheme=s[1]||undefined;n.userinfo=e.indexOf("@")!==-1?s[3]:undefined;n.host=e.indexOf("//")!==-1?s[4]:undefined;n.port=parseInt(s[5],10);n.path=s[6]||"";n.query=e.indexOf("?")!==-1?s[7]:undefined;n.fragment=e.indexOf("#")!==-1?s[8]:undefined;if(isNaN(n.port)){n.port=e.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?s[4]:undefined}}if(n.host){n.host=_normalizeIPv6(_normalizeIPv4(n.host,i),i)}if(n.scheme===undefined&&n.userinfo===undefined&&n.host===undefined&&n.port===undefined&&!n.path&&n.query===undefined){n.reference="same-document"}else if(n.scheme===undefined){n.reference="relative"}else if(n.fragment===undefined){n.reference="absolute"}else{n.reference="uri"}if(a.reference&&a.reference!=="suffix"&&a.reference!==n.reference){n.error=n.error||"URI is not a "+a.reference+" reference."}var o=D[(a.scheme||n.scheme||"").toLowerCase()];if(!a.unicodeSupport&&(!o||!o.unicodeSupport)){if(n.host&&(a.domainHost||o&&o.domainHost)){try{n.host=A.toASCII(n.host.replace(i.PCT_ENCODED,pctDecChars).toLowerCase())}catch(e){n.error=n.error||"Host's domain name can not be converted to ASCII via punycode: "+e}}_normalizeComponentEncoding(n,t)}else{_normalizeComponentEncoding(n,i)}if(o&&o.parse){o.parse(n,a)}}else{n.error=n.error||"URI can not be parsed."}return n}function _recomposeAuthority(e,a){var n=a.iri!==false?r:t;var i=[];if(e.userinfo!==undefined){i.push(e.userinfo);i.push("@")}if(e.host!==undefined){i.push(_normalizeIPv6(_normalizeIPv4(String(e.host),n),n).replace(n.IPV6ADDRESS,(function(e,t,r){return"["+t+(r?"%25"+r:"")+"]"})))}if(typeof e.port==="number"||typeof e.port==="string"){i.push(":");i.push(String(e.port))}return i.length?i.join(""):undefined}var j=/^\.\.?\//;var I=/^\/\.(\/|$)/;var F=/^\/\.\.(\/|$)/;var $=/^\/?(?:.|\n)*?(?=\/|$)/;function removeDotSegments(e){var t=[];while(e.length){if(e.match(j)){e=e.replace(j,"")}else if(e.match(I)){e=e.replace(I,"/")}else if(e.match(F)){e=e.replace(F,"/");t.pop()}else if(e==="."||e===".."){e=""}else{var r=e.match($);if(r){var a=r[0];e=e.slice(a.length);t.push(a)}else{throw new Error("Unexpected dot segment condition")}}}return t.join("")}function serialize(e){var a=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var n=a.iri?r:t;var i=[];var s=D[(a.scheme||e.scheme||"").toLowerCase()];if(s&&s.serialize)s.serialize(e,a);if(e.host){if(n.IPV6ADDRESS.test(e.host)){}else if(a.domainHost||s&&s.domainHost){try{e.host=!a.iri?A.toASCII(e.host.replace(n.PCT_ENCODED,pctDecChars).toLowerCase()):A.toUnicode(e.host)}catch(t){e.error=e.error||"Host's domain name can not be converted to "+(!a.iri?"ASCII":"Unicode")+" via punycode: "+t}}}_normalizeComponentEncoding(e,n);if(a.reference!=="suffix"&&e.scheme){i.push(e.scheme);i.push(":")}var o=_recomposeAuthority(e,a);if(o!==undefined){if(a.reference!=="suffix"){i.push("//")}i.push(o);if(e.path&&e.path.charAt(0)!=="/"){i.push("/")}}if(e.path!==undefined){var p=e.path;if(!a.absolutePath&&(!s||!s.absolutePath)){p=removeDotSegments(p)}if(o===undefined){p=p.replace(/^\/\//,"/%2F")}i.push(p)}if(e.query!==undefined){i.push("?");i.push(e.query)}if(e.fragment!==undefined){i.push("#");i.push(e.fragment)}return i.join("")}function resolveComponents(e,t){var r=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};var a=arguments[3];var n={};if(!a){e=parse(serialize(e,r),r);t=parse(serialize(t,r),r)}r=r||{};if(!r.tolerant&&t.scheme){n.scheme=t.scheme;n.userinfo=t.userinfo;n.host=t.host;n.port=t.port;n.path=removeDotSegments(t.path||"");n.query=t.query}else{if(t.userinfo!==undefined||t.host!==undefined||t.port!==undefined){n.userinfo=t.userinfo;n.host=t.host;n.port=t.port;n.path=removeDotSegments(t.path||"");n.query=t.query}else{if(!t.path){n.path=e.path;if(t.query!==undefined){n.query=t.query}else{n.query=e.query}}else{if(t.path.charAt(0)==="/"){n.path=removeDotSegments(t.path)}else{if((e.userinfo!==undefined||e.host!==undefined||e.port!==undefined)&&!e.path){n.path="/"+t.path}else if(!e.path){n.path=t.path}else{n.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+t.path}n.path=removeDotSegments(n.path)}n.query=t.query}n.userinfo=e.userinfo;n.host=e.host;n.port=e.port}n.scheme=e.scheme}n.fragment=t.fragment;return n}function resolve(e,t,r){var a=assign({scheme:"null"},r);return serialize(resolveComponents(parse(e,a),parse(t,a),a,true),a)}function normalize(e,t){if(typeof e==="string"){e=serialize(parse(e,t),t)}else if(typeOf(e)==="object"){e=parse(serialize(e,t),t)}return e}function equal(e,t,r){if(typeof e==="string"){e=serialize(parse(e,r),r)}else if(typeOf(e)==="object"){e=serialize(e,r)}if(typeof t==="string"){t=serialize(parse(t,r),r)}else if(typeOf(t)==="object"){t=serialize(t,r)}return e===t}function escapeComponent(e,a){return e&&e.toString().replace(!a||!a.iri?t.ESCAPE:r.ESCAPE,pctEncChar)}function unescapeComponent(e,a){return e&&e.toString().replace(!a||!a.iri?t.PCT_ENCODED:r.PCT_ENCODED,pctDecChars)}var B={scheme:"http",domainHost:true,parse:function parse(e,t){if(!e.host){e.error=e.error||"HTTP URIs must have a host."}return e},serialize:function serialize(e,t){var r=String(e.scheme).toLowerCase()==="https";if(e.port===(r?443:80)||e.port===""){e.port=undefined}if(!e.path){e.path="/"}return e}};var L={scheme:"https",domainHost:B.domainHost,parse:B.parse,serialize:B.serialize};function isSecure(e){return typeof e.secure==="boolean"?e.secure:String(e.scheme).toLowerCase()==="wss"}var M={scheme:"ws",domainHost:true,parse:function parse(e,t){var r=e;r.secure=isSecure(r);r.resourceName=(r.path||"/")+(r.query?"?"+r.query:"");r.path=undefined;r.query=undefined;return r},serialize:function serialize(e,t){if(e.port===(isSecure(e)?443:80)||e.port===""){e.port=undefined}if(typeof e.secure==="boolean"){e.scheme=e.secure?"wss":"ws";e.secure=undefined}if(e.resourceName){var r=e.resourceName.split("?"),n=a(r,2),i=n[0],s=n[1];e.path=i&&i!=="/"?i:undefined;e.query=s;e.resourceName=undefined}e.fragment=undefined;return e}};var U={scheme:"wss",domainHost:M.domainHost,parse:M.parse,serialize:M.serialize};var G={};var V=true;var q="[A-Za-z0-9\\-\\.\\_\\~"+(V?"\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF":"")+"]";var H="[0-9A-Fa-f]";var z=subexp(subexp("%[EFef]"+H+"%"+H+H+"%"+H+H)+"|"+subexp("%[89A-Fa-f]"+H+"%"+H+H)+"|"+subexp("%"+H+H));var K="[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]";var W="[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]";var J=merge(W,'[\\"\\\\]');var Y="[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]";var Q=new RegExp(q,"g");var X=new RegExp(z,"g");var Z=new RegExp(merge("[^]",K,"[\\.]",'[\\"]',J),"g");var ee=new RegExp(merge("[^]",q,Y),"g");var te=ee;function decodeUnreserved(e){var t=pctDecChars(e);return!t.match(Q)?e:t}var re={scheme:"mailto",parse:function parse$$1(e,t){var r=e;var a=r.to=r.path?r.path.split(","):[];r.path=undefined;if(r.query){var n=false;var i={};var s=r.query.split("&");for(var o=0,p=s.length;o{"use strict";Object.defineProperty(t,"__esModule",{value:true});Object.defineProperty(t,"v1",{enumerable:true,get:function(){return a.default}});Object.defineProperty(t,"v3",{enumerable:true,get:function(){return n.default}});Object.defineProperty(t,"v4",{enumerable:true,get:function(){return i.default}});Object.defineProperty(t,"v5",{enumerable:true,get:function(){return s.default}});Object.defineProperty(t,"NIL",{enumerable:true,get:function(){return o.default}});Object.defineProperty(t,"version",{enumerable:true,get:function(){return p.default}});Object.defineProperty(t,"validate",{enumerable:true,get:function(){return c.default}});Object.defineProperty(t,"stringify",{enumerable:true,get:function(){return l.default}});Object.defineProperty(t,"parse",{enumerable:true,get:function(){return d.default}});var a=_interopRequireDefault(r(8628));var n=_interopRequireDefault(r(6409));var i=_interopRequireDefault(r(5122));var s=_interopRequireDefault(r(9120));var o=_interopRequireDefault(r(5332));var p=_interopRequireDefault(r(1595));var c=_interopRequireDefault(r(6900));var l=_interopRequireDefault(r(8950));var d=_interopRequireDefault(r(2746));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}},4569:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var a=_interopRequireDefault(r(6113));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function md5(e){if(Array.isArray(e)){e=Buffer.from(e)}else if(typeof e==="string"){e=Buffer.from(e,"utf8")}return a.default.createHash("md5").update(e).digest()}var n=md5;t["default"]=n},5332:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var r="00000000-0000-0000-0000-000000000000";t["default"]=r},2746:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var a=_interopRequireDefault(r(6900));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function parse(e){if(!(0,a.default)(e)){throw TypeError("Invalid UUID")}let t;const r=new Uint8Array(16);r[0]=(t=parseInt(e.slice(0,8),16))>>>24;r[1]=t>>>16&255;r[2]=t>>>8&255;r[3]=t&255;r[4]=(t=parseInt(e.slice(9,13),16))>>>8;r[5]=t&255;r[6]=(t=parseInt(e.slice(14,18),16))>>>8;r[7]=t&255;r[8]=(t=parseInt(e.slice(19,23),16))>>>8;r[9]=t&255;r[10]=(t=parseInt(e.slice(24,36),16))/1099511627776&255;r[11]=t/4294967296&255;r[12]=t>>>24&255;r[13]=t>>>16&255;r[14]=t>>>8&255;r[15]=t&255;return r}var n=parse;t["default"]=n},814:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var r=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;t["default"]=r},807:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=rng;var a=_interopRequireDefault(r(6113));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const n=new Uint8Array(256);let i=n.length;function rng(){if(i>n.length-16){a.default.randomFillSync(n);i=0}return n.slice(i,i+=16)}},5274:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var a=_interopRequireDefault(r(6113));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function sha1(e){if(Array.isArray(e)){e=Buffer.from(e)}else if(typeof e==="string"){e=Buffer.from(e,"utf8")}return a.default.createHash("sha1").update(e).digest()}var n=sha1;t["default"]=n},8950:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var a=_interopRequireDefault(r(6900));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const n=[];for(let e=0;e<256;++e){n.push((e+256).toString(16).substr(1))}function stringify(e,t=0){const r=(n[e[t+0]]+n[e[t+1]]+n[e[t+2]]+n[e[t+3]]+"-"+n[e[t+4]]+n[e[t+5]]+"-"+n[e[t+6]]+n[e[t+7]]+"-"+n[e[t+8]]+n[e[t+9]]+"-"+n[e[t+10]]+n[e[t+11]]+n[e[t+12]]+n[e[t+13]]+n[e[t+14]]+n[e[t+15]]).toLowerCase();if(!(0,a.default)(r)){throw TypeError("Stringified UUID is invalid")}return r}var i=stringify;t["default"]=i},8628:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var a=_interopRequireDefault(r(807));var n=_interopRequireDefault(r(8950));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let i;let s;let o=0;let p=0;function v1(e,t,r){let c=t&&r||0;const l=t||new Array(16);e=e||{};let d=e.node||i;let u=e.clockseq!==undefined?e.clockseq:s;if(d==null||u==null){const t=e.random||(e.rng||a.default)();if(d==null){d=i=[t[0]|1,t[1],t[2],t[3],t[4],t[5]]}if(u==null){u=s=(t[6]<<8|t[7])&16383}}let m=e.msecs!==undefined?e.msecs:Date.now();let h=e.nsecs!==undefined?e.nsecs:p+1;const g=m-o+(h-p)/1e4;if(g<0&&e.clockseq===undefined){u=u+1&16383}if((g<0||m>o)&&e.nsecs===undefined){h=0}if(h>=1e4){throw new Error("uuid.v1(): Can't create more than 10M uuids/sec")}o=m;p=h;s=u;m+=122192928e5;const v=((m&268435455)*1e4+h)%4294967296;l[c++]=v>>>24&255;l[c++]=v>>>16&255;l[c++]=v>>>8&255;l[c++]=v&255;const y=m/4294967296*1e4&268435455;l[c++]=y>>>8&255;l[c++]=y&255;l[c++]=y>>>24&15|16;l[c++]=y>>>16&255;l[c++]=u>>>8|128;l[c++]=u&255;for(let e=0;e<6;++e){l[c+e]=d[e]}return t||(0,n.default)(l)}var c=v1;t["default"]=c},6409:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var a=_interopRequireDefault(r(5998));var n=_interopRequireDefault(r(4569));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const i=(0,a.default)("v3",48,n.default);var s=i;t["default"]=s},5998:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=_default;t.URL=t.DNS=void 0;var a=_interopRequireDefault(r(8950));var n=_interopRequireDefault(r(2746));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function stringToBytes(e){e=unescape(encodeURIComponent(e));const t=[];for(let r=0;r{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var a=_interopRequireDefault(r(807));var n=_interopRequireDefault(r(8950));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function v4(e,t,r){e=e||{};const i=e.random||(e.rng||a.default)();i[6]=i[6]&15|64;i[8]=i[8]&63|128;if(t){r=r||0;for(let e=0;e<16;++e){t[r+e]=i[e]}return t}return(0,n.default)(i)}var i=v4;t["default"]=i},9120:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var a=_interopRequireDefault(r(5998));var n=_interopRequireDefault(r(5274));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const i=(0,a.default)("v5",80,n.default);var s=i;t["default"]=s},6900:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var a=_interopRequireDefault(r(814));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function validate(e){return typeof e==="string"&&a.default.test(e)}var n=validate;t["default"]=n},1595:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var a=_interopRequireDefault(r(6900));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function version(e){if(!(0,a.default)(e)){throw TypeError("Invalid UUID")}return parseInt(e.substr(14,1),16)}var n=version;t["default"]=n},4886:e=>{"use strict";var t={};e.exports=t;function sign(e){return e<0?-1:1}function evenRound(e){if(e%1===.5&&(e&1)===0){return Math.floor(e)}else{return Math.round(e)}}function createNumberConversion(e,t){if(!t.unsigned){--e}const r=t.unsigned?0:-Math.pow(2,e);const a=Math.pow(2,e)-1;const n=t.moduloBitLength?Math.pow(2,t.moduloBitLength):Math.pow(2,e);const i=t.moduloBitLength?Math.pow(2,t.moduloBitLength-1):Math.pow(2,e-1);return function(e,s){if(!s)s={};let o=+e;if(s.enforceRange){if(!Number.isFinite(o)){throw new TypeError("Argument is not a finite number")}o=sign(o)*Math.floor(Math.abs(o));if(oa){throw new TypeError("Argument is not in byte range")}return o}if(!isNaN(o)&&s.clamp){o=evenRound(o);if(oa)o=a;return o}if(!Number.isFinite(o)||o===0){return 0}o=sign(o)*Math.floor(Math.abs(o));o=o%n;if(!t.unsigned&&o>=i){return o-n}else if(t.unsigned){if(o<0){o+=n}else if(o===-0){return 0}}return o}}t["void"]=function(){return undefined};t["boolean"]=function(e){return!!e};t["byte"]=createNumberConversion(8,{unsigned:false});t["octet"]=createNumberConversion(8,{unsigned:true});t["short"]=createNumberConversion(16,{unsigned:false});t["unsigned short"]=createNumberConversion(16,{unsigned:true});t["long"]=createNumberConversion(32,{unsigned:false});t["unsigned long"]=createNumberConversion(32,{unsigned:true});t["long long"]=createNumberConversion(32,{unsigned:false,moduloBitLength:64});t["unsigned long long"]=createNumberConversion(32,{unsigned:true,moduloBitLength:64});t["double"]=function(e){const t=+e;if(!Number.isFinite(t)){throw new TypeError("Argument is not a finite floating-point value")}return t};t["unrestricted double"]=function(e){const t=+e;if(isNaN(t)){throw new TypeError("Argument is NaN")}return t};t["float"]=t["double"];t["unrestricted float"]=t["unrestricted double"];t["DOMString"]=function(e,t){if(!t)t={};if(t.treatNullAsEmptyString&&e===null){return""}return String(e)};t["ByteString"]=function(e,t){const r=String(e);let a=undefined;for(let e=0;(a=r.codePointAt(e))!==undefined;++e){if(a>255){throw new TypeError("Argument is not a valid bytestring")}}return r};t["USVString"]=function(e){const t=String(e);const r=t.length;const a=[];for(let e=0;e57343){a.push(String.fromCodePoint(n))}else if(56320<=n&&n<=57343){a.push(String.fromCodePoint(65533))}else{if(e===r-1){a.push(String.fromCodePoint(65533))}else{const r=t.charCodeAt(e+1);if(56320<=r&&r<=57343){const t=n&1023;const i=r&1023;a.push(String.fromCodePoint((2<<15)+(2<<9)*t+i));++e}else{a.push(String.fromCodePoint(65533))}}}}return a.join("")};t["Date"]=function(e,t){if(!(e instanceof Date)){throw new TypeError("Argument is not a Date object")}if(isNaN(e)){return undefined}return e};t["RegExp"]=function(e,t){if(!(e instanceof RegExp)){e=new RegExp(e)}return e}},7537:(e,t,r)=>{"use strict";const a=r(5996);t.implementation=class URLImpl{constructor(e){const t=e[0];const r=e[1];let n=null;if(r!==undefined){n=a.basicURLParse(r);if(n==="failure"){throw new TypeError("Invalid base URL")}}const i=a.basicURLParse(t,{baseURL:n});if(i==="failure"){throw new TypeError("Invalid URL")}this._url=i}get href(){return a.serializeURL(this._url)}set href(e){const t=a.basicURLParse(e);if(t==="failure"){throw new TypeError("Invalid URL")}this._url=t}get origin(){return a.serializeURLOrigin(this._url)}get protocol(){return this._url.scheme+":"}set protocol(e){a.basicURLParse(e+":",{url:this._url,stateOverride:"scheme start"})}get username(){return this._url.username}set username(e){if(a.cannotHaveAUsernamePasswordPort(this._url)){return}a.setTheUsername(this._url,e)}get password(){return this._url.password}set password(e){if(a.cannotHaveAUsernamePasswordPort(this._url)){return}a.setThePassword(this._url,e)}get host(){const e=this._url;if(e.host===null){return""}if(e.port===null){return a.serializeHost(e.host)}return a.serializeHost(e.host)+":"+a.serializeInteger(e.port)}set host(e){if(this._url.cannotBeABaseURL){return}a.basicURLParse(e,{url:this._url,stateOverride:"host"})}get hostname(){if(this._url.host===null){return""}return a.serializeHost(this._url.host)}set hostname(e){if(this._url.cannotBeABaseURL){return}a.basicURLParse(e,{url:this._url,stateOverride:"hostname"})}get port(){if(this._url.port===null){return""}return a.serializeInteger(this._url.port)}set port(e){if(a.cannotHaveAUsernamePasswordPort(this._url)){return}if(e===""){this._url.port=null}else{a.basicURLParse(e,{url:this._url,stateOverride:"port"})}}get pathname(){if(this._url.cannotBeABaseURL){return this._url.path[0]}if(this._url.path.length===0){return""}return"/"+this._url.path.join("/")}set pathname(e){if(this._url.cannotBeABaseURL){return}this._url.path=[];a.basicURLParse(e,{url:this._url,stateOverride:"path start"})}get search(){if(this._url.query===null||this._url.query===""){return""}return"?"+this._url.query}set search(e){const t=this._url;if(e===""){t.query=null;return}const r=e[0]==="?"?e.substring(1):e;t.query="";a.basicURLParse(r,{url:t,stateOverride:"query"})}get hash(){if(this._url.fragment===null||this._url.fragment===""){return""}return"#"+this._url.fragment}set hash(e){if(e===""){this._url.fragment=null;return}const t=e[0]==="#"?e.substring(1):e;this._url.fragment="";a.basicURLParse(t,{url:this._url,stateOverride:"fragment"})}toJSON(){return this.href}}},3394:(e,t,r)=>{"use strict";const a=r(4886);const n=r(3185);const i=r(7537);const s=n.implSymbol;function URL(t){if(!this||this[s]||!(this instanceof URL)){throw new TypeError("Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function.")}if(arguments.length<1){throw new TypeError("Failed to construct 'URL': 1 argument required, but only "+arguments.length+" present.")}const r=[];for(let e=0;e{"use strict";t.URL=r(3394)["interface"];t.serializeURL=r(5996).serializeURL;t.serializeURLOrigin=r(5996).serializeURLOrigin;t.basicURLParse=r(5996).basicURLParse;t.setTheUsername=r(5996).setTheUsername;t.setThePassword=r(5996).setThePassword;t.serializeHost=r(5996).serializeHost;t.serializeInteger=r(5996).serializeInteger;t.parseURL=r(5996).parseURL},5996:(e,t,r)=>{"use strict";const a=r(5477);const n=r(4256);const i={ftp:21,file:null,gopher:70,http:80,https:443,ws:80,wss:443};const s=Symbol("failure");function countSymbols(e){return a.ucs2.decode(e).length}function at(e,t){const r=e[t];return isNaN(r)?undefined:String.fromCodePoint(r)}function isASCIIDigit(e){return e>=48&&e<=57}function isASCIIAlpha(e){return e>=65&&e<=90||e>=97&&e<=122}function isASCIIAlphanumeric(e){return isASCIIAlpha(e)||isASCIIDigit(e)}function isASCIIHex(e){return isASCIIDigit(e)||e>=65&&e<=70||e>=97&&e<=102}function isSingleDot(e){return e==="."||e.toLowerCase()==="%2e"}function isDoubleDot(e){e=e.toLowerCase();return e===".."||e==="%2e."||e===".%2e"||e==="%2e%2e"}function isWindowsDriveLetterCodePoints(e,t){return isASCIIAlpha(e)&&(t===58||t===124)}function isWindowsDriveLetterString(e){return e.length===2&&isASCIIAlpha(e.codePointAt(0))&&(e[1]===":"||e[1]==="|")}function isNormalizedWindowsDriveLetterString(e){return e.length===2&&isASCIIAlpha(e.codePointAt(0))&&e[1]===":"}function containsForbiddenHostCodePoint(e){return e.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|%|\/|:|\?|@|\[|\\|\]/)!==-1}function containsForbiddenHostCodePointExcludingPercent(e){return e.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|\/|:|\?|@|\[|\\|\]/)!==-1}function isSpecialScheme(e){return i[e]!==undefined}function isSpecial(e){return isSpecialScheme(e.scheme)}function defaultPort(e){return i[e]}function percentEncode(e){let t=e.toString(16).toUpperCase();if(t.length===1){t="0"+t}return"%"+t}function utf8PercentEncode(e){const t=new Buffer(e);let r="";for(let e=0;e126}const o=new Set([32,34,35,60,62,63,96,123,125]);function isPathPercentEncode(e){return isC0ControlPercentEncode(e)||o.has(e)}const p=new Set([47,58,59,61,64,91,92,93,94,124]);function isUserinfoPercentEncode(e){return isPathPercentEncode(e)||p.has(e)}function percentEncodeChar(e,t){const r=String.fromCodePoint(e);if(t(e)){return utf8PercentEncode(r)}return r}function parseIPv4Number(e){let t=10;if(e.length>=2&&e.charAt(0)==="0"&&e.charAt(1).toLowerCase()==="x"){e=e.substring(2);t=16}else if(e.length>=2&&e.charAt(0)==="0"){e=e.substring(1);t=8}if(e===""){return 0}const r=t===10?/[^0-9]/:t===16?/[^0-9A-Fa-f]/:/[^0-7]/;if(r.test(e)){return s}return parseInt(e,t)}function parseIPv4(e){const t=e.split(".");if(t[t.length-1]===""){if(t.length>1){t.pop()}}if(t.length>4){return e}const r=[];for(const a of t){if(a===""){return e}const t=parseIPv4Number(a);if(t===s){return e}r.push(t)}for(let e=0;e255){return s}}if(r[r.length-1]>=Math.pow(256,5-r.length)){return s}let a=r.pop();let n=0;for(const e of r){a+=e*Math.pow(256,3-n);++n}return a}function serializeIPv4(e){let t="";let r=e;for(let e=1;e<=4;++e){t=String(r%256)+t;if(e!==4){t="."+t}r=Math.floor(r/256)}return t}function parseIPv6(e){const t=[0,0,0,0,0,0,0,0];let r=0;let n=null;let i=0;e=a.ucs2.decode(e);if(e[i]===58){if(e[i+1]!==58){return s}i+=2;++r;n=r}while(i6){return s}let a=0;while(e[i]!==undefined){let n=null;if(a>0){if(e[i]===46&&a<4){++i}else{return s}}if(!isASCIIDigit(e[i])){return s}while(isASCIIDigit(e[i])){const t=parseInt(at(e,i));if(n===null){n=t}else if(n===0){return s}else{n=n*10+t}if(n>255){return s}++i}t[r]=t[r]*256+n;++a;if(a===2||a===4){++r}}if(a!==4){return s}break}else if(e[i]===58){++i;if(e[i]===undefined){return s}}else if(e[i]!==undefined){return s}t[r]=a;++r}if(n!==null){let e=r-n;r=7;while(r!==0&&e>0){const a=t[n+e-1];t[n+e-1]=t[r];t[r]=a;--r;--e}}else if(n===null&&r!==8){return s}return t}function serializeIPv6(e){let t="";const r=findLongestZeroSequence(e);const a=r.idx;let n=false;for(let r=0;r<=7;++r){if(n&&e[r]===0){continue}else if(n){n=false}if(a===r){const e=r===0?"::":":";t+=e;n=true;continue}t+=e[r].toString(16);if(r!==7){t+=":"}}return t}function parseHost(e,t){if(e[0]==="["){if(e[e.length-1]!=="]"){return s}return parseIPv6(e.substring(1,e.length-1))}if(!t){return parseOpaqueHost(e)}const r=utf8PercentDecode(e);const a=n.toASCII(r,false,n.PROCESSING_OPTIONS.NONTRANSITIONAL,false);if(a===null){return s}if(containsForbiddenHostCodePoint(a)){return s}const i=parseIPv4(a);if(typeof i==="number"||i===s){return i}return a}function parseOpaqueHost(e){if(containsForbiddenHostCodePointExcludingPercent(e)){return s}let t="";const r=a.ucs2.decode(e);for(let e=0;er){t=a;r=n}a=null;n=0}else{if(a===null){a=i}++n}}if(n>r){t=a;r=n}return{idx:t,len:r}}function serializeHost(e){if(typeof e==="number"){return serializeIPv4(e)}if(e instanceof Array){return"["+serializeIPv6(e)+"]"}return e}function trimControlChars(e){return e.replace(/^[\u0000-\u001F\u0020]+|[\u0000-\u001F\u0020]+$/g,"")}function trimTabAndNewline(e){return e.replace(/\u0009|\u000A|\u000D/g,"")}function shortenPath(e){const t=e.path;if(t.length===0){return}if(e.scheme==="file"&&t.length===1&&isNormalizedWindowsDriveLetter(t[0])){return}t.pop()}function includesCredentials(e){return e.username!==""||e.password!==""}function cannotHaveAUsernamePasswordPort(e){return e.host===null||e.host===""||e.cannotBeABaseURL||e.scheme==="file"}function isNormalizedWindowsDriveLetter(e){return/^[A-Za-z]:$/.test(e)}function URLStateMachine(e,t,r,n,i){this.pointer=0;this.input=e;this.base=t||null;this.encodingOverride=r||"utf-8";this.stateOverride=i;this.url=n;this.failure=false;this.parseError=false;if(!this.url){this.url={scheme:"",username:"",password:"",host:null,port:null,path:[],query:null,fragment:null,cannotBeABaseURL:false};const e=trimControlChars(this.input);if(e!==this.input){this.parseError=true}this.input=e}const o=trimTabAndNewline(this.input);if(o!==this.input){this.parseError=true}this.input=o;this.state=i||"scheme start";this.buffer="";this.atFlag=false;this.arrFlag=false;this.passwordTokenSeenFlag=false;this.input=a.ucs2.decode(this.input);for(;this.pointer<=this.input.length;++this.pointer){const e=this.input[this.pointer];const t=isNaN(e)?undefined:String.fromCodePoint(e);const r=this["parse "+this.state](e,t);if(!r){break}else if(r===s){this.failure=true;break}}}URLStateMachine.prototype["parse scheme start"]=function parseSchemeStart(e,t){if(isASCIIAlpha(e)){this.buffer+=t.toLowerCase();this.state="scheme"}else if(!this.stateOverride){this.state="no scheme";--this.pointer}else{this.parseError=true;return s}return true};URLStateMachine.prototype["parse scheme"]=function parseScheme(e,t){if(isASCIIAlphanumeric(e)||e===43||e===45||e===46){this.buffer+=t.toLowerCase()}else if(e===58){if(this.stateOverride){if(isSpecial(this.url)&&!isSpecialScheme(this.buffer)){return false}if(!isSpecial(this.url)&&isSpecialScheme(this.buffer)){return false}if((includesCredentials(this.url)||this.url.port!==null)&&this.buffer==="file"){return false}if(this.url.scheme==="file"&&(this.url.host===""||this.url.host===null)){return false}}this.url.scheme=this.buffer;this.buffer="";if(this.stateOverride){return false}if(this.url.scheme==="file"){if(this.input[this.pointer+1]!==47||this.input[this.pointer+2]!==47){this.parseError=true}this.state="file"}else if(isSpecial(this.url)&&this.base!==null&&this.base.scheme===this.url.scheme){this.state="special relative or authority"}else if(isSpecial(this.url)){this.state="special authority slashes"}else if(this.input[this.pointer+1]===47){this.state="path or authority";++this.pointer}else{this.url.cannotBeABaseURL=true;this.url.path.push("");this.state="cannot-be-a-base-URL path"}}else if(!this.stateOverride){this.buffer="";this.state="no scheme";this.pointer=-1}else{this.parseError=true;return s}return true};URLStateMachine.prototype["parse no scheme"]=function parseNoScheme(e){if(this.base===null||this.base.cannotBeABaseURL&&e!==35){return s}else if(this.base.cannotBeABaseURL&&e===35){this.url.scheme=this.base.scheme;this.url.path=this.base.path.slice();this.url.query=this.base.query;this.url.fragment="";this.url.cannotBeABaseURL=true;this.state="fragment"}else if(this.base.scheme==="file"){this.state="file";--this.pointer}else{this.state="relative";--this.pointer}return true};URLStateMachine.prototype["parse special relative or authority"]=function parseSpecialRelativeOrAuthority(e){if(e===47&&this.input[this.pointer+1]===47){this.state="special authority ignore slashes";++this.pointer}else{this.parseError=true;this.state="relative";--this.pointer}return true};URLStateMachine.prototype["parse path or authority"]=function parsePathOrAuthority(e){if(e===47){this.state="authority"}else{this.state="path";--this.pointer}return true};URLStateMachine.prototype["parse relative"]=function parseRelative(e){this.url.scheme=this.base.scheme;if(isNaN(e)){this.url.username=this.base.username;this.url.password=this.base.password;this.url.host=this.base.host;this.url.port=this.base.port;this.url.path=this.base.path.slice();this.url.query=this.base.query}else if(e===47){this.state="relative slash"}else if(e===63){this.url.username=this.base.username;this.url.password=this.base.password;this.url.host=this.base.host;this.url.port=this.base.port;this.url.path=this.base.path.slice();this.url.query="";this.state="query"}else if(e===35){this.url.username=this.base.username;this.url.password=this.base.password;this.url.host=this.base.host;this.url.port=this.base.port;this.url.path=this.base.path.slice();this.url.query=this.base.query;this.url.fragment="";this.state="fragment"}else if(isSpecial(this.url)&&e===92){this.parseError=true;this.state="relative slash"}else{this.url.username=this.base.username;this.url.password=this.base.password;this.url.host=this.base.host;this.url.port=this.base.port;this.url.path=this.base.path.slice(0,this.base.path.length-1);this.state="path";--this.pointer}return true};URLStateMachine.prototype["parse relative slash"]=function parseRelativeSlash(e){if(isSpecial(this.url)&&(e===47||e===92)){if(e===92){this.parseError=true}this.state="special authority ignore slashes"}else if(e===47){this.state="authority"}else{this.url.username=this.base.username;this.url.password=this.base.password;this.url.host=this.base.host;this.url.port=this.base.port;this.state="path";--this.pointer}return true};URLStateMachine.prototype["parse special authority slashes"]=function parseSpecialAuthoritySlashes(e){if(e===47&&this.input[this.pointer+1]===47){this.state="special authority ignore slashes";++this.pointer}else{this.parseError=true;this.state="special authority ignore slashes";--this.pointer}return true};URLStateMachine.prototype["parse special authority ignore slashes"]=function parseSpecialAuthorityIgnoreSlashes(e){if(e!==47&&e!==92){this.state="authority";--this.pointer}else{this.parseError=true}return true};URLStateMachine.prototype["parse authority"]=function parseAuthority(e,t){if(e===64){this.parseError=true;if(this.atFlag){this.buffer="%40"+this.buffer}this.atFlag=true;const e=countSymbols(this.buffer);for(let t=0;tMath.pow(2,16)-1){this.parseError=true;return s}this.url.port=e===defaultPort(this.url.scheme)?null:e;this.buffer=""}if(this.stateOverride){return false}this.state="path start";--this.pointer}else{this.parseError=true;return s}return true};const c=new Set([47,92,63,35]);URLStateMachine.prototype["parse file"]=function parseFile(e){this.url.scheme="file";if(e===47||e===92){if(e===92){this.parseError=true}this.state="file slash"}else if(this.base!==null&&this.base.scheme==="file"){if(isNaN(e)){this.url.host=this.base.host;this.url.path=this.base.path.slice();this.url.query=this.base.query}else if(e===63){this.url.host=this.base.host;this.url.path=this.base.path.slice();this.url.query="";this.state="query"}else if(e===35){this.url.host=this.base.host;this.url.path=this.base.path.slice();this.url.query=this.base.query;this.url.fragment="";this.state="fragment"}else{if(this.input.length-this.pointer-1===0||!isWindowsDriveLetterCodePoints(e,this.input[this.pointer+1])||this.input.length-this.pointer-1>=2&&!c.has(this.input[this.pointer+2])){this.url.host=this.base.host;this.url.path=this.base.path.slice();shortenPath(this.url)}else{this.parseError=true}this.state="path";--this.pointer}}else{this.state="path";--this.pointer}return true};URLStateMachine.prototype["parse file slash"]=function parseFileSlash(e){if(e===47||e===92){if(e===92){this.parseError=true}this.state="file host"}else{if(this.base!==null&&this.base.scheme==="file"){if(isNormalizedWindowsDriveLetterString(this.base.path[0])){this.url.path.push(this.base.path[0])}else{this.url.host=this.base.host}}this.state="path";--this.pointer}return true};URLStateMachine.prototype["parse file host"]=function parseFileHost(e,t){if(isNaN(e)||e===47||e===92||e===63||e===35){--this.pointer;if(!this.stateOverride&&isWindowsDriveLetterString(this.buffer)){this.parseError=true;this.state="path"}else if(this.buffer===""){this.url.host="";if(this.stateOverride){return false}this.state="path start"}else{let e=parseHost(this.buffer,isSpecial(this.url));if(e===s){return s}if(e==="localhost"){e=""}this.url.host=e;if(this.stateOverride){return false}this.buffer="";this.state="path start"}}else{this.buffer+=t}return true};URLStateMachine.prototype["parse path start"]=function parsePathStart(e){if(isSpecial(this.url)){if(e===92){this.parseError=true}this.state="path";if(e!==47&&e!==92){--this.pointer}}else if(!this.stateOverride&&e===63){this.url.query="";this.state="query"}else if(!this.stateOverride&&e===35){this.url.fragment="";this.state="fragment"}else if(e!==undefined){this.state="path";if(e!==47){--this.pointer}}return true};URLStateMachine.prototype["parse path"]=function parsePath(e){if(isNaN(e)||e===47||isSpecial(this.url)&&e===92||!this.stateOverride&&(e===63||e===35)){if(isSpecial(this.url)&&e===92){this.parseError=true}if(isDoubleDot(this.buffer)){shortenPath(this.url);if(e!==47&&!(isSpecial(this.url)&&e===92)){this.url.path.push("")}}else if(isSingleDot(this.buffer)&&e!==47&&!(isSpecial(this.url)&&e===92)){this.url.path.push("")}else if(!isSingleDot(this.buffer)){if(this.url.scheme==="file"&&this.url.path.length===0&&isWindowsDriveLetterString(this.buffer)){if(this.url.host!==""&&this.url.host!==null){this.parseError=true;this.url.host=""}this.buffer=this.buffer[0]+":"}this.url.path.push(this.buffer)}this.buffer="";if(this.url.scheme==="file"&&(e===undefined||e===63||e===35)){while(this.url.path.length>1&&this.url.path[0]===""){this.parseError=true;this.url.path.shift()}}if(e===63){this.url.query="";this.state="query"}if(e===35){this.url.fragment="";this.state="fragment"}}else{if(e===37&&(!isASCIIHex(this.input[this.pointer+1])||!isASCIIHex(this.input[this.pointer+2]))){this.parseError=true}this.buffer+=percentEncodeChar(e,isPathPercentEncode)}return true};URLStateMachine.prototype["parse cannot-be-a-base-URL path"]=function parseCannotBeABaseURLPath(e){if(e===63){this.url.query="";this.state="query"}else if(e===35){this.url.fragment="";this.state="fragment"}else{if(!isNaN(e)&&e!==37){this.parseError=true}if(e===37&&(!isASCIIHex(this.input[this.pointer+1])||!isASCIIHex(this.input[this.pointer+2]))){this.parseError=true}if(!isNaN(e)){this.url.path[0]=this.url.path[0]+percentEncodeChar(e,isC0ControlPercentEncode)}}return true};URLStateMachine.prototype["parse query"]=function parseQuery(e,t){if(isNaN(e)||!this.stateOverride&&e===35){if(!isSpecial(this.url)||this.url.scheme==="ws"||this.url.scheme==="wss"){this.encodingOverride="utf-8"}const t=new Buffer(this.buffer);for(let e=0;e126||t[e]===34||t[e]===35||t[e]===60||t[e]===62){this.url.query+=percentEncode(t[e])}else{this.url.query+=String.fromCodePoint(t[e])}}this.buffer="";if(e===35){this.url.fragment="";this.state="fragment"}}else{if(e===37&&(!isASCIIHex(this.input[this.pointer+1])||!isASCIIHex(this.input[this.pointer+2]))){this.parseError=true}this.buffer+=t}return true};URLStateMachine.prototype["parse fragment"]=function parseFragment(e){if(isNaN(e)){}else if(e===0){this.parseError=true}else{if(e===37&&(!isASCIIHex(this.input[this.pointer+1])||!isASCIIHex(this.input[this.pointer+2]))){this.parseError=true}this.url.fragment+=percentEncodeChar(e,isC0ControlPercentEncode)}return true};function serializeURL(e,t){let r=e.scheme+":";if(e.host!==null){r+="//";if(e.username!==""||e.password!==""){r+=e.username;if(e.password!==""){r+=":"+e.password}r+="@"}r+=serializeHost(e.host);if(e.port!==null){r+=":"+e.port}}else if(e.host===null&&e.scheme==="file"){r+="//"}if(e.cannotBeABaseURL){r+=e.path[0]}else{for(const t of e.path){r+="/"+t}}if(e.query!==null){r+="?"+e.query}if(!t&&e.fragment!==null){r+="#"+e.fragment}return r}function serializeOrigin(e){let t=e.scheme+"://";t+=serializeHost(e.host);if(e.port!==null){t+=":"+e.port}return t}e.exports.serializeURL=serializeURL;e.exports.serializeURLOrigin=function(t){switch(t.scheme){case"blob":try{return e.exports.serializeURLOrigin(e.exports.parseURL(t.path[0]))}catch(e){return"null"}case"ftp":case"gopher":case"http":case"https":case"ws":case"wss":return serializeOrigin({scheme:t.scheme,host:t.host,port:t.port});case"file":return"file://";default:return"null"}};e.exports.basicURLParse=function(e,t){if(t===undefined){t={}}const r=new URLStateMachine(e,t.baseURL,t.encodingOverride,t.url,t.stateOverride);if(r.failure){return"failure"}return r.url};e.exports.setTheUsername=function(e,t){e.username="";const r=a.ucs2.decode(t);for(let t=0;t{"use strict";e.exports.mixin=function mixin(e,t){const r=Object.getOwnPropertyNames(t);for(let a=0;a{e.exports=wrappy;function wrappy(e,t){if(e&&t)return wrappy(e)(t);if(typeof e!=="function")throw new TypeError("need wrapper function");Object.keys(e).forEach((function(t){wrapper[t]=e[t]}));return wrapper;function wrapper(){var t=new Array(arguments.length);for(var r=0;r{r||(r=this.nodeExecutionFailure(e))}));return{isFailure:r,output:t}}async executePost(e){n.default.set("post.executionSuccess",e);const t=n.default.get(c.PostExecutor);const r=await t.run();return{isFailure:this.commandExecutionFailure(r),output:r}}printExecutionFailure(e){e.forEach((e=>{if(e.result===l.ExecutionResult.NOT_OK){this.logger.error(`Failed to execute ${e.command} :`);e.errorMessage.split("\n").forEach((e=>this.logger.error(e)))}}))}printNodeExecutionFailure(e){e.forEach((e=>e.filter((e=>this.commandExecutionFailure(e.executeCommandResults))).forEach((e=>{this.logger.error(`Failed to execute commands for ${e.node.project}`);this.printExecutionFailure(e.executeCommandResults)}))))}async safeAsyncExit(e){if(process.stdout.writableNeedDrain){await new Promise(((e,t)=>{process.stdout.once("drain",(()=>{e()}))}))}return process.exit(e)}archiveArtifactsFailure(e){return!!e.find((e=>e.status==="rejected"))}nodeExecutionFailure(e){return e.reduce(((e,t)=>e||this.commandExecutionFailure(t.executeCommandResults)),false)}commandExecutionFailure(e){return!!e.find((e=>e.result===l.ExecutionResult.NOT_OK))}}t.Runner=Runner},7153:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.ToolType=t.CLIActionType=void 0;var r;(function(e){e["BUILD"]="build";e["TOOLS"]="tools"})(r=t.CLIActionType||(t.CLIActionType={}));var a;(function(e){e["PROJECT_LIST"]="project-list";e["PLAN"]="plan";e["RESUME"]="resume"})(a=t.ToolType||(t.ToolType={}))},6759:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.constants=void 0;const a=r(3802);t.constants={CONTAINER:{ENTRY_POINT:new a.Token("entry-point")}}},6848:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.EntryPoint=void 0;var r;(function(e){e[e["CLI"]=0]="CLI";e[e["GITHUB_EVENT"]=1]="GITHUB_EVENT"})(r=t.EntryPoint||(t.EntryPoint={}))},293:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.InvalidInput=t.NotFoundError=void 0;class NotFoundError extends Error{}t.NotFoundError=NotFoundError;class InvalidInput extends Error{}t.InvalidInput=InvalidInput},4396:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.ExecutionResult=void 0;var r;(function(e){e["OK"]="OK";e["NOT_OK"]="NOT OK";e["SKIP"]="SKIP"})(r=t.ExecutionResult||(t.ExecutionResult={}))},6696:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.ExecutionPhase=void 0;var r;(function(e){e["BEFORE"]="before";e["CURRENT"]="commands";e["AFTER"]="after"})(r=t.ExecutionPhase||(t.ExecutionPhase={}))},3947:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.defaultSerializedFlowService=t.defaultFlowResult=void 0;t.defaultFlowResult={checkoutInfo:[],artifactUploadResults:[],executionResult:[[],[],[]]};t.defaultSerializedFlowService={executionResult:[],resumeFrom:-1}},8373:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.defaultInputValues=t.LoggerLevel=t.FlowType=void 0;var r;(function(e){e["CROSS_PULL_REQUEST"]="cross_pr";e["FULL_DOWNSTREAM"]="full_downstream";e["SINGLE_PULL_REQUEST"]="single_pr";e["BRANCH"]="branch"})(r=t.FlowType||(t.FlowType={}));var a;(function(e){e[e["INFO"]=0]="INFO";e[e["TRACE"]=1]="TRACE";e[e["DEBUG"]=2]="DEBUG"})(a=t.LoggerLevel||(t.LoggerLevel={}));t.defaultInputValues={definitionFile:"",skipExecution:false,skipCheckout:false,skipParallelCheckout:false,enableParallelExecution:false,loggerLevel:a.INFO}},6196:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.NodeExecutionLevel=void 0;var r;(function(e){e["UPSTREAM"]="upstream";e["CURRENT"]="current";e["DOWNSTREAM"]="downstream"})(r=t.NodeExecutionLevel||(t.NodeExecutionLevel={}))},5129:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var n=Object.getOwnPropertyDescriptor(t,r);if(!n||("get"in n?!t.__esModule:n.writable||n.configurable)){n={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,n)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var i=this&&this.__decorate||function(e,t,r,a){var n=arguments.length,i=n<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")i=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])i=(n<3?s(i):n>3?s(t,r,i):s(t,r))||i;return n>3&&i&&Object.defineProperty(t,r,i),i};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);n(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.ActionArguments=void 0;const o=r(8373);const p=s(r(2186));const c=s(r(3802));const l=r(8081);const d=r(293);let u=class ActionArguments{getFlowType(e){if(Object.values(o.FlowType).includes(e)){return e}else{switch(e){case"pull-request":return o.FlowType.CROSS_PULL_REQUEST;case"full-downstream":return o.FlowType.FULL_DOWNSTREAM;case"single":return o.FlowType.SINGLE_PULL_REQUEST;case"branch":return o.FlowType.BRANCH}throw new d.InvalidInput("Invalid flow-type")}}getLoggerLevel(e){switch(e){case"info":case"":return o.LoggerLevel.INFO;case"debug":return o.LoggerLevel.DEBUG;case"trace":return o.LoggerLevel.TRACE;default:throw new d.InvalidInput("Invalid logger-level")}}getAdditionalFlags(e){if(e===""){return{}}const t={};e.trim().split(";").forEach((e=>{const r=e.trim().split(" ");if(r[0].startsWith("--")){r[0]=r[0].substring(2)}else if(r[0].startsWith("-")){r[0]=r[0].substring(1)}if(r.length===1){t[r[0]]=true}else{t[r[0]]=r.slice(1).join(" ")}}));return t}getStringInput(e){const t=p.getInput(e);return t===""?undefined:t}getArrayInput(e){const t=this.getStringInput(e);return t?.split(",").map((e=>e.trim()))}parse(){const e={definitionFile:p.getInput("definition-file"),flowType:this.getFlowType(p.getInput("flow-type")),skipExecution:p.getBooleanInput("skip-execution"),skipParallelCheckout:p.getBooleanInput("skip-parallel-checkout"),skipProjectCheckout:this.getArrayInput("skip-project-checkout"),skipProjectExecution:this.getArrayInput("skip-project-execution"),enableParallelExecution:p.getBooleanInput("enable-parallel-execution"),skipCheckout:p.getBooleanInput("skip-checkout"),startProject:this.getStringInput("starting-project"),loggerLevel:this.getLoggerLevel(p.getInput("logger-level")),annotationsPrefix:this.getStringInput("annotations-prefix"),customCommandTreatment:this.getArrayInput("custom-command-treatment"),...this.getAdditionalFlags(p.getInput("additional-flags"))};c.default.get(l.InputService).updateInputs(e)}};u=i([(0,c.Service)()],u);t.ActionArguments=u},7774:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var n=Object.getOwnPropertyDescriptor(t,r);if(!n||("get"in n?!t.__esModule:n.writable||n.configurable)){n={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,n)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var i=this&&this.__decorate||function(e,t,r,a){var n=arguments.length,i=n<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")i=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])i=(n<3?s(i):n>3?s(t,r,i):s(t,r))||i;return n>3&&i&&Object.defineProperty(t,r,i),i};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);n(t,e);return t};var o=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:true});t.ArtifactService=void 0;const p=s(r(3802));const c=r(8114);const l=r(8501);const d=r(9837);const u=r(6759);const m=r(6848);let h=class ArtifactService{constructor(){this.uploadService=p.default.get(l.UploadService);this.logger=p.default.get(d.LoggerService).logger}getNodesToArchive(e,t){const r=t.archiveArtifacts?.dependencies??c.ArchiveDependencies.NONE;let a;switch(r){case c.ArchiveDependencies.NONE:a=t.archiveArtifacts?[t]:[];break;case c.ArchiveDependencies.ALL:a=e.filter((e=>!!e.archiveArtifacts));break;default:a=e.filter((e=>e.archiveArtifacts&&(r.includes(e.project)||e.project===t.project)))}return a}async uploadNodes(e,t){if(p.default.get(u.constants.CONTAINER.ENTRY_POINT)===m.EntryPoint.CLI){this.logger.info("Will not upload any artifacts in CLI environment");return[]}const r=this.getNodesToArchive(e,t);this.logger.info(r.length>0?`Archiving artifacts for ${r.map((e=>e.project))}`:"No artifacts to archive");const a=r.map((async e=>{this.logger.info(`Project [${e.project}]. Uploading artifacts...`);return this.uploadService.upload(e.archiveArtifacts,e.project)}));const n=await Promise.allSettled(a);n.forEach((e=>{if(e.status==="fulfilled"){if(e.value.artifactItems.length>0){this.logger.info(`Artifact ${e.value.artifactName} uploaded ${e.value.artifactItems.length} files: ${e.value.artifactItems}`)}if(e.value.failedItems.length>0){this.logger.info(`Artifact ${e.value.artifactName} failed to upload ${e.value.failedItems.length} files: ${e.value.failedItems}`)}}else{this.logger.info(`Failure in uploading artifacts for one or more nodes: ${e.reason}`)}}));return n}};h=i([(0,p.Service)(),o("design:paramtypes",[])],h);t.ArtifactService=h},8501:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var n=Object.getOwnPropertyDescriptor(t,r);if(!n||("get"in n?!t.__esModule:n.writable||n.configurable)){n={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,n)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var i=this&&this.__decorate||function(e,t,r,a){var n=arguments.length,i=n<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")i=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])i=(n<3?s(i):n>3?s(t,r,i):s(t,r))||i;return n>3&&i&&Object.defineProperty(t,r,i),i};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);n(t,e);return t};var o=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};var p=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.UploadService=void 0;const c=r(8090);const l=p(r(1017));const d=s(r(3802));const u=r(7147);const m=r(3837);const h=r(9837);const g=r(8114);const v=s(r(2605));const y=r(8410);const b=(0,m.promisify)(u.stat);let w=class UploadService{constructor(){this.logger=d.default.get(h.LoggerService).logger}validateArtifactName(e){return e.replace(/[/\s":<>*?\\]/g,"_")}getMultiPathLCA(e){if(e.length<2){throw new Error("At least two search paths must be provided")}const t=[];const r=[];let a=Number.MAX_SAFE_INTEGER;for(const t of e){const e=l.default.normalize(t).split(l.default.sep);a=Math.min(a,e.length);r.push(e)}if(e[0].startsWith(l.default.sep)){t.push(l.default.sep)}for(let e=0;e1){this.logger.info("Multiple search paths detected. Calculating the least common ancestor of all paths");const t=this.getMultiPathLCA(e);this.logger.info(`The least common ancestor is ${t}. This will be the root directory of the artifact`);return t}if(t.length===1&&e[0]===t[0]){return l.default.dirname(t[0])}return e[0]}async findFilesToUpload(e,t={followSymbolicLinks:true,implicitDescendants:true,omitBrokenSymbolicLinks:true}){const r=[];const a=await(0,c.create)(e,t);const n=await a.glob();const i=new Set;for(const e of n){const t=await b(e);if(!t.isDirectory()){r.push(e);if(i.has(e.toLowerCase())){this.logger.info(`Uploads are case insensitive: ${e} was detected that it will be overwritten by another file with the same path`)}else{i.add(e.toLowerCase())}}}const s=this.getRootDir(a.getSearchPaths(),r);return{filesToUpload:r,rootDirectory:s}}noFileFound(e,t){switch(e["if-no-files-found"]){case g.IfNoFile.ERROR:throw(0,y.logAndThrow)(`No files were found with the provided path: ${t}. No artifacts will be uploaded.`);case g.IfNoFile.IGNORE:this.logger.info(`No files were found with the provided path: ${t}. No artifacts will be uploaded.`);break;case g.IfNoFile.WARN:default:this.logger.warn(`No files were found with the provided path: ${t}. No artifacts will be uploaded.`)}}async upload(e,t){const r=e.paths.filter((e=>e.path)).reduce(((e,t)=>e.concat(t.path,"\n")),"");const{filesToUpload:a,rootDirectory:n}=await this.findFilesToUpload(r);const i=this.validateArtifactName(e.name??t);if(a.length===0){this.noFileFound(e,r);return{artifactName:i,artifactItems:[],failedItems:[],size:0}}else{this.logger.debug(`With the provided path (${r}), there will be ${a.length} file(s) uploaded`);this.logger.debug(`Root artifact directory is ${n}`);return v.create().uploadArtifact(i,a,n,{continueOnError:false})}}};w=i([(0,d.Service)(),o("design:paramtypes",[])],w);t.UploadService=w},5173:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var n=Object.getOwnPropertyDescriptor(t,r);if(!n||("get"in n?!t.__esModule:n.writable||n.configurable)){n={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,n)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var i=this&&this.__decorate||function(e,t,r,a){var n=arguments.length,i=n<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")i=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])i=(n<3?s(i):n>3?s(t,r,i):s(t,r))||i;return n>3&&i&&Object.defineProperty(t,r,i),i};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);n(t,e);return t};var o=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};var p=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};var c;Object.defineProperty(t,"__esModule",{value:true});t.CheckoutService=void 0;const l=r(6229);const d=r(9837);const u=r(8114);const m=s(r(3802));const h=r(5630);const g=p(r(1017));const v=r(7112);const y=r(7616);const b=r(8410);const w=r(293);let x=c=class CheckoutService{constructor(){this.config=m.default.get(l.ConfigurationService);this.logger=m.default.get(d.LoggerService).logger;this.savedCheckedOutState=[];this.currentCheckedOutState=[]}getProjectDir(e){return g.default.join(this.config.getRootFolder(),e.project.replace(/[/\s]/g,"_"))}async cloneNode(e){const t=[];e.clone?.forEach((r=>{const a=this.getProjectDir(e);const n=this.config.getRootFolder();t.push((0,h.copy)(a,g.default.join(n,r)).then((async()=>(0,h.move)(g.default.join(n,r),g.default.join(a,r)))))}));await Promise.all(t)}async checkoutNode(e){if(this.config.skipCheckout(e)){this.logger.info(`${e.project} checkout skipped`);return undefined}const t=this.savedCheckedOutState.find((t=>t.node.project===e.project));if(t?.checkedOut){this.logger.info(`${e.project} already checked out. Continuing...`);t.checkoutInfo.repoDir=this.getProjectDir(e);this.currentCheckedOutState.push(t);return t.checkoutInfo}const r=t?.checkoutInfo??await this.getCheckoutInfo(e);this.logger.debug(`[${e.project}] CheckoutInfo - ${JSON.stringify(r)}`);const a=m.default.get(y.GitCLIService);const n=this.config.getCloneUrl(r.targetGroup,r.targetName);await a.clone(n,r.repoDir,r.targetBranch).catch((t=>{this.currentCheckedOutState.push({node:e,checkoutInfo:r,checkedOut:false});this.logger.debug(JSON.stringify(t));(0,b.logAndThrow)(`[${e.project}] Error cloning ${r.targetGroup}/${r.targetName} and switching to target branch ${r.targetBranch}`)}));if(r.merge){this.logger.debug(`[${e.project}] Merging ${r.sourceGroup}/${r.sourceName}:${r.sourceBranch}\n into ${r.targetGroup}/${r.targetName}:${r.targetBranch}`);const t=this.config.getCloneUrl(r.sourceGroup,r.sourceName);await a.merge(r.repoDir,t,r.sourceBranch).then((async()=>a.rename(r.repoDir,r.sourceBranch))).catch((t=>{this.currentCheckedOutState.push({node:e,checkoutInfo:r,checkedOut:false});this.logger.debug(JSON.stringify(t));(0,b.logAndThrow)(`[${e.project}] Error merging ${r.sourceGroup}/${r.sourceName}:${r.sourceBranch}\n into ${r.targetGroup}/${r.targetName}:${r.targetBranch}`)}))}await this.cloneNode(e);this.logger.info(`${e.project} checked out`);this.currentCheckedOutState.push({node:e,checkoutInfo:r,checkedOut:true});return r}async getCheckoutInfo(e){const t=m.default.get(v.GitAPIService);const r=this.config.getProjectTriggeringTheJob();const a=this.config.getTargetProject();const n={mappedBranch:(0,u.getMappedTarget)(r.project,r.mapping,e.project,e.mapping,a.branch),name:e.project.split("/")[1],group:this.config.getGroupName()??e.project.split("/")[0]};const i=this.config.getSourceProject();const s=await t.getForkName(n.group,i.group,n.name).then((async e=>{const r=await t.hasPullRequest(n.group,n.name,`${i.group}:${i.branch}`,n.mappedBranch);return{forkName:e,hasPullRequest:r}})).catch((e=>{if(e instanceof w.NotFoundError){return{forkName:"",hasPullRequest:false}}throw e}));if(s.hasPullRequest){return{sourceBranch:i.branch,sourceGroup:i.group,sourceName:s.forkName,targetBranch:n.mappedBranch,targetGroup:n.group,targetName:n.name,repoDir:this.getProjectDir(e),merge:true}}const o=await t.hasPullRequest(n.group,n.name,`${n.group}:${i.branch}`,n.mappedBranch);if(o){return{sourceBranch:i.branch,sourceGroup:n.group,sourceName:n.name,targetBranch:n.mappedBranch,targetGroup:n.group,targetName:n.name,repoDir:this.getProjectDir(e),merge:true}}return{sourceBranch:n.mappedBranch,sourceGroup:n.group,sourceName:n.name,targetBranch:n.mappedBranch,targetGroup:n.group,targetName:n.name,repoDir:this.getProjectDir(e),merge:false}}async checkoutDefinitionTreeSequential(){const e=[];for(const t of this.config.nodeChain){const r=await this.checkoutNode(t);const a=await this.getBranchHead(r);e.push({node:t,checkoutInfo:r,branchHead:a})}return e}async checkoutDefinitionTreeParallel(){return Promise.all(this.config.nodeChain.map((async e=>this.checkoutNode(e).then((async t=>{const r=await this.getBranchHead(t);return{node:e,checkoutInfo:t,branchHead:r}})))))}async getBranchHead(e){return!e?"":await m.default.get(y.GitCLIService).head(e.repoDir)}async checkoutDefinitionTree(){return this.config.skipParallelCheckout()?this.checkoutDefinitionTreeSequential():this.checkoutDefinitionTreeParallel()}toJSON(){return this.currentCheckedOutState}fromJSON(e){throw new Error("Use the static method")}static fromJSON(e){return Object.assign(new c,{savedCheckedOutState:e})}};x=c=i([(0,m.Service)(),o("design:paramtypes",[])],x);t.CheckoutService=x},4303:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var n=Object.getOwnPropertyDescriptor(t,r);if(!n||("get"in n?!t.__esModule:n.writable||n.configurable)){n={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,n)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var i=this&&this.__decorate||function(e,t,r,a){var n=arguments.length,i=n<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")i=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])i=(n<3?s(i):n>3?s(t,r,i):s(t,r))||i;return n>3&&i&&Object.defineProperty(t,r,i),i};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);n(t,e);return t};var o=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:true});t.ExecuteCommandService=void 0;const p=s(r(3802));const c=r(4396);const l=r(5676);const d=r(9425);const u=r(9837);const m=r(6696);const h=r(6229);const g=r(6196);let v=class ExecuteCommandService{constructor(e,t,r){this._commandTreatmentDelegator=e;this._commandExecutorDelegator=t;this._configurationService=r;this.logger=p.default.get(u.LoggerService).logger}async executeNodeChain(e,t){return this._configurationService.isParallelExecutionEnabled()?this.executeNodeChainParallel(e,t):this.executeNodeChainSequential(e,t)}async executeCommand(e,t){const r=this._commandTreatmentDelegator.treatCommand(e,this._configurationService.getTreatmentOptions());return this._commandExecutorDelegator.executeCommand(r,t)}async executeNodeCommands(e,t){const r=[];const{node:a,cwd:n}=e;const i=this.getNodeCommands(a,m.ExecutionPhase.BEFORE,this._configurationService.getNodeExecutionLevel(a));const s=this.getNodeCommands(a,m.ExecutionPhase.CURRENT,this._configurationService.getNodeExecutionLevel(a));const o=this.getNodeCommands(a,m.ExecutionPhase.AFTER,this._configurationService.getNodeExecutionLevel(a));let p=this._configurationService.skipExecution(a);p=!await this.executeNodePhase(a,i,p,{...t,cwd:n},r)||p;p=!await this.executeNodePhase(a,s,p,{...t,cwd:n},r)||p;await this.executeNodePhase(a,o,p,{...t,cwd:n},r);return r}getNodeCommands(e,t,r){const a=e[`${t}`];let n;if(a){n=a[`${r}`].length?a[`${r}`]:a[`${g.NodeExecutionLevel.CURRENT}`]}if(!a){this.logger.debug(`No commands defined for project ${e.project} and phase ${t}`)}else if(!n||!n.length){const a=r!==g.NodeExecutionLevel.CURRENT?`${r} or ${g.NodeExecutionLevel.CURRENT}`:g.NodeExecutionLevel.CURRENT;this.logger.debug(`No commands defined for project ${e.project} phase ${t} and level ${a}`)}return n}async executeCommands(e,t,r,a){const n={node:e,executeCommandResults:[]};for(const e of t){n.executeCommandResults.push(r?{startingDate:Date.now(),endingDate:Date.now(),command:e,result:c.ExecutionResult.SKIP,errorMessage:"",time:0}:await this.executeCommand(e,a))}return n}async executeNodePhase(e,t,r,a,n){const i=await this.executeCommands(e,t??[],r,a);n.push(i);if(!this._configurationService.failAtEnd()&&i.executeCommandResults.find((e=>e.result===c.ExecutionResult.NOT_OK))){this.logger.info(`${e.project} failed. Won't execute remaining commands and projects`);return false}return true}nodeExecutionFailed(e){return!!e.find((e=>e.executeCommandResults.find((e=>e.result===c.ExecutionResult.NOT_OK))))}async executeNodeChainSequential(e,t){const r=[];for(const a of e){this.logger.startGroup(`Executing ${a.node.project}`);const e=await this.executeNodeCommands(a);r.push(e);this.logger.info(`Execution summary for ${a.node.project}`);if(t){t(e)}this.logger.endGroup();if(!this._configurationService.failAtEnd()&&this.nodeExecutionFailed(e)){return r}}return r}async executeNodeChainParallel(e,t){const r=[];const a=Math.max(...e.map((e=>e.node.depth)));this.logger.startGroup("Calculating projects that can be executed parallely");const n=e.reduce(((e,t)=>{if(!e[t.node.depth]){e[t.node.depth]=[]}e[t.node.depth].push(t);return e}),{});Object.entries(n).forEach((e=>{this.logger.info(`${parseInt(e[0])+1}. [${e[1].map((e=>e.node.project))}]`)}));this.logger.endGroup();for(let e=0;e<=a;e+=1){const a=n[e].reduce(((e,t)=>{e[t.node.project]=Buffer.alloc(0);return e}),{});const i={};await Promise.all(n[e].map((e=>this.executeNodeCommands(e,{silent:true,listeners:{stdout:t=>{a[e.node.project]=Buffer.concat([a[e.node.project],t])},stderr:t=>{a[e.node.project]=Buffer.concat([a[e.node.project],t])}}}).then((t=>{i[e.node.project]=t;r.push(t)})))));for(const[e,n]of Object.entries(a)){this.logger.startGroup(`Executing ${e}`);this.logger.logger.log(n.toString());this.logger.info(`Execution summary for ${e}`);if(t){t(i[e])}this.logger.endGroup();if(!this._configurationService.failAtEnd()&&this.nodeExecutionFailed(i[e])){return r}}}return r}};v=i([(0,p.Service)(),o("design:paramtypes",[l.CommandTreatmentDelegator,d.CommandExecutorDelegator,h.ConfigurationService])],v);t.ExecuteCommandService=v},652:function(e,t,r){"use strict";var a=this&&this.__decorate||function(e,t,r,a){var n=arguments.length,i=n<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")i=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])i=(n<3?s(i):n>3?s(t,r,i):s(t,r))||i;return n>3&&i&&Object.defineProperty(t,r,i),i};Object.defineProperty(t,"__esModule",{value:true});t.BashExecutor=void 0;const n=r(1514);const i=r(3802);let s=class BashExecutor{async execute(e,t){await(0,n.exec)(e,[],t)}};s=a([(0,i.Service)()],s);t.BashExecutor=s},9425:function(e,t,r){"use strict";var a=this&&this.__decorate||function(e,t,r,a){var n=arguments.length,i=n<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")i=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])i=(n<3?s(i):n>3?s(t,r,i):s(t,r))||i;return n>3&&i&&Object.defineProperty(t,r,i),i};var n=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:true});t.CommandExecutorDelegator=void 0;const i=r(3802);const s=r(652);const o=r(7019);const p=r(4396);const c=r(3678);let l=class CommandExecutorDelegator{constructor(e,t){this._bashExecutor=e;this._exportExecutor=t}async executeCommand(e,t){const r=process.hrtime();const a=Date.now();let n;let i="";try{this.isExport(e)?await this._exportExecutor.execute(e,t):await this._bashExecutor.execute(e,t);n=p.ExecutionResult.OK}catch(e){i=e instanceof Error?e.message:"unknown";n=p.ExecutionResult.NOT_OK}return{startingDate:a,command:e,result:n,errorMessage:i,endingDate:Date.now(),time:(0,c.hrtimeToMs)(r)}}isExport(e){return e.trim().match(/^export .*=/)!==null}};l=a([(0,i.Service)(),n("design:paramtypes",[s.BashExecutor,o.ExportExecutor])],l);t.CommandExecutorDelegator=l},7019:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var n=Object.getOwnPropertyDescriptor(t,r);if(!n||("get"in n?!t.__esModule:n.writable||n.configurable)){n={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,n)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var i=this&&this.__decorate||function(e,t,r,a){var n=arguments.length,i=n<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")i=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])i=(n<3?s(i):n>3?s(t,r,i):s(t,r))||i;return n>3&&i&&Object.defineProperty(t,r,i),i};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);n(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.ExportExecutor=void 0;const o=r(1514);const p=s(r(3802));const c=r(9837);let l=class ExportExecutor{async execute(e,t){const r=new ExpressionCommand(e);process.env[r.variable]=await this.executeExpression(r.expression,t);p.default.get(c.LoggerService).logger.debug(`The variable \`${r.variable}\` has been set to the env with the value \`${process.env[r.variable]}\``)}async executeExpression(e,t){const r=e.match(/`(.*)`/);const a=r?r[1]:undefined;if(a){let e="";const r={...t,listeners:{stdout:t=>{e+=t.toString()}}};await(0,o.exec)(a,[],r);return e}return e.replace(/['"]+/g,"")}};l=i([(0,p.Service)()],l);t.ExportExecutor=l;class ExpressionCommand{constructor(e){const t=this.getCommandArray(e);this._variable=t[1];this._expression=t[2]}getCommandArray(e){const t=e.match(/^export (\w+)=(.*)/);if(!t||t.length!==3){const t=`The export command ${e} is not properly defined. It should be something like "export VARIBLE=expression". Please fix it an try again.`;p.default.get(c.LoggerService).logger.error(t);throw new Error(t)}return t}get variable(){return this._variable}get expression(){return this._expression}}},4191:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.CommandBuilder=void 0;class CommandBuilder{constructor(e,t){this.treatedCommand=e;this.options=t}treat(e){this.treatedCommand=e.treat(this.treatedCommand,this.options);return this}build(){return this.treatedCommand}}t.CommandBuilder=CommandBuilder},5676:function(e,t,r){"use strict";var a=this&&this.__decorate||function(e,t,r,a){var n=arguments.length,i=n<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")i=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])i=(n<3?s(i):n>3?s(t,r,i):s(t,r))||i;return n>3&&i&&Object.defineProperty(t,r,i),i};var n=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:true});t.CommandTreatmentDelegator=void 0;const i=r(3802);const s=r(4191);const o=r(3735);const p=r(6741);const c=r(6495);let l=class CommandTreatmentDelegator{constructor(e,t,r){this._environmentCommandTreatment=e;this._mavenCommandTreatment=t;this._regexCommandTreatment=r}treatCommand(e,t){return new s.CommandBuilder(e,t).treat(this._environmentCommandTreatment).treat(this._mavenCommandTreatment).treat(this._regexCommandTreatment).build()}};l=a([(0,i.Service)(),n("design:paramtypes",[o.EnvironmentCommandTreatment,p.MavenCommandTreatment,c.RegexCommandTreatment])],l);t.CommandTreatmentDelegator=l},3735:function(e,t,r){"use strict";var a=this&&this.__decorate||function(e,t,r,a){var n=arguments.length,i=n<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")i=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])i=(n<3?s(i):n>3?s(t,r,i):s(t,r))||i;return n>3&&i&&Object.defineProperty(t,r,i),i};Object.defineProperty(t,"__esModule",{value:true});t.EnvironmentCommandTreatment=void 0;const n=r(3802);let i=class EnvironmentCommandTreatment{treat(e,t){const r=this.getVariablesFromCommand(e);return r?.length>0?r.reduce(((e,t)=>e.replace(t[0],process.env[t[1]]??"")),e):e}getVariablesFromCommand(e){return[...e.matchAll(/\${{ env\.(\w+) }}/g)]}};i=a([(0,n.Service)()],i);t.EnvironmentCommandTreatment=i},6741:function(e,t,r){"use strict";var a=this&&this.__decorate||function(e,t,r,a){var n=arguments.length,i=n<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")i=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])i=(n<3?s(i):n>3?s(t,r,i):s(t,r))||i;return n>3&&i&&Object.defineProperty(t,r,i),i};Object.defineProperty(t,"__esModule",{value:true});t.MavenCommandTreatment=void 0;const n=r(3802);let i=class MavenCommandTreatment{treat(e,t){return!this.isMavenCommand(e,t?.mavenBinary)?e:`${e} -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -B`}isMavenCommand(e,t="mvn"){return new RegExp(`.*${t} .*`).test(e)}};i=a([(0,n.Service)()],i);t.MavenCommandTreatment=i},6495:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var n=Object.getOwnPropertyDescriptor(t,r);if(!n||("get"in n?!t.__esModule:n.writable||n.configurable)){n={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,n)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var i=this&&this.__decorate||function(e,t,r,a){var n=arguments.length,i=n<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")i=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])i=(n<3?s(i):n>3?s(t,r,i):s(t,r))||i;return n>3&&i&&Object.defineProperty(t,r,i),i};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);n(t,e);return t};var o;Object.defineProperty(t,"__esModule",{value:true});t.RegexCommandTreatment=void 0;const p=s(r(3802));const c=r(9837);let l=o=class RegexCommandTreatment{treat(e,t){if(t?.replaceExpressions){p.default.get(c.LoggerService).logger.debug(`[${o.name}] Replacing command: \`${e}\` by expressions: '${t.replaceExpressions}'`);const r=t.replaceExpressions.reduce(((e,t)=>this.treatReplaceEx(e,t)),e);p.default.get(c.LoggerService).logger.debug(r===e?`[${o.name}] No replacement for \`${e}\``:`[${o.name}] Replaced to: \`${r}\``);return r}else{return e}}treatReplaceEx(e,t){const r=this.getReplacementExpression(t);return e.replace(r.regEx,r.replace)}getReplacementExpression(e){const t=e.split("||");return new ReplacementExpression(this.createRegex(t[0]),t[1])}createRegex(e){const[,t,r]=e.split("/");if(t){return r?new RegExp(t,r):new RegExp(t)}return new RegExp(e)}};l=o=i([(0,p.Service)()],l);t.RegexCommandTreatment=l;class ReplacementExpression{constructor(e,t){this._regEx=e;this._replace=t}get regEx(){return this._regEx}get replace(){return this._replace}}},1055:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.ActionConfiguration=void 0;const a=r(332);const n=r(8410);const i=r(3977);const s=r(8373);const o=r(8114);class ActionConfiguration extends a.BaseConfiguration{loadProject(){if(this.parsedInputs.flowType===s.FlowType.BRANCH){const e=this.parsedInputs.startProject??this.gitConfiguration.repository;const t=e.split("/");const r={branch:this.parsedInputs.branch??this.gitConfiguration.ref,repository:e,name:t[t.length-1],group:this.parsedInputs.group??t[0]};return{source:r,target:r}}else{return super.loadProject()}}loadGitConfiguration(){const e=process.env.GITHUB_SERVER_URL?process.env.GITHUB_SERVER_URL.replace(/\/$/,""):"https://github.com";return{action:process.env.GITHUB_ACTION,actor:process.env.GITHUB_ACTOR,author:process.env.GITHUB_AUTHOR,serverUrl:e,serverUrlWithToken:e.replace("://",`://${this.tokenService.getToken(o.DEFAULT_GITHUB_PLATFORM.id)}@`),jobId:process.env.GITHUB_JOB,ref:process.env.GITHUB_REF,workflow:process.env.GITHUB_WORKFLOW,repository:process.env.GITHUB_REPOSITORY}}async loadGitEvent(){if(this.parsedInputs.flowType===s.FlowType.BRANCH){return{}}if(process.env.GITHUB_EVENT_PATH){this.logger.debug("Getting pull request information");const e=await(0,i.readFile)(process.env.GITHUB_EVENT_PATH,{encoding:"utf8"});return JSON.parse(e).pull_request}(0,n.logAndThrow)("Make sure you are running it in a github environment")}loadToken(){if(process.env.GITHUB_TOKEN){this.tokenService.setToken(o.DEFAULT_GITHUB_PLATFORM.id,process.env.GITHUB_TOKEN);this.tokenService.setGithubTokenPool(o.DEFAULT_GITHUB_PLATFORM.id,[process.env.GITHUB_TOKEN])}else{(0,n.logAndThrow)("A github token is needed")}}getFlowType(){return this.parsedInputs.flowType}}t.ActionConfiguration=ActionConfiguration},332:function(e,t,r){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.BaseConfiguration=void 0;const n=r(8373);const i=r(544);const s=r(8081);const o=r(9837);const p=r(8410);const c=r(8114);const l=a(r(3802));class BaseConfiguration{constructor(){this.logger=l.default.get(o.LoggerService).logger;this.tokenService=l.default.get(i.GitTokenService);this._defaultPlatform=c.PlatformType.GITHUB;this._parsedInputs=n.defaultInputValues;this._gitEventData={};this._gitConfiguration={};this._sourceProject={};this._targetProject={}}async init(){this._parsedInputs=this.loadParsedInput();this.loadToken();this._gitEventData=await this.loadGitEvent();this._gitConfiguration=this.loadGitConfiguration();const{source:e,target:t}=this.loadProject();this._sourceProject=e;this._targetProject=t}get gitEventData(){return this._gitEventData}get gitConfiguration(){return this._gitConfiguration}get sourceProject(){return this._sourceProject}get targetProject(){return this._targetProject}get parsedInputs(){return this._parsedInputs}loadProject(){return{source:{branch:this.gitEventData.head.ref,repository:this.gitEventData.head.repo?.full_name,name:this.gitEventData.head.repo?.name,group:this.gitEventData.head.repo?.owner?.login},target:{branch:this.gitEventData.base.ref,repository:this.gitEventData.base.repo.full_name,name:this.gitEventData.base.repo.name,group:this.gitEventData.base.repo.owner.login}}}loadParsedInput(){const e=l.default.get(s.InputService).inputs;e.customCommandTreatment?.forEach((e=>{if(e.split("||").length!==2){(0,p.logAndThrow)("Invalid format for custom command treatment. Required format: Regex||ReplaceRegex")}}));if(e.startProject&&e.startProject.split("/").length!==2){(0,p.logAndThrow)("Invalid start project. Start project must be of the form OWNER/PROJECT")}this.logger.debug(`Received input: ${JSON.stringify(e)}`);return e}getToolType(){(0,p.logAndThrow)("tools are defined only in CLI")}getDefaultGithubConfig(){return{id:this.parsedInputs?.defaultGithubId??c.DEFAULT_GITHUB_PLATFORM.id,tokenId:this.parsedInputs?.defaultGithubTokenId??c.DEFAULT_GITHUB_PLATFORM.tokenId,apiUrl:this.parsedInputs?.defaultGithubApiUrl??process.env.GITHUB_API_URL??c.DEFAULT_GITHUB_PLATFORM.apiUrl,serverUrl:this.parsedInputs?.defaultGithubServeUrl??process.env.GITHUB_SERVER_URL??c.DEFAULT_GITHUB_PLATFORM.serverUrl,type:c.PlatformType.GITHUB}}getDefaultGitlabConfig(){return{id:this.parsedInputs?.defaultGitlabId??c.DEFAULT_GITLAB_PLATFORM.id,tokenId:this.parsedInputs?.defaultGitlabTokenId??c.DEFAULT_GITLAB_PLATFORM.tokenId,apiUrl:this.parsedInputs?.defaultGitlabApiUrl??process.env.CI_API_URL??c.DEFAULT_GITLAB_PLATFORM.apiUrl,serverUrl:this.parsedInputs?.defaultGitlabServeUrl??process.env.CI_SERVER_URL??c.DEFAULT_GITLAB_PLATFORM.serverUrl,type:c.PlatformType.GITLAB}}getDefaultPlatformConfig(){if(this._defaultPlatform===c.PlatformType.GITLAB){return this.getDefaultGitlabConfig()}return this.getDefaultGithubConfig()}}t.BaseConfiguration=BaseConfiguration},2336:function(e,t,r){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.CLIConfiguration=void 0;const n=r(7153);const i=r(8373);const s=r(332);const o=r(7112);const p=r(8410);const c=r(8114);const l=a(r(3802));const d=/^(https?:\/\/.+\/)([^/\s]+)\/([^/\s]+)\/pull\/(\d+)$/;const u=/^(https?:\/\/.+\/)([^/\s]+)\/([^/\s]+)\/-\/merge_requests\/(\d+)$/;class CLIConfiguration extends s.BaseConfiguration{loadProject(){if(this.parsedInputs.CLICommand===n.CLIActionType.TOOLS){return{source:{},target:{}}}else if(this.parsedInputs.CLISubCommand===i.FlowType.BRANCH){const e=this.parsedInputs.startProject.split("/");const t={branch:this.parsedInputs.branch,name:e[e.length-1],group:this.parsedInputs.group??e[0],repository:this.parsedInputs.startProject};return{source:t,target:t}}else{return super.loadProject()}}loadGitConfiguration(){const e=process.env.GITHUB_SERVER_URL?process.env.GITHUB_SERVER_URL.replace(/\/$/,""):"https://github.com";const t=process.env.CI_SERVER_URL?.replace(/\/$/,"");const r=t?t:e;const a=this.getDefaultToken(r);let n={serverUrl:r,serverUrlWithToken:r.replace("://",`://${a}@`)};if(this.parsedInputs.CLISubCommand===i.FlowType.BRANCH){const e=this.parsedInputs.group??this.parsedInputs.startProject?.split("/")[0];if(!e){(0,p.logAndThrow)("Specify group option or set project name as GROUP_NAME/REPO_NAME")}n={...n,actor:e,ref:this.parsedInputs.branch}}return n}async loadGitEvent(){if(this.parsedInputs.CLICommand===n.CLIActionType.TOOLS){return{}}if(this.parsedInputs.CLISubCommand===i.FlowType.BRANCH){process.env["GITHUB_HEAD_REF"]=this.parsedInputs.branch;process.env["GITHUB_BASE_REF"]=this.parsedInputs.branch;process.env["GITHUB_REPOSITORY"]=this.parsedInputs.startProject;process.env["GITHUB_ACTOR"]=this.parsedInputs.group??this.parsedInputs.startProject.split("/")[0];process.env["CI_MERGE_REQUEST_SOURCE_BRANCH_NAME"]=this.parsedInputs.branch;process.env["CI_MERGE_REQUEST_TARGET_BRANCH_NAME"]=this.parsedInputs.branch;process.env["CI_PROJECT_ID"]=this.parsedInputs.startProject;process.env["CI_PROJECT_NAMESPACE"]=this.parsedInputs.group??this.parsedInputs.startProject.split("/")[0];return{}}if(!this.parsedInputs.url){(0,p.logAndThrow)("If running from the CLI, event url needs to be defined")}const e=this.isGitlabUrl(this.parsedInputs.url)?this.parsedInputs.url.match(u):this.parsedInputs.url.match(d);if(e){this.logger.debug("Getting pull request information");const t=await l.default.get(o.GitAPIService).getPullRequest(e[2],e[3],parseInt(e[4]));process.env["GITHUB_SERVER_URL"]=e[1];delete process.env["GITHUB_ACTION"];process.env["GITHUB_ACTOR"]=t.head.user.login;process.env["GITHUB_HEAD_REF"]=t.head.ref;process.env["GITHUB_BASE_REF"]=t.base.ref;process.env["GITHUB_REPOSITORY"]=t.base.repo.full_name;process.env["GITHUB_REF"]=`refs/pull/${e[4]}/merge`;process.env["CI_SERVER_URL"]=e[1];process.env["CI_PROJECT_NAMESPACE"]=t.head.user.login;process.env["CI_MERGE_REQUEST_SOURCE_BRANCH_NAME"]=t.head.ref;process.env["CI_MERGE_REQUEST_TARGET_BRANCH_NAME"]=t.base.ref;process.env["CI_PROJECT_ID"]=t.base.repo.full_name;process.env["CI_MERGE_REQUEST_REF_PATH"]=`refs/merge-requests/${e[4]}/merge`;return t}(0,p.logAndThrow)(`Invalid event url ${this.parsedInputs.url}. URL must be a github pull request event url or a github tree url`)}loadToken(){const e=this.getDefaultPlatformConfig();let t;if(process.env[e.tokenId]){t=[process.env[e.tokenId]]}if(this.parsedInputs.token&&this.parsedInputs.token.length>0){t=this.parsedInputs.token}if(!t){(0,p.logAndThrow)("Either a github or gitlab token must be set")}if(e.type===c.PlatformType.GITHUB){this.tokenService.setGithubTokenPool(e.id,t)}this.tokenService.setToken(e.id,t[0])}loadParsedInput(){const e=super.loadParsedInput();this._defaultPlatform=this.isGitlabUrl(e.url)?c.PlatformType.GITLAB:c.PlatformType.GITHUB;return e}getFlowType(){const e=this.parsedInputs.CLISubCommand;if(Object.values(i.FlowType).includes(e)){return e}(0,p.logAndThrow)("The CLI subcommand is a tool command. No flow defined")}getToolType(){const e=this.parsedInputs.CLISubCommand;if(Object.values(n.ToolType).includes(e)){return e}(0,p.logAndThrow)("The CLI subcommand is a build command. No tools defined")}setServerUrlWithToken(){const e=this.getDefaultToken(this.gitConfiguration.serverUrl);this._gitConfiguration={...this.gitConfiguration,serverUrlWithToken:this.gitConfiguration.serverUrl?.replace("://",`://${e}@`)}}fromJSON(e){throw new Error("Use the static method")}toJSON(){return{_gitConfiguration:{...this._gitConfiguration,serverUrlWithToken:""},_gitEventData:this._gitEventData,_defaultPlatform:this._defaultPlatform,_parsedInputs:this._parsedInputs,_sourceProject:this._sourceProject,_targetProject:this._targetProject}}static fromJSON(e){const t=Object.assign(new CLIConfiguration,e);t.loadToken();t.setServerUrlWithToken();return t}isGitlabUrl(e){return e&&u.test(e)}getDefaultToken(e){return this.tokenService.getToken(this.isGitlabUrl(e)?c.DEFAULT_GITLAB_PLATFORM.id:c.DEFAULT_GITHUB_PLATFORM.id)}}t.CLIConfiguration=CLIConfiguration},6229:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var n=Object.getOwnPropertyDescriptor(t,r);if(!n||("get"in n?!t.__esModule:n.writable||n.configurable)){n={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,n)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var i=this&&this.__decorate||function(e,t,r,a){var n=arguments.length,i=n<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")i=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])i=(n<3?s(i):n>3?s(t,r,i):s(t,r))||i;return n>3&&i&&Object.defineProperty(t,r,i),i};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);n(t,e);return t};var o=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};var p;Object.defineProperty(t,"__esModule",{value:true});t.ConfigurationService=void 0;const c=s(r(3802));const l=r(6196);const d=r(6759);const u=r(6848);const m=r(2336);const h=r(1055);const g=r(8410);const v=r(8373);const y=r(8114);const b=r(6012);const w=r(7153);const x=r(544);let E=p=class ConfigurationService{constructor(){switch(c.default.get(d.constants.CONTAINER.ENTRY_POINT)){case u.EntryPoint.CLI:this.configuration=new m.CLIConfiguration;break;case u.EntryPoint.GITHUB_EVENT:this.configuration=new h.ActionConfiguration;break;default:(0,g.logAndThrow)("Invalid entrypoint. Please contact with the administrator or report and issue to build-chain tool repository")}this._nodeChain=[];this._definitionFile={version:"2.1"};this.tokenService=c.default.get(x.GitTokenService)}get nodeChain(){return this._nodeChain}get definitionFile(){return this._definitionFile}async init(){await this.configuration.init();const e=new b.DefinitionFileReader(this.configuration);this._definitionFile=await e.getDefinitionFile();this._nodeChain=await e.generateNodeChain(this.getStarterProjectName())}getStarterProjectName(){return this.getStarterProjectNameFromInput()??process.env.GITHUB_REPOSITORY??this.configuration.gitEventData.base?.repo.full_name}getStarterProjectNameFromInput(){return this.configuration.parsedInputs.startProject}getProjectTriggeringTheJobName(){return process.env.GITHUB_REPOSITORY??this.configuration.gitEventData.base.repo.full_name??this.configuration.parsedInputs.startProject}isNodeStarter(e){return e.project===this.getStarterProjectName()}isNodeTriggeringTheJob(e){return e.project===this.getProjectTriggeringTheJobName()}getStarterNode(){const e=this.nodeChain.find((e=>this.isNodeStarter(e)));if(!e){(0,g.logAndThrow)(`There's no project ${this.getStarterProjectName()} in the chain\n This is normally due the project starting the job (or the one selected to behave like so it's not in the project tree information.\n Please choose a different project like starter or define the project ${this.getStarterProjectName()} in the tree.`)}return e}getProjectTriggeringTheJob(){return this.nodeChain.find((e=>this.isNodeTriggeringTheJob(e)))??this.getStarterNode()}getNodeExecutionLevel(e){const t=this.nodeChain.indexOf(this.getStarterNode());const r=this.nodeChain.indexOf(e);if(rt){return l.NodeExecutionLevel.DOWNSTREAM}else{return l.NodeExecutionLevel.CURRENT}}skipExecution(e){if(this.configuration.parsedInputs.skipExecution){return true}return this.configuration.parsedInputs.skipProjectExecution?this.configuration.parsedInputs.skipProjectExecution.includes(e.project):false}skipCheckout(e){if(this.configuration.parsedInputs.skipCheckout){return true}return this.configuration.parsedInputs.skipProjectCheckout?this.configuration.parsedInputs.skipProjectCheckout.includes(e.project):false}skipParallelCheckout(){return this.configuration.parsedInputs.skipParallelCheckout}isParallelExecutionEnabled(){return this.configuration.parsedInputs.enableParallelExecution}getTreatmentOptions(){if(this.configuration.parsedInputs.customCommandTreatment){return{replaceExpressions:this.configuration.parsedInputs.customCommandTreatment}}return{}}getTargetProject(){return this.configuration.targetProject}getSourceProject(){return this.configuration.sourceProject}getRootFolder(){return this.configuration.parsedInputs.outputFolder??process.env.GITHUB_WORKSPACE??process.cwd()}getFlowType(){return this.configuration.getFlowType()}getCloneUrl(e,t){const r=this.getPlatform(e,t);const a=this.tokenService.getToken(r.id,r.tokenId);const n=r.type===y.PlatformType.GITLAB?"oauth2:":"";const i=a?r.serverUrl.replace("://",`://${n}${a}@`):r.serverUrl;return`${i}/${e}/${t}`}getPre(){return this.definitionFile.pre}getPost(){return this.definitionFile.post}getDefinitionFileUrl(){return this.configuration.parsedInputs.definitionFile}getEventUrl(){return this.getFlowType()===v.FlowType.BRANCH?"":this.configuration.gitEventData.html_url}getGroupName(){return this.getFlowType()===v.FlowType.BRANCH?this.configuration.parsedInputs.group:undefined}getToolType(){return this.configuration.getToolType()}isToolsCommand(){return this.configuration.parsedInputs.CLICommand===w.CLIActionType.TOOLS}failAtEnd(){return this.configuration.parsedInputs.failAtEnd??false}getPlatform(e,t){const r=this.nodeChain.find((r=>r.project===`${e}/${t}`))?.platformId;let a;if(r===y.DEFAULT_GITHUB_PLATFORM.id){a=y.DEFAULT_GITHUB_PLATFORM}else if(r===y.DEFAULT_GITLAB_PLATFORM.id){a=y.DEFAULT_GITLAB_PLATFORM}else{a=this.getPlatformById(r)}return a??this.configuration.getDefaultPlatformConfig()}getPlatformById(e){return this.definitionFile.platforms?.find((t=>t.id===e))}getProjectsToRecheckout(){return this.configuration.parsedInputs?.recheckout??[]}toJSON(){if(this.configuration instanceof m.CLIConfiguration){return{configuration:this.configuration.toJSON(),_definitionFile:this._definitionFile,_nodeChain:this._nodeChain}}throw new Error("Serialization is enabled only for CLI")}fromJSON(e){throw new Error("Use static method")}static fromJSON(e){return Object.assign(new p,{...e,configuration:m.CLIConfiguration.fromJSON(e.configuration)})}};E=p=i([(0,c.Service)(),o("design:paramtypes",[])],E);t.ConfigurationService=E},6012:function(e,t,r){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.DefinitionFileReader=void 0;const n=r(7153);const i=r(8373);const s=r(544);const o=r(9837);const p=r(8410);const c=r(8114);const l=a(r(3802));class DefinitionFileReader{constructor(e){this.configuration=e;this.logger=l.default.get(o.LoggerService).logger;this.tokenService=l.default.get(s.GitTokenService);this.defaultPlatform=e.getDefaultPlatformConfig()}async getUpstreamOrFullDownstreamProjects(e,t){if(this.configuration.parsedInputs.fullProjectDependencyTree){return(0,c.getFullDownstreamProjects)(this.configuration.parsedInputs.definitionFile,e,t)}else{return(0,c.getUpstreamProjects)(this.configuration.parsedInputs.definitionFile,e,t)}}async generateNodeChainWithOptions(e,t){let r;switch(this.configuration.getFlowType()){case i.FlowType.BRANCH:{r=await this.getUpstreamOrFullDownstreamProjects(e,t);break}case i.FlowType.CROSS_PULL_REQUEST:{r=await(0,c.getUpstreamProjects)(this.configuration.parsedInputs.definitionFile,e,t);break}case i.FlowType.FULL_DOWNSTREAM:{r=await(0,c.getFullDownstreamProjects)(this.configuration.parsedInputs.definitionFile,e,t);break}case i.FlowType.SINGLE_PULL_REQUEST:{const a=await(0,c.getTreeForProject)(this.configuration.parsedInputs.definitionFile,e,t);if(!a){throw new Error("Starting project not found")}r=[a]}}return r}async getDefinitionFileForBuild(){try{return await(0,c.readDefinitionFile)(this.configuration.parsedInputs.definitionFile,{...this.configuration.sourceProject,token:this.tokenService.getToken(this.defaultPlatform.id)})}catch(e){this.logger.debug("Did not find correct definition file, trying target")}try{return await(0,c.readDefinitionFile)(this.configuration.parsedInputs.definitionFile,{...this.configuration.targetProject,token:this.tokenService.getToken(this.defaultPlatform.id)})}catch(e){this.logger.debug("Did not find correct definition file, trying with default placeholder values")}try{return await(0,c.readDefinitionFile)(this.configuration.parsedInputs.definitionFile,{token:this.tokenService.getToken(this.defaultPlatform.id)})}catch(e){(0,p.logAndThrow)(`Invalid definition file. ${e}`)}}async getDefinitionFileForTools(){switch(this.configuration.getToolType()){case n.ToolType.PROJECT_LIST:return this.getDefinitionFileForBuild();case n.ToolType.PLAN:case n.ToolType.RESUME:return{version:"2.1"};default:(0,p.logAndThrow)(`Invalid tool ${this.configuration.getToolType()}`)}}async generateNodeChainForBuild(e){try{return await this.generateNodeChainWithOptions(e,{...this.configuration.sourceProject,token:this.tokenService.getToken(this.defaultPlatform.id)})}catch(e){this.logger.debug("Did not find correct definition on file, trying target")}try{return await this.generateNodeChainWithOptions(e,{...this.configuration.targetProject,token:this.tokenService.getToken(this.defaultPlatform.id)})}catch(e){this.logger.debug("Did not find correct definition file, trying with default placeholder values")}try{return await this.generateNodeChainWithOptions(e,{token:this.tokenService.getToken(this.defaultPlatform.id)})}catch(e){(0,p.logAndThrow)(`Invalid definition file. ${e}`)}}async generateNodeChainForTools(e){switch(this.configuration.getToolType()){case n.ToolType.PROJECT_LIST:if(e){return this.getUpstreamOrFullDownstreamProjects(e,{token:this.tokenService.getToken(this.defaultPlatform.id)})}throw(0,p.logAndThrow)("Start project needs to be defined or build chain must be run in a Github environment");case n.ToolType.PLAN:case n.ToolType.RESUME:return[];default:(0,p.logAndThrow)(`Invalid tool ${this.configuration.getToolType()}`)}}async generateNodeChain(e){if(this.configuration.parsedInputs.CLICommand===n.CLIActionType.TOOLS){return this.generateNodeChainForTools(e)}else{if(e){return this.generateNodeChainForBuild(e)}throw(0,p.logAndThrow)("Start project needs to be defined or build chain must be run in a Github environment")}}async getDefinitionFile(){if(this.configuration.parsedInputs.CLICommand===n.CLIActionType.TOOLS){return this.getDefinitionFileForTools()}else{return this.getDefinitionFileForBuild()}}}t.DefinitionFileReader=DefinitionFileReader},6298:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var n=Object.getOwnPropertyDescriptor(t,r);if(!n||("get"in n?!t.__esModule:n.writable||n.configurable)){n={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,n)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var i=this&&this.__decorate||function(e,t,r,a){var n=arguments.length,i=n<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")i=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])i=(n<3?s(i):n>3?s(t,r,i):s(t,r))||i;return n>3&&i&&Object.defineProperty(t,r,i),i};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);n(t,e);return t};var o=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};var p;Object.defineProperty(t,"__esModule",{value:true});t.FlowService=void 0;const c=r(4396);const l=r(6696);const d=r(3947);const u=r(7774);const m=r(5173);const h=r(4303);const g=r(6229);const v=r(9837);const y=s(r(3802));let b=p=class FlowService{constructor(){this.configService=y.default.get(g.ConfigurationService);this.checkoutService=y.default.get(m.CheckoutService);this.executor=y.default.get(h.ExecuteCommandService);this.artifactService=y.default.get(u.ArtifactService);this.logger=y.default.get(v.LoggerService).logger;this.savedExecutionResult=d.defaultSerializedFlowService;this.currentExecutionResult=d.defaultSerializedFlowService}async run(){this.logger.startGroup("Execution Plan");this.printExecutionPlan();if(this.savedExecutionResult.resumeFrom!==-1){this.logger.info(`Continuing execution from ${this.configService.nodeChain[this.savedExecutionResult.resumeFrom].project}`)}this.logger.endGroup();this.logger.startGroup(`Checking out ${this.configService.getStarterProjectName()} and its dependencies (${this.configService.nodeChain.length} projects in total). It can take some time.`);const e=await this.checkoutService.checkoutDefinitionTree();this.logger.endGroup();this.logger.startGroup("Checkout summary");this.printCheckoutSummary(e);this.logger.endGroup();const t=this.savedExecutionResult.resumeFrom===-1?this.savedExecutionResult.executionResult.length:this.savedExecutionResult.resumeFrom;const r=this.configService.nodeChain.slice(t).map((t=>({node:t,cwd:e.find((e=>e.node.project===t.project)).checkoutInfo?.repoDir})));const a=this.savedExecutionResult.executionResult.slice(0,t);a.forEach((e=>{this.logger.startGroup(`Already executed ${e[0].node.project} successfully in the previous run. Printing summary`);this.printExecutionSummary(e);this.logger.endGroup()}));const n=await this.executor.executeNodeChain(r,this.printExecutionSummary.bind(this));this.currentExecutionResult={...this.currentExecutionResult,executionResult:a.concat(n)};this.logger.startGroup("Uploading artifacts");const i=await this.artifactService.uploadNodes(this.configService.nodeChain,this.configService.getStarterNode());this.logger.endGroup();return{checkoutInfo:e,artifactUploadResults:i,executionResult:this.currentExecutionResult.executionResult}}toJSON(){const e=this.currentExecutionResult.executionResult.findIndex((e=>!!e.find((e=>!!e.executeCommandResults.find((e=>e.result===c.ExecutionResult.NOT_OK))))));return{...this.currentExecutionResult,resumeFrom:e}}fromJSON(e){throw new Error("Use static method")}static fromJSON(e){return Object.assign(new p,{savedExecutionResult:e})}printExecutionPlan(){this.logger.info(`${this.configService.nodeChain.length} projects will be executed`);this.configService.nodeChain.forEach((e=>{const t=this.configService.getNodeExecutionLevel(e);this.logger.info(`[${e.project}]`);this.logger.info(`\t Level type: ${t}`);if(this.configService.skipExecution(e)){this.logger.info("\t No command will be executed (this project will be skipped)")}else{const r=this.executor.getNodeCommands(e,l.ExecutionPhase.BEFORE,t);const a=this.executor.getNodeCommands(e,l.ExecutionPhase.CURRENT,t);const n=this.executor.getNodeCommands(e,l.ExecutionPhase.AFTER,t);if(r?.length){this.logger.info(`\t [${l.ExecutionPhase.BEFORE}]`);this.logger.info(`\t\t ${r.join("\n")}`)}if(a?.length){this.logger.info(`\t [${l.ExecutionPhase.CURRENT}]`);this.logger.info(`\t\t ${a.join("\n")}`)}if(n?.length){this.logger.info(`\t [${l.ExecutionPhase.AFTER}]`);this.logger.info(`\t\t ${n.join("\n")}`)}}}))}printCheckoutSummary(e){e.forEach((e=>{this.logger.info(`[${e.node.project}]`);if(e.checkoutInfo){this.logger.info(`\t Project taken from ${e.checkoutInfo.targetGroup}/${e.checkoutInfo.targetName}:${e.checkoutInfo.targetBranch} (Branch HEAD ${e.branchHead?.trim()})`);if(e.checkoutInfo.merge){this.logger.info(`\t Merged ${e.checkoutInfo.sourceGroup}/${e.checkoutInfo.sourceName}:${e.checkoutInfo.sourceBranch} into branch ${e.checkoutInfo.targetBranch}`)}}else{this.logger.info("\t This project wasn't checked out")}}))}printExecutionSummary(e){this.printExecutionSummaryForPhase(e[0],l.ExecutionPhase.BEFORE);this.printExecutionSummaryForPhase(e[1],l.ExecutionPhase.CURRENT);this.printExecutionSummaryForPhase(e[2],l.ExecutionPhase.AFTER)}printExecutionSummaryForPhase(e,t){if(this.isNodeExecutionSkipped(e)){this.logger.info(`[${t.toUpperCase()}] Skipped ${e.node.project}`)}else{if(!e.executeCommandResults.length){this.logger.info(`[${t.toUpperCase()}] No commands were found for ${e.node.project}`)}e.executeCommandResults.forEach((r=>{this.logger.startGroup(`[${t.toUpperCase()}] [${e.node.project}] ${r.command}`);this.logger.info(`${r.result} [Executed in ${r.time} ms]`);if(r.result===c.ExecutionResult.NOT_OK){this.logger.error(r.errorMessage)}this.logger.endGroup()}))}}isNodeExecutionSkipped(e){return!!e.executeCommandResults.find((e=>e.result===c.ExecutionResult.SKIP))}};b=p=i([(0,y.Service)(),o("design:paramtypes",[])],b);t.FlowService=b},376:function(e,t,r){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.BaseGitAPIClient=void 0;const n=r(544);const i=r(9837);const s=a(r(3802));class BaseGitAPIClient{constructor(e,t){this.tokenService=s.default.get(n.GitTokenService);this.tokenServiceId=t;this.baseUrl=e;this.logger=s.default.get(i.LoggerService).logger}}t.BaseGitAPIClient=BaseGitAPIClient},69:function(e,t,r){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.GerritAPIClient=void 0;const n=r(376);const i=a(r(8757));class GerritAPIClient extends n.BaseGitAPIClient{constructor(e,t){super(e,t);this.client=i.default.create({baseURL:this.baseUrl,headers:{Authorization:`Basic ${this.tokenService.getToken(t)}`,"User-Agent":"kiegroup/github-build-chain-action"}})}get repos(){return{getBranch:this.getBranch.bind(this),get:this.getRepo.bind(this),listForkName:this.listForkName.bind(this),getForkNameForTargetRepoGivenSourceOwner:this.getForkNameForTargetRepoGivenSourceOwner.bind(this)}}get pulls(){return{list:this.listPulls.bind(this),get:this.getPullRequest.bind(this)}}async getBranch(e){const t=this.getProjectId(e.owner,e.repo);const{data:r,status:a}=await this.client.get(`/projects/${t}/branches/${e.branch}`);return{data:r,status:a}}async getRepo(e){const t=this.getProjectId(e.owner,e.repo);const{data:r,status:a}=await this.client.get(`/projects/${t}`);return{data:r,status:a}}async listForkName(e){this.logger.debug("Gerrit does not have the concept of forking. Returning empty array");return{status:200,data:[]}}async getForkNameForTargetRepoGivenSourceOwner(e){this.logger.debug("Gerrit does not have the concept of forking. Returning undefined");return{status:200,data:undefined}}async listPulls(e){let t;switch(e.state){case"opened":t="open";break;case"closed":case"merged":t="merged"}let r=`project:${e.owner}/${e.repo}`;if(t){r+=`+status:${t}`}if(e.base){r+=`+branch:${e.base}`}const{data:a,status:n}=await this.client.get("/changes/",{params:{q:r}});return{data:a,status:n}}async getPullRequest(e){const t=this.getProjectId(e.owner,e.repo);const{data:r,status:a}=await this.client.get(`/changes/${t}~${e.pull_number}`);const n=r;return{data:{html_url:`${n[n.current_revision].fetch["anonymous http"].url}${n[n.current_revision].web_links[1].url}`,head:{user:{login:e.owner},ref:n.current_revision},base:{ref:n.branch,repo:{full_name:`${e.owner}/${e.repo}`,name:e.repo,owner:{login:e.owner}}}},status:a}}getProjectId(e,t){return encodeURIComponent(`${e}/${t}`)}}t.GerritAPIClient=GerritAPIClient},6455:function(e,t,r){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.GitAPIClient=void 0;const n=r(6229);const i=r(69);const s=r(544);const o=r(8743);const p=r(5281);const c=r(8114);const l=a(r(3802));class GitAPIClient{constructor(){this.config=l.default.get(n.ConfigurationService);this.gitTokenService=l.default.get(s.GitTokenService);this.clients={}}rest(e,t){const r=this.config.getPlatform(e,t);if(!this.clients[r.id]){this.gitTokenService.setTokenUsingEnv(r.id,r.tokenId);switch(r.type){case c.PlatformType.GITHUB:this.clients[r.id]=new o.GitHubAPIClient(r.apiUrl,r.id);break;case c.PlatformType.GITLAB:this.clients[r.id]=new p.GitlabAPIClient(r.apiUrl,r.id);break;case c.PlatformType.GERRIT:this.clients[r.id]=new i.GerritAPIClient(r.apiUrl,r.id);break;default:throw new Error(`${r} is not supported`)}}return this.clients[r.id]}}t.GitAPIClient=GitAPIClient},7112:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var n=Object.getOwnPropertyDescriptor(t,r);if(!n||("get"in n?!t.__esModule:n.writable||n.configurable)){n={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,n)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var i=this&&this.__decorate||function(e,t,r,a){var n=arguments.length,i=n<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")i=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])i=(n<3?s(i):n>3?s(t,r,i):s(t,r))||i;return n>3&&i&&Object.defineProperty(t,r,i),i};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);n(t,e);return t};var o=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:true});t.GitAPIService=void 0;const p=r(293);const c=r(9837);const l=r(8410);const d=r(537);const u=s(r(3802));const m=r(6455);let h=class GitAPIService{constructor(){this.logger=u.default.get(c.LoggerService).logger;this.client=new m.GitAPIClient}async doesBranchExist(e,t,r){try{this.logger.debug(`Making a github API call to get branch ${r} for ${e}/${t}`);await this.client.rest(e,t).repos.getBranch({owner:e,repo:t,branch:r});return true}catch(a){this.logger.warn(this.getErrorMessage(a,`project github.com/${e}/${t}:${r} does not exist. It's not necessarily an error.`));return false}}async hasPullRequest(e,t,r,a){let n={owner:e,repo:t,state:"opened"};if(!a&&!r){(0,l.logAndThrow)(`[${e}/${t}] Either head or base needs to be defined while requesting pull request information`)}if(a){n={...n,base:a}}if(r){n={...n,head:r}}try{this.logger.debug(`Making a github API call to check whether there is any open pull request from ${r} to ${a} for ${e}/${t}`);const{status:i,data:s}=await this.client.rest(e,t).pulls.list(n);return i===200&&s.length>0}catch(n){let i=`Error getting pull request list from https://api.github.com/repos/${e}/${t}/pulls?state=open`;if(a){i+=`&base=${a}`}if(r){i+=`&head=${r}`}this.logger.error(this.getErrorMessage(n,i));throw n}}async getForkName(e,t,r){try{this.logger.info(`Checking if ${e}/${r} is forked to ${t}/${r}`);const a=await this.checkIfRepositoryExists(t,r);if(a){this.logger.info(`Fork ${t}/${r} found.`);return a}else if(e!==t){this.logger.info(`Fork ${t}/${r} does not exist. Trying to find a fork with a different name in ${t}`);const a=(await this.client.rest(e,r).repos.getForkNameForTargetRepoGivenSourceOwner({targetOwner:e,targetRepo:r,sourceOwner:t})).data;if(a){this.logger.info(`Fork ${t}/${a} found from ${e}/${r}`);return a}}throw new p.NotFoundError}catch(a){this.logger.info(`Fork for ${e}/${r} not found where owner is ${t}`);throw a}}async getPullRequest(e,t,r){try{this.logger.debug(`Making a github API call to get pull request info for ${e}/${t} PR #${r}`);const{data:a}=await this.client.rest(e,t).pulls.get({owner:e,repo:t,pull_number:r});return a}catch(a){this.logger.error(this.getErrorMessage(a,`Failed to fetch pull ${r} for ${e}/${t}.`));throw a}}async checkIfRepositoryExists(e,t){try{this.logger.debug(`Making a github API call to check whether ${e}/${t} exists`);await this.client.rest(e,t).repos.get({owner:e,repo:t});return t}catch(r){this.logger.debug(`Failed to get ${e}/${t}, it is not necessarily an error`);return undefined}}getErrorMessage(e,t){let r;if(e instanceof d.RequestError){switch(e.status){case 401:r="Failed to authenticate with provided token, please use --token argument to provide a new one. You can also check your GITHUB_TOKEN environment variable and check whether the provided token is still valid.";break;case 404:r="Failed to fetch GitHub resource, please check if resource you requested does exits, the URL used in -u argument is valid, and if the token you are using have permissions to access it.";break;case 403:r="Failed to fetch resource. Either your github token does not have access to the requested resource or you have reached your github api rate limit.";break;default:}}return r?`${t} Reason: ${r}`:t}};h=i([(0,u.Service)(),o("design:paramtypes",[])],h);t.GitAPIService=h},7616:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var n=Object.getOwnPropertyDescriptor(t,r);if(!n||("get"in n?!t.__esModule:n.writable||n.configurable)){n={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,n)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var i=this&&this.__decorate||function(e,t,r,a){var n=arguments.length,i=n<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")i=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])i=(n<3?s(i):n>3?s(t,r,i):s(t,r))||i;return n>3&&i&&Object.defineProperty(t,r,i),i};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);n(t,e);return t};var o=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};var p=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.GitCLIService=void 0;const c=p(r(9103));const l=s(r(3802));const d=p(r(7147));const u=r(9837);let m=class GitCLIService{constructor(){this.logger=l.default.get(u.LoggerService).logger}git(e,t){const r={...e?{baseDir:e}:{},...t?{errors:t}:{}};return(0,c.default)(r).addConfig("user.name","Github").addConfig("user.email","noreply@github.com")}async version(){const e=await(0,c.default)().raw("version");const t=e.match(/(\d+\.\d+(\.\d+)?)/);return t?t[1]:undefined}async clone(e,t,r){if(d.default.existsSync(t)){this.logger.warn(`Folder ${t} already exist. Deleting it`);d.default.rmSync(t,{recursive:true,force:true})}await(0,c.default)().clone(e,t,["--quiet","--shallow-submodules","--no-tags","--branch",r])}async fetch(e,t){await this.git(e).fetch("origin",t,["--quiet"])}async getCommonAncestor(e,...t){if(t.length===1){return t[0]}else if(t.length<1){throw new Error("empty refs!")}const errorHandler=(e,t)=>{if(t.exitCode===1||t.exitCode===0){return}if(e){return e}return Buffer.concat([...t.stdOut,...t.stdErr])};return(await this.git(e,errorHandler).raw("merge-base","--octopus",...t)).trim()}async getReachableParentCommits(e,t){return(await this.git(e).raw("rev-list","--parents",`${t}..HEAD`)).split(/\n/g).map((e=>e.split(/ /g).slice(1))).flat()}async merge(e,t,r){await this.git(e).pull(t,r,["--no-rebase","--allow-unrelated-histories"])}async head(e){return this.git(e).raw("show-ref","--head","-s","/HEAD")}async sha(e,t){return this.git(e).raw("show-ref","-s",`refs/remotes/origin/${t}`)}async rename(e,t){await this.git(e).branch(["--move",t])}async rebase(e,t){await this.git(e).rebase(["--quiet","--autosquash",t])}async push(e,t,r){const a=["--quiet"];if(t){a.push("--force-with-lease")}await this.git(e).push("origin",r,a)}async branch(e){return this.git(e).branch()}};m=i([(0,l.Service)(),o("design:paramtypes",[])],m);t.GitCLIService=m},544:function(e,t,r){"use strict";var a=this&&this.__decorate||function(e,t,r,a){var n=arguments.length,i=n<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")i=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])i=(n<3?s(i):n>3?s(t,r,i):s(t,r))||i;return n>3&&i&&Object.defineProperty(t,r,i),i};var n=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:true});t.GitTokenService=void 0;const i=r(3802);let s=class GitTokenService{constructor(){this.githubTokenPools={};this.tokens={}}setToken(e,t){this.tokens[e]=t}setTokenUsingEnv(e,t){const r=process.env[t];if(!this.tokens[e]&&r){this.tokens[e]=r}}getToken(e,t){if(t){this.setTokenUsingEnv(e,t)}return this.tokens[e]}setGithubTokenPool(e,t){this.githubTokenPools[e]=t}getGithubTokenPool(e){return this.githubTokenPools[e]}};s=a([(0,i.Service)(),n("design:paramtypes",[])],s);t.GitTokenService=s},8743:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.GitHubAPIClient=void 0;const a=r(5375);const n=r(9968);const i=r(376);const s=r(3764);class GitHubAPIClient extends i.BaseGitAPIClient{constructor(e,t){super(e,t);this.createTokenAuth=()=>Object.assign(this.auth.bind(this),{hook:this.hook.bind(this)});this.auth=async()=>({type:"token",token:this.currentToken,tokenType:"oauth"});const r=process.env["http_proxy"];this.currentToken=this.tokenService.getToken(t);this.whitelist=this.tokenService.getGithubTokenPool(t);this.blacklist={};const i=a.Octokit.plugin(n.throttling);this.octokit=new i({baseUrl:this.baseUrl,authStrategy:this.createTokenAuth.bind(this),userAgent:"kiegroup/github-build-chain-action",request:{agent:r?new s.HttpProxyAgent(r):undefined},throttle:{onRateLimit:this.onRateLimit.bind(this),onSecondaryRateLimit:this.onSecondaryRateLimit.bind(this),retryAfterBaseValue:0}})}get repos(){return{getBranch:this.octokit.rest.repos.getBranch.bind(this.octokit),get:this.octokit.rest.repos.get.bind(this.octokit),listForkName:this.listForkName.bind(this),getForkNameForTargetRepoGivenSourceOwner:this.getForkNameForTargetRepoGivenSourceOwner.bind(this)}}get pulls(){return{list:this.listPulls.bind(this),get:this.getPullRequest.bind(this)}}onRateLimit(e,t){this.logger.warn(`Request quota exhausted for request ${t.method} ${t.url}. Trying other tokens in the pool`);this.blacklist=Object.keys(this.blacklist).reduce(((e,t)=>{if(this.blacklist[t]>=(new Date).getTime()){e[t]=this.blacklist[t]}else{this.whitelist.push(t)}return e}),{});this.blacklist[this.currentToken]=e*1e3+(new Date).getTime();this.whitelist=this.whitelist.filter((e=>e!==this.currentToken));if(this.whitelist.length>0){this.logger.debug("Found a token. retrying...");this.currentToken=this.whitelist.pop();this.tokenService.setToken(this.tokenServiceId,this.currentToken);return true}else{this.logger.error("Request quota exhausted. No tokens available");return false}}onSecondaryRateLimit(e,t){this.logger.warn(`Secondary rate limit detected for request ${t.method} ${t.url}. Will retry after ${e}`);return true}async hook(e,t,r){const a=e.endpoint.merge(t,r);a.headers.authorization=`token ${this.currentToken}`;return e(a)}async getPullRequest(e){const{data:t,status:r}=await this.octokit.pulls.get(e);return{data:{html_url:t.html_url,head:{user:{login:t.head.user.login},ref:t.head.ref,repo:{full_name:t.head.repo?.full_name,name:t.head.repo?.name,owner:{login:t.head.repo?.owner.login}}},base:{ref:t.base.ref,repo:{full_name:t.base.repo.full_name,name:t.base.repo.name,owner:{login:t.base.repo.owner.login}}}},status:r}}async listPulls(e){let t;switch(e.state){case"opened":t="open";break;case"closed":case"merged":t="closed";break;default:t="all"}return this.octokit.rest.pulls.list({...e,state:t})}async listForkName(e){const{status:t,data:r}=await this.octokit.rest.repos.listForks(e);return{data:r.map((e=>({owner:e.owner.login,repo:e.name}))),status:t}}async getForkNameForTargetRepoGivenSourceOwner(e){let t=1;for await(const r of this.octokit.paginate.iterator(this.octokit.repos.listForks,{owner:e.targetOwner,repo:e.targetRepo,per_page:e.per_page??100})){this.logger.debug(`Making a github API call to find a fork for ${e.targetOwner}/${e.targetRepo} (page ${t})`);const a=r.data.find((t=>t.owner.login===e.sourceOwner));if(a){return{status:200,data:a.name}}t+=1}return{status:200,data:undefined}}}t.GitHubAPIClient=GitHubAPIClient},5281:function(e,t,r){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.GitlabAPIClient=void 0;const n=r(376);const i=a(r(8757));class GitlabAPIClient extends n.BaseGitAPIClient{constructor(e,t){super(e,t);this.client=i.default.create({baseURL:this.baseUrl,headers:{Authorization:`Bearer ${this.tokenService.getToken(t)}`,"User-Agent":"kiegroup/github-build-chain-action"}})}get repos(){return{getBranch:this.getBranch.bind(this),get:this.getRepo.bind(this),listForkName:this.listForkName.bind(this),getForkNameForTargetRepoGivenSourceOwner:this.getForkNameForTargetRepoGivenSourceOwner.bind(this)}}get pulls(){return{list:this.listPulls.bind(this),get:this.getPullRequest.bind(this)}}async getBranch(e){const t=this.getProjectId(e.owner,e.repo);const{data:r,status:a}=await this.client.get(`/projects/${t}/repository/branches/${e.branch}`);return{data:r,status:a}}async listPulls(e){const t=this.getProjectId(e.owner,e.repo);const{data:r,status:a}=await this.client.get(`/projects/${t}/merge_requests`,{params:{state:e.state,source_branch:e.base,target_branch:e.head}});return{data:r,status:a}}async getRepo(e){const t=this.getProjectId(e.owner,e.repo);const{data:r,status:a}=await this.client.get(`/projects/${t}`);return{data:r,status:a}}async getPullRequest(e){const t=this.getProjectId(e.owner,e.repo);const{data:r,status:a}=await this.client.get(`/projects/${t}/merge_requests/${e.pull_number}`);const n=r;return{data:{html_url:n.web_url,head:{user:{login:n.author.username},ref:n.head_branch},base:{ref:n.target_branch,repo:{full_name:`${e.owner}/${e.repo}`,name:e.repo,owner:{login:e.owner}}}},status:a}}async listForkName(e){const t=this.getProjectId(e.owner,e.repo);const{data:r,status:a}=await this.client.get(`/projects/${t}/forks`,{params:{per_page:e.per_page??100,page:e.page}});return{status:a,data:r.map((e=>({owner:e.namespace.path,repo:e.path})))}}async getForkNameForTargetRepoGivenSourceOwner(e){let t=1;let r=(await this.listForkName({owner:e.targetOwner,repo:e.targetRepo,page:t,per_page:e.per_page})).data;while(r.length>0){const a=r.find((t=>t.owner===e.sourceOwner));if(a){return{status:200,data:a.repo}}t+=1;r=(await this.listForkName({owner:e.targetOwner,repo:e.targetRepo,page:t,per_page:e.per_page??100})).data}return{status:200,data:undefined}}getProjectId(e,t){return encodeURIComponent(`${e}/${t}`)}}t.GitlabAPIClient=GitlabAPIClient},8081:function(e,t,r){"use strict";var a=this&&this.__decorate||function(e,t,r,a){var n=arguments.length,i=n<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")i=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])i=(n<3?s(i):n>3?s(t,r,i):s(t,r))||i;return n>3&&i&&Object.defineProperty(t,r,i),i};Object.defineProperty(t,"__esModule",{value:true});t.InputService=void 0;const n=r(8373);const i=r(3802);let s=class InputService{constructor(){this._inputs=n.defaultInputValues}get inputs(){return this._inputs}updateInputs(e){this._inputs={...this.inputs,...e}}};s=a([(0,i.Service)()],s);t.InputService=s},361:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var n=Object.getOwnPropertyDescriptor(t,r);if(!n||("get"in n?!t.__esModule:n.writable||n.configurable)){n={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,n)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var i=this&&this.__decorate||function(e,t,r,a){var n=arguments.length,i=n<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")i=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])i=(n<3?s(i):n>3?s(t,r,i):s(t,r))||i;return n>3&&i&&Object.defineProperty(t,r,i),i};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);n(t,e);return t};var o=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:true});t.JobSummaryService=void 0;const p=s(r(3802));const c=s(r(4297));const l=s(r(2186));const d=r(6229);const u=r(8373);const m=r(7616);const h=r(4396);const g=r(6696);let v=class JobSummaryService{constructor(){this.configService=p.default.get(d.ConfigurationService);this.gitService=p.default.get(m.GitCLIService)}async generateSummary(e,t,r){const a=this.configService.getFlowType();if(a===u.FlowType.BRANCH){return}const n=l.summary.emptyBuffer().addRaw("You can copy paste the following commands to locally execute build chain tool.",true).addCodeBlock(`npm i @kie/build-chain-action -g\nbuild-chain build ${a} -f ${this.configService.getDefinitionFileUrl()} -u ${this.configService.getEventUrl()}`).addEOL().addRaw(`**Git Version**: \`${await this.gitService.version()}\``,true).addRaw("> **_Notice_**: The `GITHUB_TOKEN` should be set in the environment.",true).stringify();const i=this.constructExecutionResult(e.executionResult.map((e=>e[0])),e.checkoutInfo);const s=this.constructExecutionResult(e.executionResult.map((e=>e[1])),e.checkoutInfo);const o=this.constructExecutionResult(e.executionResult.map((e=>e[2])),e.checkoutInfo);const p=this.constructPrePostResult(t);const c=this.constructPrePostResult(r);await l.summary.emptyBuffer().addHeading("Build Chain Execution Summary").addEOL().addRaw(`**Project Starting the Job:** [${this.configService.getStarterProjectName()}](https://github.com/${this.configService.getStarterProjectName()})`,true).addRaw(`

Pre

${p}
`,true).addRaw(`

Execution phase: ${g.ExecutionPhase.BEFORE}

${i}
`,true).addRaw(`

Execution phase: ${g.ExecutionPhase.CURRENT}

${s}
`,true).addRaw(`

Execution phase: ${g.ExecutionPhase.AFTER}

${o}
`,true).addRaw(`

Post

${c}
`,true).addRaw(`

Local Execution

${n}
`,true).write()}constructPrePostResult(e){const t=[{data:"Command",header:true},{data:"Execution Result",header:true},{data:"Execution Time",header:true}];const r=e.map((e=>[e.command,this.getExecutionResultString(e.result),`${c.fromMs(e.time)}`]));return l.summary.emptyBuffer().addTable([t,...r]).stringify()}constructExecutionResult(e,t){const r=[{data:"Project",header:true},{data:"Source",header:true},{data:"Target",header:true},{data:"Merged",header:true},{data:"Execution Result",header:true},{data:"Avg Execution Time",header:true}];return l.summary.emptyBuffer().addTable([r,...this.getExecutionResultData(e,t)]).addEOL().addRaw("```mermaid",true).addRaw(this.constructGraph(e),true).addRaw("```",true).stringify()}getExecutionResult(e){return e.find((e=>e.result!==h.ExecutionResult.OK))?.result??h.ExecutionResult.OK}getExecutionResultString(e){switch(e){case h.ExecutionResult.NOT_OK:return"❌";case h.ExecutionResult.SKIP:return"⛔";default:return"✅"}}getExecutionResultData(e,t){return e.map((e=>{const r=t.find((t=>t.node.project===e.node.project)).checkoutInfo;const a=this.getExecutionResultString(this.getExecutionResult(e.executeCommandResults));return[e.node.project,r?`${r.targetGroup}/${r.targetName}:${r.targetBranch}`:"checkout skipped",r?`${r.sourceGroup}/${r.sourceName}:${r.sourceBranch}`:"checkout skipped",r?.merge?"✅":"❌",a,e.executeCommandResults.length>0?`${c.fromMs(e.executeCommandResults.reduce(((e,t)=>e+t.time),0)/e.executeCommandResults.length)}`:"0"]}))}constructGraph(e){return`flowchart LR;\n ${e.map((e=>{const t=this.getExecutionResult(e.executeCommandResults);let r="okClass";switch(t){case h.ExecutionResult.NOT_OK:r="errorClass";break;case h.ExecutionResult.SKIP:r="noEntry";break}return`${e.node.project}:::${r}`})).join("==>")}\n ${e.map((e=>`click ${e.node.project} 'https://github.com/${e.node.project}'`)).join("\n\t\t\t\t")}\n classDef okClass fill:#218838,stroke:#1e7e34,color: #fff,border-radius: 4px\n classDef errorClass fill:#dc3545,stroke:#dc3545,color: #fff,border-radius: 4px\n classDef noEntry fill:#6c757d,stroke:#6c757d,color: #fff,border-radius: 4px`}};v=i([(0,p.Service)(),o("design:paramtypes",[])],v);t.JobSummaryService=v},8140:function(e,t,r){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.BaseLoggerService=void 0;const n=r(8373);const i=r(8081);const s=r(8416);const o=a(r(3802));class BaseLoggerService{constructor(){this._logger=new s.Logger;this.input=o.default.get(i.InputService)}debug(e){if(this.input.inputs.loggerLevel==n.LoggerLevel.DEBUG){this._logger.log("[DEBUG]",e)}}info(e){this._logger.log("[INFO]",e)}trace(e){if(this.input.inputs.loggerLevel==n.LoggerLevel.TRACE){this._logger.log("[TRACE]",e)}}warn(e){this._logger.log("[WARN]",e)}error(e){this._logger.log("[ERROR]",e)}get logger(){return this._logger}}t.BaseLoggerService=BaseLoggerService},8625:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.CLILoggerService=void 0;const a=r(8140);class CLILoggerService extends a.BaseLoggerService{constructor(){super()}endGroup(){super.logger.emptyLine()}startGroup(e){super.logger.log("#",e)}}t.CLILoggerService=CLILoggerService},418:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var n=Object.getOwnPropertyDescriptor(t,r);if(!n||("get"in n?!t.__esModule:n.writable||n.configurable)){n={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,n)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);n(t,e);return t};Object.defineProperty(t,"__esModule",{value:true});t.GithubActionLoggerService=void 0;const s=r(8140);const o=i(r(2186));class GithubActionLoggerService extends s.BaseLoggerService{constructor(){super()}endGroup(){o.endGroup()}startGroup(e){o.startGroup(e)}}t.GithubActionLoggerService=GithubActionLoggerService},9837:function(e,t,r){"use strict";var a=this&&this.__createBinding||(Object.create?function(e,t,r,a){if(a===undefined)a=r;var n=Object.getOwnPropertyDescriptor(t,r);if(!n||("get"in n?!t.__esModule:n.writable||n.configurable)){n={enumerable:true,get:function(){return t[r]}}}Object.defineProperty(e,a,n)}:function(e,t,r,a){if(a===undefined)a=r;e[a]=t[r]});var n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var i=this&&this.__decorate||function(e,t,r,a){var n=arguments.length,i=n<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")i=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])i=(n<3?s(i):n>3?s(t,r,i):s(t,r))||i;return n>3&&i&&Object.defineProperty(t,r,i),i};var s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(r!=="default"&&Object.prototype.hasOwnProperty.call(e,r))a(t,e,r);n(t,e);return t};var o=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:true});t.LoggerService=void 0;const p=r(6759);const c=r(6848);const l=r(8625);const d=r(418);const u=s(r(3802));let m=class LoggerService{constructor(){const e=u.default.get(p.constants.CONTAINER.ENTRY_POINT);switch(e){case c.EntryPoint.CLI:this._logger=new l.CLILoggerService;break;case c.EntryPoint.GITHUB_EVENT:this._logger=new d.GithubActionLoggerService;break;default:throw new Error(`No LoggerService defined for ${e}`)}}get logger(){return this._logger}};m=i([(0,u.Service)(),o("design:paramtypes",[])],m);t.LoggerService=m},8416:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.Logger=void 0;class Logger{log(e,...t){console.log.apply(console,[e,...t])}emptyLine(){this.log("","")}}t.Logger=Logger},3063:function(e,t,r){"use strict";var a=this&&this.__decorate||function(e,t,r,a){var n=arguments.length,i=n<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")i=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])i=(n<3?s(i):n>3?s(t,r,i):s(t,r))||i;return n>3&&i&&Object.defineProperty(t,r,i),i};var n=this&&this.__metadata||function(e,t){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(e,t)};var i=this&&this.__param||function(e,t){return function(r,a){t(r,a,e)}};Object.defineProperty(t,"__esModule",{value:true});t.PostExecutor=void 0;const s=r(6165);const o=r(3802);let p=class PostExecutor extends s.PrePostExecutor{constructor(e){super();this.executionSuccess=e}async run(){const e=this.configService.getPost();let t=[];if(e){this.logger.startGroup("Executing post section");if(this.executionSuccess){this.logger.info("execution result is OK, so 'success' and 'always' sections will be executed");if(e.success){t=await this.execute(e.success)}}else{this.logger.info("execution result is NOT OK, so 'failure' and 'always' sections will be executed");if(e.failure){t=await this.execute(e.failure)}}if(e.always){t=[...t,...await this.execute(e.always)]}this.logger.endGroup()}return t}};p=a([(0,o.Service)(),i(0,(0,o.Inject)("post.executionSuccess")),n("design:paramtypes",[Boolean])],p);t.PostExecutor=p},6165:function(e,t,r){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.PrePostExecutor=void 0;const n=r(4303);const i=r(6229);const s=r(9837);const o=a(r(3802));class PrePostExecutor{constructor(){this.configService=o.default.get(i.ConfigurationService);this.logger=o.default.get(s.LoggerService).logger;this.executeService=o.default.get(n.ExecuteCommandService)}async execute(e){const t=[];if(Array.isArray(e)){for(const r of e){t.push(await this.executeService.executeCommand(r,{cwd:process.cwd()}))}}else{t.push(await this.executeService.executeCommand(e,{cwd:process.cwd()}))}return t}}t.PrePostExecutor=PrePostExecutor},7814:function(e,t,r){"use strict";var a=this&&this.__decorate||function(e,t,r,a){var n=arguments.length,i=n<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,r):a,s;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")i=Reflect.decorate(e,t,r,a);else for(var o=e.length-1;o>=0;o--)if(s=e[o])i=(n<3?s(i):n>3?s(t,r,i):s(t,r))||i;return n>3&&i&&Object.defineProperty(t,r,i),i};Object.defineProperty(t,"__esModule",{value:true});t.PreExecutor=void 0;const n=r(6165);const i=r(3802);let s=class PreExecutor extends n.PrePostExecutor{async run(){const e=this.configService.getPre();let t=[];if(e){this.logger.startGroup("Executing pre section");t=await this.execute(e);this.logger.endGroup()}return t}};s=a([(0,i.Service)()],s);t.PreExecutor=s},3678:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.hrtimeToMs=t.formatDate=void 0;function formatDate(e){return`${e.getFullYear()}${e.getMonth()}${e.getDate()}${e.getHours()}${e.getMinutes()}${e.getSeconds()}`}t.formatDate=formatDate;function hrtimeToMs(e,t=process.hrtime(e)){return t[0]*1e3+t[1]/1e6}t.hrtimeToMs=hrtimeToMs},8410:function(e,t,r){"use strict";var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.logAndThrow=void 0;const n=r(9837);const i=a(r(3802));function logAndThrow(e){i.default.get(n.LoggerService).logger.error(e);throw new Error(e)}t.logAndThrow=logAndThrow},2877:module=>{module.exports=eval("require")("encoding")},9491:e=>{"use strict";e.exports=require("assert")},2081:e=>{"use strict";e.exports=require("child_process")},2057:e=>{"use strict";e.exports=require("constants")},6113:e=>{"use strict";e.exports=require("crypto")},2361:e=>{"use strict";e.exports=require("events")},7147:e=>{"use strict";e.exports=require("fs")},3292:e=>{"use strict";e.exports=require("fs/promises")},3685:e=>{"use strict";e.exports=require("http")},5687:e=>{"use strict";e.exports=require("https")},1808:e=>{"use strict";e.exports=require("net")},3977:e=>{"use strict";e.exports=require("node:fs/promises")},2037:e=>{"use strict";e.exports=require("os")},1017:e=>{"use strict";e.exports=require("path")},4074:e=>{"use strict";e.exports=require("perf_hooks")},5477:e=>{"use strict";e.exports=require("punycode")},2781:e=>{"use strict";e.exports=require("stream")},1576:e=>{"use strict";e.exports=require("string_decoder")},9512:e=>{"use strict";e.exports=require("timers")},4404:e=>{"use strict";e.exports=require("tls")},6224:e=>{"use strict";e.exports=require("tty")},7310:e=>{"use strict";e.exports=require("url")},3837:e=>{"use strict";e.exports=require("util")},9796:e=>{"use strict";e.exports=require("zlib")},8109:(e,t,r)=>{"use strict";var a=r(1399);var n=r(9338);var i=r(2986);var s=r(2289);var o=r(45);function composeCollection(e,t,r,p,c){let l;switch(r.type){case"block-map":{l=i.resolveBlockMap(e,t,r,c);break}case"block-seq":{l=s.resolveBlockSeq(e,t,r,c);break}case"flow-collection":{l=o.resolveFlowCollection(e,t,r,c);break}}if(!p)return l;const d=t.directives.tagName(p.source,(e=>c(p,"TAG_RESOLVE_FAILED",e)));if(!d)return l;const u=l.constructor;if(d==="!"||d===u.tagName){l.tag=u.tagName;return l}const m=a.isMap(l)?"map":"seq";let h=t.schema.tags.find((e=>e.collection===m&&e.tag===d));if(!h){const e=t.schema.knownTags[d];if(e&&e.collection===m){t.schema.tags.push(Object.assign({},e,{default:false}));h=e}else{c(p,"TAG_RESOLVE_FAILED",`Unresolved tag: ${d}`,true);l.tag=d;return l}}const g=h.resolve(l,(e=>c(p,"TAG_RESOLVE_FAILED",e)),t.options);const v=a.isNode(g)?g:new n.Scalar(g);v.range=l.range;v.tag=d;if(h?.format)v.format=h.format;return v}t.composeCollection=composeCollection},5050:(e,t,r)=>{"use strict";var a=r(42);var n=r(8676);var i=r(1250);var s=r(6985);function composeDoc(e,t,{offset:r,start:o,value:p,end:c},l){const d=Object.assign({_directives:t},e);const u=new a.Document(undefined,d);const m={atRoot:true,directives:u.directives,options:u.options,schema:u.schema};const h=s.resolveProps(o,{indicator:"doc-start",next:p??c?.[0],offset:r,onError:l,startOnNewline:true});if(h.found){u.directives.docStart=true;if(p&&(p.type==="block-map"||p.type==="block-seq")&&!h.hasNewline)l(h.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")}u.contents=p?n.composeNode(m,p,h,l):n.composeEmptyNode(m,h.end,o,null,h,l);const g=u.contents.range[2];const v=i.resolveEnd(c,g,false,l);if(v.comment)u.comment=v.comment;u.range=[r,g,v.offset];return u}t.composeDoc=composeDoc},8676:(e,t,r)=>{"use strict";var a=r(5639);var n=r(8109);var i=r(4766);var s=r(1250);var o=r(8781);const p={composeNode:composeNode,composeEmptyNode:composeEmptyNode};function composeNode(e,t,r,a){const{spaceBefore:s,comment:o,anchor:c,tag:l}=r;let d;let u=true;switch(t.type){case"alias":d=composeAlias(e,t,a);if(c||l)a(t,"ALIAS_PROPS","An alias node must not specify any properties");break;case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"block-scalar":d=i.composeScalar(e,t,l,a);if(c)d.anchor=c.source.substring(1);break;case"block-map":case"block-seq":case"flow-collection":d=n.composeCollection(p,e,t,l,a);if(c)d.anchor=c.source.substring(1);break;default:{const n=t.type==="error"?t.message:`Unsupported token (type: ${t.type})`;a(t,"UNEXPECTED_TOKEN",n);d=composeEmptyNode(e,t.offset,undefined,null,r,a);u=false}}if(c&&d.anchor==="")a(c,"BAD_ALIAS","Anchor cannot be an empty string");if(s)d.spaceBefore=true;if(o){if(t.type==="scalar"&&t.source==="")d.comment=o;else d.commentBefore=o}if(e.options.keepSourceTokens&&u)d.srcToken=t;return d}function composeEmptyNode(e,t,r,a,{spaceBefore:n,comment:s,anchor:p,tag:c,end:l},d){const u={type:"scalar",offset:o.emptyScalarPosition(t,r,a),indent:-1,source:""};const m=i.composeScalar(e,u,c,d);if(p){m.anchor=p.source.substring(1);if(m.anchor==="")d(p,"BAD_ALIAS","Anchor cannot be an empty string")}if(n)m.spaceBefore=true;if(s){m.comment=s;m.range[2]=l}return m}function composeAlias({options:e},{offset:t,source:r,end:n},i){const o=new a.Alias(r.substring(1));if(o.source==="")i(t,"BAD_ALIAS","Alias cannot be an empty string");if(o.source.endsWith(":"))i(t+r.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",true);const p=t+r.length;const c=s.resolveEnd(n,p,e.strict,i);o.range=[t,p,c.offset];if(c.comment)o.comment=c.comment;return o}t.composeEmptyNode=composeEmptyNode;t.composeNode=composeNode},4766:(e,t,r)=>{"use strict";var a=r(1399);var n=r(9338);var i=r(9485);var s=r(7578);function composeScalar(e,t,r,o){const{value:p,type:c,comment:l,range:d}=t.type==="block-scalar"?i.resolveBlockScalar(t,e.options.strict,o):s.resolveFlowScalar(t,e.options.strict,o);const u=r?e.directives.tagName(r.source,(e=>o(r,"TAG_RESOLVE_FAILED",e))):null;const m=r&&u?findScalarTagByName(e.schema,p,u,r,o):t.type==="scalar"?findScalarTagByTest(e,p,t,o):e.schema[a.SCALAR];let h;try{const i=m.resolve(p,(e=>o(r??t,"TAG_RESOLVE_FAILED",e)),e.options);h=a.isScalar(i)?i:new n.Scalar(i)}catch(e){const a=e instanceof Error?e.message:String(e);o(r??t,"TAG_RESOLVE_FAILED",a);h=new n.Scalar(p)}h.range=d;h.source=p;if(c)h.type=c;if(u)h.tag=u;if(m.format)h.format=m.format;if(l)h.comment=l;return h}function findScalarTagByName(e,t,r,n,i){if(r==="!")return e[a.SCALAR];const s=[];for(const t of e.tags){if(!t.collection&&t.tag===r){if(t.default&&t.test)s.push(t);else return t}}for(const e of s)if(e.test?.test(t))return e;const o=e.knownTags[r];if(o&&!o.collection){e.tags.push(Object.assign({},o,{default:false,test:undefined}));return o}i(n,"TAG_RESOLVE_FAILED",`Unresolved tag: ${r}`,r!=="tag:yaml.org,2002:str");return e[a.SCALAR]}function findScalarTagByTest({directives:e,schema:t},r,n,i){const s=t.tags.find((e=>e.default&&e.test?.test(r)))||t[a.SCALAR];if(t.compat){const o=t.compat.find((e=>e.default&&e.test?.test(r)))??t[a.SCALAR];if(s.tag!==o.tag){const t=e.tagString(s.tag);const r=e.tagString(o.tag);const a=`Value may be parsed as either ${t} or ${r}`;i(n,"TAG_RESOLVE_FAILED",a,true)}}return s}t.composeScalar=composeScalar},9493:(e,t,r)=>{"use strict";var a=r(5400);var n=r(42);var i=r(4236);var s=r(1399);var o=r(5050);var p=r(1250);function getErrorPos(e){if(typeof e==="number")return[e,e+1];if(Array.isArray(e))return e.length===2?e:[e[0],e[1]];const{offset:t,source:r}=e;return[t,t+(typeof r==="string"?r.length:1)]}function parsePrelude(e){let t="";let r=false;let a=false;for(let n=0;n{const n=getErrorPos(e);if(a)this.warnings.push(new i.YAMLWarning(n,t,r));else this.errors.push(new i.YAMLParseError(n,t,r))};this.directives=new a.Directives({version:e.version||"1.2"});this.options=e}decorate(e,t){const{comment:r,afterEmptyLine:a}=parsePrelude(this.prelude);if(r){const n=e.contents;if(t){e.comment=e.comment?`${e.comment}\n${r}`:r}else if(a||e.directives.docStart||!n){e.commentBefore=r}else if(s.isCollection(n)&&!n.flow&&n.items.length>0){let e=n.items[0];if(s.isPair(e))e=e.key;const t=e.commentBefore;e.commentBefore=t?`${r}\n${t}`:r}else{const e=n.commentBefore;n.commentBefore=e?`${r}\n${e}`:r}}if(t){Array.prototype.push.apply(e.errors,this.errors);Array.prototype.push.apply(e.warnings,this.warnings)}else{e.errors=this.errors;e.warnings=this.warnings}this.prelude=[];this.errors=[];this.warnings=[]}streamInfo(){return{comment:parsePrelude(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(e,t=false,r=-1){for(const t of e)yield*this.next(t);yield*this.end(t,r)}*next(e){if(process.env.LOG_STREAM)console.dir(e,{depth:null});switch(e.type){case"directive":this.directives.add(e.source,((t,r,a)=>{const n=getErrorPos(e);n[0]+=t;this.onError(n,"BAD_DIRECTIVE",r,a)}));this.prelude.push(e.source);this.atDirectives=true;break;case"document":{const t=o.composeDoc(this.options,this.directives,e,this.onError);if(this.atDirectives&&!t.directives.docStart)this.onError(e,"MISSING_CHAR","Missing directives-end/doc-start indicator line");this.decorate(t,false);if(this.doc)yield this.doc;this.doc=t;this.atDirectives=false;break}case"byte-order-mark":case"space":break;case"comment":case"newline":this.prelude.push(e.source);break;case"error":{const t=e.source?`${e.message}: ${JSON.stringify(e.source)}`:e.message;const r=new i.YAMLParseError(getErrorPos(e),"UNEXPECTED_TOKEN",t);if(this.atDirectives||!this.doc)this.errors.push(r);else this.doc.errors.push(r);break}case"doc-end":{if(!this.doc){const t="Unexpected doc-end without preceding document";this.errors.push(new i.YAMLParseError(getErrorPos(e),"UNEXPECTED_TOKEN",t));break}this.doc.directives.docEnd=true;const t=p.resolveEnd(e.end,e.offset+e.source.length,this.doc.options.strict,this.onError);this.decorate(this.doc,true);if(t.comment){const e=this.doc.comment;this.doc.comment=e?`${e}\n${t.comment}`:t.comment}this.doc.range[2]=t.offset;break}default:this.errors.push(new i.YAMLParseError(getErrorPos(e),"UNEXPECTED_TOKEN",`Unsupported token ${e.type}`))}}*end(e=false,t=-1){if(this.doc){this.decorate(this.doc,true);yield this.doc;this.doc=null}else if(e){const e=Object.assign({_directives:this.directives},this.options);const r=new n.Document(undefined,e);if(this.atDirectives)this.onError(t,"MISSING_CHAR","Missing directives-end indicator line");r.range=[0,t,t];this.decorate(r,false);yield r}}}t.Composer=Composer},2986:(e,t,r)=>{"use strict";var a=r(246);var n=r(6011);var i=r(6985);var s=r(976);var o=r(3669);var p=r(6899);const c="All mapping items must start at the same column";function resolveBlockMap({composeNode:e,composeEmptyNode:t},r,l,d){const u=new n.YAMLMap(r.schema);if(r.atRoot)r.atRoot=false;let m=l.offset;let h=null;for(const n of l.items){const{start:g,key:v,sep:y,value:b}=n;const w=i.resolveProps(g,{indicator:"explicit-key-ind",next:v??y?.[0],offset:m,onError:d,startOnNewline:true});const x=!w.found;if(x){if(v){if(v.type==="block-seq")d(m,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key");else if("indent"in v&&v.indent!==l.indent)d(m,"BAD_INDENT",c)}if(!w.anchor&&!w.tag&&!y){h=w.end;if(w.comment){if(u.comment)u.comment+="\n"+w.comment;else u.comment=w.comment}continue}if(w.hasNewlineAfterProp||s.containsNewline(v)){d(v??g[g.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}}else if(w.found?.indent!==l.indent){d(m,"BAD_INDENT",c)}const E=w.end;const T=v?e(r,v,w,d):t(r,E,g,null,w,d);if(r.schema.compat)o.flowIndentCheck(l.indent,v,d);if(p.mapIncludes(r,u.items,T))d(E,"DUPLICATE_KEY","Map keys must be unique");const S=i.resolveProps(y??[],{indicator:"map-value-ind",next:b,offset:T.range[2],onError:d,startOnNewline:!v||v.type==="block-scalar"});m=S.end;if(S.found){if(x){if(b?.type==="block-map"&&!S.hasNewline)d(m,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings");if(r.options.strict&&w.start{"use strict";var a=r(9338);function resolveBlockScalar(e,t,r){const n=e.offset;const i=parseBlockScalarHeader(e,t,r);if(!i)return{value:"",type:null,comment:"",range:[n,n,n]};const s=i.mode===">"?a.Scalar.BLOCK_FOLDED:a.Scalar.BLOCK_LITERAL;const o=e.source?splitLines(e.source):[];let p=o.length;for(let e=o.length-1;e>=0;--e){const t=o[e][1];if(t===""||t==="\r")p=e;else break}if(p===0){const t=i.chomp==="+"&&o.length>0?"\n".repeat(Math.max(1,o.length-1)):"";let r=n+i.length;if(e.source)r+=e.source.length;return{value:t,type:s,comment:i.comment,range:[n,r,r]}}let c=e.indent+i.indent;let l=e.offset+i.length;let d=0;for(let e=0;ec)c=t.length}else{if(t.length=p;--e){if(o[e][0].length>c)p=e+1}let u="";let m="";let h=false;for(let e=0;ec||n[0]==="\t"){if(m===" ")m="\n";else if(!h&&m==="\n")m="\n\n";u+=m+t.slice(c)+n;m="\n";h=true}else if(n===""){if(m==="\n")u+="\n";else m="\n"}else{u+=m+n;m=" ";h=false}}switch(i.chomp){case"-":break;case"+":for(let e=p;e{"use strict";var a=r(5161);var n=r(6985);var i=r(3669);function resolveBlockSeq({composeNode:e,composeEmptyNode:t},r,s,o){const p=new a.YAMLSeq(r.schema);if(r.atRoot)r.atRoot=false;let c=s.offset;let l=null;for(const{start:a,value:d}of s.items){const u=n.resolveProps(a,{indicator:"seq-item-ind",next:d,offset:c,onError:o,startOnNewline:true});if(!u.found){if(u.anchor||u.tag||d){if(d&&d.type==="block-seq")o(u.end,"BAD_INDENT","All sequence items must start at the same column");else o(c,"MISSING_CHAR","Sequence item without - indicator")}else{l=u.end;if(u.comment)p.comment=u.comment;continue}}const m=d?e(r,d,u,o):t(r,u.end,a,null,u,o);if(r.schema.compat)i.flowIndentCheck(s.indent,d,o);c=m.range[2];p.items.push(m)}p.range=[s.offset,c,l??c];return p}t.resolveBlockSeq=resolveBlockSeq},1250:(e,t)=>{"use strict";function resolveEnd(e,t,r,a){let n="";if(e){let i=false;let s="";for(const o of e){const{source:e,type:p}=o;switch(p){case"space":i=true;break;case"comment":{if(r&&!i)a(o,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");const t=e.substring(1)||" ";if(!n)n=t;else n+=s+t;s="";break}case"newline":if(n)s+=e;i=true;break;default:a(o,"UNEXPECTED_TOKEN",`Unexpected ${p} at node end`)}t+=e.length}}return{comment:n,offset:t}}t.resolveEnd=resolveEnd},45:(e,t,r)=>{"use strict";var a=r(1399);var n=r(246);var i=r(6011);var s=r(5161);var o=r(1250);var p=r(6985);var c=r(976);var l=r(6899);const d="Block collections are not allowed within flow collections";const isBlock=e=>e&&(e.type==="block-map"||e.type==="block-seq");function resolveFlowCollection({composeNode:e,composeEmptyNode:t},r,u,m){const h=u.start.source==="{";const g=h?"flow map":"flow sequence";const v=h?new i.YAMLMap(r.schema):new s.YAMLSeq(r.schema);v.flow=true;const y=r.atRoot;if(y)r.atRoot=false;let b=u.offset+u.start.source.length;for(let s=0;s0){const e=o.resolveEnd(E,T,r.options.strict,m);if(e.comment){if(v.comment)v.comment+="\n"+e.comment;else v.comment=e.comment}v.range=[u.offset,T,e.offset]}else{v.range=[u.offset,T,T]}return v}t.resolveFlowCollection=resolveFlowCollection},7578:(e,t,r)=>{"use strict";var a=r(9338);var n=r(1250);function resolveFlowScalar(e,t,r){const{offset:i,type:s,source:o,end:p}=e;let c;let l;const _onError=(e,t,a)=>r(i+e,t,a);switch(s){case"scalar":c=a.Scalar.PLAIN;l=plainValue(o,_onError);break;case"single-quoted-scalar":c=a.Scalar.QUOTE_SINGLE;l=singleQuotedValue(o,_onError);break;case"double-quoted-scalar":c=a.Scalar.QUOTE_DOUBLE;l=doubleQuotedValue(o,_onError);break;default:r(e,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${s}`);return{value:"",type:null,comment:"",range:[i,i+o.length,i+o.length]}}const d=i+o.length;const u=n.resolveEnd(p,d,t,r);return{value:l,type:c,comment:u.comment,range:[i,d,u.offset]}}function plainValue(e,t){let r="";switch(e[0]){case"\t":r="a tab character";break;case",":r="flow indicator character ,";break;case"%":r="directive indicator character %";break;case"|":case">":{r=`block scalar indicator ${e[0]}`;break}case"@":case"`":{r=`reserved character ${e[0]}`;break}}if(r)t(0,"BAD_SCALAR_START",`Plain value cannot start with ${r}`);return foldLines(e)}function singleQuotedValue(e,t){if(e[e.length-1]!=="'"||e.length===1)t(e.length,"MISSING_CHAR","Missing closing 'quote");return foldLines(e.slice(1,-1)).replace(/''/g,"'")}function foldLines(e){let t,r;try{t=new RegExp("(.*?)(?t?e.slice(t,a+1):n}else{r+=n}}if(e[e.length-1]!=='"'||e.length===1)t(e.length,"MISSING_CHAR",'Missing closing "quote');return r}function foldNewline(e,t){let r="";let a=e[t+1];while(a===" "||a==="\t"||a==="\n"||a==="\r"){if(a==="\r"&&e[t+2]!=="\n")break;if(a==="\n")r+="\n";t+=1;a=e[t+1]}if(!r)r=" ";return{fold:r,offset:t}}const i={0:"\0",a:"",b:"\b",e:"",f:"\f",n:"\n",r:"\r",t:"\t",v:"\v",N:"…",_:" ",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\","\t":"\t"};function parseCharCode(e,t,r,a){const n=e.substr(t,r);const i=n.length===r&&/^[0-9a-fA-F]+$/.test(n);const s=i?parseInt(n,16):NaN;if(isNaN(s)){const n=e.substr(t-2,r+2);a(t-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${n}`);return n}return String.fromCodePoint(s)}t.resolveFlowScalar=resolveFlowScalar},6985:(e,t)=>{"use strict";function resolveProps(e,{flow:t,indicator:r,next:a,offset:n,onError:i,startOnNewline:s}){let o=false;let p=s;let c=s;let l="";let d="";let u=false;let m=false;let h=false;let g=null;let v=null;let y=null;let b=null;let w=null;for(const a of e){if(h){if(a.type!=="space"&&a.type!=="newline"&&a.type!=="comma")i(a.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space");h=false}switch(a.type){case"space":if(!t&&p&&r!=="doc-start"&&a.source[0]==="\t")i(a,"TAB_AS_INDENT","Tabs are not allowed as indentation");c=true;break;case"comment":{if(!c)i(a,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");const e=a.source.substring(1)||" ";if(!l)l=e;else l+=d+e;d="";p=false;break}case"newline":if(p){if(l)l+=a.source;else o=true}else d+=a.source;p=true;u=true;if(g||v)m=true;c=true;break;case"anchor":if(g)i(a,"MULTIPLE_ANCHORS","A node can have at most one anchor");if(a.source.endsWith(":"))i(a.offset+a.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",true);g=a;if(w===null)w=a.offset;p=false;c=false;h=true;break;case"tag":{if(v)i(a,"MULTIPLE_TAGS","A node can have at most one tag");v=a;if(w===null)w=a.offset;p=false;c=false;h=true;break}case r:if(g||v)i(a,"BAD_PROP_ORDER",`Anchors and tags must be after the ${a.source} indicator`);if(b)i(a,"UNEXPECTED_TOKEN",`Unexpected ${a.source} in ${t??"collection"}`);b=a;p=false;c=false;break;case"comma":if(t){if(y)i(a,"UNEXPECTED_TOKEN",`Unexpected , in ${t}`);y=a;p=false;c=false;break}default:i(a,"UNEXPECTED_TOKEN",`Unexpected ${a.type} token`);p=false;c=false}}const x=e[e.length-1];const E=x?x.offset+x.source.length:n;if(h&&a&&a.type!=="space"&&a.type!=="newline"&&a.type!=="comma"&&(a.type!=="scalar"||a.source!==""))i(a.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space");return{comma:y,found:b,spaceBefore:o,comment:l,hasNewline:u,hasNewlineAfterProp:m,anchor:g,tag:v,end:E,start:w??E}}t.resolveProps=resolveProps},976:(e,t)=>{"use strict";function containsNewline(e){if(!e)return null;switch(e.type){case"alias":case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":if(e.source.includes("\n"))return true;if(e.end)for(const t of e.end)if(t.type==="newline")return true;return false;case"flow-collection":for(const t of e.items){for(const e of t.start)if(e.type==="newline")return true;if(t.sep)for(const e of t.sep)if(e.type==="newline")return true;if(containsNewline(t.key)||containsNewline(t.value))return true}return false;default:return true}}t.containsNewline=containsNewline},8781:(e,t)=>{"use strict";function emptyScalarPosition(e,t,r){if(t){if(r===null)r=t.length;for(let a=r-1;a>=0;--a){let r=t[a];switch(r.type){case"space":case"comment":case"newline":e-=r.source.length;continue}r=t[++a];while(r?.type==="space"){e+=r.source.length;r=t[++a]}break}}return e}t.emptyScalarPosition=emptyScalarPosition},3669:(e,t,r)=>{"use strict";var a=r(976);function flowIndentCheck(e,t,r){if(t?.type==="flow-collection"){const n=t.end[0];if(n.indent===e&&(n.source==="]"||n.source==="}")&&a.containsNewline(t)){const e="Flow end indicator should be more indented than parent";r(n,"BAD_INDENT",e,true)}}}t.flowIndentCheck=flowIndentCheck},6899:(e,t,r)=>{"use strict";var a=r(1399);function mapIncludes(e,t,r){const{uniqueKeys:n}=e.options;if(n===false)return false;const i=typeof n==="function"?n:(t,r)=>t===r||a.isScalar(t)&&a.isScalar(r)&&t.value===r.value&&!(t.value==="<<"&&e.schema.merge);return t.some((e=>i(e.key,r)))}t.mapIncludes=mapIncludes},42:(e,t,r)=>{"use strict";var a=r(5639);var n=r(3466);var i=r(1399);var s=r(246);var o=r(2463);var p=r(6831);var c=r(8409);var l=r(5225);var d=r(8459);var u=r(3412);var m=r(9652);var h=r(5400);class Document{constructor(e,t,r){this.commentBefore=null;this.comment=null;this.errors=[];this.warnings=[];Object.defineProperty(this,i.NODE_TYPE,{value:i.DOC});let a=null;if(typeof t==="function"||Array.isArray(t)){a=t}else if(r===undefined&&t){r=t;t=undefined}const n=Object.assign({intAsBigInt:false,keepSourceTokens:false,logLevel:"warn",prettyErrors:true,strict:true,uniqueKeys:true,version:"1.2"},r);this.options=n;let{version:s}=n;if(r?._directives){this.directives=r._directives.atDocument();if(this.directives.yaml.explicit)s=this.directives.yaml.version}else this.directives=new h.Directives({version:s});this.setSchema(s,r);if(e===undefined)this.contents=null;else{this.contents=this.createNode(e,a,r)}}clone(){const e=Object.create(Document.prototype,{[i.NODE_TYPE]:{value:i.DOC}});e.commentBefore=this.commentBefore;e.comment=this.comment;e.errors=this.errors.slice();e.warnings=this.warnings.slice();e.options=Object.assign({},this.options);if(this.directives)e.directives=this.directives.clone();e.schema=this.schema.clone();e.contents=i.isNode(this.contents)?this.contents.clone(e.schema):this.contents;if(this.range)e.range=this.range.slice();return e}add(e){if(assertCollection(this.contents))this.contents.add(e)}addIn(e,t){if(assertCollection(this.contents))this.contents.addIn(e,t)}createAlias(e,t){if(!e.anchor){const r=d.anchorNames(this);e.anchor=!t||r.has(t)?d.findNewAnchor(t||"a",r):t}return new a.Alias(e.anchor)}createNode(e,t,r){let a=undefined;if(typeof t==="function"){e=t.call({"":e},"",e);a=t}else if(Array.isArray(t)){const keyToStr=e=>typeof e==="number"||e instanceof String||e instanceof Number;const e=t.filter(keyToStr).map(String);if(e.length>0)t=t.concat(e);a=t}else if(r===undefined&&t){r=t;t=undefined}const{aliasDuplicateObjects:n,anchorPrefix:s,flow:o,keepUndefined:p,onTagObj:c,tag:l}=r??{};const{onAnchor:u,setAnchors:h,sourceObjects:g}=d.createNodeAnchors(this,s||"a");const v={aliasDuplicateObjects:n??true,keepUndefined:p??false,onAnchor:u,onTagObj:c,replacer:a,schema:this.schema,sourceObjects:g};const y=m.createNode(e,l,v);if(o&&i.isCollection(y))y.flow=true;h();return y}createPair(e,t,r={}){const a=this.createNode(e,null,r);const n=this.createNode(t,null,r);return new s.Pair(a,n)}delete(e){return assertCollection(this.contents)?this.contents.delete(e):false}deleteIn(e){if(n.isEmptyPath(e)){if(this.contents==null)return false;this.contents=null;return true}return assertCollection(this.contents)?this.contents.deleteIn(e):false}get(e,t){return i.isCollection(this.contents)?this.contents.get(e,t):undefined}getIn(e,t){if(n.isEmptyPath(e))return!t&&i.isScalar(this.contents)?this.contents.value:this.contents;return i.isCollection(this.contents)?this.contents.getIn(e,t):undefined}has(e){return i.isCollection(this.contents)?this.contents.has(e):false}hasIn(e){if(n.isEmptyPath(e))return this.contents!==undefined;return i.isCollection(this.contents)?this.contents.hasIn(e):false}set(e,t){if(this.contents==null){this.contents=n.collectionFromPath(this.schema,[e],t)}else if(assertCollection(this.contents)){this.contents.set(e,t)}}setIn(e,t){if(n.isEmptyPath(e))this.contents=t;else if(this.contents==null){this.contents=n.collectionFromPath(this.schema,Array.from(e),t)}else if(assertCollection(this.contents)){this.contents.setIn(e,t)}}setSchema(e,t={}){if(typeof e==="number")e=String(e);let r;switch(e){case"1.1":if(this.directives)this.directives.yaml.version="1.1";else this.directives=new h.Directives({version:"1.1"});r={merge:true,resolveKnownTags:false,schema:"yaml-1.1"};break;case"1.2":case"next":if(this.directives)this.directives.yaml.version=e;else this.directives=new h.Directives({version:e});r={merge:false,resolveKnownTags:true,schema:"core"};break;case null:if(this.directives)delete this.directives;r=null;break;default:{const t=JSON.stringify(e);throw new Error(`Expected '1.1', '1.2' or null as first argument, but found: ${t}`)}}if(t.schema instanceof Object)this.schema=t.schema;else if(r)this.schema=new p.Schema(Object.assign(r,t));else throw new Error(`With a null YAML version, the { schema: Schema } option is required`)}toJS({json:e,jsonArg:t,mapAsMap:r,maxAliasCount:a,onAnchor:n,reviver:i}={}){const s={anchors:new Map,doc:this,keep:!e,mapAsMap:r===true,mapKeyWarned:false,maxAliasCount:typeof a==="number"?a:100,stringify:c.stringify};const p=o.toJS(this.contents,t??"",s);if(typeof n==="function")for(const{count:e,res:t}of s.anchors.values())n(t,e);return typeof i==="function"?u.applyReviver(i,{"":p},"",p):p}toJSON(e,t){return this.toJS({json:true,jsonArg:e,mapAsMap:false,onAnchor:t})}toString(e={}){if(this.errors.length>0)throw new Error("Document with errors cannot be stringified");if("indent"in e&&(!Number.isInteger(e.indent)||Number(e.indent)<=0)){const t=JSON.stringify(e.indent);throw new Error(`"indent" option must be a positive integer, not ${t}`)}return l.stringifyDocument(this,e)}}function assertCollection(e){if(i.isCollection(e))return true;throw new Error("Expected a YAML collection as document contents")}t.Document=Document},8459:(e,t,r)=>{"use strict";var a=r(1399);var n=r(6796);function anchorIsValid(e){if(/[\x00-\x19\s,[\]{}]/.test(e)){const t=JSON.stringify(e);const r=`Anchor must not contain whitespace or control characters: ${t}`;throw new Error(r)}return true}function anchorNames(e){const t=new Set;n.visit(e,{Value(e,r){if(r.anchor)t.add(r.anchor)}});return t}function findNewAnchor(e,t){for(let r=1;true;++r){const a=`${e}${r}`;if(!t.has(a))return a}}function createNodeAnchors(e,t){const r=[];const n=new Map;let i=null;return{onAnchor:a=>{r.push(a);if(!i)i=anchorNames(e);const n=findNewAnchor(t,i);i.add(n);return n},setAnchors:()=>{for(const e of r){const t=n.get(e);if(typeof t==="object"&&t.anchor&&(a.isScalar(t.node)||a.isCollection(t.node))){t.node.anchor=t.anchor}else{const t=new Error("Failed to resolve repeated object (this should not happen)");t.source=e;throw t}}},sourceObjects:n}}t.anchorIsValid=anchorIsValid;t.anchorNames=anchorNames;t.createNodeAnchors=createNodeAnchors;t.findNewAnchor=findNewAnchor},3412:(e,t)=>{"use strict";function applyReviver(e,t,r,a){if(a&&typeof a==="object"){if(Array.isArray(a)){for(let t=0,r=a.length;t{"use strict";var a=r(5639);var n=r(1399);var i=r(9338);const s="tag:yaml.org,2002:";function findTagObject(e,t,r){if(t){const e=r.filter((e=>e.tag===t));const a=e.find((e=>!e.format))??e[0];if(!a)throw new Error(`Tag ${t} not found`);return a}return r.find((t=>t.identify?.(e)&&!t.format))}function createNode(e,t,r){if(n.isDocument(e))e=e.contents;if(n.isNode(e))return e;if(n.isPair(e)){const t=r.schema[n.MAP].createNode?.(r.schema,null,r);t.items.push(e);return t}if(e instanceof String||e instanceof Number||e instanceof Boolean||typeof BigInt!=="undefined"&&e instanceof BigInt){e=e.valueOf()}const{aliasDuplicateObjects:o,onAnchor:p,onTagObj:c,schema:l,sourceObjects:d}=r;let u=undefined;if(o&&e&&typeof e==="object"){u=d.get(e);if(u){if(!u.anchor)u.anchor=p(e);return new a.Alias(u.anchor)}else{u={anchor:null,node:null};d.set(e,u)}}if(t?.startsWith("!!"))t=s+t.slice(2);let m=findTagObject(e,t,l.tags);if(!m){if(e&&typeof e.toJSON==="function"){e=e.toJSON()}if(!e||typeof e!=="object"){const t=new i.Scalar(e);if(u)u.node=t;return t}m=e instanceof Map?l[n.MAP]:Symbol.iterator in Object(e)?l[n.SEQ]:l[n.MAP]}if(c){c(m);delete r.onTagObj}const h=m?.createNode?m.createNode(r.schema,e,r):new i.Scalar(e);if(t)h.tag=t;if(u)u.node=h;return h}t.createNode=createNode},5400:(e,t,r)=>{"use strict";var a=r(1399);var n=r(6796);const i={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"};const escapeTagName=e=>e.replace(/[!,[\]{}]/g,(e=>i[e]));class Directives{constructor(e,t){this.docStart=null;this.docEnd=false;this.yaml=Object.assign({},Directives.defaultYaml,e);this.tags=Object.assign({},Directives.defaultTags,t)}clone(){const e=new Directives(this.yaml,this.tags);e.docStart=this.docStart;return e}atDocument(){const e=new Directives(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=true;break;case"1.2":this.atNextDocument=false;this.yaml={explicit:Directives.defaultYaml.explicit,version:"1.2"};this.tags=Object.assign({},Directives.defaultTags);break}return e}add(e,t){if(this.atNextDocument){this.yaml={explicit:Directives.defaultYaml.explicit,version:"1.1"};this.tags=Object.assign({},Directives.defaultTags);this.atNextDocument=false}const r=e.trim().split(/[ \t]+/);const a=r.shift();switch(a){case"%TAG":{if(r.length!==2){t(0,"%TAG directive should contain exactly two parts");if(r.length<2)return false}const[e,a]=r;this.tags[e]=a;return true}case"%YAML":{this.yaml.explicit=true;if(r.length!==1){t(0,"%YAML directive should contain exactly one part");return false}const[e]=r;if(e==="1.1"||e==="1.2"){this.yaml.version=e;return true}else{const r=/^\d+\.\d+$/.test(e);t(6,`Unsupported YAML version ${e}`,r);return false}}default:t(0,`Unknown directive ${a}`,true);return false}}tagName(e,t){if(e==="!")return"!";if(e[0]!=="!"){t(`Not a valid tag: ${e}`);return null}if(e[1]==="<"){const r=e.slice(2,-1);if(r==="!"||r==="!!"){t(`Verbatim tags aren't resolved, so ${e} is invalid.`);return null}if(e[e.length-1]!==">")t("Verbatim tags must end with a >");return r}const[,r,a]=e.match(/^(.*!)([^!]*)$/);if(!a)t(`The ${e} tag has no suffix`);const n=this.tags[r];if(n)return n+decodeURIComponent(a);if(r==="!")return e;t(`Could not resolve tag: ${e}`);return null}tagString(e){for(const[t,r]of Object.entries(this.tags)){if(e.startsWith(r))return t+escapeTagName(e.substring(r.length))}return e[0]==="!"?e:`!<${e}>`}toString(e){const t=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[];const r=Object.entries(this.tags);let i;if(e&&r.length>0&&a.isNode(e.contents)){const t={};n.visit(e.contents,((e,r)=>{if(a.isNode(r)&&r.tag)t[r.tag]=true}));i=Object.keys(t)}else i=[];for(const[a,n]of r){if(a==="!!"&&n==="tag:yaml.org,2002:")continue;if(!e||i.some((e=>e.startsWith(n))))t.push(`%TAG ${a} ${n}`)}return t.join("\n")}}Directives.defaultYaml={explicit:false,version:"1.2"};Directives.defaultTags={"!!":"tag:yaml.org,2002:"};t.Directives=Directives},4236:(e,t)=>{"use strict";class YAMLError extends Error{constructor(e,t,r,a){super();this.name=e;this.code=r;this.message=a;this.pos=t}}class YAMLParseError extends YAMLError{constructor(e,t,r){super("YAMLParseError",e,t,r)}}class YAMLWarning extends YAMLError{constructor(e,t,r){super("YAMLWarning",e,t,r)}}const prettifyError=(e,t)=>r=>{if(r.pos[0]===-1)return;r.linePos=r.pos.map((e=>t.linePos(e)));const{line:a,col:n}=r.linePos[0];r.message+=` at line ${a}, column ${n}`;let i=n-1;let s=e.substring(t.lineStarts[a-1],t.lineStarts[a]).replace(/[\n\r]+$/,"");if(i>=60&&s.length>80){const e=Math.min(i-39,s.length-79);s="…"+s.substring(e);i-=e-1}if(s.length>80)s=s.substring(0,79)+"…";if(a>1&&/^ *$/.test(s.substring(0,i))){let r=e.substring(t.lineStarts[a-2],t.lineStarts[a-1]);if(r.length>80)r=r.substring(0,79)+"…\n";s=r+s}if(/[^ ]/.test(s)){let e=1;const t=r.linePos[1];if(t&&t.line===a&&t.col>n){e=Math.max(1,Math.min(t.col-n,80-i))}const o=" ".repeat(i)+"^".repeat(e);r.message+=`:\n\n${s}\n${o}\n`}};t.YAMLError=YAMLError;t.YAMLParseError=YAMLParseError;t.YAMLWarning=YAMLWarning;t.prettifyError=prettifyError},4083:(e,t,r)=>{"use strict";var a=r(9493);var n=r(42);var i=r(6831);var s=r(4236);var o=r(5639);var p=r(1399);var c=r(246);var l=r(9338);var d=r(6011);var u=r(5161);var m=r(9169);var h=r(5976);var g=r(1929);var v=r(3328);var y=r(8649);var b=r(6796);t.Composer=a.Composer;t.Document=n.Document;t.Schema=i.Schema;t.YAMLError=s.YAMLError;t.YAMLParseError=s.YAMLParseError;t.YAMLWarning=s.YAMLWarning;t.Alias=o.Alias;t.isAlias=p.isAlias;t.isCollection=p.isCollection;t.isDocument=p.isDocument;t.isMap=p.isMap;t.isNode=p.isNode;t.isPair=p.isPair;t.isScalar=p.isScalar;t.isSeq=p.isSeq;t.Pair=c.Pair;t.Scalar=l.Scalar;t.YAMLMap=d.YAMLMap;t.YAMLSeq=u.YAMLSeq;t.CST=m;t.Lexer=h.Lexer;t.LineCounter=g.LineCounter;t.Parser=v.Parser;t.parse=y.parse;t.parseAllDocuments=y.parseAllDocuments;t.parseDocument=y.parseDocument;t.stringify=y.stringify;t.visit=b.visit;t.visitAsync=b.visitAsync},6909:(e,t)=>{"use strict";function debug(e,...t){if(e==="debug")console.log(...t)}function warn(e,t){if(e==="debug"||e==="warn"){if(typeof process!=="undefined"&&process.emitWarning)process.emitWarning(t);else console.warn(t)}}t.debug=debug;t.warn=warn},5639:(e,t,r)=>{"use strict";var a=r(8459);var n=r(6796);var i=r(1399);class Alias extends i.NodeBase{constructor(e){super(i.ALIAS);this.source=e;Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(e){let t=undefined;n.visit(e,{Node:(e,r)=>{if(r===this)return n.visit.BREAK;if(r.anchor===this.source)t=r}});return t}toJSON(e,t){if(!t)return{source:this.source};const{anchors:r,doc:a,maxAliasCount:n}=t;const i=this.resolve(a);if(!i){const e=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(e)}const s=r.get(i);if(!s||s.res===undefined){const e="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(e)}if(n>=0){s.count+=1;if(s.aliasCount===0)s.aliasCount=getAliasCount(a,i,r);if(s.count*s.aliasCount>n){const e="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(e)}}return s.res}toString(e,t,r){const n=`*${this.source}`;if(e){a.anchorIsValid(this.source);if(e.options.verifyAliasOrder&&!e.anchors.has(this.source)){const e=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new Error(e)}if(e.implicitKey)return`${n} `}return n}}function getAliasCount(e,t,r){if(i.isAlias(t)){const a=t.resolve(e);const n=r&&a&&r.get(a);return n?n.count*n.aliasCount:0}else if(i.isCollection(t)){let a=0;for(const n of t.items){const t=getAliasCount(e,n,r);if(t>a)a=t}return a}else if(i.isPair(t)){const a=getAliasCount(e,t.key,r);const n=getAliasCount(e,t.value,r);return Math.max(a,n)}return 1}t.Alias=Alias},3466:(e,t,r)=>{"use strict";var a=r(9652);var n=r(1399);function collectionFromPath(e,t,r){let n=r;for(let e=t.length-1;e>=0;--e){const r=t[e];if(typeof r==="number"&&Number.isInteger(r)&&r>=0){const e=[];e[r]=n;n=e}else{n=new Map([[r,n]])}}return a.createNode(n,undefined,{aliasDuplicateObjects:false,keepUndefined:false,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:e,sourceObjects:new Map})}const isEmptyPath=e=>e==null||typeof e==="object"&&!!e[Symbol.iterator]().next().done;class Collection extends n.NodeBase{constructor(e,t){super(e);Object.defineProperty(this,"schema",{value:t,configurable:true,enumerable:false,writable:true})}clone(e){const t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));if(e)t.schema=e;t.items=t.items.map((t=>n.isNode(t)||n.isPair(t)?t.clone(e):t));if(this.range)t.range=this.range.slice();return t}addIn(e,t){if(isEmptyPath(e))this.add(t);else{const[r,...a]=e;const i=this.get(r,true);if(n.isCollection(i))i.addIn(a,t);else if(i===undefined&&this.schema)this.set(r,collectionFromPath(this.schema,a,t));else throw new Error(`Expected YAML collection at ${r}. Remaining path: ${a}`)}}deleteIn(e){const[t,...r]=e;if(r.length===0)return this.delete(t);const a=this.get(t,true);if(n.isCollection(a))return a.deleteIn(r);else throw new Error(`Expected YAML collection at ${t}. Remaining path: ${r}`)}getIn(e,t){const[r,...a]=e;const i=this.get(r,true);if(a.length===0)return!t&&n.isScalar(i)?i.value:i;else return n.isCollection(i)?i.getIn(a,t):undefined}hasAllNullValues(e){return this.items.every((t=>{if(!n.isPair(t))return false;const r=t.value;return r==null||e&&n.isScalar(r)&&r.value==null&&!r.commentBefore&&!r.comment&&!r.tag}))}hasIn(e){const[t,...r]=e;if(r.length===0)return this.has(t);const a=this.get(t,true);return n.isCollection(a)?a.hasIn(r):false}setIn(e,t){const[r,...a]=e;if(a.length===0){this.set(r,t)}else{const e=this.get(r,true);if(n.isCollection(e))e.setIn(a,t);else if(e===undefined&&this.schema)this.set(r,collectionFromPath(this.schema,a,t));else throw new Error(`Expected YAML collection at ${r}. Remaining path: ${a}`)}}}Collection.maxFlowStringSingleLineLength=60;t.Collection=Collection;t.collectionFromPath=collectionFromPath;t.isEmptyPath=isEmptyPath},1399:(e,t)=>{"use strict";const r=Symbol.for("yaml.alias");const a=Symbol.for("yaml.document");const n=Symbol.for("yaml.map");const i=Symbol.for("yaml.pair");const s=Symbol.for("yaml.scalar");const o=Symbol.for("yaml.seq");const p=Symbol.for("yaml.node.type");const isAlias=e=>!!e&&typeof e==="object"&&e[p]===r;const isDocument=e=>!!e&&typeof e==="object"&&e[p]===a;const isMap=e=>!!e&&typeof e==="object"&&e[p]===n;const isPair=e=>!!e&&typeof e==="object"&&e[p]===i;const isScalar=e=>!!e&&typeof e==="object"&&e[p]===s;const isSeq=e=>!!e&&typeof e==="object"&&e[p]===o;function isCollection(e){if(e&&typeof e==="object")switch(e[p]){case n:case o:return true}return false}function isNode(e){if(e&&typeof e==="object")switch(e[p]){case r:case n:case s:case o:return true}return false}const hasAnchor=e=>(isScalar(e)||isCollection(e))&&!!e.anchor;class NodeBase{constructor(e){Object.defineProperty(this,p,{value:e})}clone(){const e=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));if(this.range)e.range=this.range.slice();return e}}t.ALIAS=r;t.DOC=a;t.MAP=n;t.NODE_TYPE=p;t.NodeBase=NodeBase;t.PAIR=i;t.SCALAR=s;t.SEQ=o;t.hasAnchor=hasAnchor;t.isAlias=isAlias;t.isCollection=isCollection;t.isDocument=isDocument;t.isMap=isMap;t.isNode=isNode;t.isPair=isPair;t.isScalar=isScalar;t.isSeq=isSeq},246:(e,t,r)=>{"use strict";var a=r(9652);var n=r(4875);var i=r(4676);var s=r(1399);function createPair(e,t,r){const n=a.createNode(e,undefined,r);const i=a.createNode(t,undefined,r);return new Pair(n,i)}class Pair{constructor(e,t=null){Object.defineProperty(this,s.NODE_TYPE,{value:s.PAIR});this.key=e;this.value=t}clone(e){let{key:t,value:r}=this;if(s.isNode(t))t=t.clone(e);if(s.isNode(r))r=r.clone(e);return new Pair(t,r)}toJSON(e,t){const r=t?.mapAsMap?new Map:{};return i.addPairToJSMap(t,r,this)}toString(e,t,r){return e?.doc?n.stringifyPair(this,e,t,r):JSON.stringify(this)}}t.Pair=Pair;t.createPair=createPair},9338:(e,t,r)=>{"use strict";var a=r(1399);var n=r(2463);const isScalarValue=e=>!e||typeof e!=="function"&&typeof e!=="object";class Scalar extends a.NodeBase{constructor(e){super(a.SCALAR);this.value=e}toJSON(e,t){return t?.keep?this.value:n.toJS(this.value,e,t)}toString(){return String(this.value)}}Scalar.BLOCK_FOLDED="BLOCK_FOLDED";Scalar.BLOCK_LITERAL="BLOCK_LITERAL";Scalar.PLAIN="PLAIN";Scalar.QUOTE_DOUBLE="QUOTE_DOUBLE";Scalar.QUOTE_SINGLE="QUOTE_SINGLE";t.Scalar=Scalar;t.isScalarValue=isScalarValue},6011:(e,t,r)=>{"use strict";var a=r(2466);var n=r(4676);var i=r(3466);var s=r(1399);var o=r(246);var p=r(9338);function findPair(e,t){const r=s.isScalar(t)?t.value:t;for(const a of e){if(s.isPair(a)){if(a.key===t||a.key===r)return a;if(s.isScalar(a.key)&&a.key.value===r)return a}}return undefined}class YAMLMap extends i.Collection{static get tagName(){return"tag:yaml.org,2002:map"}constructor(e){super(s.MAP,e);this.items=[]}add(e,t){let r;if(s.isPair(e))r=e;else if(!e||typeof e!=="object"||!("key"in e)){r=new o.Pair(e,e?.value)}else r=new o.Pair(e.key,e.value);const a=findPair(this.items,r.key);const n=this.schema?.sortMapEntries;if(a){if(!t)throw new Error(`Key ${r.key} already set`);if(s.isScalar(a.value)&&p.isScalarValue(r.value))a.value.value=r.value;else a.value=r.value}else if(n){const e=this.items.findIndex((e=>n(r,e)<0));if(e===-1)this.items.push(r);else this.items.splice(e,0,r)}else{this.items.push(r)}}delete(e){const t=findPair(this.items,e);if(!t)return false;const r=this.items.splice(this.items.indexOf(t),1);return r.length>0}get(e,t){const r=findPair(this.items,e);const a=r?.value;return(!t&&s.isScalar(a)?a.value:a)??undefined}has(e){return!!findPair(this.items,e)}set(e,t){this.add(new o.Pair(e,t),true)}toJSON(e,t,r){const a=r?new r:t?.mapAsMap?new Map:{};if(t?.onCreate)t.onCreate(a);for(const e of this.items)n.addPairToJSMap(t,a,e);return a}toString(e,t,r){if(!e)return JSON.stringify(this);for(const e of this.items){if(!s.isPair(e))throw new Error(`Map items must all be pairs; found ${JSON.stringify(e)} instead`)}if(!e.allNullValues&&this.hasAllNullValues(false))e=Object.assign({},e,{allNullValues:true});return a.stringifyCollection(this,e,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:e.indent||"",onChompKeep:r,onComment:t})}}t.YAMLMap=YAMLMap;t.findPair=findPair},5161:(e,t,r)=>{"use strict";var a=r(2466);var n=r(3466);var i=r(1399);var s=r(9338);var o=r(2463);class YAMLSeq extends n.Collection{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(e){super(i.SEQ,e);this.items=[]}add(e){this.items.push(e)}delete(e){const t=asItemIndex(e);if(typeof t!=="number")return false;const r=this.items.splice(t,1);return r.length>0}get(e,t){const r=asItemIndex(e);if(typeof r!=="number")return undefined;const a=this.items[r];return!t&&i.isScalar(a)?a.value:a}has(e){const t=asItemIndex(e);return typeof t==="number"&&t=0?t:null}t.YAMLSeq=YAMLSeq},4676:(e,t,r)=>{"use strict";var a=r(6909);var n=r(8409);var i=r(1399);var s=r(9338);var o=r(2463);const p="<<";function addPairToJSMap(e,t,{key:r,value:a}){if(e?.doc.schema.merge&&isMergeKey(r)){a=i.isAlias(a)?a.resolve(e.doc):a;if(i.isSeq(a))for(const r of a.items)mergeToJSMap(e,t,r);else if(Array.isArray(a))for(const r of a)mergeToJSMap(e,t,r);else mergeToJSMap(e,t,a)}else{const n=o.toJS(r,"",e);if(t instanceof Map){t.set(n,o.toJS(a,n,e))}else if(t instanceof Set){t.add(n)}else{const i=stringifyKey(r,n,e);const s=o.toJS(a,i,e);if(i in t)Object.defineProperty(t,i,{value:s,writable:true,enumerable:true,configurable:true});else t[i]=s}}return t}const isMergeKey=e=>e===p||i.isScalar(e)&&e.value===p&&(!e.type||e.type===s.Scalar.PLAIN);function mergeToJSMap(e,t,r){const a=e&&i.isAlias(r)?r.resolve(e.doc):r;if(!i.isMap(a))throw new Error("Merge sources must be maps or map aliases");const n=a.toJSON(null,e,Map);for(const[e,r]of n){if(t instanceof Map){if(!t.has(e))t.set(e,r)}else if(t instanceof Set){t.add(e)}else if(!Object.prototype.hasOwnProperty.call(t,e)){Object.defineProperty(t,e,{value:r,writable:true,enumerable:true,configurable:true})}}return t}function stringifyKey(e,t,r){if(t===null)return"";if(typeof t!=="object")return String(t);if(i.isNode(e)&&r&&r.doc){const t=n.createStringifyContext(r.doc,{});t.anchors=new Set;for(const e of r.anchors.keys())t.anchors.add(e.anchor);t.inFlow=true;t.inStringifyKey=true;const i=e.toString(t);if(!r.mapKeyWarned){let e=JSON.stringify(i);if(e.length>40)e=e.substring(0,36)+'..."';a.warn(r.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${e}. Set mapAsMap: true to use object keys.`);r.mapKeyWarned=true}return i}return JSON.stringify(t)}t.addPairToJSMap=addPairToJSMap},2463:(e,t,r)=>{"use strict";var a=r(1399);function toJS(e,t,r){if(Array.isArray(e))return e.map(((e,t)=>toJS(e,String(t),r)));if(e&&typeof e.toJSON==="function"){if(!r||!a.hasAnchor(e))return e.toJSON(t,r);const n={aliasCount:0,count:1,res:undefined};r.anchors.set(e,n);r.onCreate=e=>{n.res=e;delete r.onCreate};const i=e.toJSON(t,r);if(r.onCreate)r.onCreate(i);return i}if(typeof e==="bigint"&&!r?.keep)return Number(e);return e}t.toJS=toJS},9027:(e,t,r)=>{"use strict";var a=r(9485);var n=r(7578);var i=r(4236);var s=r(6226);function resolveAsScalar(e,t=true,r){if(e){const _onError=(e,t,a)=>{const n=typeof e==="number"?e:Array.isArray(e)?e[0]:e.offset;if(r)r(n,t,a);else throw new i.YAMLParseError([n,n+1],t,a)};switch(e.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return n.resolveFlowScalar(e,t,_onError);case"block-scalar":return a.resolveBlockScalar(e,t,_onError)}}return null}function createScalarToken(e,t){const{implicitKey:r=false,indent:a,inFlow:n=false,offset:i=-1,type:o="PLAIN"}=t;const p=s.stringifyString({type:o,value:e},{implicitKey:r,indent:a>0?" ".repeat(a):"",inFlow:n,options:{blockQuote:true,lineWidth:-1}});const c=t.end??[{type:"newline",offset:-1,indent:a,source:"\n"}];switch(p[0]){case"|":case">":{const e=p.indexOf("\n");const t=p.substring(0,e);const r=p.substring(e+1)+"\n";const n=[{type:"block-scalar-header",offset:i,indent:a,source:t}];if(!addEndtoBlockProps(n,c))n.push({type:"newline",offset:-1,indent:a,source:"\n"});return{type:"block-scalar",offset:i,indent:a,props:n,source:r}}case'"':return{type:"double-quoted-scalar",offset:i,indent:a,source:p,end:c};case"'":return{type:"single-quoted-scalar",offset:i,indent:a,source:p,end:c};default:return{type:"scalar",offset:i,indent:a,source:p,end:c}}}function setScalarValue(e,t,r={}){let{afterKey:a=false,implicitKey:n=false,inFlow:i=false,type:o}=r;let p="indent"in e?e.indent:null;if(a&&typeof p==="number")p+=2;if(!o)switch(e.type){case"single-quoted-scalar":o="QUOTE_SINGLE";break;case"double-quoted-scalar":o="QUOTE_DOUBLE";break;case"block-scalar":{const t=e.props[0];if(t.type!=="block-scalar-header")throw new Error("Invalid block scalar header");o=t.source[0]===">"?"BLOCK_FOLDED":"BLOCK_LITERAL";break}default:o="PLAIN"}const c=s.stringifyString({type:o,value:t},{implicitKey:n||p===null,indent:p!==null&&p>0?" ".repeat(p):"",inFlow:i,options:{blockQuote:true,lineWidth:-1}});switch(c[0]){case"|":case">":setBlockScalarValue(e,c);break;case'"':setFlowScalarValue(e,c,"double-quoted-scalar");break;case"'":setFlowScalarValue(e,c,"single-quoted-scalar");break;default:setFlowScalarValue(e,c,"scalar")}}function setBlockScalarValue(e,t){const r=t.indexOf("\n");const a=t.substring(0,r);const n=t.substring(r+1)+"\n";if(e.type==="block-scalar"){const t=e.props[0];if(t.type!=="block-scalar-header")throw new Error("Invalid block scalar header");t.source=a;e.source=n}else{const{offset:t}=e;const r="indent"in e?e.indent:-1;const i=[{type:"block-scalar-header",offset:t,indent:r,source:a}];if(!addEndtoBlockProps(i,"end"in e?e.end:undefined))i.push({type:"newline",offset:-1,indent:r,source:"\n"});for(const t of Object.keys(e))if(t!=="type"&&t!=="offset")delete e[t];Object.assign(e,{type:"block-scalar",indent:r,props:i,source:n})}}function addEndtoBlockProps(e,t){if(t)for(const r of t)switch(r.type){case"space":case"comment":e.push(r);break;case"newline":e.push(r);return true}return false}function setFlowScalarValue(e,t,r){switch(e.type){case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":e.type=r;e.source=t;break;case"block-scalar":{const a=e.props.slice(1);let n=t.length;if(e.props[0].type==="block-scalar-header")n-=e.props[0].source.length;for(const e of a)e.offset+=n;delete e.props;Object.assign(e,{type:r,source:t,end:a});break}case"block-map":case"block-seq":{const a=e.offset+t.length;const n={type:"newline",offset:a,indent:e.indent,source:"\n"};delete e.items;Object.assign(e,{type:r,source:t,end:[n]});break}default:{const a="indent"in e?e.indent:-1;const n="end"in e&&Array.isArray(e.end)?e.end.filter((e=>e.type==="space"||e.type==="comment"||e.type==="newline")):[];for(const t of Object.keys(e))if(t!=="type"&&t!=="offset")delete e[t];Object.assign(e,{type:r,indent:a,source:t,end:n})}}}t.createScalarToken=createScalarToken;t.resolveAsScalar=resolveAsScalar;t.setScalarValue=setScalarValue},6307:(e,t)=>{"use strict";const stringify=e=>"type"in e?stringifyToken(e):stringifyItem(e);function stringifyToken(e){switch(e.type){case"block-scalar":{let t="";for(const r of e.props)t+=stringifyToken(r);return t+e.source}case"block-map":case"block-seq":{let t="";for(const r of e.items)t+=stringifyItem(r);return t}case"flow-collection":{let t=e.start.source;for(const r of e.items)t+=stringifyItem(r);for(const r of e.end)t+=r.source;return t}case"document":{let t=stringifyItem(e);if(e.end)for(const r of e.end)t+=r.source;return t}default:{let t=e.source;if("end"in e&&e.end)for(const r of e.end)t+=r.source;return t}}}function stringifyItem({start:e,key:t,sep:r,value:a}){let n="";for(const t of e)n+=t.source;if(t)n+=stringifyToken(t);if(r)for(const e of r)n+=e.source;if(a)n+=stringifyToken(a);return n}t.stringify=stringify},8497:(e,t)=>{"use strict";const r=Symbol("break visit");const a=Symbol("skip children");const n=Symbol("remove item");function visit(e,t){if("type"in e&&e.type==="document")e={start:e.start,value:e.value};_visit(Object.freeze([]),e,t)}visit.BREAK=r;visit.SKIP=a;visit.REMOVE=n;visit.itemAtPath=(e,t)=>{let r=e;for(const[e,a]of t){const t=r?.[e];if(t&&"items"in t){r=t.items[a]}else return undefined}return r};visit.parentCollection=(e,t)=>{const r=visit.itemAtPath(e,t.slice(0,-1));const a=t[t.length-1][0];const n=r?.[a];if(n&&"items"in n)return n;throw new Error("Parent collection not found")};function _visit(e,t,a){let i=a(t,e);if(typeof i==="symbol")return i;for(const s of["key","value"]){const o=t[s];if(o&&"items"in o){for(let t=0;t{"use strict";var a=r(9027);var n=r(6307);var i=r(8497);const s="\ufeff";const o="";const p="";const c="";const isCollection=e=>!!e&&"items"in e;const isScalar=e=>!!e&&(e.type==="scalar"||e.type==="single-quoted-scalar"||e.type==="double-quoted-scalar"||e.type==="block-scalar");function prettyToken(e){switch(e){case s:return"";case o:return"";case p:return"";case c:return"";default:return JSON.stringify(e)}}function tokenType(e){switch(e){case s:return"byte-order-mark";case o:return"doc-mode";case p:return"flow-error-end";case c:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case"\n":case"\r\n":return"newline";case"-":return"seq-item-ind";case"?":return"explicit-key-ind";case":":return"map-value-ind";case"{":return"flow-map-start";case"}":return"flow-map-end";case"[":return"flow-seq-start";case"]":return"flow-seq-end";case",":return"comma"}switch(e[0]){case" ":case"\t":return"space";case"#":return"comment";case"%":return"directive-line";case"*":return"alias";case"&":return"anchor";case"!":return"tag";case"'":return"single-quoted-scalar";case'"':return"double-quoted-scalar";case"|":case">":return"block-scalar-header"}return null}t.createScalarToken=a.createScalarToken;t.resolveAsScalar=a.resolveAsScalar;t.setScalarValue=a.setScalarValue;t.stringify=n.stringify;t.visit=i.visit;t.BOM=s;t.DOCUMENT=o;t.FLOW_END=p;t.SCALAR=c;t.isCollection=isCollection;t.isScalar=isScalar;t.prettyToken=prettyToken;t.tokenType=tokenType},5976:(e,t,r)=>{"use strict";var a=r(9169);function isEmpty(e){switch(e){case undefined:case" ":case"\n":case"\r":case"\t":return true;default:return false}}const n="0123456789ABCDEFabcdef".split("");const i="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()".split("");const s=",[]{}".split("");const o=" ,[]{}\n\r\t".split("");const isNotAnchorChar=e=>!e||o.includes(e);class Lexer{constructor(){this.atEnd=false;this.blockScalarIndent=-1;this.blockScalarKeep=false;this.buffer="";this.flowKey=false;this.flowLevel=0;this.indentNext=0;this.indentValue=0;this.lineEndPos=null;this.next=null;this.pos=0}*lex(e,t=false){if(e){this.buffer=this.buffer?this.buffer+e:e;this.lineEndPos=null}this.atEnd=!t;let r=this.next??"stream";while(r&&(t||this.hasChars(1)))r=yield*this.parseNext(r)}atLineEnd(){let e=this.pos;let t=this.buffer[e];while(t===" "||t==="\t")t=this.buffer[++e];if(!t||t==="#"||t==="\n")return true;if(t==="\r")return this.buffer[e+1]==="\n";return false}charAt(e){return this.buffer[this.pos+e]}continueScalar(e){let t=this.buffer[e];if(this.indentNext>0){let r=0;while(t===" ")t=this.buffer[++r+e];if(t==="\r"){const t=this.buffer[r+e+1];if(t==="\n"||!t&&!this.atEnd)return e+r+1}return t==="\n"||r>=this.indentNext||!t&&!this.atEnd?e+r:-1}if(t==="-"||t==="."){const t=this.buffer.substr(e,3);if((t==="---"||t==="...")&&isEmpty(this.buffer[e+3]))return-1}return e}getLine(){let e=this.lineEndPos;if(typeof e!=="number"||e!==-1&&ethis.indentValue&&!isEmpty(this.charAt(1)))this.indentNext=this.indentValue;return yield*this.parseBlockStart()}*parseBlockStart(){const[e,t]=this.peek(2);if(!t&&!this.atEnd)return this.setNext("block-start");if((e==="-"||e==="?"||e===":")&&isEmpty(t)){const e=(yield*this.pushCount(1))+(yield*this.pushSpaces(true));this.indentNext=this.indentValue+1;this.indentValue+=e;return yield*this.parseBlockStart()}return"doc"}*parseDocument(){yield*this.pushSpaces(true);const e=this.getLine();if(e===null)return this.setNext("doc");let t=yield*this.pushIndicators();switch(e[t]){case"#":yield*this.pushCount(e.length-t);case undefined:yield*this.pushNewline();return yield*this.parseLineStart();case"{":case"[":yield*this.pushCount(1);this.flowKey=false;this.flowLevel=1;return"flow";case"}":case"]":yield*this.pushCount(1);return"doc";case"*":yield*this.pushUntil(isNotAnchorChar);return"doc";case'"':case"'":return yield*this.parseQuotedScalar();case"|":case">":t+=(yield*this.parseBlockScalarHeader());t+=(yield*this.pushSpaces(true));yield*this.pushCount(e.length-t);yield*this.pushNewline();return yield*this.parseBlockScalar();default:return yield*this.parsePlainScalar()}}*parseFlowCollection(){let e,t;let r=-1;do{e=yield*this.pushNewline();if(e>0){t=yield*this.pushSpaces(false);this.indentValue=r=t}else{t=0}t+=(yield*this.pushSpaces(true))}while(e+t>0);const n=this.getLine();if(n===null)return this.setNext("flow");if(r!==-1&&r"0"&&t<="9")this.blockScalarIndent=Number(t)-1;else if(t!=="-")break}return yield*this.pushUntil((e=>isEmpty(e)||e==="#"))}*parseBlockScalar(){let e=this.pos-1;let t=0;let r;e:for(let a=this.pos;r=this.buffer[a];++a){switch(r){case" ":t+=1;break;case"\n":e=a;t=0;break;case"\r":{const e=this.buffer[a+1];if(!e&&!this.atEnd)return this.setNext("block-scalar");if(e==="\n")break}default:break e}}if(!r&&!this.atEnd)return this.setNext("block-scalar");if(t>=this.indentNext){if(this.blockScalarIndent===-1)this.indentNext=t;else this.indentNext+=this.blockScalarIndent;do{const t=this.continueScalar(e+1);if(t===-1)break;e=this.buffer.indexOf("\n",t)}while(e!==-1);if(e===-1){if(!this.atEnd)return this.setNext("block-scalar");e=this.buffer.length}}if(!this.blockScalarKeep){do{let r=e-1;let a=this.buffer[r];if(a==="\r")a=this.buffer[--r];const n=r;while(a===" "||a==="\t")a=this.buffer[--r];if(a==="\n"&&r>=this.pos&&r+1+t>n)e=r;else break}while(true)}yield a.SCALAR;yield*this.pushToIndex(e+1,true);return yield*this.parseLineStart()}*parsePlainScalar(){const e=this.flowLevel>0;let t=this.pos-1;let r=this.pos-1;let n;while(n=this.buffer[++r]){if(n===":"){const a=this.buffer[r+1];if(isEmpty(a)||e&&a===",")break;t=r}else if(isEmpty(n)){let a=this.buffer[r+1];if(n==="\r"){if(a==="\n"){r+=1;n="\n";a=this.buffer[r+1]}else t=r}if(a==="#"||e&&s.includes(a))break;if(n==="\n"){const e=this.continueScalar(r+1);if(e===-1)break;r=Math.max(r,e-2)}}else{if(e&&s.includes(n))break;t=r}}if(!n&&!this.atEnd)return this.setNext("plain-scalar");yield a.SCALAR;yield*this.pushToIndex(t+1,true);return e?"flow":"doc"}*pushCount(e){if(e>0){yield this.buffer.substr(this.pos,e);this.pos+=e;return e}return 0}*pushToIndex(e,t){const r=this.buffer.slice(this.pos,e);if(r){yield r;this.pos+=r.length;return r.length}else if(t)yield"";return 0}*pushIndicators(){switch(this.charAt(0)){case"!":return(yield*this.pushTag())+(yield*this.pushSpaces(true))+(yield*this.pushIndicators());case"&":return(yield*this.pushUntil(isNotAnchorChar))+(yield*this.pushSpaces(true))+(yield*this.pushIndicators());case"-":case"?":case":":{const e=this.flowLevel>0;const t=this.charAt(1);if(isEmpty(t)||e&&s.includes(t)){if(!e)this.indentNext=this.indentValue+1;else if(this.flowKey)this.flowKey=false;return(yield*this.pushCount(1))+(yield*this.pushSpaces(true))+(yield*this.pushIndicators())}}}return 0}*pushTag(){if(this.charAt(1)==="<"){let e=this.pos+2;let t=this.buffer[e];while(!isEmpty(t)&&t!==">")t=this.buffer[++e];return yield*this.pushToIndex(t===">"?e+1:e,false)}else{let e=this.pos+1;let t=this.buffer[e];while(t){if(i.includes(t))t=this.buffer[++e];else if(t==="%"&&n.includes(this.buffer[e+1])&&n.includes(this.buffer[e+2])){t=this.buffer[e+=3]}else break}return yield*this.pushToIndex(e,false)}}*pushNewline(){const e=this.buffer[this.pos];if(e==="\n")return yield*this.pushCount(1);else if(e==="\r"&&this.charAt(1)==="\n")return yield*this.pushCount(2);else return 0}*pushSpaces(e){let t=this.pos-1;let r;do{r=this.buffer[++t]}while(r===" "||e&&r==="\t");const a=t-this.pos;if(a>0){yield this.buffer.substr(this.pos,a);this.pos=t}return a}*pushUntil(e){let t=this.pos;let r=this.buffer[t];while(!e(r))r=this.buffer[++t];return yield*this.pushToIndex(t,false)}}t.Lexer=Lexer},1929:(e,t)=>{"use strict";class LineCounter{constructor(){this.lineStarts=[];this.addNewLine=e=>this.lineStarts.push(e);this.linePos=e=>{let t=0;let r=this.lineStarts.length;while(t>1;if(this.lineStarts[a]{"use strict";var a=r(9169);var n=r(5976);function includesToken(e,t){for(let r=0;r=0){switch(e[t].type){case"doc-start":case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":case"newline":break e}}while(e[++t]?.type==="space"){}return e.splice(t,e.length)}function fixFlowSeqItems(e){if(e.start.type==="flow-seq-start"){for(const t of e.items){if(t.sep&&!t.value&&!includesToken(t.start,"explicit-key-ind")&&!includesToken(t.sep,"map-value-ind")){if(t.key)t.value=t.key;delete t.key;if(isFlowToken(t.value)){if(t.value.end)Array.prototype.push.apply(t.value.end,t.sep);else t.value.end=t.sep}else Array.prototype.push.apply(t.start,t.sep);delete t.sep}}}}class Parser{constructor(e){this.atNewLine=true;this.atScalar=false;this.indent=0;this.offset=0;this.onKeyLine=false;this.stack=[];this.source="";this.type="";this.lexer=new n.Lexer;this.onNewLine=e}*parse(e,t=false){if(this.onNewLine&&this.offset===0)this.onNewLine(0);for(const r of this.lexer.lex(e,t))yield*this.next(r);if(!t)yield*this.end()}*next(e){this.source=e;if(process.env.LOG_TOKENS)console.log("|",a.prettyToken(e));if(this.atScalar){this.atScalar=false;yield*this.step();this.offset+=e.length;return}const t=a.tokenType(e);if(!t){const t=`Not a YAML token: ${e}`;yield*this.pop({type:"error",offset:this.offset,message:t,source:e});this.offset+=e.length}else if(t==="scalar"){this.atNewLine=false;this.atScalar=true;this.type="scalar"}else{this.type=t;yield*this.step();switch(t){case"newline":this.atNewLine=true;this.indent=0;if(this.onNewLine)this.onNewLine(this.offset+e.length);break;case"space":if(this.atNewLine&&e[0]===" ")this.indent+=e.length;break;case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":if(this.atNewLine)this.indent+=e.length;break;case"doc-mode":case"flow-error-end":return;default:this.atNewLine=false}this.offset+=e.length}}*end(){while(this.stack.length>0)yield*this.pop()}get sourceToken(){const e={type:this.type,offset:this.offset,indent:this.indent,source:this.source};return e}*step(){const e=this.peek(1);if(this.type==="doc-end"&&(!e||e.type!=="doc-end")){while(this.stack.length>0)yield*this.pop();this.stack.push({type:"doc-end",offset:this.offset,source:this.source});return}if(!e)return yield*this.stream();switch(e.type){case"document":return yield*this.document(e);case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return yield*this.scalar(e);case"block-scalar":return yield*this.blockScalar(e);case"block-map":return yield*this.blockMap(e);case"block-seq":return yield*this.blockSequence(e);case"flow-collection":return yield*this.flowCollection(e);case"doc-end":return yield*this.documentEnd(e)}yield*this.pop()}peek(e){return this.stack[this.stack.length-e]}*pop(e){const t=e??this.stack.pop();if(!t){const e="Tried to pop an empty stack";yield{type:"error",offset:this.offset,source:"",message:e}}else if(this.stack.length===0){yield t}else{const e=this.peek(1);if(t.type==="block-scalar"){t.indent="indent"in e?e.indent:0}else if(t.type==="flow-collection"&&e.type==="document"){t.indent=0}if(t.type==="flow-collection")fixFlowSeqItems(t);switch(e.type){case"document":e.value=t;break;case"block-scalar":e.props.push(t);break;case"block-map":{const r=e.items[e.items.length-1];if(r.value){e.items.push({start:[],key:t,sep:[]});this.onKeyLine=true;return}else if(r.sep){r.value=t}else{Object.assign(r,{key:t,sep:[]});this.onKeyLine=!includesToken(r.start,"explicit-key-ind");return}break}case"block-seq":{const r=e.items[e.items.length-1];if(r.value)e.items.push({start:[],value:t});else r.value=t;break}case"flow-collection":{const r=e.items[e.items.length-1];if(!r||r.value)e.items.push({start:[],key:t,sep:[]});else if(r.sep)r.value=t;else Object.assign(r,{key:t,sep:[]});return}default:yield*this.pop();yield*this.pop(t)}if((e.type==="document"||e.type==="block-map"||e.type==="block-seq")&&(t.type==="block-map"||t.type==="block-seq")){const r=t.items[t.items.length-1];if(r&&!r.sep&&!r.value&&r.start.length>0&&findNonEmptyIndex(r.start)===-1&&(t.indent===0||r.start.every((e=>e.type!=="comment"||e.indent=e.indent){const r=!this.onKeyLine&&this.indent===e.indent&&t.sep;let a=[];if(r&&t.sep&&!t.value){const r=[];for(let a=0;ae.indent)r.length=0;break;default:r.length=0}}if(r.length>=2)a=t.sep.splice(r[1])}switch(this.type){case"anchor":case"tag":if(r||t.value){a.push(this.sourceToken);e.items.push({start:a});this.onKeyLine=true}else if(t.sep){t.sep.push(this.sourceToken)}else{t.start.push(this.sourceToken)}return;case"explicit-key-ind":if(!t.sep&&!includesToken(t.start,"explicit-key-ind")){t.start.push(this.sourceToken)}else if(r||t.value){a.push(this.sourceToken);e.items.push({start:a})}else{this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]})}this.onKeyLine=true;return;case"map-value-ind":if(includesToken(t.start,"explicit-key-ind")){if(!t.sep){if(includesToken(t.start,"newline")){Object.assign(t,{key:null,sep:[this.sourceToken]})}else{const e=getFirstKeyStartProps(t.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:e,key:null,sep:[this.sourceToken]}]})}}else if(t.value){e.items.push({start:[],key:null,sep:[this.sourceToken]})}else if(includesToken(t.sep,"map-value-ind")){this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:a,key:null,sep:[this.sourceToken]}]})}else if(isFlowToken(t.key)&&!includesToken(t.sep,"newline")){const e=getFirstKeyStartProps(t.start);const r=t.key;const a=t.sep;a.push(this.sourceToken);delete t.key,delete t.sep;this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:e,key:r,sep:a}]})}else if(a.length>0){t.sep=t.sep.concat(a,this.sourceToken)}else{t.sep.push(this.sourceToken)}}else{if(!t.sep){Object.assign(t,{key:null,sep:[this.sourceToken]})}else if(t.value||r){e.items.push({start:a,key:null,sep:[this.sourceToken]})}else if(includesToken(t.sep,"map-value-ind")){this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]})}else{t.sep.push(this.sourceToken)}}this.onKeyLine=true;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{const n=this.flowScalar(this.type);if(r||t.value){e.items.push({start:a,key:n,sep:[]});this.onKeyLine=true}else if(t.sep){this.stack.push(n)}else{Object.assign(t,{key:n,sep:[]});this.onKeyLine=true}return}default:{const n=this.startBlockValue(e);if(n){if(r&&n.type!=="block-seq"&&includesToken(t.start,"explicit-key-ind")){e.items.push({start:a})}this.stack.push(n);return}}}}yield*this.pop();yield*this.step()}*blockSequence(e){const t=e.items[e.items.length-1];switch(this.type){case"newline":if(t.value){const r="end"in t.value?t.value.end:undefined;const a=Array.isArray(r)?r[r.length-1]:undefined;if(a?.type==="comment")r?.push(this.sourceToken);else e.items.push({start:[this.sourceToken]})}else t.start.push(this.sourceToken);return;case"space":case"comment":if(t.value)e.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(t.start,e.indent)){const r=e.items[e.items.length-2];const a=r?.value?.end;if(Array.isArray(a)){Array.prototype.push.apply(a,t.start);a.push(this.sourceToken);e.items.pop();return}}t.start.push(this.sourceToken)}return;case"anchor":case"tag":if(t.value||this.indent<=e.indent)break;t.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==e.indent)break;if(t.value||includesToken(t.start,"seq-item-ind"))e.items.push({start:[this.sourceToken]});else t.start.push(this.sourceToken);return}if(this.indent>e.indent){const t=this.startBlockValue(e);if(t){this.stack.push(t);return}}yield*this.pop();yield*this.step()}*flowCollection(e){const t=e.items[e.items.length-1];if(this.type==="flow-error-end"){let e;do{yield*this.pop();e=this.peek(1)}while(e&&e.type==="flow-collection")}else if(e.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":if(!t||t.sep)e.items.push({start:[this.sourceToken]});else t.start.push(this.sourceToken);return;case"map-value-ind":if(!t||t.value)e.items.push({start:[],key:null,sep:[this.sourceToken]});else if(t.sep)t.sep.push(this.sourceToken);else Object.assign(t,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":if(!t||t.value)e.items.push({start:[this.sourceToken]});else if(t.sep)t.sep.push(this.sourceToken);else t.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{const r=this.flowScalar(this.type);if(!t||t.value)e.items.push({start:[],key:r,sep:[]});else if(t.sep)this.stack.push(r);else Object.assign(t,{key:r,sep:[]});return}case"flow-map-end":case"flow-seq-end":e.end.push(this.sourceToken);return}const r=this.startBlockValue(e);if(r)this.stack.push(r);else{yield*this.pop();yield*this.step()}}else{const t=this.peek(2);if(t.type==="block-map"&&(this.type==="map-value-ind"&&t.indent===e.indent||this.type==="newline"&&!t.items[t.items.length-1].sep)){yield*this.pop();yield*this.step()}else if(this.type==="map-value-ind"&&t.type!=="flow-collection"){const r=getPrevProps(t);const a=getFirstKeyStartProps(r);fixFlowSeqItems(e);const n=e.end.splice(1,e.end.length);n.push(this.sourceToken);const i={type:"block-map",offset:e.offset,indent:e.indent,items:[{start:a,key:e,sep:n}]};this.onKeyLine=true;this.stack[this.stack.length-1]=i}else{yield*this.lineEnd(e)}}}flowScalar(e){if(this.onNewLine){let e=this.source.indexOf("\n")+1;while(e!==0){this.onNewLine(this.offset+e);e=this.source.indexOf("\n",e)+1}}return{type:e,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(e){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=true;const t=getPrevProps(e);const r=getFirstKeyStartProps(t);r.push(this.sourceToken);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r}]}}case"map-value-ind":{this.onKeyLine=true;const t=getPrevProps(e);const r=getFirstKeyStartProps(t);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(e,t){if(this.type!=="comment")return false;if(this.indent<=t)return false;return e.every((e=>e.type==="newline"||e.type==="space"))}*documentEnd(e){if(this.type!=="doc-mode"){if(e.end)e.end.push(this.sourceToken);else e.end=[this.sourceToken];if(this.type==="newline")yield*this.pop()}}*lineEnd(e){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop();yield*this.step();break;case"newline":this.onKeyLine=false;case"space":case"comment":default:if(e.end)e.end.push(this.sourceToken);else e.end=[this.sourceToken];if(this.type==="newline")yield*this.pop()}}}t.Parser=Parser},8649:(e,t,r)=>{"use strict";var a=r(9493);var n=r(42);var i=r(4236);var s=r(6909);var o=r(1929);var p=r(3328);function parseOptions(e){const t=e.prettyErrors!==false;const r=e.lineCounter||t&&new o.LineCounter||null;return{lineCounter:r,prettyErrors:t}}function parseAllDocuments(e,t={}){const{lineCounter:r,prettyErrors:n}=parseOptions(t);const s=new p.Parser(r?.addNewLine);const o=new a.Composer(t);const c=Array.from(o.compose(s.parse(e)));if(n&&r)for(const t of c){t.errors.forEach(i.prettifyError(e,r));t.warnings.forEach(i.prettifyError(e,r))}if(c.length>0)return c;return Object.assign([],{empty:true},o.streamInfo())}function parseDocument(e,t={}){const{lineCounter:r,prettyErrors:n}=parseOptions(t);const s=new p.Parser(r?.addNewLine);const o=new a.Composer(t);let c=null;for(const t of o.compose(s.parse(e),true,e.length)){if(!c)c=t;else if(c.options.logLevel!=="silent"){c.errors.push(new i.YAMLParseError(t.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}}if(n&&r){c.errors.forEach(i.prettifyError(e,r));c.warnings.forEach(i.prettifyError(e,r))}return c}function parse(e,t,r){let a=undefined;if(typeof t==="function"){a=t}else if(r===undefined&&t&&typeof t==="object"){r=t}const n=parseDocument(e,r);if(!n)return null;n.warnings.forEach((e=>s.warn(n.options.logLevel,e)));if(n.errors.length>0){if(n.options.logLevel!=="silent")throw n.errors[0];else n.errors=[]}return n.toJS(Object.assign({reviver:a},r))}function stringify(e,t,r){let a=null;if(typeof t==="function"||Array.isArray(t)){a=t}else if(r===undefined&&t){r=t}if(typeof r==="string")r=r.length;if(typeof r==="number"){const e=Math.round(r);r=e<1?undefined:e>8?{indent:8}:{indent:e}}if(e===undefined){const{keepUndefined:e}=r??t??{};if(!e)return undefined}return new n.Document(e,a,r).toString(r)}t.parse=parse;t.parseAllDocuments=parseAllDocuments;t.parseDocument=parseDocument;t.stringify=stringify},6831:(e,t,r)=>{"use strict";var a=r(1399);var n=r(83);var i=r(1693);var s=r(2201);var o=r(4138);const sortMapEntriesByKey=(e,t)=>e.keyt.key?1:0;class Schema{constructor({compat:e,customTags:t,merge:r,resolveKnownTags:p,schema:c,sortMapEntries:l,toStringDefaults:d}){this.compat=Array.isArray(e)?o.getTags(e,"compat"):e?o.getTags(null,e):null;this.merge=!!r;this.name=typeof c==="string"&&c||"core";this.knownTags=p?o.coreKnownTags:{};this.tags=o.getTags(t,this.name);this.toStringOptions=d??null;Object.defineProperty(this,a.MAP,{value:n.map});Object.defineProperty(this,a.SCALAR,{value:s.string});Object.defineProperty(this,a.SEQ,{value:i.seq});this.sortMapEntries=typeof l==="function"?l:l===true?sortMapEntriesByKey:null}clone(){const e=Object.create(Schema.prototype,Object.getOwnPropertyDescriptors(this));e.tags=this.tags.slice();return e}}t.Schema=Schema},83:(e,t,r)=>{"use strict";var a=r(1399);var n=r(246);var i=r(6011);function createMap(e,t,r){const{keepUndefined:a,replacer:s}=r;const o=new i.YAMLMap(e);const add=(e,i)=>{if(typeof s==="function")i=s.call(t,e,i);else if(Array.isArray(s)&&!s.includes(e))return;if(i!==undefined||a)o.items.push(n.createPair(e,i,r))};if(t instanceof Map){for(const[e,r]of t)add(e,r)}else if(t&&typeof t==="object"){for(const e of Object.keys(t))add(e,t[e])}if(typeof e.sortMapEntries==="function"){o.items.sort(e.sortMapEntries)}return o}const s={collection:"map",createNode:createMap,default:true,nodeClass:i.YAMLMap,tag:"tag:yaml.org,2002:map",resolve(e,t){if(!a.isMap(e))t("Expected a mapping for this tag");return e}};t.map=s},6703:(e,t,r)=>{"use strict";var a=r(9338);const n={identify:e=>e==null,createNode:()=>new a.Scalar(null),default:true,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new a.Scalar(null),stringify:({source:e},t)=>typeof e==="string"&&n.test.test(e)?e:t.options.nullStr};t.nullTag=n},1693:(e,t,r)=>{"use strict";var a=r(9652);var n=r(1399);var i=r(5161);function createSeq(e,t,r){const{replacer:n}=r;const s=new i.YAMLSeq(e);if(t&&Symbol.iterator in Object(t)){let e=0;for(let i of t){if(typeof n==="function"){const r=t instanceof Set?i:String(e++);i=n.call(t,r,i)}s.items.push(a.createNode(i,undefined,r))}}return s}const s={collection:"seq",createNode:createSeq,default:true,nodeClass:i.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve(e,t){if(!n.isSeq(e))t("Expected a sequence for this tag");return e}};t.seq=s},2201:(e,t,r)=>{"use strict";var a=r(6226);const n={identify:e=>typeof e==="string",default:true,tag:"tag:yaml.org,2002:str",resolve:e=>e,stringify(e,t,r,n){t=Object.assign({actualString:true},t);return a.stringifyString(e,t,r,n)}};t.string=n},2045:(e,t,r)=>{"use strict";var a=r(9338);const n={identify:e=>typeof e==="boolean",default:true,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:e=>new a.Scalar(e[0]==="t"||e[0]==="T"),stringify({source:e,value:t},r){if(e&&n.test.test(e)){const r=e[0]==="t"||e[0]==="T";if(t===r)return e}return t?r.options.trueStr:r.options.falseStr}};t.boolTag=n},6810:(e,t,r)=>{"use strict";var a=r(9338);var n=r(4174);const i={identify:e=>typeof e==="number",default:true,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF|nan|NaN|NAN))$/,resolve:e=>e.slice(-3).toLowerCase()==="nan"?NaN:e[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:n.stringifyNumber};const s={identify:e=>typeof e==="number",default:true,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e),stringify(e){const t=Number(e.value);return isFinite(t)?t.toExponential():n.stringifyNumber(e)}};const o={identify:e=>typeof e==="number",default:true,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(e){const t=new a.Scalar(parseFloat(e));const r=e.indexOf(".");if(r!==-1&&e[e.length-1]==="0")t.minFractionDigits=e.length-r-1;return t},stringify:n.stringifyNumber};t.float=o;t.floatExp=s;t.floatNaN=i},3019:(e,t,r)=>{"use strict";var a=r(4174);const intIdentify=e=>typeof e==="bigint"||Number.isInteger(e);const intResolve=(e,t,r,{intAsBigInt:a})=>a?BigInt(e):parseInt(e.substring(t),r);function intStringify(e,t,r){const{value:n}=e;if(intIdentify(n)&&n>=0)return r+n.toString(t);return a.stringifyNumber(e)}const n={identify:e=>intIdentify(e)&&e>=0,default:true,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(e,t,r)=>intResolve(e,2,8,r),stringify:e=>intStringify(e,8,"0o")};const i={identify:intIdentify,default:true,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(e,t,r)=>intResolve(e,0,10,r),stringify:a.stringifyNumber};const s={identify:e=>intIdentify(e)&&e>=0,default:true,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(e,t,r)=>intResolve(e,2,16,r),stringify:e=>intStringify(e,16,"0x")};t.int=i;t.intHex=s;t.intOct=n},27:(e,t,r)=>{"use strict";var a=r(83);var n=r(6703);var i=r(1693);var s=r(2201);var o=r(2045);var p=r(6810);var c=r(3019);const l=[a.map,i.seq,s.string,n.nullTag,o.boolTag,c.intOct,c.int,c.intHex,p.floatNaN,p.floatExp,p.float];t.schema=l},4545:(e,t,r)=>{"use strict";var a=r(9338);var n=r(83);var i=r(1693);function intIdentify(e){return typeof e==="bigint"||Number.isInteger(e)}const stringifyJSON=({value:e})=>JSON.stringify(e);const s=[{identify:e=>typeof e==="string",default:true,tag:"tag:yaml.org,2002:str",resolve:e=>e,stringify:stringifyJSON},{identify:e=>e==null,createNode:()=>new a.Scalar(null),default:true,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:stringifyJSON},{identify:e=>typeof e==="boolean",default:true,tag:"tag:yaml.org,2002:bool",test:/^true|false$/,resolve:e=>e==="true",stringify:stringifyJSON},{identify:intIdentify,default:true,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(e,t,{intAsBigInt:r})=>r?BigInt(e):parseInt(e,10),stringify:({value:e})=>intIdentify(e)?e.toString():JSON.stringify(e)},{identify:e=>typeof e==="number",default:true,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:e=>parseFloat(e),stringify:stringifyJSON}];const o={default:true,tag:"",test:/^/,resolve(e,t){t(`Unresolved plain scalar ${JSON.stringify(e)}`);return e}};const p=[n.map,i.seq].concat(s,o);t.schema=p},4138:(e,t,r)=>{"use strict";var a=r(83);var n=r(6703);var i=r(1693);var s=r(2201);var o=r(2045);var p=r(6810);var c=r(3019);var l=r(27);var d=r(4545);var u=r(5724);var m=r(8974);var h=r(9841);var g=r(5389);var v=r(7847);var y=r(1156);const b=new Map([["core",l.schema],["failsafe",[a.map,i.seq,s.string]],["json",d.schema],["yaml11",g.schema],["yaml-1.1",g.schema]]);const w={binary:u.binary,bool:o.boolTag,float:p.float,floatExp:p.floatExp,floatNaN:p.floatNaN,floatTime:y.floatTime,int:c.int,intHex:c.intHex,intOct:c.intOct,intTime:y.intTime,map:a.map,null:n.nullTag,omap:m.omap,pairs:h.pairs,seq:i.seq,set:v.set,timestamp:y.timestamp};const x={"tag:yaml.org,2002:binary":u.binary,"tag:yaml.org,2002:omap":m.omap,"tag:yaml.org,2002:pairs":h.pairs,"tag:yaml.org,2002:set":v.set,"tag:yaml.org,2002:timestamp":y.timestamp};function getTags(e,t){let r=b.get(t);if(!r){if(Array.isArray(e))r=[];else{const e=Array.from(b.keys()).filter((e=>e!=="yaml11")).map((e=>JSON.stringify(e))).join(", ");throw new Error(`Unknown schema "${t}"; use one of ${e} or define customTags array`)}}if(Array.isArray(e)){for(const t of e)r=r.concat(t)}else if(typeof e==="function"){r=e(r.slice())}return r.map((e=>{if(typeof e!=="string")return e;const t=w[e];if(t)return t;const r=Object.keys(w).map((e=>JSON.stringify(e))).join(", ");throw new Error(`Unknown custom tag "${e}"; use one of ${r}`)}))}t.coreKnownTags=x;t.getTags=getTags},5724:(e,t,r)=>{"use strict";var a=r(9338);var n=r(6226);const i={identify:e=>e instanceof Uint8Array,default:false,tag:"tag:yaml.org,2002:binary",resolve(e,t){if(typeof Buffer==="function"){return Buffer.from(e,"base64")}else if(typeof atob==="function"){const t=atob(e.replace(/[\n\r]/g,""));const r=new Uint8Array(t.length);for(let e=0;e{"use strict";var a=r(9338);function boolStringify({value:e,source:t},r){const a=e?n:i;if(t&&a.test.test(t))return t;return e?r.options.trueStr:r.options.falseStr}const n={identify:e=>e===true,default:true,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new a.Scalar(true),stringify:boolStringify};const i={identify:e=>e===false,default:true,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/i,resolve:()=>new a.Scalar(false),stringify:boolStringify};t.falseTag=i;t.trueTag=n},8035:(e,t,r)=>{"use strict";var a=r(9338);var n=r(4174);const i={identify:e=>typeof e==="number",default:true,tag:"tag:yaml.org,2002:float",test:/^[-+]?\.(?:inf|Inf|INF|nan|NaN|NAN)$/,resolve:e=>e.slice(-3).toLowerCase()==="nan"?NaN:e[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:n.stringifyNumber};const s={identify:e=>typeof e==="number",default:true,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e.replace(/_/g,"")),stringify(e){const t=Number(e.value);return isFinite(t)?t.toExponential():n.stringifyNumber(e)}};const o={identify:e=>typeof e==="number",default:true,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(e){const t=new a.Scalar(parseFloat(e.replace(/_/g,"")));const r=e.indexOf(".");if(r!==-1){const a=e.substring(r+1).replace(/_/g,"");if(a[a.length-1]==="0")t.minFractionDigits=a.length}return t},stringify:n.stringifyNumber};t.float=o;t.floatExp=s;t.floatNaN=i},9503:(e,t,r)=>{"use strict";var a=r(4174);const intIdentify=e=>typeof e==="bigint"||Number.isInteger(e);function intResolve(e,t,r,{intAsBigInt:a}){const n=e[0];if(n==="-"||n==="+")t+=1;e=e.substring(t).replace(/_/g,"");if(a){switch(r){case 2:e=`0b${e}`;break;case 8:e=`0o${e}`;break;case 16:e=`0x${e}`;break}const t=BigInt(e);return n==="-"?BigInt(-1)*t:t}const i=parseInt(e,r);return n==="-"?-1*i:i}function intStringify(e,t,r){const{value:n}=e;if(intIdentify(n)){const e=n.toString(t);return n<0?"-"+r+e.substr(1):r+e}return a.stringifyNumber(e)}const n={identify:intIdentify,default:true,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(e,t,r)=>intResolve(e,2,2,r),stringify:e=>intStringify(e,2,"0b")};const i={identify:intIdentify,default:true,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(e,t,r)=>intResolve(e,1,8,r),stringify:e=>intStringify(e,8,"0")};const s={identify:intIdentify,default:true,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(e,t,r)=>intResolve(e,0,10,r),stringify:a.stringifyNumber};const o={identify:intIdentify,default:true,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(e,t,r)=>intResolve(e,2,16,r),stringify:e=>intStringify(e,16,"0x")};t.int=s;t.intBin=n;t.intHex=o;t.intOct=i},8974:(e,t,r)=>{"use strict";var a=r(5161);var n=r(2463);var i=r(1399);var s=r(6011);var o=r(9841);class YAMLOMap extends a.YAMLSeq{constructor(){super();this.add=s.YAMLMap.prototype.add.bind(this);this.delete=s.YAMLMap.prototype.delete.bind(this);this.get=s.YAMLMap.prototype.get.bind(this);this.has=s.YAMLMap.prototype.has.bind(this);this.set=s.YAMLMap.prototype.set.bind(this);this.tag=YAMLOMap.tag}toJSON(e,t){if(!t)return super.toJSON(e);const r=new Map;if(t?.onCreate)t.onCreate(r);for(const e of this.items){let a,s;if(i.isPair(e)){a=n.toJS(e.key,"",t);s=n.toJS(e.value,a,t)}else{a=n.toJS(e,"",t)}if(r.has(a))throw new Error("Ordered maps must not include duplicate keys");r.set(a,s)}return r}}YAMLOMap.tag="tag:yaml.org,2002:omap";const p={collection:"seq",identify:e=>e instanceof Map,nodeClass:YAMLOMap,default:false,tag:"tag:yaml.org,2002:omap",resolve(e,t){const r=o.resolvePairs(e,t);const a=[];for(const{key:e}of r.items){if(i.isScalar(e)){if(a.includes(e.value)){t(`Ordered maps must not include duplicate keys: ${e.value}`)}else{a.push(e.value)}}}return Object.assign(new YAMLOMap,r)},createNode(e,t,r){const a=o.createPairs(e,t,r);const n=new YAMLOMap;n.items=a.items;return n}};t.YAMLOMap=YAMLOMap;t.omap=p},9841:(e,t,r)=>{"use strict";var a=r(1399);var n=r(246);var i=r(9338);var s=r(5161);function resolvePairs(e,t){if(a.isSeq(e)){for(let r=0;r1)t("Each pair must have its own sequence indicator");const e=s.items[0]||new n.Pair(new i.Scalar(null));if(s.commentBefore)e.key.commentBefore=e.key.commentBefore?`${s.commentBefore}\n${e.key.commentBefore}`:s.commentBefore;if(s.comment){const t=e.value??e.key;t.comment=t.comment?`${s.comment}\n${t.comment}`:s.comment}s=e}e.items[r]=a.isPair(s)?s:new n.Pair(s)}}else t("Expected a sequence for this tag");return e}function createPairs(e,t,r){const{replacer:a}=r;const i=new s.YAMLSeq(e);i.tag="tag:yaml.org,2002:pairs";let o=0;if(t&&Symbol.iterator in Object(t))for(let e of t){if(typeof a==="function")e=a.call(t,String(o++),e);let s,p;if(Array.isArray(e)){if(e.length===2){s=e[0];p=e[1]}else throw new TypeError(`Expected [key, value] tuple: ${e}`)}else if(e&&e instanceof Object){const t=Object.keys(e);if(t.length===1){s=t[0];p=e[s]}else throw new TypeError(`Expected { key: value } tuple: ${e}`)}else{s=e}i.items.push(n.createPair(s,p,r))}return i}const o={collection:"seq",default:false,tag:"tag:yaml.org,2002:pairs",resolve:resolvePairs,createNode:createPairs};t.createPairs=createPairs;t.pairs=o;t.resolvePairs=resolvePairs},5389:(e,t,r)=>{"use strict";var a=r(83);var n=r(6703);var i=r(1693);var s=r(2201);var o=r(5724);var p=r(2631);var c=r(8035);var l=r(9503);var d=r(8974);var u=r(9841);var m=r(7847);var h=r(1156);const g=[a.map,i.seq,s.string,n.nullTag,p.trueTag,p.falseTag,l.intBin,l.intOct,l.int,l.intHex,c.floatNaN,c.floatExp,c.float,o.binary,d.omap,u.pairs,m.set,h.intTime,h.floatTime,h.timestamp];t.schema=g},7847:(e,t,r)=>{"use strict";var a=r(1399);var n=r(246);var i=r(6011);class YAMLSet extends i.YAMLMap{constructor(e){super(e);this.tag=YAMLSet.tag}add(e){let t;if(a.isPair(e))t=e;else if(e&&typeof e==="object"&&"key"in e&&"value"in e&&e.value===null)t=new n.Pair(e.key,null);else t=new n.Pair(e,null);const r=i.findPair(this.items,t.key);if(!r)this.items.push(t)}get(e,t){const r=i.findPair(this.items,e);return!t&&a.isPair(r)?a.isScalar(r.key)?r.key.value:r.key:r}set(e,t){if(typeof t!=="boolean")throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof t}`);const r=i.findPair(this.items,e);if(r&&!t){this.items.splice(this.items.indexOf(r),1)}else if(!r&&t){this.items.push(new n.Pair(e))}}toJSON(e,t){return super.toJSON(e,t,Set)}toString(e,t,r){if(!e)return JSON.stringify(this);if(this.hasAllNullValues(true))return super.toString(Object.assign({},e,{allNullValues:true}),t,r);else throw new Error("Set items must all have null values")}}YAMLSet.tag="tag:yaml.org,2002:set";const s={collection:"map",identify:e=>e instanceof Set,nodeClass:YAMLSet,default:false,tag:"tag:yaml.org,2002:set",resolve(e,t){if(a.isMap(e)){if(e.hasAllNullValues(true))return Object.assign(new YAMLSet,e);else t("Set items must all have null values")}else t("Expected a mapping for this tag");return e},createNode(e,t,r){const{replacer:a}=r;const i=new YAMLSet(e);if(t&&Symbol.iterator in Object(t))for(let e of t){if(typeof a==="function")e=a.call(t,e,e);i.items.push(n.createPair(e,null,r))}return i}};t.YAMLSet=YAMLSet;t.set=s},1156:(e,t,r)=>{"use strict";var a=r(4174);function parseSexagesimal(e,t){const r=e[0];const a=r==="-"||r==="+"?e.substring(1):e;const num=e=>t?BigInt(e):Number(e);const n=a.replace(/_/g,"").split(":").reduce(((e,t)=>e*num(60)+num(t)),num(0));return r==="-"?num(-1)*n:n}function stringifySexagesimal(e){let{value:t}=e;let num=e=>e;if(typeof t==="bigint")num=e=>BigInt(e);else if(isNaN(t)||!isFinite(t))return a.stringifyNumber(e);let r="";if(t<0){r="-";t*=num(-1)}const n=num(60);const i=[t%n];if(t<60){i.unshift(0)}else{t=(t-i[0])/n;i.unshift(t%n);if(t>=60){t=(t-i[0])/n;i.unshift(t)}}return r+i.map((e=>e<10?"0"+String(e):String(e))).join(":").replace(/000000\d*$/,"")}const n={identify:e=>typeof e==="bigint"||Number.isInteger(e),default:true,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(e,t,{intAsBigInt:r})=>parseSexagesimal(e,r),stringify:stringifySexagesimal};const i={identify:e=>typeof e==="number",default:true,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:e=>parseSexagesimal(e,false),stringify:stringifySexagesimal};const s={identify:e=>e instanceof Date,default:true,tag:"tag:yaml.org,2002:timestamp",test:RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})"+"(?:"+"(?:t|T|[ \\t]+)"+"([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)"+"(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?"+")?$"),resolve(e){const t=e.match(s.test);if(!t)throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");const[,r,a,n,i,o,p]=t.map(Number);const c=t[7]?Number((t[7]+"00").substr(1,3)):0;let l=Date.UTC(r,a-1,n,i||0,o||0,p||0,c);const d=t[8];if(d&&d!=="Z"){let e=parseSexagesimal(d,false);if(Math.abs(e)<30)e*=60;l-=6e4*e}return new Date(l)},stringify:({value:e})=>e.toISOString().replace(/((T00:00)?:00)?\.000Z$/,"")};t.floatTime=i;t.intTime=n;t.timestamp=s},2889:(e,t)=>{"use strict";const r="flow";const a="block";const n="quoted";function foldFlowLines(e,t,r="flow",{indentAtStart:i,lineWidth:s=80,minContentWidth:o=20,onFold:p,onOverflow:c}={}){if(!s||s<0)return e;const l=Math.max(1+o,1+s-t.length);if(e.length<=l)return e;const d=[];const u={};let m=s-t.length;if(typeof i==="number"){if(i>s-Math.max(2,o))d.push(0);else m=s-i}let h=undefined;let g=undefined;let v=false;let y=-1;let b=-1;let w=-1;if(r===a){y=consumeMoreIndentedLines(e,y);if(y!==-1)m=y+l}for(let t;t=e[y+=1];){if(r===n&&t==="\\"){b=y;switch(e[y+1]){case"x":y+=3;break;case"u":y+=5;break;case"U":y+=9;break;default:y+=1}w=y}if(t==="\n"){if(r===a)y=consumeMoreIndentedLines(e,y);m=y+l;h=undefined}else{if(t===" "&&g&&g!==" "&&g!=="\n"&&g!=="\t"){const t=e[y+1];if(t&&t!==" "&&t!=="\n"&&t!=="\t")h=y}if(y>=m){if(h){d.push(h);m=h+l;h=undefined}else if(r===n){while(g===" "||g==="\t"){g=t;t=e[y+=1];v=true}const r=y>w+1?y-2:b-1;if(u[r])return e;d.push(r);u[r]=true;m=r+l;h=undefined}else{v=true}}}g=t}if(v&&c)c();if(d.length===0)return e;if(p)p();let x=e.slice(0,d[0]);for(let a=0;a{"use strict";var a=r(8459);var n=r(1399);var i=r(5182);var s=r(6226);function createStringifyContext(e,t){const r=Object.assign({blockQuote:true,commentString:i.stringifyComment,defaultKeyType:null,defaultStringType:"PLAIN",directives:null,doubleQuotedAsJSON:false,doubleQuotedMinMultiLineLength:40,falseStr:"false",flowCollectionPadding:true,indentSeq:true,lineWidth:80,minContentWidth:20,nullStr:"null",simpleKeys:false,singleQuote:null,trueStr:"true",verifyAliasOrder:true},e.schema.toStringOptions,t);let a;switch(r.collectionStyle){case"block":a=false;break;case"flow":a=true;break;default:a=null}return{anchors:new Set,doc:e,flowCollectionPadding:r.flowCollectionPadding?" ":"",indent:"",indentStep:typeof r.indent==="number"?" ".repeat(r.indent):" ",inFlow:a,options:r}}function getTagObject(e,t){if(t.tag){const r=e.filter((e=>e.tag===t.tag));if(r.length>0)return r.find((e=>e.format===t.format))??r[0]}let r=undefined;let a;if(n.isScalar(t)){a=t.value;const n=e.filter((e=>e.identify?.(a)));r=n.find((e=>e.format===t.format))??n.find((e=>!e.format))}else{a=t;r=e.find((e=>e.nodeClass&&a instanceof e.nodeClass))}if(!r){const e=a?.constructor?.name??typeof a;throw new Error(`Tag not resolved for ${e} value`)}return r}function stringifyProps(e,t,{anchors:r,doc:i}){if(!i.directives)return"";const s=[];const o=(n.isScalar(e)||n.isCollection(e))&&e.anchor;if(o&&a.anchorIsValid(o)){r.add(o);s.push(`&${o}`)}const p=e.tag?e.tag:t.default?null:t.tag;if(p)s.push(i.directives.tagString(p));return s.join(" ")}function stringify(e,t,r,a){if(n.isPair(e))return e.toString(t,r,a);if(n.isAlias(e)){if(t.doc.directives)return e.toString(t);if(t.resolvedAliases?.has(e)){throw new TypeError(`Cannot stringify circular structure without alias nodes`)}else{if(t.resolvedAliases)t.resolvedAliases.add(e);else t.resolvedAliases=new Set([e]);e=e.resolve(t.doc)}}let i=undefined;const o=n.isNode(e)?e:t.doc.createNode(e,{onTagObj:e=>i=e});if(!i)i=getTagObject(t.doc.schema.tags,o);const p=stringifyProps(o,i,t);if(p.length>0)t.indentAtStart=(t.indentAtStart??0)+p.length+1;const c=typeof i.stringify==="function"?i.stringify(o,t,r,a):n.isScalar(o)?s.stringifyString(o,t,r,a):o.toString(t,r,a);if(!p)return c;return n.isScalar(o)||c[0]==="{"||c[0]==="["?`${p} ${c}`:`${p}\n${t.indent}${c}`}t.createStringifyContext=createStringifyContext;t.stringify=stringify},2466:(e,t,r)=>{"use strict";var a=r(3466);var n=r(1399);var i=r(8409);var s=r(5182);function stringifyCollection(e,t,r){const a=t.inFlow??e.flow;const n=a?stringifyFlowCollection:stringifyBlockCollection;return n(e,t,r)}function stringifyBlockCollection({comment:e,items:t},r,{blockItemPrefix:a,flowChars:o,itemIndent:p,onChompKeep:c,onComment:l}){const{indent:d,options:{commentString:u}}=r;const m=Object.assign({},r,{indent:p,type:null});let h=false;const g=[];for(let e=0;ec=null),(()=>h=true));if(c)l+=s.lineComment(l,p,u(c));if(h&&c)h=false;g.push(a+l)}let v;if(g.length===0){v=o.start+o.end}else{v=g[0];for(let e=1;eo=null));if(ev||c.includes("\n")))g=true;y.push(c);v=y.length}let b;const{start:w,end:x}=o;if(y.length===0){b=w+x}else{if(!g){const e=y.reduce(((e,t)=>e+t.length+2),2);g=e>a.Collection.maxFlowStringSingleLineLength}if(g){b=w;for(const e of y)b+=e?`\n${d}${l}${e}`:"\n";b+=`\n${l}${x}`}else{b=`${w}${u}${y.join(" ")}${u}${x}`}}if(e){b+=s.lineComment(b,l,m(e));if(c)c()}return b}function addCommentBefore({indent:e,options:{commentString:t}},r,a,n){if(a&&n)a=a.replace(/^\n+/,"");if(a){const n=s.indentComment(t(a),e);r.push(n.trimStart())}}t.stringifyCollection=stringifyCollection},5182:(e,t)=>{"use strict";const stringifyComment=e=>e.replace(/^(?!$)(?: $)?/gm,"#");function indentComment(e,t){if(/^\n+$/.test(e))return e.substring(1);return t?e.replace(/^(?! *$)/gm,t):e}const lineComment=(e,t,r)=>e.endsWith("\n")?indentComment(r,t):r.includes("\n")?"\n"+indentComment(r,t):(e.endsWith(" ")?"":" ")+r;t.indentComment=indentComment;t.lineComment=lineComment;t.stringifyComment=stringifyComment},5225:(e,t,r)=>{"use strict";var a=r(1399);var n=r(8409);var i=r(5182);function stringifyDocument(e,t){const r=[];let s=t.directives===true;if(t.directives!==false&&e.directives){const t=e.directives.toString(e);if(t){r.push(t);s=true}else if(e.directives.docStart)s=true}if(s)r.push("---");const o=n.createStringifyContext(e,t);const{commentString:p}=o.options;if(e.commentBefore){if(r.length!==1)r.unshift("");const t=p(e.commentBefore);r.unshift(i.indentComment(t,""))}let c=false;let l=null;if(e.contents){if(a.isNode(e.contents)){if(e.contents.spaceBefore&&s)r.push("");if(e.contents.commentBefore){const t=p(e.contents.commentBefore);r.push(i.indentComment(t,""))}o.forceBlockIndent=!!e.comment;l=e.contents.comment}const t=l?undefined:()=>c=true;let d=n.stringify(e.contents,o,(()=>l=null),t);if(l)d+=i.lineComment(d,"",p(l));if((d[0]==="|"||d[0]===">")&&r[r.length-1]==="---"){r[r.length-1]=`--- ${d}`}else r.push(d)}else{r.push(n.stringify(e.contents,o))}if(e.directives?.docEnd){if(e.comment){const t=p(e.comment);if(t.includes("\n")){r.push("...");r.push(i.indentComment(t,""))}else{r.push(`... ${t}`)}}else{r.push("...")}}else{let t=e.comment;if(t&&c)t=t.replace(/^\n+/,"");if(t){if((!c||l)&&r[r.length-1]!=="")r.push("");r.push(i.indentComment(p(t),""))}}return r.join("\n")+"\n"}t.stringifyDocument=stringifyDocument},4174:(e,t)=>{"use strict";function stringifyNumber({format:e,minFractionDigits:t,tag:r,value:a}){if(typeof a==="bigint")return String(a);const n=typeof a==="number"?a:Number(a);if(!isFinite(n))return isNaN(n)?".nan":n<0?"-.inf":".inf";let i=JSON.stringify(a);if(!e&&t&&(!r||r==="tag:yaml.org,2002:float")&&/^\d/.test(i)){let e=i.indexOf(".");if(e<0){e=i.length;i+="."}let r=t-(i.length-e-1);while(r-- >0)i+="0"}return i}t.stringifyNumber=stringifyNumber},4875:(e,t,r)=>{"use strict";var a=r(1399);var n=r(9338);var i=r(8409);var s=r(5182);function stringifyPair({key:e,value:t},r,o,p){const{allNullValues:c,doc:l,indent:d,indentStep:u,options:{commentString:m,indentSeq:h,simpleKeys:g}}=r;let v=a.isNode(e)&&e.comment||null;if(g){if(v){throw new Error("With simple keys, key nodes cannot have comments")}if(a.isCollection(e)){const e="With simple keys, collection cannot be used as a key value";throw new Error(e)}}let y=!g&&(!e||v&&t==null&&!r.inFlow||a.isCollection(e)||(a.isScalar(e)?e.type===n.Scalar.BLOCK_FOLDED||e.type===n.Scalar.BLOCK_LITERAL:typeof e==="object"));r=Object.assign({},r,{allNullValues:false,implicitKey:!y&&(g||!c),indent:d+u});let b=false;let w=false;let x=i.stringify(e,r,(()=>b=true),(()=>w=true));if(!y&&!r.inFlow&&x.length>1024){if(g)throw new Error("With simple keys, single line scalar must not span more than 1024 characters");y=true}if(r.inFlow){if(c||t==null){if(b&&o)o();return x===""?"?":y?`? ${x}`:x}}else if(c&&!g||t==null&&y){x=`? ${x}`;if(v&&!b){x+=s.lineComment(x,r.indent,m(v))}else if(w&&p)p();return x}if(b)v=null;if(y){if(v)x+=s.lineComment(x,r.indent,m(v));x=`? ${x}\n${d}:`}else{x=`${x}:`;if(v)x+=s.lineComment(x,r.indent,m(v))}let E,T,S;if(a.isNode(t)){E=!!t.spaceBefore;T=t.commentBefore;S=t.comment}else{E=false;T=null;S=null;if(t&&typeof t==="object")t=l.createNode(t)}r.implicitKey=false;if(!y&&!v&&a.isScalar(t))r.indentAtStart=x.length+1;w=false;if(!h&&u.length>=2&&!r.inFlow&&!y&&a.isSeq(t)&&!t.flow&&!t.tag&&!t.anchor){r.indent=r.indent.substring(2)}let k=false;const O=i.stringify(t,r,(()=>k=true),(()=>w=true));let C=" ";if(v||E||T){C=E?"\n":"";if(T){const e=m(T);C+=`\n${s.indentComment(e,r.indent)}`}if(O===""&&!r.inFlow){if(C==="\n")C="\n\n"}else{C+=`\n${r.indent}`}}else if(!y&&a.isCollection(t)){const e=O[0];const a=O.indexOf("\n");const n=a!==-1;const i=r.inFlow??t.flow??t.items.length===0;if(n||!i){let t=false;if(n&&(e==="&"||e==="!")){let r=O.indexOf(" ");if(e==="&"&&r!==-1&&r{"use strict";var a=r(9338);var n=r(2889);const getFoldOptions=(e,t)=>({indentAtStart:t?e.indent.length:e.indentAtStart,lineWidth:e.options.lineWidth,minContentWidth:e.options.minContentWidth});const containsDocumentMarker=e=>/^(%|---|\.\.\.)/m.test(e);function lineLengthOverLimit(e,t,r){if(!t||t<0)return false;const a=t-r;const n=e.length;if(n<=a)return false;for(let t=0,r=0;ta)return true;r=t+1;if(n-r<=a)return false}}return true}function doubleQuotedString(e,t){const r=JSON.stringify(e);if(t.options.doubleQuotedAsJSON)return r;const{implicitKey:a}=t;const i=t.options.doubleQuotedMinMultiLineLength;const s=t.indent||(containsDocumentMarker(e)?" ":"");let o="";let p=0;for(let e=0,t=r[e];t;t=r[++e]){if(t===" "&&r[e+1]==="\\"&&r[e+2]==="n"){o+=r.slice(p,e)+"\\ ";e+=1;p=e;t="\\"}if(t==="\\")switch(r[e+1]){case"u":{o+=r.slice(p,e);const t=r.substr(e+2,4);switch(t){case"0000":o+="\\0";break;case"0007":o+="\\a";break;case"000b":o+="\\v";break;case"001b":o+="\\e";break;case"0085":o+="\\N";break;case"00a0":o+="\\_";break;case"2028":o+="\\L";break;case"2029":o+="\\P";break;default:if(t.substr(0,2)==="00")o+="\\x"+t.substr(2);else o+=r.substr(e,6)}e+=5;p=e+1}break;case"n":if(a||r[e+2]==='"'||r.length\n";let m;let h;for(h=r.length;h>0;--h){const e=r[h-1];if(e!=="\n"&&e!=="\t"&&e!==" ")break}let g=r.substring(h);const v=g.indexOf("\n");if(v===-1){m="-"}else if(r===g||v!==g.length-1){m="+";if(o)o()}else{m=""}if(g){r=r.slice(0,-g.length);if(g[g.length-1]==="\n")g=g.slice(0,-1);g=g.replace(/\n+(?!\n|$)/g,`$&${d}`)}let y=false;let b;let w=-1;for(b=0;b")+(y?E:"")+m;if(e){T+=" "+c(e.replace(/ ?[\r\n]+/g," "));if(s)s()}if(u){r=r.replace(/\n+/g,`$&${d}`);return`${T}\n${d}${x}${r}${g}`}r=r.replace(/\n+/g,"\n$&").replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${d}`);const S=n.foldFlowLines(`${x}${r}${g}`,d,n.FOLD_BLOCK,getFoldOptions(i,true));return`${T}\n${d}${S}`}function plainString(e,t,r,i){const{type:s,value:o}=e;const{actualString:p,implicitKey:c,indent:l,indentStep:d,inFlow:u}=t;if(c&&/[\n[\]{},]/.test(o)||u&&/[[\]{},]/.test(o)){return quotedString(o,t)}if(!o||/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(o)){return c||u||!o.includes("\n")?quotedString(o,t):blockString(e,t,r,i)}if(!c&&!u&&s!==a.Scalar.PLAIN&&o.includes("\n")){return blockString(e,t,r,i)}if(containsDocumentMarker(o)){if(l===""){t.forceBlockIndent=true;return blockString(e,t,r,i)}else if(c&&l===d){return quotedString(o,t)}}const m=o.replace(/\n+/g,`$&\n${l}`);if(p){const test=e=>e.default&&e.tag!=="tag:yaml.org,2002:str"&&e.test?.test(m);const{compat:e,tags:r}=t.doc.schema;if(r.some(test)||e?.some(test))return quotedString(o,t)}return c?m:n.foldFlowLines(m,l,n.FOLD_FLOW,getFoldOptions(t,false))}function stringifyString(e,t,r,n){const{implicitKey:i,inFlow:s}=t;const o=typeof e.value==="string"?e:Object.assign({},e,{value:String(e.value)});let{type:p}=e;if(p!==a.Scalar.QUOTE_DOUBLE){if(/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(o.value))p=a.Scalar.QUOTE_DOUBLE}const _stringify=e=>{switch(e){case a.Scalar.BLOCK_FOLDED:case a.Scalar.BLOCK_LITERAL:return i||s?quotedString(o.value,t):blockString(o,t,r,n);case a.Scalar.QUOTE_DOUBLE:return doubleQuotedString(o.value,t);case a.Scalar.QUOTE_SINGLE:return singleQuotedString(o.value,t);case a.Scalar.PLAIN:return plainString(o,t,r,n);default:return null}};let c=_stringify(p);if(c===null){const{defaultKeyType:e,defaultStringType:r}=t.options;const a=i&&e||r;c=_stringify(a);if(c===null)throw new Error(`Unsupported default string type ${a}`)}return c}t.stringifyString=stringifyString},6796:(e,t,r)=>{"use strict";var a=r(1399);const n=Symbol("break visit");const i=Symbol("skip children");const s=Symbol("remove node");function visit(e,t){const r=initVisitor(t);if(a.isDocument(e)){const t=visit_(null,e.contents,r,Object.freeze([e]));if(t===s)e.contents=null}else visit_(null,e,r,Object.freeze([]))}visit.BREAK=n;visit.SKIP=i;visit.REMOVE=s;function visit_(e,t,r,i){const o=callVisitor(e,t,r,i);if(a.isNode(o)||a.isPair(o)){replaceNode(e,i,o);return visit_(e,o,r,i)}if(typeof o!=="symbol"){if(a.isCollection(t)){i=Object.freeze(i.concat(t));for(let e=0;e{"use strict";const a=r(4334);const n=r(7310);const i=r(3329);const s=r(3685);const o=r(5687);const p=r(3837);const c=r(7707);const l=r(9796);const d=r(2781);const u=r(2361);function _interopDefaultLegacy(e){return e&&typeof e==="object"&&"default"in e?e:{default:e}}const m=_interopDefaultLegacy(a);const h=_interopDefaultLegacy(n);const g=_interopDefaultLegacy(s);const v=_interopDefaultLegacy(o);const y=_interopDefaultLegacy(p);const b=_interopDefaultLegacy(c);const w=_interopDefaultLegacy(l);const x=_interopDefaultLegacy(d);const E=_interopDefaultLegacy(u);function bind(e,t){return function wrap(){return e.apply(t,arguments)}}const{toString:T}=Object.prototype;const{getPrototypeOf:S}=Object;const k=(e=>t=>{const r=T.call(t);return e[r]||(e[r]=r.slice(8,-1).toLowerCase())})(Object.create(null));const kindOfTest=e=>{e=e.toLowerCase();return t=>k(t)===e};const typeOfTest=e=>t=>typeof t===e;const{isArray:O}=Array;const C=typeOfTest("undefined");function isBuffer(e){return e!==null&&!C(e)&&e.constructor!==null&&!C(e.constructor)&&D(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const P=kindOfTest("ArrayBuffer");function isArrayBufferView(e){let t;if(typeof ArrayBuffer!=="undefined"&&ArrayBuffer.isView){t=ArrayBuffer.isView(e)}else{t=e&&e.buffer&&P(e.buffer)}return t}const A=typeOfTest("string");const D=typeOfTest("function");const R=typeOfTest("number");const isObject=e=>e!==null&&typeof e==="object";const isBoolean=e=>e===true||e===false;const isPlainObject=e=>{if(k(e)!=="object"){return false}const t=S(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)};const N=kindOfTest("Date");const j=kindOfTest("File");const I=kindOfTest("Blob");const F=kindOfTest("FileList");const isStream=e=>isObject(e)&&D(e.pipe);const isFormData=e=>{let t;return e&&(typeof FormData==="function"&&e instanceof FormData||D(e.append)&&((t=k(e))==="formdata"||t==="object"&&D(e.toString)&&e.toString()==="[object FormData]"))};const $=kindOfTest("URLSearchParams");const trim=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function forEach(e,t,{allOwnKeys:r=false}={}){if(e===null||typeof e==="undefined"){return}let a;let n;if(typeof e!=="object"){e=[e]}if(O(e)){for(a=0,n=e.length;a0){n=r[a];if(t===n.toLowerCase()){return n}}return null}const B=(()=>{if(typeof globalThis!=="undefined")return globalThis;return typeof self!=="undefined"?self:typeof window!=="undefined"?window:global})();const isContextDefined=e=>!C(e)&&e!==B;function merge(){const{caseless:e}=isContextDefined(this)&&this||{};const t={};const assignValue=(r,a)=>{const n=e&&findKey(t,a)||a;if(isPlainObject(t[n])&&isPlainObject(r)){t[n]=merge(t[n],r)}else if(isPlainObject(r)){t[n]=merge({},r)}else if(O(r)){t[n]=r.slice()}else{t[n]=r}};for(let e=0,t=arguments.length;e{forEach(t,((t,a)=>{if(r&&D(t)){e[a]=bind(t,r)}else{e[a]=t}}),{allOwnKeys:a});return e};const stripBOM=e=>{if(e.charCodeAt(0)===65279){e=e.slice(1)}return e};const inherits=(e,t,r,a)=>{e.prototype=Object.create(t.prototype,a);e.prototype.constructor=e;Object.defineProperty(e,"super",{value:t.prototype});r&&Object.assign(e.prototype,r)};const toFlatObject=(e,t,r,a)=>{let n;let i;let s;const o={};t=t||{};if(e==null)return t;do{n=Object.getOwnPropertyNames(e);i=n.length;while(i-- >0){s=n[i];if((!a||a(s,e,t))&&!o[s]){t[s]=e[s];o[s]=true}}e=r!==false&&S(e)}while(e&&(!r||r(e,t))&&e!==Object.prototype);return t};const endsWith=(e,t,r)=>{e=String(e);if(r===undefined||r>e.length){r=e.length}r-=t.length;const a=e.indexOf(t,r);return a!==-1&&a===r};const toArray=e=>{if(!e)return null;if(O(e))return e;let t=e.length;if(!R(t))return null;const r=new Array(t);while(t-- >0){r[t]=e[t]}return r};const L=(e=>t=>e&&t instanceof e)(typeof Uint8Array!=="undefined"&&S(Uint8Array));const forEachEntry=(e,t)=>{const r=e&&e[Symbol.iterator];const a=r.call(e);let n;while((n=a.next())&&!n.done){const r=n.value;t.call(e,r[0],r[1])}};const matchAll=(e,t)=>{let r;const a=[];while((r=e.exec(t))!==null){a.push(r)}return a};const M=kindOfTest("HTMLFormElement");const toCamelCase=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function replacer(e,t,r){return t.toUpperCase()+r}));const U=(({hasOwnProperty:e})=>(t,r)=>e.call(t,r))(Object.prototype);const G=kindOfTest("RegExp");const reduceDescriptors=(e,t)=>{const r=Object.getOwnPropertyDescriptors(e);const a={};forEach(r,((r,n)=>{if(t(r,n,e)!==false){a[n]=r}}));Object.defineProperties(e,a)};const freezeMethods=e=>{reduceDescriptors(e,((t,r)=>{if(D(e)&&["arguments","caller","callee"].indexOf(r)!==-1){return false}const a=e[r];if(!D(a))return;t.enumerable=false;if("writable"in t){t.writable=false;return}if(!t.set){t.set=()=>{throw Error("Can not rewrite read-only method '"+r+"'")}}}))};const toObjectSet=(e,t)=>{const r={};const define=e=>{e.forEach((e=>{r[e]=true}))};O(e)?define(e):define(String(e).split(t));return r};const noop=()=>{};const toFiniteNumber=(e,t)=>{e=+e;return Number.isFinite(e)?e:t};const V="abcdefghijklmnopqrstuvwxyz";const q="0123456789";const H={DIGIT:q,ALPHA:V,ALPHA_DIGIT:V+V.toUpperCase()+q};const generateString=(e=16,t=H.ALPHA_DIGIT)=>{let r="";const{length:a}=t;while(e--){r+=t[Math.random()*a|0]}return r};function isSpecCompliantForm(e){return!!(e&&D(e.append)&&e[Symbol.toStringTag]==="FormData"&&e[Symbol.iterator])}const toJSONObject=e=>{const t=new Array(10);const visit=(e,r)=>{if(isObject(e)){if(t.indexOf(e)>=0){return}if(!("toJSON"in e)){t[r]=e;const a=O(e)?[]:{};forEach(e,((e,t)=>{const n=visit(e,r+1);!C(n)&&(a[t]=n)}));t[r]=undefined;return a}}return e};return visit(e,0)};const z=kindOfTest("AsyncFunction");const isThenable=e=>e&&(isObject(e)||D(e))&&D(e.then)&&D(e.catch);const K={isArray:O,isArrayBuffer:P,isBuffer:isBuffer,isFormData:isFormData,isArrayBufferView:isArrayBufferView,isString:A,isNumber:R,isBoolean:isBoolean,isObject:isObject,isPlainObject:isPlainObject,isUndefined:C,isDate:N,isFile:j,isBlob:I,isRegExp:G,isFunction:D,isStream:isStream,isURLSearchParams:$,isTypedArray:L,isFileList:F,forEach:forEach,merge:merge,extend:extend,trim:trim,stripBOM:stripBOM,inherits:inherits,toFlatObject:toFlatObject,kindOf:k,kindOfTest:kindOfTest,endsWith:endsWith,toArray:toArray,forEachEntry:forEachEntry,matchAll:matchAll,isHTMLForm:M,hasOwnProperty:U,hasOwnProp:U,reduceDescriptors:reduceDescriptors,freezeMethods:freezeMethods,toObjectSet:toObjectSet,toCamelCase:toCamelCase,noop:noop,toFiniteNumber:toFiniteNumber,findKey:findKey,global:B,isContextDefined:isContextDefined,ALPHABET:H,generateString:generateString,isSpecCompliantForm:isSpecCompliantForm,toJSONObject:toJSONObject,isAsyncFn:z,isThenable:isThenable};function AxiosError(e,t,r,a,n){Error.call(this);if(Error.captureStackTrace){Error.captureStackTrace(this,this.constructor)}else{this.stack=(new Error).stack}this.message=e;this.name="AxiosError";t&&(this.code=t);r&&(this.config=r);a&&(this.request=a);n&&(this.response=n)}K.inherits(AxiosError,Error,{toJSON:function toJSON(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:K.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const W=AxiosError.prototype;const J={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((e=>{J[e]={value:e}}));Object.defineProperties(AxiosError,J);Object.defineProperty(W,"isAxiosError",{value:true});AxiosError.from=(e,t,r,a,n,i)=>{const s=Object.create(W);K.toFlatObject(e,s,(function filter(e){return e!==Error.prototype}),(e=>e!=="isAxiosError"));AxiosError.call(s,e.message,t,r,a,n);s.cause=e;s.name=e.name;i&&Object.assign(s,i);return s};function isVisitable(e){return K.isPlainObject(e)||K.isArray(e)}function removeBrackets(e){return K.endsWith(e,"[]")?e.slice(0,-2):e}function renderKey(e,t,r){if(!e)return t;return e.concat(t).map((function each(e,t){e=removeBrackets(e);return!r&&t?"["+e+"]":e})).join(r?".":"")}function isFlatArray(e){return K.isArray(e)&&!e.some(isVisitable)}const Y=K.toFlatObject(K,{},null,(function filter(e){return/^is[A-Z]/.test(e)}));function toFormData(e,t,r){if(!K.isObject(e)){throw new TypeError("target must be an object")}t=t||new(m["default"]||FormData);r=K.toFlatObject(r,{metaTokens:true,dots:false,indexes:false},false,(function defined(e,t){return!K.isUndefined(t[e])}));const a=r.metaTokens;const n=r.visitor||defaultVisitor;const i=r.dots;const s=r.indexes;const o=r.Blob||typeof Blob!=="undefined"&&Blob;const p=o&&K.isSpecCompliantForm(t);if(!K.isFunction(n)){throw new TypeError("visitor must be a function")}function convertValue(e){if(e===null)return"";if(K.isDate(e)){return e.toISOString()}if(!p&&K.isBlob(e)){throw new AxiosError("Blob is not supported. Use a Buffer instead.")}if(K.isArrayBuffer(e)||K.isTypedArray(e)){return p&&typeof Blob==="function"?new Blob([e]):Buffer.from(e)}return e}function defaultVisitor(e,r,n){let o=e;if(e&&!n&&typeof e==="object"){if(K.endsWith(r,"{}")){r=a?r:r.slice(0,-2);e=JSON.stringify(e)}else if(K.isArray(e)&&isFlatArray(e)||(K.isFileList(e)||K.endsWith(r,"[]"))&&(o=K.toArray(e))){r=removeBrackets(r);o.forEach((function each(e,a){!(K.isUndefined(e)||e===null)&&t.append(s===true?renderKey([r],a,i):s===null?r:r+"[]",convertValue(e))}));return false}}if(isVisitable(e)){return true}t.append(renderKey(n,r,i),convertValue(e));return false}const c=[];const l=Object.assign(Y,{defaultVisitor:defaultVisitor,convertValue:convertValue,isVisitable:isVisitable});function build(e,r){if(K.isUndefined(e))return;if(c.indexOf(e)!==-1){throw Error("Circular reference detected in "+r.join("."))}c.push(e);K.forEach(e,(function each(e,a){const i=!(K.isUndefined(e)||e===null)&&n.call(t,e,K.isString(a)?a.trim():a,r,l);if(i===true){build(e,r?r.concat(a):[a])}}));c.pop()}if(!K.isObject(e)){throw new TypeError("data must be an object")}build(e);return t}function encode$1(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function replacer(e){return t[e]}))}function AxiosURLSearchParams(e,t){this._pairs=[];e&&toFormData(e,this,t)}const Q=AxiosURLSearchParams.prototype;Q.append=function append(e,t){this._pairs.push([e,t])};Q.toString=function toString(e){const t=e?function(t){return e.call(this,t,encode$1)}:encode$1;return this._pairs.map((function each(e){return t(e[0])+"="+t(e[1])}),"").join("&")};function encode(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function buildURL(e,t,r){if(!t){return e}const a=r&&r.encode||encode;const n=r&&r.serialize;let i;if(n){i=n(t,r)}else{i=K.isURLSearchParams(t)?t.toString():new AxiosURLSearchParams(t,r).toString(a)}if(i){const t=e.indexOf("#");if(t!==-1){e=e.slice(0,t)}e+=(e.indexOf("?")===-1?"?":"&")+i}return e}class InterceptorManager{constructor(){this.handlers=[]}use(e,t,r){this.handlers.push({fulfilled:e,rejected:t,synchronous:r?r.synchronous:false,runWhen:r?r.runWhen:null});return this.handlers.length-1}eject(e){if(this.handlers[e]){this.handlers[e]=null}}clear(){if(this.handlers){this.handlers=[]}}forEach(e){K.forEach(this.handlers,(function forEachHandler(t){if(t!==null){e(t)}}))}}const X=InterceptorManager;const Z={silentJSONParsing:true,forcedJSONParsing:true,clarifyTimeoutError:false};const ee=h["default"].URLSearchParams;const te={isNode:true,classes:{URLSearchParams:ee,FormData:m["default"],Blob:typeof Blob!=="undefined"&&Blob||null},protocols:["http","https","file","data"]};function toURLEncodedForm(e,t){return toFormData(e,new te.classes.URLSearchParams,Object.assign({visitor:function(e,t,r,a){if(K.isBuffer(e)){this.append(t,e.toString("base64"));return false}return a.defaultVisitor.apply(this,arguments)}},t))}function parsePropPath(e){return K.matchAll(/\w+|\[(\w*)]/g,e).map((e=>e[0]==="[]"?"":e[1]||e[0]))}function arrayToObject(e){const t={};const r=Object.keys(e);let a;const n=r.length;let i;for(a=0;a=e.length;n=!n&&K.isArray(r)?r.length:n;if(s){if(K.hasOwnProp(r,n)){r[n]=[r[n],t]}else{r[n]=t}return!i}if(!r[n]||!K.isObject(r[n])){r[n]=[]}const o=buildPath(e,t,r[n],a);if(o&&K.isArray(r[n])){r[n]=arrayToObject(r[n])}return!i}if(K.isFormData(e)&&K.isFunction(e.entries)){const t={};K.forEachEntry(e,((e,r)=>{buildPath(parsePropPath(e),r,t,0)}));return t}return null}const re={"Content-Type":undefined};function stringifySafely(e,t,r){if(K.isString(e)){try{(t||JSON.parse)(e);return K.trim(e)}catch(e){if(e.name!=="SyntaxError"){throw e}}}return(r||JSON.stringify)(e)}const ae={transitional:Z,adapter:["xhr","http"],transformRequest:[function transformRequest(e,t){const r=t.getContentType()||"";const a=r.indexOf("application/json")>-1;const n=K.isObject(e);if(n&&K.isHTMLForm(e)){e=new FormData(e)}const i=K.isFormData(e);if(i){if(!a){return e}return a?JSON.stringify(formDataToJSON(e)):e}if(K.isArrayBuffer(e)||K.isBuffer(e)||K.isStream(e)||K.isFile(e)||K.isBlob(e)){return e}if(K.isArrayBufferView(e)){return e.buffer}if(K.isURLSearchParams(e)){t.setContentType("application/x-www-form-urlencoded;charset=utf-8",false);return e.toString()}let s;if(n){if(r.indexOf("application/x-www-form-urlencoded")>-1){return toURLEncodedForm(e,this.formSerializer).toString()}if((s=K.isFileList(e))||r.indexOf("multipart/form-data")>-1){const t=this.env&&this.env.FormData;return toFormData(s?{"files[]":e}:e,t&&new t,this.formSerializer)}}if(n||a){t.setContentType("application/json",false);return stringifySafely(e)}return e}],transformResponse:[function transformResponse(e){const t=this.transitional||ae.transitional;const r=t&&t.forcedJSONParsing;const a=this.responseType==="json";if(e&&K.isString(e)&&(r&&!this.responseType||a)){const r=t&&t.silentJSONParsing;const n=!r&&a;try{return JSON.parse(e)}catch(e){if(n){if(e.name==="SyntaxError"){throw AxiosError.from(e,AxiosError.ERR_BAD_RESPONSE,this,null,this.response)}throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:te.classes.FormData,Blob:te.classes.Blob},validateStatus:function validateStatus(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};K.forEach(["delete","get","head"],(function forEachMethodNoData(e){ae.headers[e]={}}));K.forEach(["post","put","patch"],(function forEachMethodWithData(e){ae.headers[e]=K.merge(re)}));const ne=ae;const ie=K.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]);const parseHeaders=e=>{const t={};let r;let a;let n;e&&e.split("\n").forEach((function parser(e){n=e.indexOf(":");r=e.substring(0,n).trim().toLowerCase();a=e.substring(n+1).trim();if(!r||t[r]&&ie[r]){return}if(r==="set-cookie"){if(t[r]){t[r].push(a)}else{t[r]=[a]}}else{t[r]=t[r]?t[r]+", "+a:a}}));return t};const se=Symbol("internals");function normalizeHeader(e){return e&&String(e).trim().toLowerCase()}function normalizeValue(e){if(e===false||e==null){return e}return K.isArray(e)?e.map(normalizeValue):String(e)}function parseTokens(e){const t=Object.create(null);const r=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let a;while(a=r.exec(e)){t[a[1]]=a[2]}return t}const isValidHeaderName=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function matchHeaderValue(e,t,r,a,n){if(K.isFunction(a)){return a.call(this,t,r)}if(n){t=r}if(!K.isString(t))return;if(K.isString(a)){return t.indexOf(a)!==-1}if(K.isRegExp(a)){return a.test(t)}}function formatHeader(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((e,t,r)=>t.toUpperCase()+r))}function buildAccessors(e,t){const r=K.toCamelCase(" "+t);["get","set","has"].forEach((a=>{Object.defineProperty(e,a+r,{value:function(e,r,n){return this[a].call(this,t,e,r,n)},configurable:true})}))}class AxiosHeaders{constructor(e){e&&this.set(e)}set(e,t,r){const a=this;function setHeader(e,t,r){const n=normalizeHeader(t);if(!n){throw new Error("header name must be a non-empty string")}const i=K.findKey(a,n);if(!i||a[i]===undefined||r===true||r===undefined&&a[i]!==false){a[i||t]=normalizeValue(e)}}const setHeaders=(e,t)=>K.forEach(e,((e,r)=>setHeader(e,r,t)));if(K.isPlainObject(e)||e instanceof this.constructor){setHeaders(e,t)}else if(K.isString(e)&&(e=e.trim())&&!isValidHeaderName(e)){setHeaders(parseHeaders(e),t)}else{e!=null&&setHeader(t,e,r)}return this}get(e,t){e=normalizeHeader(e);if(e){const r=K.findKey(this,e);if(r){const e=this[r];if(!t){return e}if(t===true){return parseTokens(e)}if(K.isFunction(t)){return t.call(this,e,r)}if(K.isRegExp(t)){return t.exec(e)}throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){e=normalizeHeader(e);if(e){const r=K.findKey(this,e);return!!(r&&this[r]!==undefined&&(!t||matchHeaderValue(this,this[r],r,t)))}return false}delete(e,t){const r=this;let a=false;function deleteHeader(e){e=normalizeHeader(e);if(e){const n=K.findKey(r,e);if(n&&(!t||matchHeaderValue(r,r[n],n,t))){delete r[n];a=true}}}if(K.isArray(e)){e.forEach(deleteHeader)}else{deleteHeader(e)}return a}clear(e){const t=Object.keys(this);let r=t.length;let a=false;while(r--){const n=t[r];if(!e||matchHeaderValue(this,this[n],n,e,true)){delete this[n];a=true}}return a}normalize(e){const t=this;const r={};K.forEach(this,((a,n)=>{const i=K.findKey(r,n);if(i){t[i]=normalizeValue(a);delete t[n];return}const s=e?formatHeader(n):String(n).trim();if(s!==n){delete t[n]}t[s]=normalizeValue(a);r[s]=true}));return this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);K.forEach(this,((r,a)=>{r!=null&&r!==false&&(t[a]=e&&K.isArray(r)?r.join(", "):r)}));return t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([e,t])=>e+": "+t)).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const r=new this(e);t.forEach((e=>r.set(e)));return r}static accessor(e){const t=this[se]=this[se]={accessors:{}};const r=t.accessors;const a=this.prototype;function defineAccessor(e){const t=normalizeHeader(e);if(!r[t]){buildAccessors(a,e);r[t]=true}}K.isArray(e)?e.forEach(defineAccessor):defineAccessor(e);return this}}AxiosHeaders.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);K.freezeMethods(AxiosHeaders.prototype);K.freezeMethods(AxiosHeaders);const oe=AxiosHeaders;function transformData(e,t){const r=this||ne;const a=t||r;const n=oe.from(a.headers);let i=a.data;K.forEach(e,(function transform(e){i=e.call(r,i,n.normalize(),t?t.status:undefined)}));n.normalize();return i}function isCancel(e){return!!(e&&e.__CANCEL__)}function CanceledError(e,t,r){AxiosError.call(this,e==null?"canceled":e,AxiosError.ERR_CANCELED,t,r);this.name="CanceledError"}K.inherits(CanceledError,AxiosError,{__CANCEL__:true});function settle(e,t,r){const a=r.config.validateStatus;if(!r.status||!a||a(r.status)){e(r)}else{t(new AxiosError("Request failed with status code "+r.status,[AxiosError.ERR_BAD_REQUEST,AxiosError.ERR_BAD_RESPONSE][Math.floor(r.status/100)-4],r.config,r.request,r))}}function isAbsoluteURL(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function combineURLs(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}function buildFullPath(e,t){if(e&&!isAbsoluteURL(t)){return combineURLs(e,t)}return t}const pe="1.4.0";function parseProtocol(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}const ce=/^(?:([^;]+);)?(?:[^;]+;)?(base64|),([\s\S]*)$/;function fromDataURI(e,t,r){const a=r&&r.Blob||te.classes.Blob;const n=parseProtocol(e);if(t===undefined&&a){t=true}if(n==="data"){e=n.length?e.slice(n.length+1):e;const r=ce.exec(e);if(!r){throw new AxiosError("Invalid URL",AxiosError.ERR_INVALID_URL)}const i=r[1];const s=r[2];const o=r[3];const p=Buffer.from(decodeURIComponent(o),s?"base64":"utf8");if(t){if(!a){throw new AxiosError("Blob is not supported",AxiosError.ERR_NOT_SUPPORT)}return new a([p],{type:i})}return p}throw new AxiosError("Unsupported protocol "+n,AxiosError.ERR_NOT_SUPPORT)}function throttle(e,t){let r=0;const a=1e3/t;let n=null;return function throttled(t,i){const s=Date.now();if(t||s-r>a){if(n){clearTimeout(n);n=null}r=s;return e.apply(null,i)}if(!n){n=setTimeout((()=>{n=null;r=Date.now();return e.apply(null,i)}),a-(s-r))}}}function speedometer(e,t){e=e||10;const r=new Array(e);const a=new Array(e);let n=0;let i=0;let s;t=t!==undefined?t:1e3;return function push(o){const p=Date.now();const c=a[i];if(!s){s=p}r[n]=o;a[n]=p;let l=i;let d=0;while(l!==n){d+=r[l++];l=l%e}n=(n+1)%e;if(n===i){i=(i+1)%e}if(p-s!K.isUndefined(t[e])));super({readableHighWaterMark:e.chunkSize});const t=this;const r=this[le]={length:e.length,timeWindow:e.timeWindow,ticksRate:e.ticksRate,chunkSize:e.chunkSize,maxRate:e.maxRate,minChunkSize:e.minChunkSize,bytesSeen:0,isCaptured:false,notifiedBytesLoaded:0,ts:Date.now(),bytes:0,onReadCallback:null};const a=speedometer(r.ticksRate*e.samplesCount,r.timeWindow);this.on("newListener",(e=>{if(e==="progress"){if(!r.isCaptured){r.isCaptured=true}}}));let n=0;r.updateProgress=throttle((function throttledHandler(){const e=r.length;const i=r.bytesSeen;const s=i-n;if(!s||t.destroyed)return;const o=a(s);n=i;process.nextTick((()=>{t.emit("progress",{loaded:i,total:e,progress:e?i/e:undefined,bytes:s,rate:o?o:undefined,estimated:o&&e&&i<=e?(e-i)/o:undefined})}))}),r.ticksRate);const onFinish=()=>{r.updateProgress(true)};this.once("end",onFinish);this.once("error",onFinish)}_read(e){const t=this[le];if(t.onReadCallback){t.onReadCallback()}return super._read(e)}_transform(e,t,r){const a=this;const n=this[le];const i=n.maxRate;const s=this.readableHighWaterMark;const o=n.timeWindow;const p=1e3/o;const c=i/p;const l=n.minChunkSize!==false?Math.max(n.minChunkSize,c*.01):0;function pushChunk(e,t){const r=Buffer.byteLength(e);n.bytesSeen+=r;n.bytes+=r;if(n.isCaptured){n.updateProgress()}if(a.push(e)){process.nextTick(t)}else{n.onReadCallback=()=>{n.onReadCallback=null;process.nextTick(t)}}}const transformChunk=(e,t)=>{const r=Buffer.byteLength(e);let a=null;let p=s;let d;let u=0;if(i){const e=Date.now();if(!n.ts||(u=e-n.ts)>=o){n.ts=e;d=c-n.bytes;n.bytes=d<0?-d:0;u=0}d=c-n.bytes}if(i){if(d<=0){return setTimeout((()=>{t(null,e)}),o-u)}if(dp&&r-p>l){a=e.subarray(p);e=e.subarray(0,p)}pushChunk(e,a?()=>{process.nextTick(t,null,a)}:t)};transformChunk(e,(function transformNextChunk(e,t){if(e){return r(e)}if(t){transformChunk(t,transformNextChunk)}else{r(null)}}))}setLength(e){this[le].length=+e;return this}}const de=AxiosTransformStream;const{asyncIterator:ue}=Symbol;const readBlob=async function*(e){if(e.stream){yield*e.stream()}else if(e.arrayBuffer){yield await e.arrayBuffer()}else if(e[ue]){yield*e[ue]()}else{yield e}};const me=readBlob;const fe=K.ALPHABET.ALPHA_DIGIT+"-_";const he=new p.TextEncoder;const ge="\r\n";const ve=he.encode(ge);const ye=2;class FormDataPart{constructor(e,t){const{escapeName:r}=this.constructor;const a=K.isString(t);let n=`Content-Disposition: form-data; name="${r(e)}"${!a&&t.name?`; filename="${r(t.name)}"`:""}${ge}`;if(a){t=he.encode(String(t).replace(/\r?\n|\r\n?/g,ge))}else{n+=`Content-Type: ${t.type||"application/octet-stream"}${ge}`}this.headers=he.encode(n+ge);this.contentLength=a?t.byteLength:t.size;this.size=this.headers.byteLength+this.contentLength+ye;this.name=e;this.value=t}async*encode(){yield this.headers;const{value:e}=this;if(K.isTypedArray(e)){yield e}else{yield*me(e)}yield ve}static escapeName(e){return String(e).replace(/[\r\n"]/g,(e=>({"\r":"%0D","\n":"%0A",'"':"%22"}[e])))}}const formDataToStream=(e,t,r)=>{const{tag:a="form-data-boundary",size:n=25,boundary:i=a+"-"+K.generateString(n,fe)}=r||{};if(!K.isFormData(e)){throw TypeError("FormData instance required")}if(i.length<1||i.length>70){throw Error("boundary must be 10-70 characters long")}const s=he.encode("--"+i+ge);const o=he.encode("--"+i+"--"+ge+ge);let p=o.byteLength;const c=Array.from(e.entries()).map((([e,t])=>{const r=new FormDataPart(e,t);p+=r.size;return r}));p+=s.byteLength*c.length;p=K.toFiniteNumber(p);const l={"Content-Type":`multipart/form-data; boundary=${i}`};if(Number.isFinite(p)){l["Content-Length"]=p}t&&t(l);return d.Readable.from(async function*(){for(const e of c){yield s;yield*e.encode()}yield o}())};const be=formDataToStream;class ZlibHeaderTransformStream extends x["default"].Transform{__transform(e,t,r){this.push(e);r()}_transform(e,t,r){if(e.length!==0){this._transform=this.__transform;if(e[0]!==120){const e=Buffer.alloc(2);e[0]=120;e[1]=156;this.push(e,t)}}this.__transform(e,t,r)}}const we=ZlibHeaderTransformStream;const callbackify=(e,t)=>K.isAsyncFn(e)?function(...r){const a=r.pop();e.apply(this,r).then((e=>{try{t?a(null,...t(e)):a(null,e)}catch(e){a(e)}}),a)}:e;const _e=callbackify;const xe={flush:w["default"].constants.Z_SYNC_FLUSH,finishFlush:w["default"].constants.Z_SYNC_FLUSH};const Ee={flush:w["default"].constants.BROTLI_OPERATION_FLUSH,finishFlush:w["default"].constants.BROTLI_OPERATION_FLUSH};const Te=K.isFunction(w["default"].createBrotliDecompress);const{http:Se,https:ke}=b["default"];const Oe=/https:?/;const Ce=te.protocols.map((e=>e+":"));function dispatchBeforeRedirect(e){if(e.beforeRedirects.proxy){e.beforeRedirects.proxy(e)}if(e.beforeRedirects.config){e.beforeRedirects.config(e)}}function setProxy(e,t,r){let a=t;if(!a&&a!==false){const e=i.getProxyForUrl(r);if(e){a=new URL(e)}}if(a){if(a.username){a.auth=(a.username||"")+":"+(a.password||"")}if(a.auth){if(a.auth.username||a.auth.password){a.auth=(a.auth.username||"")+":"+(a.auth.password||"")}const t=Buffer.from(a.auth,"utf8").toString("base64");e.headers["Proxy-Authorization"]="Basic "+t}e.headers.host=e.hostname+(e.port?":"+e.port:"");const t=a.hostname||a.host;e.hostname=t;e.host=t;e.port=a.port;e.path=r;if(a.protocol){e.protocol=a.protocol.includes(":")?a.protocol:`${a.protocol}:`}}e.beforeRedirects.proxy=function beforeRedirect(e){setProxy(e,t,e.href)}}const Pe=typeof process!=="undefined"&&K.kindOf(process)==="process";const wrapAsync=e=>new Promise(((t,r)=>{let a;let n;const done=(e,t)=>{if(n)return;n=true;a&&a(e,t)};const _resolve=e=>{done(e);t(e)};const _reject=e=>{done(e,true);r(e)};e(_resolve,_reject,(e=>a=e)).catch(_reject)}));const Ae=Pe&&function httpAdapter(e){return wrapAsync((async function dispatchHttpRequest(t,r,a){let{data:n,lookup:i,family:s}=e;const{responseType:o,responseEncoding:p}=e;const c=e.method.toUpperCase();let l;let d=false;let u;if(i&&K.isAsyncFn(i)){i=_e(i,(e=>{if(K.isString(e)){e=[e,e.indexOf(".")<0?6:4]}else if(!K.isArray(e)){throw new TypeError("lookup async function must return an array [ip: string, family: number]]")}return e}))}const m=new E["default"];const onFinished=()=>{if(e.cancelToken){e.cancelToken.unsubscribe(abort)}if(e.signal){e.signal.removeEventListener("abort",abort)}m.removeAllListeners()};a(((e,t)=>{l=true;if(t){d=true;onFinished()}}));function abort(t){m.emit("abort",!t||t.type?new CanceledError(null,e,u):t)}m.once("abort",r);if(e.cancelToken||e.signal){e.cancelToken&&e.cancelToken.subscribe(abort);if(e.signal){e.signal.aborted?abort():e.signal.addEventListener("abort",abort)}}const h=buildFullPath(e.baseURL,e.url);const b=new URL(h,"http://localhost");const T=b.protocol||Ce[0];if(T==="data:"){let a;if(c!=="GET"){return settle(t,r,{status:405,statusText:"method not allowed",headers:{},config:e})}try{a=fromDataURI(e.url,o==="blob",{Blob:e.env&&e.env.Blob})}catch(t){throw AxiosError.from(t,AxiosError.ERR_BAD_REQUEST,e)}if(o==="text"){a=a.toString(p);if(!p||p==="utf8"){a=K.stripBOM(a)}}else if(o==="stream"){a=x["default"].Readable.from(a)}return settle(t,r,{data:a,status:200,statusText:"OK",headers:new oe,config:e})}if(Ce.indexOf(T)===-1){return r(new AxiosError("Unsupported protocol "+T,AxiosError.ERR_BAD_REQUEST,e))}const S=oe.from(e.headers).normalize();S.set("User-Agent","axios/"+pe,false);const k=e.onDownloadProgress;const O=e.onUploadProgress;const C=e.maxRate;let P=undefined;let A=undefined;if(K.isSpecCompliantForm(n)){const e=S.getContentType(/boundary=([-_\w\d]{10,70})/i);n=be(n,(e=>{S.set(e)}),{tag:`axios-${pe}-boundary`,boundary:e&&e[1]||undefined})}else if(K.isFormData(n)&&K.isFunction(n.getHeaders)){S.set(n.getHeaders());if(!S.hasContentLength()){try{const e=await y["default"].promisify(n.getLength).call(n);Number.isFinite(e)&&e>=0&&S.setContentLength(e)}catch(e){}}}else if(K.isBlob(n)){n.size&&S.setContentType(n.type||"application/octet-stream");S.setContentLength(n.size||0);n=x["default"].Readable.from(me(n))}else if(n&&!K.isStream(n)){if(Buffer.isBuffer(n));else if(K.isArrayBuffer(n)){n=Buffer.from(new Uint8Array(n))}else if(K.isString(n)){n=Buffer.from(n,"utf-8")}else{return r(new AxiosError("Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream",AxiosError.ERR_BAD_REQUEST,e))}S.setContentLength(n.length,false);if(e.maxBodyLength>-1&&n.length>e.maxBodyLength){return r(new AxiosError("Request body larger than maxBodyLength limit",AxiosError.ERR_BAD_REQUEST,e))}}const D=K.toFiniteNumber(S.getContentLength());if(K.isArray(C)){P=C[0];A=C[1]}else{P=A=C}if(n&&(O||P)){if(!K.isStream(n)){n=x["default"].Readable.from(n,{objectMode:false})}n=x["default"].pipeline([n,new de({length:D,maxRate:K.toFiniteNumber(P)})],K.noop);O&&n.on("progress",(e=>{O(Object.assign(e,{upload:true}))}))}let R=undefined;if(e.auth){const t=e.auth.username||"";const r=e.auth.password||"";R=t+":"+r}if(!R&&b.username){const e=b.username;const t=b.password;R=e+":"+t}R&&S.delete("authorization");let N;try{N=buildURL(b.pathname+b.search,e.params,e.paramsSerializer).replace(/^\?/,"")}catch(t){const a=new Error(t.message);a.config=e;a.url=e.url;a.exists=true;return r(a)}S.set("Accept-Encoding","gzip, compress, deflate"+(Te?", br":""),false);const j={path:N,method:c,headers:S.toJSON(),agents:{http:e.httpAgent,https:e.httpsAgent},auth:R,protocol:T,family:s,lookup:i,beforeRedirect:dispatchBeforeRedirect,beforeRedirects:{}};if(e.socketPath){j.socketPath=e.socketPath}else{j.hostname=b.hostname;j.port=b.port;setProxy(j,e.proxy,T+"//"+b.hostname+(b.port?":"+b.port:"")+j.path)}let I;const F=Oe.test(j.protocol);j.agent=F?e.httpsAgent:e.httpAgent;if(e.transport){I=e.transport}else if(e.maxRedirects===0){I=F?v["default"]:g["default"]}else{if(e.maxRedirects){j.maxRedirects=e.maxRedirects}if(e.beforeRedirect){j.beforeRedirects.config=e.beforeRedirect}I=F?ke:Se}if(e.maxBodyLength>-1){j.maxBodyLength=e.maxBodyLength}else{j.maxBodyLength=Infinity}if(e.insecureHTTPParser){j.insecureHTTPParser=e.insecureHTTPParser}u=I.request(j,(function handleResponse(a){if(u.destroyed)return;const n=[a];const i=+a.headers["content-length"];if(k){const e=new de({length:K.toFiniteNumber(i),maxRate:K.toFiniteNumber(A)});k&&e.on("progress",(e=>{k(Object.assign(e,{download:true}))}));n.push(e)}let s=a;const l=a.req||u;if(e.decompress!==false&&a.headers["content-encoding"]){if(c==="HEAD"||a.statusCode===204){delete a.headers["content-encoding"]}switch(a.headers["content-encoding"]){case"gzip":case"x-gzip":case"compress":case"x-compress":n.push(w["default"].createUnzip(xe));delete a.headers["content-encoding"];break;case"deflate":n.push(new we);n.push(w["default"].createUnzip(xe));delete a.headers["content-encoding"];break;case"br":if(Te){n.push(w["default"].createBrotliDecompress(Ee));delete a.headers["content-encoding"]}}}s=n.length>1?x["default"].pipeline(n,K.noop):n[0];const h=x["default"].finished(s,(()=>{h();onFinished()}));const g={status:a.statusCode,statusText:a.statusMessage,headers:new oe(a.headers),config:e,request:l};if(o==="stream"){g.data=s;settle(t,r,g)}else{const a=[];let n=0;s.on("data",(function handleStreamData(t){a.push(t);n+=t.length;if(e.maxContentLength>-1&&n>e.maxContentLength){d=true;s.destroy();r(new AxiosError("maxContentLength size of "+e.maxContentLength+" exceeded",AxiosError.ERR_BAD_RESPONSE,e,l))}}));s.on("aborted",(function handlerStreamAborted(){if(d){return}const t=new AxiosError("maxContentLength size of "+e.maxContentLength+" exceeded",AxiosError.ERR_BAD_RESPONSE,e,l);s.destroy(t);r(t)}));s.on("error",(function handleStreamError(t){if(u.destroyed)return;r(AxiosError.from(t,null,e,l))}));s.on("end",(function handleStreamEnd(){try{let e=a.length===1?a[0]:Buffer.concat(a);if(o!=="arraybuffer"){e=e.toString(p);if(!p||p==="utf8"){e=K.stripBOM(e)}}g.data=e}catch(t){r(AxiosError.from(t,null,e,g.request,g))}settle(t,r,g)}))}m.once("abort",(e=>{if(!s.destroyed){s.emit("error",e);s.destroy()}}))}));m.once("abort",(e=>{r(e);u.destroy(e)}));u.on("error",(function handleRequestError(t){r(AxiosError.from(t,null,e,u))}));u.on("socket",(function handleRequestSocket(e){e.setKeepAlive(true,1e3*60)}));if(e.timeout){const t=parseInt(e.timeout,10);if(isNaN(t)){r(new AxiosError("error trying to parse `config.timeout` to int",AxiosError.ERR_BAD_OPTION_VALUE,e,u));return}u.setTimeout(t,(function handleRequestTimeout(){if(l)return;let t=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded";const a=e.transitional||Z;if(e.timeoutErrorMessage){t=e.timeoutErrorMessage}r(new AxiosError(t,a.clarifyTimeoutError?AxiosError.ETIMEDOUT:AxiosError.ECONNABORTED,e,u));abort()}))}if(K.isStream(n)){let t=false;let r=false;n.on("end",(()=>{t=true}));n.once("error",(e=>{r=true;u.destroy(e)}));n.on("close",(()=>{if(!t&&!r){abort(new CanceledError("Request stream has been aborted",e,u))}}));n.pipe(u)}else{u.end(n)}}))};const De=te.isStandardBrowserEnv?function standardBrowserEnv(){return{write:function write(e,t,r,a,n,i){const s=[];s.push(e+"="+encodeURIComponent(t));if(K.isNumber(r)){s.push("expires="+new Date(r).toGMTString())}if(K.isString(a)){s.push("path="+a)}if(K.isString(n)){s.push("domain="+n)}if(i===true){s.push("secure")}document.cookie=s.join("; ")},read:function read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function remove(e){this.write(e,"",Date.now()-864e5)}}}():function nonStandardBrowserEnv(){return{write:function write(){},read:function read(){return null},remove:function remove(){}}}();const Re=te.isStandardBrowserEnv?function standardBrowserEnv(){const e=/(msie|trident)/i.test(navigator.userAgent);const t=document.createElement("a");let r;function resolveURL(r){let a=r;if(e){t.setAttribute("href",a);a=t.href}t.setAttribute("href",a);return{href:t.href,protocol:t.protocol?t.protocol.replace(/:$/,""):"",host:t.host,search:t.search?t.search.replace(/^\?/,""):"",hash:t.hash?t.hash.replace(/^#/,""):"",hostname:t.hostname,port:t.port,pathname:t.pathname.charAt(0)==="/"?t.pathname:"/"+t.pathname}}r=resolveURL(window.location.href);return function isURLSameOrigin(e){const t=K.isString(e)?resolveURL(e):e;return t.protocol===r.protocol&&t.host===r.host}}():function nonStandardBrowserEnv(){return function isURLSameOrigin(){return true}}();function progressEventReducer(e,t){let r=0;const a=speedometer(50,250);return n=>{const i=n.loaded;const s=n.lengthComputable?n.total:undefined;const o=i-r;const p=a(o);const c=i<=s;r=i;const l={loaded:i,total:s,progress:s?i/s:undefined,bytes:o,rate:p?p:undefined,estimated:p&&s&&c?(s-i)/p:undefined,event:n};l[t?"download":"upload"]=true;e(l)}}const Ne=typeof XMLHttpRequest!=="undefined";const je=Ne&&function(e){return new Promise((function dispatchXhrRequest(t,r){let a=e.data;const n=oe.from(e.headers).normalize();const i=e.responseType;let s;function done(){if(e.cancelToken){e.cancelToken.unsubscribe(s)}if(e.signal){e.signal.removeEventListener("abort",s)}}if(K.isFormData(a)){if(te.isStandardBrowserEnv||te.isStandardBrowserWebWorkerEnv){n.setContentType(false)}else{n.setContentType("multipart/form-data;",false)}}let o=new XMLHttpRequest;if(e.auth){const t=e.auth.username||"";const r=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";n.set("Authorization","Basic "+btoa(t+":"+r))}const p=buildFullPath(e.baseURL,e.url);o.open(e.method.toUpperCase(),buildURL(p,e.params,e.paramsSerializer),true);o.timeout=e.timeout;function onloadend(){if(!o){return}const a=oe.from("getAllResponseHeaders"in o&&o.getAllResponseHeaders());const n=!i||i==="text"||i==="json"?o.responseText:o.response;const s={data:n,status:o.status,statusText:o.statusText,headers:a,config:e,request:o};settle((function _resolve(e){t(e);done()}),(function _reject(e){r(e);done()}),s);o=null}if("onloadend"in o){o.onloadend=onloadend}else{o.onreadystatechange=function handleLoad(){if(!o||o.readyState!==4){return}if(o.status===0&&!(o.responseURL&&o.responseURL.indexOf("file:")===0)){return}setTimeout(onloadend)}}o.onabort=function handleAbort(){if(!o){return}r(new AxiosError("Request aborted",AxiosError.ECONNABORTED,e,o));o=null};o.onerror=function handleError(){r(new AxiosError("Network Error",AxiosError.ERR_NETWORK,e,o));o=null};o.ontimeout=function handleTimeout(){let t=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded";const a=e.transitional||Z;if(e.timeoutErrorMessage){t=e.timeoutErrorMessage}r(new AxiosError(t,a.clarifyTimeoutError?AxiosError.ETIMEDOUT:AxiosError.ECONNABORTED,e,o));o=null};if(te.isStandardBrowserEnv){const t=(e.withCredentials||Re(p))&&e.xsrfCookieName&&De.read(e.xsrfCookieName);if(t){n.set(e.xsrfHeaderName,t)}}a===undefined&&n.setContentType(null);if("setRequestHeader"in o){K.forEach(n.toJSON(),(function setRequestHeader(e,t){o.setRequestHeader(t,e)}))}if(!K.isUndefined(e.withCredentials)){o.withCredentials=!!e.withCredentials}if(i&&i!=="json"){o.responseType=e.responseType}if(typeof e.onDownloadProgress==="function"){o.addEventListener("progress",progressEventReducer(e.onDownloadProgress,true))}if(typeof e.onUploadProgress==="function"&&o.upload){o.upload.addEventListener("progress",progressEventReducer(e.onUploadProgress))}if(e.cancelToken||e.signal){s=t=>{if(!o){return}r(!t||t.type?new CanceledError(null,e,o):t);o.abort();o=null};e.cancelToken&&e.cancelToken.subscribe(s);if(e.signal){e.signal.aborted?s():e.signal.addEventListener("abort",s)}}const c=parseProtocol(p);if(c&&te.protocols.indexOf(c)===-1){r(new AxiosError("Unsupported protocol "+c+":",AxiosError.ERR_BAD_REQUEST,e));return}o.send(a||null)}))};const Ie={http:Ae,xhr:je};K.forEach(Ie,((e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(e){}Object.defineProperty(e,"adapterName",{value:t})}}));const Fe={getAdapter:e=>{e=K.isArray(e)?e:[e];const{length:t}=e;let r;let a;for(let n=0;ne instanceof oe?e.toJSON():e;function mergeConfig(e,t){t=t||{};const r={};function getMergedValue(e,t,r){if(K.isPlainObject(e)&&K.isPlainObject(t)){return K.merge.call({caseless:r},e,t)}else if(K.isPlainObject(t)){return K.merge({},t)}else if(K.isArray(t)){return t.slice()}return t}function mergeDeepProperties(e,t,r){if(!K.isUndefined(t)){return getMergedValue(e,t,r)}else if(!K.isUndefined(e)){return getMergedValue(undefined,e,r)}}function valueFromConfig2(e,t){if(!K.isUndefined(t)){return getMergedValue(undefined,t)}}function defaultToConfig2(e,t){if(!K.isUndefined(t)){return getMergedValue(undefined,t)}else if(!K.isUndefined(e)){return getMergedValue(undefined,e)}}function mergeDirectKeys(r,a,n){if(n in t){return getMergedValue(r,a)}else if(n in e){return getMergedValue(undefined,r)}}const a={url:valueFromConfig2,method:valueFromConfig2,data:valueFromConfig2,baseURL:defaultToConfig2,transformRequest:defaultToConfig2,transformResponse:defaultToConfig2,paramsSerializer:defaultToConfig2,timeout:defaultToConfig2,timeoutMessage:defaultToConfig2,withCredentials:defaultToConfig2,adapter:defaultToConfig2,responseType:defaultToConfig2,xsrfCookieName:defaultToConfig2,xsrfHeaderName:defaultToConfig2,onUploadProgress:defaultToConfig2,onDownloadProgress:defaultToConfig2,decompress:defaultToConfig2,maxContentLength:defaultToConfig2,maxBodyLength:defaultToConfig2,beforeRedirect:defaultToConfig2,transport:defaultToConfig2,httpAgent:defaultToConfig2,httpsAgent:defaultToConfig2,cancelToken:defaultToConfig2,socketPath:defaultToConfig2,responseEncoding:defaultToConfig2,validateStatus:mergeDirectKeys,headers:(e,t)=>mergeDeepProperties(headersToObject(e),headersToObject(t),true)};K.forEach(Object.keys(Object.assign({},e,t)),(function computeConfigValue(n){const i=a[n]||mergeDeepProperties;const s=i(e[n],t[n],n);K.isUndefined(s)&&i!==mergeDirectKeys||(r[n]=s)}));return r}const $e={};["object","boolean","number","function","string","symbol"].forEach(((e,t)=>{$e[e]=function validator(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}}));const Be={};$e.transitional=function transitional(e,t,r){function formatMessage(e,t){return"[Axios v"+pe+"] Transitional option '"+e+"'"+t+(r?". "+r:"")}return(r,a,n)=>{if(e===false){throw new AxiosError(formatMessage(a," has been removed"+(t?" in "+t:"")),AxiosError.ERR_DEPRECATED)}if(t&&!Be[a]){Be[a]=true;console.warn(formatMessage(a," has been deprecated since v"+t+" and will be removed in the near future"))}return e?e(r,a,n):true}};function assertOptions(e,t,r){if(typeof e!=="object"){throw new AxiosError("options must be an object",AxiosError.ERR_BAD_OPTION_VALUE)}const a=Object.keys(e);let n=a.length;while(n-- >0){const i=a[n];const s=t[i];if(s){const t=e[i];const r=t===undefined||s(t,i,e);if(r!==true){throw new AxiosError("option "+i+" must be "+r,AxiosError.ERR_BAD_OPTION_VALUE)}continue}if(r!==true){throw new AxiosError("Unknown option "+i,AxiosError.ERR_BAD_OPTION)}}}const Le={assertOptions:assertOptions,validators:$e};const Me=Le.validators;class Axios{constructor(e){this.defaults=e;this.interceptors={request:new X,response:new X}}request(e,t){if(typeof e==="string"){t=t||{};t.url=e}else{t=e||{}}t=mergeConfig(this.defaults,t);const{transitional:r,paramsSerializer:a,headers:n}=t;if(r!==undefined){Le.assertOptions(r,{silentJSONParsing:Me.transitional(Me.boolean),forcedJSONParsing:Me.transitional(Me.boolean),clarifyTimeoutError:Me.transitional(Me.boolean)},false)}if(a!=null){if(K.isFunction(a)){t.paramsSerializer={serialize:a}}else{Le.assertOptions(a,{encode:Me.function,serialize:Me.function},true)}}t.method=(t.method||this.defaults.method||"get").toLowerCase();let i;i=n&&K.merge(n.common,n[t.method]);i&&K.forEach(["delete","get","head","post","put","patch","common"],(e=>{delete n[e]}));t.headers=oe.concat(i,n);const s=[];let o=true;this.interceptors.request.forEach((function unshiftRequestInterceptors(e){if(typeof e.runWhen==="function"&&e.runWhen(t)===false){return}o=o&&e.synchronous;s.unshift(e.fulfilled,e.rejected)}));const p=[];this.interceptors.response.forEach((function pushResponseInterceptors(e){p.push(e.fulfilled,e.rejected)}));let c;let l=0;let d;if(!o){const e=[dispatchRequest.bind(this),undefined];e.unshift.apply(e,s);e.push.apply(e,p);d=e.length;c=Promise.resolve(t);while(l{if(!r._listeners)return;let t=r._listeners.length;while(t-- >0){r._listeners[t](e)}r._listeners=null}));this.promise.then=e=>{let t;const a=new Promise((e=>{r.subscribe(e);t=e})).then(e);a.cancel=function reject(){r.unsubscribe(t)};return a};e((function cancel(e,a,n){if(r.reason){return}r.reason=new CanceledError(e,a,n);t(r.reason)}))}throwIfRequested(){if(this.reason){throw this.reason}}subscribe(e){if(this.reason){e(this.reason);return}if(this._listeners){this._listeners.push(e)}else{this._listeners=[e]}}unsubscribe(e){if(!this._listeners){return}const t=this._listeners.indexOf(e);if(t!==-1){this._listeners.splice(t,1)}}static source(){let e;const t=new CancelToken((function executor(t){e=t}));return{token:t,cancel:e}}}const Ge=CancelToken;function spread(e){return function wrap(t){return e.apply(null,t)}}function isAxiosError(e){return K.isObject(e)&&e.isAxiosError===true}const Ve={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Ve).forEach((([e,t])=>{Ve[t]=e}));const qe=Ve;function createInstance(e){const t=new Ue(e);const r=bind(Ue.prototype.request,t);K.extend(r,Ue.prototype,t,{allOwnKeys:true});K.extend(r,t,null,{allOwnKeys:true});r.create=function create(t){return createInstance(mergeConfig(e,t))};return r}const He=createInstance(ne);He.Axios=Ue;He.CanceledError=CanceledError;He.CancelToken=Ge;He.isCancel=isCancel;He.VERSION=pe;He.toFormData=toFormData;He.AxiosError=AxiosError;He.Cancel=He.CanceledError;He.all=function all(e){return Promise.all(e)};He.spread=spread;He.isAxiosError=isAxiosError;He.mergeConfig=mergeConfig;He.AxiosHeaders=oe;He.formToJSON=e=>formDataToJSON(K.isHTMLForm(e)?new FormData(e):e);He.HttpStatusCode=qe;He.default=He;e.exports=He},7063:e=>{"use strict";e.exports=JSON.parse('{"$id":"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#","description":"Meta-schema for $data reference (JSON AnySchema extension proposal)","type":"object","required":["$data"],"properties":{"$data":{"type":"string","anyOf":[{"format":"relative-json-pointer"},{"format":"json-pointer"}]}},"additionalProperties":false}')},3712:e=>{"use strict";e.exports=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#","$id":"http://json-schema.org/draft-07/schema#","title":"Core schema meta-schema","definitions":{"schemaArray":{"type":"array","minItems":1,"items":{"$ref":"#"}},"nonNegativeInteger":{"type":"integer","minimum":0},"nonNegativeIntegerDefault0":{"allOf":[{"$ref":"#/definitions/nonNegativeInteger"},{"default":0}]},"simpleTypes":{"enum":["array","boolean","integer","null","number","object","string"]},"stringArray":{"type":"array","items":{"type":"string"},"uniqueItems":true,"default":[]}},"type":["object","boolean"],"properties":{"$id":{"type":"string","format":"uri-reference"},"$schema":{"type":"string","format":"uri"},"$ref":{"type":"string","format":"uri-reference"},"$comment":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"default":true,"readOnly":{"type":"boolean","default":false},"examples":{"type":"array","items":true},"multipleOf":{"type":"number","exclusiveMinimum":0},"maximum":{"type":"number"},"exclusiveMaximum":{"type":"number"},"minimum":{"type":"number"},"exclusiveMinimum":{"type":"number"},"maxLength":{"$ref":"#/definitions/nonNegativeInteger"},"minLength":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"pattern":{"type":"string","format":"regex"},"additionalItems":{"$ref":"#"},"items":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/schemaArray"}],"default":true},"maxItems":{"$ref":"#/definitions/nonNegativeInteger"},"minItems":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"uniqueItems":{"type":"boolean","default":false},"contains":{"$ref":"#"},"maxProperties":{"$ref":"#/definitions/nonNegativeInteger"},"minProperties":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"required":{"$ref":"#/definitions/stringArray"},"additionalProperties":{"$ref":"#"},"definitions":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"properties":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"patternProperties":{"type":"object","additionalProperties":{"$ref":"#"},"propertyNames":{"format":"regex"},"default":{}},"dependencies":{"type":"object","additionalProperties":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/stringArray"}]}},"propertyNames":{"$ref":"#"},"const":true,"enum":{"type":"array","items":true,"minItems":1,"uniqueItems":true},"type":{"anyOf":[{"$ref":"#/definitions/simpleTypes"},{"type":"array","items":{"$ref":"#/definitions/simpleTypes"},"minItems":1,"uniqueItems":true}]},"format":{"type":"string"},"contentMediaType":{"type":"string"},"contentEncoding":{"type":"string"},"if":{"$ref":"#"},"then":{"$ref":"#"},"else":{"$ref":"#"},"allOf":{"$ref":"#/definitions/schemaArray"},"anyOf":{"$ref":"#/definitions/schemaArray"},"oneOf":{"$ref":"#/definitions/schemaArray"},"not":{"$ref":"#"}},"default":true}')},3765:e=>{"use strict";e.exports=JSON.parse('{"application/1d-interleaved-parityfec":{"source":"iana"},"application/3gpdash-qoe-report+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/3gpp-ims+xml":{"source":"iana","compressible":true},"application/3gpphal+json":{"source":"iana","compressible":true},"application/3gpphalforms+json":{"source":"iana","compressible":true},"application/a2l":{"source":"iana"},"application/ace+cbor":{"source":"iana"},"application/activemessage":{"source":"iana"},"application/activity+json":{"source":"iana","compressible":true},"application/alto-costmap+json":{"source":"iana","compressible":true},"application/alto-costmapfilter+json":{"source":"iana","compressible":true},"application/alto-directory+json":{"source":"iana","compressible":true},"application/alto-endpointcost+json":{"source":"iana","compressible":true},"application/alto-endpointcostparams+json":{"source":"iana","compressible":true},"application/alto-endpointprop+json":{"source":"iana","compressible":true},"application/alto-endpointpropparams+json":{"source":"iana","compressible":true},"application/alto-error+json":{"source":"iana","compressible":true},"application/alto-networkmap+json":{"source":"iana","compressible":true},"application/alto-networkmapfilter+json":{"source":"iana","compressible":true},"application/alto-updatestreamcontrol+json":{"source":"iana","compressible":true},"application/alto-updatestreamparams+json":{"source":"iana","compressible":true},"application/aml":{"source":"iana"},"application/andrew-inset":{"source":"iana","extensions":["ez"]},"application/applefile":{"source":"iana"},"application/applixware":{"source":"apache","extensions":["aw"]},"application/at+jwt":{"source":"iana"},"application/atf":{"source":"iana"},"application/atfx":{"source":"iana"},"application/atom+xml":{"source":"iana","compressible":true,"extensions":["atom"]},"application/atomcat+xml":{"source":"iana","compressible":true,"extensions":["atomcat"]},"application/atomdeleted+xml":{"source":"iana","compressible":true,"extensions":["atomdeleted"]},"application/atomicmail":{"source":"iana"},"application/atomsvc+xml":{"source":"iana","compressible":true,"extensions":["atomsvc"]},"application/atsc-dwd+xml":{"source":"iana","compressible":true,"extensions":["dwd"]},"application/atsc-dynamic-event-message":{"source":"iana"},"application/atsc-held+xml":{"source":"iana","compressible":true,"extensions":["held"]},"application/atsc-rdt+json":{"source":"iana","compressible":true},"application/atsc-rsat+xml":{"source":"iana","compressible":true,"extensions":["rsat"]},"application/atxml":{"source":"iana"},"application/auth-policy+xml":{"source":"iana","compressible":true},"application/bacnet-xdd+zip":{"source":"iana","compressible":false},"application/batch-smtp":{"source":"iana"},"application/bdoc":{"compressible":false,"extensions":["bdoc"]},"application/beep+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/calendar+json":{"source":"iana","compressible":true},"application/calendar+xml":{"source":"iana","compressible":true,"extensions":["xcs"]},"application/call-completion":{"source":"iana"},"application/cals-1840":{"source":"iana"},"application/captive+json":{"source":"iana","compressible":true},"application/cbor":{"source":"iana"},"application/cbor-seq":{"source":"iana"},"application/cccex":{"source":"iana"},"application/ccmp+xml":{"source":"iana","compressible":true},"application/ccxml+xml":{"source":"iana","compressible":true,"extensions":["ccxml"]},"application/cdfx+xml":{"source":"iana","compressible":true,"extensions":["cdfx"]},"application/cdmi-capability":{"source":"iana","extensions":["cdmia"]},"application/cdmi-container":{"source":"iana","extensions":["cdmic"]},"application/cdmi-domain":{"source":"iana","extensions":["cdmid"]},"application/cdmi-object":{"source":"iana","extensions":["cdmio"]},"application/cdmi-queue":{"source":"iana","extensions":["cdmiq"]},"application/cdni":{"source":"iana"},"application/cea":{"source":"iana"},"application/cea-2018+xml":{"source":"iana","compressible":true},"application/cellml+xml":{"source":"iana","compressible":true},"application/cfw":{"source":"iana"},"application/city+json":{"source":"iana","compressible":true},"application/clr":{"source":"iana"},"application/clue+xml":{"source":"iana","compressible":true},"application/clue_info+xml":{"source":"iana","compressible":true},"application/cms":{"source":"iana"},"application/cnrp+xml":{"source":"iana","compressible":true},"application/coap-group+json":{"source":"iana","compressible":true},"application/coap-payload":{"source":"iana"},"application/commonground":{"source":"iana"},"application/conference-info+xml":{"source":"iana","compressible":true},"application/cose":{"source":"iana"},"application/cose-key":{"source":"iana"},"application/cose-key-set":{"source":"iana"},"application/cpl+xml":{"source":"iana","compressible":true,"extensions":["cpl"]},"application/csrattrs":{"source":"iana"},"application/csta+xml":{"source":"iana","compressible":true},"application/cstadata+xml":{"source":"iana","compressible":true},"application/csvm+json":{"source":"iana","compressible":true},"application/cu-seeme":{"source":"apache","extensions":["cu"]},"application/cwt":{"source":"iana"},"application/cybercash":{"source":"iana"},"application/dart":{"compressible":true},"application/dash+xml":{"source":"iana","compressible":true,"extensions":["mpd"]},"application/dash-patch+xml":{"source":"iana","compressible":true,"extensions":["mpp"]},"application/dashdelta":{"source":"iana"},"application/davmount+xml":{"source":"iana","compressible":true,"extensions":["davmount"]},"application/dca-rft":{"source":"iana"},"application/dcd":{"source":"iana"},"application/dec-dx":{"source":"iana"},"application/dialog-info+xml":{"source":"iana","compressible":true},"application/dicom":{"source":"iana"},"application/dicom+json":{"source":"iana","compressible":true},"application/dicom+xml":{"source":"iana","compressible":true},"application/dii":{"source":"iana"},"application/dit":{"source":"iana"},"application/dns":{"source":"iana"},"application/dns+json":{"source":"iana","compressible":true},"application/dns-message":{"source":"iana"},"application/docbook+xml":{"source":"apache","compressible":true,"extensions":["dbk"]},"application/dots+cbor":{"source":"iana"},"application/dskpp+xml":{"source":"iana","compressible":true},"application/dssc+der":{"source":"iana","extensions":["dssc"]},"application/dssc+xml":{"source":"iana","compressible":true,"extensions":["xdssc"]},"application/dvcs":{"source":"iana"},"application/ecmascript":{"source":"iana","compressible":true,"extensions":["es","ecma"]},"application/edi-consent":{"source":"iana"},"application/edi-x12":{"source":"iana","compressible":false},"application/edifact":{"source":"iana","compressible":false},"application/efi":{"source":"iana"},"application/elm+json":{"source":"iana","charset":"UTF-8","compressible":true},"application/elm+xml":{"source":"iana","compressible":true},"application/emergencycalldata.cap+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/emergencycalldata.comment+xml":{"source":"iana","compressible":true},"application/emergencycalldata.control+xml":{"source":"iana","compressible":true},"application/emergencycalldata.deviceinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.ecall.msd":{"source":"iana"},"application/emergencycalldata.providerinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.serviceinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.subscriberinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.veds+xml":{"source":"iana","compressible":true},"application/emma+xml":{"source":"iana","compressible":true,"extensions":["emma"]},"application/emotionml+xml":{"source":"iana","compressible":true,"extensions":["emotionml"]},"application/encaprtp":{"source":"iana"},"application/epp+xml":{"source":"iana","compressible":true},"application/epub+zip":{"source":"iana","compressible":false,"extensions":["epub"]},"application/eshop":{"source":"iana"},"application/exi":{"source":"iana","extensions":["exi"]},"application/expect-ct-report+json":{"source":"iana","compressible":true},"application/express":{"source":"iana","extensions":["exp"]},"application/fastinfoset":{"source":"iana"},"application/fastsoap":{"source":"iana"},"application/fdt+xml":{"source":"iana","compressible":true,"extensions":["fdt"]},"application/fhir+json":{"source":"iana","charset":"UTF-8","compressible":true},"application/fhir+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/fido.trusted-apps+json":{"compressible":true},"application/fits":{"source":"iana"},"application/flexfec":{"source":"iana"},"application/font-sfnt":{"source":"iana"},"application/font-tdpfr":{"source":"iana","extensions":["pfr"]},"application/font-woff":{"source":"iana","compressible":false},"application/framework-attributes+xml":{"source":"iana","compressible":true},"application/geo+json":{"source":"iana","compressible":true,"extensions":["geojson"]},"application/geo+json-seq":{"source":"iana"},"application/geopackage+sqlite3":{"source":"iana"},"application/geoxacml+xml":{"source":"iana","compressible":true},"application/gltf-buffer":{"source":"iana"},"application/gml+xml":{"source":"iana","compressible":true,"extensions":["gml"]},"application/gpx+xml":{"source":"apache","compressible":true,"extensions":["gpx"]},"application/gxf":{"source":"apache","extensions":["gxf"]},"application/gzip":{"source":"iana","compressible":false,"extensions":["gz"]},"application/h224":{"source":"iana"},"application/held+xml":{"source":"iana","compressible":true},"application/hjson":{"extensions":["hjson"]},"application/http":{"source":"iana"},"application/hyperstudio":{"source":"iana","extensions":["stk"]},"application/ibe-key-request+xml":{"source":"iana","compressible":true},"application/ibe-pkg-reply+xml":{"source":"iana","compressible":true},"application/ibe-pp-data":{"source":"iana"},"application/iges":{"source":"iana"},"application/im-iscomposing+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/index":{"source":"iana"},"application/index.cmd":{"source":"iana"},"application/index.obj":{"source":"iana"},"application/index.response":{"source":"iana"},"application/index.vnd":{"source":"iana"},"application/inkml+xml":{"source":"iana","compressible":true,"extensions":["ink","inkml"]},"application/iotp":{"source":"iana"},"application/ipfix":{"source":"iana","extensions":["ipfix"]},"application/ipp":{"source":"iana"},"application/isup":{"source":"iana"},"application/its+xml":{"source":"iana","compressible":true,"extensions":["its"]},"application/java-archive":{"source":"apache","compressible":false,"extensions":["jar","war","ear"]},"application/java-serialized-object":{"source":"apache","compressible":false,"extensions":["ser"]},"application/java-vm":{"source":"apache","compressible":false,"extensions":["class"]},"application/javascript":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["js","mjs"]},"application/jf2feed+json":{"source":"iana","compressible":true},"application/jose":{"source":"iana"},"application/jose+json":{"source":"iana","compressible":true},"application/jrd+json":{"source":"iana","compressible":true},"application/jscalendar+json":{"source":"iana","compressible":true},"application/json":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["json","map"]},"application/json-patch+json":{"source":"iana","compressible":true},"application/json-seq":{"source":"iana"},"application/json5":{"extensions":["json5"]},"application/jsonml+json":{"source":"apache","compressible":true,"extensions":["jsonml"]},"application/jwk+json":{"source":"iana","compressible":true},"application/jwk-set+json":{"source":"iana","compressible":true},"application/jwt":{"source":"iana"},"application/kpml-request+xml":{"source":"iana","compressible":true},"application/kpml-response+xml":{"source":"iana","compressible":true},"application/ld+json":{"source":"iana","compressible":true,"extensions":["jsonld"]},"application/lgr+xml":{"source":"iana","compressible":true,"extensions":["lgr"]},"application/link-format":{"source":"iana"},"application/load-control+xml":{"source":"iana","compressible":true},"application/lost+xml":{"source":"iana","compressible":true,"extensions":["lostxml"]},"application/lostsync+xml":{"source":"iana","compressible":true},"application/lpf+zip":{"source":"iana","compressible":false},"application/lxf":{"source":"iana"},"application/mac-binhex40":{"source":"iana","extensions":["hqx"]},"application/mac-compactpro":{"source":"apache","extensions":["cpt"]},"application/macwriteii":{"source":"iana"},"application/mads+xml":{"source":"iana","compressible":true,"extensions":["mads"]},"application/manifest+json":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["webmanifest"]},"application/marc":{"source":"iana","extensions":["mrc"]},"application/marcxml+xml":{"source":"iana","compressible":true,"extensions":["mrcx"]},"application/mathematica":{"source":"iana","extensions":["ma","nb","mb"]},"application/mathml+xml":{"source":"iana","compressible":true,"extensions":["mathml"]},"application/mathml-content+xml":{"source":"iana","compressible":true},"application/mathml-presentation+xml":{"source":"iana","compressible":true},"application/mbms-associated-procedure-description+xml":{"source":"iana","compressible":true},"application/mbms-deregister+xml":{"source":"iana","compressible":true},"application/mbms-envelope+xml":{"source":"iana","compressible":true},"application/mbms-msk+xml":{"source":"iana","compressible":true},"application/mbms-msk-response+xml":{"source":"iana","compressible":true},"application/mbms-protection-description+xml":{"source":"iana","compressible":true},"application/mbms-reception-report+xml":{"source":"iana","compressible":true},"application/mbms-register+xml":{"source":"iana","compressible":true},"application/mbms-register-response+xml":{"source":"iana","compressible":true},"application/mbms-schedule+xml":{"source":"iana","compressible":true},"application/mbms-user-service-description+xml":{"source":"iana","compressible":true},"application/mbox":{"source":"iana","extensions":["mbox"]},"application/media-policy-dataset+xml":{"source":"iana","compressible":true,"extensions":["mpf"]},"application/media_control+xml":{"source":"iana","compressible":true},"application/mediaservercontrol+xml":{"source":"iana","compressible":true,"extensions":["mscml"]},"application/merge-patch+json":{"source":"iana","compressible":true},"application/metalink+xml":{"source":"apache","compressible":true,"extensions":["metalink"]},"application/metalink4+xml":{"source":"iana","compressible":true,"extensions":["meta4"]},"application/mets+xml":{"source":"iana","compressible":true,"extensions":["mets"]},"application/mf4":{"source":"iana"},"application/mikey":{"source":"iana"},"application/mipc":{"source":"iana"},"application/missing-blocks+cbor-seq":{"source":"iana"},"application/mmt-aei+xml":{"source":"iana","compressible":true,"extensions":["maei"]},"application/mmt-usd+xml":{"source":"iana","compressible":true,"extensions":["musd"]},"application/mods+xml":{"source":"iana","compressible":true,"extensions":["mods"]},"application/moss-keys":{"source":"iana"},"application/moss-signature":{"source":"iana"},"application/mosskey-data":{"source":"iana"},"application/mosskey-request":{"source":"iana"},"application/mp21":{"source":"iana","extensions":["m21","mp21"]},"application/mp4":{"source":"iana","extensions":["mp4s","m4p"]},"application/mpeg4-generic":{"source":"iana"},"application/mpeg4-iod":{"source":"iana"},"application/mpeg4-iod-xmt":{"source":"iana"},"application/mrb-consumer+xml":{"source":"iana","compressible":true},"application/mrb-publish+xml":{"source":"iana","compressible":true},"application/msc-ivr+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/msc-mixer+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/msword":{"source":"iana","compressible":false,"extensions":["doc","dot"]},"application/mud+json":{"source":"iana","compressible":true},"application/multipart-core":{"source":"iana"},"application/mxf":{"source":"iana","extensions":["mxf"]},"application/n-quads":{"source":"iana","extensions":["nq"]},"application/n-triples":{"source":"iana","extensions":["nt"]},"application/nasdata":{"source":"iana"},"application/news-checkgroups":{"source":"iana","charset":"US-ASCII"},"application/news-groupinfo":{"source":"iana","charset":"US-ASCII"},"application/news-transmission":{"source":"iana"},"application/nlsml+xml":{"source":"iana","compressible":true},"application/node":{"source":"iana","extensions":["cjs"]},"application/nss":{"source":"iana"},"application/oauth-authz-req+jwt":{"source":"iana"},"application/oblivious-dns-message":{"source":"iana"},"application/ocsp-request":{"source":"iana"},"application/ocsp-response":{"source":"iana"},"application/octet-stream":{"source":"iana","compressible":false,"extensions":["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"]},"application/oda":{"source":"iana","extensions":["oda"]},"application/odm+xml":{"source":"iana","compressible":true},"application/odx":{"source":"iana"},"application/oebps-package+xml":{"source":"iana","compressible":true,"extensions":["opf"]},"application/ogg":{"source":"iana","compressible":false,"extensions":["ogx"]},"application/omdoc+xml":{"source":"apache","compressible":true,"extensions":["omdoc"]},"application/onenote":{"source":"apache","extensions":["onetoc","onetoc2","onetmp","onepkg"]},"application/opc-nodeset+xml":{"source":"iana","compressible":true},"application/oscore":{"source":"iana"},"application/oxps":{"source":"iana","extensions":["oxps"]},"application/p21":{"source":"iana"},"application/p21+zip":{"source":"iana","compressible":false},"application/p2p-overlay+xml":{"source":"iana","compressible":true,"extensions":["relo"]},"application/parityfec":{"source":"iana"},"application/passport":{"source":"iana"},"application/patch-ops-error+xml":{"source":"iana","compressible":true,"extensions":["xer"]},"application/pdf":{"source":"iana","compressible":false,"extensions":["pdf"]},"application/pdx":{"source":"iana"},"application/pem-certificate-chain":{"source":"iana"},"application/pgp-encrypted":{"source":"iana","compressible":false,"extensions":["pgp"]},"application/pgp-keys":{"source":"iana","extensions":["asc"]},"application/pgp-signature":{"source":"iana","extensions":["asc","sig"]},"application/pics-rules":{"source":"apache","extensions":["prf"]},"application/pidf+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/pidf-diff+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/pkcs10":{"source":"iana","extensions":["p10"]},"application/pkcs12":{"source":"iana"},"application/pkcs7-mime":{"source":"iana","extensions":["p7m","p7c"]},"application/pkcs7-signature":{"source":"iana","extensions":["p7s"]},"application/pkcs8":{"source":"iana","extensions":["p8"]},"application/pkcs8-encrypted":{"source":"iana"},"application/pkix-attr-cert":{"source":"iana","extensions":["ac"]},"application/pkix-cert":{"source":"iana","extensions":["cer"]},"application/pkix-crl":{"source":"iana","extensions":["crl"]},"application/pkix-pkipath":{"source":"iana","extensions":["pkipath"]},"application/pkixcmp":{"source":"iana","extensions":["pki"]},"application/pls+xml":{"source":"iana","compressible":true,"extensions":["pls"]},"application/poc-settings+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/postscript":{"source":"iana","compressible":true,"extensions":["ai","eps","ps"]},"application/ppsp-tracker+json":{"source":"iana","compressible":true},"application/problem+json":{"source":"iana","compressible":true},"application/problem+xml":{"source":"iana","compressible":true},"application/provenance+xml":{"source":"iana","compressible":true,"extensions":["provx"]},"application/prs.alvestrand.titrax-sheet":{"source":"iana"},"application/prs.cww":{"source":"iana","extensions":["cww"]},"application/prs.cyn":{"source":"iana","charset":"7-BIT"},"application/prs.hpub+zip":{"source":"iana","compressible":false},"application/prs.nprend":{"source":"iana"},"application/prs.plucker":{"source":"iana"},"application/prs.rdf-xml-crypt":{"source":"iana"},"application/prs.xsf+xml":{"source":"iana","compressible":true},"application/pskc+xml":{"source":"iana","compressible":true,"extensions":["pskcxml"]},"application/pvd+json":{"source":"iana","compressible":true},"application/qsig":{"source":"iana"},"application/raml+yaml":{"compressible":true,"extensions":["raml"]},"application/raptorfec":{"source":"iana"},"application/rdap+json":{"source":"iana","compressible":true},"application/rdf+xml":{"source":"iana","compressible":true,"extensions":["rdf","owl"]},"application/reginfo+xml":{"source":"iana","compressible":true,"extensions":["rif"]},"application/relax-ng-compact-syntax":{"source":"iana","extensions":["rnc"]},"application/remote-printing":{"source":"iana"},"application/reputon+json":{"source":"iana","compressible":true},"application/resource-lists+xml":{"source":"iana","compressible":true,"extensions":["rl"]},"application/resource-lists-diff+xml":{"source":"iana","compressible":true,"extensions":["rld"]},"application/rfc+xml":{"source":"iana","compressible":true},"application/riscos":{"source":"iana"},"application/rlmi+xml":{"source":"iana","compressible":true},"application/rls-services+xml":{"source":"iana","compressible":true,"extensions":["rs"]},"application/route-apd+xml":{"source":"iana","compressible":true,"extensions":["rapd"]},"application/route-s-tsid+xml":{"source":"iana","compressible":true,"extensions":["sls"]},"application/route-usd+xml":{"source":"iana","compressible":true,"extensions":["rusd"]},"application/rpki-ghostbusters":{"source":"iana","extensions":["gbr"]},"application/rpki-manifest":{"source":"iana","extensions":["mft"]},"application/rpki-publication":{"source":"iana"},"application/rpki-roa":{"source":"iana","extensions":["roa"]},"application/rpki-updown":{"source":"iana"},"application/rsd+xml":{"source":"apache","compressible":true,"extensions":["rsd"]},"application/rss+xml":{"source":"apache","compressible":true,"extensions":["rss"]},"application/rtf":{"source":"iana","compressible":true,"extensions":["rtf"]},"application/rtploopback":{"source":"iana"},"application/rtx":{"source":"iana"},"application/samlassertion+xml":{"source":"iana","compressible":true},"application/samlmetadata+xml":{"source":"iana","compressible":true},"application/sarif+json":{"source":"iana","compressible":true},"application/sarif-external-properties+json":{"source":"iana","compressible":true},"application/sbe":{"source":"iana"},"application/sbml+xml":{"source":"iana","compressible":true,"extensions":["sbml"]},"application/scaip+xml":{"source":"iana","compressible":true},"application/scim+json":{"source":"iana","compressible":true},"application/scvp-cv-request":{"source":"iana","extensions":["scq"]},"application/scvp-cv-response":{"source":"iana","extensions":["scs"]},"application/scvp-vp-request":{"source":"iana","extensions":["spq"]},"application/scvp-vp-response":{"source":"iana","extensions":["spp"]},"application/sdp":{"source":"iana","extensions":["sdp"]},"application/secevent+jwt":{"source":"iana"},"application/senml+cbor":{"source":"iana"},"application/senml+json":{"source":"iana","compressible":true},"application/senml+xml":{"source":"iana","compressible":true,"extensions":["senmlx"]},"application/senml-etch+cbor":{"source":"iana"},"application/senml-etch+json":{"source":"iana","compressible":true},"application/senml-exi":{"source":"iana"},"application/sensml+cbor":{"source":"iana"},"application/sensml+json":{"source":"iana","compressible":true},"application/sensml+xml":{"source":"iana","compressible":true,"extensions":["sensmlx"]},"application/sensml-exi":{"source":"iana"},"application/sep+xml":{"source":"iana","compressible":true},"application/sep-exi":{"source":"iana"},"application/session-info":{"source":"iana"},"application/set-payment":{"source":"iana"},"application/set-payment-initiation":{"source":"iana","extensions":["setpay"]},"application/set-registration":{"source":"iana"},"application/set-registration-initiation":{"source":"iana","extensions":["setreg"]},"application/sgml":{"source":"iana"},"application/sgml-open-catalog":{"source":"iana"},"application/shf+xml":{"source":"iana","compressible":true,"extensions":["shf"]},"application/sieve":{"source":"iana","extensions":["siv","sieve"]},"application/simple-filter+xml":{"source":"iana","compressible":true},"application/simple-message-summary":{"source":"iana"},"application/simplesymbolcontainer":{"source":"iana"},"application/sipc":{"source":"iana"},"application/slate":{"source":"iana"},"application/smil":{"source":"iana"},"application/smil+xml":{"source":"iana","compressible":true,"extensions":["smi","smil"]},"application/smpte336m":{"source":"iana"},"application/soap+fastinfoset":{"source":"iana"},"application/soap+xml":{"source":"iana","compressible":true},"application/sparql-query":{"source":"iana","extensions":["rq"]},"application/sparql-results+xml":{"source":"iana","compressible":true,"extensions":["srx"]},"application/spdx+json":{"source":"iana","compressible":true},"application/spirits-event+xml":{"source":"iana","compressible":true},"application/sql":{"source":"iana"},"application/srgs":{"source":"iana","extensions":["gram"]},"application/srgs+xml":{"source":"iana","compressible":true,"extensions":["grxml"]},"application/sru+xml":{"source":"iana","compressible":true,"extensions":["sru"]},"application/ssdl+xml":{"source":"apache","compressible":true,"extensions":["ssdl"]},"application/ssml+xml":{"source":"iana","compressible":true,"extensions":["ssml"]},"application/stix+json":{"source":"iana","compressible":true},"application/swid+xml":{"source":"iana","compressible":true,"extensions":["swidtag"]},"application/tamp-apex-update":{"source":"iana"},"application/tamp-apex-update-confirm":{"source":"iana"},"application/tamp-community-update":{"source":"iana"},"application/tamp-community-update-confirm":{"source":"iana"},"application/tamp-error":{"source":"iana"},"application/tamp-sequence-adjust":{"source":"iana"},"application/tamp-sequence-adjust-confirm":{"source":"iana"},"application/tamp-status-query":{"source":"iana"},"application/tamp-status-response":{"source":"iana"},"application/tamp-update":{"source":"iana"},"application/tamp-update-confirm":{"source":"iana"},"application/tar":{"compressible":true},"application/taxii+json":{"source":"iana","compressible":true},"application/td+json":{"source":"iana","compressible":true},"application/tei+xml":{"source":"iana","compressible":true,"extensions":["tei","teicorpus"]},"application/tetra_isi":{"source":"iana"},"application/thraud+xml":{"source":"iana","compressible":true,"extensions":["tfi"]},"application/timestamp-query":{"source":"iana"},"application/timestamp-reply":{"source":"iana"},"application/timestamped-data":{"source":"iana","extensions":["tsd"]},"application/tlsrpt+gzip":{"source":"iana"},"application/tlsrpt+json":{"source":"iana","compressible":true},"application/tnauthlist":{"source":"iana"},"application/token-introspection+jwt":{"source":"iana"},"application/toml":{"compressible":true,"extensions":["toml"]},"application/trickle-ice-sdpfrag":{"source":"iana"},"application/trig":{"source":"iana","extensions":["trig"]},"application/ttml+xml":{"source":"iana","compressible":true,"extensions":["ttml"]},"application/tve-trigger":{"source":"iana"},"application/tzif":{"source":"iana"},"application/tzif-leap":{"source":"iana"},"application/ubjson":{"compressible":false,"extensions":["ubj"]},"application/ulpfec":{"source":"iana"},"application/urc-grpsheet+xml":{"source":"iana","compressible":true},"application/urc-ressheet+xml":{"source":"iana","compressible":true,"extensions":["rsheet"]},"application/urc-targetdesc+xml":{"source":"iana","compressible":true,"extensions":["td"]},"application/urc-uisocketdesc+xml":{"source":"iana","compressible":true},"application/vcard+json":{"source":"iana","compressible":true},"application/vcard+xml":{"source":"iana","compressible":true},"application/vemmi":{"source":"iana"},"application/vividence.scriptfile":{"source":"apache"},"application/vnd.1000minds.decision-model+xml":{"source":"iana","compressible":true,"extensions":["1km"]},"application/vnd.3gpp-prose+xml":{"source":"iana","compressible":true},"application/vnd.3gpp-prose-pc3ch+xml":{"source":"iana","compressible":true},"application/vnd.3gpp-v2x-local-service-information":{"source":"iana"},"application/vnd.3gpp.5gnas":{"source":"iana"},"application/vnd.3gpp.access-transfer-events+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.bsf+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.gmop+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.gtpc":{"source":"iana"},"application/vnd.3gpp.interworking-data":{"source":"iana"},"application/vnd.3gpp.lpp":{"source":"iana"},"application/vnd.3gpp.mc-signalling-ear":{"source":"iana"},"application/vnd.3gpp.mcdata-affiliation-command+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-payload":{"source":"iana"},"application/vnd.3gpp.mcdata-service-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-signalling":{"source":"iana"},"application/vnd.3gpp.mcdata-ue-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-user-profile+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-affiliation-command+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-floor-request+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-location-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-mbms-usage-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-service-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-signed+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-ue-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-ue-init-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-user-profile+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-affiliation-command+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-affiliation-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-location-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-mbms-usage-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-service-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-transmission-request+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-ue-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-user-profile+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mid-call+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.ngap":{"source":"iana"},"application/vnd.3gpp.pfcp":{"source":"iana"},"application/vnd.3gpp.pic-bw-large":{"source":"iana","extensions":["plb"]},"application/vnd.3gpp.pic-bw-small":{"source":"iana","extensions":["psb"]},"application/vnd.3gpp.pic-bw-var":{"source":"iana","extensions":["pvb"]},"application/vnd.3gpp.s1ap":{"source":"iana"},"application/vnd.3gpp.sms":{"source":"iana"},"application/vnd.3gpp.sms+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.srvcc-ext+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.srvcc-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.state-and-event-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.ussd+xml":{"source":"iana","compressible":true},"application/vnd.3gpp2.bcmcsinfo+xml":{"source":"iana","compressible":true},"application/vnd.3gpp2.sms":{"source":"iana"},"application/vnd.3gpp2.tcap":{"source":"iana","extensions":["tcap"]},"application/vnd.3lightssoftware.imagescal":{"source":"iana"},"application/vnd.3m.post-it-notes":{"source":"iana","extensions":["pwn"]},"application/vnd.accpac.simply.aso":{"source":"iana","extensions":["aso"]},"application/vnd.accpac.simply.imp":{"source":"iana","extensions":["imp"]},"application/vnd.acucobol":{"source":"iana","extensions":["acu"]},"application/vnd.acucorp":{"source":"iana","extensions":["atc","acutc"]},"application/vnd.adobe.air-application-installer-package+zip":{"source":"apache","compressible":false,"extensions":["air"]},"application/vnd.adobe.flash.movie":{"source":"iana"},"application/vnd.adobe.formscentral.fcdt":{"source":"iana","extensions":["fcdt"]},"application/vnd.adobe.fxp":{"source":"iana","extensions":["fxp","fxpl"]},"application/vnd.adobe.partial-upload":{"source":"iana"},"application/vnd.adobe.xdp+xml":{"source":"iana","compressible":true,"extensions":["xdp"]},"application/vnd.adobe.xfdf":{"source":"iana","extensions":["xfdf"]},"application/vnd.aether.imp":{"source":"iana"},"application/vnd.afpc.afplinedata":{"source":"iana"},"application/vnd.afpc.afplinedata-pagedef":{"source":"iana"},"application/vnd.afpc.cmoca-cmresource":{"source":"iana"},"application/vnd.afpc.foca-charset":{"source":"iana"},"application/vnd.afpc.foca-codedfont":{"source":"iana"},"application/vnd.afpc.foca-codepage":{"source":"iana"},"application/vnd.afpc.modca":{"source":"iana"},"application/vnd.afpc.modca-cmtable":{"source":"iana"},"application/vnd.afpc.modca-formdef":{"source":"iana"},"application/vnd.afpc.modca-mediummap":{"source":"iana"},"application/vnd.afpc.modca-objectcontainer":{"source":"iana"},"application/vnd.afpc.modca-overlay":{"source":"iana"},"application/vnd.afpc.modca-pagesegment":{"source":"iana"},"application/vnd.age":{"source":"iana","extensions":["age"]},"application/vnd.ah-barcode":{"source":"iana"},"application/vnd.ahead.space":{"source":"iana","extensions":["ahead"]},"application/vnd.airzip.filesecure.azf":{"source":"iana","extensions":["azf"]},"application/vnd.airzip.filesecure.azs":{"source":"iana","extensions":["azs"]},"application/vnd.amadeus+json":{"source":"iana","compressible":true},"application/vnd.amazon.ebook":{"source":"apache","extensions":["azw"]},"application/vnd.amazon.mobi8-ebook":{"source":"iana"},"application/vnd.americandynamics.acc":{"source":"iana","extensions":["acc"]},"application/vnd.amiga.ami":{"source":"iana","extensions":["ami"]},"application/vnd.amundsen.maze+xml":{"source":"iana","compressible":true},"application/vnd.android.ota":{"source":"iana"},"application/vnd.android.package-archive":{"source":"apache","compressible":false,"extensions":["apk"]},"application/vnd.anki":{"source":"iana"},"application/vnd.anser-web-certificate-issue-initiation":{"source":"iana","extensions":["cii"]},"application/vnd.anser-web-funds-transfer-initiation":{"source":"apache","extensions":["fti"]},"application/vnd.antix.game-component":{"source":"iana","extensions":["atx"]},"application/vnd.apache.arrow.file":{"source":"iana"},"application/vnd.apache.arrow.stream":{"source":"iana"},"application/vnd.apache.thrift.binary":{"source":"iana"},"application/vnd.apache.thrift.compact":{"source":"iana"},"application/vnd.apache.thrift.json":{"source":"iana"},"application/vnd.api+json":{"source":"iana","compressible":true},"application/vnd.aplextor.warrp+json":{"source":"iana","compressible":true},"application/vnd.apothekende.reservation+json":{"source":"iana","compressible":true},"application/vnd.apple.installer+xml":{"source":"iana","compressible":true,"extensions":["mpkg"]},"application/vnd.apple.keynote":{"source":"iana","extensions":["key"]},"application/vnd.apple.mpegurl":{"source":"iana","extensions":["m3u8"]},"application/vnd.apple.numbers":{"source":"iana","extensions":["numbers"]},"application/vnd.apple.pages":{"source":"iana","extensions":["pages"]},"application/vnd.apple.pkpass":{"compressible":false,"extensions":["pkpass"]},"application/vnd.arastra.swi":{"source":"iana"},"application/vnd.aristanetworks.swi":{"source":"iana","extensions":["swi"]},"application/vnd.artisan+json":{"source":"iana","compressible":true},"application/vnd.artsquare":{"source":"iana"},"application/vnd.astraea-software.iota":{"source":"iana","extensions":["iota"]},"application/vnd.audiograph":{"source":"iana","extensions":["aep"]},"application/vnd.autopackage":{"source":"iana"},"application/vnd.avalon+json":{"source":"iana","compressible":true},"application/vnd.avistar+xml":{"source":"iana","compressible":true},"application/vnd.balsamiq.bmml+xml":{"source":"iana","compressible":true,"extensions":["bmml"]},"application/vnd.balsamiq.bmpr":{"source":"iana"},"application/vnd.banana-accounting":{"source":"iana"},"application/vnd.bbf.usp.error":{"source":"iana"},"application/vnd.bbf.usp.msg":{"source":"iana"},"application/vnd.bbf.usp.msg+json":{"source":"iana","compressible":true},"application/vnd.bekitzur-stech+json":{"source":"iana","compressible":true},"application/vnd.bint.med-content":{"source":"iana"},"application/vnd.biopax.rdf+xml":{"source":"iana","compressible":true},"application/vnd.blink-idb-value-wrapper":{"source":"iana"},"application/vnd.blueice.multipass":{"source":"iana","extensions":["mpm"]},"application/vnd.bluetooth.ep.oob":{"source":"iana"},"application/vnd.bluetooth.le.oob":{"source":"iana"},"application/vnd.bmi":{"source":"iana","extensions":["bmi"]},"application/vnd.bpf":{"source":"iana"},"application/vnd.bpf3":{"source":"iana"},"application/vnd.businessobjects":{"source":"iana","extensions":["rep"]},"application/vnd.byu.uapi+json":{"source":"iana","compressible":true},"application/vnd.cab-jscript":{"source":"iana"},"application/vnd.canon-cpdl":{"source":"iana"},"application/vnd.canon-lips":{"source":"iana"},"application/vnd.capasystems-pg+json":{"source":"iana","compressible":true},"application/vnd.cendio.thinlinc.clientconf":{"source":"iana"},"application/vnd.century-systems.tcp_stream":{"source":"iana"},"application/vnd.chemdraw+xml":{"source":"iana","compressible":true,"extensions":["cdxml"]},"application/vnd.chess-pgn":{"source":"iana"},"application/vnd.chipnuts.karaoke-mmd":{"source":"iana","extensions":["mmd"]},"application/vnd.ciedi":{"source":"iana"},"application/vnd.cinderella":{"source":"iana","extensions":["cdy"]},"application/vnd.cirpack.isdn-ext":{"source":"iana"},"application/vnd.citationstyles.style+xml":{"source":"iana","compressible":true,"extensions":["csl"]},"application/vnd.claymore":{"source":"iana","extensions":["cla"]},"application/vnd.cloanto.rp9":{"source":"iana","extensions":["rp9"]},"application/vnd.clonk.c4group":{"source":"iana","extensions":["c4g","c4d","c4f","c4p","c4u"]},"application/vnd.cluetrust.cartomobile-config":{"source":"iana","extensions":["c11amc"]},"application/vnd.cluetrust.cartomobile-config-pkg":{"source":"iana","extensions":["c11amz"]},"application/vnd.coffeescript":{"source":"iana"},"application/vnd.collabio.xodocuments.document":{"source":"iana"},"application/vnd.collabio.xodocuments.document-template":{"source":"iana"},"application/vnd.collabio.xodocuments.presentation":{"source":"iana"},"application/vnd.collabio.xodocuments.presentation-template":{"source":"iana"},"application/vnd.collabio.xodocuments.spreadsheet":{"source":"iana"},"application/vnd.collabio.xodocuments.spreadsheet-template":{"source":"iana"},"application/vnd.collection+json":{"source":"iana","compressible":true},"application/vnd.collection.doc+json":{"source":"iana","compressible":true},"application/vnd.collection.next+json":{"source":"iana","compressible":true},"application/vnd.comicbook+zip":{"source":"iana","compressible":false},"application/vnd.comicbook-rar":{"source":"iana"},"application/vnd.commerce-battelle":{"source":"iana"},"application/vnd.commonspace":{"source":"iana","extensions":["csp"]},"application/vnd.contact.cmsg":{"source":"iana","extensions":["cdbcmsg"]},"application/vnd.coreos.ignition+json":{"source":"iana","compressible":true},"application/vnd.cosmocaller":{"source":"iana","extensions":["cmc"]},"application/vnd.crick.clicker":{"source":"iana","extensions":["clkx"]},"application/vnd.crick.clicker.keyboard":{"source":"iana","extensions":["clkk"]},"application/vnd.crick.clicker.palette":{"source":"iana","extensions":["clkp"]},"application/vnd.crick.clicker.template":{"source":"iana","extensions":["clkt"]},"application/vnd.crick.clicker.wordbank":{"source":"iana","extensions":["clkw"]},"application/vnd.criticaltools.wbs+xml":{"source":"iana","compressible":true,"extensions":["wbs"]},"application/vnd.cryptii.pipe+json":{"source":"iana","compressible":true},"application/vnd.crypto-shade-file":{"source":"iana"},"application/vnd.cryptomator.encrypted":{"source":"iana"},"application/vnd.cryptomator.vault":{"source":"iana"},"application/vnd.ctc-posml":{"source":"iana","extensions":["pml"]},"application/vnd.ctct.ws+xml":{"source":"iana","compressible":true},"application/vnd.cups-pdf":{"source":"iana"},"application/vnd.cups-postscript":{"source":"iana"},"application/vnd.cups-ppd":{"source":"iana","extensions":["ppd"]},"application/vnd.cups-raster":{"source":"iana"},"application/vnd.cups-raw":{"source":"iana"},"application/vnd.curl":{"source":"iana"},"application/vnd.curl.car":{"source":"apache","extensions":["car"]},"application/vnd.curl.pcurl":{"source":"apache","extensions":["pcurl"]},"application/vnd.cyan.dean.root+xml":{"source":"iana","compressible":true},"application/vnd.cybank":{"source":"iana"},"application/vnd.cyclonedx+json":{"source":"iana","compressible":true},"application/vnd.cyclonedx+xml":{"source":"iana","compressible":true},"application/vnd.d2l.coursepackage1p0+zip":{"source":"iana","compressible":false},"application/vnd.d3m-dataset":{"source":"iana"},"application/vnd.d3m-problem":{"source":"iana"},"application/vnd.dart":{"source":"iana","compressible":true,"extensions":["dart"]},"application/vnd.data-vision.rdz":{"source":"iana","extensions":["rdz"]},"application/vnd.datapackage+json":{"source":"iana","compressible":true},"application/vnd.dataresource+json":{"source":"iana","compressible":true},"application/vnd.dbf":{"source":"iana","extensions":["dbf"]},"application/vnd.debian.binary-package":{"source":"iana"},"application/vnd.dece.data":{"source":"iana","extensions":["uvf","uvvf","uvd","uvvd"]},"application/vnd.dece.ttml+xml":{"source":"iana","compressible":true,"extensions":["uvt","uvvt"]},"application/vnd.dece.unspecified":{"source":"iana","extensions":["uvx","uvvx"]},"application/vnd.dece.zip":{"source":"iana","extensions":["uvz","uvvz"]},"application/vnd.denovo.fcselayout-link":{"source":"iana","extensions":["fe_launch"]},"application/vnd.desmume.movie":{"source":"iana"},"application/vnd.dir-bi.plate-dl-nosuffix":{"source":"iana"},"application/vnd.dm.delegation+xml":{"source":"iana","compressible":true},"application/vnd.dna":{"source":"iana","extensions":["dna"]},"application/vnd.document+json":{"source":"iana","compressible":true},"application/vnd.dolby.mlp":{"source":"apache","extensions":["mlp"]},"application/vnd.dolby.mobile.1":{"source":"iana"},"application/vnd.dolby.mobile.2":{"source":"iana"},"application/vnd.doremir.scorecloud-binary-document":{"source":"iana"},"application/vnd.dpgraph":{"source":"iana","extensions":["dpg"]},"application/vnd.dreamfactory":{"source":"iana","extensions":["dfac"]},"application/vnd.drive+json":{"source":"iana","compressible":true},"application/vnd.ds-keypoint":{"source":"apache","extensions":["kpxx"]},"application/vnd.dtg.local":{"source":"iana"},"application/vnd.dtg.local.flash":{"source":"iana"},"application/vnd.dtg.local.html":{"source":"iana"},"application/vnd.dvb.ait":{"source":"iana","extensions":["ait"]},"application/vnd.dvb.dvbisl+xml":{"source":"iana","compressible":true},"application/vnd.dvb.dvbj":{"source":"iana"},"application/vnd.dvb.esgcontainer":{"source":"iana"},"application/vnd.dvb.ipdcdftnotifaccess":{"source":"iana"},"application/vnd.dvb.ipdcesgaccess":{"source":"iana"},"application/vnd.dvb.ipdcesgaccess2":{"source":"iana"},"application/vnd.dvb.ipdcesgpdd":{"source":"iana"},"application/vnd.dvb.ipdcroaming":{"source":"iana"},"application/vnd.dvb.iptv.alfec-base":{"source":"iana"},"application/vnd.dvb.iptv.alfec-enhancement":{"source":"iana"},"application/vnd.dvb.notif-aggregate-root+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-container+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-generic+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-ia-msglist+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-ia-registration-request+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-ia-registration-response+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-init+xml":{"source":"iana","compressible":true},"application/vnd.dvb.pfr":{"source":"iana"},"application/vnd.dvb.service":{"source":"iana","extensions":["svc"]},"application/vnd.dxr":{"source":"iana"},"application/vnd.dynageo":{"source":"iana","extensions":["geo"]},"application/vnd.dzr":{"source":"iana"},"application/vnd.easykaraoke.cdgdownload":{"source":"iana"},"application/vnd.ecdis-update":{"source":"iana"},"application/vnd.ecip.rlp":{"source":"iana"},"application/vnd.eclipse.ditto+json":{"source":"iana","compressible":true},"application/vnd.ecowin.chart":{"source":"iana","extensions":["mag"]},"application/vnd.ecowin.filerequest":{"source":"iana"},"application/vnd.ecowin.fileupdate":{"source":"iana"},"application/vnd.ecowin.series":{"source":"iana"},"application/vnd.ecowin.seriesrequest":{"source":"iana"},"application/vnd.ecowin.seriesupdate":{"source":"iana"},"application/vnd.efi.img":{"source":"iana"},"application/vnd.efi.iso":{"source":"iana"},"application/vnd.emclient.accessrequest+xml":{"source":"iana","compressible":true},"application/vnd.enliven":{"source":"iana","extensions":["nml"]},"application/vnd.enphase.envoy":{"source":"iana"},"application/vnd.eprints.data+xml":{"source":"iana","compressible":true},"application/vnd.epson.esf":{"source":"iana","extensions":["esf"]},"application/vnd.epson.msf":{"source":"iana","extensions":["msf"]},"application/vnd.epson.quickanime":{"source":"iana","extensions":["qam"]},"application/vnd.epson.salt":{"source":"iana","extensions":["slt"]},"application/vnd.epson.ssf":{"source":"iana","extensions":["ssf"]},"application/vnd.ericsson.quickcall":{"source":"iana"},"application/vnd.espass-espass+zip":{"source":"iana","compressible":false},"application/vnd.eszigno3+xml":{"source":"iana","compressible":true,"extensions":["es3","et3"]},"application/vnd.etsi.aoc+xml":{"source":"iana","compressible":true},"application/vnd.etsi.asic-e+zip":{"source":"iana","compressible":false},"application/vnd.etsi.asic-s+zip":{"source":"iana","compressible":false},"application/vnd.etsi.cug+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvcommand+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvdiscovery+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvprofile+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsad-bc+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsad-cod+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsad-npvr+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvservice+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsync+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvueprofile+xml":{"source":"iana","compressible":true},"application/vnd.etsi.mcid+xml":{"source":"iana","compressible":true},"application/vnd.etsi.mheg5":{"source":"iana"},"application/vnd.etsi.overload-control-policy-dataset+xml":{"source":"iana","compressible":true},"application/vnd.etsi.pstn+xml":{"source":"iana","compressible":true},"application/vnd.etsi.sci+xml":{"source":"iana","compressible":true},"application/vnd.etsi.simservs+xml":{"source":"iana","compressible":true},"application/vnd.etsi.timestamp-token":{"source":"iana"},"application/vnd.etsi.tsl+xml":{"source":"iana","compressible":true},"application/vnd.etsi.tsl.der":{"source":"iana"},"application/vnd.eu.kasparian.car+json":{"source":"iana","compressible":true},"application/vnd.eudora.data":{"source":"iana"},"application/vnd.evolv.ecig.profile":{"source":"iana"},"application/vnd.evolv.ecig.settings":{"source":"iana"},"application/vnd.evolv.ecig.theme":{"source":"iana"},"application/vnd.exstream-empower+zip":{"source":"iana","compressible":false},"application/vnd.exstream-package":{"source":"iana"},"application/vnd.ezpix-album":{"source":"iana","extensions":["ez2"]},"application/vnd.ezpix-package":{"source":"iana","extensions":["ez3"]},"application/vnd.f-secure.mobile":{"source":"iana"},"application/vnd.familysearch.gedcom+zip":{"source":"iana","compressible":false},"application/vnd.fastcopy-disk-image":{"source":"iana"},"application/vnd.fdf":{"source":"iana","extensions":["fdf"]},"application/vnd.fdsn.mseed":{"source":"iana","extensions":["mseed"]},"application/vnd.fdsn.seed":{"source":"iana","extensions":["seed","dataless"]},"application/vnd.ffsns":{"source":"iana"},"application/vnd.ficlab.flb+zip":{"source":"iana","compressible":false},"application/vnd.filmit.zfc":{"source":"iana"},"application/vnd.fints":{"source":"iana"},"application/vnd.firemonkeys.cloudcell":{"source":"iana"},"application/vnd.flographit":{"source":"iana","extensions":["gph"]},"application/vnd.fluxtime.clip":{"source":"iana","extensions":["ftc"]},"application/vnd.font-fontforge-sfd":{"source":"iana"},"application/vnd.framemaker":{"source":"iana","extensions":["fm","frame","maker","book"]},"application/vnd.frogans.fnc":{"source":"iana","extensions":["fnc"]},"application/vnd.frogans.ltf":{"source":"iana","extensions":["ltf"]},"application/vnd.fsc.weblaunch":{"source":"iana","extensions":["fsc"]},"application/vnd.fujifilm.fb.docuworks":{"source":"iana"},"application/vnd.fujifilm.fb.docuworks.binder":{"source":"iana"},"application/vnd.fujifilm.fb.docuworks.container":{"source":"iana"},"application/vnd.fujifilm.fb.jfi+xml":{"source":"iana","compressible":true},"application/vnd.fujitsu.oasys":{"source":"iana","extensions":["oas"]},"application/vnd.fujitsu.oasys2":{"source":"iana","extensions":["oa2"]},"application/vnd.fujitsu.oasys3":{"source":"iana","extensions":["oa3"]},"application/vnd.fujitsu.oasysgp":{"source":"iana","extensions":["fg5"]},"application/vnd.fujitsu.oasysprs":{"source":"iana","extensions":["bh2"]},"application/vnd.fujixerox.art-ex":{"source":"iana"},"application/vnd.fujixerox.art4":{"source":"iana"},"application/vnd.fujixerox.ddd":{"source":"iana","extensions":["ddd"]},"application/vnd.fujixerox.docuworks":{"source":"iana","extensions":["xdw"]},"application/vnd.fujixerox.docuworks.binder":{"source":"iana","extensions":["xbd"]},"application/vnd.fujixerox.docuworks.container":{"source":"iana"},"application/vnd.fujixerox.hbpl":{"source":"iana"},"application/vnd.fut-misnet":{"source":"iana"},"application/vnd.futoin+cbor":{"source":"iana"},"application/vnd.futoin+json":{"source":"iana","compressible":true},"application/vnd.fuzzysheet":{"source":"iana","extensions":["fzs"]},"application/vnd.genomatix.tuxedo":{"source":"iana","extensions":["txd"]},"application/vnd.gentics.grd+json":{"source":"iana","compressible":true},"application/vnd.geo+json":{"source":"iana","compressible":true},"application/vnd.geocube+xml":{"source":"iana","compressible":true},"application/vnd.geogebra.file":{"source":"iana","extensions":["ggb"]},"application/vnd.geogebra.slides":{"source":"iana"},"application/vnd.geogebra.tool":{"source":"iana","extensions":["ggt"]},"application/vnd.geometry-explorer":{"source":"iana","extensions":["gex","gre"]},"application/vnd.geonext":{"source":"iana","extensions":["gxt"]},"application/vnd.geoplan":{"source":"iana","extensions":["g2w"]},"application/vnd.geospace":{"source":"iana","extensions":["g3w"]},"application/vnd.gerber":{"source":"iana"},"application/vnd.globalplatform.card-content-mgt":{"source":"iana"},"application/vnd.globalplatform.card-content-mgt-response":{"source":"iana"},"application/vnd.gmx":{"source":"iana","extensions":["gmx"]},"application/vnd.google-apps.document":{"compressible":false,"extensions":["gdoc"]},"application/vnd.google-apps.presentation":{"compressible":false,"extensions":["gslides"]},"application/vnd.google-apps.spreadsheet":{"compressible":false,"extensions":["gsheet"]},"application/vnd.google-earth.kml+xml":{"source":"iana","compressible":true,"extensions":["kml"]},"application/vnd.google-earth.kmz":{"source":"iana","compressible":false,"extensions":["kmz"]},"application/vnd.gov.sk.e-form+xml":{"source":"iana","compressible":true},"application/vnd.gov.sk.e-form+zip":{"source":"iana","compressible":false},"application/vnd.gov.sk.xmldatacontainer+xml":{"source":"iana","compressible":true},"application/vnd.grafeq":{"source":"iana","extensions":["gqf","gqs"]},"application/vnd.gridmp":{"source":"iana"},"application/vnd.groove-account":{"source":"iana","extensions":["gac"]},"application/vnd.groove-help":{"source":"iana","extensions":["ghf"]},"application/vnd.groove-identity-message":{"source":"iana","extensions":["gim"]},"application/vnd.groove-injector":{"source":"iana","extensions":["grv"]},"application/vnd.groove-tool-message":{"source":"iana","extensions":["gtm"]},"application/vnd.groove-tool-template":{"source":"iana","extensions":["tpl"]},"application/vnd.groove-vcard":{"source":"iana","extensions":["vcg"]},"application/vnd.hal+json":{"source":"iana","compressible":true},"application/vnd.hal+xml":{"source":"iana","compressible":true,"extensions":["hal"]},"application/vnd.handheld-entertainment+xml":{"source":"iana","compressible":true,"extensions":["zmm"]},"application/vnd.hbci":{"source":"iana","extensions":["hbci"]},"application/vnd.hc+json":{"source":"iana","compressible":true},"application/vnd.hcl-bireports":{"source":"iana"},"application/vnd.hdt":{"source":"iana"},"application/vnd.heroku+json":{"source":"iana","compressible":true},"application/vnd.hhe.lesson-player":{"source":"iana","extensions":["les"]},"application/vnd.hl7cda+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.hl7v2+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.hp-hpgl":{"source":"iana","extensions":["hpgl"]},"application/vnd.hp-hpid":{"source":"iana","extensions":["hpid"]},"application/vnd.hp-hps":{"source":"iana","extensions":["hps"]},"application/vnd.hp-jlyt":{"source":"iana","extensions":["jlt"]},"application/vnd.hp-pcl":{"source":"iana","extensions":["pcl"]},"application/vnd.hp-pclxl":{"source":"iana","extensions":["pclxl"]},"application/vnd.httphone":{"source":"iana"},"application/vnd.hydrostatix.sof-data":{"source":"iana","extensions":["sfd-hdstx"]},"application/vnd.hyper+json":{"source":"iana","compressible":true},"application/vnd.hyper-item+json":{"source":"iana","compressible":true},"application/vnd.hyperdrive+json":{"source":"iana","compressible":true},"application/vnd.hzn-3d-crossword":{"source":"iana"},"application/vnd.ibm.afplinedata":{"source":"iana"},"application/vnd.ibm.electronic-media":{"source":"iana"},"application/vnd.ibm.minipay":{"source":"iana","extensions":["mpy"]},"application/vnd.ibm.modcap":{"source":"iana","extensions":["afp","listafp","list3820"]},"application/vnd.ibm.rights-management":{"source":"iana","extensions":["irm"]},"application/vnd.ibm.secure-container":{"source":"iana","extensions":["sc"]},"application/vnd.iccprofile":{"source":"iana","extensions":["icc","icm"]},"application/vnd.ieee.1905":{"source":"iana"},"application/vnd.igloader":{"source":"iana","extensions":["igl"]},"application/vnd.imagemeter.folder+zip":{"source":"iana","compressible":false},"application/vnd.imagemeter.image+zip":{"source":"iana","compressible":false},"application/vnd.immervision-ivp":{"source":"iana","extensions":["ivp"]},"application/vnd.immervision-ivu":{"source":"iana","extensions":["ivu"]},"application/vnd.ims.imsccv1p1":{"source":"iana"},"application/vnd.ims.imsccv1p2":{"source":"iana"},"application/vnd.ims.imsccv1p3":{"source":"iana"},"application/vnd.ims.lis.v2.result+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolconsumerprofile+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolproxy+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolproxy.id+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolsettings+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolsettings.simple+json":{"source":"iana","compressible":true},"application/vnd.informedcontrol.rms+xml":{"source":"iana","compressible":true},"application/vnd.informix-visionary":{"source":"iana"},"application/vnd.infotech.project":{"source":"iana"},"application/vnd.infotech.project+xml":{"source":"iana","compressible":true},"application/vnd.innopath.wamp.notification":{"source":"iana"},"application/vnd.insors.igm":{"source":"iana","extensions":["igm"]},"application/vnd.intercon.formnet":{"source":"iana","extensions":["xpw","xpx"]},"application/vnd.intergeo":{"source":"iana","extensions":["i2g"]},"application/vnd.intertrust.digibox":{"source":"iana"},"application/vnd.intertrust.nncp":{"source":"iana"},"application/vnd.intu.qbo":{"source":"iana","extensions":["qbo"]},"application/vnd.intu.qfx":{"source":"iana","extensions":["qfx"]},"application/vnd.iptc.g2.catalogitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.conceptitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.knowledgeitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.newsitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.newsmessage+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.packageitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.planningitem+xml":{"source":"iana","compressible":true},"application/vnd.ipunplugged.rcprofile":{"source":"iana","extensions":["rcprofile"]},"application/vnd.irepository.package+xml":{"source":"iana","compressible":true,"extensions":["irp"]},"application/vnd.is-xpr":{"source":"iana","extensions":["xpr"]},"application/vnd.isac.fcs":{"source":"iana","extensions":["fcs"]},"application/vnd.iso11783-10+zip":{"source":"iana","compressible":false},"application/vnd.jam":{"source":"iana","extensions":["jam"]},"application/vnd.japannet-directory-service":{"source":"iana"},"application/vnd.japannet-jpnstore-wakeup":{"source":"iana"},"application/vnd.japannet-payment-wakeup":{"source":"iana"},"application/vnd.japannet-registration":{"source":"iana"},"application/vnd.japannet-registration-wakeup":{"source":"iana"},"application/vnd.japannet-setstore-wakeup":{"source":"iana"},"application/vnd.japannet-verification":{"source":"iana"},"application/vnd.japannet-verification-wakeup":{"source":"iana"},"application/vnd.jcp.javame.midlet-rms":{"source":"iana","extensions":["rms"]},"application/vnd.jisp":{"source":"iana","extensions":["jisp"]},"application/vnd.joost.joda-archive":{"source":"iana","extensions":["joda"]},"application/vnd.jsk.isdn-ngn":{"source":"iana"},"application/vnd.kahootz":{"source":"iana","extensions":["ktz","ktr"]},"application/vnd.kde.karbon":{"source":"iana","extensions":["karbon"]},"application/vnd.kde.kchart":{"source":"iana","extensions":["chrt"]},"application/vnd.kde.kformula":{"source":"iana","extensions":["kfo"]},"application/vnd.kde.kivio":{"source":"iana","extensions":["flw"]},"application/vnd.kde.kontour":{"source":"iana","extensions":["kon"]},"application/vnd.kde.kpresenter":{"source":"iana","extensions":["kpr","kpt"]},"application/vnd.kde.kspread":{"source":"iana","extensions":["ksp"]},"application/vnd.kde.kword":{"source":"iana","extensions":["kwd","kwt"]},"application/vnd.kenameaapp":{"source":"iana","extensions":["htke"]},"application/vnd.kidspiration":{"source":"iana","extensions":["kia"]},"application/vnd.kinar":{"source":"iana","extensions":["kne","knp"]},"application/vnd.koan":{"source":"iana","extensions":["skp","skd","skt","skm"]},"application/vnd.kodak-descriptor":{"source":"iana","extensions":["sse"]},"application/vnd.las":{"source":"iana"},"application/vnd.las.las+json":{"source":"iana","compressible":true},"application/vnd.las.las+xml":{"source":"iana","compressible":true,"extensions":["lasxml"]},"application/vnd.laszip":{"source":"iana"},"application/vnd.leap+json":{"source":"iana","compressible":true},"application/vnd.liberty-request+xml":{"source":"iana","compressible":true},"application/vnd.llamagraphics.life-balance.desktop":{"source":"iana","extensions":["lbd"]},"application/vnd.llamagraphics.life-balance.exchange+xml":{"source":"iana","compressible":true,"extensions":["lbe"]},"application/vnd.logipipe.circuit+zip":{"source":"iana","compressible":false},"application/vnd.loom":{"source":"iana"},"application/vnd.lotus-1-2-3":{"source":"iana","extensions":["123"]},"application/vnd.lotus-approach":{"source":"iana","extensions":["apr"]},"application/vnd.lotus-freelance":{"source":"iana","extensions":["pre"]},"application/vnd.lotus-notes":{"source":"iana","extensions":["nsf"]},"application/vnd.lotus-organizer":{"source":"iana","extensions":["org"]},"application/vnd.lotus-screencam":{"source":"iana","extensions":["scm"]},"application/vnd.lotus-wordpro":{"source":"iana","extensions":["lwp"]},"application/vnd.macports.portpkg":{"source":"iana","extensions":["portpkg"]},"application/vnd.mapbox-vector-tile":{"source":"iana","extensions":["mvt"]},"application/vnd.marlin.drm.actiontoken+xml":{"source":"iana","compressible":true},"application/vnd.marlin.drm.conftoken+xml":{"source":"iana","compressible":true},"application/vnd.marlin.drm.license+xml":{"source":"iana","compressible":true},"application/vnd.marlin.drm.mdcf":{"source":"iana"},"application/vnd.mason+json":{"source":"iana","compressible":true},"application/vnd.maxar.archive.3tz+zip":{"source":"iana","compressible":false},"application/vnd.maxmind.maxmind-db":{"source":"iana"},"application/vnd.mcd":{"source":"iana","extensions":["mcd"]},"application/vnd.medcalcdata":{"source":"iana","extensions":["mc1"]},"application/vnd.mediastation.cdkey":{"source":"iana","extensions":["cdkey"]},"application/vnd.meridian-slingshot":{"source":"iana"},"application/vnd.mfer":{"source":"iana","extensions":["mwf"]},"application/vnd.mfmp":{"source":"iana","extensions":["mfm"]},"application/vnd.micro+json":{"source":"iana","compressible":true},"application/vnd.micrografx.flo":{"source":"iana","extensions":["flo"]},"application/vnd.micrografx.igx":{"source":"iana","extensions":["igx"]},"application/vnd.microsoft.portable-executable":{"source":"iana"},"application/vnd.microsoft.windows.thumbnail-cache":{"source":"iana"},"application/vnd.miele+json":{"source":"iana","compressible":true},"application/vnd.mif":{"source":"iana","extensions":["mif"]},"application/vnd.minisoft-hp3000-save":{"source":"iana"},"application/vnd.mitsubishi.misty-guard.trustweb":{"source":"iana"},"application/vnd.mobius.daf":{"source":"iana","extensions":["daf"]},"application/vnd.mobius.dis":{"source":"iana","extensions":["dis"]},"application/vnd.mobius.mbk":{"source":"iana","extensions":["mbk"]},"application/vnd.mobius.mqy":{"source":"iana","extensions":["mqy"]},"application/vnd.mobius.msl":{"source":"iana","extensions":["msl"]},"application/vnd.mobius.plc":{"source":"iana","extensions":["plc"]},"application/vnd.mobius.txf":{"source":"iana","extensions":["txf"]},"application/vnd.mophun.application":{"source":"iana","extensions":["mpn"]},"application/vnd.mophun.certificate":{"source":"iana","extensions":["mpc"]},"application/vnd.motorola.flexsuite":{"source":"iana"},"application/vnd.motorola.flexsuite.adsi":{"source":"iana"},"application/vnd.motorola.flexsuite.fis":{"source":"iana"},"application/vnd.motorola.flexsuite.gotap":{"source":"iana"},"application/vnd.motorola.flexsuite.kmr":{"source":"iana"},"application/vnd.motorola.flexsuite.ttc":{"source":"iana"},"application/vnd.motorola.flexsuite.wem":{"source":"iana"},"application/vnd.motorola.iprm":{"source":"iana"},"application/vnd.mozilla.xul+xml":{"source":"iana","compressible":true,"extensions":["xul"]},"application/vnd.ms-3mfdocument":{"source":"iana"},"application/vnd.ms-artgalry":{"source":"iana","extensions":["cil"]},"application/vnd.ms-asf":{"source":"iana"},"application/vnd.ms-cab-compressed":{"source":"iana","extensions":["cab"]},"application/vnd.ms-color.iccprofile":{"source":"apache"},"application/vnd.ms-excel":{"source":"iana","compressible":false,"extensions":["xls","xlm","xla","xlc","xlt","xlw"]},"application/vnd.ms-excel.addin.macroenabled.12":{"source":"iana","extensions":["xlam"]},"application/vnd.ms-excel.sheet.binary.macroenabled.12":{"source":"iana","extensions":["xlsb"]},"application/vnd.ms-excel.sheet.macroenabled.12":{"source":"iana","extensions":["xlsm"]},"application/vnd.ms-excel.template.macroenabled.12":{"source":"iana","extensions":["xltm"]},"application/vnd.ms-fontobject":{"source":"iana","compressible":true,"extensions":["eot"]},"application/vnd.ms-htmlhelp":{"source":"iana","extensions":["chm"]},"application/vnd.ms-ims":{"source":"iana","extensions":["ims"]},"application/vnd.ms-lrm":{"source":"iana","extensions":["lrm"]},"application/vnd.ms-office.activex+xml":{"source":"iana","compressible":true},"application/vnd.ms-officetheme":{"source":"iana","extensions":["thmx"]},"application/vnd.ms-opentype":{"source":"apache","compressible":true},"application/vnd.ms-outlook":{"compressible":false,"extensions":["msg"]},"application/vnd.ms-package.obfuscated-opentype":{"source":"apache"},"application/vnd.ms-pki.seccat":{"source":"apache","extensions":["cat"]},"application/vnd.ms-pki.stl":{"source":"apache","extensions":["stl"]},"application/vnd.ms-playready.initiator+xml":{"source":"iana","compressible":true},"application/vnd.ms-powerpoint":{"source":"iana","compressible":false,"extensions":["ppt","pps","pot"]},"application/vnd.ms-powerpoint.addin.macroenabled.12":{"source":"iana","extensions":["ppam"]},"application/vnd.ms-powerpoint.presentation.macroenabled.12":{"source":"iana","extensions":["pptm"]},"application/vnd.ms-powerpoint.slide.macroenabled.12":{"source":"iana","extensions":["sldm"]},"application/vnd.ms-powerpoint.slideshow.macroenabled.12":{"source":"iana","extensions":["ppsm"]},"application/vnd.ms-powerpoint.template.macroenabled.12":{"source":"iana","extensions":["potm"]},"application/vnd.ms-printdevicecapabilities+xml":{"source":"iana","compressible":true},"application/vnd.ms-printing.printticket+xml":{"source":"apache","compressible":true},"application/vnd.ms-printschematicket+xml":{"source":"iana","compressible":true},"application/vnd.ms-project":{"source":"iana","extensions":["mpp","mpt"]},"application/vnd.ms-tnef":{"source":"iana"},"application/vnd.ms-windows.devicepairing":{"source":"iana"},"application/vnd.ms-windows.nwprinting.oob":{"source":"iana"},"application/vnd.ms-windows.printerpairing":{"source":"iana"},"application/vnd.ms-windows.wsd.oob":{"source":"iana"},"application/vnd.ms-wmdrm.lic-chlg-req":{"source":"iana"},"application/vnd.ms-wmdrm.lic-resp":{"source":"iana"},"application/vnd.ms-wmdrm.meter-chlg-req":{"source":"iana"},"application/vnd.ms-wmdrm.meter-resp":{"source":"iana"},"application/vnd.ms-word.document.macroenabled.12":{"source":"iana","extensions":["docm"]},"application/vnd.ms-word.template.macroenabled.12":{"source":"iana","extensions":["dotm"]},"application/vnd.ms-works":{"source":"iana","extensions":["wps","wks","wcm","wdb"]},"application/vnd.ms-wpl":{"source":"iana","extensions":["wpl"]},"application/vnd.ms-xpsdocument":{"source":"iana","compressible":false,"extensions":["xps"]},"application/vnd.msa-disk-image":{"source":"iana"},"application/vnd.mseq":{"source":"iana","extensions":["mseq"]},"application/vnd.msign":{"source":"iana"},"application/vnd.multiad.creator":{"source":"iana"},"application/vnd.multiad.creator.cif":{"source":"iana"},"application/vnd.music-niff":{"source":"iana"},"application/vnd.musician":{"source":"iana","extensions":["mus"]},"application/vnd.muvee.style":{"source":"iana","extensions":["msty"]},"application/vnd.mynfc":{"source":"iana","extensions":["taglet"]},"application/vnd.nacamar.ybrid+json":{"source":"iana","compressible":true},"application/vnd.ncd.control":{"source":"iana"},"application/vnd.ncd.reference":{"source":"iana"},"application/vnd.nearst.inv+json":{"source":"iana","compressible":true},"application/vnd.nebumind.line":{"source":"iana"},"application/vnd.nervana":{"source":"iana"},"application/vnd.netfpx":{"source":"iana"},"application/vnd.neurolanguage.nlu":{"source":"iana","extensions":["nlu"]},"application/vnd.nimn":{"source":"iana"},"application/vnd.nintendo.nitro.rom":{"source":"iana"},"application/vnd.nintendo.snes.rom":{"source":"iana"},"application/vnd.nitf":{"source":"iana","extensions":["ntf","nitf"]},"application/vnd.noblenet-directory":{"source":"iana","extensions":["nnd"]},"application/vnd.noblenet-sealer":{"source":"iana","extensions":["nns"]},"application/vnd.noblenet-web":{"source":"iana","extensions":["nnw"]},"application/vnd.nokia.catalogs":{"source":"iana"},"application/vnd.nokia.conml+wbxml":{"source":"iana"},"application/vnd.nokia.conml+xml":{"source":"iana","compressible":true},"application/vnd.nokia.iptv.config+xml":{"source":"iana","compressible":true},"application/vnd.nokia.isds-radio-presets":{"source":"iana"},"application/vnd.nokia.landmark+wbxml":{"source":"iana"},"application/vnd.nokia.landmark+xml":{"source":"iana","compressible":true},"application/vnd.nokia.landmarkcollection+xml":{"source":"iana","compressible":true},"application/vnd.nokia.n-gage.ac+xml":{"source":"iana","compressible":true,"extensions":["ac"]},"application/vnd.nokia.n-gage.data":{"source":"iana","extensions":["ngdat"]},"application/vnd.nokia.n-gage.symbian.install":{"source":"iana","extensions":["n-gage"]},"application/vnd.nokia.ncd":{"source":"iana"},"application/vnd.nokia.pcd+wbxml":{"source":"iana"},"application/vnd.nokia.pcd+xml":{"source":"iana","compressible":true},"application/vnd.nokia.radio-preset":{"source":"iana","extensions":["rpst"]},"application/vnd.nokia.radio-presets":{"source":"iana","extensions":["rpss"]},"application/vnd.novadigm.edm":{"source":"iana","extensions":["edm"]},"application/vnd.novadigm.edx":{"source":"iana","extensions":["edx"]},"application/vnd.novadigm.ext":{"source":"iana","extensions":["ext"]},"application/vnd.ntt-local.content-share":{"source":"iana"},"application/vnd.ntt-local.file-transfer":{"source":"iana"},"application/vnd.ntt-local.ogw_remote-access":{"source":"iana"},"application/vnd.ntt-local.sip-ta_remote":{"source":"iana"},"application/vnd.ntt-local.sip-ta_tcp_stream":{"source":"iana"},"application/vnd.oasis.opendocument.chart":{"source":"iana","extensions":["odc"]},"application/vnd.oasis.opendocument.chart-template":{"source":"iana","extensions":["otc"]},"application/vnd.oasis.opendocument.database":{"source":"iana","extensions":["odb"]},"application/vnd.oasis.opendocument.formula":{"source":"iana","extensions":["odf"]},"application/vnd.oasis.opendocument.formula-template":{"source":"iana","extensions":["odft"]},"application/vnd.oasis.opendocument.graphics":{"source":"iana","compressible":false,"extensions":["odg"]},"application/vnd.oasis.opendocument.graphics-template":{"source":"iana","extensions":["otg"]},"application/vnd.oasis.opendocument.image":{"source":"iana","extensions":["odi"]},"application/vnd.oasis.opendocument.image-template":{"source":"iana","extensions":["oti"]},"application/vnd.oasis.opendocument.presentation":{"source":"iana","compressible":false,"extensions":["odp"]},"application/vnd.oasis.opendocument.presentation-template":{"source":"iana","extensions":["otp"]},"application/vnd.oasis.opendocument.spreadsheet":{"source":"iana","compressible":false,"extensions":["ods"]},"application/vnd.oasis.opendocument.spreadsheet-template":{"source":"iana","extensions":["ots"]},"application/vnd.oasis.opendocument.text":{"source":"iana","compressible":false,"extensions":["odt"]},"application/vnd.oasis.opendocument.text-master":{"source":"iana","extensions":["odm"]},"application/vnd.oasis.opendocument.text-template":{"source":"iana","extensions":["ott"]},"application/vnd.oasis.opendocument.text-web":{"source":"iana","extensions":["oth"]},"application/vnd.obn":{"source":"iana"},"application/vnd.ocf+cbor":{"source":"iana"},"application/vnd.oci.image.manifest.v1+json":{"source":"iana","compressible":true},"application/vnd.oftn.l10n+json":{"source":"iana","compressible":true},"application/vnd.oipf.contentaccessdownload+xml":{"source":"iana","compressible":true},"application/vnd.oipf.contentaccessstreaming+xml":{"source":"iana","compressible":true},"application/vnd.oipf.cspg-hexbinary":{"source":"iana"},"application/vnd.oipf.dae.svg+xml":{"source":"iana","compressible":true},"application/vnd.oipf.dae.xhtml+xml":{"source":"iana","compressible":true},"application/vnd.oipf.mippvcontrolmessage+xml":{"source":"iana","compressible":true},"application/vnd.oipf.pae.gem":{"source":"iana"},"application/vnd.oipf.spdiscovery+xml":{"source":"iana","compressible":true},"application/vnd.oipf.spdlist+xml":{"source":"iana","compressible":true},"application/vnd.oipf.ueprofile+xml":{"source":"iana","compressible":true},"application/vnd.oipf.userprofile+xml":{"source":"iana","compressible":true},"application/vnd.olpc-sugar":{"source":"iana","extensions":["xo"]},"application/vnd.oma-scws-config":{"source":"iana"},"application/vnd.oma-scws-http-request":{"source":"iana"},"application/vnd.oma-scws-http-response":{"source":"iana"},"application/vnd.oma.bcast.associated-procedure-parameter+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.drm-trigger+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.imd+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.ltkm":{"source":"iana"},"application/vnd.oma.bcast.notification+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.provisioningtrigger":{"source":"iana"},"application/vnd.oma.bcast.sgboot":{"source":"iana"},"application/vnd.oma.bcast.sgdd+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.sgdu":{"source":"iana"},"application/vnd.oma.bcast.simple-symbol-container":{"source":"iana"},"application/vnd.oma.bcast.smartcard-trigger+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.sprov+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.stkm":{"source":"iana"},"application/vnd.oma.cab-address-book+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-feature-handler+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-pcc+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-subs-invite+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-user-prefs+xml":{"source":"iana","compressible":true},"application/vnd.oma.dcd":{"source":"iana"},"application/vnd.oma.dcdc":{"source":"iana"},"application/vnd.oma.dd2+xml":{"source":"iana","compressible":true,"extensions":["dd2"]},"application/vnd.oma.drm.risd+xml":{"source":"iana","compressible":true},"application/vnd.oma.group-usage-list+xml":{"source":"iana","compressible":true},"application/vnd.oma.lwm2m+cbor":{"source":"iana"},"application/vnd.oma.lwm2m+json":{"source":"iana","compressible":true},"application/vnd.oma.lwm2m+tlv":{"source":"iana"},"application/vnd.oma.pal+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.detailed-progress-report+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.final-report+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.groups+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.invocation-descriptor+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.optimized-progress-report+xml":{"source":"iana","compressible":true},"application/vnd.oma.push":{"source":"iana"},"application/vnd.oma.scidm.messages+xml":{"source":"iana","compressible":true},"application/vnd.oma.xcap-directory+xml":{"source":"iana","compressible":true},"application/vnd.omads-email+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.omads-file+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.omads-folder+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.omaloc-supl-init":{"source":"iana"},"application/vnd.onepager":{"source":"iana"},"application/vnd.onepagertamp":{"source":"iana"},"application/vnd.onepagertamx":{"source":"iana"},"application/vnd.onepagertat":{"source":"iana"},"application/vnd.onepagertatp":{"source":"iana"},"application/vnd.onepagertatx":{"source":"iana"},"application/vnd.openblox.game+xml":{"source":"iana","compressible":true,"extensions":["obgx"]},"application/vnd.openblox.game-binary":{"source":"iana"},"application/vnd.openeye.oeb":{"source":"iana"},"application/vnd.openofficeorg.extension":{"source":"apache","extensions":["oxt"]},"application/vnd.openstreetmap.data+xml":{"source":"iana","compressible":true,"extensions":["osm"]},"application/vnd.opentimestamps.ots":{"source":"iana"},"application/vnd.openxmlformats-officedocument.custom-properties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.customxmlproperties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawing+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.chart+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.extended-properties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.comments+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.presentation":{"source":"iana","compressible":false,"extensions":["pptx"]},"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slide":{"source":"iana","extensions":["sldx"]},"application/vnd.openxmlformats-officedocument.presentationml.slide+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slideshow":{"source":"iana","extensions":["ppsx"]},"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.tags+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.template":{"source":"iana","extensions":["potx"]},"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":{"source":"iana","compressible":false,"extensions":["xlsx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.template":{"source":"iana","extensions":["xltx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.theme+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.themeoverride+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.vmldrawing":{"source":"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.document":{"source":"iana","compressible":false,"extensions":["docx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.template":{"source":"iana","extensions":["dotx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-package.core-properties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-package.relationships+xml":{"source":"iana","compressible":true},"application/vnd.oracle.resource+json":{"source":"iana","compressible":true},"application/vnd.orange.indata":{"source":"iana"},"application/vnd.osa.netdeploy":{"source":"iana"},"application/vnd.osgeo.mapguide.package":{"source":"iana","extensions":["mgp"]},"application/vnd.osgi.bundle":{"source":"iana"},"application/vnd.osgi.dp":{"source":"iana","extensions":["dp"]},"application/vnd.osgi.subsystem":{"source":"iana","extensions":["esa"]},"application/vnd.otps.ct-kip+xml":{"source":"iana","compressible":true},"application/vnd.oxli.countgraph":{"source":"iana"},"application/vnd.pagerduty+json":{"source":"iana","compressible":true},"application/vnd.palm":{"source":"iana","extensions":["pdb","pqa","oprc"]},"application/vnd.panoply":{"source":"iana"},"application/vnd.paos.xml":{"source":"iana"},"application/vnd.patentdive":{"source":"iana"},"application/vnd.patientecommsdoc":{"source":"iana"},"application/vnd.pawaafile":{"source":"iana","extensions":["paw"]},"application/vnd.pcos":{"source":"iana"},"application/vnd.pg.format":{"source":"iana","extensions":["str"]},"application/vnd.pg.osasli":{"source":"iana","extensions":["ei6"]},"application/vnd.piaccess.application-licence":{"source":"iana"},"application/vnd.picsel":{"source":"iana","extensions":["efif"]},"application/vnd.pmi.widget":{"source":"iana","extensions":["wg"]},"application/vnd.poc.group-advertisement+xml":{"source":"iana","compressible":true},"application/vnd.pocketlearn":{"source":"iana","extensions":["plf"]},"application/vnd.powerbuilder6":{"source":"iana","extensions":["pbd"]},"application/vnd.powerbuilder6-s":{"source":"iana"},"application/vnd.powerbuilder7":{"source":"iana"},"application/vnd.powerbuilder7-s":{"source":"iana"},"application/vnd.powerbuilder75":{"source":"iana"},"application/vnd.powerbuilder75-s":{"source":"iana"},"application/vnd.preminet":{"source":"iana"},"application/vnd.previewsystems.box":{"source":"iana","extensions":["box"]},"application/vnd.proteus.magazine":{"source":"iana","extensions":["mgz"]},"application/vnd.psfs":{"source":"iana"},"application/vnd.publishare-delta-tree":{"source":"iana","extensions":["qps"]},"application/vnd.pvi.ptid1":{"source":"iana","extensions":["ptid"]},"application/vnd.pwg-multiplexed":{"source":"iana"},"application/vnd.pwg-xhtml-print+xml":{"source":"iana","compressible":true},"application/vnd.qualcomm.brew-app-res":{"source":"iana"},"application/vnd.quarantainenet":{"source":"iana"},"application/vnd.quark.quarkxpress":{"source":"iana","extensions":["qxd","qxt","qwd","qwt","qxl","qxb"]},"application/vnd.quobject-quoxdocument":{"source":"iana"},"application/vnd.radisys.moml+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-conf+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-conn+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-dialog+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-stream+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-conf+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-base+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-fax-detect+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-fax-sendrecv+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-group+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-speech+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-transform+xml":{"source":"iana","compressible":true},"application/vnd.rainstor.data":{"source":"iana"},"application/vnd.rapid":{"source":"iana"},"application/vnd.rar":{"source":"iana","extensions":["rar"]},"application/vnd.realvnc.bed":{"source":"iana","extensions":["bed"]},"application/vnd.recordare.musicxml":{"source":"iana","extensions":["mxl"]},"application/vnd.recordare.musicxml+xml":{"source":"iana","compressible":true,"extensions":["musicxml"]},"application/vnd.renlearn.rlprint":{"source":"iana"},"application/vnd.resilient.logic":{"source":"iana"},"application/vnd.restful+json":{"source":"iana","compressible":true},"application/vnd.rig.cryptonote":{"source":"iana","extensions":["cryptonote"]},"application/vnd.rim.cod":{"source":"apache","extensions":["cod"]},"application/vnd.rn-realmedia":{"source":"apache","extensions":["rm"]},"application/vnd.rn-realmedia-vbr":{"source":"apache","extensions":["rmvb"]},"application/vnd.route66.link66+xml":{"source":"iana","compressible":true,"extensions":["link66"]},"application/vnd.rs-274x":{"source":"iana"},"application/vnd.ruckus.download":{"source":"iana"},"application/vnd.s3sms":{"source":"iana"},"application/vnd.sailingtracker.track":{"source":"iana","extensions":["st"]},"application/vnd.sar":{"source":"iana"},"application/vnd.sbm.cid":{"source":"iana"},"application/vnd.sbm.mid2":{"source":"iana"},"application/vnd.scribus":{"source":"iana"},"application/vnd.sealed.3df":{"source":"iana"},"application/vnd.sealed.csf":{"source":"iana"},"application/vnd.sealed.doc":{"source":"iana"},"application/vnd.sealed.eml":{"source":"iana"},"application/vnd.sealed.mht":{"source":"iana"},"application/vnd.sealed.net":{"source":"iana"},"application/vnd.sealed.ppt":{"source":"iana"},"application/vnd.sealed.tiff":{"source":"iana"},"application/vnd.sealed.xls":{"source":"iana"},"application/vnd.sealedmedia.softseal.html":{"source":"iana"},"application/vnd.sealedmedia.softseal.pdf":{"source":"iana"},"application/vnd.seemail":{"source":"iana","extensions":["see"]},"application/vnd.seis+json":{"source":"iana","compressible":true},"application/vnd.sema":{"source":"iana","extensions":["sema"]},"application/vnd.semd":{"source":"iana","extensions":["semd"]},"application/vnd.semf":{"source":"iana","extensions":["semf"]},"application/vnd.shade-save-file":{"source":"iana"},"application/vnd.shana.informed.formdata":{"source":"iana","extensions":["ifm"]},"application/vnd.shana.informed.formtemplate":{"source":"iana","extensions":["itp"]},"application/vnd.shana.informed.interchange":{"source":"iana","extensions":["iif"]},"application/vnd.shana.informed.package":{"source":"iana","extensions":["ipk"]},"application/vnd.shootproof+json":{"source":"iana","compressible":true},"application/vnd.shopkick+json":{"source":"iana","compressible":true},"application/vnd.shp":{"source":"iana"},"application/vnd.shx":{"source":"iana"},"application/vnd.sigrok.session":{"source":"iana"},"application/vnd.simtech-mindmapper":{"source":"iana","extensions":["twd","twds"]},"application/vnd.siren+json":{"source":"iana","compressible":true},"application/vnd.smaf":{"source":"iana","extensions":["mmf"]},"application/vnd.smart.notebook":{"source":"iana"},"application/vnd.smart.teacher":{"source":"iana","extensions":["teacher"]},"application/vnd.snesdev-page-table":{"source":"iana"},"application/vnd.software602.filler.form+xml":{"source":"iana","compressible":true,"extensions":["fo"]},"application/vnd.software602.filler.form-xml-zip":{"source":"iana"},"application/vnd.solent.sdkm+xml":{"source":"iana","compressible":true,"extensions":["sdkm","sdkd"]},"application/vnd.spotfire.dxp":{"source":"iana","extensions":["dxp"]},"application/vnd.spotfire.sfs":{"source":"iana","extensions":["sfs"]},"application/vnd.sqlite3":{"source":"iana"},"application/vnd.sss-cod":{"source":"iana"},"application/vnd.sss-dtf":{"source":"iana"},"application/vnd.sss-ntf":{"source":"iana"},"application/vnd.stardivision.calc":{"source":"apache","extensions":["sdc"]},"application/vnd.stardivision.draw":{"source":"apache","extensions":["sda"]},"application/vnd.stardivision.impress":{"source":"apache","extensions":["sdd"]},"application/vnd.stardivision.math":{"source":"apache","extensions":["smf"]},"application/vnd.stardivision.writer":{"source":"apache","extensions":["sdw","vor"]},"application/vnd.stardivision.writer-global":{"source":"apache","extensions":["sgl"]},"application/vnd.stepmania.package":{"source":"iana","extensions":["smzip"]},"application/vnd.stepmania.stepchart":{"source":"iana","extensions":["sm"]},"application/vnd.street-stream":{"source":"iana"},"application/vnd.sun.wadl+xml":{"source":"iana","compressible":true,"extensions":["wadl"]},"application/vnd.sun.xml.calc":{"source":"apache","extensions":["sxc"]},"application/vnd.sun.xml.calc.template":{"source":"apache","extensions":["stc"]},"application/vnd.sun.xml.draw":{"source":"apache","extensions":["sxd"]},"application/vnd.sun.xml.draw.template":{"source":"apache","extensions":["std"]},"application/vnd.sun.xml.impress":{"source":"apache","extensions":["sxi"]},"application/vnd.sun.xml.impress.template":{"source":"apache","extensions":["sti"]},"application/vnd.sun.xml.math":{"source":"apache","extensions":["sxm"]},"application/vnd.sun.xml.writer":{"source":"apache","extensions":["sxw"]},"application/vnd.sun.xml.writer.global":{"source":"apache","extensions":["sxg"]},"application/vnd.sun.xml.writer.template":{"source":"apache","extensions":["stw"]},"application/vnd.sus-calendar":{"source":"iana","extensions":["sus","susp"]},"application/vnd.svd":{"source":"iana","extensions":["svd"]},"application/vnd.swiftview-ics":{"source":"iana"},"application/vnd.sycle+xml":{"source":"iana","compressible":true},"application/vnd.syft+json":{"source":"iana","compressible":true},"application/vnd.symbian.install":{"source":"apache","extensions":["sis","sisx"]},"application/vnd.syncml+xml":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["xsm"]},"application/vnd.syncml.dm+wbxml":{"source":"iana","charset":"UTF-8","extensions":["bdm"]},"application/vnd.syncml.dm+xml":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["xdm"]},"application/vnd.syncml.dm.notification":{"source":"iana"},"application/vnd.syncml.dmddf+wbxml":{"source":"iana"},"application/vnd.syncml.dmddf+xml":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["ddf"]},"application/vnd.syncml.dmtnds+wbxml":{"source":"iana"},"application/vnd.syncml.dmtnds+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.syncml.ds.notification":{"source":"iana"},"application/vnd.tableschema+json":{"source":"iana","compressible":true},"application/vnd.tao.intent-module-archive":{"source":"iana","extensions":["tao"]},"application/vnd.tcpdump.pcap":{"source":"iana","extensions":["pcap","cap","dmp"]},"application/vnd.think-cell.ppttc+json":{"source":"iana","compressible":true},"application/vnd.tmd.mediaflex.api+xml":{"source":"iana","compressible":true},"application/vnd.tml":{"source":"iana"},"application/vnd.tmobile-livetv":{"source":"iana","extensions":["tmo"]},"application/vnd.tri.onesource":{"source":"iana"},"application/vnd.trid.tpt":{"source":"iana","extensions":["tpt"]},"application/vnd.triscape.mxs":{"source":"iana","extensions":["mxs"]},"application/vnd.trueapp":{"source":"iana","extensions":["tra"]},"application/vnd.truedoc":{"source":"iana"},"application/vnd.ubisoft.webplayer":{"source":"iana"},"application/vnd.ufdl":{"source":"iana","extensions":["ufd","ufdl"]},"application/vnd.uiq.theme":{"source":"iana","extensions":["utz"]},"application/vnd.umajin":{"source":"iana","extensions":["umj"]},"application/vnd.unity":{"source":"iana","extensions":["unityweb"]},"application/vnd.uoml+xml":{"source":"iana","compressible":true,"extensions":["uoml"]},"application/vnd.uplanet.alert":{"source":"iana"},"application/vnd.uplanet.alert-wbxml":{"source":"iana"},"application/vnd.uplanet.bearer-choice":{"source":"iana"},"application/vnd.uplanet.bearer-choice-wbxml":{"source":"iana"},"application/vnd.uplanet.cacheop":{"source":"iana"},"application/vnd.uplanet.cacheop-wbxml":{"source":"iana"},"application/vnd.uplanet.channel":{"source":"iana"},"application/vnd.uplanet.channel-wbxml":{"source":"iana"},"application/vnd.uplanet.list":{"source":"iana"},"application/vnd.uplanet.list-wbxml":{"source":"iana"},"application/vnd.uplanet.listcmd":{"source":"iana"},"application/vnd.uplanet.listcmd-wbxml":{"source":"iana"},"application/vnd.uplanet.signal":{"source":"iana"},"application/vnd.uri-map":{"source":"iana"},"application/vnd.valve.source.material":{"source":"iana"},"application/vnd.vcx":{"source":"iana","extensions":["vcx"]},"application/vnd.vd-study":{"source":"iana"},"application/vnd.vectorworks":{"source":"iana"},"application/vnd.vel+json":{"source":"iana","compressible":true},"application/vnd.verimatrix.vcas":{"source":"iana"},"application/vnd.veritone.aion+json":{"source":"iana","compressible":true},"application/vnd.veryant.thin":{"source":"iana"},"application/vnd.ves.encrypted":{"source":"iana"},"application/vnd.vidsoft.vidconference":{"source":"iana"},"application/vnd.visio":{"source":"iana","extensions":["vsd","vst","vss","vsw"]},"application/vnd.visionary":{"source":"iana","extensions":["vis"]},"application/vnd.vividence.scriptfile":{"source":"iana"},"application/vnd.vsf":{"source":"iana","extensions":["vsf"]},"application/vnd.wap.sic":{"source":"iana"},"application/vnd.wap.slc":{"source":"iana"},"application/vnd.wap.wbxml":{"source":"iana","charset":"UTF-8","extensions":["wbxml"]},"application/vnd.wap.wmlc":{"source":"iana","extensions":["wmlc"]},"application/vnd.wap.wmlscriptc":{"source":"iana","extensions":["wmlsc"]},"application/vnd.webturbo":{"source":"iana","extensions":["wtb"]},"application/vnd.wfa.dpp":{"source":"iana"},"application/vnd.wfa.p2p":{"source":"iana"},"application/vnd.wfa.wsc":{"source":"iana"},"application/vnd.windows.devicepairing":{"source":"iana"},"application/vnd.wmc":{"source":"iana"},"application/vnd.wmf.bootstrap":{"source":"iana"},"application/vnd.wolfram.mathematica":{"source":"iana"},"application/vnd.wolfram.mathematica.package":{"source":"iana"},"application/vnd.wolfram.player":{"source":"iana","extensions":["nbp"]},"application/vnd.wordperfect":{"source":"iana","extensions":["wpd"]},"application/vnd.wqd":{"source":"iana","extensions":["wqd"]},"application/vnd.wrq-hp3000-labelled":{"source":"iana"},"application/vnd.wt.stf":{"source":"iana","extensions":["stf"]},"application/vnd.wv.csp+wbxml":{"source":"iana"},"application/vnd.wv.csp+xml":{"source":"iana","compressible":true},"application/vnd.wv.ssp+xml":{"source":"iana","compressible":true},"application/vnd.xacml+json":{"source":"iana","compressible":true},"application/vnd.xara":{"source":"iana","extensions":["xar"]},"application/vnd.xfdl":{"source":"iana","extensions":["xfdl"]},"application/vnd.xfdl.webform":{"source":"iana"},"application/vnd.xmi+xml":{"source":"iana","compressible":true},"application/vnd.xmpie.cpkg":{"source":"iana"},"application/vnd.xmpie.dpkg":{"source":"iana"},"application/vnd.xmpie.plan":{"source":"iana"},"application/vnd.xmpie.ppkg":{"source":"iana"},"application/vnd.xmpie.xlim":{"source":"iana"},"application/vnd.yamaha.hv-dic":{"source":"iana","extensions":["hvd"]},"application/vnd.yamaha.hv-script":{"source":"iana","extensions":["hvs"]},"application/vnd.yamaha.hv-voice":{"source":"iana","extensions":["hvp"]},"application/vnd.yamaha.openscoreformat":{"source":"iana","extensions":["osf"]},"application/vnd.yamaha.openscoreformat.osfpvg+xml":{"source":"iana","compressible":true,"extensions":["osfpvg"]},"application/vnd.yamaha.remote-setup":{"source":"iana"},"application/vnd.yamaha.smaf-audio":{"source":"iana","extensions":["saf"]},"application/vnd.yamaha.smaf-phrase":{"source":"iana","extensions":["spf"]},"application/vnd.yamaha.through-ngn":{"source":"iana"},"application/vnd.yamaha.tunnel-udpencap":{"source":"iana"},"application/vnd.yaoweme":{"source":"iana"},"application/vnd.yellowriver-custom-menu":{"source":"iana","extensions":["cmp"]},"application/vnd.youtube.yt":{"source":"iana"},"application/vnd.zul":{"source":"iana","extensions":["zir","zirz"]},"application/vnd.zzazz.deck+xml":{"source":"iana","compressible":true,"extensions":["zaz"]},"application/voicexml+xml":{"source":"iana","compressible":true,"extensions":["vxml"]},"application/voucher-cms+json":{"source":"iana","compressible":true},"application/vq-rtcpxr":{"source":"iana"},"application/wasm":{"source":"iana","compressible":true,"extensions":["wasm"]},"application/watcherinfo+xml":{"source":"iana","compressible":true,"extensions":["wif"]},"application/webpush-options+json":{"source":"iana","compressible":true},"application/whoispp-query":{"source":"iana"},"application/whoispp-response":{"source":"iana"},"application/widget":{"source":"iana","extensions":["wgt"]},"application/winhlp":{"source":"apache","extensions":["hlp"]},"application/wita":{"source":"iana"},"application/wordperfect5.1":{"source":"iana"},"application/wsdl+xml":{"source":"iana","compressible":true,"extensions":["wsdl"]},"application/wspolicy+xml":{"source":"iana","compressible":true,"extensions":["wspolicy"]},"application/x-7z-compressed":{"source":"apache","compressible":false,"extensions":["7z"]},"application/x-abiword":{"source":"apache","extensions":["abw"]},"application/x-ace-compressed":{"source":"apache","extensions":["ace"]},"application/x-amf":{"source":"apache"},"application/x-apple-diskimage":{"source":"apache","extensions":["dmg"]},"application/x-arj":{"compressible":false,"extensions":["arj"]},"application/x-authorware-bin":{"source":"apache","extensions":["aab","x32","u32","vox"]},"application/x-authorware-map":{"source":"apache","extensions":["aam"]},"application/x-authorware-seg":{"source":"apache","extensions":["aas"]},"application/x-bcpio":{"source":"apache","extensions":["bcpio"]},"application/x-bdoc":{"compressible":false,"extensions":["bdoc"]},"application/x-bittorrent":{"source":"apache","extensions":["torrent"]},"application/x-blorb":{"source":"apache","extensions":["blb","blorb"]},"application/x-bzip":{"source":"apache","compressible":false,"extensions":["bz"]},"application/x-bzip2":{"source":"apache","compressible":false,"extensions":["bz2","boz"]},"application/x-cbr":{"source":"apache","extensions":["cbr","cba","cbt","cbz","cb7"]},"application/x-cdlink":{"source":"apache","extensions":["vcd"]},"application/x-cfs-compressed":{"source":"apache","extensions":["cfs"]},"application/x-chat":{"source":"apache","extensions":["chat"]},"application/x-chess-pgn":{"source":"apache","extensions":["pgn"]},"application/x-chrome-extension":{"extensions":["crx"]},"application/x-cocoa":{"source":"nginx","extensions":["cco"]},"application/x-compress":{"source":"apache"},"application/x-conference":{"source":"apache","extensions":["nsc"]},"application/x-cpio":{"source":"apache","extensions":["cpio"]},"application/x-csh":{"source":"apache","extensions":["csh"]},"application/x-deb":{"compressible":false},"application/x-debian-package":{"source":"apache","extensions":["deb","udeb"]},"application/x-dgc-compressed":{"source":"apache","extensions":["dgc"]},"application/x-director":{"source":"apache","extensions":["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"]},"application/x-doom":{"source":"apache","extensions":["wad"]},"application/x-dtbncx+xml":{"source":"apache","compressible":true,"extensions":["ncx"]},"application/x-dtbook+xml":{"source":"apache","compressible":true,"extensions":["dtb"]},"application/x-dtbresource+xml":{"source":"apache","compressible":true,"extensions":["res"]},"application/x-dvi":{"source":"apache","compressible":false,"extensions":["dvi"]},"application/x-envoy":{"source":"apache","extensions":["evy"]},"application/x-eva":{"source":"apache","extensions":["eva"]},"application/x-font-bdf":{"source":"apache","extensions":["bdf"]},"application/x-font-dos":{"source":"apache"},"application/x-font-framemaker":{"source":"apache"},"application/x-font-ghostscript":{"source":"apache","extensions":["gsf"]},"application/x-font-libgrx":{"source":"apache"},"application/x-font-linux-psf":{"source":"apache","extensions":["psf"]},"application/x-font-pcf":{"source":"apache","extensions":["pcf"]},"application/x-font-snf":{"source":"apache","extensions":["snf"]},"application/x-font-speedo":{"source":"apache"},"application/x-font-sunos-news":{"source":"apache"},"application/x-font-type1":{"source":"apache","extensions":["pfa","pfb","pfm","afm"]},"application/x-font-vfont":{"source":"apache"},"application/x-freearc":{"source":"apache","extensions":["arc"]},"application/x-futuresplash":{"source":"apache","extensions":["spl"]},"application/x-gca-compressed":{"source":"apache","extensions":["gca"]},"application/x-glulx":{"source":"apache","extensions":["ulx"]},"application/x-gnumeric":{"source":"apache","extensions":["gnumeric"]},"application/x-gramps-xml":{"source":"apache","extensions":["gramps"]},"application/x-gtar":{"source":"apache","extensions":["gtar"]},"application/x-gzip":{"source":"apache"},"application/x-hdf":{"source":"apache","extensions":["hdf"]},"application/x-httpd-php":{"compressible":true,"extensions":["php"]},"application/x-install-instructions":{"source":"apache","extensions":["install"]},"application/x-iso9660-image":{"source":"apache","extensions":["iso"]},"application/x-iwork-keynote-sffkey":{"extensions":["key"]},"application/x-iwork-numbers-sffnumbers":{"extensions":["numbers"]},"application/x-iwork-pages-sffpages":{"extensions":["pages"]},"application/x-java-archive-diff":{"source":"nginx","extensions":["jardiff"]},"application/x-java-jnlp-file":{"source":"apache","compressible":false,"extensions":["jnlp"]},"application/x-javascript":{"compressible":true},"application/x-keepass2":{"extensions":["kdbx"]},"application/x-latex":{"source":"apache","compressible":false,"extensions":["latex"]},"application/x-lua-bytecode":{"extensions":["luac"]},"application/x-lzh-compressed":{"source":"apache","extensions":["lzh","lha"]},"application/x-makeself":{"source":"nginx","extensions":["run"]},"application/x-mie":{"source":"apache","extensions":["mie"]},"application/x-mobipocket-ebook":{"source":"apache","extensions":["prc","mobi"]},"application/x-mpegurl":{"compressible":false},"application/x-ms-application":{"source":"apache","extensions":["application"]},"application/x-ms-shortcut":{"source":"apache","extensions":["lnk"]},"application/x-ms-wmd":{"source":"apache","extensions":["wmd"]},"application/x-ms-wmz":{"source":"apache","extensions":["wmz"]},"application/x-ms-xbap":{"source":"apache","extensions":["xbap"]},"application/x-msaccess":{"source":"apache","extensions":["mdb"]},"application/x-msbinder":{"source":"apache","extensions":["obd"]},"application/x-mscardfile":{"source":"apache","extensions":["crd"]},"application/x-msclip":{"source":"apache","extensions":["clp"]},"application/x-msdos-program":{"extensions":["exe"]},"application/x-msdownload":{"source":"apache","extensions":["exe","dll","com","bat","msi"]},"application/x-msmediaview":{"source":"apache","extensions":["mvb","m13","m14"]},"application/x-msmetafile":{"source":"apache","extensions":["wmf","wmz","emf","emz"]},"application/x-msmoney":{"source":"apache","extensions":["mny"]},"application/x-mspublisher":{"source":"apache","extensions":["pub"]},"application/x-msschedule":{"source":"apache","extensions":["scd"]},"application/x-msterminal":{"source":"apache","extensions":["trm"]},"application/x-mswrite":{"source":"apache","extensions":["wri"]},"application/x-netcdf":{"source":"apache","extensions":["nc","cdf"]},"application/x-ns-proxy-autoconfig":{"compressible":true,"extensions":["pac"]},"application/x-nzb":{"source":"apache","extensions":["nzb"]},"application/x-perl":{"source":"nginx","extensions":["pl","pm"]},"application/x-pilot":{"source":"nginx","extensions":["prc","pdb"]},"application/x-pkcs12":{"source":"apache","compressible":false,"extensions":["p12","pfx"]},"application/x-pkcs7-certificates":{"source":"apache","extensions":["p7b","spc"]},"application/x-pkcs7-certreqresp":{"source":"apache","extensions":["p7r"]},"application/x-pki-message":{"source":"iana"},"application/x-rar-compressed":{"source":"apache","compressible":false,"extensions":["rar"]},"application/x-redhat-package-manager":{"source":"nginx","extensions":["rpm"]},"application/x-research-info-systems":{"source":"apache","extensions":["ris"]},"application/x-sea":{"source":"nginx","extensions":["sea"]},"application/x-sh":{"source":"apache","compressible":true,"extensions":["sh"]},"application/x-shar":{"source":"apache","extensions":["shar"]},"application/x-shockwave-flash":{"source":"apache","compressible":false,"extensions":["swf"]},"application/x-silverlight-app":{"source":"apache","extensions":["xap"]},"application/x-sql":{"source":"apache","extensions":["sql"]},"application/x-stuffit":{"source":"apache","compressible":false,"extensions":["sit"]},"application/x-stuffitx":{"source":"apache","extensions":["sitx"]},"application/x-subrip":{"source":"apache","extensions":["srt"]},"application/x-sv4cpio":{"source":"apache","extensions":["sv4cpio"]},"application/x-sv4crc":{"source":"apache","extensions":["sv4crc"]},"application/x-t3vm-image":{"source":"apache","extensions":["t3"]},"application/x-tads":{"source":"apache","extensions":["gam"]},"application/x-tar":{"source":"apache","compressible":true,"extensions":["tar"]},"application/x-tcl":{"source":"apache","extensions":["tcl","tk"]},"application/x-tex":{"source":"apache","extensions":["tex"]},"application/x-tex-tfm":{"source":"apache","extensions":["tfm"]},"application/x-texinfo":{"source":"apache","extensions":["texinfo","texi"]},"application/x-tgif":{"source":"apache","extensions":["obj"]},"application/x-ustar":{"source":"apache","extensions":["ustar"]},"application/x-virtualbox-hdd":{"compressible":true,"extensions":["hdd"]},"application/x-virtualbox-ova":{"compressible":true,"extensions":["ova"]},"application/x-virtualbox-ovf":{"compressible":true,"extensions":["ovf"]},"application/x-virtualbox-vbox":{"compressible":true,"extensions":["vbox"]},"application/x-virtualbox-vbox-extpack":{"compressible":false,"extensions":["vbox-extpack"]},"application/x-virtualbox-vdi":{"compressible":true,"extensions":["vdi"]},"application/x-virtualbox-vhd":{"compressible":true,"extensions":["vhd"]},"application/x-virtualbox-vmdk":{"compressible":true,"extensions":["vmdk"]},"application/x-wais-source":{"source":"apache","extensions":["src"]},"application/x-web-app-manifest+json":{"compressible":true,"extensions":["webapp"]},"application/x-www-form-urlencoded":{"source":"iana","compressible":true},"application/x-x509-ca-cert":{"source":"iana","extensions":["der","crt","pem"]},"application/x-x509-ca-ra-cert":{"source":"iana"},"application/x-x509-next-ca-cert":{"source":"iana"},"application/x-xfig":{"source":"apache","extensions":["fig"]},"application/x-xliff+xml":{"source":"apache","compressible":true,"extensions":["xlf"]},"application/x-xpinstall":{"source":"apache","compressible":false,"extensions":["xpi"]},"application/x-xz":{"source":"apache","extensions":["xz"]},"application/x-zmachine":{"source":"apache","extensions":["z1","z2","z3","z4","z5","z6","z7","z8"]},"application/x400-bp":{"source":"iana"},"application/xacml+xml":{"source":"iana","compressible":true},"application/xaml+xml":{"source":"apache","compressible":true,"extensions":["xaml"]},"application/xcap-att+xml":{"source":"iana","compressible":true,"extensions":["xav"]},"application/xcap-caps+xml":{"source":"iana","compressible":true,"extensions":["xca"]},"application/xcap-diff+xml":{"source":"iana","compressible":true,"extensions":["xdf"]},"application/xcap-el+xml":{"source":"iana","compressible":true,"extensions":["xel"]},"application/xcap-error+xml":{"source":"iana","compressible":true},"application/xcap-ns+xml":{"source":"iana","compressible":true,"extensions":["xns"]},"application/xcon-conference-info+xml":{"source":"iana","compressible":true},"application/xcon-conference-info-diff+xml":{"source":"iana","compressible":true},"application/xenc+xml":{"source":"iana","compressible":true,"extensions":["xenc"]},"application/xhtml+xml":{"source":"iana","compressible":true,"extensions":["xhtml","xht"]},"application/xhtml-voice+xml":{"source":"apache","compressible":true},"application/xliff+xml":{"source":"iana","compressible":true,"extensions":["xlf"]},"application/xml":{"source":"iana","compressible":true,"extensions":["xml","xsl","xsd","rng"]},"application/xml-dtd":{"source":"iana","compressible":true,"extensions":["dtd"]},"application/xml-external-parsed-entity":{"source":"iana"},"application/xml-patch+xml":{"source":"iana","compressible":true},"application/xmpp+xml":{"source":"iana","compressible":true},"application/xop+xml":{"source":"iana","compressible":true,"extensions":["xop"]},"application/xproc+xml":{"source":"apache","compressible":true,"extensions":["xpl"]},"application/xslt+xml":{"source":"iana","compressible":true,"extensions":["xsl","xslt"]},"application/xspf+xml":{"source":"apache","compressible":true,"extensions":["xspf"]},"application/xv+xml":{"source":"iana","compressible":true,"extensions":["mxml","xhvml","xvml","xvm"]},"application/yang":{"source":"iana","extensions":["yang"]},"application/yang-data+json":{"source":"iana","compressible":true},"application/yang-data+xml":{"source":"iana","compressible":true},"application/yang-patch+json":{"source":"iana","compressible":true},"application/yang-patch+xml":{"source":"iana","compressible":true},"application/yin+xml":{"source":"iana","compressible":true,"extensions":["yin"]},"application/zip":{"source":"iana","compressible":false,"extensions":["zip"]},"application/zlib":{"source":"iana"},"application/zstd":{"source":"iana"},"audio/1d-interleaved-parityfec":{"source":"iana"},"audio/32kadpcm":{"source":"iana"},"audio/3gpp":{"source":"iana","compressible":false,"extensions":["3gpp"]},"audio/3gpp2":{"source":"iana"},"audio/aac":{"source":"iana"},"audio/ac3":{"source":"iana"},"audio/adpcm":{"source":"apache","extensions":["adp"]},"audio/amr":{"source":"iana","extensions":["amr"]},"audio/amr-wb":{"source":"iana"},"audio/amr-wb+":{"source":"iana"},"audio/aptx":{"source":"iana"},"audio/asc":{"source":"iana"},"audio/atrac-advanced-lossless":{"source":"iana"},"audio/atrac-x":{"source":"iana"},"audio/atrac3":{"source":"iana"},"audio/basic":{"source":"iana","compressible":false,"extensions":["au","snd"]},"audio/bv16":{"source":"iana"},"audio/bv32":{"source":"iana"},"audio/clearmode":{"source":"iana"},"audio/cn":{"source":"iana"},"audio/dat12":{"source":"iana"},"audio/dls":{"source":"iana"},"audio/dsr-es201108":{"source":"iana"},"audio/dsr-es202050":{"source":"iana"},"audio/dsr-es202211":{"source":"iana"},"audio/dsr-es202212":{"source":"iana"},"audio/dv":{"source":"iana"},"audio/dvi4":{"source":"iana"},"audio/eac3":{"source":"iana"},"audio/encaprtp":{"source":"iana"},"audio/evrc":{"source":"iana"},"audio/evrc-qcp":{"source":"iana"},"audio/evrc0":{"source":"iana"},"audio/evrc1":{"source":"iana"},"audio/evrcb":{"source":"iana"},"audio/evrcb0":{"source":"iana"},"audio/evrcb1":{"source":"iana"},"audio/evrcnw":{"source":"iana"},"audio/evrcnw0":{"source":"iana"},"audio/evrcnw1":{"source":"iana"},"audio/evrcwb":{"source":"iana"},"audio/evrcwb0":{"source":"iana"},"audio/evrcwb1":{"source":"iana"},"audio/evs":{"source":"iana"},"audio/flexfec":{"source":"iana"},"audio/fwdred":{"source":"iana"},"audio/g711-0":{"source":"iana"},"audio/g719":{"source":"iana"},"audio/g722":{"source":"iana"},"audio/g7221":{"source":"iana"},"audio/g723":{"source":"iana"},"audio/g726-16":{"source":"iana"},"audio/g726-24":{"source":"iana"},"audio/g726-32":{"source":"iana"},"audio/g726-40":{"source":"iana"},"audio/g728":{"source":"iana"},"audio/g729":{"source":"iana"},"audio/g7291":{"source":"iana"},"audio/g729d":{"source":"iana"},"audio/g729e":{"source":"iana"},"audio/gsm":{"source":"iana"},"audio/gsm-efr":{"source":"iana"},"audio/gsm-hr-08":{"source":"iana"},"audio/ilbc":{"source":"iana"},"audio/ip-mr_v2.5":{"source":"iana"},"audio/isac":{"source":"apache"},"audio/l16":{"source":"iana"},"audio/l20":{"source":"iana"},"audio/l24":{"source":"iana","compressible":false},"audio/l8":{"source":"iana"},"audio/lpc":{"source":"iana"},"audio/melp":{"source":"iana"},"audio/melp1200":{"source":"iana"},"audio/melp2400":{"source":"iana"},"audio/melp600":{"source":"iana"},"audio/mhas":{"source":"iana"},"audio/midi":{"source":"apache","extensions":["mid","midi","kar","rmi"]},"audio/mobile-xmf":{"source":"iana","extensions":["mxmf"]},"audio/mp3":{"compressible":false,"extensions":["mp3"]},"audio/mp4":{"source":"iana","compressible":false,"extensions":["m4a","mp4a"]},"audio/mp4a-latm":{"source":"iana"},"audio/mpa":{"source":"iana"},"audio/mpa-robust":{"source":"iana"},"audio/mpeg":{"source":"iana","compressible":false,"extensions":["mpga","mp2","mp2a","mp3","m2a","m3a"]},"audio/mpeg4-generic":{"source":"iana"},"audio/musepack":{"source":"apache"},"audio/ogg":{"source":"iana","compressible":false,"extensions":["oga","ogg","spx","opus"]},"audio/opus":{"source":"iana"},"audio/parityfec":{"source":"iana"},"audio/pcma":{"source":"iana"},"audio/pcma-wb":{"source":"iana"},"audio/pcmu":{"source":"iana"},"audio/pcmu-wb":{"source":"iana"},"audio/prs.sid":{"source":"iana"},"audio/qcelp":{"source":"iana"},"audio/raptorfec":{"source":"iana"},"audio/red":{"source":"iana"},"audio/rtp-enc-aescm128":{"source":"iana"},"audio/rtp-midi":{"source":"iana"},"audio/rtploopback":{"source":"iana"},"audio/rtx":{"source":"iana"},"audio/s3m":{"source":"apache","extensions":["s3m"]},"audio/scip":{"source":"iana"},"audio/silk":{"source":"apache","extensions":["sil"]},"audio/smv":{"source":"iana"},"audio/smv-qcp":{"source":"iana"},"audio/smv0":{"source":"iana"},"audio/sofa":{"source":"iana"},"audio/sp-midi":{"source":"iana"},"audio/speex":{"source":"iana"},"audio/t140c":{"source":"iana"},"audio/t38":{"source":"iana"},"audio/telephone-event":{"source":"iana"},"audio/tetra_acelp":{"source":"iana"},"audio/tetra_acelp_bb":{"source":"iana"},"audio/tone":{"source":"iana"},"audio/tsvcis":{"source":"iana"},"audio/uemclip":{"source":"iana"},"audio/ulpfec":{"source":"iana"},"audio/usac":{"source":"iana"},"audio/vdvi":{"source":"iana"},"audio/vmr-wb":{"source":"iana"},"audio/vnd.3gpp.iufp":{"source":"iana"},"audio/vnd.4sb":{"source":"iana"},"audio/vnd.audiokoz":{"source":"iana"},"audio/vnd.celp":{"source":"iana"},"audio/vnd.cisco.nse":{"source":"iana"},"audio/vnd.cmles.radio-events":{"source":"iana"},"audio/vnd.cns.anp1":{"source":"iana"},"audio/vnd.cns.inf1":{"source":"iana"},"audio/vnd.dece.audio":{"source":"iana","extensions":["uva","uvva"]},"audio/vnd.digital-winds":{"source":"iana","extensions":["eol"]},"audio/vnd.dlna.adts":{"source":"iana"},"audio/vnd.dolby.heaac.1":{"source":"iana"},"audio/vnd.dolby.heaac.2":{"source":"iana"},"audio/vnd.dolby.mlp":{"source":"iana"},"audio/vnd.dolby.mps":{"source":"iana"},"audio/vnd.dolby.pl2":{"source":"iana"},"audio/vnd.dolby.pl2x":{"source":"iana"},"audio/vnd.dolby.pl2z":{"source":"iana"},"audio/vnd.dolby.pulse.1":{"source":"iana"},"audio/vnd.dra":{"source":"iana","extensions":["dra"]},"audio/vnd.dts":{"source":"iana","extensions":["dts"]},"audio/vnd.dts.hd":{"source":"iana","extensions":["dtshd"]},"audio/vnd.dts.uhd":{"source":"iana"},"audio/vnd.dvb.file":{"source":"iana"},"audio/vnd.everad.plj":{"source":"iana"},"audio/vnd.hns.audio":{"source":"iana"},"audio/vnd.lucent.voice":{"source":"iana","extensions":["lvp"]},"audio/vnd.ms-playready.media.pya":{"source":"iana","extensions":["pya"]},"audio/vnd.nokia.mobile-xmf":{"source":"iana"},"audio/vnd.nortel.vbk":{"source":"iana"},"audio/vnd.nuera.ecelp4800":{"source":"iana","extensions":["ecelp4800"]},"audio/vnd.nuera.ecelp7470":{"source":"iana","extensions":["ecelp7470"]},"audio/vnd.nuera.ecelp9600":{"source":"iana","extensions":["ecelp9600"]},"audio/vnd.octel.sbc":{"source":"iana"},"audio/vnd.presonus.multitrack":{"source":"iana"},"audio/vnd.qcelp":{"source":"iana"},"audio/vnd.rhetorex.32kadpcm":{"source":"iana"},"audio/vnd.rip":{"source":"iana","extensions":["rip"]},"audio/vnd.rn-realaudio":{"compressible":false},"audio/vnd.sealedmedia.softseal.mpeg":{"source":"iana"},"audio/vnd.vmx.cvsd":{"source":"iana"},"audio/vnd.wave":{"compressible":false},"audio/vorbis":{"source":"iana","compressible":false},"audio/vorbis-config":{"source":"iana"},"audio/wav":{"compressible":false,"extensions":["wav"]},"audio/wave":{"compressible":false,"extensions":["wav"]},"audio/webm":{"source":"apache","compressible":false,"extensions":["weba"]},"audio/x-aac":{"source":"apache","compressible":false,"extensions":["aac"]},"audio/x-aiff":{"source":"apache","extensions":["aif","aiff","aifc"]},"audio/x-caf":{"source":"apache","compressible":false,"extensions":["caf"]},"audio/x-flac":{"source":"apache","extensions":["flac"]},"audio/x-m4a":{"source":"nginx","extensions":["m4a"]},"audio/x-matroska":{"source":"apache","extensions":["mka"]},"audio/x-mpegurl":{"source":"apache","extensions":["m3u"]},"audio/x-ms-wax":{"source":"apache","extensions":["wax"]},"audio/x-ms-wma":{"source":"apache","extensions":["wma"]},"audio/x-pn-realaudio":{"source":"apache","extensions":["ram","ra"]},"audio/x-pn-realaudio-plugin":{"source":"apache","extensions":["rmp"]},"audio/x-realaudio":{"source":"nginx","extensions":["ra"]},"audio/x-tta":{"source":"apache"},"audio/x-wav":{"source":"apache","extensions":["wav"]},"audio/xm":{"source":"apache","extensions":["xm"]},"chemical/x-cdx":{"source":"apache","extensions":["cdx"]},"chemical/x-cif":{"source":"apache","extensions":["cif"]},"chemical/x-cmdf":{"source":"apache","extensions":["cmdf"]},"chemical/x-cml":{"source":"apache","extensions":["cml"]},"chemical/x-csml":{"source":"apache","extensions":["csml"]},"chemical/x-pdb":{"source":"apache"},"chemical/x-xyz":{"source":"apache","extensions":["xyz"]},"font/collection":{"source":"iana","extensions":["ttc"]},"font/otf":{"source":"iana","compressible":true,"extensions":["otf"]},"font/sfnt":{"source":"iana"},"font/ttf":{"source":"iana","compressible":true,"extensions":["ttf"]},"font/woff":{"source":"iana","extensions":["woff"]},"font/woff2":{"source":"iana","extensions":["woff2"]},"image/aces":{"source":"iana","extensions":["exr"]},"image/apng":{"compressible":false,"extensions":["apng"]},"image/avci":{"source":"iana","extensions":["avci"]},"image/avcs":{"source":"iana","extensions":["avcs"]},"image/avif":{"source":"iana","compressible":false,"extensions":["avif"]},"image/bmp":{"source":"iana","compressible":true,"extensions":["bmp"]},"image/cgm":{"source":"iana","extensions":["cgm"]},"image/dicom-rle":{"source":"iana","extensions":["drle"]},"image/emf":{"source":"iana","extensions":["emf"]},"image/fits":{"source":"iana","extensions":["fits"]},"image/g3fax":{"source":"iana","extensions":["g3"]},"image/gif":{"source":"iana","compressible":false,"extensions":["gif"]},"image/heic":{"source":"iana","extensions":["heic"]},"image/heic-sequence":{"source":"iana","extensions":["heics"]},"image/heif":{"source":"iana","extensions":["heif"]},"image/heif-sequence":{"source":"iana","extensions":["heifs"]},"image/hej2k":{"source":"iana","extensions":["hej2"]},"image/hsj2":{"source":"iana","extensions":["hsj2"]},"image/ief":{"source":"iana","extensions":["ief"]},"image/jls":{"source":"iana","extensions":["jls"]},"image/jp2":{"source":"iana","compressible":false,"extensions":["jp2","jpg2"]},"image/jpeg":{"source":"iana","compressible":false,"extensions":["jpeg","jpg","jpe"]},"image/jph":{"source":"iana","extensions":["jph"]},"image/jphc":{"source":"iana","extensions":["jhc"]},"image/jpm":{"source":"iana","compressible":false,"extensions":["jpm"]},"image/jpx":{"source":"iana","compressible":false,"extensions":["jpx","jpf"]},"image/jxr":{"source":"iana","extensions":["jxr"]},"image/jxra":{"source":"iana","extensions":["jxra"]},"image/jxrs":{"source":"iana","extensions":["jxrs"]},"image/jxs":{"source":"iana","extensions":["jxs"]},"image/jxsc":{"source":"iana","extensions":["jxsc"]},"image/jxsi":{"source":"iana","extensions":["jxsi"]},"image/jxss":{"source":"iana","extensions":["jxss"]},"image/ktx":{"source":"iana","extensions":["ktx"]},"image/ktx2":{"source":"iana","extensions":["ktx2"]},"image/naplps":{"source":"iana"},"image/pjpeg":{"compressible":false},"image/png":{"source":"iana","compressible":false,"extensions":["png"]},"image/prs.btif":{"source":"iana","extensions":["btif"]},"image/prs.pti":{"source":"iana","extensions":["pti"]},"image/pwg-raster":{"source":"iana"},"image/sgi":{"source":"apache","extensions":["sgi"]},"image/svg+xml":{"source":"iana","compressible":true,"extensions":["svg","svgz"]},"image/t38":{"source":"iana","extensions":["t38"]},"image/tiff":{"source":"iana","compressible":false,"extensions":["tif","tiff"]},"image/tiff-fx":{"source":"iana","extensions":["tfx"]},"image/vnd.adobe.photoshop":{"source":"iana","compressible":true,"extensions":["psd"]},"image/vnd.airzip.accelerator.azv":{"source":"iana","extensions":["azv"]},"image/vnd.cns.inf2":{"source":"iana"},"image/vnd.dece.graphic":{"source":"iana","extensions":["uvi","uvvi","uvg","uvvg"]},"image/vnd.djvu":{"source":"iana","extensions":["djvu","djv"]},"image/vnd.dvb.subtitle":{"source":"iana","extensions":["sub"]},"image/vnd.dwg":{"source":"iana","extensions":["dwg"]},"image/vnd.dxf":{"source":"iana","extensions":["dxf"]},"image/vnd.fastbidsheet":{"source":"iana","extensions":["fbs"]},"image/vnd.fpx":{"source":"iana","extensions":["fpx"]},"image/vnd.fst":{"source":"iana","extensions":["fst"]},"image/vnd.fujixerox.edmics-mmr":{"source":"iana","extensions":["mmr"]},"image/vnd.fujixerox.edmics-rlc":{"source":"iana","extensions":["rlc"]},"image/vnd.globalgraphics.pgb":{"source":"iana"},"image/vnd.microsoft.icon":{"source":"iana","compressible":true,"extensions":["ico"]},"image/vnd.mix":{"source":"iana"},"image/vnd.mozilla.apng":{"source":"iana"},"image/vnd.ms-dds":{"compressible":true,"extensions":["dds"]},"image/vnd.ms-modi":{"source":"iana","extensions":["mdi"]},"image/vnd.ms-photo":{"source":"apache","extensions":["wdp"]},"image/vnd.net-fpx":{"source":"iana","extensions":["npx"]},"image/vnd.pco.b16":{"source":"iana","extensions":["b16"]},"image/vnd.radiance":{"source":"iana"},"image/vnd.sealed.png":{"source":"iana"},"image/vnd.sealedmedia.softseal.gif":{"source":"iana"},"image/vnd.sealedmedia.softseal.jpg":{"source":"iana"},"image/vnd.svf":{"source":"iana"},"image/vnd.tencent.tap":{"source":"iana","extensions":["tap"]},"image/vnd.valve.source.texture":{"source":"iana","extensions":["vtf"]},"image/vnd.wap.wbmp":{"source":"iana","extensions":["wbmp"]},"image/vnd.xiff":{"source":"iana","extensions":["xif"]},"image/vnd.zbrush.pcx":{"source":"iana","extensions":["pcx"]},"image/webp":{"source":"apache","extensions":["webp"]},"image/wmf":{"source":"iana","extensions":["wmf"]},"image/x-3ds":{"source":"apache","extensions":["3ds"]},"image/x-cmu-raster":{"source":"apache","extensions":["ras"]},"image/x-cmx":{"source":"apache","extensions":["cmx"]},"image/x-freehand":{"source":"apache","extensions":["fh","fhc","fh4","fh5","fh7"]},"image/x-icon":{"source":"apache","compressible":true,"extensions":["ico"]},"image/x-jng":{"source":"nginx","extensions":["jng"]},"image/x-mrsid-image":{"source":"apache","extensions":["sid"]},"image/x-ms-bmp":{"source":"nginx","compressible":true,"extensions":["bmp"]},"image/x-pcx":{"source":"apache","extensions":["pcx"]},"image/x-pict":{"source":"apache","extensions":["pic","pct"]},"image/x-portable-anymap":{"source":"apache","extensions":["pnm"]},"image/x-portable-bitmap":{"source":"apache","extensions":["pbm"]},"image/x-portable-graymap":{"source":"apache","extensions":["pgm"]},"image/x-portable-pixmap":{"source":"apache","extensions":["ppm"]},"image/x-rgb":{"source":"apache","extensions":["rgb"]},"image/x-tga":{"source":"apache","extensions":["tga"]},"image/x-xbitmap":{"source":"apache","extensions":["xbm"]},"image/x-xcf":{"compressible":false},"image/x-xpixmap":{"source":"apache","extensions":["xpm"]},"image/x-xwindowdump":{"source":"apache","extensions":["xwd"]},"message/cpim":{"source":"iana"},"message/delivery-status":{"source":"iana"},"message/disposition-notification":{"source":"iana","extensions":["disposition-notification"]},"message/external-body":{"source":"iana"},"message/feedback-report":{"source":"iana"},"message/global":{"source":"iana","extensions":["u8msg"]},"message/global-delivery-status":{"source":"iana","extensions":["u8dsn"]},"message/global-disposition-notification":{"source":"iana","extensions":["u8mdn"]},"message/global-headers":{"source":"iana","extensions":["u8hdr"]},"message/http":{"source":"iana","compressible":false},"message/imdn+xml":{"source":"iana","compressible":true},"message/news":{"source":"iana"},"message/partial":{"source":"iana","compressible":false},"message/rfc822":{"source":"iana","compressible":true,"extensions":["eml","mime"]},"message/s-http":{"source":"iana"},"message/sip":{"source":"iana"},"message/sipfrag":{"source":"iana"},"message/tracking-status":{"source":"iana"},"message/vnd.si.simp":{"source":"iana"},"message/vnd.wfa.wsc":{"source":"iana","extensions":["wsc"]},"model/3mf":{"source":"iana","extensions":["3mf"]},"model/e57":{"source":"iana"},"model/gltf+json":{"source":"iana","compressible":true,"extensions":["gltf"]},"model/gltf-binary":{"source":"iana","compressible":true,"extensions":["glb"]},"model/iges":{"source":"iana","compressible":false,"extensions":["igs","iges"]},"model/mesh":{"source":"iana","compressible":false,"extensions":["msh","mesh","silo"]},"model/mtl":{"source":"iana","extensions":["mtl"]},"model/obj":{"source":"iana","extensions":["obj"]},"model/step":{"source":"iana"},"model/step+xml":{"source":"iana","compressible":true,"extensions":["stpx"]},"model/step+zip":{"source":"iana","compressible":false,"extensions":["stpz"]},"model/step-xml+zip":{"source":"iana","compressible":false,"extensions":["stpxz"]},"model/stl":{"source":"iana","extensions":["stl"]},"model/vnd.collada+xml":{"source":"iana","compressible":true,"extensions":["dae"]},"model/vnd.dwf":{"source":"iana","extensions":["dwf"]},"model/vnd.flatland.3dml":{"source":"iana"},"model/vnd.gdl":{"source":"iana","extensions":["gdl"]},"model/vnd.gs-gdl":{"source":"apache"},"model/vnd.gs.gdl":{"source":"iana"},"model/vnd.gtw":{"source":"iana","extensions":["gtw"]},"model/vnd.moml+xml":{"source":"iana","compressible":true},"model/vnd.mts":{"source":"iana","extensions":["mts"]},"model/vnd.opengex":{"source":"iana","extensions":["ogex"]},"model/vnd.parasolid.transmit.binary":{"source":"iana","extensions":["x_b"]},"model/vnd.parasolid.transmit.text":{"source":"iana","extensions":["x_t"]},"model/vnd.pytha.pyox":{"source":"iana"},"model/vnd.rosette.annotated-data-model":{"source":"iana"},"model/vnd.sap.vds":{"source":"iana","extensions":["vds"]},"model/vnd.usdz+zip":{"source":"iana","compressible":false,"extensions":["usdz"]},"model/vnd.valve.source.compiled-map":{"source":"iana","extensions":["bsp"]},"model/vnd.vtu":{"source":"iana","extensions":["vtu"]},"model/vrml":{"source":"iana","compressible":false,"extensions":["wrl","vrml"]},"model/x3d+binary":{"source":"apache","compressible":false,"extensions":["x3db","x3dbz"]},"model/x3d+fastinfoset":{"source":"iana","extensions":["x3db"]},"model/x3d+vrml":{"source":"apache","compressible":false,"extensions":["x3dv","x3dvz"]},"model/x3d+xml":{"source":"iana","compressible":true,"extensions":["x3d","x3dz"]},"model/x3d-vrml":{"source":"iana","extensions":["x3dv"]},"multipart/alternative":{"source":"iana","compressible":false},"multipart/appledouble":{"source":"iana"},"multipart/byteranges":{"source":"iana"},"multipart/digest":{"source":"iana"},"multipart/encrypted":{"source":"iana","compressible":false},"multipart/form-data":{"source":"iana","compressible":false},"multipart/header-set":{"source":"iana"},"multipart/mixed":{"source":"iana"},"multipart/multilingual":{"source":"iana"},"multipart/parallel":{"source":"iana"},"multipart/related":{"source":"iana","compressible":false},"multipart/report":{"source":"iana"},"multipart/signed":{"source":"iana","compressible":false},"multipart/vnd.bint.med-plus":{"source":"iana"},"multipart/voice-message":{"source":"iana"},"multipart/x-mixed-replace":{"source":"iana"},"text/1d-interleaved-parityfec":{"source":"iana"},"text/cache-manifest":{"source":"iana","compressible":true,"extensions":["appcache","manifest"]},"text/calendar":{"source":"iana","extensions":["ics","ifb"]},"text/calender":{"compressible":true},"text/cmd":{"compressible":true},"text/coffeescript":{"extensions":["coffee","litcoffee"]},"text/cql":{"source":"iana"},"text/cql-expression":{"source":"iana"},"text/cql-identifier":{"source":"iana"},"text/css":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["css"]},"text/csv":{"source":"iana","compressible":true,"extensions":["csv"]},"text/csv-schema":{"source":"iana"},"text/directory":{"source":"iana"},"text/dns":{"source":"iana"},"text/ecmascript":{"source":"iana"},"text/encaprtp":{"source":"iana"},"text/enriched":{"source":"iana"},"text/fhirpath":{"source":"iana"},"text/flexfec":{"source":"iana"},"text/fwdred":{"source":"iana"},"text/gff3":{"source":"iana"},"text/grammar-ref-list":{"source":"iana"},"text/html":{"source":"iana","compressible":true,"extensions":["html","htm","shtml"]},"text/jade":{"extensions":["jade"]},"text/javascript":{"source":"iana","compressible":true},"text/jcr-cnd":{"source":"iana"},"text/jsx":{"compressible":true,"extensions":["jsx"]},"text/less":{"compressible":true,"extensions":["less"]},"text/markdown":{"source":"iana","compressible":true,"extensions":["markdown","md"]},"text/mathml":{"source":"nginx","extensions":["mml"]},"text/mdx":{"compressible":true,"extensions":["mdx"]},"text/mizar":{"source":"iana"},"text/n3":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["n3"]},"text/parameters":{"source":"iana","charset":"UTF-8"},"text/parityfec":{"source":"iana"},"text/plain":{"source":"iana","compressible":true,"extensions":["txt","text","conf","def","list","log","in","ini"]},"text/provenance-notation":{"source":"iana","charset":"UTF-8"},"text/prs.fallenstein.rst":{"source":"iana"},"text/prs.lines.tag":{"source":"iana","extensions":["dsc"]},"text/prs.prop.logic":{"source":"iana"},"text/raptorfec":{"source":"iana"},"text/red":{"source":"iana"},"text/rfc822-headers":{"source":"iana"},"text/richtext":{"source":"iana","compressible":true,"extensions":["rtx"]},"text/rtf":{"source":"iana","compressible":true,"extensions":["rtf"]},"text/rtp-enc-aescm128":{"source":"iana"},"text/rtploopback":{"source":"iana"},"text/rtx":{"source":"iana"},"text/sgml":{"source":"iana","extensions":["sgml","sgm"]},"text/shaclc":{"source":"iana"},"text/shex":{"source":"iana","extensions":["shex"]},"text/slim":{"extensions":["slim","slm"]},"text/spdx":{"source":"iana","extensions":["spdx"]},"text/strings":{"source":"iana"},"text/stylus":{"extensions":["stylus","styl"]},"text/t140":{"source":"iana"},"text/tab-separated-values":{"source":"iana","compressible":true,"extensions":["tsv"]},"text/troff":{"source":"iana","extensions":["t","tr","roff","man","me","ms"]},"text/turtle":{"source":"iana","charset":"UTF-8","extensions":["ttl"]},"text/ulpfec":{"source":"iana"},"text/uri-list":{"source":"iana","compressible":true,"extensions":["uri","uris","urls"]},"text/vcard":{"source":"iana","compressible":true,"extensions":["vcard"]},"text/vnd.a":{"source":"iana"},"text/vnd.abc":{"source":"iana"},"text/vnd.ascii-art":{"source":"iana"},"text/vnd.curl":{"source":"iana","extensions":["curl"]},"text/vnd.curl.dcurl":{"source":"apache","extensions":["dcurl"]},"text/vnd.curl.mcurl":{"source":"apache","extensions":["mcurl"]},"text/vnd.curl.scurl":{"source":"apache","extensions":["scurl"]},"text/vnd.debian.copyright":{"source":"iana","charset":"UTF-8"},"text/vnd.dmclientscript":{"source":"iana"},"text/vnd.dvb.subtitle":{"source":"iana","extensions":["sub"]},"text/vnd.esmertec.theme-descriptor":{"source":"iana","charset":"UTF-8"},"text/vnd.familysearch.gedcom":{"source":"iana","extensions":["ged"]},"text/vnd.ficlab.flt":{"source":"iana"},"text/vnd.fly":{"source":"iana","extensions":["fly"]},"text/vnd.fmi.flexstor":{"source":"iana","extensions":["flx"]},"text/vnd.gml":{"source":"iana"},"text/vnd.graphviz":{"source":"iana","extensions":["gv"]},"text/vnd.hans":{"source":"iana"},"text/vnd.hgl":{"source":"iana"},"text/vnd.in3d.3dml":{"source":"iana","extensions":["3dml"]},"text/vnd.in3d.spot":{"source":"iana","extensions":["spot"]},"text/vnd.iptc.newsml":{"source":"iana"},"text/vnd.iptc.nitf":{"source":"iana"},"text/vnd.latex-z":{"source":"iana"},"text/vnd.motorola.reflex":{"source":"iana"},"text/vnd.ms-mediapackage":{"source":"iana"},"text/vnd.net2phone.commcenter.command":{"source":"iana"},"text/vnd.radisys.msml-basic-layout":{"source":"iana"},"text/vnd.senx.warpscript":{"source":"iana"},"text/vnd.si.uricatalogue":{"source":"iana"},"text/vnd.sosi":{"source":"iana"},"text/vnd.sun.j2me.app-descriptor":{"source":"iana","charset":"UTF-8","extensions":["jad"]},"text/vnd.trolltech.linguist":{"source":"iana","charset":"UTF-8"},"text/vnd.wap.si":{"source":"iana"},"text/vnd.wap.sl":{"source":"iana"},"text/vnd.wap.wml":{"source":"iana","extensions":["wml"]},"text/vnd.wap.wmlscript":{"source":"iana","extensions":["wmls"]},"text/vtt":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["vtt"]},"text/x-asm":{"source":"apache","extensions":["s","asm"]},"text/x-c":{"source":"apache","extensions":["c","cc","cxx","cpp","h","hh","dic"]},"text/x-component":{"source":"nginx","extensions":["htc"]},"text/x-fortran":{"source":"apache","extensions":["f","for","f77","f90"]},"text/x-gwt-rpc":{"compressible":true},"text/x-handlebars-template":{"extensions":["hbs"]},"text/x-java-source":{"source":"apache","extensions":["java"]},"text/x-jquery-tmpl":{"compressible":true},"text/x-lua":{"extensions":["lua"]},"text/x-markdown":{"compressible":true,"extensions":["mkd"]},"text/x-nfo":{"source":"apache","extensions":["nfo"]},"text/x-opml":{"source":"apache","extensions":["opml"]},"text/x-org":{"compressible":true,"extensions":["org"]},"text/x-pascal":{"source":"apache","extensions":["p","pas"]},"text/x-processing":{"compressible":true,"extensions":["pde"]},"text/x-sass":{"extensions":["sass"]},"text/x-scss":{"extensions":["scss"]},"text/x-setext":{"source":"apache","extensions":["etx"]},"text/x-sfv":{"source":"apache","extensions":["sfv"]},"text/x-suse-ymp":{"compressible":true,"extensions":["ymp"]},"text/x-uuencode":{"source":"apache","extensions":["uu"]},"text/x-vcalendar":{"source":"apache","extensions":["vcs"]},"text/x-vcard":{"source":"apache","extensions":["vcf"]},"text/xml":{"source":"iana","compressible":true,"extensions":["xml"]},"text/xml-external-parsed-entity":{"source":"iana"},"text/yaml":{"compressible":true,"extensions":["yaml","yml"]},"video/1d-interleaved-parityfec":{"source":"iana"},"video/3gpp":{"source":"iana","extensions":["3gp","3gpp"]},"video/3gpp-tt":{"source":"iana"},"video/3gpp2":{"source":"iana","extensions":["3g2"]},"video/av1":{"source":"iana"},"video/bmpeg":{"source":"iana"},"video/bt656":{"source":"iana"},"video/celb":{"source":"iana"},"video/dv":{"source":"iana"},"video/encaprtp":{"source":"iana"},"video/ffv1":{"source":"iana"},"video/flexfec":{"source":"iana"},"video/h261":{"source":"iana","extensions":["h261"]},"video/h263":{"source":"iana","extensions":["h263"]},"video/h263-1998":{"source":"iana"},"video/h263-2000":{"source":"iana"},"video/h264":{"source":"iana","extensions":["h264"]},"video/h264-rcdo":{"source":"iana"},"video/h264-svc":{"source":"iana"},"video/h265":{"source":"iana"},"video/iso.segment":{"source":"iana","extensions":["m4s"]},"video/jpeg":{"source":"iana","extensions":["jpgv"]},"video/jpeg2000":{"source":"iana"},"video/jpm":{"source":"apache","extensions":["jpm","jpgm"]},"video/jxsv":{"source":"iana"},"video/mj2":{"source":"iana","extensions":["mj2","mjp2"]},"video/mp1s":{"source":"iana"},"video/mp2p":{"source":"iana"},"video/mp2t":{"source":"iana","extensions":["ts"]},"video/mp4":{"source":"iana","compressible":false,"extensions":["mp4","mp4v","mpg4"]},"video/mp4v-es":{"source":"iana"},"video/mpeg":{"source":"iana","compressible":false,"extensions":["mpeg","mpg","mpe","m1v","m2v"]},"video/mpeg4-generic":{"source":"iana"},"video/mpv":{"source":"iana"},"video/nv":{"source":"iana"},"video/ogg":{"source":"iana","compressible":false,"extensions":["ogv"]},"video/parityfec":{"source":"iana"},"video/pointer":{"source":"iana"},"video/quicktime":{"source":"iana","compressible":false,"extensions":["qt","mov"]},"video/raptorfec":{"source":"iana"},"video/raw":{"source":"iana"},"video/rtp-enc-aescm128":{"source":"iana"},"video/rtploopback":{"source":"iana"},"video/rtx":{"source":"iana"},"video/scip":{"source":"iana"},"video/smpte291":{"source":"iana"},"video/smpte292m":{"source":"iana"},"video/ulpfec":{"source":"iana"},"video/vc1":{"source":"iana"},"video/vc2":{"source":"iana"},"video/vnd.cctv":{"source":"iana"},"video/vnd.dece.hd":{"source":"iana","extensions":["uvh","uvvh"]},"video/vnd.dece.mobile":{"source":"iana","extensions":["uvm","uvvm"]},"video/vnd.dece.mp4":{"source":"iana"},"video/vnd.dece.pd":{"source":"iana","extensions":["uvp","uvvp"]},"video/vnd.dece.sd":{"source":"iana","extensions":["uvs","uvvs"]},"video/vnd.dece.video":{"source":"iana","extensions":["uvv","uvvv"]},"video/vnd.directv.mpeg":{"source":"iana"},"video/vnd.directv.mpeg-tts":{"source":"iana"},"video/vnd.dlna.mpeg-tts":{"source":"iana"},"video/vnd.dvb.file":{"source":"iana","extensions":["dvb"]},"video/vnd.fvt":{"source":"iana","extensions":["fvt"]},"video/vnd.hns.video":{"source":"iana"},"video/vnd.iptvforum.1dparityfec-1010":{"source":"iana"},"video/vnd.iptvforum.1dparityfec-2005":{"source":"iana"},"video/vnd.iptvforum.2dparityfec-1010":{"source":"iana"},"video/vnd.iptvforum.2dparityfec-2005":{"source":"iana"},"video/vnd.iptvforum.ttsavc":{"source":"iana"},"video/vnd.iptvforum.ttsmpeg2":{"source":"iana"},"video/vnd.motorola.video":{"source":"iana"},"video/vnd.motorola.videop":{"source":"iana"},"video/vnd.mpegurl":{"source":"iana","extensions":["mxu","m4u"]},"video/vnd.ms-playready.media.pyv":{"source":"iana","extensions":["pyv"]},"video/vnd.nokia.interleaved-multimedia":{"source":"iana"},"video/vnd.nokia.mp4vr":{"source":"iana"},"video/vnd.nokia.videovoip":{"source":"iana"},"video/vnd.objectvideo":{"source":"iana"},"video/vnd.radgamettools.bink":{"source":"iana"},"video/vnd.radgamettools.smacker":{"source":"iana"},"video/vnd.sealed.mpeg1":{"source":"iana"},"video/vnd.sealed.mpeg4":{"source":"iana"},"video/vnd.sealed.swf":{"source":"iana"},"video/vnd.sealedmedia.softseal.mov":{"source":"iana"},"video/vnd.uvvu.mp4":{"source":"iana","extensions":["uvu","uvvu"]},"video/vnd.vivo":{"source":"iana","extensions":["viv"]},"video/vnd.youtube.yt":{"source":"iana"},"video/vp8":{"source":"iana"},"video/vp9":{"source":"iana"},"video/webm":{"source":"apache","compressible":false,"extensions":["webm"]},"video/x-f4v":{"source":"apache","extensions":["f4v"]},"video/x-fli":{"source":"apache","extensions":["fli"]},"video/x-flv":{"source":"apache","compressible":false,"extensions":["flv"]},"video/x-m4v":{"source":"apache","extensions":["m4v"]},"video/x-matroska":{"source":"apache","compressible":false,"extensions":["mkv","mk3d","mks"]},"video/x-mng":{"source":"apache","extensions":["mng"]},"video/x-ms-asf":{"source":"apache","extensions":["asf","asx"]},"video/x-ms-vob":{"source":"apache","extensions":["vob"]},"video/x-ms-wm":{"source":"apache","extensions":["wm"]},"video/x-ms-wmv":{"source":"apache","compressible":false,"extensions":["wmv"]},"video/x-ms-wmx":{"source":"apache","extensions":["wmx"]},"video/x-ms-wvx":{"source":"apache","extensions":["wvx"]},"video/x-msvideo":{"source":"apache","extensions":["avi"]},"video/x-sgi-movie":{"source":"apache","extensions":["movie"]},"video/x-smv":{"source":"apache","extensions":["smv"]},"x-conference/x-cooltalk":{"source":"apache","extensions":["ice"]},"x-shader/x-fragment":{"compressible":true},"x-shader/x-vertex":{"compressible":true}}')},2020:e=>{"use strict";e.exports=JSON.parse('[[[0,44],"disallowed_STD3_valid"],[[45,46],"valid"],[[47,47],"disallowed_STD3_valid"],[[48,57],"valid"],[[58,64],"disallowed_STD3_valid"],[[65,65],"mapped",[97]],[[66,66],"mapped",[98]],[[67,67],"mapped",[99]],[[68,68],"mapped",[100]],[[69,69],"mapped",[101]],[[70,70],"mapped",[102]],[[71,71],"mapped",[103]],[[72,72],"mapped",[104]],[[73,73],"mapped",[105]],[[74,74],"mapped",[106]],[[75,75],"mapped",[107]],[[76,76],"mapped",[108]],[[77,77],"mapped",[109]],[[78,78],"mapped",[110]],[[79,79],"mapped",[111]],[[80,80],"mapped",[112]],[[81,81],"mapped",[113]],[[82,82],"mapped",[114]],[[83,83],"mapped",[115]],[[84,84],"mapped",[116]],[[85,85],"mapped",[117]],[[86,86],"mapped",[118]],[[87,87],"mapped",[119]],[[88,88],"mapped",[120]],[[89,89],"mapped",[121]],[[90,90],"mapped",[122]],[[91,96],"disallowed_STD3_valid"],[[97,122],"valid"],[[123,127],"disallowed_STD3_valid"],[[128,159],"disallowed"],[[160,160],"disallowed_STD3_mapped",[32]],[[161,167],"valid",[],"NV8"],[[168,168],"disallowed_STD3_mapped",[32,776]],[[169,169],"valid",[],"NV8"],[[170,170],"mapped",[97]],[[171,172],"valid",[],"NV8"],[[173,173],"ignored"],[[174,174],"valid",[],"NV8"],[[175,175],"disallowed_STD3_mapped",[32,772]],[[176,177],"valid",[],"NV8"],[[178,178],"mapped",[50]],[[179,179],"mapped",[51]],[[180,180],"disallowed_STD3_mapped",[32,769]],[[181,181],"mapped",[956]],[[182,182],"valid",[],"NV8"],[[183,183],"valid"],[[184,184],"disallowed_STD3_mapped",[32,807]],[[185,185],"mapped",[49]],[[186,186],"mapped",[111]],[[187,187],"valid",[],"NV8"],[[188,188],"mapped",[49,8260,52]],[[189,189],"mapped",[49,8260,50]],[[190,190],"mapped",[51,8260,52]],[[191,191],"valid",[],"NV8"],[[192,192],"mapped",[224]],[[193,193],"mapped",[225]],[[194,194],"mapped",[226]],[[195,195],"mapped",[227]],[[196,196],"mapped",[228]],[[197,197],"mapped",[229]],[[198,198],"mapped",[230]],[[199,199],"mapped",[231]],[[200,200],"mapped",[232]],[[201,201],"mapped",[233]],[[202,202],"mapped",[234]],[[203,203],"mapped",[235]],[[204,204],"mapped",[236]],[[205,205],"mapped",[237]],[[206,206],"mapped",[238]],[[207,207],"mapped",[239]],[[208,208],"mapped",[240]],[[209,209],"mapped",[241]],[[210,210],"mapped",[242]],[[211,211],"mapped",[243]],[[212,212],"mapped",[244]],[[213,213],"mapped",[245]],[[214,214],"mapped",[246]],[[215,215],"valid",[],"NV8"],[[216,216],"mapped",[248]],[[217,217],"mapped",[249]],[[218,218],"mapped",[250]],[[219,219],"mapped",[251]],[[220,220],"mapped",[252]],[[221,221],"mapped",[253]],[[222,222],"mapped",[254]],[[223,223],"deviation",[115,115]],[[224,246],"valid"],[[247,247],"valid",[],"NV8"],[[248,255],"valid"],[[256,256],"mapped",[257]],[[257,257],"valid"],[[258,258],"mapped",[259]],[[259,259],"valid"],[[260,260],"mapped",[261]],[[261,261],"valid"],[[262,262],"mapped",[263]],[[263,263],"valid"],[[264,264],"mapped",[265]],[[265,265],"valid"],[[266,266],"mapped",[267]],[[267,267],"valid"],[[268,268],"mapped",[269]],[[269,269],"valid"],[[270,270],"mapped",[271]],[[271,271],"valid"],[[272,272],"mapped",[273]],[[273,273],"valid"],[[274,274],"mapped",[275]],[[275,275],"valid"],[[276,276],"mapped",[277]],[[277,277],"valid"],[[278,278],"mapped",[279]],[[279,279],"valid"],[[280,280],"mapped",[281]],[[281,281],"valid"],[[282,282],"mapped",[283]],[[283,283],"valid"],[[284,284],"mapped",[285]],[[285,285],"valid"],[[286,286],"mapped",[287]],[[287,287],"valid"],[[288,288],"mapped",[289]],[[289,289],"valid"],[[290,290],"mapped",[291]],[[291,291],"valid"],[[292,292],"mapped",[293]],[[293,293],"valid"],[[294,294],"mapped",[295]],[[295,295],"valid"],[[296,296],"mapped",[297]],[[297,297],"valid"],[[298,298],"mapped",[299]],[[299,299],"valid"],[[300,300],"mapped",[301]],[[301,301],"valid"],[[302,302],"mapped",[303]],[[303,303],"valid"],[[304,304],"mapped",[105,775]],[[305,305],"valid"],[[306,307],"mapped",[105,106]],[[308,308],"mapped",[309]],[[309,309],"valid"],[[310,310],"mapped",[311]],[[311,312],"valid"],[[313,313],"mapped",[314]],[[314,314],"valid"],[[315,315],"mapped",[316]],[[316,316],"valid"],[[317,317],"mapped",[318]],[[318,318],"valid"],[[319,320],"mapped",[108,183]],[[321,321],"mapped",[322]],[[322,322],"valid"],[[323,323],"mapped",[324]],[[324,324],"valid"],[[325,325],"mapped",[326]],[[326,326],"valid"],[[327,327],"mapped",[328]],[[328,328],"valid"],[[329,329],"mapped",[700,110]],[[330,330],"mapped",[331]],[[331,331],"valid"],[[332,332],"mapped",[333]],[[333,333],"valid"],[[334,334],"mapped",[335]],[[335,335],"valid"],[[336,336],"mapped",[337]],[[337,337],"valid"],[[338,338],"mapped",[339]],[[339,339],"valid"],[[340,340],"mapped",[341]],[[341,341],"valid"],[[342,342],"mapped",[343]],[[343,343],"valid"],[[344,344],"mapped",[345]],[[345,345],"valid"],[[346,346],"mapped",[347]],[[347,347],"valid"],[[348,348],"mapped",[349]],[[349,349],"valid"],[[350,350],"mapped",[351]],[[351,351],"valid"],[[352,352],"mapped",[353]],[[353,353],"valid"],[[354,354],"mapped",[355]],[[355,355],"valid"],[[356,356],"mapped",[357]],[[357,357],"valid"],[[358,358],"mapped",[359]],[[359,359],"valid"],[[360,360],"mapped",[361]],[[361,361],"valid"],[[362,362],"mapped",[363]],[[363,363],"valid"],[[364,364],"mapped",[365]],[[365,365],"valid"],[[366,366],"mapped",[367]],[[367,367],"valid"],[[368,368],"mapped",[369]],[[369,369],"valid"],[[370,370],"mapped",[371]],[[371,371],"valid"],[[372,372],"mapped",[373]],[[373,373],"valid"],[[374,374],"mapped",[375]],[[375,375],"valid"],[[376,376],"mapped",[255]],[[377,377],"mapped",[378]],[[378,378],"valid"],[[379,379],"mapped",[380]],[[380,380],"valid"],[[381,381],"mapped",[382]],[[382,382],"valid"],[[383,383],"mapped",[115]],[[384,384],"valid"],[[385,385],"mapped",[595]],[[386,386],"mapped",[387]],[[387,387],"valid"],[[388,388],"mapped",[389]],[[389,389],"valid"],[[390,390],"mapped",[596]],[[391,391],"mapped",[392]],[[392,392],"valid"],[[393,393],"mapped",[598]],[[394,394],"mapped",[599]],[[395,395],"mapped",[396]],[[396,397],"valid"],[[398,398],"mapped",[477]],[[399,399],"mapped",[601]],[[400,400],"mapped",[603]],[[401,401],"mapped",[402]],[[402,402],"valid"],[[403,403],"mapped",[608]],[[404,404],"mapped",[611]],[[405,405],"valid"],[[406,406],"mapped",[617]],[[407,407],"mapped",[616]],[[408,408],"mapped",[409]],[[409,411],"valid"],[[412,412],"mapped",[623]],[[413,413],"mapped",[626]],[[414,414],"valid"],[[415,415],"mapped",[629]],[[416,416],"mapped",[417]],[[417,417],"valid"],[[418,418],"mapped",[419]],[[419,419],"valid"],[[420,420],"mapped",[421]],[[421,421],"valid"],[[422,422],"mapped",[640]],[[423,423],"mapped",[424]],[[424,424],"valid"],[[425,425],"mapped",[643]],[[426,427],"valid"],[[428,428],"mapped",[429]],[[429,429],"valid"],[[430,430],"mapped",[648]],[[431,431],"mapped",[432]],[[432,432],"valid"],[[433,433],"mapped",[650]],[[434,434],"mapped",[651]],[[435,435],"mapped",[436]],[[436,436],"valid"],[[437,437],"mapped",[438]],[[438,438],"valid"],[[439,439],"mapped",[658]],[[440,440],"mapped",[441]],[[441,443],"valid"],[[444,444],"mapped",[445]],[[445,451],"valid"],[[452,454],"mapped",[100,382]],[[455,457],"mapped",[108,106]],[[458,460],"mapped",[110,106]],[[461,461],"mapped",[462]],[[462,462],"valid"],[[463,463],"mapped",[464]],[[464,464],"valid"],[[465,465],"mapped",[466]],[[466,466],"valid"],[[467,467],"mapped",[468]],[[468,468],"valid"],[[469,469],"mapped",[470]],[[470,470],"valid"],[[471,471],"mapped",[472]],[[472,472],"valid"],[[473,473],"mapped",[474]],[[474,474],"valid"],[[475,475],"mapped",[476]],[[476,477],"valid"],[[478,478],"mapped",[479]],[[479,479],"valid"],[[480,480],"mapped",[481]],[[481,481],"valid"],[[482,482],"mapped",[483]],[[483,483],"valid"],[[484,484],"mapped",[485]],[[485,485],"valid"],[[486,486],"mapped",[487]],[[487,487],"valid"],[[488,488],"mapped",[489]],[[489,489],"valid"],[[490,490],"mapped",[491]],[[491,491],"valid"],[[492,492],"mapped",[493]],[[493,493],"valid"],[[494,494],"mapped",[495]],[[495,496],"valid"],[[497,499],"mapped",[100,122]],[[500,500],"mapped",[501]],[[501,501],"valid"],[[502,502],"mapped",[405]],[[503,503],"mapped",[447]],[[504,504],"mapped",[505]],[[505,505],"valid"],[[506,506],"mapped",[507]],[[507,507],"valid"],[[508,508],"mapped",[509]],[[509,509],"valid"],[[510,510],"mapped",[511]],[[511,511],"valid"],[[512,512],"mapped",[513]],[[513,513],"valid"],[[514,514],"mapped",[515]],[[515,515],"valid"],[[516,516],"mapped",[517]],[[517,517],"valid"],[[518,518],"mapped",[519]],[[519,519],"valid"],[[520,520],"mapped",[521]],[[521,521],"valid"],[[522,522],"mapped",[523]],[[523,523],"valid"],[[524,524],"mapped",[525]],[[525,525],"valid"],[[526,526],"mapped",[527]],[[527,527],"valid"],[[528,528],"mapped",[529]],[[529,529],"valid"],[[530,530],"mapped",[531]],[[531,531],"valid"],[[532,532],"mapped",[533]],[[533,533],"valid"],[[534,534],"mapped",[535]],[[535,535],"valid"],[[536,536],"mapped",[537]],[[537,537],"valid"],[[538,538],"mapped",[539]],[[539,539],"valid"],[[540,540],"mapped",[541]],[[541,541],"valid"],[[542,542],"mapped",[543]],[[543,543],"valid"],[[544,544],"mapped",[414]],[[545,545],"valid"],[[546,546],"mapped",[547]],[[547,547],"valid"],[[548,548],"mapped",[549]],[[549,549],"valid"],[[550,550],"mapped",[551]],[[551,551],"valid"],[[552,552],"mapped",[553]],[[553,553],"valid"],[[554,554],"mapped",[555]],[[555,555],"valid"],[[556,556],"mapped",[557]],[[557,557],"valid"],[[558,558],"mapped",[559]],[[559,559],"valid"],[[560,560],"mapped",[561]],[[561,561],"valid"],[[562,562],"mapped",[563]],[[563,563],"valid"],[[564,566],"valid"],[[567,569],"valid"],[[570,570],"mapped",[11365]],[[571,571],"mapped",[572]],[[572,572],"valid"],[[573,573],"mapped",[410]],[[574,574],"mapped",[11366]],[[575,576],"valid"],[[577,577],"mapped",[578]],[[578,578],"valid"],[[579,579],"mapped",[384]],[[580,580],"mapped",[649]],[[581,581],"mapped",[652]],[[582,582],"mapped",[583]],[[583,583],"valid"],[[584,584],"mapped",[585]],[[585,585],"valid"],[[586,586],"mapped",[587]],[[587,587],"valid"],[[588,588],"mapped",[589]],[[589,589],"valid"],[[590,590],"mapped",[591]],[[591,591],"valid"],[[592,680],"valid"],[[681,685],"valid"],[[686,687],"valid"],[[688,688],"mapped",[104]],[[689,689],"mapped",[614]],[[690,690],"mapped",[106]],[[691,691],"mapped",[114]],[[692,692],"mapped",[633]],[[693,693],"mapped",[635]],[[694,694],"mapped",[641]],[[695,695],"mapped",[119]],[[696,696],"mapped",[121]],[[697,705],"valid"],[[706,709],"valid",[],"NV8"],[[710,721],"valid"],[[722,727],"valid",[],"NV8"],[[728,728],"disallowed_STD3_mapped",[32,774]],[[729,729],"disallowed_STD3_mapped",[32,775]],[[730,730],"disallowed_STD3_mapped",[32,778]],[[731,731],"disallowed_STD3_mapped",[32,808]],[[732,732],"disallowed_STD3_mapped",[32,771]],[[733,733],"disallowed_STD3_mapped",[32,779]],[[734,734],"valid",[],"NV8"],[[735,735],"valid",[],"NV8"],[[736,736],"mapped",[611]],[[737,737],"mapped",[108]],[[738,738],"mapped",[115]],[[739,739],"mapped",[120]],[[740,740],"mapped",[661]],[[741,745],"valid",[],"NV8"],[[746,747],"valid",[],"NV8"],[[748,748],"valid"],[[749,749],"valid",[],"NV8"],[[750,750],"valid"],[[751,767],"valid",[],"NV8"],[[768,831],"valid"],[[832,832],"mapped",[768]],[[833,833],"mapped",[769]],[[834,834],"valid"],[[835,835],"mapped",[787]],[[836,836],"mapped",[776,769]],[[837,837],"mapped",[953]],[[838,846],"valid"],[[847,847],"ignored"],[[848,855],"valid"],[[856,860],"valid"],[[861,863],"valid"],[[864,865],"valid"],[[866,866],"valid"],[[867,879],"valid"],[[880,880],"mapped",[881]],[[881,881],"valid"],[[882,882],"mapped",[883]],[[883,883],"valid"],[[884,884],"mapped",[697]],[[885,885],"valid"],[[886,886],"mapped",[887]],[[887,887],"valid"],[[888,889],"disallowed"],[[890,890],"disallowed_STD3_mapped",[32,953]],[[891,893],"valid"],[[894,894],"disallowed_STD3_mapped",[59]],[[895,895],"mapped",[1011]],[[896,899],"disallowed"],[[900,900],"disallowed_STD3_mapped",[32,769]],[[901,901],"disallowed_STD3_mapped",[32,776,769]],[[902,902],"mapped",[940]],[[903,903],"mapped",[183]],[[904,904],"mapped",[941]],[[905,905],"mapped",[942]],[[906,906],"mapped",[943]],[[907,907],"disallowed"],[[908,908],"mapped",[972]],[[909,909],"disallowed"],[[910,910],"mapped",[973]],[[911,911],"mapped",[974]],[[912,912],"valid"],[[913,913],"mapped",[945]],[[914,914],"mapped",[946]],[[915,915],"mapped",[947]],[[916,916],"mapped",[948]],[[917,917],"mapped",[949]],[[918,918],"mapped",[950]],[[919,919],"mapped",[951]],[[920,920],"mapped",[952]],[[921,921],"mapped",[953]],[[922,922],"mapped",[954]],[[923,923],"mapped",[955]],[[924,924],"mapped",[956]],[[925,925],"mapped",[957]],[[926,926],"mapped",[958]],[[927,927],"mapped",[959]],[[928,928],"mapped",[960]],[[929,929],"mapped",[961]],[[930,930],"disallowed"],[[931,931],"mapped",[963]],[[932,932],"mapped",[964]],[[933,933],"mapped",[965]],[[934,934],"mapped",[966]],[[935,935],"mapped",[967]],[[936,936],"mapped",[968]],[[937,937],"mapped",[969]],[[938,938],"mapped",[970]],[[939,939],"mapped",[971]],[[940,961],"valid"],[[962,962],"deviation",[963]],[[963,974],"valid"],[[975,975],"mapped",[983]],[[976,976],"mapped",[946]],[[977,977],"mapped",[952]],[[978,978],"mapped",[965]],[[979,979],"mapped",[973]],[[980,980],"mapped",[971]],[[981,981],"mapped",[966]],[[982,982],"mapped",[960]],[[983,983],"valid"],[[984,984],"mapped",[985]],[[985,985],"valid"],[[986,986],"mapped",[987]],[[987,987],"valid"],[[988,988],"mapped",[989]],[[989,989],"valid"],[[990,990],"mapped",[991]],[[991,991],"valid"],[[992,992],"mapped",[993]],[[993,993],"valid"],[[994,994],"mapped",[995]],[[995,995],"valid"],[[996,996],"mapped",[997]],[[997,997],"valid"],[[998,998],"mapped",[999]],[[999,999],"valid"],[[1000,1000],"mapped",[1001]],[[1001,1001],"valid"],[[1002,1002],"mapped",[1003]],[[1003,1003],"valid"],[[1004,1004],"mapped",[1005]],[[1005,1005],"valid"],[[1006,1006],"mapped",[1007]],[[1007,1007],"valid"],[[1008,1008],"mapped",[954]],[[1009,1009],"mapped",[961]],[[1010,1010],"mapped",[963]],[[1011,1011],"valid"],[[1012,1012],"mapped",[952]],[[1013,1013],"mapped",[949]],[[1014,1014],"valid",[],"NV8"],[[1015,1015],"mapped",[1016]],[[1016,1016],"valid"],[[1017,1017],"mapped",[963]],[[1018,1018],"mapped",[1019]],[[1019,1019],"valid"],[[1020,1020],"valid"],[[1021,1021],"mapped",[891]],[[1022,1022],"mapped",[892]],[[1023,1023],"mapped",[893]],[[1024,1024],"mapped",[1104]],[[1025,1025],"mapped",[1105]],[[1026,1026],"mapped",[1106]],[[1027,1027],"mapped",[1107]],[[1028,1028],"mapped",[1108]],[[1029,1029],"mapped",[1109]],[[1030,1030],"mapped",[1110]],[[1031,1031],"mapped",[1111]],[[1032,1032],"mapped",[1112]],[[1033,1033],"mapped",[1113]],[[1034,1034],"mapped",[1114]],[[1035,1035],"mapped",[1115]],[[1036,1036],"mapped",[1116]],[[1037,1037],"mapped",[1117]],[[1038,1038],"mapped",[1118]],[[1039,1039],"mapped",[1119]],[[1040,1040],"mapped",[1072]],[[1041,1041],"mapped",[1073]],[[1042,1042],"mapped",[1074]],[[1043,1043],"mapped",[1075]],[[1044,1044],"mapped",[1076]],[[1045,1045],"mapped",[1077]],[[1046,1046],"mapped",[1078]],[[1047,1047],"mapped",[1079]],[[1048,1048],"mapped",[1080]],[[1049,1049],"mapped",[1081]],[[1050,1050],"mapped",[1082]],[[1051,1051],"mapped",[1083]],[[1052,1052],"mapped",[1084]],[[1053,1053],"mapped",[1085]],[[1054,1054],"mapped",[1086]],[[1055,1055],"mapped",[1087]],[[1056,1056],"mapped",[1088]],[[1057,1057],"mapped",[1089]],[[1058,1058],"mapped",[1090]],[[1059,1059],"mapped",[1091]],[[1060,1060],"mapped",[1092]],[[1061,1061],"mapped",[1093]],[[1062,1062],"mapped",[1094]],[[1063,1063],"mapped",[1095]],[[1064,1064],"mapped",[1096]],[[1065,1065],"mapped",[1097]],[[1066,1066],"mapped",[1098]],[[1067,1067],"mapped",[1099]],[[1068,1068],"mapped",[1100]],[[1069,1069],"mapped",[1101]],[[1070,1070],"mapped",[1102]],[[1071,1071],"mapped",[1103]],[[1072,1103],"valid"],[[1104,1104],"valid"],[[1105,1116],"valid"],[[1117,1117],"valid"],[[1118,1119],"valid"],[[1120,1120],"mapped",[1121]],[[1121,1121],"valid"],[[1122,1122],"mapped",[1123]],[[1123,1123],"valid"],[[1124,1124],"mapped",[1125]],[[1125,1125],"valid"],[[1126,1126],"mapped",[1127]],[[1127,1127],"valid"],[[1128,1128],"mapped",[1129]],[[1129,1129],"valid"],[[1130,1130],"mapped",[1131]],[[1131,1131],"valid"],[[1132,1132],"mapped",[1133]],[[1133,1133],"valid"],[[1134,1134],"mapped",[1135]],[[1135,1135],"valid"],[[1136,1136],"mapped",[1137]],[[1137,1137],"valid"],[[1138,1138],"mapped",[1139]],[[1139,1139],"valid"],[[1140,1140],"mapped",[1141]],[[1141,1141],"valid"],[[1142,1142],"mapped",[1143]],[[1143,1143],"valid"],[[1144,1144],"mapped",[1145]],[[1145,1145],"valid"],[[1146,1146],"mapped",[1147]],[[1147,1147],"valid"],[[1148,1148],"mapped",[1149]],[[1149,1149],"valid"],[[1150,1150],"mapped",[1151]],[[1151,1151],"valid"],[[1152,1152],"mapped",[1153]],[[1153,1153],"valid"],[[1154,1154],"valid",[],"NV8"],[[1155,1158],"valid"],[[1159,1159],"valid"],[[1160,1161],"valid",[],"NV8"],[[1162,1162],"mapped",[1163]],[[1163,1163],"valid"],[[1164,1164],"mapped",[1165]],[[1165,1165],"valid"],[[1166,1166],"mapped",[1167]],[[1167,1167],"valid"],[[1168,1168],"mapped",[1169]],[[1169,1169],"valid"],[[1170,1170],"mapped",[1171]],[[1171,1171],"valid"],[[1172,1172],"mapped",[1173]],[[1173,1173],"valid"],[[1174,1174],"mapped",[1175]],[[1175,1175],"valid"],[[1176,1176],"mapped",[1177]],[[1177,1177],"valid"],[[1178,1178],"mapped",[1179]],[[1179,1179],"valid"],[[1180,1180],"mapped",[1181]],[[1181,1181],"valid"],[[1182,1182],"mapped",[1183]],[[1183,1183],"valid"],[[1184,1184],"mapped",[1185]],[[1185,1185],"valid"],[[1186,1186],"mapped",[1187]],[[1187,1187],"valid"],[[1188,1188],"mapped",[1189]],[[1189,1189],"valid"],[[1190,1190],"mapped",[1191]],[[1191,1191],"valid"],[[1192,1192],"mapped",[1193]],[[1193,1193],"valid"],[[1194,1194],"mapped",[1195]],[[1195,1195],"valid"],[[1196,1196],"mapped",[1197]],[[1197,1197],"valid"],[[1198,1198],"mapped",[1199]],[[1199,1199],"valid"],[[1200,1200],"mapped",[1201]],[[1201,1201],"valid"],[[1202,1202],"mapped",[1203]],[[1203,1203],"valid"],[[1204,1204],"mapped",[1205]],[[1205,1205],"valid"],[[1206,1206],"mapped",[1207]],[[1207,1207],"valid"],[[1208,1208],"mapped",[1209]],[[1209,1209],"valid"],[[1210,1210],"mapped",[1211]],[[1211,1211],"valid"],[[1212,1212],"mapped",[1213]],[[1213,1213],"valid"],[[1214,1214],"mapped",[1215]],[[1215,1215],"valid"],[[1216,1216],"disallowed"],[[1217,1217],"mapped",[1218]],[[1218,1218],"valid"],[[1219,1219],"mapped",[1220]],[[1220,1220],"valid"],[[1221,1221],"mapped",[1222]],[[1222,1222],"valid"],[[1223,1223],"mapped",[1224]],[[1224,1224],"valid"],[[1225,1225],"mapped",[1226]],[[1226,1226],"valid"],[[1227,1227],"mapped",[1228]],[[1228,1228],"valid"],[[1229,1229],"mapped",[1230]],[[1230,1230],"valid"],[[1231,1231],"valid"],[[1232,1232],"mapped",[1233]],[[1233,1233],"valid"],[[1234,1234],"mapped",[1235]],[[1235,1235],"valid"],[[1236,1236],"mapped",[1237]],[[1237,1237],"valid"],[[1238,1238],"mapped",[1239]],[[1239,1239],"valid"],[[1240,1240],"mapped",[1241]],[[1241,1241],"valid"],[[1242,1242],"mapped",[1243]],[[1243,1243],"valid"],[[1244,1244],"mapped",[1245]],[[1245,1245],"valid"],[[1246,1246],"mapped",[1247]],[[1247,1247],"valid"],[[1248,1248],"mapped",[1249]],[[1249,1249],"valid"],[[1250,1250],"mapped",[1251]],[[1251,1251],"valid"],[[1252,1252],"mapped",[1253]],[[1253,1253],"valid"],[[1254,1254],"mapped",[1255]],[[1255,1255],"valid"],[[1256,1256],"mapped",[1257]],[[1257,1257],"valid"],[[1258,1258],"mapped",[1259]],[[1259,1259],"valid"],[[1260,1260],"mapped",[1261]],[[1261,1261],"valid"],[[1262,1262],"mapped",[1263]],[[1263,1263],"valid"],[[1264,1264],"mapped",[1265]],[[1265,1265],"valid"],[[1266,1266],"mapped",[1267]],[[1267,1267],"valid"],[[1268,1268],"mapped",[1269]],[[1269,1269],"valid"],[[1270,1270],"mapped",[1271]],[[1271,1271],"valid"],[[1272,1272],"mapped",[1273]],[[1273,1273],"valid"],[[1274,1274],"mapped",[1275]],[[1275,1275],"valid"],[[1276,1276],"mapped",[1277]],[[1277,1277],"valid"],[[1278,1278],"mapped",[1279]],[[1279,1279],"valid"],[[1280,1280],"mapped",[1281]],[[1281,1281],"valid"],[[1282,1282],"mapped",[1283]],[[1283,1283],"valid"],[[1284,1284],"mapped",[1285]],[[1285,1285],"valid"],[[1286,1286],"mapped",[1287]],[[1287,1287],"valid"],[[1288,1288],"mapped",[1289]],[[1289,1289],"valid"],[[1290,1290],"mapped",[1291]],[[1291,1291],"valid"],[[1292,1292],"mapped",[1293]],[[1293,1293],"valid"],[[1294,1294],"mapped",[1295]],[[1295,1295],"valid"],[[1296,1296],"mapped",[1297]],[[1297,1297],"valid"],[[1298,1298],"mapped",[1299]],[[1299,1299],"valid"],[[1300,1300],"mapped",[1301]],[[1301,1301],"valid"],[[1302,1302],"mapped",[1303]],[[1303,1303],"valid"],[[1304,1304],"mapped",[1305]],[[1305,1305],"valid"],[[1306,1306],"mapped",[1307]],[[1307,1307],"valid"],[[1308,1308],"mapped",[1309]],[[1309,1309],"valid"],[[1310,1310],"mapped",[1311]],[[1311,1311],"valid"],[[1312,1312],"mapped",[1313]],[[1313,1313],"valid"],[[1314,1314],"mapped",[1315]],[[1315,1315],"valid"],[[1316,1316],"mapped",[1317]],[[1317,1317],"valid"],[[1318,1318],"mapped",[1319]],[[1319,1319],"valid"],[[1320,1320],"mapped",[1321]],[[1321,1321],"valid"],[[1322,1322],"mapped",[1323]],[[1323,1323],"valid"],[[1324,1324],"mapped",[1325]],[[1325,1325],"valid"],[[1326,1326],"mapped",[1327]],[[1327,1327],"valid"],[[1328,1328],"disallowed"],[[1329,1329],"mapped",[1377]],[[1330,1330],"mapped",[1378]],[[1331,1331],"mapped",[1379]],[[1332,1332],"mapped",[1380]],[[1333,1333],"mapped",[1381]],[[1334,1334],"mapped",[1382]],[[1335,1335],"mapped",[1383]],[[1336,1336],"mapped",[1384]],[[1337,1337],"mapped",[1385]],[[1338,1338],"mapped",[1386]],[[1339,1339],"mapped",[1387]],[[1340,1340],"mapped",[1388]],[[1341,1341],"mapped",[1389]],[[1342,1342],"mapped",[1390]],[[1343,1343],"mapped",[1391]],[[1344,1344],"mapped",[1392]],[[1345,1345],"mapped",[1393]],[[1346,1346],"mapped",[1394]],[[1347,1347],"mapped",[1395]],[[1348,1348],"mapped",[1396]],[[1349,1349],"mapped",[1397]],[[1350,1350],"mapped",[1398]],[[1351,1351],"mapped",[1399]],[[1352,1352],"mapped",[1400]],[[1353,1353],"mapped",[1401]],[[1354,1354],"mapped",[1402]],[[1355,1355],"mapped",[1403]],[[1356,1356],"mapped",[1404]],[[1357,1357],"mapped",[1405]],[[1358,1358],"mapped",[1406]],[[1359,1359],"mapped",[1407]],[[1360,1360],"mapped",[1408]],[[1361,1361],"mapped",[1409]],[[1362,1362],"mapped",[1410]],[[1363,1363],"mapped",[1411]],[[1364,1364],"mapped",[1412]],[[1365,1365],"mapped",[1413]],[[1366,1366],"mapped",[1414]],[[1367,1368],"disallowed"],[[1369,1369],"valid"],[[1370,1375],"valid",[],"NV8"],[[1376,1376],"disallowed"],[[1377,1414],"valid"],[[1415,1415],"mapped",[1381,1410]],[[1416,1416],"disallowed"],[[1417,1417],"valid",[],"NV8"],[[1418,1418],"valid",[],"NV8"],[[1419,1420],"disallowed"],[[1421,1422],"valid",[],"NV8"],[[1423,1423],"valid",[],"NV8"],[[1424,1424],"disallowed"],[[1425,1441],"valid"],[[1442,1442],"valid"],[[1443,1455],"valid"],[[1456,1465],"valid"],[[1466,1466],"valid"],[[1467,1469],"valid"],[[1470,1470],"valid",[],"NV8"],[[1471,1471],"valid"],[[1472,1472],"valid",[],"NV8"],[[1473,1474],"valid"],[[1475,1475],"valid",[],"NV8"],[[1476,1476],"valid"],[[1477,1477],"valid"],[[1478,1478],"valid",[],"NV8"],[[1479,1479],"valid"],[[1480,1487],"disallowed"],[[1488,1514],"valid"],[[1515,1519],"disallowed"],[[1520,1524],"valid"],[[1525,1535],"disallowed"],[[1536,1539],"disallowed"],[[1540,1540],"disallowed"],[[1541,1541],"disallowed"],[[1542,1546],"valid",[],"NV8"],[[1547,1547],"valid",[],"NV8"],[[1548,1548],"valid",[],"NV8"],[[1549,1551],"valid",[],"NV8"],[[1552,1557],"valid"],[[1558,1562],"valid"],[[1563,1563],"valid",[],"NV8"],[[1564,1564],"disallowed"],[[1565,1565],"disallowed"],[[1566,1566],"valid",[],"NV8"],[[1567,1567],"valid",[],"NV8"],[[1568,1568],"valid"],[[1569,1594],"valid"],[[1595,1599],"valid"],[[1600,1600],"valid",[],"NV8"],[[1601,1618],"valid"],[[1619,1621],"valid"],[[1622,1624],"valid"],[[1625,1630],"valid"],[[1631,1631],"valid"],[[1632,1641],"valid"],[[1642,1645],"valid",[],"NV8"],[[1646,1647],"valid"],[[1648,1652],"valid"],[[1653,1653],"mapped",[1575,1652]],[[1654,1654],"mapped",[1608,1652]],[[1655,1655],"mapped",[1735,1652]],[[1656,1656],"mapped",[1610,1652]],[[1657,1719],"valid"],[[1720,1721],"valid"],[[1722,1726],"valid"],[[1727,1727],"valid"],[[1728,1742],"valid"],[[1743,1743],"valid"],[[1744,1747],"valid"],[[1748,1748],"valid",[],"NV8"],[[1749,1756],"valid"],[[1757,1757],"disallowed"],[[1758,1758],"valid",[],"NV8"],[[1759,1768],"valid"],[[1769,1769],"valid",[],"NV8"],[[1770,1773],"valid"],[[1774,1775],"valid"],[[1776,1785],"valid"],[[1786,1790],"valid"],[[1791,1791],"valid"],[[1792,1805],"valid",[],"NV8"],[[1806,1806],"disallowed"],[[1807,1807],"disallowed"],[[1808,1836],"valid"],[[1837,1839],"valid"],[[1840,1866],"valid"],[[1867,1868],"disallowed"],[[1869,1871],"valid"],[[1872,1901],"valid"],[[1902,1919],"valid"],[[1920,1968],"valid"],[[1969,1969],"valid"],[[1970,1983],"disallowed"],[[1984,2037],"valid"],[[2038,2042],"valid",[],"NV8"],[[2043,2047],"disallowed"],[[2048,2093],"valid"],[[2094,2095],"disallowed"],[[2096,2110],"valid",[],"NV8"],[[2111,2111],"disallowed"],[[2112,2139],"valid"],[[2140,2141],"disallowed"],[[2142,2142],"valid",[],"NV8"],[[2143,2207],"disallowed"],[[2208,2208],"valid"],[[2209,2209],"valid"],[[2210,2220],"valid"],[[2221,2226],"valid"],[[2227,2228],"valid"],[[2229,2274],"disallowed"],[[2275,2275],"valid"],[[2276,2302],"valid"],[[2303,2303],"valid"],[[2304,2304],"valid"],[[2305,2307],"valid"],[[2308,2308],"valid"],[[2309,2361],"valid"],[[2362,2363],"valid"],[[2364,2381],"valid"],[[2382,2382],"valid"],[[2383,2383],"valid"],[[2384,2388],"valid"],[[2389,2389],"valid"],[[2390,2391],"valid"],[[2392,2392],"mapped",[2325,2364]],[[2393,2393],"mapped",[2326,2364]],[[2394,2394],"mapped",[2327,2364]],[[2395,2395],"mapped",[2332,2364]],[[2396,2396],"mapped",[2337,2364]],[[2397,2397],"mapped",[2338,2364]],[[2398,2398],"mapped",[2347,2364]],[[2399,2399],"mapped",[2351,2364]],[[2400,2403],"valid"],[[2404,2405],"valid",[],"NV8"],[[2406,2415],"valid"],[[2416,2416],"valid",[],"NV8"],[[2417,2418],"valid"],[[2419,2423],"valid"],[[2424,2424],"valid"],[[2425,2426],"valid"],[[2427,2428],"valid"],[[2429,2429],"valid"],[[2430,2431],"valid"],[[2432,2432],"valid"],[[2433,2435],"valid"],[[2436,2436],"disallowed"],[[2437,2444],"valid"],[[2445,2446],"disallowed"],[[2447,2448],"valid"],[[2449,2450],"disallowed"],[[2451,2472],"valid"],[[2473,2473],"disallowed"],[[2474,2480],"valid"],[[2481,2481],"disallowed"],[[2482,2482],"valid"],[[2483,2485],"disallowed"],[[2486,2489],"valid"],[[2490,2491],"disallowed"],[[2492,2492],"valid"],[[2493,2493],"valid"],[[2494,2500],"valid"],[[2501,2502],"disallowed"],[[2503,2504],"valid"],[[2505,2506],"disallowed"],[[2507,2509],"valid"],[[2510,2510],"valid"],[[2511,2518],"disallowed"],[[2519,2519],"valid"],[[2520,2523],"disallowed"],[[2524,2524],"mapped",[2465,2492]],[[2525,2525],"mapped",[2466,2492]],[[2526,2526],"disallowed"],[[2527,2527],"mapped",[2479,2492]],[[2528,2531],"valid"],[[2532,2533],"disallowed"],[[2534,2545],"valid"],[[2546,2554],"valid",[],"NV8"],[[2555,2555],"valid",[],"NV8"],[[2556,2560],"disallowed"],[[2561,2561],"valid"],[[2562,2562],"valid"],[[2563,2563],"valid"],[[2564,2564],"disallowed"],[[2565,2570],"valid"],[[2571,2574],"disallowed"],[[2575,2576],"valid"],[[2577,2578],"disallowed"],[[2579,2600],"valid"],[[2601,2601],"disallowed"],[[2602,2608],"valid"],[[2609,2609],"disallowed"],[[2610,2610],"valid"],[[2611,2611],"mapped",[2610,2620]],[[2612,2612],"disallowed"],[[2613,2613],"valid"],[[2614,2614],"mapped",[2616,2620]],[[2615,2615],"disallowed"],[[2616,2617],"valid"],[[2618,2619],"disallowed"],[[2620,2620],"valid"],[[2621,2621],"disallowed"],[[2622,2626],"valid"],[[2627,2630],"disallowed"],[[2631,2632],"valid"],[[2633,2634],"disallowed"],[[2635,2637],"valid"],[[2638,2640],"disallowed"],[[2641,2641],"valid"],[[2642,2648],"disallowed"],[[2649,2649],"mapped",[2582,2620]],[[2650,2650],"mapped",[2583,2620]],[[2651,2651],"mapped",[2588,2620]],[[2652,2652],"valid"],[[2653,2653],"disallowed"],[[2654,2654],"mapped",[2603,2620]],[[2655,2661],"disallowed"],[[2662,2676],"valid"],[[2677,2677],"valid"],[[2678,2688],"disallowed"],[[2689,2691],"valid"],[[2692,2692],"disallowed"],[[2693,2699],"valid"],[[2700,2700],"valid"],[[2701,2701],"valid"],[[2702,2702],"disallowed"],[[2703,2705],"valid"],[[2706,2706],"disallowed"],[[2707,2728],"valid"],[[2729,2729],"disallowed"],[[2730,2736],"valid"],[[2737,2737],"disallowed"],[[2738,2739],"valid"],[[2740,2740],"disallowed"],[[2741,2745],"valid"],[[2746,2747],"disallowed"],[[2748,2757],"valid"],[[2758,2758],"disallowed"],[[2759,2761],"valid"],[[2762,2762],"disallowed"],[[2763,2765],"valid"],[[2766,2767],"disallowed"],[[2768,2768],"valid"],[[2769,2783],"disallowed"],[[2784,2784],"valid"],[[2785,2787],"valid"],[[2788,2789],"disallowed"],[[2790,2799],"valid"],[[2800,2800],"valid",[],"NV8"],[[2801,2801],"valid",[],"NV8"],[[2802,2808],"disallowed"],[[2809,2809],"valid"],[[2810,2816],"disallowed"],[[2817,2819],"valid"],[[2820,2820],"disallowed"],[[2821,2828],"valid"],[[2829,2830],"disallowed"],[[2831,2832],"valid"],[[2833,2834],"disallowed"],[[2835,2856],"valid"],[[2857,2857],"disallowed"],[[2858,2864],"valid"],[[2865,2865],"disallowed"],[[2866,2867],"valid"],[[2868,2868],"disallowed"],[[2869,2869],"valid"],[[2870,2873],"valid"],[[2874,2875],"disallowed"],[[2876,2883],"valid"],[[2884,2884],"valid"],[[2885,2886],"disallowed"],[[2887,2888],"valid"],[[2889,2890],"disallowed"],[[2891,2893],"valid"],[[2894,2901],"disallowed"],[[2902,2903],"valid"],[[2904,2907],"disallowed"],[[2908,2908],"mapped",[2849,2876]],[[2909,2909],"mapped",[2850,2876]],[[2910,2910],"disallowed"],[[2911,2913],"valid"],[[2914,2915],"valid"],[[2916,2917],"disallowed"],[[2918,2927],"valid"],[[2928,2928],"valid",[],"NV8"],[[2929,2929],"valid"],[[2930,2935],"valid",[],"NV8"],[[2936,2945],"disallowed"],[[2946,2947],"valid"],[[2948,2948],"disallowed"],[[2949,2954],"valid"],[[2955,2957],"disallowed"],[[2958,2960],"valid"],[[2961,2961],"disallowed"],[[2962,2965],"valid"],[[2966,2968],"disallowed"],[[2969,2970],"valid"],[[2971,2971],"disallowed"],[[2972,2972],"valid"],[[2973,2973],"disallowed"],[[2974,2975],"valid"],[[2976,2978],"disallowed"],[[2979,2980],"valid"],[[2981,2983],"disallowed"],[[2984,2986],"valid"],[[2987,2989],"disallowed"],[[2990,2997],"valid"],[[2998,2998],"valid"],[[2999,3001],"valid"],[[3002,3005],"disallowed"],[[3006,3010],"valid"],[[3011,3013],"disallowed"],[[3014,3016],"valid"],[[3017,3017],"disallowed"],[[3018,3021],"valid"],[[3022,3023],"disallowed"],[[3024,3024],"valid"],[[3025,3030],"disallowed"],[[3031,3031],"valid"],[[3032,3045],"disallowed"],[[3046,3046],"valid"],[[3047,3055],"valid"],[[3056,3058],"valid",[],"NV8"],[[3059,3066],"valid",[],"NV8"],[[3067,3071],"disallowed"],[[3072,3072],"valid"],[[3073,3075],"valid"],[[3076,3076],"disallowed"],[[3077,3084],"valid"],[[3085,3085],"disallowed"],[[3086,3088],"valid"],[[3089,3089],"disallowed"],[[3090,3112],"valid"],[[3113,3113],"disallowed"],[[3114,3123],"valid"],[[3124,3124],"valid"],[[3125,3129],"valid"],[[3130,3132],"disallowed"],[[3133,3133],"valid"],[[3134,3140],"valid"],[[3141,3141],"disallowed"],[[3142,3144],"valid"],[[3145,3145],"disallowed"],[[3146,3149],"valid"],[[3150,3156],"disallowed"],[[3157,3158],"valid"],[[3159,3159],"disallowed"],[[3160,3161],"valid"],[[3162,3162],"valid"],[[3163,3167],"disallowed"],[[3168,3169],"valid"],[[3170,3171],"valid"],[[3172,3173],"disallowed"],[[3174,3183],"valid"],[[3184,3191],"disallowed"],[[3192,3199],"valid",[],"NV8"],[[3200,3200],"disallowed"],[[3201,3201],"valid"],[[3202,3203],"valid"],[[3204,3204],"disallowed"],[[3205,3212],"valid"],[[3213,3213],"disallowed"],[[3214,3216],"valid"],[[3217,3217],"disallowed"],[[3218,3240],"valid"],[[3241,3241],"disallowed"],[[3242,3251],"valid"],[[3252,3252],"disallowed"],[[3253,3257],"valid"],[[3258,3259],"disallowed"],[[3260,3261],"valid"],[[3262,3268],"valid"],[[3269,3269],"disallowed"],[[3270,3272],"valid"],[[3273,3273],"disallowed"],[[3274,3277],"valid"],[[3278,3284],"disallowed"],[[3285,3286],"valid"],[[3287,3293],"disallowed"],[[3294,3294],"valid"],[[3295,3295],"disallowed"],[[3296,3297],"valid"],[[3298,3299],"valid"],[[3300,3301],"disallowed"],[[3302,3311],"valid"],[[3312,3312],"disallowed"],[[3313,3314],"valid"],[[3315,3328],"disallowed"],[[3329,3329],"valid"],[[3330,3331],"valid"],[[3332,3332],"disallowed"],[[3333,3340],"valid"],[[3341,3341],"disallowed"],[[3342,3344],"valid"],[[3345,3345],"disallowed"],[[3346,3368],"valid"],[[3369,3369],"valid"],[[3370,3385],"valid"],[[3386,3386],"valid"],[[3387,3388],"disallowed"],[[3389,3389],"valid"],[[3390,3395],"valid"],[[3396,3396],"valid"],[[3397,3397],"disallowed"],[[3398,3400],"valid"],[[3401,3401],"disallowed"],[[3402,3405],"valid"],[[3406,3406],"valid"],[[3407,3414],"disallowed"],[[3415,3415],"valid"],[[3416,3422],"disallowed"],[[3423,3423],"valid"],[[3424,3425],"valid"],[[3426,3427],"valid"],[[3428,3429],"disallowed"],[[3430,3439],"valid"],[[3440,3445],"valid",[],"NV8"],[[3446,3448],"disallowed"],[[3449,3449],"valid",[],"NV8"],[[3450,3455],"valid"],[[3456,3457],"disallowed"],[[3458,3459],"valid"],[[3460,3460],"disallowed"],[[3461,3478],"valid"],[[3479,3481],"disallowed"],[[3482,3505],"valid"],[[3506,3506],"disallowed"],[[3507,3515],"valid"],[[3516,3516],"disallowed"],[[3517,3517],"valid"],[[3518,3519],"disallowed"],[[3520,3526],"valid"],[[3527,3529],"disallowed"],[[3530,3530],"valid"],[[3531,3534],"disallowed"],[[3535,3540],"valid"],[[3541,3541],"disallowed"],[[3542,3542],"valid"],[[3543,3543],"disallowed"],[[3544,3551],"valid"],[[3552,3557],"disallowed"],[[3558,3567],"valid"],[[3568,3569],"disallowed"],[[3570,3571],"valid"],[[3572,3572],"valid",[],"NV8"],[[3573,3584],"disallowed"],[[3585,3634],"valid"],[[3635,3635],"mapped",[3661,3634]],[[3636,3642],"valid"],[[3643,3646],"disallowed"],[[3647,3647],"valid",[],"NV8"],[[3648,3662],"valid"],[[3663,3663],"valid",[],"NV8"],[[3664,3673],"valid"],[[3674,3675],"valid",[],"NV8"],[[3676,3712],"disallowed"],[[3713,3714],"valid"],[[3715,3715],"disallowed"],[[3716,3716],"valid"],[[3717,3718],"disallowed"],[[3719,3720],"valid"],[[3721,3721],"disallowed"],[[3722,3722],"valid"],[[3723,3724],"disallowed"],[[3725,3725],"valid"],[[3726,3731],"disallowed"],[[3732,3735],"valid"],[[3736,3736],"disallowed"],[[3737,3743],"valid"],[[3744,3744],"disallowed"],[[3745,3747],"valid"],[[3748,3748],"disallowed"],[[3749,3749],"valid"],[[3750,3750],"disallowed"],[[3751,3751],"valid"],[[3752,3753],"disallowed"],[[3754,3755],"valid"],[[3756,3756],"disallowed"],[[3757,3762],"valid"],[[3763,3763],"mapped",[3789,3762]],[[3764,3769],"valid"],[[3770,3770],"disallowed"],[[3771,3773],"valid"],[[3774,3775],"disallowed"],[[3776,3780],"valid"],[[3781,3781],"disallowed"],[[3782,3782],"valid"],[[3783,3783],"disallowed"],[[3784,3789],"valid"],[[3790,3791],"disallowed"],[[3792,3801],"valid"],[[3802,3803],"disallowed"],[[3804,3804],"mapped",[3755,3737]],[[3805,3805],"mapped",[3755,3745]],[[3806,3807],"valid"],[[3808,3839],"disallowed"],[[3840,3840],"valid"],[[3841,3850],"valid",[],"NV8"],[[3851,3851],"valid"],[[3852,3852],"mapped",[3851]],[[3853,3863],"valid",[],"NV8"],[[3864,3865],"valid"],[[3866,3871],"valid",[],"NV8"],[[3872,3881],"valid"],[[3882,3892],"valid",[],"NV8"],[[3893,3893],"valid"],[[3894,3894],"valid",[],"NV8"],[[3895,3895],"valid"],[[3896,3896],"valid",[],"NV8"],[[3897,3897],"valid"],[[3898,3901],"valid",[],"NV8"],[[3902,3906],"valid"],[[3907,3907],"mapped",[3906,4023]],[[3908,3911],"valid"],[[3912,3912],"disallowed"],[[3913,3916],"valid"],[[3917,3917],"mapped",[3916,4023]],[[3918,3921],"valid"],[[3922,3922],"mapped",[3921,4023]],[[3923,3926],"valid"],[[3927,3927],"mapped",[3926,4023]],[[3928,3931],"valid"],[[3932,3932],"mapped",[3931,4023]],[[3933,3944],"valid"],[[3945,3945],"mapped",[3904,4021]],[[3946,3946],"valid"],[[3947,3948],"valid"],[[3949,3952],"disallowed"],[[3953,3954],"valid"],[[3955,3955],"mapped",[3953,3954]],[[3956,3956],"valid"],[[3957,3957],"mapped",[3953,3956]],[[3958,3958],"mapped",[4018,3968]],[[3959,3959],"mapped",[4018,3953,3968]],[[3960,3960],"mapped",[4019,3968]],[[3961,3961],"mapped",[4019,3953,3968]],[[3962,3968],"valid"],[[3969,3969],"mapped",[3953,3968]],[[3970,3972],"valid"],[[3973,3973],"valid",[],"NV8"],[[3974,3979],"valid"],[[3980,3983],"valid"],[[3984,3986],"valid"],[[3987,3987],"mapped",[3986,4023]],[[3988,3989],"valid"],[[3990,3990],"valid"],[[3991,3991],"valid"],[[3992,3992],"disallowed"],[[3993,3996],"valid"],[[3997,3997],"mapped",[3996,4023]],[[3998,4001],"valid"],[[4002,4002],"mapped",[4001,4023]],[[4003,4006],"valid"],[[4007,4007],"mapped",[4006,4023]],[[4008,4011],"valid"],[[4012,4012],"mapped",[4011,4023]],[[4013,4013],"valid"],[[4014,4016],"valid"],[[4017,4023],"valid"],[[4024,4024],"valid"],[[4025,4025],"mapped",[3984,4021]],[[4026,4028],"valid"],[[4029,4029],"disallowed"],[[4030,4037],"valid",[],"NV8"],[[4038,4038],"valid"],[[4039,4044],"valid",[],"NV8"],[[4045,4045],"disallowed"],[[4046,4046],"valid",[],"NV8"],[[4047,4047],"valid",[],"NV8"],[[4048,4049],"valid",[],"NV8"],[[4050,4052],"valid",[],"NV8"],[[4053,4056],"valid",[],"NV8"],[[4057,4058],"valid",[],"NV8"],[[4059,4095],"disallowed"],[[4096,4129],"valid"],[[4130,4130],"valid"],[[4131,4135],"valid"],[[4136,4136],"valid"],[[4137,4138],"valid"],[[4139,4139],"valid"],[[4140,4146],"valid"],[[4147,4149],"valid"],[[4150,4153],"valid"],[[4154,4159],"valid"],[[4160,4169],"valid"],[[4170,4175],"valid",[],"NV8"],[[4176,4185],"valid"],[[4186,4249],"valid"],[[4250,4253],"valid"],[[4254,4255],"valid",[],"NV8"],[[4256,4293],"disallowed"],[[4294,4294],"disallowed"],[[4295,4295],"mapped",[11559]],[[4296,4300],"disallowed"],[[4301,4301],"mapped",[11565]],[[4302,4303],"disallowed"],[[4304,4342],"valid"],[[4343,4344],"valid"],[[4345,4346],"valid"],[[4347,4347],"valid",[],"NV8"],[[4348,4348],"mapped",[4316]],[[4349,4351],"valid"],[[4352,4441],"valid",[],"NV8"],[[4442,4446],"valid",[],"NV8"],[[4447,4448],"disallowed"],[[4449,4514],"valid",[],"NV8"],[[4515,4519],"valid",[],"NV8"],[[4520,4601],"valid",[],"NV8"],[[4602,4607],"valid",[],"NV8"],[[4608,4614],"valid"],[[4615,4615],"valid"],[[4616,4678],"valid"],[[4679,4679],"valid"],[[4680,4680],"valid"],[[4681,4681],"disallowed"],[[4682,4685],"valid"],[[4686,4687],"disallowed"],[[4688,4694],"valid"],[[4695,4695],"disallowed"],[[4696,4696],"valid"],[[4697,4697],"disallowed"],[[4698,4701],"valid"],[[4702,4703],"disallowed"],[[4704,4742],"valid"],[[4743,4743],"valid"],[[4744,4744],"valid"],[[4745,4745],"disallowed"],[[4746,4749],"valid"],[[4750,4751],"disallowed"],[[4752,4782],"valid"],[[4783,4783],"valid"],[[4784,4784],"valid"],[[4785,4785],"disallowed"],[[4786,4789],"valid"],[[4790,4791],"disallowed"],[[4792,4798],"valid"],[[4799,4799],"disallowed"],[[4800,4800],"valid"],[[4801,4801],"disallowed"],[[4802,4805],"valid"],[[4806,4807],"disallowed"],[[4808,4814],"valid"],[[4815,4815],"valid"],[[4816,4822],"valid"],[[4823,4823],"disallowed"],[[4824,4846],"valid"],[[4847,4847],"valid"],[[4848,4878],"valid"],[[4879,4879],"valid"],[[4880,4880],"valid"],[[4881,4881],"disallowed"],[[4882,4885],"valid"],[[4886,4887],"disallowed"],[[4888,4894],"valid"],[[4895,4895],"valid"],[[4896,4934],"valid"],[[4935,4935],"valid"],[[4936,4954],"valid"],[[4955,4956],"disallowed"],[[4957,4958],"valid"],[[4959,4959],"valid"],[[4960,4960],"valid",[],"NV8"],[[4961,4988],"valid",[],"NV8"],[[4989,4991],"disallowed"],[[4992,5007],"valid"],[[5008,5017],"valid",[],"NV8"],[[5018,5023],"disallowed"],[[5024,5108],"valid"],[[5109,5109],"valid"],[[5110,5111],"disallowed"],[[5112,5112],"mapped",[5104]],[[5113,5113],"mapped",[5105]],[[5114,5114],"mapped",[5106]],[[5115,5115],"mapped",[5107]],[[5116,5116],"mapped",[5108]],[[5117,5117],"mapped",[5109]],[[5118,5119],"disallowed"],[[5120,5120],"valid",[],"NV8"],[[5121,5740],"valid"],[[5741,5742],"valid",[],"NV8"],[[5743,5750],"valid"],[[5751,5759],"valid"],[[5760,5760],"disallowed"],[[5761,5786],"valid"],[[5787,5788],"valid",[],"NV8"],[[5789,5791],"disallowed"],[[5792,5866],"valid"],[[5867,5872],"valid",[],"NV8"],[[5873,5880],"valid"],[[5881,5887],"disallowed"],[[5888,5900],"valid"],[[5901,5901],"disallowed"],[[5902,5908],"valid"],[[5909,5919],"disallowed"],[[5920,5940],"valid"],[[5941,5942],"valid",[],"NV8"],[[5943,5951],"disallowed"],[[5952,5971],"valid"],[[5972,5983],"disallowed"],[[5984,5996],"valid"],[[5997,5997],"disallowed"],[[5998,6000],"valid"],[[6001,6001],"disallowed"],[[6002,6003],"valid"],[[6004,6015],"disallowed"],[[6016,6067],"valid"],[[6068,6069],"disallowed"],[[6070,6099],"valid"],[[6100,6102],"valid",[],"NV8"],[[6103,6103],"valid"],[[6104,6107],"valid",[],"NV8"],[[6108,6108],"valid"],[[6109,6109],"valid"],[[6110,6111],"disallowed"],[[6112,6121],"valid"],[[6122,6127],"disallowed"],[[6128,6137],"valid",[],"NV8"],[[6138,6143],"disallowed"],[[6144,6149],"valid",[],"NV8"],[[6150,6150],"disallowed"],[[6151,6154],"valid",[],"NV8"],[[6155,6157],"ignored"],[[6158,6158],"disallowed"],[[6159,6159],"disallowed"],[[6160,6169],"valid"],[[6170,6175],"disallowed"],[[6176,6263],"valid"],[[6264,6271],"disallowed"],[[6272,6313],"valid"],[[6314,6314],"valid"],[[6315,6319],"disallowed"],[[6320,6389],"valid"],[[6390,6399],"disallowed"],[[6400,6428],"valid"],[[6429,6430],"valid"],[[6431,6431],"disallowed"],[[6432,6443],"valid"],[[6444,6447],"disallowed"],[[6448,6459],"valid"],[[6460,6463],"disallowed"],[[6464,6464],"valid",[],"NV8"],[[6465,6467],"disallowed"],[[6468,6469],"valid",[],"NV8"],[[6470,6509],"valid"],[[6510,6511],"disallowed"],[[6512,6516],"valid"],[[6517,6527],"disallowed"],[[6528,6569],"valid"],[[6570,6571],"valid"],[[6572,6575],"disallowed"],[[6576,6601],"valid"],[[6602,6607],"disallowed"],[[6608,6617],"valid"],[[6618,6618],"valid",[],"XV8"],[[6619,6621],"disallowed"],[[6622,6623],"valid",[],"NV8"],[[6624,6655],"valid",[],"NV8"],[[6656,6683],"valid"],[[6684,6685],"disallowed"],[[6686,6687],"valid",[],"NV8"],[[6688,6750],"valid"],[[6751,6751],"disallowed"],[[6752,6780],"valid"],[[6781,6782],"disallowed"],[[6783,6793],"valid"],[[6794,6799],"disallowed"],[[6800,6809],"valid"],[[6810,6815],"disallowed"],[[6816,6822],"valid",[],"NV8"],[[6823,6823],"valid"],[[6824,6829],"valid",[],"NV8"],[[6830,6831],"disallowed"],[[6832,6845],"valid"],[[6846,6846],"valid",[],"NV8"],[[6847,6911],"disallowed"],[[6912,6987],"valid"],[[6988,6991],"disallowed"],[[6992,7001],"valid"],[[7002,7018],"valid",[],"NV8"],[[7019,7027],"valid"],[[7028,7036],"valid",[],"NV8"],[[7037,7039],"disallowed"],[[7040,7082],"valid"],[[7083,7085],"valid"],[[7086,7097],"valid"],[[7098,7103],"valid"],[[7104,7155],"valid"],[[7156,7163],"disallowed"],[[7164,7167],"valid",[],"NV8"],[[7168,7223],"valid"],[[7224,7226],"disallowed"],[[7227,7231],"valid",[],"NV8"],[[7232,7241],"valid"],[[7242,7244],"disallowed"],[[7245,7293],"valid"],[[7294,7295],"valid",[],"NV8"],[[7296,7359],"disallowed"],[[7360,7367],"valid",[],"NV8"],[[7368,7375],"disallowed"],[[7376,7378],"valid"],[[7379,7379],"valid",[],"NV8"],[[7380,7410],"valid"],[[7411,7414],"valid"],[[7415,7415],"disallowed"],[[7416,7417],"valid"],[[7418,7423],"disallowed"],[[7424,7467],"valid"],[[7468,7468],"mapped",[97]],[[7469,7469],"mapped",[230]],[[7470,7470],"mapped",[98]],[[7471,7471],"valid"],[[7472,7472],"mapped",[100]],[[7473,7473],"mapped",[101]],[[7474,7474],"mapped",[477]],[[7475,7475],"mapped",[103]],[[7476,7476],"mapped",[104]],[[7477,7477],"mapped",[105]],[[7478,7478],"mapped",[106]],[[7479,7479],"mapped",[107]],[[7480,7480],"mapped",[108]],[[7481,7481],"mapped",[109]],[[7482,7482],"mapped",[110]],[[7483,7483],"valid"],[[7484,7484],"mapped",[111]],[[7485,7485],"mapped",[547]],[[7486,7486],"mapped",[112]],[[7487,7487],"mapped",[114]],[[7488,7488],"mapped",[116]],[[7489,7489],"mapped",[117]],[[7490,7490],"mapped",[119]],[[7491,7491],"mapped",[97]],[[7492,7492],"mapped",[592]],[[7493,7493],"mapped",[593]],[[7494,7494],"mapped",[7426]],[[7495,7495],"mapped",[98]],[[7496,7496],"mapped",[100]],[[7497,7497],"mapped",[101]],[[7498,7498],"mapped",[601]],[[7499,7499],"mapped",[603]],[[7500,7500],"mapped",[604]],[[7501,7501],"mapped",[103]],[[7502,7502],"valid"],[[7503,7503],"mapped",[107]],[[7504,7504],"mapped",[109]],[[7505,7505],"mapped",[331]],[[7506,7506],"mapped",[111]],[[7507,7507],"mapped",[596]],[[7508,7508],"mapped",[7446]],[[7509,7509],"mapped",[7447]],[[7510,7510],"mapped",[112]],[[7511,7511],"mapped",[116]],[[7512,7512],"mapped",[117]],[[7513,7513],"mapped",[7453]],[[7514,7514],"mapped",[623]],[[7515,7515],"mapped",[118]],[[7516,7516],"mapped",[7461]],[[7517,7517],"mapped",[946]],[[7518,7518],"mapped",[947]],[[7519,7519],"mapped",[948]],[[7520,7520],"mapped",[966]],[[7521,7521],"mapped",[967]],[[7522,7522],"mapped",[105]],[[7523,7523],"mapped",[114]],[[7524,7524],"mapped",[117]],[[7525,7525],"mapped",[118]],[[7526,7526],"mapped",[946]],[[7527,7527],"mapped",[947]],[[7528,7528],"mapped",[961]],[[7529,7529],"mapped",[966]],[[7530,7530],"mapped",[967]],[[7531,7531],"valid"],[[7532,7543],"valid"],[[7544,7544],"mapped",[1085]],[[7545,7578],"valid"],[[7579,7579],"mapped",[594]],[[7580,7580],"mapped",[99]],[[7581,7581],"mapped",[597]],[[7582,7582],"mapped",[240]],[[7583,7583],"mapped",[604]],[[7584,7584],"mapped",[102]],[[7585,7585],"mapped",[607]],[[7586,7586],"mapped",[609]],[[7587,7587],"mapped",[613]],[[7588,7588],"mapped",[616]],[[7589,7589],"mapped",[617]],[[7590,7590],"mapped",[618]],[[7591,7591],"mapped",[7547]],[[7592,7592],"mapped",[669]],[[7593,7593],"mapped",[621]],[[7594,7594],"mapped",[7557]],[[7595,7595],"mapped",[671]],[[7596,7596],"mapped",[625]],[[7597,7597],"mapped",[624]],[[7598,7598],"mapped",[626]],[[7599,7599],"mapped",[627]],[[7600,7600],"mapped",[628]],[[7601,7601],"mapped",[629]],[[7602,7602],"mapped",[632]],[[7603,7603],"mapped",[642]],[[7604,7604],"mapped",[643]],[[7605,7605],"mapped",[427]],[[7606,7606],"mapped",[649]],[[7607,7607],"mapped",[650]],[[7608,7608],"mapped",[7452]],[[7609,7609],"mapped",[651]],[[7610,7610],"mapped",[652]],[[7611,7611],"mapped",[122]],[[7612,7612],"mapped",[656]],[[7613,7613],"mapped",[657]],[[7614,7614],"mapped",[658]],[[7615,7615],"mapped",[952]],[[7616,7619],"valid"],[[7620,7626],"valid"],[[7627,7654],"valid"],[[7655,7669],"valid"],[[7670,7675],"disallowed"],[[7676,7676],"valid"],[[7677,7677],"valid"],[[7678,7679],"valid"],[[7680,7680],"mapped",[7681]],[[7681,7681],"valid"],[[7682,7682],"mapped",[7683]],[[7683,7683],"valid"],[[7684,7684],"mapped",[7685]],[[7685,7685],"valid"],[[7686,7686],"mapped",[7687]],[[7687,7687],"valid"],[[7688,7688],"mapped",[7689]],[[7689,7689],"valid"],[[7690,7690],"mapped",[7691]],[[7691,7691],"valid"],[[7692,7692],"mapped",[7693]],[[7693,7693],"valid"],[[7694,7694],"mapped",[7695]],[[7695,7695],"valid"],[[7696,7696],"mapped",[7697]],[[7697,7697],"valid"],[[7698,7698],"mapped",[7699]],[[7699,7699],"valid"],[[7700,7700],"mapped",[7701]],[[7701,7701],"valid"],[[7702,7702],"mapped",[7703]],[[7703,7703],"valid"],[[7704,7704],"mapped",[7705]],[[7705,7705],"valid"],[[7706,7706],"mapped",[7707]],[[7707,7707],"valid"],[[7708,7708],"mapped",[7709]],[[7709,7709],"valid"],[[7710,7710],"mapped",[7711]],[[7711,7711],"valid"],[[7712,7712],"mapped",[7713]],[[7713,7713],"valid"],[[7714,7714],"mapped",[7715]],[[7715,7715],"valid"],[[7716,7716],"mapped",[7717]],[[7717,7717],"valid"],[[7718,7718],"mapped",[7719]],[[7719,7719],"valid"],[[7720,7720],"mapped",[7721]],[[7721,7721],"valid"],[[7722,7722],"mapped",[7723]],[[7723,7723],"valid"],[[7724,7724],"mapped",[7725]],[[7725,7725],"valid"],[[7726,7726],"mapped",[7727]],[[7727,7727],"valid"],[[7728,7728],"mapped",[7729]],[[7729,7729],"valid"],[[7730,7730],"mapped",[7731]],[[7731,7731],"valid"],[[7732,7732],"mapped",[7733]],[[7733,7733],"valid"],[[7734,7734],"mapped",[7735]],[[7735,7735],"valid"],[[7736,7736],"mapped",[7737]],[[7737,7737],"valid"],[[7738,7738],"mapped",[7739]],[[7739,7739],"valid"],[[7740,7740],"mapped",[7741]],[[7741,7741],"valid"],[[7742,7742],"mapped",[7743]],[[7743,7743],"valid"],[[7744,7744],"mapped",[7745]],[[7745,7745],"valid"],[[7746,7746],"mapped",[7747]],[[7747,7747],"valid"],[[7748,7748],"mapped",[7749]],[[7749,7749],"valid"],[[7750,7750],"mapped",[7751]],[[7751,7751],"valid"],[[7752,7752],"mapped",[7753]],[[7753,7753],"valid"],[[7754,7754],"mapped",[7755]],[[7755,7755],"valid"],[[7756,7756],"mapped",[7757]],[[7757,7757],"valid"],[[7758,7758],"mapped",[7759]],[[7759,7759],"valid"],[[7760,7760],"mapped",[7761]],[[7761,7761],"valid"],[[7762,7762],"mapped",[7763]],[[7763,7763],"valid"],[[7764,7764],"mapped",[7765]],[[7765,7765],"valid"],[[7766,7766],"mapped",[7767]],[[7767,7767],"valid"],[[7768,7768],"mapped",[7769]],[[7769,7769],"valid"],[[7770,7770],"mapped",[7771]],[[7771,7771],"valid"],[[7772,7772],"mapped",[7773]],[[7773,7773],"valid"],[[7774,7774],"mapped",[7775]],[[7775,7775],"valid"],[[7776,7776],"mapped",[7777]],[[7777,7777],"valid"],[[7778,7778],"mapped",[7779]],[[7779,7779],"valid"],[[7780,7780],"mapped",[7781]],[[7781,7781],"valid"],[[7782,7782],"mapped",[7783]],[[7783,7783],"valid"],[[7784,7784],"mapped",[7785]],[[7785,7785],"valid"],[[7786,7786],"mapped",[7787]],[[7787,7787],"valid"],[[7788,7788],"mapped",[7789]],[[7789,7789],"valid"],[[7790,7790],"mapped",[7791]],[[7791,7791],"valid"],[[7792,7792],"mapped",[7793]],[[7793,7793],"valid"],[[7794,7794],"mapped",[7795]],[[7795,7795],"valid"],[[7796,7796],"mapped",[7797]],[[7797,7797],"valid"],[[7798,7798],"mapped",[7799]],[[7799,7799],"valid"],[[7800,7800],"mapped",[7801]],[[7801,7801],"valid"],[[7802,7802],"mapped",[7803]],[[7803,7803],"valid"],[[7804,7804],"mapped",[7805]],[[7805,7805],"valid"],[[7806,7806],"mapped",[7807]],[[7807,7807],"valid"],[[7808,7808],"mapped",[7809]],[[7809,7809],"valid"],[[7810,7810],"mapped",[7811]],[[7811,7811],"valid"],[[7812,7812],"mapped",[7813]],[[7813,7813],"valid"],[[7814,7814],"mapped",[7815]],[[7815,7815],"valid"],[[7816,7816],"mapped",[7817]],[[7817,7817],"valid"],[[7818,7818],"mapped",[7819]],[[7819,7819],"valid"],[[7820,7820],"mapped",[7821]],[[7821,7821],"valid"],[[7822,7822],"mapped",[7823]],[[7823,7823],"valid"],[[7824,7824],"mapped",[7825]],[[7825,7825],"valid"],[[7826,7826],"mapped",[7827]],[[7827,7827],"valid"],[[7828,7828],"mapped",[7829]],[[7829,7833],"valid"],[[7834,7834],"mapped",[97,702]],[[7835,7835],"mapped",[7777]],[[7836,7837],"valid"],[[7838,7838],"mapped",[115,115]],[[7839,7839],"valid"],[[7840,7840],"mapped",[7841]],[[7841,7841],"valid"],[[7842,7842],"mapped",[7843]],[[7843,7843],"valid"],[[7844,7844],"mapped",[7845]],[[7845,7845],"valid"],[[7846,7846],"mapped",[7847]],[[7847,7847],"valid"],[[7848,7848],"mapped",[7849]],[[7849,7849],"valid"],[[7850,7850],"mapped",[7851]],[[7851,7851],"valid"],[[7852,7852],"mapped",[7853]],[[7853,7853],"valid"],[[7854,7854],"mapped",[7855]],[[7855,7855],"valid"],[[7856,7856],"mapped",[7857]],[[7857,7857],"valid"],[[7858,7858],"mapped",[7859]],[[7859,7859],"valid"],[[7860,7860],"mapped",[7861]],[[7861,7861],"valid"],[[7862,7862],"mapped",[7863]],[[7863,7863],"valid"],[[7864,7864],"mapped",[7865]],[[7865,7865],"valid"],[[7866,7866],"mapped",[7867]],[[7867,7867],"valid"],[[7868,7868],"mapped",[7869]],[[7869,7869],"valid"],[[7870,7870],"mapped",[7871]],[[7871,7871],"valid"],[[7872,7872],"mapped",[7873]],[[7873,7873],"valid"],[[7874,7874],"mapped",[7875]],[[7875,7875],"valid"],[[7876,7876],"mapped",[7877]],[[7877,7877],"valid"],[[7878,7878],"mapped",[7879]],[[7879,7879],"valid"],[[7880,7880],"mapped",[7881]],[[7881,7881],"valid"],[[7882,7882],"mapped",[7883]],[[7883,7883],"valid"],[[7884,7884],"mapped",[7885]],[[7885,7885],"valid"],[[7886,7886],"mapped",[7887]],[[7887,7887],"valid"],[[7888,7888],"mapped",[7889]],[[7889,7889],"valid"],[[7890,7890],"mapped",[7891]],[[7891,7891],"valid"],[[7892,7892],"mapped",[7893]],[[7893,7893],"valid"],[[7894,7894],"mapped",[7895]],[[7895,7895],"valid"],[[7896,7896],"mapped",[7897]],[[7897,7897],"valid"],[[7898,7898],"mapped",[7899]],[[7899,7899],"valid"],[[7900,7900],"mapped",[7901]],[[7901,7901],"valid"],[[7902,7902],"mapped",[7903]],[[7903,7903],"valid"],[[7904,7904],"mapped",[7905]],[[7905,7905],"valid"],[[7906,7906],"mapped",[7907]],[[7907,7907],"valid"],[[7908,7908],"mapped",[7909]],[[7909,7909],"valid"],[[7910,7910],"mapped",[7911]],[[7911,7911],"valid"],[[7912,7912],"mapped",[7913]],[[7913,7913],"valid"],[[7914,7914],"mapped",[7915]],[[7915,7915],"valid"],[[7916,7916],"mapped",[7917]],[[7917,7917],"valid"],[[7918,7918],"mapped",[7919]],[[7919,7919],"valid"],[[7920,7920],"mapped",[7921]],[[7921,7921],"valid"],[[7922,7922],"mapped",[7923]],[[7923,7923],"valid"],[[7924,7924],"mapped",[7925]],[[7925,7925],"valid"],[[7926,7926],"mapped",[7927]],[[7927,7927],"valid"],[[7928,7928],"mapped",[7929]],[[7929,7929],"valid"],[[7930,7930],"mapped",[7931]],[[7931,7931],"valid"],[[7932,7932],"mapped",[7933]],[[7933,7933],"valid"],[[7934,7934],"mapped",[7935]],[[7935,7935],"valid"],[[7936,7943],"valid"],[[7944,7944],"mapped",[7936]],[[7945,7945],"mapped",[7937]],[[7946,7946],"mapped",[7938]],[[7947,7947],"mapped",[7939]],[[7948,7948],"mapped",[7940]],[[7949,7949],"mapped",[7941]],[[7950,7950],"mapped",[7942]],[[7951,7951],"mapped",[7943]],[[7952,7957],"valid"],[[7958,7959],"disallowed"],[[7960,7960],"mapped",[7952]],[[7961,7961],"mapped",[7953]],[[7962,7962],"mapped",[7954]],[[7963,7963],"mapped",[7955]],[[7964,7964],"mapped",[7956]],[[7965,7965],"mapped",[7957]],[[7966,7967],"disallowed"],[[7968,7975],"valid"],[[7976,7976],"mapped",[7968]],[[7977,7977],"mapped",[7969]],[[7978,7978],"mapped",[7970]],[[7979,7979],"mapped",[7971]],[[7980,7980],"mapped",[7972]],[[7981,7981],"mapped",[7973]],[[7982,7982],"mapped",[7974]],[[7983,7983],"mapped",[7975]],[[7984,7991],"valid"],[[7992,7992],"mapped",[7984]],[[7993,7993],"mapped",[7985]],[[7994,7994],"mapped",[7986]],[[7995,7995],"mapped",[7987]],[[7996,7996],"mapped",[7988]],[[7997,7997],"mapped",[7989]],[[7998,7998],"mapped",[7990]],[[7999,7999],"mapped",[7991]],[[8000,8005],"valid"],[[8006,8007],"disallowed"],[[8008,8008],"mapped",[8000]],[[8009,8009],"mapped",[8001]],[[8010,8010],"mapped",[8002]],[[8011,8011],"mapped",[8003]],[[8012,8012],"mapped",[8004]],[[8013,8013],"mapped",[8005]],[[8014,8015],"disallowed"],[[8016,8023],"valid"],[[8024,8024],"disallowed"],[[8025,8025],"mapped",[8017]],[[8026,8026],"disallowed"],[[8027,8027],"mapped",[8019]],[[8028,8028],"disallowed"],[[8029,8029],"mapped",[8021]],[[8030,8030],"disallowed"],[[8031,8031],"mapped",[8023]],[[8032,8039],"valid"],[[8040,8040],"mapped",[8032]],[[8041,8041],"mapped",[8033]],[[8042,8042],"mapped",[8034]],[[8043,8043],"mapped",[8035]],[[8044,8044],"mapped",[8036]],[[8045,8045],"mapped",[8037]],[[8046,8046],"mapped",[8038]],[[8047,8047],"mapped",[8039]],[[8048,8048],"valid"],[[8049,8049],"mapped",[940]],[[8050,8050],"valid"],[[8051,8051],"mapped",[941]],[[8052,8052],"valid"],[[8053,8053],"mapped",[942]],[[8054,8054],"valid"],[[8055,8055],"mapped",[943]],[[8056,8056],"valid"],[[8057,8057],"mapped",[972]],[[8058,8058],"valid"],[[8059,8059],"mapped",[973]],[[8060,8060],"valid"],[[8061,8061],"mapped",[974]],[[8062,8063],"disallowed"],[[8064,8064],"mapped",[7936,953]],[[8065,8065],"mapped",[7937,953]],[[8066,8066],"mapped",[7938,953]],[[8067,8067],"mapped",[7939,953]],[[8068,8068],"mapped",[7940,953]],[[8069,8069],"mapped",[7941,953]],[[8070,8070],"mapped",[7942,953]],[[8071,8071],"mapped",[7943,953]],[[8072,8072],"mapped",[7936,953]],[[8073,8073],"mapped",[7937,953]],[[8074,8074],"mapped",[7938,953]],[[8075,8075],"mapped",[7939,953]],[[8076,8076],"mapped",[7940,953]],[[8077,8077],"mapped",[7941,953]],[[8078,8078],"mapped",[7942,953]],[[8079,8079],"mapped",[7943,953]],[[8080,8080],"mapped",[7968,953]],[[8081,8081],"mapped",[7969,953]],[[8082,8082],"mapped",[7970,953]],[[8083,8083],"mapped",[7971,953]],[[8084,8084],"mapped",[7972,953]],[[8085,8085],"mapped",[7973,953]],[[8086,8086],"mapped",[7974,953]],[[8087,8087],"mapped",[7975,953]],[[8088,8088],"mapped",[7968,953]],[[8089,8089],"mapped",[7969,953]],[[8090,8090],"mapped",[7970,953]],[[8091,8091],"mapped",[7971,953]],[[8092,8092],"mapped",[7972,953]],[[8093,8093],"mapped",[7973,953]],[[8094,8094],"mapped",[7974,953]],[[8095,8095],"mapped",[7975,953]],[[8096,8096],"mapped",[8032,953]],[[8097,8097],"mapped",[8033,953]],[[8098,8098],"mapped",[8034,953]],[[8099,8099],"mapped",[8035,953]],[[8100,8100],"mapped",[8036,953]],[[8101,8101],"mapped",[8037,953]],[[8102,8102],"mapped",[8038,953]],[[8103,8103],"mapped",[8039,953]],[[8104,8104],"mapped",[8032,953]],[[8105,8105],"mapped",[8033,953]],[[8106,8106],"mapped",[8034,953]],[[8107,8107],"mapped",[8035,953]],[[8108,8108],"mapped",[8036,953]],[[8109,8109],"mapped",[8037,953]],[[8110,8110],"mapped",[8038,953]],[[8111,8111],"mapped",[8039,953]],[[8112,8113],"valid"],[[8114,8114],"mapped",[8048,953]],[[8115,8115],"mapped",[945,953]],[[8116,8116],"mapped",[940,953]],[[8117,8117],"disallowed"],[[8118,8118],"valid"],[[8119,8119],"mapped",[8118,953]],[[8120,8120],"mapped",[8112]],[[8121,8121],"mapped",[8113]],[[8122,8122],"mapped",[8048]],[[8123,8123],"mapped",[940]],[[8124,8124],"mapped",[945,953]],[[8125,8125],"disallowed_STD3_mapped",[32,787]],[[8126,8126],"mapped",[953]],[[8127,8127],"disallowed_STD3_mapped",[32,787]],[[8128,8128],"disallowed_STD3_mapped",[32,834]],[[8129,8129],"disallowed_STD3_mapped",[32,776,834]],[[8130,8130],"mapped",[8052,953]],[[8131,8131],"mapped",[951,953]],[[8132,8132],"mapped",[942,953]],[[8133,8133],"disallowed"],[[8134,8134],"valid"],[[8135,8135],"mapped",[8134,953]],[[8136,8136],"mapped",[8050]],[[8137,8137],"mapped",[941]],[[8138,8138],"mapped",[8052]],[[8139,8139],"mapped",[942]],[[8140,8140],"mapped",[951,953]],[[8141,8141],"disallowed_STD3_mapped",[32,787,768]],[[8142,8142],"disallowed_STD3_mapped",[32,787,769]],[[8143,8143],"disallowed_STD3_mapped",[32,787,834]],[[8144,8146],"valid"],[[8147,8147],"mapped",[912]],[[8148,8149],"disallowed"],[[8150,8151],"valid"],[[8152,8152],"mapped",[8144]],[[8153,8153],"mapped",[8145]],[[8154,8154],"mapped",[8054]],[[8155,8155],"mapped",[943]],[[8156,8156],"disallowed"],[[8157,8157],"disallowed_STD3_mapped",[32,788,768]],[[8158,8158],"disallowed_STD3_mapped",[32,788,769]],[[8159,8159],"disallowed_STD3_mapped",[32,788,834]],[[8160,8162],"valid"],[[8163,8163],"mapped",[944]],[[8164,8167],"valid"],[[8168,8168],"mapped",[8160]],[[8169,8169],"mapped",[8161]],[[8170,8170],"mapped",[8058]],[[8171,8171],"mapped",[973]],[[8172,8172],"mapped",[8165]],[[8173,8173],"disallowed_STD3_mapped",[32,776,768]],[[8174,8174],"disallowed_STD3_mapped",[32,776,769]],[[8175,8175],"disallowed_STD3_mapped",[96]],[[8176,8177],"disallowed"],[[8178,8178],"mapped",[8060,953]],[[8179,8179],"mapped",[969,953]],[[8180,8180],"mapped",[974,953]],[[8181,8181],"disallowed"],[[8182,8182],"valid"],[[8183,8183],"mapped",[8182,953]],[[8184,8184],"mapped",[8056]],[[8185,8185],"mapped",[972]],[[8186,8186],"mapped",[8060]],[[8187,8187],"mapped",[974]],[[8188,8188],"mapped",[969,953]],[[8189,8189],"disallowed_STD3_mapped",[32,769]],[[8190,8190],"disallowed_STD3_mapped",[32,788]],[[8191,8191],"disallowed"],[[8192,8202],"disallowed_STD3_mapped",[32]],[[8203,8203],"ignored"],[[8204,8205],"deviation",[]],[[8206,8207],"disallowed"],[[8208,8208],"valid",[],"NV8"],[[8209,8209],"mapped",[8208]],[[8210,8214],"valid",[],"NV8"],[[8215,8215],"disallowed_STD3_mapped",[32,819]],[[8216,8227],"valid",[],"NV8"],[[8228,8230],"disallowed"],[[8231,8231],"valid",[],"NV8"],[[8232,8238],"disallowed"],[[8239,8239],"disallowed_STD3_mapped",[32]],[[8240,8242],"valid",[],"NV8"],[[8243,8243],"mapped",[8242,8242]],[[8244,8244],"mapped",[8242,8242,8242]],[[8245,8245],"valid",[],"NV8"],[[8246,8246],"mapped",[8245,8245]],[[8247,8247],"mapped",[8245,8245,8245]],[[8248,8251],"valid",[],"NV8"],[[8252,8252],"disallowed_STD3_mapped",[33,33]],[[8253,8253],"valid",[],"NV8"],[[8254,8254],"disallowed_STD3_mapped",[32,773]],[[8255,8262],"valid",[],"NV8"],[[8263,8263],"disallowed_STD3_mapped",[63,63]],[[8264,8264],"disallowed_STD3_mapped",[63,33]],[[8265,8265],"disallowed_STD3_mapped",[33,63]],[[8266,8269],"valid",[],"NV8"],[[8270,8274],"valid",[],"NV8"],[[8275,8276],"valid",[],"NV8"],[[8277,8278],"valid",[],"NV8"],[[8279,8279],"mapped",[8242,8242,8242,8242]],[[8280,8286],"valid",[],"NV8"],[[8287,8287],"disallowed_STD3_mapped",[32]],[[8288,8288],"ignored"],[[8289,8291],"disallowed"],[[8292,8292],"ignored"],[[8293,8293],"disallowed"],[[8294,8297],"disallowed"],[[8298,8303],"disallowed"],[[8304,8304],"mapped",[48]],[[8305,8305],"mapped",[105]],[[8306,8307],"disallowed"],[[8308,8308],"mapped",[52]],[[8309,8309],"mapped",[53]],[[8310,8310],"mapped",[54]],[[8311,8311],"mapped",[55]],[[8312,8312],"mapped",[56]],[[8313,8313],"mapped",[57]],[[8314,8314],"disallowed_STD3_mapped",[43]],[[8315,8315],"mapped",[8722]],[[8316,8316],"disallowed_STD3_mapped",[61]],[[8317,8317],"disallowed_STD3_mapped",[40]],[[8318,8318],"disallowed_STD3_mapped",[41]],[[8319,8319],"mapped",[110]],[[8320,8320],"mapped",[48]],[[8321,8321],"mapped",[49]],[[8322,8322],"mapped",[50]],[[8323,8323],"mapped",[51]],[[8324,8324],"mapped",[52]],[[8325,8325],"mapped",[53]],[[8326,8326],"mapped",[54]],[[8327,8327],"mapped",[55]],[[8328,8328],"mapped",[56]],[[8329,8329],"mapped",[57]],[[8330,8330],"disallowed_STD3_mapped",[43]],[[8331,8331],"mapped",[8722]],[[8332,8332],"disallowed_STD3_mapped",[61]],[[8333,8333],"disallowed_STD3_mapped",[40]],[[8334,8334],"disallowed_STD3_mapped",[41]],[[8335,8335],"disallowed"],[[8336,8336],"mapped",[97]],[[8337,8337],"mapped",[101]],[[8338,8338],"mapped",[111]],[[8339,8339],"mapped",[120]],[[8340,8340],"mapped",[601]],[[8341,8341],"mapped",[104]],[[8342,8342],"mapped",[107]],[[8343,8343],"mapped",[108]],[[8344,8344],"mapped",[109]],[[8345,8345],"mapped",[110]],[[8346,8346],"mapped",[112]],[[8347,8347],"mapped",[115]],[[8348,8348],"mapped",[116]],[[8349,8351],"disallowed"],[[8352,8359],"valid",[],"NV8"],[[8360,8360],"mapped",[114,115]],[[8361,8362],"valid",[],"NV8"],[[8363,8363],"valid",[],"NV8"],[[8364,8364],"valid",[],"NV8"],[[8365,8367],"valid",[],"NV8"],[[8368,8369],"valid",[],"NV8"],[[8370,8373],"valid",[],"NV8"],[[8374,8376],"valid",[],"NV8"],[[8377,8377],"valid",[],"NV8"],[[8378,8378],"valid",[],"NV8"],[[8379,8381],"valid",[],"NV8"],[[8382,8382],"valid",[],"NV8"],[[8383,8399],"disallowed"],[[8400,8417],"valid",[],"NV8"],[[8418,8419],"valid",[],"NV8"],[[8420,8426],"valid",[],"NV8"],[[8427,8427],"valid",[],"NV8"],[[8428,8431],"valid",[],"NV8"],[[8432,8432],"valid",[],"NV8"],[[8433,8447],"disallowed"],[[8448,8448],"disallowed_STD3_mapped",[97,47,99]],[[8449,8449],"disallowed_STD3_mapped",[97,47,115]],[[8450,8450],"mapped",[99]],[[8451,8451],"mapped",[176,99]],[[8452,8452],"valid",[],"NV8"],[[8453,8453],"disallowed_STD3_mapped",[99,47,111]],[[8454,8454],"disallowed_STD3_mapped",[99,47,117]],[[8455,8455],"mapped",[603]],[[8456,8456],"valid",[],"NV8"],[[8457,8457],"mapped",[176,102]],[[8458,8458],"mapped",[103]],[[8459,8462],"mapped",[104]],[[8463,8463],"mapped",[295]],[[8464,8465],"mapped",[105]],[[8466,8467],"mapped",[108]],[[8468,8468],"valid",[],"NV8"],[[8469,8469],"mapped",[110]],[[8470,8470],"mapped",[110,111]],[[8471,8472],"valid",[],"NV8"],[[8473,8473],"mapped",[112]],[[8474,8474],"mapped",[113]],[[8475,8477],"mapped",[114]],[[8478,8479],"valid",[],"NV8"],[[8480,8480],"mapped",[115,109]],[[8481,8481],"mapped",[116,101,108]],[[8482,8482],"mapped",[116,109]],[[8483,8483],"valid",[],"NV8"],[[8484,8484],"mapped",[122]],[[8485,8485],"valid",[],"NV8"],[[8486,8486],"mapped",[969]],[[8487,8487],"valid",[],"NV8"],[[8488,8488],"mapped",[122]],[[8489,8489],"valid",[],"NV8"],[[8490,8490],"mapped",[107]],[[8491,8491],"mapped",[229]],[[8492,8492],"mapped",[98]],[[8493,8493],"mapped",[99]],[[8494,8494],"valid",[],"NV8"],[[8495,8496],"mapped",[101]],[[8497,8497],"mapped",[102]],[[8498,8498],"disallowed"],[[8499,8499],"mapped",[109]],[[8500,8500],"mapped",[111]],[[8501,8501],"mapped",[1488]],[[8502,8502],"mapped",[1489]],[[8503,8503],"mapped",[1490]],[[8504,8504],"mapped",[1491]],[[8505,8505],"mapped",[105]],[[8506,8506],"valid",[],"NV8"],[[8507,8507],"mapped",[102,97,120]],[[8508,8508],"mapped",[960]],[[8509,8510],"mapped",[947]],[[8511,8511],"mapped",[960]],[[8512,8512],"mapped",[8721]],[[8513,8516],"valid",[],"NV8"],[[8517,8518],"mapped",[100]],[[8519,8519],"mapped",[101]],[[8520,8520],"mapped",[105]],[[8521,8521],"mapped",[106]],[[8522,8523],"valid",[],"NV8"],[[8524,8524],"valid",[],"NV8"],[[8525,8525],"valid",[],"NV8"],[[8526,8526],"valid"],[[8527,8527],"valid",[],"NV8"],[[8528,8528],"mapped",[49,8260,55]],[[8529,8529],"mapped",[49,8260,57]],[[8530,8530],"mapped",[49,8260,49,48]],[[8531,8531],"mapped",[49,8260,51]],[[8532,8532],"mapped",[50,8260,51]],[[8533,8533],"mapped",[49,8260,53]],[[8534,8534],"mapped",[50,8260,53]],[[8535,8535],"mapped",[51,8260,53]],[[8536,8536],"mapped",[52,8260,53]],[[8537,8537],"mapped",[49,8260,54]],[[8538,8538],"mapped",[53,8260,54]],[[8539,8539],"mapped",[49,8260,56]],[[8540,8540],"mapped",[51,8260,56]],[[8541,8541],"mapped",[53,8260,56]],[[8542,8542],"mapped",[55,8260,56]],[[8543,8543],"mapped",[49,8260]],[[8544,8544],"mapped",[105]],[[8545,8545],"mapped",[105,105]],[[8546,8546],"mapped",[105,105,105]],[[8547,8547],"mapped",[105,118]],[[8548,8548],"mapped",[118]],[[8549,8549],"mapped",[118,105]],[[8550,8550],"mapped",[118,105,105]],[[8551,8551],"mapped",[118,105,105,105]],[[8552,8552],"mapped",[105,120]],[[8553,8553],"mapped",[120]],[[8554,8554],"mapped",[120,105]],[[8555,8555],"mapped",[120,105,105]],[[8556,8556],"mapped",[108]],[[8557,8557],"mapped",[99]],[[8558,8558],"mapped",[100]],[[8559,8559],"mapped",[109]],[[8560,8560],"mapped",[105]],[[8561,8561],"mapped",[105,105]],[[8562,8562],"mapped",[105,105,105]],[[8563,8563],"mapped",[105,118]],[[8564,8564],"mapped",[118]],[[8565,8565],"mapped",[118,105]],[[8566,8566],"mapped",[118,105,105]],[[8567,8567],"mapped",[118,105,105,105]],[[8568,8568],"mapped",[105,120]],[[8569,8569],"mapped",[120]],[[8570,8570],"mapped",[120,105]],[[8571,8571],"mapped",[120,105,105]],[[8572,8572],"mapped",[108]],[[8573,8573],"mapped",[99]],[[8574,8574],"mapped",[100]],[[8575,8575],"mapped",[109]],[[8576,8578],"valid",[],"NV8"],[[8579,8579],"disallowed"],[[8580,8580],"valid"],[[8581,8584],"valid",[],"NV8"],[[8585,8585],"mapped",[48,8260,51]],[[8586,8587],"valid",[],"NV8"],[[8588,8591],"disallowed"],[[8592,8682],"valid",[],"NV8"],[[8683,8691],"valid",[],"NV8"],[[8692,8703],"valid",[],"NV8"],[[8704,8747],"valid",[],"NV8"],[[8748,8748],"mapped",[8747,8747]],[[8749,8749],"mapped",[8747,8747,8747]],[[8750,8750],"valid",[],"NV8"],[[8751,8751],"mapped",[8750,8750]],[[8752,8752],"mapped",[8750,8750,8750]],[[8753,8799],"valid",[],"NV8"],[[8800,8800],"disallowed_STD3_valid"],[[8801,8813],"valid",[],"NV8"],[[8814,8815],"disallowed_STD3_valid"],[[8816,8945],"valid",[],"NV8"],[[8946,8959],"valid",[],"NV8"],[[8960,8960],"valid",[],"NV8"],[[8961,8961],"valid",[],"NV8"],[[8962,9000],"valid",[],"NV8"],[[9001,9001],"mapped",[12296]],[[9002,9002],"mapped",[12297]],[[9003,9082],"valid",[],"NV8"],[[9083,9083],"valid",[],"NV8"],[[9084,9084],"valid",[],"NV8"],[[9085,9114],"valid",[],"NV8"],[[9115,9166],"valid",[],"NV8"],[[9167,9168],"valid",[],"NV8"],[[9169,9179],"valid",[],"NV8"],[[9180,9191],"valid",[],"NV8"],[[9192,9192],"valid",[],"NV8"],[[9193,9203],"valid",[],"NV8"],[[9204,9210],"valid",[],"NV8"],[[9211,9215],"disallowed"],[[9216,9252],"valid",[],"NV8"],[[9253,9254],"valid",[],"NV8"],[[9255,9279],"disallowed"],[[9280,9290],"valid",[],"NV8"],[[9291,9311],"disallowed"],[[9312,9312],"mapped",[49]],[[9313,9313],"mapped",[50]],[[9314,9314],"mapped",[51]],[[9315,9315],"mapped",[52]],[[9316,9316],"mapped",[53]],[[9317,9317],"mapped",[54]],[[9318,9318],"mapped",[55]],[[9319,9319],"mapped",[56]],[[9320,9320],"mapped",[57]],[[9321,9321],"mapped",[49,48]],[[9322,9322],"mapped",[49,49]],[[9323,9323],"mapped",[49,50]],[[9324,9324],"mapped",[49,51]],[[9325,9325],"mapped",[49,52]],[[9326,9326],"mapped",[49,53]],[[9327,9327],"mapped",[49,54]],[[9328,9328],"mapped",[49,55]],[[9329,9329],"mapped",[49,56]],[[9330,9330],"mapped",[49,57]],[[9331,9331],"mapped",[50,48]],[[9332,9332],"disallowed_STD3_mapped",[40,49,41]],[[9333,9333],"disallowed_STD3_mapped",[40,50,41]],[[9334,9334],"disallowed_STD3_mapped",[40,51,41]],[[9335,9335],"disallowed_STD3_mapped",[40,52,41]],[[9336,9336],"disallowed_STD3_mapped",[40,53,41]],[[9337,9337],"disallowed_STD3_mapped",[40,54,41]],[[9338,9338],"disallowed_STD3_mapped",[40,55,41]],[[9339,9339],"disallowed_STD3_mapped",[40,56,41]],[[9340,9340],"disallowed_STD3_mapped",[40,57,41]],[[9341,9341],"disallowed_STD3_mapped",[40,49,48,41]],[[9342,9342],"disallowed_STD3_mapped",[40,49,49,41]],[[9343,9343],"disallowed_STD3_mapped",[40,49,50,41]],[[9344,9344],"disallowed_STD3_mapped",[40,49,51,41]],[[9345,9345],"disallowed_STD3_mapped",[40,49,52,41]],[[9346,9346],"disallowed_STD3_mapped",[40,49,53,41]],[[9347,9347],"disallowed_STD3_mapped",[40,49,54,41]],[[9348,9348],"disallowed_STD3_mapped",[40,49,55,41]],[[9349,9349],"disallowed_STD3_mapped",[40,49,56,41]],[[9350,9350],"disallowed_STD3_mapped",[40,49,57,41]],[[9351,9351],"disallowed_STD3_mapped",[40,50,48,41]],[[9352,9371],"disallowed"],[[9372,9372],"disallowed_STD3_mapped",[40,97,41]],[[9373,9373],"disallowed_STD3_mapped",[40,98,41]],[[9374,9374],"disallowed_STD3_mapped",[40,99,41]],[[9375,9375],"disallowed_STD3_mapped",[40,100,41]],[[9376,9376],"disallowed_STD3_mapped",[40,101,41]],[[9377,9377],"disallowed_STD3_mapped",[40,102,41]],[[9378,9378],"disallowed_STD3_mapped",[40,103,41]],[[9379,9379],"disallowed_STD3_mapped",[40,104,41]],[[9380,9380],"disallowed_STD3_mapped",[40,105,41]],[[9381,9381],"disallowed_STD3_mapped",[40,106,41]],[[9382,9382],"disallowed_STD3_mapped",[40,107,41]],[[9383,9383],"disallowed_STD3_mapped",[40,108,41]],[[9384,9384],"disallowed_STD3_mapped",[40,109,41]],[[9385,9385],"disallowed_STD3_mapped",[40,110,41]],[[9386,9386],"disallowed_STD3_mapped",[40,111,41]],[[9387,9387],"disallowed_STD3_mapped",[40,112,41]],[[9388,9388],"disallowed_STD3_mapped",[40,113,41]],[[9389,9389],"disallowed_STD3_mapped",[40,114,41]],[[9390,9390],"disallowed_STD3_mapped",[40,115,41]],[[9391,9391],"disallowed_STD3_mapped",[40,116,41]],[[9392,9392],"disallowed_STD3_mapped",[40,117,41]],[[9393,9393],"disallowed_STD3_mapped",[40,118,41]],[[9394,9394],"disallowed_STD3_mapped",[40,119,41]],[[9395,9395],"disallowed_STD3_mapped",[40,120,41]],[[9396,9396],"disallowed_STD3_mapped",[40,121,41]],[[9397,9397],"disallowed_STD3_mapped",[40,122,41]],[[9398,9398],"mapped",[97]],[[9399,9399],"mapped",[98]],[[9400,9400],"mapped",[99]],[[9401,9401],"mapped",[100]],[[9402,9402],"mapped",[101]],[[9403,9403],"mapped",[102]],[[9404,9404],"mapped",[103]],[[9405,9405],"mapped",[104]],[[9406,9406],"mapped",[105]],[[9407,9407],"mapped",[106]],[[9408,9408],"mapped",[107]],[[9409,9409],"mapped",[108]],[[9410,9410],"mapped",[109]],[[9411,9411],"mapped",[110]],[[9412,9412],"mapped",[111]],[[9413,9413],"mapped",[112]],[[9414,9414],"mapped",[113]],[[9415,9415],"mapped",[114]],[[9416,9416],"mapped",[115]],[[9417,9417],"mapped",[116]],[[9418,9418],"mapped",[117]],[[9419,9419],"mapped",[118]],[[9420,9420],"mapped",[119]],[[9421,9421],"mapped",[120]],[[9422,9422],"mapped",[121]],[[9423,9423],"mapped",[122]],[[9424,9424],"mapped",[97]],[[9425,9425],"mapped",[98]],[[9426,9426],"mapped",[99]],[[9427,9427],"mapped",[100]],[[9428,9428],"mapped",[101]],[[9429,9429],"mapped",[102]],[[9430,9430],"mapped",[103]],[[9431,9431],"mapped",[104]],[[9432,9432],"mapped",[105]],[[9433,9433],"mapped",[106]],[[9434,9434],"mapped",[107]],[[9435,9435],"mapped",[108]],[[9436,9436],"mapped",[109]],[[9437,9437],"mapped",[110]],[[9438,9438],"mapped",[111]],[[9439,9439],"mapped",[112]],[[9440,9440],"mapped",[113]],[[9441,9441],"mapped",[114]],[[9442,9442],"mapped",[115]],[[9443,9443],"mapped",[116]],[[9444,9444],"mapped",[117]],[[9445,9445],"mapped",[118]],[[9446,9446],"mapped",[119]],[[9447,9447],"mapped",[120]],[[9448,9448],"mapped",[121]],[[9449,9449],"mapped",[122]],[[9450,9450],"mapped",[48]],[[9451,9470],"valid",[],"NV8"],[[9471,9471],"valid",[],"NV8"],[[9472,9621],"valid",[],"NV8"],[[9622,9631],"valid",[],"NV8"],[[9632,9711],"valid",[],"NV8"],[[9712,9719],"valid",[],"NV8"],[[9720,9727],"valid",[],"NV8"],[[9728,9747],"valid",[],"NV8"],[[9748,9749],"valid",[],"NV8"],[[9750,9751],"valid",[],"NV8"],[[9752,9752],"valid",[],"NV8"],[[9753,9753],"valid",[],"NV8"],[[9754,9839],"valid",[],"NV8"],[[9840,9841],"valid",[],"NV8"],[[9842,9853],"valid",[],"NV8"],[[9854,9855],"valid",[],"NV8"],[[9856,9865],"valid",[],"NV8"],[[9866,9873],"valid",[],"NV8"],[[9874,9884],"valid",[],"NV8"],[[9885,9885],"valid",[],"NV8"],[[9886,9887],"valid",[],"NV8"],[[9888,9889],"valid",[],"NV8"],[[9890,9905],"valid",[],"NV8"],[[9906,9906],"valid",[],"NV8"],[[9907,9916],"valid",[],"NV8"],[[9917,9919],"valid",[],"NV8"],[[9920,9923],"valid",[],"NV8"],[[9924,9933],"valid",[],"NV8"],[[9934,9934],"valid",[],"NV8"],[[9935,9953],"valid",[],"NV8"],[[9954,9954],"valid",[],"NV8"],[[9955,9955],"valid",[],"NV8"],[[9956,9959],"valid",[],"NV8"],[[9960,9983],"valid",[],"NV8"],[[9984,9984],"valid",[],"NV8"],[[9985,9988],"valid",[],"NV8"],[[9989,9989],"valid",[],"NV8"],[[9990,9993],"valid",[],"NV8"],[[9994,9995],"valid",[],"NV8"],[[9996,10023],"valid",[],"NV8"],[[10024,10024],"valid",[],"NV8"],[[10025,10059],"valid",[],"NV8"],[[10060,10060],"valid",[],"NV8"],[[10061,10061],"valid",[],"NV8"],[[10062,10062],"valid",[],"NV8"],[[10063,10066],"valid",[],"NV8"],[[10067,10069],"valid",[],"NV8"],[[10070,10070],"valid",[],"NV8"],[[10071,10071],"valid",[],"NV8"],[[10072,10078],"valid",[],"NV8"],[[10079,10080],"valid",[],"NV8"],[[10081,10087],"valid",[],"NV8"],[[10088,10101],"valid",[],"NV8"],[[10102,10132],"valid",[],"NV8"],[[10133,10135],"valid",[],"NV8"],[[10136,10159],"valid",[],"NV8"],[[10160,10160],"valid",[],"NV8"],[[10161,10174],"valid",[],"NV8"],[[10175,10175],"valid",[],"NV8"],[[10176,10182],"valid",[],"NV8"],[[10183,10186],"valid",[],"NV8"],[[10187,10187],"valid",[],"NV8"],[[10188,10188],"valid",[],"NV8"],[[10189,10189],"valid",[],"NV8"],[[10190,10191],"valid",[],"NV8"],[[10192,10219],"valid",[],"NV8"],[[10220,10223],"valid",[],"NV8"],[[10224,10239],"valid",[],"NV8"],[[10240,10495],"valid",[],"NV8"],[[10496,10763],"valid",[],"NV8"],[[10764,10764],"mapped",[8747,8747,8747,8747]],[[10765,10867],"valid",[],"NV8"],[[10868,10868],"disallowed_STD3_mapped",[58,58,61]],[[10869,10869],"disallowed_STD3_mapped",[61,61]],[[10870,10870],"disallowed_STD3_mapped",[61,61,61]],[[10871,10971],"valid",[],"NV8"],[[10972,10972],"mapped",[10973,824]],[[10973,11007],"valid",[],"NV8"],[[11008,11021],"valid",[],"NV8"],[[11022,11027],"valid",[],"NV8"],[[11028,11034],"valid",[],"NV8"],[[11035,11039],"valid",[],"NV8"],[[11040,11043],"valid",[],"NV8"],[[11044,11084],"valid",[],"NV8"],[[11085,11087],"valid",[],"NV8"],[[11088,11092],"valid",[],"NV8"],[[11093,11097],"valid",[],"NV8"],[[11098,11123],"valid",[],"NV8"],[[11124,11125],"disallowed"],[[11126,11157],"valid",[],"NV8"],[[11158,11159],"disallowed"],[[11160,11193],"valid",[],"NV8"],[[11194,11196],"disallowed"],[[11197,11208],"valid",[],"NV8"],[[11209,11209],"disallowed"],[[11210,11217],"valid",[],"NV8"],[[11218,11243],"disallowed"],[[11244,11247],"valid",[],"NV8"],[[11248,11263],"disallowed"],[[11264,11264],"mapped",[11312]],[[11265,11265],"mapped",[11313]],[[11266,11266],"mapped",[11314]],[[11267,11267],"mapped",[11315]],[[11268,11268],"mapped",[11316]],[[11269,11269],"mapped",[11317]],[[11270,11270],"mapped",[11318]],[[11271,11271],"mapped",[11319]],[[11272,11272],"mapped",[11320]],[[11273,11273],"mapped",[11321]],[[11274,11274],"mapped",[11322]],[[11275,11275],"mapped",[11323]],[[11276,11276],"mapped",[11324]],[[11277,11277],"mapped",[11325]],[[11278,11278],"mapped",[11326]],[[11279,11279],"mapped",[11327]],[[11280,11280],"mapped",[11328]],[[11281,11281],"mapped",[11329]],[[11282,11282],"mapped",[11330]],[[11283,11283],"mapped",[11331]],[[11284,11284],"mapped",[11332]],[[11285,11285],"mapped",[11333]],[[11286,11286],"mapped",[11334]],[[11287,11287],"mapped",[11335]],[[11288,11288],"mapped",[11336]],[[11289,11289],"mapped",[11337]],[[11290,11290],"mapped",[11338]],[[11291,11291],"mapped",[11339]],[[11292,11292],"mapped",[11340]],[[11293,11293],"mapped",[11341]],[[11294,11294],"mapped",[11342]],[[11295,11295],"mapped",[11343]],[[11296,11296],"mapped",[11344]],[[11297,11297],"mapped",[11345]],[[11298,11298],"mapped",[11346]],[[11299,11299],"mapped",[11347]],[[11300,11300],"mapped",[11348]],[[11301,11301],"mapped",[11349]],[[11302,11302],"mapped",[11350]],[[11303,11303],"mapped",[11351]],[[11304,11304],"mapped",[11352]],[[11305,11305],"mapped",[11353]],[[11306,11306],"mapped",[11354]],[[11307,11307],"mapped",[11355]],[[11308,11308],"mapped",[11356]],[[11309,11309],"mapped",[11357]],[[11310,11310],"mapped",[11358]],[[11311,11311],"disallowed"],[[11312,11358],"valid"],[[11359,11359],"disallowed"],[[11360,11360],"mapped",[11361]],[[11361,11361],"valid"],[[11362,11362],"mapped",[619]],[[11363,11363],"mapped",[7549]],[[11364,11364],"mapped",[637]],[[11365,11366],"valid"],[[11367,11367],"mapped",[11368]],[[11368,11368],"valid"],[[11369,11369],"mapped",[11370]],[[11370,11370],"valid"],[[11371,11371],"mapped",[11372]],[[11372,11372],"valid"],[[11373,11373],"mapped",[593]],[[11374,11374],"mapped",[625]],[[11375,11375],"mapped",[592]],[[11376,11376],"mapped",[594]],[[11377,11377],"valid"],[[11378,11378],"mapped",[11379]],[[11379,11379],"valid"],[[11380,11380],"valid"],[[11381,11381],"mapped",[11382]],[[11382,11383],"valid"],[[11384,11387],"valid"],[[11388,11388],"mapped",[106]],[[11389,11389],"mapped",[118]],[[11390,11390],"mapped",[575]],[[11391,11391],"mapped",[576]],[[11392,11392],"mapped",[11393]],[[11393,11393],"valid"],[[11394,11394],"mapped",[11395]],[[11395,11395],"valid"],[[11396,11396],"mapped",[11397]],[[11397,11397],"valid"],[[11398,11398],"mapped",[11399]],[[11399,11399],"valid"],[[11400,11400],"mapped",[11401]],[[11401,11401],"valid"],[[11402,11402],"mapped",[11403]],[[11403,11403],"valid"],[[11404,11404],"mapped",[11405]],[[11405,11405],"valid"],[[11406,11406],"mapped",[11407]],[[11407,11407],"valid"],[[11408,11408],"mapped",[11409]],[[11409,11409],"valid"],[[11410,11410],"mapped",[11411]],[[11411,11411],"valid"],[[11412,11412],"mapped",[11413]],[[11413,11413],"valid"],[[11414,11414],"mapped",[11415]],[[11415,11415],"valid"],[[11416,11416],"mapped",[11417]],[[11417,11417],"valid"],[[11418,11418],"mapped",[11419]],[[11419,11419],"valid"],[[11420,11420],"mapped",[11421]],[[11421,11421],"valid"],[[11422,11422],"mapped",[11423]],[[11423,11423],"valid"],[[11424,11424],"mapped",[11425]],[[11425,11425],"valid"],[[11426,11426],"mapped",[11427]],[[11427,11427],"valid"],[[11428,11428],"mapped",[11429]],[[11429,11429],"valid"],[[11430,11430],"mapped",[11431]],[[11431,11431],"valid"],[[11432,11432],"mapped",[11433]],[[11433,11433],"valid"],[[11434,11434],"mapped",[11435]],[[11435,11435],"valid"],[[11436,11436],"mapped",[11437]],[[11437,11437],"valid"],[[11438,11438],"mapped",[11439]],[[11439,11439],"valid"],[[11440,11440],"mapped",[11441]],[[11441,11441],"valid"],[[11442,11442],"mapped",[11443]],[[11443,11443],"valid"],[[11444,11444],"mapped",[11445]],[[11445,11445],"valid"],[[11446,11446],"mapped",[11447]],[[11447,11447],"valid"],[[11448,11448],"mapped",[11449]],[[11449,11449],"valid"],[[11450,11450],"mapped",[11451]],[[11451,11451],"valid"],[[11452,11452],"mapped",[11453]],[[11453,11453],"valid"],[[11454,11454],"mapped",[11455]],[[11455,11455],"valid"],[[11456,11456],"mapped",[11457]],[[11457,11457],"valid"],[[11458,11458],"mapped",[11459]],[[11459,11459],"valid"],[[11460,11460],"mapped",[11461]],[[11461,11461],"valid"],[[11462,11462],"mapped",[11463]],[[11463,11463],"valid"],[[11464,11464],"mapped",[11465]],[[11465,11465],"valid"],[[11466,11466],"mapped",[11467]],[[11467,11467],"valid"],[[11468,11468],"mapped",[11469]],[[11469,11469],"valid"],[[11470,11470],"mapped",[11471]],[[11471,11471],"valid"],[[11472,11472],"mapped",[11473]],[[11473,11473],"valid"],[[11474,11474],"mapped",[11475]],[[11475,11475],"valid"],[[11476,11476],"mapped",[11477]],[[11477,11477],"valid"],[[11478,11478],"mapped",[11479]],[[11479,11479],"valid"],[[11480,11480],"mapped",[11481]],[[11481,11481],"valid"],[[11482,11482],"mapped",[11483]],[[11483,11483],"valid"],[[11484,11484],"mapped",[11485]],[[11485,11485],"valid"],[[11486,11486],"mapped",[11487]],[[11487,11487],"valid"],[[11488,11488],"mapped",[11489]],[[11489,11489],"valid"],[[11490,11490],"mapped",[11491]],[[11491,11492],"valid"],[[11493,11498],"valid",[],"NV8"],[[11499,11499],"mapped",[11500]],[[11500,11500],"valid"],[[11501,11501],"mapped",[11502]],[[11502,11505],"valid"],[[11506,11506],"mapped",[11507]],[[11507,11507],"valid"],[[11508,11512],"disallowed"],[[11513,11519],"valid",[],"NV8"],[[11520,11557],"valid"],[[11558,11558],"disallowed"],[[11559,11559],"valid"],[[11560,11564],"disallowed"],[[11565,11565],"valid"],[[11566,11567],"disallowed"],[[11568,11621],"valid"],[[11622,11623],"valid"],[[11624,11630],"disallowed"],[[11631,11631],"mapped",[11617]],[[11632,11632],"valid",[],"NV8"],[[11633,11646],"disallowed"],[[11647,11647],"valid"],[[11648,11670],"valid"],[[11671,11679],"disallowed"],[[11680,11686],"valid"],[[11687,11687],"disallowed"],[[11688,11694],"valid"],[[11695,11695],"disallowed"],[[11696,11702],"valid"],[[11703,11703],"disallowed"],[[11704,11710],"valid"],[[11711,11711],"disallowed"],[[11712,11718],"valid"],[[11719,11719],"disallowed"],[[11720,11726],"valid"],[[11727,11727],"disallowed"],[[11728,11734],"valid"],[[11735,11735],"disallowed"],[[11736,11742],"valid"],[[11743,11743],"disallowed"],[[11744,11775],"valid"],[[11776,11799],"valid",[],"NV8"],[[11800,11803],"valid",[],"NV8"],[[11804,11805],"valid",[],"NV8"],[[11806,11822],"valid",[],"NV8"],[[11823,11823],"valid"],[[11824,11824],"valid",[],"NV8"],[[11825,11825],"valid",[],"NV8"],[[11826,11835],"valid",[],"NV8"],[[11836,11842],"valid",[],"NV8"],[[11843,11903],"disallowed"],[[11904,11929],"valid",[],"NV8"],[[11930,11930],"disallowed"],[[11931,11934],"valid",[],"NV8"],[[11935,11935],"mapped",[27597]],[[11936,12018],"valid",[],"NV8"],[[12019,12019],"mapped",[40863]],[[12020,12031],"disallowed"],[[12032,12032],"mapped",[19968]],[[12033,12033],"mapped",[20008]],[[12034,12034],"mapped",[20022]],[[12035,12035],"mapped",[20031]],[[12036,12036],"mapped",[20057]],[[12037,12037],"mapped",[20101]],[[12038,12038],"mapped",[20108]],[[12039,12039],"mapped",[20128]],[[12040,12040],"mapped",[20154]],[[12041,12041],"mapped",[20799]],[[12042,12042],"mapped",[20837]],[[12043,12043],"mapped",[20843]],[[12044,12044],"mapped",[20866]],[[12045,12045],"mapped",[20886]],[[12046,12046],"mapped",[20907]],[[12047,12047],"mapped",[20960]],[[12048,12048],"mapped",[20981]],[[12049,12049],"mapped",[20992]],[[12050,12050],"mapped",[21147]],[[12051,12051],"mapped",[21241]],[[12052,12052],"mapped",[21269]],[[12053,12053],"mapped",[21274]],[[12054,12054],"mapped",[21304]],[[12055,12055],"mapped",[21313]],[[12056,12056],"mapped",[21340]],[[12057,12057],"mapped",[21353]],[[12058,12058],"mapped",[21378]],[[12059,12059],"mapped",[21430]],[[12060,12060],"mapped",[21448]],[[12061,12061],"mapped",[21475]],[[12062,12062],"mapped",[22231]],[[12063,12063],"mapped",[22303]],[[12064,12064],"mapped",[22763]],[[12065,12065],"mapped",[22786]],[[12066,12066],"mapped",[22794]],[[12067,12067],"mapped",[22805]],[[12068,12068],"mapped",[22823]],[[12069,12069],"mapped",[22899]],[[12070,12070],"mapped",[23376]],[[12071,12071],"mapped",[23424]],[[12072,12072],"mapped",[23544]],[[12073,12073],"mapped",[23567]],[[12074,12074],"mapped",[23586]],[[12075,12075],"mapped",[23608]],[[12076,12076],"mapped",[23662]],[[12077,12077],"mapped",[23665]],[[12078,12078],"mapped",[24027]],[[12079,12079],"mapped",[24037]],[[12080,12080],"mapped",[24049]],[[12081,12081],"mapped",[24062]],[[12082,12082],"mapped",[24178]],[[12083,12083],"mapped",[24186]],[[12084,12084],"mapped",[24191]],[[12085,12085],"mapped",[24308]],[[12086,12086],"mapped",[24318]],[[12087,12087],"mapped",[24331]],[[12088,12088],"mapped",[24339]],[[12089,12089],"mapped",[24400]],[[12090,12090],"mapped",[24417]],[[12091,12091],"mapped",[24435]],[[12092,12092],"mapped",[24515]],[[12093,12093],"mapped",[25096]],[[12094,12094],"mapped",[25142]],[[12095,12095],"mapped",[25163]],[[12096,12096],"mapped",[25903]],[[12097,12097],"mapped",[25908]],[[12098,12098],"mapped",[25991]],[[12099,12099],"mapped",[26007]],[[12100,12100],"mapped",[26020]],[[12101,12101],"mapped",[26041]],[[12102,12102],"mapped",[26080]],[[12103,12103],"mapped",[26085]],[[12104,12104],"mapped",[26352]],[[12105,12105],"mapped",[26376]],[[12106,12106],"mapped",[26408]],[[12107,12107],"mapped",[27424]],[[12108,12108],"mapped",[27490]],[[12109,12109],"mapped",[27513]],[[12110,12110],"mapped",[27571]],[[12111,12111],"mapped",[27595]],[[12112,12112],"mapped",[27604]],[[12113,12113],"mapped",[27611]],[[12114,12114],"mapped",[27663]],[[12115,12115],"mapped",[27668]],[[12116,12116],"mapped",[27700]],[[12117,12117],"mapped",[28779]],[[12118,12118],"mapped",[29226]],[[12119,12119],"mapped",[29238]],[[12120,12120],"mapped",[29243]],[[12121,12121],"mapped",[29247]],[[12122,12122],"mapped",[29255]],[[12123,12123],"mapped",[29273]],[[12124,12124],"mapped",[29275]],[[12125,12125],"mapped",[29356]],[[12126,12126],"mapped",[29572]],[[12127,12127],"mapped",[29577]],[[12128,12128],"mapped",[29916]],[[12129,12129],"mapped",[29926]],[[12130,12130],"mapped",[29976]],[[12131,12131],"mapped",[29983]],[[12132,12132],"mapped",[29992]],[[12133,12133],"mapped",[30000]],[[12134,12134],"mapped",[30091]],[[12135,12135],"mapped",[30098]],[[12136,12136],"mapped",[30326]],[[12137,12137],"mapped",[30333]],[[12138,12138],"mapped",[30382]],[[12139,12139],"mapped",[30399]],[[12140,12140],"mapped",[30446]],[[12141,12141],"mapped",[30683]],[[12142,12142],"mapped",[30690]],[[12143,12143],"mapped",[30707]],[[12144,12144],"mapped",[31034]],[[12145,12145],"mapped",[31160]],[[12146,12146],"mapped",[31166]],[[12147,12147],"mapped",[31348]],[[12148,12148],"mapped",[31435]],[[12149,12149],"mapped",[31481]],[[12150,12150],"mapped",[31859]],[[12151,12151],"mapped",[31992]],[[12152,12152],"mapped",[32566]],[[12153,12153],"mapped",[32593]],[[12154,12154],"mapped",[32650]],[[12155,12155],"mapped",[32701]],[[12156,12156],"mapped",[32769]],[[12157,12157],"mapped",[32780]],[[12158,12158],"mapped",[32786]],[[12159,12159],"mapped",[32819]],[[12160,12160],"mapped",[32895]],[[12161,12161],"mapped",[32905]],[[12162,12162],"mapped",[33251]],[[12163,12163],"mapped",[33258]],[[12164,12164],"mapped",[33267]],[[12165,12165],"mapped",[33276]],[[12166,12166],"mapped",[33292]],[[12167,12167],"mapped",[33307]],[[12168,12168],"mapped",[33311]],[[12169,12169],"mapped",[33390]],[[12170,12170],"mapped",[33394]],[[12171,12171],"mapped",[33400]],[[12172,12172],"mapped",[34381]],[[12173,12173],"mapped",[34411]],[[12174,12174],"mapped",[34880]],[[12175,12175],"mapped",[34892]],[[12176,12176],"mapped",[34915]],[[12177,12177],"mapped",[35198]],[[12178,12178],"mapped",[35211]],[[12179,12179],"mapped",[35282]],[[12180,12180],"mapped",[35328]],[[12181,12181],"mapped",[35895]],[[12182,12182],"mapped",[35910]],[[12183,12183],"mapped",[35925]],[[12184,12184],"mapped",[35960]],[[12185,12185],"mapped",[35997]],[[12186,12186],"mapped",[36196]],[[12187,12187],"mapped",[36208]],[[12188,12188],"mapped",[36275]],[[12189,12189],"mapped",[36523]],[[12190,12190],"mapped",[36554]],[[12191,12191],"mapped",[36763]],[[12192,12192],"mapped",[36784]],[[12193,12193],"mapped",[36789]],[[12194,12194],"mapped",[37009]],[[12195,12195],"mapped",[37193]],[[12196,12196],"mapped",[37318]],[[12197,12197],"mapped",[37324]],[[12198,12198],"mapped",[37329]],[[12199,12199],"mapped",[38263]],[[12200,12200],"mapped",[38272]],[[12201,12201],"mapped",[38428]],[[12202,12202],"mapped",[38582]],[[12203,12203],"mapped",[38585]],[[12204,12204],"mapped",[38632]],[[12205,12205],"mapped",[38737]],[[12206,12206],"mapped",[38750]],[[12207,12207],"mapped",[38754]],[[12208,12208],"mapped",[38761]],[[12209,12209],"mapped",[38859]],[[12210,12210],"mapped",[38893]],[[12211,12211],"mapped",[38899]],[[12212,12212],"mapped",[38913]],[[12213,12213],"mapped",[39080]],[[12214,12214],"mapped",[39131]],[[12215,12215],"mapped",[39135]],[[12216,12216],"mapped",[39318]],[[12217,12217],"mapped",[39321]],[[12218,12218],"mapped",[39340]],[[12219,12219],"mapped",[39592]],[[12220,12220],"mapped",[39640]],[[12221,12221],"mapped",[39647]],[[12222,12222],"mapped",[39717]],[[12223,12223],"mapped",[39727]],[[12224,12224],"mapped",[39730]],[[12225,12225],"mapped",[39740]],[[12226,12226],"mapped",[39770]],[[12227,12227],"mapped",[40165]],[[12228,12228],"mapped",[40565]],[[12229,12229],"mapped",[40575]],[[12230,12230],"mapped",[40613]],[[12231,12231],"mapped",[40635]],[[12232,12232],"mapped",[40643]],[[12233,12233],"mapped",[40653]],[[12234,12234],"mapped",[40657]],[[12235,12235],"mapped",[40697]],[[12236,12236],"mapped",[40701]],[[12237,12237],"mapped",[40718]],[[12238,12238],"mapped",[40723]],[[12239,12239],"mapped",[40736]],[[12240,12240],"mapped",[40763]],[[12241,12241],"mapped",[40778]],[[12242,12242],"mapped",[40786]],[[12243,12243],"mapped",[40845]],[[12244,12244],"mapped",[40860]],[[12245,12245],"mapped",[40864]],[[12246,12271],"disallowed"],[[12272,12283],"disallowed"],[[12284,12287],"disallowed"],[[12288,12288],"disallowed_STD3_mapped",[32]],[[12289,12289],"valid",[],"NV8"],[[12290,12290],"mapped",[46]],[[12291,12292],"valid",[],"NV8"],[[12293,12295],"valid"],[[12296,12329],"valid",[],"NV8"],[[12330,12333],"valid"],[[12334,12341],"valid",[],"NV8"],[[12342,12342],"mapped",[12306]],[[12343,12343],"valid",[],"NV8"],[[12344,12344],"mapped",[21313]],[[12345,12345],"mapped",[21316]],[[12346,12346],"mapped",[21317]],[[12347,12347],"valid",[],"NV8"],[[12348,12348],"valid"],[[12349,12349],"valid",[],"NV8"],[[12350,12350],"valid",[],"NV8"],[[12351,12351],"valid",[],"NV8"],[[12352,12352],"disallowed"],[[12353,12436],"valid"],[[12437,12438],"valid"],[[12439,12440],"disallowed"],[[12441,12442],"valid"],[[12443,12443],"disallowed_STD3_mapped",[32,12441]],[[12444,12444],"disallowed_STD3_mapped",[32,12442]],[[12445,12446],"valid"],[[12447,12447],"mapped",[12424,12426]],[[12448,12448],"valid",[],"NV8"],[[12449,12542],"valid"],[[12543,12543],"mapped",[12467,12488]],[[12544,12548],"disallowed"],[[12549,12588],"valid"],[[12589,12589],"valid"],[[12590,12592],"disallowed"],[[12593,12593],"mapped",[4352]],[[12594,12594],"mapped",[4353]],[[12595,12595],"mapped",[4522]],[[12596,12596],"mapped",[4354]],[[12597,12597],"mapped",[4524]],[[12598,12598],"mapped",[4525]],[[12599,12599],"mapped",[4355]],[[12600,12600],"mapped",[4356]],[[12601,12601],"mapped",[4357]],[[12602,12602],"mapped",[4528]],[[12603,12603],"mapped",[4529]],[[12604,12604],"mapped",[4530]],[[12605,12605],"mapped",[4531]],[[12606,12606],"mapped",[4532]],[[12607,12607],"mapped",[4533]],[[12608,12608],"mapped",[4378]],[[12609,12609],"mapped",[4358]],[[12610,12610],"mapped",[4359]],[[12611,12611],"mapped",[4360]],[[12612,12612],"mapped",[4385]],[[12613,12613],"mapped",[4361]],[[12614,12614],"mapped",[4362]],[[12615,12615],"mapped",[4363]],[[12616,12616],"mapped",[4364]],[[12617,12617],"mapped",[4365]],[[12618,12618],"mapped",[4366]],[[12619,12619],"mapped",[4367]],[[12620,12620],"mapped",[4368]],[[12621,12621],"mapped",[4369]],[[12622,12622],"mapped",[4370]],[[12623,12623],"mapped",[4449]],[[12624,12624],"mapped",[4450]],[[12625,12625],"mapped",[4451]],[[12626,12626],"mapped",[4452]],[[12627,12627],"mapped",[4453]],[[12628,12628],"mapped",[4454]],[[12629,12629],"mapped",[4455]],[[12630,12630],"mapped",[4456]],[[12631,12631],"mapped",[4457]],[[12632,12632],"mapped",[4458]],[[12633,12633],"mapped",[4459]],[[12634,12634],"mapped",[4460]],[[12635,12635],"mapped",[4461]],[[12636,12636],"mapped",[4462]],[[12637,12637],"mapped",[4463]],[[12638,12638],"mapped",[4464]],[[12639,12639],"mapped",[4465]],[[12640,12640],"mapped",[4466]],[[12641,12641],"mapped",[4467]],[[12642,12642],"mapped",[4468]],[[12643,12643],"mapped",[4469]],[[12644,12644],"disallowed"],[[12645,12645],"mapped",[4372]],[[12646,12646],"mapped",[4373]],[[12647,12647],"mapped",[4551]],[[12648,12648],"mapped",[4552]],[[12649,12649],"mapped",[4556]],[[12650,12650],"mapped",[4558]],[[12651,12651],"mapped",[4563]],[[12652,12652],"mapped",[4567]],[[12653,12653],"mapped",[4569]],[[12654,12654],"mapped",[4380]],[[12655,12655],"mapped",[4573]],[[12656,12656],"mapped",[4575]],[[12657,12657],"mapped",[4381]],[[12658,12658],"mapped",[4382]],[[12659,12659],"mapped",[4384]],[[12660,12660],"mapped",[4386]],[[12661,12661],"mapped",[4387]],[[12662,12662],"mapped",[4391]],[[12663,12663],"mapped",[4393]],[[12664,12664],"mapped",[4395]],[[12665,12665],"mapped",[4396]],[[12666,12666],"mapped",[4397]],[[12667,12667],"mapped",[4398]],[[12668,12668],"mapped",[4399]],[[12669,12669],"mapped",[4402]],[[12670,12670],"mapped",[4406]],[[12671,12671],"mapped",[4416]],[[12672,12672],"mapped",[4423]],[[12673,12673],"mapped",[4428]],[[12674,12674],"mapped",[4593]],[[12675,12675],"mapped",[4594]],[[12676,12676],"mapped",[4439]],[[12677,12677],"mapped",[4440]],[[12678,12678],"mapped",[4441]],[[12679,12679],"mapped",[4484]],[[12680,12680],"mapped",[4485]],[[12681,12681],"mapped",[4488]],[[12682,12682],"mapped",[4497]],[[12683,12683],"mapped",[4498]],[[12684,12684],"mapped",[4500]],[[12685,12685],"mapped",[4510]],[[12686,12686],"mapped",[4513]],[[12687,12687],"disallowed"],[[12688,12689],"valid",[],"NV8"],[[12690,12690],"mapped",[19968]],[[12691,12691],"mapped",[20108]],[[12692,12692],"mapped",[19977]],[[12693,12693],"mapped",[22235]],[[12694,12694],"mapped",[19978]],[[12695,12695],"mapped",[20013]],[[12696,12696],"mapped",[19979]],[[12697,12697],"mapped",[30002]],[[12698,12698],"mapped",[20057]],[[12699,12699],"mapped",[19993]],[[12700,12700],"mapped",[19969]],[[12701,12701],"mapped",[22825]],[[12702,12702],"mapped",[22320]],[[12703,12703],"mapped",[20154]],[[12704,12727],"valid"],[[12728,12730],"valid"],[[12731,12735],"disallowed"],[[12736,12751],"valid",[],"NV8"],[[12752,12771],"valid",[],"NV8"],[[12772,12783],"disallowed"],[[12784,12799],"valid"],[[12800,12800],"disallowed_STD3_mapped",[40,4352,41]],[[12801,12801],"disallowed_STD3_mapped",[40,4354,41]],[[12802,12802],"disallowed_STD3_mapped",[40,4355,41]],[[12803,12803],"disallowed_STD3_mapped",[40,4357,41]],[[12804,12804],"disallowed_STD3_mapped",[40,4358,41]],[[12805,12805],"disallowed_STD3_mapped",[40,4359,41]],[[12806,12806],"disallowed_STD3_mapped",[40,4361,41]],[[12807,12807],"disallowed_STD3_mapped",[40,4363,41]],[[12808,12808],"disallowed_STD3_mapped",[40,4364,41]],[[12809,12809],"disallowed_STD3_mapped",[40,4366,41]],[[12810,12810],"disallowed_STD3_mapped",[40,4367,41]],[[12811,12811],"disallowed_STD3_mapped",[40,4368,41]],[[12812,12812],"disallowed_STD3_mapped",[40,4369,41]],[[12813,12813],"disallowed_STD3_mapped",[40,4370,41]],[[12814,12814],"disallowed_STD3_mapped",[40,44032,41]],[[12815,12815],"disallowed_STD3_mapped",[40,45208,41]],[[12816,12816],"disallowed_STD3_mapped",[40,45796,41]],[[12817,12817],"disallowed_STD3_mapped",[40,46972,41]],[[12818,12818],"disallowed_STD3_mapped",[40,47560,41]],[[12819,12819],"disallowed_STD3_mapped",[40,48148,41]],[[12820,12820],"disallowed_STD3_mapped",[40,49324,41]],[[12821,12821],"disallowed_STD3_mapped",[40,50500,41]],[[12822,12822],"disallowed_STD3_mapped",[40,51088,41]],[[12823,12823],"disallowed_STD3_mapped",[40,52264,41]],[[12824,12824],"disallowed_STD3_mapped",[40,52852,41]],[[12825,12825],"disallowed_STD3_mapped",[40,53440,41]],[[12826,12826],"disallowed_STD3_mapped",[40,54028,41]],[[12827,12827],"disallowed_STD3_mapped",[40,54616,41]],[[12828,12828],"disallowed_STD3_mapped",[40,51452,41]],[[12829,12829],"disallowed_STD3_mapped",[40,50724,51204,41]],[[12830,12830],"disallowed_STD3_mapped",[40,50724,54980,41]],[[12831,12831],"disallowed"],[[12832,12832],"disallowed_STD3_mapped",[40,19968,41]],[[12833,12833],"disallowed_STD3_mapped",[40,20108,41]],[[12834,12834],"disallowed_STD3_mapped",[40,19977,41]],[[12835,12835],"disallowed_STD3_mapped",[40,22235,41]],[[12836,12836],"disallowed_STD3_mapped",[40,20116,41]],[[12837,12837],"disallowed_STD3_mapped",[40,20845,41]],[[12838,12838],"disallowed_STD3_mapped",[40,19971,41]],[[12839,12839],"disallowed_STD3_mapped",[40,20843,41]],[[12840,12840],"disallowed_STD3_mapped",[40,20061,41]],[[12841,12841],"disallowed_STD3_mapped",[40,21313,41]],[[12842,12842],"disallowed_STD3_mapped",[40,26376,41]],[[12843,12843],"disallowed_STD3_mapped",[40,28779,41]],[[12844,12844],"disallowed_STD3_mapped",[40,27700,41]],[[12845,12845],"disallowed_STD3_mapped",[40,26408,41]],[[12846,12846],"disallowed_STD3_mapped",[40,37329,41]],[[12847,12847],"disallowed_STD3_mapped",[40,22303,41]],[[12848,12848],"disallowed_STD3_mapped",[40,26085,41]],[[12849,12849],"disallowed_STD3_mapped",[40,26666,41]],[[12850,12850],"disallowed_STD3_mapped",[40,26377,41]],[[12851,12851],"disallowed_STD3_mapped",[40,31038,41]],[[12852,12852],"disallowed_STD3_mapped",[40,21517,41]],[[12853,12853],"disallowed_STD3_mapped",[40,29305,41]],[[12854,12854],"disallowed_STD3_mapped",[40,36001,41]],[[12855,12855],"disallowed_STD3_mapped",[40,31069,41]],[[12856,12856],"disallowed_STD3_mapped",[40,21172,41]],[[12857,12857],"disallowed_STD3_mapped",[40,20195,41]],[[12858,12858],"disallowed_STD3_mapped",[40,21628,41]],[[12859,12859],"disallowed_STD3_mapped",[40,23398,41]],[[12860,12860],"disallowed_STD3_mapped",[40,30435,41]],[[12861,12861],"disallowed_STD3_mapped",[40,20225,41]],[[12862,12862],"disallowed_STD3_mapped",[40,36039,41]],[[12863,12863],"disallowed_STD3_mapped",[40,21332,41]],[[12864,12864],"disallowed_STD3_mapped",[40,31085,41]],[[12865,12865],"disallowed_STD3_mapped",[40,20241,41]],[[12866,12866],"disallowed_STD3_mapped",[40,33258,41]],[[12867,12867],"disallowed_STD3_mapped",[40,33267,41]],[[12868,12868],"mapped",[21839]],[[12869,12869],"mapped",[24188]],[[12870,12870],"mapped",[25991]],[[12871,12871],"mapped",[31631]],[[12872,12879],"valid",[],"NV8"],[[12880,12880],"mapped",[112,116,101]],[[12881,12881],"mapped",[50,49]],[[12882,12882],"mapped",[50,50]],[[12883,12883],"mapped",[50,51]],[[12884,12884],"mapped",[50,52]],[[12885,12885],"mapped",[50,53]],[[12886,12886],"mapped",[50,54]],[[12887,12887],"mapped",[50,55]],[[12888,12888],"mapped",[50,56]],[[12889,12889],"mapped",[50,57]],[[12890,12890],"mapped",[51,48]],[[12891,12891],"mapped",[51,49]],[[12892,12892],"mapped",[51,50]],[[12893,12893],"mapped",[51,51]],[[12894,12894],"mapped",[51,52]],[[12895,12895],"mapped",[51,53]],[[12896,12896],"mapped",[4352]],[[12897,12897],"mapped",[4354]],[[12898,12898],"mapped",[4355]],[[12899,12899],"mapped",[4357]],[[12900,12900],"mapped",[4358]],[[12901,12901],"mapped",[4359]],[[12902,12902],"mapped",[4361]],[[12903,12903],"mapped",[4363]],[[12904,12904],"mapped",[4364]],[[12905,12905],"mapped",[4366]],[[12906,12906],"mapped",[4367]],[[12907,12907],"mapped",[4368]],[[12908,12908],"mapped",[4369]],[[12909,12909],"mapped",[4370]],[[12910,12910],"mapped",[44032]],[[12911,12911],"mapped",[45208]],[[12912,12912],"mapped",[45796]],[[12913,12913],"mapped",[46972]],[[12914,12914],"mapped",[47560]],[[12915,12915],"mapped",[48148]],[[12916,12916],"mapped",[49324]],[[12917,12917],"mapped",[50500]],[[12918,12918],"mapped",[51088]],[[12919,12919],"mapped",[52264]],[[12920,12920],"mapped",[52852]],[[12921,12921],"mapped",[53440]],[[12922,12922],"mapped",[54028]],[[12923,12923],"mapped",[54616]],[[12924,12924],"mapped",[52280,44256]],[[12925,12925],"mapped",[51452,51032]],[[12926,12926],"mapped",[50864]],[[12927,12927],"valid",[],"NV8"],[[12928,12928],"mapped",[19968]],[[12929,12929],"mapped",[20108]],[[12930,12930],"mapped",[19977]],[[12931,12931],"mapped",[22235]],[[12932,12932],"mapped",[20116]],[[12933,12933],"mapped",[20845]],[[12934,12934],"mapped",[19971]],[[12935,12935],"mapped",[20843]],[[12936,12936],"mapped",[20061]],[[12937,12937],"mapped",[21313]],[[12938,12938],"mapped",[26376]],[[12939,12939],"mapped",[28779]],[[12940,12940],"mapped",[27700]],[[12941,12941],"mapped",[26408]],[[12942,12942],"mapped",[37329]],[[12943,12943],"mapped",[22303]],[[12944,12944],"mapped",[26085]],[[12945,12945],"mapped",[26666]],[[12946,12946],"mapped",[26377]],[[12947,12947],"mapped",[31038]],[[12948,12948],"mapped",[21517]],[[12949,12949],"mapped",[29305]],[[12950,12950],"mapped",[36001]],[[12951,12951],"mapped",[31069]],[[12952,12952],"mapped",[21172]],[[12953,12953],"mapped",[31192]],[[12954,12954],"mapped",[30007]],[[12955,12955],"mapped",[22899]],[[12956,12956],"mapped",[36969]],[[12957,12957],"mapped",[20778]],[[12958,12958],"mapped",[21360]],[[12959,12959],"mapped",[27880]],[[12960,12960],"mapped",[38917]],[[12961,12961],"mapped",[20241]],[[12962,12962],"mapped",[20889]],[[12963,12963],"mapped",[27491]],[[12964,12964],"mapped",[19978]],[[12965,12965],"mapped",[20013]],[[12966,12966],"mapped",[19979]],[[12967,12967],"mapped",[24038]],[[12968,12968],"mapped",[21491]],[[12969,12969],"mapped",[21307]],[[12970,12970],"mapped",[23447]],[[12971,12971],"mapped",[23398]],[[12972,12972],"mapped",[30435]],[[12973,12973],"mapped",[20225]],[[12974,12974],"mapped",[36039]],[[12975,12975],"mapped",[21332]],[[12976,12976],"mapped",[22812]],[[12977,12977],"mapped",[51,54]],[[12978,12978],"mapped",[51,55]],[[12979,12979],"mapped",[51,56]],[[12980,12980],"mapped",[51,57]],[[12981,12981],"mapped",[52,48]],[[12982,12982],"mapped",[52,49]],[[12983,12983],"mapped",[52,50]],[[12984,12984],"mapped",[52,51]],[[12985,12985],"mapped",[52,52]],[[12986,12986],"mapped",[52,53]],[[12987,12987],"mapped",[52,54]],[[12988,12988],"mapped",[52,55]],[[12989,12989],"mapped",[52,56]],[[12990,12990],"mapped",[52,57]],[[12991,12991],"mapped",[53,48]],[[12992,12992],"mapped",[49,26376]],[[12993,12993],"mapped",[50,26376]],[[12994,12994],"mapped",[51,26376]],[[12995,12995],"mapped",[52,26376]],[[12996,12996],"mapped",[53,26376]],[[12997,12997],"mapped",[54,26376]],[[12998,12998],"mapped",[55,26376]],[[12999,12999],"mapped",[56,26376]],[[13000,13000],"mapped",[57,26376]],[[13001,13001],"mapped",[49,48,26376]],[[13002,13002],"mapped",[49,49,26376]],[[13003,13003],"mapped",[49,50,26376]],[[13004,13004],"mapped",[104,103]],[[13005,13005],"mapped",[101,114,103]],[[13006,13006],"mapped",[101,118]],[[13007,13007],"mapped",[108,116,100]],[[13008,13008],"mapped",[12450]],[[13009,13009],"mapped",[12452]],[[13010,13010],"mapped",[12454]],[[13011,13011],"mapped",[12456]],[[13012,13012],"mapped",[12458]],[[13013,13013],"mapped",[12459]],[[13014,13014],"mapped",[12461]],[[13015,13015],"mapped",[12463]],[[13016,13016],"mapped",[12465]],[[13017,13017],"mapped",[12467]],[[13018,13018],"mapped",[12469]],[[13019,13019],"mapped",[12471]],[[13020,13020],"mapped",[12473]],[[13021,13021],"mapped",[12475]],[[13022,13022],"mapped",[12477]],[[13023,13023],"mapped",[12479]],[[13024,13024],"mapped",[12481]],[[13025,13025],"mapped",[12484]],[[13026,13026],"mapped",[12486]],[[13027,13027],"mapped",[12488]],[[13028,13028],"mapped",[12490]],[[13029,13029],"mapped",[12491]],[[13030,13030],"mapped",[12492]],[[13031,13031],"mapped",[12493]],[[13032,13032],"mapped",[12494]],[[13033,13033],"mapped",[12495]],[[13034,13034],"mapped",[12498]],[[13035,13035],"mapped",[12501]],[[13036,13036],"mapped",[12504]],[[13037,13037],"mapped",[12507]],[[13038,13038],"mapped",[12510]],[[13039,13039],"mapped",[12511]],[[13040,13040],"mapped",[12512]],[[13041,13041],"mapped",[12513]],[[13042,13042],"mapped",[12514]],[[13043,13043],"mapped",[12516]],[[13044,13044],"mapped",[12518]],[[13045,13045],"mapped",[12520]],[[13046,13046],"mapped",[12521]],[[13047,13047],"mapped",[12522]],[[13048,13048],"mapped",[12523]],[[13049,13049],"mapped",[12524]],[[13050,13050],"mapped",[12525]],[[13051,13051],"mapped",[12527]],[[13052,13052],"mapped",[12528]],[[13053,13053],"mapped",[12529]],[[13054,13054],"mapped",[12530]],[[13055,13055],"disallowed"],[[13056,13056],"mapped",[12450,12497,12540,12488]],[[13057,13057],"mapped",[12450,12523,12501,12449]],[[13058,13058],"mapped",[12450,12531,12506,12450]],[[13059,13059],"mapped",[12450,12540,12523]],[[13060,13060],"mapped",[12452,12491,12531,12464]],[[13061,13061],"mapped",[12452,12531,12481]],[[13062,13062],"mapped",[12454,12457,12531]],[[13063,13063],"mapped",[12456,12473,12463,12540,12489]],[[13064,13064],"mapped",[12456,12540,12459,12540]],[[13065,13065],"mapped",[12458,12531,12473]],[[13066,13066],"mapped",[12458,12540,12512]],[[13067,13067],"mapped",[12459,12452,12522]],[[13068,13068],"mapped",[12459,12521,12483,12488]],[[13069,13069],"mapped",[12459,12525,12522,12540]],[[13070,13070],"mapped",[12460,12525,12531]],[[13071,13071],"mapped",[12460,12531,12510]],[[13072,13072],"mapped",[12462,12460]],[[13073,13073],"mapped",[12462,12491,12540]],[[13074,13074],"mapped",[12461,12517,12522,12540]],[[13075,13075],"mapped",[12462,12523,12480,12540]],[[13076,13076],"mapped",[12461,12525]],[[13077,13077],"mapped",[12461,12525,12464,12521,12512]],[[13078,13078],"mapped",[12461,12525,12513,12540,12488,12523]],[[13079,13079],"mapped",[12461,12525,12527,12483,12488]],[[13080,13080],"mapped",[12464,12521,12512]],[[13081,13081],"mapped",[12464,12521,12512,12488,12531]],[[13082,13082],"mapped",[12463,12523,12476,12452,12525]],[[13083,13083],"mapped",[12463,12525,12540,12493]],[[13084,13084],"mapped",[12465,12540,12473]],[[13085,13085],"mapped",[12467,12523,12490]],[[13086,13086],"mapped",[12467,12540,12509]],[[13087,13087],"mapped",[12469,12452,12463,12523]],[[13088,13088],"mapped",[12469,12531,12481,12540,12512]],[[13089,13089],"mapped",[12471,12522,12531,12464]],[[13090,13090],"mapped",[12475,12531,12481]],[[13091,13091],"mapped",[12475,12531,12488]],[[13092,13092],"mapped",[12480,12540,12473]],[[13093,13093],"mapped",[12487,12471]],[[13094,13094],"mapped",[12489,12523]],[[13095,13095],"mapped",[12488,12531]],[[13096,13096],"mapped",[12490,12494]],[[13097,13097],"mapped",[12494,12483,12488]],[[13098,13098],"mapped",[12495,12452,12484]],[[13099,13099],"mapped",[12497,12540,12475,12531,12488]],[[13100,13100],"mapped",[12497,12540,12484]],[[13101,13101],"mapped",[12496,12540,12524,12523]],[[13102,13102],"mapped",[12500,12450,12473,12488,12523]],[[13103,13103],"mapped",[12500,12463,12523]],[[13104,13104],"mapped",[12500,12467]],[[13105,13105],"mapped",[12499,12523]],[[13106,13106],"mapped",[12501,12449,12521,12483,12489]],[[13107,13107],"mapped",[12501,12451,12540,12488]],[[13108,13108],"mapped",[12502,12483,12471,12455,12523]],[[13109,13109],"mapped",[12501,12521,12531]],[[13110,13110],"mapped",[12504,12463,12479,12540,12523]],[[13111,13111],"mapped",[12506,12477]],[[13112,13112],"mapped",[12506,12491,12498]],[[13113,13113],"mapped",[12504,12523,12484]],[[13114,13114],"mapped",[12506,12531,12473]],[[13115,13115],"mapped",[12506,12540,12472]],[[13116,13116],"mapped",[12505,12540,12479]],[[13117,13117],"mapped",[12509,12452,12531,12488]],[[13118,13118],"mapped",[12508,12523,12488]],[[13119,13119],"mapped",[12507,12531]],[[13120,13120],"mapped",[12509,12531,12489]],[[13121,13121],"mapped",[12507,12540,12523]],[[13122,13122],"mapped",[12507,12540,12531]],[[13123,13123],"mapped",[12510,12452,12463,12525]],[[13124,13124],"mapped",[12510,12452,12523]],[[13125,13125],"mapped",[12510,12483,12495]],[[13126,13126],"mapped",[12510,12523,12463]],[[13127,13127],"mapped",[12510,12531,12471,12519,12531]],[[13128,13128],"mapped",[12511,12463,12525,12531]],[[13129,13129],"mapped",[12511,12522]],[[13130,13130],"mapped",[12511,12522,12496,12540,12523]],[[13131,13131],"mapped",[12513,12460]],[[13132,13132],"mapped",[12513,12460,12488,12531]],[[13133,13133],"mapped",[12513,12540,12488,12523]],[[13134,13134],"mapped",[12516,12540,12489]],[[13135,13135],"mapped",[12516,12540,12523]],[[13136,13136],"mapped",[12518,12450,12531]],[[13137,13137],"mapped",[12522,12483,12488,12523]],[[13138,13138],"mapped",[12522,12521]],[[13139,13139],"mapped",[12523,12500,12540]],[[13140,13140],"mapped",[12523,12540,12502,12523]],[[13141,13141],"mapped",[12524,12512]],[[13142,13142],"mapped",[12524,12531,12488,12466,12531]],[[13143,13143],"mapped",[12527,12483,12488]],[[13144,13144],"mapped",[48,28857]],[[13145,13145],"mapped",[49,28857]],[[13146,13146],"mapped",[50,28857]],[[13147,13147],"mapped",[51,28857]],[[13148,13148],"mapped",[52,28857]],[[13149,13149],"mapped",[53,28857]],[[13150,13150],"mapped",[54,28857]],[[13151,13151],"mapped",[55,28857]],[[13152,13152],"mapped",[56,28857]],[[13153,13153],"mapped",[57,28857]],[[13154,13154],"mapped",[49,48,28857]],[[13155,13155],"mapped",[49,49,28857]],[[13156,13156],"mapped",[49,50,28857]],[[13157,13157],"mapped",[49,51,28857]],[[13158,13158],"mapped",[49,52,28857]],[[13159,13159],"mapped",[49,53,28857]],[[13160,13160],"mapped",[49,54,28857]],[[13161,13161],"mapped",[49,55,28857]],[[13162,13162],"mapped",[49,56,28857]],[[13163,13163],"mapped",[49,57,28857]],[[13164,13164],"mapped",[50,48,28857]],[[13165,13165],"mapped",[50,49,28857]],[[13166,13166],"mapped",[50,50,28857]],[[13167,13167],"mapped",[50,51,28857]],[[13168,13168],"mapped",[50,52,28857]],[[13169,13169],"mapped",[104,112,97]],[[13170,13170],"mapped",[100,97]],[[13171,13171],"mapped",[97,117]],[[13172,13172],"mapped",[98,97,114]],[[13173,13173],"mapped",[111,118]],[[13174,13174],"mapped",[112,99]],[[13175,13175],"mapped",[100,109]],[[13176,13176],"mapped",[100,109,50]],[[13177,13177],"mapped",[100,109,51]],[[13178,13178],"mapped",[105,117]],[[13179,13179],"mapped",[24179,25104]],[[13180,13180],"mapped",[26157,21644]],[[13181,13181],"mapped",[22823,27491]],[[13182,13182],"mapped",[26126,27835]],[[13183,13183],"mapped",[26666,24335,20250,31038]],[[13184,13184],"mapped",[112,97]],[[13185,13185],"mapped",[110,97]],[[13186,13186],"mapped",[956,97]],[[13187,13187],"mapped",[109,97]],[[13188,13188],"mapped",[107,97]],[[13189,13189],"mapped",[107,98]],[[13190,13190],"mapped",[109,98]],[[13191,13191],"mapped",[103,98]],[[13192,13192],"mapped",[99,97,108]],[[13193,13193],"mapped",[107,99,97,108]],[[13194,13194],"mapped",[112,102]],[[13195,13195],"mapped",[110,102]],[[13196,13196],"mapped",[956,102]],[[13197,13197],"mapped",[956,103]],[[13198,13198],"mapped",[109,103]],[[13199,13199],"mapped",[107,103]],[[13200,13200],"mapped",[104,122]],[[13201,13201],"mapped",[107,104,122]],[[13202,13202],"mapped",[109,104,122]],[[13203,13203],"mapped",[103,104,122]],[[13204,13204],"mapped",[116,104,122]],[[13205,13205],"mapped",[956,108]],[[13206,13206],"mapped",[109,108]],[[13207,13207],"mapped",[100,108]],[[13208,13208],"mapped",[107,108]],[[13209,13209],"mapped",[102,109]],[[13210,13210],"mapped",[110,109]],[[13211,13211],"mapped",[956,109]],[[13212,13212],"mapped",[109,109]],[[13213,13213],"mapped",[99,109]],[[13214,13214],"mapped",[107,109]],[[13215,13215],"mapped",[109,109,50]],[[13216,13216],"mapped",[99,109,50]],[[13217,13217],"mapped",[109,50]],[[13218,13218],"mapped",[107,109,50]],[[13219,13219],"mapped",[109,109,51]],[[13220,13220],"mapped",[99,109,51]],[[13221,13221],"mapped",[109,51]],[[13222,13222],"mapped",[107,109,51]],[[13223,13223],"mapped",[109,8725,115]],[[13224,13224],"mapped",[109,8725,115,50]],[[13225,13225],"mapped",[112,97]],[[13226,13226],"mapped",[107,112,97]],[[13227,13227],"mapped",[109,112,97]],[[13228,13228],"mapped",[103,112,97]],[[13229,13229],"mapped",[114,97,100]],[[13230,13230],"mapped",[114,97,100,8725,115]],[[13231,13231],"mapped",[114,97,100,8725,115,50]],[[13232,13232],"mapped",[112,115]],[[13233,13233],"mapped",[110,115]],[[13234,13234],"mapped",[956,115]],[[13235,13235],"mapped",[109,115]],[[13236,13236],"mapped",[112,118]],[[13237,13237],"mapped",[110,118]],[[13238,13238],"mapped",[956,118]],[[13239,13239],"mapped",[109,118]],[[13240,13240],"mapped",[107,118]],[[13241,13241],"mapped",[109,118]],[[13242,13242],"mapped",[112,119]],[[13243,13243],"mapped",[110,119]],[[13244,13244],"mapped",[956,119]],[[13245,13245],"mapped",[109,119]],[[13246,13246],"mapped",[107,119]],[[13247,13247],"mapped",[109,119]],[[13248,13248],"mapped",[107,969]],[[13249,13249],"mapped",[109,969]],[[13250,13250],"disallowed"],[[13251,13251],"mapped",[98,113]],[[13252,13252],"mapped",[99,99]],[[13253,13253],"mapped",[99,100]],[[13254,13254],"mapped",[99,8725,107,103]],[[13255,13255],"disallowed"],[[13256,13256],"mapped",[100,98]],[[13257,13257],"mapped",[103,121]],[[13258,13258],"mapped",[104,97]],[[13259,13259],"mapped",[104,112]],[[13260,13260],"mapped",[105,110]],[[13261,13261],"mapped",[107,107]],[[13262,13262],"mapped",[107,109]],[[13263,13263],"mapped",[107,116]],[[13264,13264],"mapped",[108,109]],[[13265,13265],"mapped",[108,110]],[[13266,13266],"mapped",[108,111,103]],[[13267,13267],"mapped",[108,120]],[[13268,13268],"mapped",[109,98]],[[13269,13269],"mapped",[109,105,108]],[[13270,13270],"mapped",[109,111,108]],[[13271,13271],"mapped",[112,104]],[[13272,13272],"disallowed"],[[13273,13273],"mapped",[112,112,109]],[[13274,13274],"mapped",[112,114]],[[13275,13275],"mapped",[115,114]],[[13276,13276],"mapped",[115,118]],[[13277,13277],"mapped",[119,98]],[[13278,13278],"mapped",[118,8725,109]],[[13279,13279],"mapped",[97,8725,109]],[[13280,13280],"mapped",[49,26085]],[[13281,13281],"mapped",[50,26085]],[[13282,13282],"mapped",[51,26085]],[[13283,13283],"mapped",[52,26085]],[[13284,13284],"mapped",[53,26085]],[[13285,13285],"mapped",[54,26085]],[[13286,13286],"mapped",[55,26085]],[[13287,13287],"mapped",[56,26085]],[[13288,13288],"mapped",[57,26085]],[[13289,13289],"mapped",[49,48,26085]],[[13290,13290],"mapped",[49,49,26085]],[[13291,13291],"mapped",[49,50,26085]],[[13292,13292],"mapped",[49,51,26085]],[[13293,13293],"mapped",[49,52,26085]],[[13294,13294],"mapped",[49,53,26085]],[[13295,13295],"mapped",[49,54,26085]],[[13296,13296],"mapped",[49,55,26085]],[[13297,13297],"mapped",[49,56,26085]],[[13298,13298],"mapped",[49,57,26085]],[[13299,13299],"mapped",[50,48,26085]],[[13300,13300],"mapped",[50,49,26085]],[[13301,13301],"mapped",[50,50,26085]],[[13302,13302],"mapped",[50,51,26085]],[[13303,13303],"mapped",[50,52,26085]],[[13304,13304],"mapped",[50,53,26085]],[[13305,13305],"mapped",[50,54,26085]],[[13306,13306],"mapped",[50,55,26085]],[[13307,13307],"mapped",[50,56,26085]],[[13308,13308],"mapped",[50,57,26085]],[[13309,13309],"mapped",[51,48,26085]],[[13310,13310],"mapped",[51,49,26085]],[[13311,13311],"mapped",[103,97,108]],[[13312,19893],"valid"],[[19894,19903],"disallowed"],[[19904,19967],"valid",[],"NV8"],[[19968,40869],"valid"],[[40870,40891],"valid"],[[40892,40899],"valid"],[[40900,40907],"valid"],[[40908,40908],"valid"],[[40909,40917],"valid"],[[40918,40959],"disallowed"],[[40960,42124],"valid"],[[42125,42127],"disallowed"],[[42128,42145],"valid",[],"NV8"],[[42146,42147],"valid",[],"NV8"],[[42148,42163],"valid",[],"NV8"],[[42164,42164],"valid",[],"NV8"],[[42165,42176],"valid",[],"NV8"],[[42177,42177],"valid",[],"NV8"],[[42178,42180],"valid",[],"NV8"],[[42181,42181],"valid",[],"NV8"],[[42182,42182],"valid",[],"NV8"],[[42183,42191],"disallowed"],[[42192,42237],"valid"],[[42238,42239],"valid",[],"NV8"],[[42240,42508],"valid"],[[42509,42511],"valid",[],"NV8"],[[42512,42539],"valid"],[[42540,42559],"disallowed"],[[42560,42560],"mapped",[42561]],[[42561,42561],"valid"],[[42562,42562],"mapped",[42563]],[[42563,42563],"valid"],[[42564,42564],"mapped",[42565]],[[42565,42565],"valid"],[[42566,42566],"mapped",[42567]],[[42567,42567],"valid"],[[42568,42568],"mapped",[42569]],[[42569,42569],"valid"],[[42570,42570],"mapped",[42571]],[[42571,42571],"valid"],[[42572,42572],"mapped",[42573]],[[42573,42573],"valid"],[[42574,42574],"mapped",[42575]],[[42575,42575],"valid"],[[42576,42576],"mapped",[42577]],[[42577,42577],"valid"],[[42578,42578],"mapped",[42579]],[[42579,42579],"valid"],[[42580,42580],"mapped",[42581]],[[42581,42581],"valid"],[[42582,42582],"mapped",[42583]],[[42583,42583],"valid"],[[42584,42584],"mapped",[42585]],[[42585,42585],"valid"],[[42586,42586],"mapped",[42587]],[[42587,42587],"valid"],[[42588,42588],"mapped",[42589]],[[42589,42589],"valid"],[[42590,42590],"mapped",[42591]],[[42591,42591],"valid"],[[42592,42592],"mapped",[42593]],[[42593,42593],"valid"],[[42594,42594],"mapped",[42595]],[[42595,42595],"valid"],[[42596,42596],"mapped",[42597]],[[42597,42597],"valid"],[[42598,42598],"mapped",[42599]],[[42599,42599],"valid"],[[42600,42600],"mapped",[42601]],[[42601,42601],"valid"],[[42602,42602],"mapped",[42603]],[[42603,42603],"valid"],[[42604,42604],"mapped",[42605]],[[42605,42607],"valid"],[[42608,42611],"valid",[],"NV8"],[[42612,42619],"valid"],[[42620,42621],"valid"],[[42622,42622],"valid",[],"NV8"],[[42623,42623],"valid"],[[42624,42624],"mapped",[42625]],[[42625,42625],"valid"],[[42626,42626],"mapped",[42627]],[[42627,42627],"valid"],[[42628,42628],"mapped",[42629]],[[42629,42629],"valid"],[[42630,42630],"mapped",[42631]],[[42631,42631],"valid"],[[42632,42632],"mapped",[42633]],[[42633,42633],"valid"],[[42634,42634],"mapped",[42635]],[[42635,42635],"valid"],[[42636,42636],"mapped",[42637]],[[42637,42637],"valid"],[[42638,42638],"mapped",[42639]],[[42639,42639],"valid"],[[42640,42640],"mapped",[42641]],[[42641,42641],"valid"],[[42642,42642],"mapped",[42643]],[[42643,42643],"valid"],[[42644,42644],"mapped",[42645]],[[42645,42645],"valid"],[[42646,42646],"mapped",[42647]],[[42647,42647],"valid"],[[42648,42648],"mapped",[42649]],[[42649,42649],"valid"],[[42650,42650],"mapped",[42651]],[[42651,42651],"valid"],[[42652,42652],"mapped",[1098]],[[42653,42653],"mapped",[1100]],[[42654,42654],"valid"],[[42655,42655],"valid"],[[42656,42725],"valid"],[[42726,42735],"valid",[],"NV8"],[[42736,42737],"valid"],[[42738,42743],"valid",[],"NV8"],[[42744,42751],"disallowed"],[[42752,42774],"valid",[],"NV8"],[[42775,42778],"valid"],[[42779,42783],"valid"],[[42784,42785],"valid",[],"NV8"],[[42786,42786],"mapped",[42787]],[[42787,42787],"valid"],[[42788,42788],"mapped",[42789]],[[42789,42789],"valid"],[[42790,42790],"mapped",[42791]],[[42791,42791],"valid"],[[42792,42792],"mapped",[42793]],[[42793,42793],"valid"],[[42794,42794],"mapped",[42795]],[[42795,42795],"valid"],[[42796,42796],"mapped",[42797]],[[42797,42797],"valid"],[[42798,42798],"mapped",[42799]],[[42799,42801],"valid"],[[42802,42802],"mapped",[42803]],[[42803,42803],"valid"],[[42804,42804],"mapped",[42805]],[[42805,42805],"valid"],[[42806,42806],"mapped",[42807]],[[42807,42807],"valid"],[[42808,42808],"mapped",[42809]],[[42809,42809],"valid"],[[42810,42810],"mapped",[42811]],[[42811,42811],"valid"],[[42812,42812],"mapped",[42813]],[[42813,42813],"valid"],[[42814,42814],"mapped",[42815]],[[42815,42815],"valid"],[[42816,42816],"mapped",[42817]],[[42817,42817],"valid"],[[42818,42818],"mapped",[42819]],[[42819,42819],"valid"],[[42820,42820],"mapped",[42821]],[[42821,42821],"valid"],[[42822,42822],"mapped",[42823]],[[42823,42823],"valid"],[[42824,42824],"mapped",[42825]],[[42825,42825],"valid"],[[42826,42826],"mapped",[42827]],[[42827,42827],"valid"],[[42828,42828],"mapped",[42829]],[[42829,42829],"valid"],[[42830,42830],"mapped",[42831]],[[42831,42831],"valid"],[[42832,42832],"mapped",[42833]],[[42833,42833],"valid"],[[42834,42834],"mapped",[42835]],[[42835,42835],"valid"],[[42836,42836],"mapped",[42837]],[[42837,42837],"valid"],[[42838,42838],"mapped",[42839]],[[42839,42839],"valid"],[[42840,42840],"mapped",[42841]],[[42841,42841],"valid"],[[42842,42842],"mapped",[42843]],[[42843,42843],"valid"],[[42844,42844],"mapped",[42845]],[[42845,42845],"valid"],[[42846,42846],"mapped",[42847]],[[42847,42847],"valid"],[[42848,42848],"mapped",[42849]],[[42849,42849],"valid"],[[42850,42850],"mapped",[42851]],[[42851,42851],"valid"],[[42852,42852],"mapped",[42853]],[[42853,42853],"valid"],[[42854,42854],"mapped",[42855]],[[42855,42855],"valid"],[[42856,42856],"mapped",[42857]],[[42857,42857],"valid"],[[42858,42858],"mapped",[42859]],[[42859,42859],"valid"],[[42860,42860],"mapped",[42861]],[[42861,42861],"valid"],[[42862,42862],"mapped",[42863]],[[42863,42863],"valid"],[[42864,42864],"mapped",[42863]],[[42865,42872],"valid"],[[42873,42873],"mapped",[42874]],[[42874,42874],"valid"],[[42875,42875],"mapped",[42876]],[[42876,42876],"valid"],[[42877,42877],"mapped",[7545]],[[42878,42878],"mapped",[42879]],[[42879,42879],"valid"],[[42880,42880],"mapped",[42881]],[[42881,42881],"valid"],[[42882,42882],"mapped",[42883]],[[42883,42883],"valid"],[[42884,42884],"mapped",[42885]],[[42885,42885],"valid"],[[42886,42886],"mapped",[42887]],[[42887,42888],"valid"],[[42889,42890],"valid",[],"NV8"],[[42891,42891],"mapped",[42892]],[[42892,42892],"valid"],[[42893,42893],"mapped",[613]],[[42894,42894],"valid"],[[42895,42895],"valid"],[[42896,42896],"mapped",[42897]],[[42897,42897],"valid"],[[42898,42898],"mapped",[42899]],[[42899,42899],"valid"],[[42900,42901],"valid"],[[42902,42902],"mapped",[42903]],[[42903,42903],"valid"],[[42904,42904],"mapped",[42905]],[[42905,42905],"valid"],[[42906,42906],"mapped",[42907]],[[42907,42907],"valid"],[[42908,42908],"mapped",[42909]],[[42909,42909],"valid"],[[42910,42910],"mapped",[42911]],[[42911,42911],"valid"],[[42912,42912],"mapped",[42913]],[[42913,42913],"valid"],[[42914,42914],"mapped",[42915]],[[42915,42915],"valid"],[[42916,42916],"mapped",[42917]],[[42917,42917],"valid"],[[42918,42918],"mapped",[42919]],[[42919,42919],"valid"],[[42920,42920],"mapped",[42921]],[[42921,42921],"valid"],[[42922,42922],"mapped",[614]],[[42923,42923],"mapped",[604]],[[42924,42924],"mapped",[609]],[[42925,42925],"mapped",[620]],[[42926,42927],"disallowed"],[[42928,42928],"mapped",[670]],[[42929,42929],"mapped",[647]],[[42930,42930],"mapped",[669]],[[42931,42931],"mapped",[43859]],[[42932,42932],"mapped",[42933]],[[42933,42933],"valid"],[[42934,42934],"mapped",[42935]],[[42935,42935],"valid"],[[42936,42998],"disallowed"],[[42999,42999],"valid"],[[43000,43000],"mapped",[295]],[[43001,43001],"mapped",[339]],[[43002,43002],"valid"],[[43003,43007],"valid"],[[43008,43047],"valid"],[[43048,43051],"valid",[],"NV8"],[[43052,43055],"disallowed"],[[43056,43065],"valid",[],"NV8"],[[43066,43071],"disallowed"],[[43072,43123],"valid"],[[43124,43127],"valid",[],"NV8"],[[43128,43135],"disallowed"],[[43136,43204],"valid"],[[43205,43213],"disallowed"],[[43214,43215],"valid",[],"NV8"],[[43216,43225],"valid"],[[43226,43231],"disallowed"],[[43232,43255],"valid"],[[43256,43258],"valid",[],"NV8"],[[43259,43259],"valid"],[[43260,43260],"valid",[],"NV8"],[[43261,43261],"valid"],[[43262,43263],"disallowed"],[[43264,43309],"valid"],[[43310,43311],"valid",[],"NV8"],[[43312,43347],"valid"],[[43348,43358],"disallowed"],[[43359,43359],"valid",[],"NV8"],[[43360,43388],"valid",[],"NV8"],[[43389,43391],"disallowed"],[[43392,43456],"valid"],[[43457,43469],"valid",[],"NV8"],[[43470,43470],"disallowed"],[[43471,43481],"valid"],[[43482,43485],"disallowed"],[[43486,43487],"valid",[],"NV8"],[[43488,43518],"valid"],[[43519,43519],"disallowed"],[[43520,43574],"valid"],[[43575,43583],"disallowed"],[[43584,43597],"valid"],[[43598,43599],"disallowed"],[[43600,43609],"valid"],[[43610,43611],"disallowed"],[[43612,43615],"valid",[],"NV8"],[[43616,43638],"valid"],[[43639,43641],"valid",[],"NV8"],[[43642,43643],"valid"],[[43644,43647],"valid"],[[43648,43714],"valid"],[[43715,43738],"disallowed"],[[43739,43741],"valid"],[[43742,43743],"valid",[],"NV8"],[[43744,43759],"valid"],[[43760,43761],"valid",[],"NV8"],[[43762,43766],"valid"],[[43767,43776],"disallowed"],[[43777,43782],"valid"],[[43783,43784],"disallowed"],[[43785,43790],"valid"],[[43791,43792],"disallowed"],[[43793,43798],"valid"],[[43799,43807],"disallowed"],[[43808,43814],"valid"],[[43815,43815],"disallowed"],[[43816,43822],"valid"],[[43823,43823],"disallowed"],[[43824,43866],"valid"],[[43867,43867],"valid",[],"NV8"],[[43868,43868],"mapped",[42791]],[[43869,43869],"mapped",[43831]],[[43870,43870],"mapped",[619]],[[43871,43871],"mapped",[43858]],[[43872,43875],"valid"],[[43876,43877],"valid"],[[43878,43887],"disallowed"],[[43888,43888],"mapped",[5024]],[[43889,43889],"mapped",[5025]],[[43890,43890],"mapped",[5026]],[[43891,43891],"mapped",[5027]],[[43892,43892],"mapped",[5028]],[[43893,43893],"mapped",[5029]],[[43894,43894],"mapped",[5030]],[[43895,43895],"mapped",[5031]],[[43896,43896],"mapped",[5032]],[[43897,43897],"mapped",[5033]],[[43898,43898],"mapped",[5034]],[[43899,43899],"mapped",[5035]],[[43900,43900],"mapped",[5036]],[[43901,43901],"mapped",[5037]],[[43902,43902],"mapped",[5038]],[[43903,43903],"mapped",[5039]],[[43904,43904],"mapped",[5040]],[[43905,43905],"mapped",[5041]],[[43906,43906],"mapped",[5042]],[[43907,43907],"mapped",[5043]],[[43908,43908],"mapped",[5044]],[[43909,43909],"mapped",[5045]],[[43910,43910],"mapped",[5046]],[[43911,43911],"mapped",[5047]],[[43912,43912],"mapped",[5048]],[[43913,43913],"mapped",[5049]],[[43914,43914],"mapped",[5050]],[[43915,43915],"mapped",[5051]],[[43916,43916],"mapped",[5052]],[[43917,43917],"mapped",[5053]],[[43918,43918],"mapped",[5054]],[[43919,43919],"mapped",[5055]],[[43920,43920],"mapped",[5056]],[[43921,43921],"mapped",[5057]],[[43922,43922],"mapped",[5058]],[[43923,43923],"mapped",[5059]],[[43924,43924],"mapped",[5060]],[[43925,43925],"mapped",[5061]],[[43926,43926],"mapped",[5062]],[[43927,43927],"mapped",[5063]],[[43928,43928],"mapped",[5064]],[[43929,43929],"mapped",[5065]],[[43930,43930],"mapped",[5066]],[[43931,43931],"mapped",[5067]],[[43932,43932],"mapped",[5068]],[[43933,43933],"mapped",[5069]],[[43934,43934],"mapped",[5070]],[[43935,43935],"mapped",[5071]],[[43936,43936],"mapped",[5072]],[[43937,43937],"mapped",[5073]],[[43938,43938],"mapped",[5074]],[[43939,43939],"mapped",[5075]],[[43940,43940],"mapped",[5076]],[[43941,43941],"mapped",[5077]],[[43942,43942],"mapped",[5078]],[[43943,43943],"mapped",[5079]],[[43944,43944],"mapped",[5080]],[[43945,43945],"mapped",[5081]],[[43946,43946],"mapped",[5082]],[[43947,43947],"mapped",[5083]],[[43948,43948],"mapped",[5084]],[[43949,43949],"mapped",[5085]],[[43950,43950],"mapped",[5086]],[[43951,43951],"mapped",[5087]],[[43952,43952],"mapped",[5088]],[[43953,43953],"mapped",[5089]],[[43954,43954],"mapped",[5090]],[[43955,43955],"mapped",[5091]],[[43956,43956],"mapped",[5092]],[[43957,43957],"mapped",[5093]],[[43958,43958],"mapped",[5094]],[[43959,43959],"mapped",[5095]],[[43960,43960],"mapped",[5096]],[[43961,43961],"mapped",[5097]],[[43962,43962],"mapped",[5098]],[[43963,43963],"mapped",[5099]],[[43964,43964],"mapped",[5100]],[[43965,43965],"mapped",[5101]],[[43966,43966],"mapped",[5102]],[[43967,43967],"mapped",[5103]],[[43968,44010],"valid"],[[44011,44011],"valid",[],"NV8"],[[44012,44013],"valid"],[[44014,44015],"disallowed"],[[44016,44025],"valid"],[[44026,44031],"disallowed"],[[44032,55203],"valid"],[[55204,55215],"disallowed"],[[55216,55238],"valid",[],"NV8"],[[55239,55242],"disallowed"],[[55243,55291],"valid",[],"NV8"],[[55292,55295],"disallowed"],[[55296,57343],"disallowed"],[[57344,63743],"disallowed"],[[63744,63744],"mapped",[35912]],[[63745,63745],"mapped",[26356]],[[63746,63746],"mapped",[36554]],[[63747,63747],"mapped",[36040]],[[63748,63748],"mapped",[28369]],[[63749,63749],"mapped",[20018]],[[63750,63750],"mapped",[21477]],[[63751,63752],"mapped",[40860]],[[63753,63753],"mapped",[22865]],[[63754,63754],"mapped",[37329]],[[63755,63755],"mapped",[21895]],[[63756,63756],"mapped",[22856]],[[63757,63757],"mapped",[25078]],[[63758,63758],"mapped",[30313]],[[63759,63759],"mapped",[32645]],[[63760,63760],"mapped",[34367]],[[63761,63761],"mapped",[34746]],[[63762,63762],"mapped",[35064]],[[63763,63763],"mapped",[37007]],[[63764,63764],"mapped",[27138]],[[63765,63765],"mapped",[27931]],[[63766,63766],"mapped",[28889]],[[63767,63767],"mapped",[29662]],[[63768,63768],"mapped",[33853]],[[63769,63769],"mapped",[37226]],[[63770,63770],"mapped",[39409]],[[63771,63771],"mapped",[20098]],[[63772,63772],"mapped",[21365]],[[63773,63773],"mapped",[27396]],[[63774,63774],"mapped",[29211]],[[63775,63775],"mapped",[34349]],[[63776,63776],"mapped",[40478]],[[63777,63777],"mapped",[23888]],[[63778,63778],"mapped",[28651]],[[63779,63779],"mapped",[34253]],[[63780,63780],"mapped",[35172]],[[63781,63781],"mapped",[25289]],[[63782,63782],"mapped",[33240]],[[63783,63783],"mapped",[34847]],[[63784,63784],"mapped",[24266]],[[63785,63785],"mapped",[26391]],[[63786,63786],"mapped",[28010]],[[63787,63787],"mapped",[29436]],[[63788,63788],"mapped",[37070]],[[63789,63789],"mapped",[20358]],[[63790,63790],"mapped",[20919]],[[63791,63791],"mapped",[21214]],[[63792,63792],"mapped",[25796]],[[63793,63793],"mapped",[27347]],[[63794,63794],"mapped",[29200]],[[63795,63795],"mapped",[30439]],[[63796,63796],"mapped",[32769]],[[63797,63797],"mapped",[34310]],[[63798,63798],"mapped",[34396]],[[63799,63799],"mapped",[36335]],[[63800,63800],"mapped",[38706]],[[63801,63801],"mapped",[39791]],[[63802,63802],"mapped",[40442]],[[63803,63803],"mapped",[30860]],[[63804,63804],"mapped",[31103]],[[63805,63805],"mapped",[32160]],[[63806,63806],"mapped",[33737]],[[63807,63807],"mapped",[37636]],[[63808,63808],"mapped",[40575]],[[63809,63809],"mapped",[35542]],[[63810,63810],"mapped",[22751]],[[63811,63811],"mapped",[24324]],[[63812,63812],"mapped",[31840]],[[63813,63813],"mapped",[32894]],[[63814,63814],"mapped",[29282]],[[63815,63815],"mapped",[30922]],[[63816,63816],"mapped",[36034]],[[63817,63817],"mapped",[38647]],[[63818,63818],"mapped",[22744]],[[63819,63819],"mapped",[23650]],[[63820,63820],"mapped",[27155]],[[63821,63821],"mapped",[28122]],[[63822,63822],"mapped",[28431]],[[63823,63823],"mapped",[32047]],[[63824,63824],"mapped",[32311]],[[63825,63825],"mapped",[38475]],[[63826,63826],"mapped",[21202]],[[63827,63827],"mapped",[32907]],[[63828,63828],"mapped",[20956]],[[63829,63829],"mapped",[20940]],[[63830,63830],"mapped",[31260]],[[63831,63831],"mapped",[32190]],[[63832,63832],"mapped",[33777]],[[63833,63833],"mapped",[38517]],[[63834,63834],"mapped",[35712]],[[63835,63835],"mapped",[25295]],[[63836,63836],"mapped",[27138]],[[63837,63837],"mapped",[35582]],[[63838,63838],"mapped",[20025]],[[63839,63839],"mapped",[23527]],[[63840,63840],"mapped",[24594]],[[63841,63841],"mapped",[29575]],[[63842,63842],"mapped",[30064]],[[63843,63843],"mapped",[21271]],[[63844,63844],"mapped",[30971]],[[63845,63845],"mapped",[20415]],[[63846,63846],"mapped",[24489]],[[63847,63847],"mapped",[19981]],[[63848,63848],"mapped",[27852]],[[63849,63849],"mapped",[25976]],[[63850,63850],"mapped",[32034]],[[63851,63851],"mapped",[21443]],[[63852,63852],"mapped",[22622]],[[63853,63853],"mapped",[30465]],[[63854,63854],"mapped",[33865]],[[63855,63855],"mapped",[35498]],[[63856,63856],"mapped",[27578]],[[63857,63857],"mapped",[36784]],[[63858,63858],"mapped",[27784]],[[63859,63859],"mapped",[25342]],[[63860,63860],"mapped",[33509]],[[63861,63861],"mapped",[25504]],[[63862,63862],"mapped",[30053]],[[63863,63863],"mapped",[20142]],[[63864,63864],"mapped",[20841]],[[63865,63865],"mapped",[20937]],[[63866,63866],"mapped",[26753]],[[63867,63867],"mapped",[31975]],[[63868,63868],"mapped",[33391]],[[63869,63869],"mapped",[35538]],[[63870,63870],"mapped",[37327]],[[63871,63871],"mapped",[21237]],[[63872,63872],"mapped",[21570]],[[63873,63873],"mapped",[22899]],[[63874,63874],"mapped",[24300]],[[63875,63875],"mapped",[26053]],[[63876,63876],"mapped",[28670]],[[63877,63877],"mapped",[31018]],[[63878,63878],"mapped",[38317]],[[63879,63879],"mapped",[39530]],[[63880,63880],"mapped",[40599]],[[63881,63881],"mapped",[40654]],[[63882,63882],"mapped",[21147]],[[63883,63883],"mapped",[26310]],[[63884,63884],"mapped",[27511]],[[63885,63885],"mapped",[36706]],[[63886,63886],"mapped",[24180]],[[63887,63887],"mapped",[24976]],[[63888,63888],"mapped",[25088]],[[63889,63889],"mapped",[25754]],[[63890,63890],"mapped",[28451]],[[63891,63891],"mapped",[29001]],[[63892,63892],"mapped",[29833]],[[63893,63893],"mapped",[31178]],[[63894,63894],"mapped",[32244]],[[63895,63895],"mapped",[32879]],[[63896,63896],"mapped",[36646]],[[63897,63897],"mapped",[34030]],[[63898,63898],"mapped",[36899]],[[63899,63899],"mapped",[37706]],[[63900,63900],"mapped",[21015]],[[63901,63901],"mapped",[21155]],[[63902,63902],"mapped",[21693]],[[63903,63903],"mapped",[28872]],[[63904,63904],"mapped",[35010]],[[63905,63905],"mapped",[35498]],[[63906,63906],"mapped",[24265]],[[63907,63907],"mapped",[24565]],[[63908,63908],"mapped",[25467]],[[63909,63909],"mapped",[27566]],[[63910,63910],"mapped",[31806]],[[63911,63911],"mapped",[29557]],[[63912,63912],"mapped",[20196]],[[63913,63913],"mapped",[22265]],[[63914,63914],"mapped",[23527]],[[63915,63915],"mapped",[23994]],[[63916,63916],"mapped",[24604]],[[63917,63917],"mapped",[29618]],[[63918,63918],"mapped",[29801]],[[63919,63919],"mapped",[32666]],[[63920,63920],"mapped",[32838]],[[63921,63921],"mapped",[37428]],[[63922,63922],"mapped",[38646]],[[63923,63923],"mapped",[38728]],[[63924,63924],"mapped",[38936]],[[63925,63925],"mapped",[20363]],[[63926,63926],"mapped",[31150]],[[63927,63927],"mapped",[37300]],[[63928,63928],"mapped",[38584]],[[63929,63929],"mapped",[24801]],[[63930,63930],"mapped",[20102]],[[63931,63931],"mapped",[20698]],[[63932,63932],"mapped",[23534]],[[63933,63933],"mapped",[23615]],[[63934,63934],"mapped",[26009]],[[63935,63935],"mapped",[27138]],[[63936,63936],"mapped",[29134]],[[63937,63937],"mapped",[30274]],[[63938,63938],"mapped",[34044]],[[63939,63939],"mapped",[36988]],[[63940,63940],"mapped",[40845]],[[63941,63941],"mapped",[26248]],[[63942,63942],"mapped",[38446]],[[63943,63943],"mapped",[21129]],[[63944,63944],"mapped",[26491]],[[63945,63945],"mapped",[26611]],[[63946,63946],"mapped",[27969]],[[63947,63947],"mapped",[28316]],[[63948,63948],"mapped",[29705]],[[63949,63949],"mapped",[30041]],[[63950,63950],"mapped",[30827]],[[63951,63951],"mapped",[32016]],[[63952,63952],"mapped",[39006]],[[63953,63953],"mapped",[20845]],[[63954,63954],"mapped",[25134]],[[63955,63955],"mapped",[38520]],[[63956,63956],"mapped",[20523]],[[63957,63957],"mapped",[23833]],[[63958,63958],"mapped",[28138]],[[63959,63959],"mapped",[36650]],[[63960,63960],"mapped",[24459]],[[63961,63961],"mapped",[24900]],[[63962,63962],"mapped",[26647]],[[63963,63963],"mapped",[29575]],[[63964,63964],"mapped",[38534]],[[63965,63965],"mapped",[21033]],[[63966,63966],"mapped",[21519]],[[63967,63967],"mapped",[23653]],[[63968,63968],"mapped",[26131]],[[63969,63969],"mapped",[26446]],[[63970,63970],"mapped",[26792]],[[63971,63971],"mapped",[27877]],[[63972,63972],"mapped",[29702]],[[63973,63973],"mapped",[30178]],[[63974,63974],"mapped",[32633]],[[63975,63975],"mapped",[35023]],[[63976,63976],"mapped",[35041]],[[63977,63977],"mapped",[37324]],[[63978,63978],"mapped",[38626]],[[63979,63979],"mapped",[21311]],[[63980,63980],"mapped",[28346]],[[63981,63981],"mapped",[21533]],[[63982,63982],"mapped",[29136]],[[63983,63983],"mapped",[29848]],[[63984,63984],"mapped",[34298]],[[63985,63985],"mapped",[38563]],[[63986,63986],"mapped",[40023]],[[63987,63987],"mapped",[40607]],[[63988,63988],"mapped",[26519]],[[63989,63989],"mapped",[28107]],[[63990,63990],"mapped",[33256]],[[63991,63991],"mapped",[31435]],[[63992,63992],"mapped",[31520]],[[63993,63993],"mapped",[31890]],[[63994,63994],"mapped",[29376]],[[63995,63995],"mapped",[28825]],[[63996,63996],"mapped",[35672]],[[63997,63997],"mapped",[20160]],[[63998,63998],"mapped",[33590]],[[63999,63999],"mapped",[21050]],[[64000,64000],"mapped",[20999]],[[64001,64001],"mapped",[24230]],[[64002,64002],"mapped",[25299]],[[64003,64003],"mapped",[31958]],[[64004,64004],"mapped",[23429]],[[64005,64005],"mapped",[27934]],[[64006,64006],"mapped",[26292]],[[64007,64007],"mapped",[36667]],[[64008,64008],"mapped",[34892]],[[64009,64009],"mapped",[38477]],[[64010,64010],"mapped",[35211]],[[64011,64011],"mapped",[24275]],[[64012,64012],"mapped",[20800]],[[64013,64013],"mapped",[21952]],[[64014,64015],"valid"],[[64016,64016],"mapped",[22618]],[[64017,64017],"valid"],[[64018,64018],"mapped",[26228]],[[64019,64020],"valid"],[[64021,64021],"mapped",[20958]],[[64022,64022],"mapped",[29482]],[[64023,64023],"mapped",[30410]],[[64024,64024],"mapped",[31036]],[[64025,64025],"mapped",[31070]],[[64026,64026],"mapped",[31077]],[[64027,64027],"mapped",[31119]],[[64028,64028],"mapped",[38742]],[[64029,64029],"mapped",[31934]],[[64030,64030],"mapped",[32701]],[[64031,64031],"valid"],[[64032,64032],"mapped",[34322]],[[64033,64033],"valid"],[[64034,64034],"mapped",[35576]],[[64035,64036],"valid"],[[64037,64037],"mapped",[36920]],[[64038,64038],"mapped",[37117]],[[64039,64041],"valid"],[[64042,64042],"mapped",[39151]],[[64043,64043],"mapped",[39164]],[[64044,64044],"mapped",[39208]],[[64045,64045],"mapped",[40372]],[[64046,64046],"mapped",[37086]],[[64047,64047],"mapped",[38583]],[[64048,64048],"mapped",[20398]],[[64049,64049],"mapped",[20711]],[[64050,64050],"mapped",[20813]],[[64051,64051],"mapped",[21193]],[[64052,64052],"mapped",[21220]],[[64053,64053],"mapped",[21329]],[[64054,64054],"mapped",[21917]],[[64055,64055],"mapped",[22022]],[[64056,64056],"mapped",[22120]],[[64057,64057],"mapped",[22592]],[[64058,64058],"mapped",[22696]],[[64059,64059],"mapped",[23652]],[[64060,64060],"mapped",[23662]],[[64061,64061],"mapped",[24724]],[[64062,64062],"mapped",[24936]],[[64063,64063],"mapped",[24974]],[[64064,64064],"mapped",[25074]],[[64065,64065],"mapped",[25935]],[[64066,64066],"mapped",[26082]],[[64067,64067],"mapped",[26257]],[[64068,64068],"mapped",[26757]],[[64069,64069],"mapped",[28023]],[[64070,64070],"mapped",[28186]],[[64071,64071],"mapped",[28450]],[[64072,64072],"mapped",[29038]],[[64073,64073],"mapped",[29227]],[[64074,64074],"mapped",[29730]],[[64075,64075],"mapped",[30865]],[[64076,64076],"mapped",[31038]],[[64077,64077],"mapped",[31049]],[[64078,64078],"mapped",[31048]],[[64079,64079],"mapped",[31056]],[[64080,64080],"mapped",[31062]],[[64081,64081],"mapped",[31069]],[[64082,64082],"mapped",[31117]],[[64083,64083],"mapped",[31118]],[[64084,64084],"mapped",[31296]],[[64085,64085],"mapped",[31361]],[[64086,64086],"mapped",[31680]],[[64087,64087],"mapped",[32244]],[[64088,64088],"mapped",[32265]],[[64089,64089],"mapped",[32321]],[[64090,64090],"mapped",[32626]],[[64091,64091],"mapped",[32773]],[[64092,64092],"mapped",[33261]],[[64093,64094],"mapped",[33401]],[[64095,64095],"mapped",[33879]],[[64096,64096],"mapped",[35088]],[[64097,64097],"mapped",[35222]],[[64098,64098],"mapped",[35585]],[[64099,64099],"mapped",[35641]],[[64100,64100],"mapped",[36051]],[[64101,64101],"mapped",[36104]],[[64102,64102],"mapped",[36790]],[[64103,64103],"mapped",[36920]],[[64104,64104],"mapped",[38627]],[[64105,64105],"mapped",[38911]],[[64106,64106],"mapped",[38971]],[[64107,64107],"mapped",[24693]],[[64108,64108],"mapped",[148206]],[[64109,64109],"mapped",[33304]],[[64110,64111],"disallowed"],[[64112,64112],"mapped",[20006]],[[64113,64113],"mapped",[20917]],[[64114,64114],"mapped",[20840]],[[64115,64115],"mapped",[20352]],[[64116,64116],"mapped",[20805]],[[64117,64117],"mapped",[20864]],[[64118,64118],"mapped",[21191]],[[64119,64119],"mapped",[21242]],[[64120,64120],"mapped",[21917]],[[64121,64121],"mapped",[21845]],[[64122,64122],"mapped",[21913]],[[64123,64123],"mapped",[21986]],[[64124,64124],"mapped",[22618]],[[64125,64125],"mapped",[22707]],[[64126,64126],"mapped",[22852]],[[64127,64127],"mapped",[22868]],[[64128,64128],"mapped",[23138]],[[64129,64129],"mapped",[23336]],[[64130,64130],"mapped",[24274]],[[64131,64131],"mapped",[24281]],[[64132,64132],"mapped",[24425]],[[64133,64133],"mapped",[24493]],[[64134,64134],"mapped",[24792]],[[64135,64135],"mapped",[24910]],[[64136,64136],"mapped",[24840]],[[64137,64137],"mapped",[24974]],[[64138,64138],"mapped",[24928]],[[64139,64139],"mapped",[25074]],[[64140,64140],"mapped",[25140]],[[64141,64141],"mapped",[25540]],[[64142,64142],"mapped",[25628]],[[64143,64143],"mapped",[25682]],[[64144,64144],"mapped",[25942]],[[64145,64145],"mapped",[26228]],[[64146,64146],"mapped",[26391]],[[64147,64147],"mapped",[26395]],[[64148,64148],"mapped",[26454]],[[64149,64149],"mapped",[27513]],[[64150,64150],"mapped",[27578]],[[64151,64151],"mapped",[27969]],[[64152,64152],"mapped",[28379]],[[64153,64153],"mapped",[28363]],[[64154,64154],"mapped",[28450]],[[64155,64155],"mapped",[28702]],[[64156,64156],"mapped",[29038]],[[64157,64157],"mapped",[30631]],[[64158,64158],"mapped",[29237]],[[64159,64159],"mapped",[29359]],[[64160,64160],"mapped",[29482]],[[64161,64161],"mapped",[29809]],[[64162,64162],"mapped",[29958]],[[64163,64163],"mapped",[30011]],[[64164,64164],"mapped",[30237]],[[64165,64165],"mapped",[30239]],[[64166,64166],"mapped",[30410]],[[64167,64167],"mapped",[30427]],[[64168,64168],"mapped",[30452]],[[64169,64169],"mapped",[30538]],[[64170,64170],"mapped",[30528]],[[64171,64171],"mapped",[30924]],[[64172,64172],"mapped",[31409]],[[64173,64173],"mapped",[31680]],[[64174,64174],"mapped",[31867]],[[64175,64175],"mapped",[32091]],[[64176,64176],"mapped",[32244]],[[64177,64177],"mapped",[32574]],[[64178,64178],"mapped",[32773]],[[64179,64179],"mapped",[33618]],[[64180,64180],"mapped",[33775]],[[64181,64181],"mapped",[34681]],[[64182,64182],"mapped",[35137]],[[64183,64183],"mapped",[35206]],[[64184,64184],"mapped",[35222]],[[64185,64185],"mapped",[35519]],[[64186,64186],"mapped",[35576]],[[64187,64187],"mapped",[35531]],[[64188,64188],"mapped",[35585]],[[64189,64189],"mapped",[35582]],[[64190,64190],"mapped",[35565]],[[64191,64191],"mapped",[35641]],[[64192,64192],"mapped",[35722]],[[64193,64193],"mapped",[36104]],[[64194,64194],"mapped",[36664]],[[64195,64195],"mapped",[36978]],[[64196,64196],"mapped",[37273]],[[64197,64197],"mapped",[37494]],[[64198,64198],"mapped",[38524]],[[64199,64199],"mapped",[38627]],[[64200,64200],"mapped",[38742]],[[64201,64201],"mapped",[38875]],[[64202,64202],"mapped",[38911]],[[64203,64203],"mapped",[38923]],[[64204,64204],"mapped",[38971]],[[64205,64205],"mapped",[39698]],[[64206,64206],"mapped",[40860]],[[64207,64207],"mapped",[141386]],[[64208,64208],"mapped",[141380]],[[64209,64209],"mapped",[144341]],[[64210,64210],"mapped",[15261]],[[64211,64211],"mapped",[16408]],[[64212,64212],"mapped",[16441]],[[64213,64213],"mapped",[152137]],[[64214,64214],"mapped",[154832]],[[64215,64215],"mapped",[163539]],[[64216,64216],"mapped",[40771]],[[64217,64217],"mapped",[40846]],[[64218,64255],"disallowed"],[[64256,64256],"mapped",[102,102]],[[64257,64257],"mapped",[102,105]],[[64258,64258],"mapped",[102,108]],[[64259,64259],"mapped",[102,102,105]],[[64260,64260],"mapped",[102,102,108]],[[64261,64262],"mapped",[115,116]],[[64263,64274],"disallowed"],[[64275,64275],"mapped",[1396,1398]],[[64276,64276],"mapped",[1396,1381]],[[64277,64277],"mapped",[1396,1387]],[[64278,64278],"mapped",[1406,1398]],[[64279,64279],"mapped",[1396,1389]],[[64280,64284],"disallowed"],[[64285,64285],"mapped",[1497,1460]],[[64286,64286],"valid"],[[64287,64287],"mapped",[1522,1463]],[[64288,64288],"mapped",[1506]],[[64289,64289],"mapped",[1488]],[[64290,64290],"mapped",[1491]],[[64291,64291],"mapped",[1492]],[[64292,64292],"mapped",[1499]],[[64293,64293],"mapped",[1500]],[[64294,64294],"mapped",[1501]],[[64295,64295],"mapped",[1512]],[[64296,64296],"mapped",[1514]],[[64297,64297],"disallowed_STD3_mapped",[43]],[[64298,64298],"mapped",[1513,1473]],[[64299,64299],"mapped",[1513,1474]],[[64300,64300],"mapped",[1513,1468,1473]],[[64301,64301],"mapped",[1513,1468,1474]],[[64302,64302],"mapped",[1488,1463]],[[64303,64303],"mapped",[1488,1464]],[[64304,64304],"mapped",[1488,1468]],[[64305,64305],"mapped",[1489,1468]],[[64306,64306],"mapped",[1490,1468]],[[64307,64307],"mapped",[1491,1468]],[[64308,64308],"mapped",[1492,1468]],[[64309,64309],"mapped",[1493,1468]],[[64310,64310],"mapped",[1494,1468]],[[64311,64311],"disallowed"],[[64312,64312],"mapped",[1496,1468]],[[64313,64313],"mapped",[1497,1468]],[[64314,64314],"mapped",[1498,1468]],[[64315,64315],"mapped",[1499,1468]],[[64316,64316],"mapped",[1500,1468]],[[64317,64317],"disallowed"],[[64318,64318],"mapped",[1502,1468]],[[64319,64319],"disallowed"],[[64320,64320],"mapped",[1504,1468]],[[64321,64321],"mapped",[1505,1468]],[[64322,64322],"disallowed"],[[64323,64323],"mapped",[1507,1468]],[[64324,64324],"mapped",[1508,1468]],[[64325,64325],"disallowed"],[[64326,64326],"mapped",[1510,1468]],[[64327,64327],"mapped",[1511,1468]],[[64328,64328],"mapped",[1512,1468]],[[64329,64329],"mapped",[1513,1468]],[[64330,64330],"mapped",[1514,1468]],[[64331,64331],"mapped",[1493,1465]],[[64332,64332],"mapped",[1489,1471]],[[64333,64333],"mapped",[1499,1471]],[[64334,64334],"mapped",[1508,1471]],[[64335,64335],"mapped",[1488,1500]],[[64336,64337],"mapped",[1649]],[[64338,64341],"mapped",[1659]],[[64342,64345],"mapped",[1662]],[[64346,64349],"mapped",[1664]],[[64350,64353],"mapped",[1658]],[[64354,64357],"mapped",[1663]],[[64358,64361],"mapped",[1657]],[[64362,64365],"mapped",[1700]],[[64366,64369],"mapped",[1702]],[[64370,64373],"mapped",[1668]],[[64374,64377],"mapped",[1667]],[[64378,64381],"mapped",[1670]],[[64382,64385],"mapped",[1671]],[[64386,64387],"mapped",[1677]],[[64388,64389],"mapped",[1676]],[[64390,64391],"mapped",[1678]],[[64392,64393],"mapped",[1672]],[[64394,64395],"mapped",[1688]],[[64396,64397],"mapped",[1681]],[[64398,64401],"mapped",[1705]],[[64402,64405],"mapped",[1711]],[[64406,64409],"mapped",[1715]],[[64410,64413],"mapped",[1713]],[[64414,64415],"mapped",[1722]],[[64416,64419],"mapped",[1723]],[[64420,64421],"mapped",[1728]],[[64422,64425],"mapped",[1729]],[[64426,64429],"mapped",[1726]],[[64430,64431],"mapped",[1746]],[[64432,64433],"mapped",[1747]],[[64434,64449],"valid",[],"NV8"],[[64450,64466],"disallowed"],[[64467,64470],"mapped",[1709]],[[64471,64472],"mapped",[1735]],[[64473,64474],"mapped",[1734]],[[64475,64476],"mapped",[1736]],[[64477,64477],"mapped",[1735,1652]],[[64478,64479],"mapped",[1739]],[[64480,64481],"mapped",[1733]],[[64482,64483],"mapped",[1737]],[[64484,64487],"mapped",[1744]],[[64488,64489],"mapped",[1609]],[[64490,64491],"mapped",[1574,1575]],[[64492,64493],"mapped",[1574,1749]],[[64494,64495],"mapped",[1574,1608]],[[64496,64497],"mapped",[1574,1735]],[[64498,64499],"mapped",[1574,1734]],[[64500,64501],"mapped",[1574,1736]],[[64502,64504],"mapped",[1574,1744]],[[64505,64507],"mapped",[1574,1609]],[[64508,64511],"mapped",[1740]],[[64512,64512],"mapped",[1574,1580]],[[64513,64513],"mapped",[1574,1581]],[[64514,64514],"mapped",[1574,1605]],[[64515,64515],"mapped",[1574,1609]],[[64516,64516],"mapped",[1574,1610]],[[64517,64517],"mapped",[1576,1580]],[[64518,64518],"mapped",[1576,1581]],[[64519,64519],"mapped",[1576,1582]],[[64520,64520],"mapped",[1576,1605]],[[64521,64521],"mapped",[1576,1609]],[[64522,64522],"mapped",[1576,1610]],[[64523,64523],"mapped",[1578,1580]],[[64524,64524],"mapped",[1578,1581]],[[64525,64525],"mapped",[1578,1582]],[[64526,64526],"mapped",[1578,1605]],[[64527,64527],"mapped",[1578,1609]],[[64528,64528],"mapped",[1578,1610]],[[64529,64529],"mapped",[1579,1580]],[[64530,64530],"mapped",[1579,1605]],[[64531,64531],"mapped",[1579,1609]],[[64532,64532],"mapped",[1579,1610]],[[64533,64533],"mapped",[1580,1581]],[[64534,64534],"mapped",[1580,1605]],[[64535,64535],"mapped",[1581,1580]],[[64536,64536],"mapped",[1581,1605]],[[64537,64537],"mapped",[1582,1580]],[[64538,64538],"mapped",[1582,1581]],[[64539,64539],"mapped",[1582,1605]],[[64540,64540],"mapped",[1587,1580]],[[64541,64541],"mapped",[1587,1581]],[[64542,64542],"mapped",[1587,1582]],[[64543,64543],"mapped",[1587,1605]],[[64544,64544],"mapped",[1589,1581]],[[64545,64545],"mapped",[1589,1605]],[[64546,64546],"mapped",[1590,1580]],[[64547,64547],"mapped",[1590,1581]],[[64548,64548],"mapped",[1590,1582]],[[64549,64549],"mapped",[1590,1605]],[[64550,64550],"mapped",[1591,1581]],[[64551,64551],"mapped",[1591,1605]],[[64552,64552],"mapped",[1592,1605]],[[64553,64553],"mapped",[1593,1580]],[[64554,64554],"mapped",[1593,1605]],[[64555,64555],"mapped",[1594,1580]],[[64556,64556],"mapped",[1594,1605]],[[64557,64557],"mapped",[1601,1580]],[[64558,64558],"mapped",[1601,1581]],[[64559,64559],"mapped",[1601,1582]],[[64560,64560],"mapped",[1601,1605]],[[64561,64561],"mapped",[1601,1609]],[[64562,64562],"mapped",[1601,1610]],[[64563,64563],"mapped",[1602,1581]],[[64564,64564],"mapped",[1602,1605]],[[64565,64565],"mapped",[1602,1609]],[[64566,64566],"mapped",[1602,1610]],[[64567,64567],"mapped",[1603,1575]],[[64568,64568],"mapped",[1603,1580]],[[64569,64569],"mapped",[1603,1581]],[[64570,64570],"mapped",[1603,1582]],[[64571,64571],"mapped",[1603,1604]],[[64572,64572],"mapped",[1603,1605]],[[64573,64573],"mapped",[1603,1609]],[[64574,64574],"mapped",[1603,1610]],[[64575,64575],"mapped",[1604,1580]],[[64576,64576],"mapped",[1604,1581]],[[64577,64577],"mapped",[1604,1582]],[[64578,64578],"mapped",[1604,1605]],[[64579,64579],"mapped",[1604,1609]],[[64580,64580],"mapped",[1604,1610]],[[64581,64581],"mapped",[1605,1580]],[[64582,64582],"mapped",[1605,1581]],[[64583,64583],"mapped",[1605,1582]],[[64584,64584],"mapped",[1605,1605]],[[64585,64585],"mapped",[1605,1609]],[[64586,64586],"mapped",[1605,1610]],[[64587,64587],"mapped",[1606,1580]],[[64588,64588],"mapped",[1606,1581]],[[64589,64589],"mapped",[1606,1582]],[[64590,64590],"mapped",[1606,1605]],[[64591,64591],"mapped",[1606,1609]],[[64592,64592],"mapped",[1606,1610]],[[64593,64593],"mapped",[1607,1580]],[[64594,64594],"mapped",[1607,1605]],[[64595,64595],"mapped",[1607,1609]],[[64596,64596],"mapped",[1607,1610]],[[64597,64597],"mapped",[1610,1580]],[[64598,64598],"mapped",[1610,1581]],[[64599,64599],"mapped",[1610,1582]],[[64600,64600],"mapped",[1610,1605]],[[64601,64601],"mapped",[1610,1609]],[[64602,64602],"mapped",[1610,1610]],[[64603,64603],"mapped",[1584,1648]],[[64604,64604],"mapped",[1585,1648]],[[64605,64605],"mapped",[1609,1648]],[[64606,64606],"disallowed_STD3_mapped",[32,1612,1617]],[[64607,64607],"disallowed_STD3_mapped",[32,1613,1617]],[[64608,64608],"disallowed_STD3_mapped",[32,1614,1617]],[[64609,64609],"disallowed_STD3_mapped",[32,1615,1617]],[[64610,64610],"disallowed_STD3_mapped",[32,1616,1617]],[[64611,64611],"disallowed_STD3_mapped",[32,1617,1648]],[[64612,64612],"mapped",[1574,1585]],[[64613,64613],"mapped",[1574,1586]],[[64614,64614],"mapped",[1574,1605]],[[64615,64615],"mapped",[1574,1606]],[[64616,64616],"mapped",[1574,1609]],[[64617,64617],"mapped",[1574,1610]],[[64618,64618],"mapped",[1576,1585]],[[64619,64619],"mapped",[1576,1586]],[[64620,64620],"mapped",[1576,1605]],[[64621,64621],"mapped",[1576,1606]],[[64622,64622],"mapped",[1576,1609]],[[64623,64623],"mapped",[1576,1610]],[[64624,64624],"mapped",[1578,1585]],[[64625,64625],"mapped",[1578,1586]],[[64626,64626],"mapped",[1578,1605]],[[64627,64627],"mapped",[1578,1606]],[[64628,64628],"mapped",[1578,1609]],[[64629,64629],"mapped",[1578,1610]],[[64630,64630],"mapped",[1579,1585]],[[64631,64631],"mapped",[1579,1586]],[[64632,64632],"mapped",[1579,1605]],[[64633,64633],"mapped",[1579,1606]],[[64634,64634],"mapped",[1579,1609]],[[64635,64635],"mapped",[1579,1610]],[[64636,64636],"mapped",[1601,1609]],[[64637,64637],"mapped",[1601,1610]],[[64638,64638],"mapped",[1602,1609]],[[64639,64639],"mapped",[1602,1610]],[[64640,64640],"mapped",[1603,1575]],[[64641,64641],"mapped",[1603,1604]],[[64642,64642],"mapped",[1603,1605]],[[64643,64643],"mapped",[1603,1609]],[[64644,64644],"mapped",[1603,1610]],[[64645,64645],"mapped",[1604,1605]],[[64646,64646],"mapped",[1604,1609]],[[64647,64647],"mapped",[1604,1610]],[[64648,64648],"mapped",[1605,1575]],[[64649,64649],"mapped",[1605,1605]],[[64650,64650],"mapped",[1606,1585]],[[64651,64651],"mapped",[1606,1586]],[[64652,64652],"mapped",[1606,1605]],[[64653,64653],"mapped",[1606,1606]],[[64654,64654],"mapped",[1606,1609]],[[64655,64655],"mapped",[1606,1610]],[[64656,64656],"mapped",[1609,1648]],[[64657,64657],"mapped",[1610,1585]],[[64658,64658],"mapped",[1610,1586]],[[64659,64659],"mapped",[1610,1605]],[[64660,64660],"mapped",[1610,1606]],[[64661,64661],"mapped",[1610,1609]],[[64662,64662],"mapped",[1610,1610]],[[64663,64663],"mapped",[1574,1580]],[[64664,64664],"mapped",[1574,1581]],[[64665,64665],"mapped",[1574,1582]],[[64666,64666],"mapped",[1574,1605]],[[64667,64667],"mapped",[1574,1607]],[[64668,64668],"mapped",[1576,1580]],[[64669,64669],"mapped",[1576,1581]],[[64670,64670],"mapped",[1576,1582]],[[64671,64671],"mapped",[1576,1605]],[[64672,64672],"mapped",[1576,1607]],[[64673,64673],"mapped",[1578,1580]],[[64674,64674],"mapped",[1578,1581]],[[64675,64675],"mapped",[1578,1582]],[[64676,64676],"mapped",[1578,1605]],[[64677,64677],"mapped",[1578,1607]],[[64678,64678],"mapped",[1579,1605]],[[64679,64679],"mapped",[1580,1581]],[[64680,64680],"mapped",[1580,1605]],[[64681,64681],"mapped",[1581,1580]],[[64682,64682],"mapped",[1581,1605]],[[64683,64683],"mapped",[1582,1580]],[[64684,64684],"mapped",[1582,1605]],[[64685,64685],"mapped",[1587,1580]],[[64686,64686],"mapped",[1587,1581]],[[64687,64687],"mapped",[1587,1582]],[[64688,64688],"mapped",[1587,1605]],[[64689,64689],"mapped",[1589,1581]],[[64690,64690],"mapped",[1589,1582]],[[64691,64691],"mapped",[1589,1605]],[[64692,64692],"mapped",[1590,1580]],[[64693,64693],"mapped",[1590,1581]],[[64694,64694],"mapped",[1590,1582]],[[64695,64695],"mapped",[1590,1605]],[[64696,64696],"mapped",[1591,1581]],[[64697,64697],"mapped",[1592,1605]],[[64698,64698],"mapped",[1593,1580]],[[64699,64699],"mapped",[1593,1605]],[[64700,64700],"mapped",[1594,1580]],[[64701,64701],"mapped",[1594,1605]],[[64702,64702],"mapped",[1601,1580]],[[64703,64703],"mapped",[1601,1581]],[[64704,64704],"mapped",[1601,1582]],[[64705,64705],"mapped",[1601,1605]],[[64706,64706],"mapped",[1602,1581]],[[64707,64707],"mapped",[1602,1605]],[[64708,64708],"mapped",[1603,1580]],[[64709,64709],"mapped",[1603,1581]],[[64710,64710],"mapped",[1603,1582]],[[64711,64711],"mapped",[1603,1604]],[[64712,64712],"mapped",[1603,1605]],[[64713,64713],"mapped",[1604,1580]],[[64714,64714],"mapped",[1604,1581]],[[64715,64715],"mapped",[1604,1582]],[[64716,64716],"mapped",[1604,1605]],[[64717,64717],"mapped",[1604,1607]],[[64718,64718],"mapped",[1605,1580]],[[64719,64719],"mapped",[1605,1581]],[[64720,64720],"mapped",[1605,1582]],[[64721,64721],"mapped",[1605,1605]],[[64722,64722],"mapped",[1606,1580]],[[64723,64723],"mapped",[1606,1581]],[[64724,64724],"mapped",[1606,1582]],[[64725,64725],"mapped",[1606,1605]],[[64726,64726],"mapped",[1606,1607]],[[64727,64727],"mapped",[1607,1580]],[[64728,64728],"mapped",[1607,1605]],[[64729,64729],"mapped",[1607,1648]],[[64730,64730],"mapped",[1610,1580]],[[64731,64731],"mapped",[1610,1581]],[[64732,64732],"mapped",[1610,1582]],[[64733,64733],"mapped",[1610,1605]],[[64734,64734],"mapped",[1610,1607]],[[64735,64735],"mapped",[1574,1605]],[[64736,64736],"mapped",[1574,1607]],[[64737,64737],"mapped",[1576,1605]],[[64738,64738],"mapped",[1576,1607]],[[64739,64739],"mapped",[1578,1605]],[[64740,64740],"mapped",[1578,1607]],[[64741,64741],"mapped",[1579,1605]],[[64742,64742],"mapped",[1579,1607]],[[64743,64743],"mapped",[1587,1605]],[[64744,64744],"mapped",[1587,1607]],[[64745,64745],"mapped",[1588,1605]],[[64746,64746],"mapped",[1588,1607]],[[64747,64747],"mapped",[1603,1604]],[[64748,64748],"mapped",[1603,1605]],[[64749,64749],"mapped",[1604,1605]],[[64750,64750],"mapped",[1606,1605]],[[64751,64751],"mapped",[1606,1607]],[[64752,64752],"mapped",[1610,1605]],[[64753,64753],"mapped",[1610,1607]],[[64754,64754],"mapped",[1600,1614,1617]],[[64755,64755],"mapped",[1600,1615,1617]],[[64756,64756],"mapped",[1600,1616,1617]],[[64757,64757],"mapped",[1591,1609]],[[64758,64758],"mapped",[1591,1610]],[[64759,64759],"mapped",[1593,1609]],[[64760,64760],"mapped",[1593,1610]],[[64761,64761],"mapped",[1594,1609]],[[64762,64762],"mapped",[1594,1610]],[[64763,64763],"mapped",[1587,1609]],[[64764,64764],"mapped",[1587,1610]],[[64765,64765],"mapped",[1588,1609]],[[64766,64766],"mapped",[1588,1610]],[[64767,64767],"mapped",[1581,1609]],[[64768,64768],"mapped",[1581,1610]],[[64769,64769],"mapped",[1580,1609]],[[64770,64770],"mapped",[1580,1610]],[[64771,64771],"mapped",[1582,1609]],[[64772,64772],"mapped",[1582,1610]],[[64773,64773],"mapped",[1589,1609]],[[64774,64774],"mapped",[1589,1610]],[[64775,64775],"mapped",[1590,1609]],[[64776,64776],"mapped",[1590,1610]],[[64777,64777],"mapped",[1588,1580]],[[64778,64778],"mapped",[1588,1581]],[[64779,64779],"mapped",[1588,1582]],[[64780,64780],"mapped",[1588,1605]],[[64781,64781],"mapped",[1588,1585]],[[64782,64782],"mapped",[1587,1585]],[[64783,64783],"mapped",[1589,1585]],[[64784,64784],"mapped",[1590,1585]],[[64785,64785],"mapped",[1591,1609]],[[64786,64786],"mapped",[1591,1610]],[[64787,64787],"mapped",[1593,1609]],[[64788,64788],"mapped",[1593,1610]],[[64789,64789],"mapped",[1594,1609]],[[64790,64790],"mapped",[1594,1610]],[[64791,64791],"mapped",[1587,1609]],[[64792,64792],"mapped",[1587,1610]],[[64793,64793],"mapped",[1588,1609]],[[64794,64794],"mapped",[1588,1610]],[[64795,64795],"mapped",[1581,1609]],[[64796,64796],"mapped",[1581,1610]],[[64797,64797],"mapped",[1580,1609]],[[64798,64798],"mapped",[1580,1610]],[[64799,64799],"mapped",[1582,1609]],[[64800,64800],"mapped",[1582,1610]],[[64801,64801],"mapped",[1589,1609]],[[64802,64802],"mapped",[1589,1610]],[[64803,64803],"mapped",[1590,1609]],[[64804,64804],"mapped",[1590,1610]],[[64805,64805],"mapped",[1588,1580]],[[64806,64806],"mapped",[1588,1581]],[[64807,64807],"mapped",[1588,1582]],[[64808,64808],"mapped",[1588,1605]],[[64809,64809],"mapped",[1588,1585]],[[64810,64810],"mapped",[1587,1585]],[[64811,64811],"mapped",[1589,1585]],[[64812,64812],"mapped",[1590,1585]],[[64813,64813],"mapped",[1588,1580]],[[64814,64814],"mapped",[1588,1581]],[[64815,64815],"mapped",[1588,1582]],[[64816,64816],"mapped",[1588,1605]],[[64817,64817],"mapped",[1587,1607]],[[64818,64818],"mapped",[1588,1607]],[[64819,64819],"mapped",[1591,1605]],[[64820,64820],"mapped",[1587,1580]],[[64821,64821],"mapped",[1587,1581]],[[64822,64822],"mapped",[1587,1582]],[[64823,64823],"mapped",[1588,1580]],[[64824,64824],"mapped",[1588,1581]],[[64825,64825],"mapped",[1588,1582]],[[64826,64826],"mapped",[1591,1605]],[[64827,64827],"mapped",[1592,1605]],[[64828,64829],"mapped",[1575,1611]],[[64830,64831],"valid",[],"NV8"],[[64832,64847],"disallowed"],[[64848,64848],"mapped",[1578,1580,1605]],[[64849,64850],"mapped",[1578,1581,1580]],[[64851,64851],"mapped",[1578,1581,1605]],[[64852,64852],"mapped",[1578,1582,1605]],[[64853,64853],"mapped",[1578,1605,1580]],[[64854,64854],"mapped",[1578,1605,1581]],[[64855,64855],"mapped",[1578,1605,1582]],[[64856,64857],"mapped",[1580,1605,1581]],[[64858,64858],"mapped",[1581,1605,1610]],[[64859,64859],"mapped",[1581,1605,1609]],[[64860,64860],"mapped",[1587,1581,1580]],[[64861,64861],"mapped",[1587,1580,1581]],[[64862,64862],"mapped",[1587,1580,1609]],[[64863,64864],"mapped",[1587,1605,1581]],[[64865,64865],"mapped",[1587,1605,1580]],[[64866,64867],"mapped",[1587,1605,1605]],[[64868,64869],"mapped",[1589,1581,1581]],[[64870,64870],"mapped",[1589,1605,1605]],[[64871,64872],"mapped",[1588,1581,1605]],[[64873,64873],"mapped",[1588,1580,1610]],[[64874,64875],"mapped",[1588,1605,1582]],[[64876,64877],"mapped",[1588,1605,1605]],[[64878,64878],"mapped",[1590,1581,1609]],[[64879,64880],"mapped",[1590,1582,1605]],[[64881,64882],"mapped",[1591,1605,1581]],[[64883,64883],"mapped",[1591,1605,1605]],[[64884,64884],"mapped",[1591,1605,1610]],[[64885,64885],"mapped",[1593,1580,1605]],[[64886,64887],"mapped",[1593,1605,1605]],[[64888,64888],"mapped",[1593,1605,1609]],[[64889,64889],"mapped",[1594,1605,1605]],[[64890,64890],"mapped",[1594,1605,1610]],[[64891,64891],"mapped",[1594,1605,1609]],[[64892,64893],"mapped",[1601,1582,1605]],[[64894,64894],"mapped",[1602,1605,1581]],[[64895,64895],"mapped",[1602,1605,1605]],[[64896,64896],"mapped",[1604,1581,1605]],[[64897,64897],"mapped",[1604,1581,1610]],[[64898,64898],"mapped",[1604,1581,1609]],[[64899,64900],"mapped",[1604,1580,1580]],[[64901,64902],"mapped",[1604,1582,1605]],[[64903,64904],"mapped",[1604,1605,1581]],[[64905,64905],"mapped",[1605,1581,1580]],[[64906,64906],"mapped",[1605,1581,1605]],[[64907,64907],"mapped",[1605,1581,1610]],[[64908,64908],"mapped",[1605,1580,1581]],[[64909,64909],"mapped",[1605,1580,1605]],[[64910,64910],"mapped",[1605,1582,1580]],[[64911,64911],"mapped",[1605,1582,1605]],[[64912,64913],"disallowed"],[[64914,64914],"mapped",[1605,1580,1582]],[[64915,64915],"mapped",[1607,1605,1580]],[[64916,64916],"mapped",[1607,1605,1605]],[[64917,64917],"mapped",[1606,1581,1605]],[[64918,64918],"mapped",[1606,1581,1609]],[[64919,64920],"mapped",[1606,1580,1605]],[[64921,64921],"mapped",[1606,1580,1609]],[[64922,64922],"mapped",[1606,1605,1610]],[[64923,64923],"mapped",[1606,1605,1609]],[[64924,64925],"mapped",[1610,1605,1605]],[[64926,64926],"mapped",[1576,1582,1610]],[[64927,64927],"mapped",[1578,1580,1610]],[[64928,64928],"mapped",[1578,1580,1609]],[[64929,64929],"mapped",[1578,1582,1610]],[[64930,64930],"mapped",[1578,1582,1609]],[[64931,64931],"mapped",[1578,1605,1610]],[[64932,64932],"mapped",[1578,1605,1609]],[[64933,64933],"mapped",[1580,1605,1610]],[[64934,64934],"mapped",[1580,1581,1609]],[[64935,64935],"mapped",[1580,1605,1609]],[[64936,64936],"mapped",[1587,1582,1609]],[[64937,64937],"mapped",[1589,1581,1610]],[[64938,64938],"mapped",[1588,1581,1610]],[[64939,64939],"mapped",[1590,1581,1610]],[[64940,64940],"mapped",[1604,1580,1610]],[[64941,64941],"mapped",[1604,1605,1610]],[[64942,64942],"mapped",[1610,1581,1610]],[[64943,64943],"mapped",[1610,1580,1610]],[[64944,64944],"mapped",[1610,1605,1610]],[[64945,64945],"mapped",[1605,1605,1610]],[[64946,64946],"mapped",[1602,1605,1610]],[[64947,64947],"mapped",[1606,1581,1610]],[[64948,64948],"mapped",[1602,1605,1581]],[[64949,64949],"mapped",[1604,1581,1605]],[[64950,64950],"mapped",[1593,1605,1610]],[[64951,64951],"mapped",[1603,1605,1610]],[[64952,64952],"mapped",[1606,1580,1581]],[[64953,64953],"mapped",[1605,1582,1610]],[[64954,64954],"mapped",[1604,1580,1605]],[[64955,64955],"mapped",[1603,1605,1605]],[[64956,64956],"mapped",[1604,1580,1605]],[[64957,64957],"mapped",[1606,1580,1581]],[[64958,64958],"mapped",[1580,1581,1610]],[[64959,64959],"mapped",[1581,1580,1610]],[[64960,64960],"mapped",[1605,1580,1610]],[[64961,64961],"mapped",[1601,1605,1610]],[[64962,64962],"mapped",[1576,1581,1610]],[[64963,64963],"mapped",[1603,1605,1605]],[[64964,64964],"mapped",[1593,1580,1605]],[[64965,64965],"mapped",[1589,1605,1605]],[[64966,64966],"mapped",[1587,1582,1610]],[[64967,64967],"mapped",[1606,1580,1610]],[[64968,64975],"disallowed"],[[64976,65007],"disallowed"],[[65008,65008],"mapped",[1589,1604,1746]],[[65009,65009],"mapped",[1602,1604,1746]],[[65010,65010],"mapped",[1575,1604,1604,1607]],[[65011,65011],"mapped",[1575,1603,1576,1585]],[[65012,65012],"mapped",[1605,1581,1605,1583]],[[65013,65013],"mapped",[1589,1604,1593,1605]],[[65014,65014],"mapped",[1585,1587,1608,1604]],[[65015,65015],"mapped",[1593,1604,1610,1607]],[[65016,65016],"mapped",[1608,1587,1604,1605]],[[65017,65017],"mapped",[1589,1604,1609]],[[65018,65018],"disallowed_STD3_mapped",[1589,1604,1609,32,1575,1604,1604,1607,32,1593,1604,1610,1607,32,1608,1587,1604,1605]],[[65019,65019],"disallowed_STD3_mapped",[1580,1604,32,1580,1604,1575,1604,1607]],[[65020,65020],"mapped",[1585,1740,1575,1604]],[[65021,65021],"valid",[],"NV8"],[[65022,65023],"disallowed"],[[65024,65039],"ignored"],[[65040,65040],"disallowed_STD3_mapped",[44]],[[65041,65041],"mapped",[12289]],[[65042,65042],"disallowed"],[[65043,65043],"disallowed_STD3_mapped",[58]],[[65044,65044],"disallowed_STD3_mapped",[59]],[[65045,65045],"disallowed_STD3_mapped",[33]],[[65046,65046],"disallowed_STD3_mapped",[63]],[[65047,65047],"mapped",[12310]],[[65048,65048],"mapped",[12311]],[[65049,65049],"disallowed"],[[65050,65055],"disallowed"],[[65056,65059],"valid"],[[65060,65062],"valid"],[[65063,65069],"valid"],[[65070,65071],"valid"],[[65072,65072],"disallowed"],[[65073,65073],"mapped",[8212]],[[65074,65074],"mapped",[8211]],[[65075,65076],"disallowed_STD3_mapped",[95]],[[65077,65077],"disallowed_STD3_mapped",[40]],[[65078,65078],"disallowed_STD3_mapped",[41]],[[65079,65079],"disallowed_STD3_mapped",[123]],[[65080,65080],"disallowed_STD3_mapped",[125]],[[65081,65081],"mapped",[12308]],[[65082,65082],"mapped",[12309]],[[65083,65083],"mapped",[12304]],[[65084,65084],"mapped",[12305]],[[65085,65085],"mapped",[12298]],[[65086,65086],"mapped",[12299]],[[65087,65087],"mapped",[12296]],[[65088,65088],"mapped",[12297]],[[65089,65089],"mapped",[12300]],[[65090,65090],"mapped",[12301]],[[65091,65091],"mapped",[12302]],[[65092,65092],"mapped",[12303]],[[65093,65094],"valid",[],"NV8"],[[65095,65095],"disallowed_STD3_mapped",[91]],[[65096,65096],"disallowed_STD3_mapped",[93]],[[65097,65100],"disallowed_STD3_mapped",[32,773]],[[65101,65103],"disallowed_STD3_mapped",[95]],[[65104,65104],"disallowed_STD3_mapped",[44]],[[65105,65105],"mapped",[12289]],[[65106,65106],"disallowed"],[[65107,65107],"disallowed"],[[65108,65108],"disallowed_STD3_mapped",[59]],[[65109,65109],"disallowed_STD3_mapped",[58]],[[65110,65110],"disallowed_STD3_mapped",[63]],[[65111,65111],"disallowed_STD3_mapped",[33]],[[65112,65112],"mapped",[8212]],[[65113,65113],"disallowed_STD3_mapped",[40]],[[65114,65114],"disallowed_STD3_mapped",[41]],[[65115,65115],"disallowed_STD3_mapped",[123]],[[65116,65116],"disallowed_STD3_mapped",[125]],[[65117,65117],"mapped",[12308]],[[65118,65118],"mapped",[12309]],[[65119,65119],"disallowed_STD3_mapped",[35]],[[65120,65120],"disallowed_STD3_mapped",[38]],[[65121,65121],"disallowed_STD3_mapped",[42]],[[65122,65122],"disallowed_STD3_mapped",[43]],[[65123,65123],"mapped",[45]],[[65124,65124],"disallowed_STD3_mapped",[60]],[[65125,65125],"disallowed_STD3_mapped",[62]],[[65126,65126],"disallowed_STD3_mapped",[61]],[[65127,65127],"disallowed"],[[65128,65128],"disallowed_STD3_mapped",[92]],[[65129,65129],"disallowed_STD3_mapped",[36]],[[65130,65130],"disallowed_STD3_mapped",[37]],[[65131,65131],"disallowed_STD3_mapped",[64]],[[65132,65135],"disallowed"],[[65136,65136],"disallowed_STD3_mapped",[32,1611]],[[65137,65137],"mapped",[1600,1611]],[[65138,65138],"disallowed_STD3_mapped",[32,1612]],[[65139,65139],"valid"],[[65140,65140],"disallowed_STD3_mapped",[32,1613]],[[65141,65141],"disallowed"],[[65142,65142],"disallowed_STD3_mapped",[32,1614]],[[65143,65143],"mapped",[1600,1614]],[[65144,65144],"disallowed_STD3_mapped",[32,1615]],[[65145,65145],"mapped",[1600,1615]],[[65146,65146],"disallowed_STD3_mapped",[32,1616]],[[65147,65147],"mapped",[1600,1616]],[[65148,65148],"disallowed_STD3_mapped",[32,1617]],[[65149,65149],"mapped",[1600,1617]],[[65150,65150],"disallowed_STD3_mapped",[32,1618]],[[65151,65151],"mapped",[1600,1618]],[[65152,65152],"mapped",[1569]],[[65153,65154],"mapped",[1570]],[[65155,65156],"mapped",[1571]],[[65157,65158],"mapped",[1572]],[[65159,65160],"mapped",[1573]],[[65161,65164],"mapped",[1574]],[[65165,65166],"mapped",[1575]],[[65167,65170],"mapped",[1576]],[[65171,65172],"mapped",[1577]],[[65173,65176],"mapped",[1578]],[[65177,65180],"mapped",[1579]],[[65181,65184],"mapped",[1580]],[[65185,65188],"mapped",[1581]],[[65189,65192],"mapped",[1582]],[[65193,65194],"mapped",[1583]],[[65195,65196],"mapped",[1584]],[[65197,65198],"mapped",[1585]],[[65199,65200],"mapped",[1586]],[[65201,65204],"mapped",[1587]],[[65205,65208],"mapped",[1588]],[[65209,65212],"mapped",[1589]],[[65213,65216],"mapped",[1590]],[[65217,65220],"mapped",[1591]],[[65221,65224],"mapped",[1592]],[[65225,65228],"mapped",[1593]],[[65229,65232],"mapped",[1594]],[[65233,65236],"mapped",[1601]],[[65237,65240],"mapped",[1602]],[[65241,65244],"mapped",[1603]],[[65245,65248],"mapped",[1604]],[[65249,65252],"mapped",[1605]],[[65253,65256],"mapped",[1606]],[[65257,65260],"mapped",[1607]],[[65261,65262],"mapped",[1608]],[[65263,65264],"mapped",[1609]],[[65265,65268],"mapped",[1610]],[[65269,65270],"mapped",[1604,1570]],[[65271,65272],"mapped",[1604,1571]],[[65273,65274],"mapped",[1604,1573]],[[65275,65276],"mapped",[1604,1575]],[[65277,65278],"disallowed"],[[65279,65279],"ignored"],[[65280,65280],"disallowed"],[[65281,65281],"disallowed_STD3_mapped",[33]],[[65282,65282],"disallowed_STD3_mapped",[34]],[[65283,65283],"disallowed_STD3_mapped",[35]],[[65284,65284],"disallowed_STD3_mapped",[36]],[[65285,65285],"disallowed_STD3_mapped",[37]],[[65286,65286],"disallowed_STD3_mapped",[38]],[[65287,65287],"disallowed_STD3_mapped",[39]],[[65288,65288],"disallowed_STD3_mapped",[40]],[[65289,65289],"disallowed_STD3_mapped",[41]],[[65290,65290],"disallowed_STD3_mapped",[42]],[[65291,65291],"disallowed_STD3_mapped",[43]],[[65292,65292],"disallowed_STD3_mapped",[44]],[[65293,65293],"mapped",[45]],[[65294,65294],"mapped",[46]],[[65295,65295],"disallowed_STD3_mapped",[47]],[[65296,65296],"mapped",[48]],[[65297,65297],"mapped",[49]],[[65298,65298],"mapped",[50]],[[65299,65299],"mapped",[51]],[[65300,65300],"mapped",[52]],[[65301,65301],"mapped",[53]],[[65302,65302],"mapped",[54]],[[65303,65303],"mapped",[55]],[[65304,65304],"mapped",[56]],[[65305,65305],"mapped",[57]],[[65306,65306],"disallowed_STD3_mapped",[58]],[[65307,65307],"disallowed_STD3_mapped",[59]],[[65308,65308],"disallowed_STD3_mapped",[60]],[[65309,65309],"disallowed_STD3_mapped",[61]],[[65310,65310],"disallowed_STD3_mapped",[62]],[[65311,65311],"disallowed_STD3_mapped",[63]],[[65312,65312],"disallowed_STD3_mapped",[64]],[[65313,65313],"mapped",[97]],[[65314,65314],"mapped",[98]],[[65315,65315],"mapped",[99]],[[65316,65316],"mapped",[100]],[[65317,65317],"mapped",[101]],[[65318,65318],"mapped",[102]],[[65319,65319],"mapped",[103]],[[65320,65320],"mapped",[104]],[[65321,65321],"mapped",[105]],[[65322,65322],"mapped",[106]],[[65323,65323],"mapped",[107]],[[65324,65324],"mapped",[108]],[[65325,65325],"mapped",[109]],[[65326,65326],"mapped",[110]],[[65327,65327],"mapped",[111]],[[65328,65328],"mapped",[112]],[[65329,65329],"mapped",[113]],[[65330,65330],"mapped",[114]],[[65331,65331],"mapped",[115]],[[65332,65332],"mapped",[116]],[[65333,65333],"mapped",[117]],[[65334,65334],"mapped",[118]],[[65335,65335],"mapped",[119]],[[65336,65336],"mapped",[120]],[[65337,65337],"mapped",[121]],[[65338,65338],"mapped",[122]],[[65339,65339],"disallowed_STD3_mapped",[91]],[[65340,65340],"disallowed_STD3_mapped",[92]],[[65341,65341],"disallowed_STD3_mapped",[93]],[[65342,65342],"disallowed_STD3_mapped",[94]],[[65343,65343],"disallowed_STD3_mapped",[95]],[[65344,65344],"disallowed_STD3_mapped",[96]],[[65345,65345],"mapped",[97]],[[65346,65346],"mapped",[98]],[[65347,65347],"mapped",[99]],[[65348,65348],"mapped",[100]],[[65349,65349],"mapped",[101]],[[65350,65350],"mapped",[102]],[[65351,65351],"mapped",[103]],[[65352,65352],"mapped",[104]],[[65353,65353],"mapped",[105]],[[65354,65354],"mapped",[106]],[[65355,65355],"mapped",[107]],[[65356,65356],"mapped",[108]],[[65357,65357],"mapped",[109]],[[65358,65358],"mapped",[110]],[[65359,65359],"mapped",[111]],[[65360,65360],"mapped",[112]],[[65361,65361],"mapped",[113]],[[65362,65362],"mapped",[114]],[[65363,65363],"mapped",[115]],[[65364,65364],"mapped",[116]],[[65365,65365],"mapped",[117]],[[65366,65366],"mapped",[118]],[[65367,65367],"mapped",[119]],[[65368,65368],"mapped",[120]],[[65369,65369],"mapped",[121]],[[65370,65370],"mapped",[122]],[[65371,65371],"disallowed_STD3_mapped",[123]],[[65372,65372],"disallowed_STD3_mapped",[124]],[[65373,65373],"disallowed_STD3_mapped",[125]],[[65374,65374],"disallowed_STD3_mapped",[126]],[[65375,65375],"mapped",[10629]],[[65376,65376],"mapped",[10630]],[[65377,65377],"mapped",[46]],[[65378,65378],"mapped",[12300]],[[65379,65379],"mapped",[12301]],[[65380,65380],"mapped",[12289]],[[65381,65381],"mapped",[12539]],[[65382,65382],"mapped",[12530]],[[65383,65383],"mapped",[12449]],[[65384,65384],"mapped",[12451]],[[65385,65385],"mapped",[12453]],[[65386,65386],"mapped",[12455]],[[65387,65387],"mapped",[12457]],[[65388,65388],"mapped",[12515]],[[65389,65389],"mapped",[12517]],[[65390,65390],"mapped",[12519]],[[65391,65391],"mapped",[12483]],[[65392,65392],"mapped",[12540]],[[65393,65393],"mapped",[12450]],[[65394,65394],"mapped",[12452]],[[65395,65395],"mapped",[12454]],[[65396,65396],"mapped",[12456]],[[65397,65397],"mapped",[12458]],[[65398,65398],"mapped",[12459]],[[65399,65399],"mapped",[12461]],[[65400,65400],"mapped",[12463]],[[65401,65401],"mapped",[12465]],[[65402,65402],"mapped",[12467]],[[65403,65403],"mapped",[12469]],[[65404,65404],"mapped",[12471]],[[65405,65405],"mapped",[12473]],[[65406,65406],"mapped",[12475]],[[65407,65407],"mapped",[12477]],[[65408,65408],"mapped",[12479]],[[65409,65409],"mapped",[12481]],[[65410,65410],"mapped",[12484]],[[65411,65411],"mapped",[12486]],[[65412,65412],"mapped",[12488]],[[65413,65413],"mapped",[12490]],[[65414,65414],"mapped",[12491]],[[65415,65415],"mapped",[12492]],[[65416,65416],"mapped",[12493]],[[65417,65417],"mapped",[12494]],[[65418,65418],"mapped",[12495]],[[65419,65419],"mapped",[12498]],[[65420,65420],"mapped",[12501]],[[65421,65421],"mapped",[12504]],[[65422,65422],"mapped",[12507]],[[65423,65423],"mapped",[12510]],[[65424,65424],"mapped",[12511]],[[65425,65425],"mapped",[12512]],[[65426,65426],"mapped",[12513]],[[65427,65427],"mapped",[12514]],[[65428,65428],"mapped",[12516]],[[65429,65429],"mapped",[12518]],[[65430,65430],"mapped",[12520]],[[65431,65431],"mapped",[12521]],[[65432,65432],"mapped",[12522]],[[65433,65433],"mapped",[12523]],[[65434,65434],"mapped",[12524]],[[65435,65435],"mapped",[12525]],[[65436,65436],"mapped",[12527]],[[65437,65437],"mapped",[12531]],[[65438,65438],"mapped",[12441]],[[65439,65439],"mapped",[12442]],[[65440,65440],"disallowed"],[[65441,65441],"mapped",[4352]],[[65442,65442],"mapped",[4353]],[[65443,65443],"mapped",[4522]],[[65444,65444],"mapped",[4354]],[[65445,65445],"mapped",[4524]],[[65446,65446],"mapped",[4525]],[[65447,65447],"mapped",[4355]],[[65448,65448],"mapped",[4356]],[[65449,65449],"mapped",[4357]],[[65450,65450],"mapped",[4528]],[[65451,65451],"mapped",[4529]],[[65452,65452],"mapped",[4530]],[[65453,65453],"mapped",[4531]],[[65454,65454],"mapped",[4532]],[[65455,65455],"mapped",[4533]],[[65456,65456],"mapped",[4378]],[[65457,65457],"mapped",[4358]],[[65458,65458],"mapped",[4359]],[[65459,65459],"mapped",[4360]],[[65460,65460],"mapped",[4385]],[[65461,65461],"mapped",[4361]],[[65462,65462],"mapped",[4362]],[[65463,65463],"mapped",[4363]],[[65464,65464],"mapped",[4364]],[[65465,65465],"mapped",[4365]],[[65466,65466],"mapped",[4366]],[[65467,65467],"mapped",[4367]],[[65468,65468],"mapped",[4368]],[[65469,65469],"mapped",[4369]],[[65470,65470],"mapped",[4370]],[[65471,65473],"disallowed"],[[65474,65474],"mapped",[4449]],[[65475,65475],"mapped",[4450]],[[65476,65476],"mapped",[4451]],[[65477,65477],"mapped",[4452]],[[65478,65478],"mapped",[4453]],[[65479,65479],"mapped",[4454]],[[65480,65481],"disallowed"],[[65482,65482],"mapped",[4455]],[[65483,65483],"mapped",[4456]],[[65484,65484],"mapped",[4457]],[[65485,65485],"mapped",[4458]],[[65486,65486],"mapped",[4459]],[[65487,65487],"mapped",[4460]],[[65488,65489],"disallowed"],[[65490,65490],"mapped",[4461]],[[65491,65491],"mapped",[4462]],[[65492,65492],"mapped",[4463]],[[65493,65493],"mapped",[4464]],[[65494,65494],"mapped",[4465]],[[65495,65495],"mapped",[4466]],[[65496,65497],"disallowed"],[[65498,65498],"mapped",[4467]],[[65499,65499],"mapped",[4468]],[[65500,65500],"mapped",[4469]],[[65501,65503],"disallowed"],[[65504,65504],"mapped",[162]],[[65505,65505],"mapped",[163]],[[65506,65506],"mapped",[172]],[[65507,65507],"disallowed_STD3_mapped",[32,772]],[[65508,65508],"mapped",[166]],[[65509,65509],"mapped",[165]],[[65510,65510],"mapped",[8361]],[[65511,65511],"disallowed"],[[65512,65512],"mapped",[9474]],[[65513,65513],"mapped",[8592]],[[65514,65514],"mapped",[8593]],[[65515,65515],"mapped",[8594]],[[65516,65516],"mapped",[8595]],[[65517,65517],"mapped",[9632]],[[65518,65518],"mapped",[9675]],[[65519,65528],"disallowed"],[[65529,65531],"disallowed"],[[65532,65532],"disallowed"],[[65533,65533],"disallowed"],[[65534,65535],"disallowed"],[[65536,65547],"valid"],[[65548,65548],"disallowed"],[[65549,65574],"valid"],[[65575,65575],"disallowed"],[[65576,65594],"valid"],[[65595,65595],"disallowed"],[[65596,65597],"valid"],[[65598,65598],"disallowed"],[[65599,65613],"valid"],[[65614,65615],"disallowed"],[[65616,65629],"valid"],[[65630,65663],"disallowed"],[[65664,65786],"valid"],[[65787,65791],"disallowed"],[[65792,65794],"valid",[],"NV8"],[[65795,65798],"disallowed"],[[65799,65843],"valid",[],"NV8"],[[65844,65846],"disallowed"],[[65847,65855],"valid",[],"NV8"],[[65856,65930],"valid",[],"NV8"],[[65931,65932],"valid",[],"NV8"],[[65933,65935],"disallowed"],[[65936,65947],"valid",[],"NV8"],[[65948,65951],"disallowed"],[[65952,65952],"valid",[],"NV8"],[[65953,65999],"disallowed"],[[66000,66044],"valid",[],"NV8"],[[66045,66045],"valid"],[[66046,66175],"disallowed"],[[66176,66204],"valid"],[[66205,66207],"disallowed"],[[66208,66256],"valid"],[[66257,66271],"disallowed"],[[66272,66272],"valid"],[[66273,66299],"valid",[],"NV8"],[[66300,66303],"disallowed"],[[66304,66334],"valid"],[[66335,66335],"valid"],[[66336,66339],"valid",[],"NV8"],[[66340,66351],"disallowed"],[[66352,66368],"valid"],[[66369,66369],"valid",[],"NV8"],[[66370,66377],"valid"],[[66378,66378],"valid",[],"NV8"],[[66379,66383],"disallowed"],[[66384,66426],"valid"],[[66427,66431],"disallowed"],[[66432,66461],"valid"],[[66462,66462],"disallowed"],[[66463,66463],"valid",[],"NV8"],[[66464,66499],"valid"],[[66500,66503],"disallowed"],[[66504,66511],"valid"],[[66512,66517],"valid",[],"NV8"],[[66518,66559],"disallowed"],[[66560,66560],"mapped",[66600]],[[66561,66561],"mapped",[66601]],[[66562,66562],"mapped",[66602]],[[66563,66563],"mapped",[66603]],[[66564,66564],"mapped",[66604]],[[66565,66565],"mapped",[66605]],[[66566,66566],"mapped",[66606]],[[66567,66567],"mapped",[66607]],[[66568,66568],"mapped",[66608]],[[66569,66569],"mapped",[66609]],[[66570,66570],"mapped",[66610]],[[66571,66571],"mapped",[66611]],[[66572,66572],"mapped",[66612]],[[66573,66573],"mapped",[66613]],[[66574,66574],"mapped",[66614]],[[66575,66575],"mapped",[66615]],[[66576,66576],"mapped",[66616]],[[66577,66577],"mapped",[66617]],[[66578,66578],"mapped",[66618]],[[66579,66579],"mapped",[66619]],[[66580,66580],"mapped",[66620]],[[66581,66581],"mapped",[66621]],[[66582,66582],"mapped",[66622]],[[66583,66583],"mapped",[66623]],[[66584,66584],"mapped",[66624]],[[66585,66585],"mapped",[66625]],[[66586,66586],"mapped",[66626]],[[66587,66587],"mapped",[66627]],[[66588,66588],"mapped",[66628]],[[66589,66589],"mapped",[66629]],[[66590,66590],"mapped",[66630]],[[66591,66591],"mapped",[66631]],[[66592,66592],"mapped",[66632]],[[66593,66593],"mapped",[66633]],[[66594,66594],"mapped",[66634]],[[66595,66595],"mapped",[66635]],[[66596,66596],"mapped",[66636]],[[66597,66597],"mapped",[66637]],[[66598,66598],"mapped",[66638]],[[66599,66599],"mapped",[66639]],[[66600,66637],"valid"],[[66638,66717],"valid"],[[66718,66719],"disallowed"],[[66720,66729],"valid"],[[66730,66815],"disallowed"],[[66816,66855],"valid"],[[66856,66863],"disallowed"],[[66864,66915],"valid"],[[66916,66926],"disallowed"],[[66927,66927],"valid",[],"NV8"],[[66928,67071],"disallowed"],[[67072,67382],"valid"],[[67383,67391],"disallowed"],[[67392,67413],"valid"],[[67414,67423],"disallowed"],[[67424,67431],"valid"],[[67432,67583],"disallowed"],[[67584,67589],"valid"],[[67590,67591],"disallowed"],[[67592,67592],"valid"],[[67593,67593],"disallowed"],[[67594,67637],"valid"],[[67638,67638],"disallowed"],[[67639,67640],"valid"],[[67641,67643],"disallowed"],[[67644,67644],"valid"],[[67645,67646],"disallowed"],[[67647,67647],"valid"],[[67648,67669],"valid"],[[67670,67670],"disallowed"],[[67671,67679],"valid",[],"NV8"],[[67680,67702],"valid"],[[67703,67711],"valid",[],"NV8"],[[67712,67742],"valid"],[[67743,67750],"disallowed"],[[67751,67759],"valid",[],"NV8"],[[67760,67807],"disallowed"],[[67808,67826],"valid"],[[67827,67827],"disallowed"],[[67828,67829],"valid"],[[67830,67834],"disallowed"],[[67835,67839],"valid",[],"NV8"],[[67840,67861],"valid"],[[67862,67865],"valid",[],"NV8"],[[67866,67867],"valid",[],"NV8"],[[67868,67870],"disallowed"],[[67871,67871],"valid",[],"NV8"],[[67872,67897],"valid"],[[67898,67902],"disallowed"],[[67903,67903],"valid",[],"NV8"],[[67904,67967],"disallowed"],[[67968,68023],"valid"],[[68024,68027],"disallowed"],[[68028,68029],"valid",[],"NV8"],[[68030,68031],"valid"],[[68032,68047],"valid",[],"NV8"],[[68048,68049],"disallowed"],[[68050,68095],"valid",[],"NV8"],[[68096,68099],"valid"],[[68100,68100],"disallowed"],[[68101,68102],"valid"],[[68103,68107],"disallowed"],[[68108,68115],"valid"],[[68116,68116],"disallowed"],[[68117,68119],"valid"],[[68120,68120],"disallowed"],[[68121,68147],"valid"],[[68148,68151],"disallowed"],[[68152,68154],"valid"],[[68155,68158],"disallowed"],[[68159,68159],"valid"],[[68160,68167],"valid",[],"NV8"],[[68168,68175],"disallowed"],[[68176,68184],"valid",[],"NV8"],[[68185,68191],"disallowed"],[[68192,68220],"valid"],[[68221,68223],"valid",[],"NV8"],[[68224,68252],"valid"],[[68253,68255],"valid",[],"NV8"],[[68256,68287],"disallowed"],[[68288,68295],"valid"],[[68296,68296],"valid",[],"NV8"],[[68297,68326],"valid"],[[68327,68330],"disallowed"],[[68331,68342],"valid",[],"NV8"],[[68343,68351],"disallowed"],[[68352,68405],"valid"],[[68406,68408],"disallowed"],[[68409,68415],"valid",[],"NV8"],[[68416,68437],"valid"],[[68438,68439],"disallowed"],[[68440,68447],"valid",[],"NV8"],[[68448,68466],"valid"],[[68467,68471],"disallowed"],[[68472,68479],"valid",[],"NV8"],[[68480,68497],"valid"],[[68498,68504],"disallowed"],[[68505,68508],"valid",[],"NV8"],[[68509,68520],"disallowed"],[[68521,68527],"valid",[],"NV8"],[[68528,68607],"disallowed"],[[68608,68680],"valid"],[[68681,68735],"disallowed"],[[68736,68736],"mapped",[68800]],[[68737,68737],"mapped",[68801]],[[68738,68738],"mapped",[68802]],[[68739,68739],"mapped",[68803]],[[68740,68740],"mapped",[68804]],[[68741,68741],"mapped",[68805]],[[68742,68742],"mapped",[68806]],[[68743,68743],"mapped",[68807]],[[68744,68744],"mapped",[68808]],[[68745,68745],"mapped",[68809]],[[68746,68746],"mapped",[68810]],[[68747,68747],"mapped",[68811]],[[68748,68748],"mapped",[68812]],[[68749,68749],"mapped",[68813]],[[68750,68750],"mapped",[68814]],[[68751,68751],"mapped",[68815]],[[68752,68752],"mapped",[68816]],[[68753,68753],"mapped",[68817]],[[68754,68754],"mapped",[68818]],[[68755,68755],"mapped",[68819]],[[68756,68756],"mapped",[68820]],[[68757,68757],"mapped",[68821]],[[68758,68758],"mapped",[68822]],[[68759,68759],"mapped",[68823]],[[68760,68760],"mapped",[68824]],[[68761,68761],"mapped",[68825]],[[68762,68762],"mapped",[68826]],[[68763,68763],"mapped",[68827]],[[68764,68764],"mapped",[68828]],[[68765,68765],"mapped",[68829]],[[68766,68766],"mapped",[68830]],[[68767,68767],"mapped",[68831]],[[68768,68768],"mapped",[68832]],[[68769,68769],"mapped",[68833]],[[68770,68770],"mapped",[68834]],[[68771,68771],"mapped",[68835]],[[68772,68772],"mapped",[68836]],[[68773,68773],"mapped",[68837]],[[68774,68774],"mapped",[68838]],[[68775,68775],"mapped",[68839]],[[68776,68776],"mapped",[68840]],[[68777,68777],"mapped",[68841]],[[68778,68778],"mapped",[68842]],[[68779,68779],"mapped",[68843]],[[68780,68780],"mapped",[68844]],[[68781,68781],"mapped",[68845]],[[68782,68782],"mapped",[68846]],[[68783,68783],"mapped",[68847]],[[68784,68784],"mapped",[68848]],[[68785,68785],"mapped",[68849]],[[68786,68786],"mapped",[68850]],[[68787,68799],"disallowed"],[[68800,68850],"valid"],[[68851,68857],"disallowed"],[[68858,68863],"valid",[],"NV8"],[[68864,69215],"disallowed"],[[69216,69246],"valid",[],"NV8"],[[69247,69631],"disallowed"],[[69632,69702],"valid"],[[69703,69709],"valid",[],"NV8"],[[69710,69713],"disallowed"],[[69714,69733],"valid",[],"NV8"],[[69734,69743],"valid"],[[69744,69758],"disallowed"],[[69759,69759],"valid"],[[69760,69818],"valid"],[[69819,69820],"valid",[],"NV8"],[[69821,69821],"disallowed"],[[69822,69825],"valid",[],"NV8"],[[69826,69839],"disallowed"],[[69840,69864],"valid"],[[69865,69871],"disallowed"],[[69872,69881],"valid"],[[69882,69887],"disallowed"],[[69888,69940],"valid"],[[69941,69941],"disallowed"],[[69942,69951],"valid"],[[69952,69955],"valid",[],"NV8"],[[69956,69967],"disallowed"],[[69968,70003],"valid"],[[70004,70005],"valid",[],"NV8"],[[70006,70006],"valid"],[[70007,70015],"disallowed"],[[70016,70084],"valid"],[[70085,70088],"valid",[],"NV8"],[[70089,70089],"valid",[],"NV8"],[[70090,70092],"valid"],[[70093,70093],"valid",[],"NV8"],[[70094,70095],"disallowed"],[[70096,70105],"valid"],[[70106,70106],"valid"],[[70107,70107],"valid",[],"NV8"],[[70108,70108],"valid"],[[70109,70111],"valid",[],"NV8"],[[70112,70112],"disallowed"],[[70113,70132],"valid",[],"NV8"],[[70133,70143],"disallowed"],[[70144,70161],"valid"],[[70162,70162],"disallowed"],[[70163,70199],"valid"],[[70200,70205],"valid",[],"NV8"],[[70206,70271],"disallowed"],[[70272,70278],"valid"],[[70279,70279],"disallowed"],[[70280,70280],"valid"],[[70281,70281],"disallowed"],[[70282,70285],"valid"],[[70286,70286],"disallowed"],[[70287,70301],"valid"],[[70302,70302],"disallowed"],[[70303,70312],"valid"],[[70313,70313],"valid",[],"NV8"],[[70314,70319],"disallowed"],[[70320,70378],"valid"],[[70379,70383],"disallowed"],[[70384,70393],"valid"],[[70394,70399],"disallowed"],[[70400,70400],"valid"],[[70401,70403],"valid"],[[70404,70404],"disallowed"],[[70405,70412],"valid"],[[70413,70414],"disallowed"],[[70415,70416],"valid"],[[70417,70418],"disallowed"],[[70419,70440],"valid"],[[70441,70441],"disallowed"],[[70442,70448],"valid"],[[70449,70449],"disallowed"],[[70450,70451],"valid"],[[70452,70452],"disallowed"],[[70453,70457],"valid"],[[70458,70459],"disallowed"],[[70460,70468],"valid"],[[70469,70470],"disallowed"],[[70471,70472],"valid"],[[70473,70474],"disallowed"],[[70475,70477],"valid"],[[70478,70479],"disallowed"],[[70480,70480],"valid"],[[70481,70486],"disallowed"],[[70487,70487],"valid"],[[70488,70492],"disallowed"],[[70493,70499],"valid"],[[70500,70501],"disallowed"],[[70502,70508],"valid"],[[70509,70511],"disallowed"],[[70512,70516],"valid"],[[70517,70783],"disallowed"],[[70784,70853],"valid"],[[70854,70854],"valid",[],"NV8"],[[70855,70855],"valid"],[[70856,70863],"disallowed"],[[70864,70873],"valid"],[[70874,71039],"disallowed"],[[71040,71093],"valid"],[[71094,71095],"disallowed"],[[71096,71104],"valid"],[[71105,71113],"valid",[],"NV8"],[[71114,71127],"valid",[],"NV8"],[[71128,71133],"valid"],[[71134,71167],"disallowed"],[[71168,71232],"valid"],[[71233,71235],"valid",[],"NV8"],[[71236,71236],"valid"],[[71237,71247],"disallowed"],[[71248,71257],"valid"],[[71258,71295],"disallowed"],[[71296,71351],"valid"],[[71352,71359],"disallowed"],[[71360,71369],"valid"],[[71370,71423],"disallowed"],[[71424,71449],"valid"],[[71450,71452],"disallowed"],[[71453,71467],"valid"],[[71468,71471],"disallowed"],[[71472,71481],"valid"],[[71482,71487],"valid",[],"NV8"],[[71488,71839],"disallowed"],[[71840,71840],"mapped",[71872]],[[71841,71841],"mapped",[71873]],[[71842,71842],"mapped",[71874]],[[71843,71843],"mapped",[71875]],[[71844,71844],"mapped",[71876]],[[71845,71845],"mapped",[71877]],[[71846,71846],"mapped",[71878]],[[71847,71847],"mapped",[71879]],[[71848,71848],"mapped",[71880]],[[71849,71849],"mapped",[71881]],[[71850,71850],"mapped",[71882]],[[71851,71851],"mapped",[71883]],[[71852,71852],"mapped",[71884]],[[71853,71853],"mapped",[71885]],[[71854,71854],"mapped",[71886]],[[71855,71855],"mapped",[71887]],[[71856,71856],"mapped",[71888]],[[71857,71857],"mapped",[71889]],[[71858,71858],"mapped",[71890]],[[71859,71859],"mapped",[71891]],[[71860,71860],"mapped",[71892]],[[71861,71861],"mapped",[71893]],[[71862,71862],"mapped",[71894]],[[71863,71863],"mapped",[71895]],[[71864,71864],"mapped",[71896]],[[71865,71865],"mapped",[71897]],[[71866,71866],"mapped",[71898]],[[71867,71867],"mapped",[71899]],[[71868,71868],"mapped",[71900]],[[71869,71869],"mapped",[71901]],[[71870,71870],"mapped",[71902]],[[71871,71871],"mapped",[71903]],[[71872,71913],"valid"],[[71914,71922],"valid",[],"NV8"],[[71923,71934],"disallowed"],[[71935,71935],"valid"],[[71936,72383],"disallowed"],[[72384,72440],"valid"],[[72441,73727],"disallowed"],[[73728,74606],"valid"],[[74607,74648],"valid"],[[74649,74649],"valid"],[[74650,74751],"disallowed"],[[74752,74850],"valid",[],"NV8"],[[74851,74862],"valid",[],"NV8"],[[74863,74863],"disallowed"],[[74864,74867],"valid",[],"NV8"],[[74868,74868],"valid",[],"NV8"],[[74869,74879],"disallowed"],[[74880,75075],"valid"],[[75076,77823],"disallowed"],[[77824,78894],"valid"],[[78895,82943],"disallowed"],[[82944,83526],"valid"],[[83527,92159],"disallowed"],[[92160,92728],"valid"],[[92729,92735],"disallowed"],[[92736,92766],"valid"],[[92767,92767],"disallowed"],[[92768,92777],"valid"],[[92778,92781],"disallowed"],[[92782,92783],"valid",[],"NV8"],[[92784,92879],"disallowed"],[[92880,92909],"valid"],[[92910,92911],"disallowed"],[[92912,92916],"valid"],[[92917,92917],"valid",[],"NV8"],[[92918,92927],"disallowed"],[[92928,92982],"valid"],[[92983,92991],"valid",[],"NV8"],[[92992,92995],"valid"],[[92996,92997],"valid",[],"NV8"],[[92998,93007],"disallowed"],[[93008,93017],"valid"],[[93018,93018],"disallowed"],[[93019,93025],"valid",[],"NV8"],[[93026,93026],"disallowed"],[[93027,93047],"valid"],[[93048,93052],"disallowed"],[[93053,93071],"valid"],[[93072,93951],"disallowed"],[[93952,94020],"valid"],[[94021,94031],"disallowed"],[[94032,94078],"valid"],[[94079,94094],"disallowed"],[[94095,94111],"valid"],[[94112,110591],"disallowed"],[[110592,110593],"valid"],[[110594,113663],"disallowed"],[[113664,113770],"valid"],[[113771,113775],"disallowed"],[[113776,113788],"valid"],[[113789,113791],"disallowed"],[[113792,113800],"valid"],[[113801,113807],"disallowed"],[[113808,113817],"valid"],[[113818,113819],"disallowed"],[[113820,113820],"valid",[],"NV8"],[[113821,113822],"valid"],[[113823,113823],"valid",[],"NV8"],[[113824,113827],"ignored"],[[113828,118783],"disallowed"],[[118784,119029],"valid",[],"NV8"],[[119030,119039],"disallowed"],[[119040,119078],"valid",[],"NV8"],[[119079,119080],"disallowed"],[[119081,119081],"valid",[],"NV8"],[[119082,119133],"valid",[],"NV8"],[[119134,119134],"mapped",[119127,119141]],[[119135,119135],"mapped",[119128,119141]],[[119136,119136],"mapped",[119128,119141,119150]],[[119137,119137],"mapped",[119128,119141,119151]],[[119138,119138],"mapped",[119128,119141,119152]],[[119139,119139],"mapped",[119128,119141,119153]],[[119140,119140],"mapped",[119128,119141,119154]],[[119141,119154],"valid",[],"NV8"],[[119155,119162],"disallowed"],[[119163,119226],"valid",[],"NV8"],[[119227,119227],"mapped",[119225,119141]],[[119228,119228],"mapped",[119226,119141]],[[119229,119229],"mapped",[119225,119141,119150]],[[119230,119230],"mapped",[119226,119141,119150]],[[119231,119231],"mapped",[119225,119141,119151]],[[119232,119232],"mapped",[119226,119141,119151]],[[119233,119261],"valid",[],"NV8"],[[119262,119272],"valid",[],"NV8"],[[119273,119295],"disallowed"],[[119296,119365],"valid",[],"NV8"],[[119366,119551],"disallowed"],[[119552,119638],"valid",[],"NV8"],[[119639,119647],"disallowed"],[[119648,119665],"valid",[],"NV8"],[[119666,119807],"disallowed"],[[119808,119808],"mapped",[97]],[[119809,119809],"mapped",[98]],[[119810,119810],"mapped",[99]],[[119811,119811],"mapped",[100]],[[119812,119812],"mapped",[101]],[[119813,119813],"mapped",[102]],[[119814,119814],"mapped",[103]],[[119815,119815],"mapped",[104]],[[119816,119816],"mapped",[105]],[[119817,119817],"mapped",[106]],[[119818,119818],"mapped",[107]],[[119819,119819],"mapped",[108]],[[119820,119820],"mapped",[109]],[[119821,119821],"mapped",[110]],[[119822,119822],"mapped",[111]],[[119823,119823],"mapped",[112]],[[119824,119824],"mapped",[113]],[[119825,119825],"mapped",[114]],[[119826,119826],"mapped",[115]],[[119827,119827],"mapped",[116]],[[119828,119828],"mapped",[117]],[[119829,119829],"mapped",[118]],[[119830,119830],"mapped",[119]],[[119831,119831],"mapped",[120]],[[119832,119832],"mapped",[121]],[[119833,119833],"mapped",[122]],[[119834,119834],"mapped",[97]],[[119835,119835],"mapped",[98]],[[119836,119836],"mapped",[99]],[[119837,119837],"mapped",[100]],[[119838,119838],"mapped",[101]],[[119839,119839],"mapped",[102]],[[119840,119840],"mapped",[103]],[[119841,119841],"mapped",[104]],[[119842,119842],"mapped",[105]],[[119843,119843],"mapped",[106]],[[119844,119844],"mapped",[107]],[[119845,119845],"mapped",[108]],[[119846,119846],"mapped",[109]],[[119847,119847],"mapped",[110]],[[119848,119848],"mapped",[111]],[[119849,119849],"mapped",[112]],[[119850,119850],"mapped",[113]],[[119851,119851],"mapped",[114]],[[119852,119852],"mapped",[115]],[[119853,119853],"mapped",[116]],[[119854,119854],"mapped",[117]],[[119855,119855],"mapped",[118]],[[119856,119856],"mapped",[119]],[[119857,119857],"mapped",[120]],[[119858,119858],"mapped",[121]],[[119859,119859],"mapped",[122]],[[119860,119860],"mapped",[97]],[[119861,119861],"mapped",[98]],[[119862,119862],"mapped",[99]],[[119863,119863],"mapped",[100]],[[119864,119864],"mapped",[101]],[[119865,119865],"mapped",[102]],[[119866,119866],"mapped",[103]],[[119867,119867],"mapped",[104]],[[119868,119868],"mapped",[105]],[[119869,119869],"mapped",[106]],[[119870,119870],"mapped",[107]],[[119871,119871],"mapped",[108]],[[119872,119872],"mapped",[109]],[[119873,119873],"mapped",[110]],[[119874,119874],"mapped",[111]],[[119875,119875],"mapped",[112]],[[119876,119876],"mapped",[113]],[[119877,119877],"mapped",[114]],[[119878,119878],"mapped",[115]],[[119879,119879],"mapped",[116]],[[119880,119880],"mapped",[117]],[[119881,119881],"mapped",[118]],[[119882,119882],"mapped",[119]],[[119883,119883],"mapped",[120]],[[119884,119884],"mapped",[121]],[[119885,119885],"mapped",[122]],[[119886,119886],"mapped",[97]],[[119887,119887],"mapped",[98]],[[119888,119888],"mapped",[99]],[[119889,119889],"mapped",[100]],[[119890,119890],"mapped",[101]],[[119891,119891],"mapped",[102]],[[119892,119892],"mapped",[103]],[[119893,119893],"disallowed"],[[119894,119894],"mapped",[105]],[[119895,119895],"mapped",[106]],[[119896,119896],"mapped",[107]],[[119897,119897],"mapped",[108]],[[119898,119898],"mapped",[109]],[[119899,119899],"mapped",[110]],[[119900,119900],"mapped",[111]],[[119901,119901],"mapped",[112]],[[119902,119902],"mapped",[113]],[[119903,119903],"mapped",[114]],[[119904,119904],"mapped",[115]],[[119905,119905],"mapped",[116]],[[119906,119906],"mapped",[117]],[[119907,119907],"mapped",[118]],[[119908,119908],"mapped",[119]],[[119909,119909],"mapped",[120]],[[119910,119910],"mapped",[121]],[[119911,119911],"mapped",[122]],[[119912,119912],"mapped",[97]],[[119913,119913],"mapped",[98]],[[119914,119914],"mapped",[99]],[[119915,119915],"mapped",[100]],[[119916,119916],"mapped",[101]],[[119917,119917],"mapped",[102]],[[119918,119918],"mapped",[103]],[[119919,119919],"mapped",[104]],[[119920,119920],"mapped",[105]],[[119921,119921],"mapped",[106]],[[119922,119922],"mapped",[107]],[[119923,119923],"mapped",[108]],[[119924,119924],"mapped",[109]],[[119925,119925],"mapped",[110]],[[119926,119926],"mapped",[111]],[[119927,119927],"mapped",[112]],[[119928,119928],"mapped",[113]],[[119929,119929],"mapped",[114]],[[119930,119930],"mapped",[115]],[[119931,119931],"mapped",[116]],[[119932,119932],"mapped",[117]],[[119933,119933],"mapped",[118]],[[119934,119934],"mapped",[119]],[[119935,119935],"mapped",[120]],[[119936,119936],"mapped",[121]],[[119937,119937],"mapped",[122]],[[119938,119938],"mapped",[97]],[[119939,119939],"mapped",[98]],[[119940,119940],"mapped",[99]],[[119941,119941],"mapped",[100]],[[119942,119942],"mapped",[101]],[[119943,119943],"mapped",[102]],[[119944,119944],"mapped",[103]],[[119945,119945],"mapped",[104]],[[119946,119946],"mapped",[105]],[[119947,119947],"mapped",[106]],[[119948,119948],"mapped",[107]],[[119949,119949],"mapped",[108]],[[119950,119950],"mapped",[109]],[[119951,119951],"mapped",[110]],[[119952,119952],"mapped",[111]],[[119953,119953],"mapped",[112]],[[119954,119954],"mapped",[113]],[[119955,119955],"mapped",[114]],[[119956,119956],"mapped",[115]],[[119957,119957],"mapped",[116]],[[119958,119958],"mapped",[117]],[[119959,119959],"mapped",[118]],[[119960,119960],"mapped",[119]],[[119961,119961],"mapped",[120]],[[119962,119962],"mapped",[121]],[[119963,119963],"mapped",[122]],[[119964,119964],"mapped",[97]],[[119965,119965],"disallowed"],[[119966,119966],"mapped",[99]],[[119967,119967],"mapped",[100]],[[119968,119969],"disallowed"],[[119970,119970],"mapped",[103]],[[119971,119972],"disallowed"],[[119973,119973],"mapped",[106]],[[119974,119974],"mapped",[107]],[[119975,119976],"disallowed"],[[119977,119977],"mapped",[110]],[[119978,119978],"mapped",[111]],[[119979,119979],"mapped",[112]],[[119980,119980],"mapped",[113]],[[119981,119981],"disallowed"],[[119982,119982],"mapped",[115]],[[119983,119983],"mapped",[116]],[[119984,119984],"mapped",[117]],[[119985,119985],"mapped",[118]],[[119986,119986],"mapped",[119]],[[119987,119987],"mapped",[120]],[[119988,119988],"mapped",[121]],[[119989,119989],"mapped",[122]],[[119990,119990],"mapped",[97]],[[119991,119991],"mapped",[98]],[[119992,119992],"mapped",[99]],[[119993,119993],"mapped",[100]],[[119994,119994],"disallowed"],[[119995,119995],"mapped",[102]],[[119996,119996],"disallowed"],[[119997,119997],"mapped",[104]],[[119998,119998],"mapped",[105]],[[119999,119999],"mapped",[106]],[[120000,120000],"mapped",[107]],[[120001,120001],"mapped",[108]],[[120002,120002],"mapped",[109]],[[120003,120003],"mapped",[110]],[[120004,120004],"disallowed"],[[120005,120005],"mapped",[112]],[[120006,120006],"mapped",[113]],[[120007,120007],"mapped",[114]],[[120008,120008],"mapped",[115]],[[120009,120009],"mapped",[116]],[[120010,120010],"mapped",[117]],[[120011,120011],"mapped",[118]],[[120012,120012],"mapped",[119]],[[120013,120013],"mapped",[120]],[[120014,120014],"mapped",[121]],[[120015,120015],"mapped",[122]],[[120016,120016],"mapped",[97]],[[120017,120017],"mapped",[98]],[[120018,120018],"mapped",[99]],[[120019,120019],"mapped",[100]],[[120020,120020],"mapped",[101]],[[120021,120021],"mapped",[102]],[[120022,120022],"mapped",[103]],[[120023,120023],"mapped",[104]],[[120024,120024],"mapped",[105]],[[120025,120025],"mapped",[106]],[[120026,120026],"mapped",[107]],[[120027,120027],"mapped",[108]],[[120028,120028],"mapped",[109]],[[120029,120029],"mapped",[110]],[[120030,120030],"mapped",[111]],[[120031,120031],"mapped",[112]],[[120032,120032],"mapped",[113]],[[120033,120033],"mapped",[114]],[[120034,120034],"mapped",[115]],[[120035,120035],"mapped",[116]],[[120036,120036],"mapped",[117]],[[120037,120037],"mapped",[118]],[[120038,120038],"mapped",[119]],[[120039,120039],"mapped",[120]],[[120040,120040],"mapped",[121]],[[120041,120041],"mapped",[122]],[[120042,120042],"mapped",[97]],[[120043,120043],"mapped",[98]],[[120044,120044],"mapped",[99]],[[120045,120045],"mapped",[100]],[[120046,120046],"mapped",[101]],[[120047,120047],"mapped",[102]],[[120048,120048],"mapped",[103]],[[120049,120049],"mapped",[104]],[[120050,120050],"mapped",[105]],[[120051,120051],"mapped",[106]],[[120052,120052],"mapped",[107]],[[120053,120053],"mapped",[108]],[[120054,120054],"mapped",[109]],[[120055,120055],"mapped",[110]],[[120056,120056],"mapped",[111]],[[120057,120057],"mapped",[112]],[[120058,120058],"mapped",[113]],[[120059,120059],"mapped",[114]],[[120060,120060],"mapped",[115]],[[120061,120061],"mapped",[116]],[[120062,120062],"mapped",[117]],[[120063,120063],"mapped",[118]],[[120064,120064],"mapped",[119]],[[120065,120065],"mapped",[120]],[[120066,120066],"mapped",[121]],[[120067,120067],"mapped",[122]],[[120068,120068],"mapped",[97]],[[120069,120069],"mapped",[98]],[[120070,120070],"disallowed"],[[120071,120071],"mapped",[100]],[[120072,120072],"mapped",[101]],[[120073,120073],"mapped",[102]],[[120074,120074],"mapped",[103]],[[120075,120076],"disallowed"],[[120077,120077],"mapped",[106]],[[120078,120078],"mapped",[107]],[[120079,120079],"mapped",[108]],[[120080,120080],"mapped",[109]],[[120081,120081],"mapped",[110]],[[120082,120082],"mapped",[111]],[[120083,120083],"mapped",[112]],[[120084,120084],"mapped",[113]],[[120085,120085],"disallowed"],[[120086,120086],"mapped",[115]],[[120087,120087],"mapped",[116]],[[120088,120088],"mapped",[117]],[[120089,120089],"mapped",[118]],[[120090,120090],"mapped",[119]],[[120091,120091],"mapped",[120]],[[120092,120092],"mapped",[121]],[[120093,120093],"disallowed"],[[120094,120094],"mapped",[97]],[[120095,120095],"mapped",[98]],[[120096,120096],"mapped",[99]],[[120097,120097],"mapped",[100]],[[120098,120098],"mapped",[101]],[[120099,120099],"mapped",[102]],[[120100,120100],"mapped",[103]],[[120101,120101],"mapped",[104]],[[120102,120102],"mapped",[105]],[[120103,120103],"mapped",[106]],[[120104,120104],"mapped",[107]],[[120105,120105],"mapped",[108]],[[120106,120106],"mapped",[109]],[[120107,120107],"mapped",[110]],[[120108,120108],"mapped",[111]],[[120109,120109],"mapped",[112]],[[120110,120110],"mapped",[113]],[[120111,120111],"mapped",[114]],[[120112,120112],"mapped",[115]],[[120113,120113],"mapped",[116]],[[120114,120114],"mapped",[117]],[[120115,120115],"mapped",[118]],[[120116,120116],"mapped",[119]],[[120117,120117],"mapped",[120]],[[120118,120118],"mapped",[121]],[[120119,120119],"mapped",[122]],[[120120,120120],"mapped",[97]],[[120121,120121],"mapped",[98]],[[120122,120122],"disallowed"],[[120123,120123],"mapped",[100]],[[120124,120124],"mapped",[101]],[[120125,120125],"mapped",[102]],[[120126,120126],"mapped",[103]],[[120127,120127],"disallowed"],[[120128,120128],"mapped",[105]],[[120129,120129],"mapped",[106]],[[120130,120130],"mapped",[107]],[[120131,120131],"mapped",[108]],[[120132,120132],"mapped",[109]],[[120133,120133],"disallowed"],[[120134,120134],"mapped",[111]],[[120135,120137],"disallowed"],[[120138,120138],"mapped",[115]],[[120139,120139],"mapped",[116]],[[120140,120140],"mapped",[117]],[[120141,120141],"mapped",[118]],[[120142,120142],"mapped",[119]],[[120143,120143],"mapped",[120]],[[120144,120144],"mapped",[121]],[[120145,120145],"disallowed"],[[120146,120146],"mapped",[97]],[[120147,120147],"mapped",[98]],[[120148,120148],"mapped",[99]],[[120149,120149],"mapped",[100]],[[120150,120150],"mapped",[101]],[[120151,120151],"mapped",[102]],[[120152,120152],"mapped",[103]],[[120153,120153],"mapped",[104]],[[120154,120154],"mapped",[105]],[[120155,120155],"mapped",[106]],[[120156,120156],"mapped",[107]],[[120157,120157],"mapped",[108]],[[120158,120158],"mapped",[109]],[[120159,120159],"mapped",[110]],[[120160,120160],"mapped",[111]],[[120161,120161],"mapped",[112]],[[120162,120162],"mapped",[113]],[[120163,120163],"mapped",[114]],[[120164,120164],"mapped",[115]],[[120165,120165],"mapped",[116]],[[120166,120166],"mapped",[117]],[[120167,120167],"mapped",[118]],[[120168,120168],"mapped",[119]],[[120169,120169],"mapped",[120]],[[120170,120170],"mapped",[121]],[[120171,120171],"mapped",[122]],[[120172,120172],"mapped",[97]],[[120173,120173],"mapped",[98]],[[120174,120174],"mapped",[99]],[[120175,120175],"mapped",[100]],[[120176,120176],"mapped",[101]],[[120177,120177],"mapped",[102]],[[120178,120178],"mapped",[103]],[[120179,120179],"mapped",[104]],[[120180,120180],"mapped",[105]],[[120181,120181],"mapped",[106]],[[120182,120182],"mapped",[107]],[[120183,120183],"mapped",[108]],[[120184,120184],"mapped",[109]],[[120185,120185],"mapped",[110]],[[120186,120186],"mapped",[111]],[[120187,120187],"mapped",[112]],[[120188,120188],"mapped",[113]],[[120189,120189],"mapped",[114]],[[120190,120190],"mapped",[115]],[[120191,120191],"mapped",[116]],[[120192,120192],"mapped",[117]],[[120193,120193],"mapped",[118]],[[120194,120194],"mapped",[119]],[[120195,120195],"mapped",[120]],[[120196,120196],"mapped",[121]],[[120197,120197],"mapped",[122]],[[120198,120198],"mapped",[97]],[[120199,120199],"mapped",[98]],[[120200,120200],"mapped",[99]],[[120201,120201],"mapped",[100]],[[120202,120202],"mapped",[101]],[[120203,120203],"mapped",[102]],[[120204,120204],"mapped",[103]],[[120205,120205],"mapped",[104]],[[120206,120206],"mapped",[105]],[[120207,120207],"mapped",[106]],[[120208,120208],"mapped",[107]],[[120209,120209],"mapped",[108]],[[120210,120210],"mapped",[109]],[[120211,120211],"mapped",[110]],[[120212,120212],"mapped",[111]],[[120213,120213],"mapped",[112]],[[120214,120214],"mapped",[113]],[[120215,120215],"mapped",[114]],[[120216,120216],"mapped",[115]],[[120217,120217],"mapped",[116]],[[120218,120218],"mapped",[117]],[[120219,120219],"mapped",[118]],[[120220,120220],"mapped",[119]],[[120221,120221],"mapped",[120]],[[120222,120222],"mapped",[121]],[[120223,120223],"mapped",[122]],[[120224,120224],"mapped",[97]],[[120225,120225],"mapped",[98]],[[120226,120226],"mapped",[99]],[[120227,120227],"mapped",[100]],[[120228,120228],"mapped",[101]],[[120229,120229],"mapped",[102]],[[120230,120230],"mapped",[103]],[[120231,120231],"mapped",[104]],[[120232,120232],"mapped",[105]],[[120233,120233],"mapped",[106]],[[120234,120234],"mapped",[107]],[[120235,120235],"mapped",[108]],[[120236,120236],"mapped",[109]],[[120237,120237],"mapped",[110]],[[120238,120238],"mapped",[111]],[[120239,120239],"mapped",[112]],[[120240,120240],"mapped",[113]],[[120241,120241],"mapped",[114]],[[120242,120242],"mapped",[115]],[[120243,120243],"mapped",[116]],[[120244,120244],"mapped",[117]],[[120245,120245],"mapped",[118]],[[120246,120246],"mapped",[119]],[[120247,120247],"mapped",[120]],[[120248,120248],"mapped",[121]],[[120249,120249],"mapped",[122]],[[120250,120250],"mapped",[97]],[[120251,120251],"mapped",[98]],[[120252,120252],"mapped",[99]],[[120253,120253],"mapped",[100]],[[120254,120254],"mapped",[101]],[[120255,120255],"mapped",[102]],[[120256,120256],"mapped",[103]],[[120257,120257],"mapped",[104]],[[120258,120258],"mapped",[105]],[[120259,120259],"mapped",[106]],[[120260,120260],"mapped",[107]],[[120261,120261],"mapped",[108]],[[120262,120262],"mapped",[109]],[[120263,120263],"mapped",[110]],[[120264,120264],"mapped",[111]],[[120265,120265],"mapped",[112]],[[120266,120266],"mapped",[113]],[[120267,120267],"mapped",[114]],[[120268,120268],"mapped",[115]],[[120269,120269],"mapped",[116]],[[120270,120270],"mapped",[117]],[[120271,120271],"mapped",[118]],[[120272,120272],"mapped",[119]],[[120273,120273],"mapped",[120]],[[120274,120274],"mapped",[121]],[[120275,120275],"mapped",[122]],[[120276,120276],"mapped",[97]],[[120277,120277],"mapped",[98]],[[120278,120278],"mapped",[99]],[[120279,120279],"mapped",[100]],[[120280,120280],"mapped",[101]],[[120281,120281],"mapped",[102]],[[120282,120282],"mapped",[103]],[[120283,120283],"mapped",[104]],[[120284,120284],"mapped",[105]],[[120285,120285],"mapped",[106]],[[120286,120286],"mapped",[107]],[[120287,120287],"mapped",[108]],[[120288,120288],"mapped",[109]],[[120289,120289],"mapped",[110]],[[120290,120290],"mapped",[111]],[[120291,120291],"mapped",[112]],[[120292,120292],"mapped",[113]],[[120293,120293],"mapped",[114]],[[120294,120294],"mapped",[115]],[[120295,120295],"mapped",[116]],[[120296,120296],"mapped",[117]],[[120297,120297],"mapped",[118]],[[120298,120298],"mapped",[119]],[[120299,120299],"mapped",[120]],[[120300,120300],"mapped",[121]],[[120301,120301],"mapped",[122]],[[120302,120302],"mapped",[97]],[[120303,120303],"mapped",[98]],[[120304,120304],"mapped",[99]],[[120305,120305],"mapped",[100]],[[120306,120306],"mapped",[101]],[[120307,120307],"mapped",[102]],[[120308,120308],"mapped",[103]],[[120309,120309],"mapped",[104]],[[120310,120310],"mapped",[105]],[[120311,120311],"mapped",[106]],[[120312,120312],"mapped",[107]],[[120313,120313],"mapped",[108]],[[120314,120314],"mapped",[109]],[[120315,120315],"mapped",[110]],[[120316,120316],"mapped",[111]],[[120317,120317],"mapped",[112]],[[120318,120318],"mapped",[113]],[[120319,120319],"mapped",[114]],[[120320,120320],"mapped",[115]],[[120321,120321],"mapped",[116]],[[120322,120322],"mapped",[117]],[[120323,120323],"mapped",[118]],[[120324,120324],"mapped",[119]],[[120325,120325],"mapped",[120]],[[120326,120326],"mapped",[121]],[[120327,120327],"mapped",[122]],[[120328,120328],"mapped",[97]],[[120329,120329],"mapped",[98]],[[120330,120330],"mapped",[99]],[[120331,120331],"mapped",[100]],[[120332,120332],"mapped",[101]],[[120333,120333],"mapped",[102]],[[120334,120334],"mapped",[103]],[[120335,120335],"mapped",[104]],[[120336,120336],"mapped",[105]],[[120337,120337],"mapped",[106]],[[120338,120338],"mapped",[107]],[[120339,120339],"mapped",[108]],[[120340,120340],"mapped",[109]],[[120341,120341],"mapped",[110]],[[120342,120342],"mapped",[111]],[[120343,120343],"mapped",[112]],[[120344,120344],"mapped",[113]],[[120345,120345],"mapped",[114]],[[120346,120346],"mapped",[115]],[[120347,120347],"mapped",[116]],[[120348,120348],"mapped",[117]],[[120349,120349],"mapped",[118]],[[120350,120350],"mapped",[119]],[[120351,120351],"mapped",[120]],[[120352,120352],"mapped",[121]],[[120353,120353],"mapped",[122]],[[120354,120354],"mapped",[97]],[[120355,120355],"mapped",[98]],[[120356,120356],"mapped",[99]],[[120357,120357],"mapped",[100]],[[120358,120358],"mapped",[101]],[[120359,120359],"mapped",[102]],[[120360,120360],"mapped",[103]],[[120361,120361],"mapped",[104]],[[120362,120362],"mapped",[105]],[[120363,120363],"mapped",[106]],[[120364,120364],"mapped",[107]],[[120365,120365],"mapped",[108]],[[120366,120366],"mapped",[109]],[[120367,120367],"mapped",[110]],[[120368,120368],"mapped",[111]],[[120369,120369],"mapped",[112]],[[120370,120370],"mapped",[113]],[[120371,120371],"mapped",[114]],[[120372,120372],"mapped",[115]],[[120373,120373],"mapped",[116]],[[120374,120374],"mapped",[117]],[[120375,120375],"mapped",[118]],[[120376,120376],"mapped",[119]],[[120377,120377],"mapped",[120]],[[120378,120378],"mapped",[121]],[[120379,120379],"mapped",[122]],[[120380,120380],"mapped",[97]],[[120381,120381],"mapped",[98]],[[120382,120382],"mapped",[99]],[[120383,120383],"mapped",[100]],[[120384,120384],"mapped",[101]],[[120385,120385],"mapped",[102]],[[120386,120386],"mapped",[103]],[[120387,120387],"mapped",[104]],[[120388,120388],"mapped",[105]],[[120389,120389],"mapped",[106]],[[120390,120390],"mapped",[107]],[[120391,120391],"mapped",[108]],[[120392,120392],"mapped",[109]],[[120393,120393],"mapped",[110]],[[120394,120394],"mapped",[111]],[[120395,120395],"mapped",[112]],[[120396,120396],"mapped",[113]],[[120397,120397],"mapped",[114]],[[120398,120398],"mapped",[115]],[[120399,120399],"mapped",[116]],[[120400,120400],"mapped",[117]],[[120401,120401],"mapped",[118]],[[120402,120402],"mapped",[119]],[[120403,120403],"mapped",[120]],[[120404,120404],"mapped",[121]],[[120405,120405],"mapped",[122]],[[120406,120406],"mapped",[97]],[[120407,120407],"mapped",[98]],[[120408,120408],"mapped",[99]],[[120409,120409],"mapped",[100]],[[120410,120410],"mapped",[101]],[[120411,120411],"mapped",[102]],[[120412,120412],"mapped",[103]],[[120413,120413],"mapped",[104]],[[120414,120414],"mapped",[105]],[[120415,120415],"mapped",[106]],[[120416,120416],"mapped",[107]],[[120417,120417],"mapped",[108]],[[120418,120418],"mapped",[109]],[[120419,120419],"mapped",[110]],[[120420,120420],"mapped",[111]],[[120421,120421],"mapped",[112]],[[120422,120422],"mapped",[113]],[[120423,120423],"mapped",[114]],[[120424,120424],"mapped",[115]],[[120425,120425],"mapped",[116]],[[120426,120426],"mapped",[117]],[[120427,120427],"mapped",[118]],[[120428,120428],"mapped",[119]],[[120429,120429],"mapped",[120]],[[120430,120430],"mapped",[121]],[[120431,120431],"mapped",[122]],[[120432,120432],"mapped",[97]],[[120433,120433],"mapped",[98]],[[120434,120434],"mapped",[99]],[[120435,120435],"mapped",[100]],[[120436,120436],"mapped",[101]],[[120437,120437],"mapped",[102]],[[120438,120438],"mapped",[103]],[[120439,120439],"mapped",[104]],[[120440,120440],"mapped",[105]],[[120441,120441],"mapped",[106]],[[120442,120442],"mapped",[107]],[[120443,120443],"mapped",[108]],[[120444,120444],"mapped",[109]],[[120445,120445],"mapped",[110]],[[120446,120446],"mapped",[111]],[[120447,120447],"mapped",[112]],[[120448,120448],"mapped",[113]],[[120449,120449],"mapped",[114]],[[120450,120450],"mapped",[115]],[[120451,120451],"mapped",[116]],[[120452,120452],"mapped",[117]],[[120453,120453],"mapped",[118]],[[120454,120454],"mapped",[119]],[[120455,120455],"mapped",[120]],[[120456,120456],"mapped",[121]],[[120457,120457],"mapped",[122]],[[120458,120458],"mapped",[97]],[[120459,120459],"mapped",[98]],[[120460,120460],"mapped",[99]],[[120461,120461],"mapped",[100]],[[120462,120462],"mapped",[101]],[[120463,120463],"mapped",[102]],[[120464,120464],"mapped",[103]],[[120465,120465],"mapped",[104]],[[120466,120466],"mapped",[105]],[[120467,120467],"mapped",[106]],[[120468,120468],"mapped",[107]],[[120469,120469],"mapped",[108]],[[120470,120470],"mapped",[109]],[[120471,120471],"mapped",[110]],[[120472,120472],"mapped",[111]],[[120473,120473],"mapped",[112]],[[120474,120474],"mapped",[113]],[[120475,120475],"mapped",[114]],[[120476,120476],"mapped",[115]],[[120477,120477],"mapped",[116]],[[120478,120478],"mapped",[117]],[[120479,120479],"mapped",[118]],[[120480,120480],"mapped",[119]],[[120481,120481],"mapped",[120]],[[120482,120482],"mapped",[121]],[[120483,120483],"mapped",[122]],[[120484,120484],"mapped",[305]],[[120485,120485],"mapped",[567]],[[120486,120487],"disallowed"],[[120488,120488],"mapped",[945]],[[120489,120489],"mapped",[946]],[[120490,120490],"mapped",[947]],[[120491,120491],"mapped",[948]],[[120492,120492],"mapped",[949]],[[120493,120493],"mapped",[950]],[[120494,120494],"mapped",[951]],[[120495,120495],"mapped",[952]],[[120496,120496],"mapped",[953]],[[120497,120497],"mapped",[954]],[[120498,120498],"mapped",[955]],[[120499,120499],"mapped",[956]],[[120500,120500],"mapped",[957]],[[120501,120501],"mapped",[958]],[[120502,120502],"mapped",[959]],[[120503,120503],"mapped",[960]],[[120504,120504],"mapped",[961]],[[120505,120505],"mapped",[952]],[[120506,120506],"mapped",[963]],[[120507,120507],"mapped",[964]],[[120508,120508],"mapped",[965]],[[120509,120509],"mapped",[966]],[[120510,120510],"mapped",[967]],[[120511,120511],"mapped",[968]],[[120512,120512],"mapped",[969]],[[120513,120513],"mapped",[8711]],[[120514,120514],"mapped",[945]],[[120515,120515],"mapped",[946]],[[120516,120516],"mapped",[947]],[[120517,120517],"mapped",[948]],[[120518,120518],"mapped",[949]],[[120519,120519],"mapped",[950]],[[120520,120520],"mapped",[951]],[[120521,120521],"mapped",[952]],[[120522,120522],"mapped",[953]],[[120523,120523],"mapped",[954]],[[120524,120524],"mapped",[955]],[[120525,120525],"mapped",[956]],[[120526,120526],"mapped",[957]],[[120527,120527],"mapped",[958]],[[120528,120528],"mapped",[959]],[[120529,120529],"mapped",[960]],[[120530,120530],"mapped",[961]],[[120531,120532],"mapped",[963]],[[120533,120533],"mapped",[964]],[[120534,120534],"mapped",[965]],[[120535,120535],"mapped",[966]],[[120536,120536],"mapped",[967]],[[120537,120537],"mapped",[968]],[[120538,120538],"mapped",[969]],[[120539,120539],"mapped",[8706]],[[120540,120540],"mapped",[949]],[[120541,120541],"mapped",[952]],[[120542,120542],"mapped",[954]],[[120543,120543],"mapped",[966]],[[120544,120544],"mapped",[961]],[[120545,120545],"mapped",[960]],[[120546,120546],"mapped",[945]],[[120547,120547],"mapped",[946]],[[120548,120548],"mapped",[947]],[[120549,120549],"mapped",[948]],[[120550,120550],"mapped",[949]],[[120551,120551],"mapped",[950]],[[120552,120552],"mapped",[951]],[[120553,120553],"mapped",[952]],[[120554,120554],"mapped",[953]],[[120555,120555],"mapped",[954]],[[120556,120556],"mapped",[955]],[[120557,120557],"mapped",[956]],[[120558,120558],"mapped",[957]],[[120559,120559],"mapped",[958]],[[120560,120560],"mapped",[959]],[[120561,120561],"mapped",[960]],[[120562,120562],"mapped",[961]],[[120563,120563],"mapped",[952]],[[120564,120564],"mapped",[963]],[[120565,120565],"mapped",[964]],[[120566,120566],"mapped",[965]],[[120567,120567],"mapped",[966]],[[120568,120568],"mapped",[967]],[[120569,120569],"mapped",[968]],[[120570,120570],"mapped",[969]],[[120571,120571],"mapped",[8711]],[[120572,120572],"mapped",[945]],[[120573,120573],"mapped",[946]],[[120574,120574],"mapped",[947]],[[120575,120575],"mapped",[948]],[[120576,120576],"mapped",[949]],[[120577,120577],"mapped",[950]],[[120578,120578],"mapped",[951]],[[120579,120579],"mapped",[952]],[[120580,120580],"mapped",[953]],[[120581,120581],"mapped",[954]],[[120582,120582],"mapped",[955]],[[120583,120583],"mapped",[956]],[[120584,120584],"mapped",[957]],[[120585,120585],"mapped",[958]],[[120586,120586],"mapped",[959]],[[120587,120587],"mapped",[960]],[[120588,120588],"mapped",[961]],[[120589,120590],"mapped",[963]],[[120591,120591],"mapped",[964]],[[120592,120592],"mapped",[965]],[[120593,120593],"mapped",[966]],[[120594,120594],"mapped",[967]],[[120595,120595],"mapped",[968]],[[120596,120596],"mapped",[969]],[[120597,120597],"mapped",[8706]],[[120598,120598],"mapped",[949]],[[120599,120599],"mapped",[952]],[[120600,120600],"mapped",[954]],[[120601,120601],"mapped",[966]],[[120602,120602],"mapped",[961]],[[120603,120603],"mapped",[960]],[[120604,120604],"mapped",[945]],[[120605,120605],"mapped",[946]],[[120606,120606],"mapped",[947]],[[120607,120607],"mapped",[948]],[[120608,120608],"mapped",[949]],[[120609,120609],"mapped",[950]],[[120610,120610],"mapped",[951]],[[120611,120611],"mapped",[952]],[[120612,120612],"mapped",[953]],[[120613,120613],"mapped",[954]],[[120614,120614],"mapped",[955]],[[120615,120615],"mapped",[956]],[[120616,120616],"mapped",[957]],[[120617,120617],"mapped",[958]],[[120618,120618],"mapped",[959]],[[120619,120619],"mapped",[960]],[[120620,120620],"mapped",[961]],[[120621,120621],"mapped",[952]],[[120622,120622],"mapped",[963]],[[120623,120623],"mapped",[964]],[[120624,120624],"mapped",[965]],[[120625,120625],"mapped",[966]],[[120626,120626],"mapped",[967]],[[120627,120627],"mapped",[968]],[[120628,120628],"mapped",[969]],[[120629,120629],"mapped",[8711]],[[120630,120630],"mapped",[945]],[[120631,120631],"mapped",[946]],[[120632,120632],"mapped",[947]],[[120633,120633],"mapped",[948]],[[120634,120634],"mapped",[949]],[[120635,120635],"mapped",[950]],[[120636,120636],"mapped",[951]],[[120637,120637],"mapped",[952]],[[120638,120638],"mapped",[953]],[[120639,120639],"mapped",[954]],[[120640,120640],"mapped",[955]],[[120641,120641],"mapped",[956]],[[120642,120642],"mapped",[957]],[[120643,120643],"mapped",[958]],[[120644,120644],"mapped",[959]],[[120645,120645],"mapped",[960]],[[120646,120646],"mapped",[961]],[[120647,120648],"mapped",[963]],[[120649,120649],"mapped",[964]],[[120650,120650],"mapped",[965]],[[120651,120651],"mapped",[966]],[[120652,120652],"mapped",[967]],[[120653,120653],"mapped",[968]],[[120654,120654],"mapped",[969]],[[120655,120655],"mapped",[8706]],[[120656,120656],"mapped",[949]],[[120657,120657],"mapped",[952]],[[120658,120658],"mapped",[954]],[[120659,120659],"mapped",[966]],[[120660,120660],"mapped",[961]],[[120661,120661],"mapped",[960]],[[120662,120662],"mapped",[945]],[[120663,120663],"mapped",[946]],[[120664,120664],"mapped",[947]],[[120665,120665],"mapped",[948]],[[120666,120666],"mapped",[949]],[[120667,120667],"mapped",[950]],[[120668,120668],"mapped",[951]],[[120669,120669],"mapped",[952]],[[120670,120670],"mapped",[953]],[[120671,120671],"mapped",[954]],[[120672,120672],"mapped",[955]],[[120673,120673],"mapped",[956]],[[120674,120674],"mapped",[957]],[[120675,120675],"mapped",[958]],[[120676,120676],"mapped",[959]],[[120677,120677],"mapped",[960]],[[120678,120678],"mapped",[961]],[[120679,120679],"mapped",[952]],[[120680,120680],"mapped",[963]],[[120681,120681],"mapped",[964]],[[120682,120682],"mapped",[965]],[[120683,120683],"mapped",[966]],[[120684,120684],"mapped",[967]],[[120685,120685],"mapped",[968]],[[120686,120686],"mapped",[969]],[[120687,120687],"mapped",[8711]],[[120688,120688],"mapped",[945]],[[120689,120689],"mapped",[946]],[[120690,120690],"mapped",[947]],[[120691,120691],"mapped",[948]],[[120692,120692],"mapped",[949]],[[120693,120693],"mapped",[950]],[[120694,120694],"mapped",[951]],[[120695,120695],"mapped",[952]],[[120696,120696],"mapped",[953]],[[120697,120697],"mapped",[954]],[[120698,120698],"mapped",[955]],[[120699,120699],"mapped",[956]],[[120700,120700],"mapped",[957]],[[120701,120701],"mapped",[958]],[[120702,120702],"mapped",[959]],[[120703,120703],"mapped",[960]],[[120704,120704],"mapped",[961]],[[120705,120706],"mapped",[963]],[[120707,120707],"mapped",[964]],[[120708,120708],"mapped",[965]],[[120709,120709],"mapped",[966]],[[120710,120710],"mapped",[967]],[[120711,120711],"mapped",[968]],[[120712,120712],"mapped",[969]],[[120713,120713],"mapped",[8706]],[[120714,120714],"mapped",[949]],[[120715,120715],"mapped",[952]],[[120716,120716],"mapped",[954]],[[120717,120717],"mapped",[966]],[[120718,120718],"mapped",[961]],[[120719,120719],"mapped",[960]],[[120720,120720],"mapped",[945]],[[120721,120721],"mapped",[946]],[[120722,120722],"mapped",[947]],[[120723,120723],"mapped",[948]],[[120724,120724],"mapped",[949]],[[120725,120725],"mapped",[950]],[[120726,120726],"mapped",[951]],[[120727,120727],"mapped",[952]],[[120728,120728],"mapped",[953]],[[120729,120729],"mapped",[954]],[[120730,120730],"mapped",[955]],[[120731,120731],"mapped",[956]],[[120732,120732],"mapped",[957]],[[120733,120733],"mapped",[958]],[[120734,120734],"mapped",[959]],[[120735,120735],"mapped",[960]],[[120736,120736],"mapped",[961]],[[120737,120737],"mapped",[952]],[[120738,120738],"mapped",[963]],[[120739,120739],"mapped",[964]],[[120740,120740],"mapped",[965]],[[120741,120741],"mapped",[966]],[[120742,120742],"mapped",[967]],[[120743,120743],"mapped",[968]],[[120744,120744],"mapped",[969]],[[120745,120745],"mapped",[8711]],[[120746,120746],"mapped",[945]],[[120747,120747],"mapped",[946]],[[120748,120748],"mapped",[947]],[[120749,120749],"mapped",[948]],[[120750,120750],"mapped",[949]],[[120751,120751],"mapped",[950]],[[120752,120752],"mapped",[951]],[[120753,120753],"mapped",[952]],[[120754,120754],"mapped",[953]],[[120755,120755],"mapped",[954]],[[120756,120756],"mapped",[955]],[[120757,120757],"mapped",[956]],[[120758,120758],"mapped",[957]],[[120759,120759],"mapped",[958]],[[120760,120760],"mapped",[959]],[[120761,120761],"mapped",[960]],[[120762,120762],"mapped",[961]],[[120763,120764],"mapped",[963]],[[120765,120765],"mapped",[964]],[[120766,120766],"mapped",[965]],[[120767,120767],"mapped",[966]],[[120768,120768],"mapped",[967]],[[120769,120769],"mapped",[968]],[[120770,120770],"mapped",[969]],[[120771,120771],"mapped",[8706]],[[120772,120772],"mapped",[949]],[[120773,120773],"mapped",[952]],[[120774,120774],"mapped",[954]],[[120775,120775],"mapped",[966]],[[120776,120776],"mapped",[961]],[[120777,120777],"mapped",[960]],[[120778,120779],"mapped",[989]],[[120780,120781],"disallowed"],[[120782,120782],"mapped",[48]],[[120783,120783],"mapped",[49]],[[120784,120784],"mapped",[50]],[[120785,120785],"mapped",[51]],[[120786,120786],"mapped",[52]],[[120787,120787],"mapped",[53]],[[120788,120788],"mapped",[54]],[[120789,120789],"mapped",[55]],[[120790,120790],"mapped",[56]],[[120791,120791],"mapped",[57]],[[120792,120792],"mapped",[48]],[[120793,120793],"mapped",[49]],[[120794,120794],"mapped",[50]],[[120795,120795],"mapped",[51]],[[120796,120796],"mapped",[52]],[[120797,120797],"mapped",[53]],[[120798,120798],"mapped",[54]],[[120799,120799],"mapped",[55]],[[120800,120800],"mapped",[56]],[[120801,120801],"mapped",[57]],[[120802,120802],"mapped",[48]],[[120803,120803],"mapped",[49]],[[120804,120804],"mapped",[50]],[[120805,120805],"mapped",[51]],[[120806,120806],"mapped",[52]],[[120807,120807],"mapped",[53]],[[120808,120808],"mapped",[54]],[[120809,120809],"mapped",[55]],[[120810,120810],"mapped",[56]],[[120811,120811],"mapped",[57]],[[120812,120812],"mapped",[48]],[[120813,120813],"mapped",[49]],[[120814,120814],"mapped",[50]],[[120815,120815],"mapped",[51]],[[120816,120816],"mapped",[52]],[[120817,120817],"mapped",[53]],[[120818,120818],"mapped",[54]],[[120819,120819],"mapped",[55]],[[120820,120820],"mapped",[56]],[[120821,120821],"mapped",[57]],[[120822,120822],"mapped",[48]],[[120823,120823],"mapped",[49]],[[120824,120824],"mapped",[50]],[[120825,120825],"mapped",[51]],[[120826,120826],"mapped",[52]],[[120827,120827],"mapped",[53]],[[120828,120828],"mapped",[54]],[[120829,120829],"mapped",[55]],[[120830,120830],"mapped",[56]],[[120831,120831],"mapped",[57]],[[120832,121343],"valid",[],"NV8"],[[121344,121398],"valid"],[[121399,121402],"valid",[],"NV8"],[[121403,121452],"valid"],[[121453,121460],"valid",[],"NV8"],[[121461,121461],"valid"],[[121462,121475],"valid",[],"NV8"],[[121476,121476],"valid"],[[121477,121483],"valid",[],"NV8"],[[121484,121498],"disallowed"],[[121499,121503],"valid"],[[121504,121504],"disallowed"],[[121505,121519],"valid"],[[121520,124927],"disallowed"],[[124928,125124],"valid"],[[125125,125126],"disallowed"],[[125127,125135],"valid",[],"NV8"],[[125136,125142],"valid"],[[125143,126463],"disallowed"],[[126464,126464],"mapped",[1575]],[[126465,126465],"mapped",[1576]],[[126466,126466],"mapped",[1580]],[[126467,126467],"mapped",[1583]],[[126468,126468],"disallowed"],[[126469,126469],"mapped",[1608]],[[126470,126470],"mapped",[1586]],[[126471,126471],"mapped",[1581]],[[126472,126472],"mapped",[1591]],[[126473,126473],"mapped",[1610]],[[126474,126474],"mapped",[1603]],[[126475,126475],"mapped",[1604]],[[126476,126476],"mapped",[1605]],[[126477,126477],"mapped",[1606]],[[126478,126478],"mapped",[1587]],[[126479,126479],"mapped",[1593]],[[126480,126480],"mapped",[1601]],[[126481,126481],"mapped",[1589]],[[126482,126482],"mapped",[1602]],[[126483,126483],"mapped",[1585]],[[126484,126484],"mapped",[1588]],[[126485,126485],"mapped",[1578]],[[126486,126486],"mapped",[1579]],[[126487,126487],"mapped",[1582]],[[126488,126488],"mapped",[1584]],[[126489,126489],"mapped",[1590]],[[126490,126490],"mapped",[1592]],[[126491,126491],"mapped",[1594]],[[126492,126492],"mapped",[1646]],[[126493,126493],"mapped",[1722]],[[126494,126494],"mapped",[1697]],[[126495,126495],"mapped",[1647]],[[126496,126496],"disallowed"],[[126497,126497],"mapped",[1576]],[[126498,126498],"mapped",[1580]],[[126499,126499],"disallowed"],[[126500,126500],"mapped",[1607]],[[126501,126502],"disallowed"],[[126503,126503],"mapped",[1581]],[[126504,126504],"disallowed"],[[126505,126505],"mapped",[1610]],[[126506,126506],"mapped",[1603]],[[126507,126507],"mapped",[1604]],[[126508,126508],"mapped",[1605]],[[126509,126509],"mapped",[1606]],[[126510,126510],"mapped",[1587]],[[126511,126511],"mapped",[1593]],[[126512,126512],"mapped",[1601]],[[126513,126513],"mapped",[1589]],[[126514,126514],"mapped",[1602]],[[126515,126515],"disallowed"],[[126516,126516],"mapped",[1588]],[[126517,126517],"mapped",[1578]],[[126518,126518],"mapped",[1579]],[[126519,126519],"mapped",[1582]],[[126520,126520],"disallowed"],[[126521,126521],"mapped",[1590]],[[126522,126522],"disallowed"],[[126523,126523],"mapped",[1594]],[[126524,126529],"disallowed"],[[126530,126530],"mapped",[1580]],[[126531,126534],"disallowed"],[[126535,126535],"mapped",[1581]],[[126536,126536],"disallowed"],[[126537,126537],"mapped",[1610]],[[126538,126538],"disallowed"],[[126539,126539],"mapped",[1604]],[[126540,126540],"disallowed"],[[126541,126541],"mapped",[1606]],[[126542,126542],"mapped",[1587]],[[126543,126543],"mapped",[1593]],[[126544,126544],"disallowed"],[[126545,126545],"mapped",[1589]],[[126546,126546],"mapped",[1602]],[[126547,126547],"disallowed"],[[126548,126548],"mapped",[1588]],[[126549,126550],"disallowed"],[[126551,126551],"mapped",[1582]],[[126552,126552],"disallowed"],[[126553,126553],"mapped",[1590]],[[126554,126554],"disallowed"],[[126555,126555],"mapped",[1594]],[[126556,126556],"disallowed"],[[126557,126557],"mapped",[1722]],[[126558,126558],"disallowed"],[[126559,126559],"mapped",[1647]],[[126560,126560],"disallowed"],[[126561,126561],"mapped",[1576]],[[126562,126562],"mapped",[1580]],[[126563,126563],"disallowed"],[[126564,126564],"mapped",[1607]],[[126565,126566],"disallowed"],[[126567,126567],"mapped",[1581]],[[126568,126568],"mapped",[1591]],[[126569,126569],"mapped",[1610]],[[126570,126570],"mapped",[1603]],[[126571,126571],"disallowed"],[[126572,126572],"mapped",[1605]],[[126573,126573],"mapped",[1606]],[[126574,126574],"mapped",[1587]],[[126575,126575],"mapped",[1593]],[[126576,126576],"mapped",[1601]],[[126577,126577],"mapped",[1589]],[[126578,126578],"mapped",[1602]],[[126579,126579],"disallowed"],[[126580,126580],"mapped",[1588]],[[126581,126581],"mapped",[1578]],[[126582,126582],"mapped",[1579]],[[126583,126583],"mapped",[1582]],[[126584,126584],"disallowed"],[[126585,126585],"mapped",[1590]],[[126586,126586],"mapped",[1592]],[[126587,126587],"mapped",[1594]],[[126588,126588],"mapped",[1646]],[[126589,126589],"disallowed"],[[126590,126590],"mapped",[1697]],[[126591,126591],"disallowed"],[[126592,126592],"mapped",[1575]],[[126593,126593],"mapped",[1576]],[[126594,126594],"mapped",[1580]],[[126595,126595],"mapped",[1583]],[[126596,126596],"mapped",[1607]],[[126597,126597],"mapped",[1608]],[[126598,126598],"mapped",[1586]],[[126599,126599],"mapped",[1581]],[[126600,126600],"mapped",[1591]],[[126601,126601],"mapped",[1610]],[[126602,126602],"disallowed"],[[126603,126603],"mapped",[1604]],[[126604,126604],"mapped",[1605]],[[126605,126605],"mapped",[1606]],[[126606,126606],"mapped",[1587]],[[126607,126607],"mapped",[1593]],[[126608,126608],"mapped",[1601]],[[126609,126609],"mapped",[1589]],[[126610,126610],"mapped",[1602]],[[126611,126611],"mapped",[1585]],[[126612,126612],"mapped",[1588]],[[126613,126613],"mapped",[1578]],[[126614,126614],"mapped",[1579]],[[126615,126615],"mapped",[1582]],[[126616,126616],"mapped",[1584]],[[126617,126617],"mapped",[1590]],[[126618,126618],"mapped",[1592]],[[126619,126619],"mapped",[1594]],[[126620,126624],"disallowed"],[[126625,126625],"mapped",[1576]],[[126626,126626],"mapped",[1580]],[[126627,126627],"mapped",[1583]],[[126628,126628],"disallowed"],[[126629,126629],"mapped",[1608]],[[126630,126630],"mapped",[1586]],[[126631,126631],"mapped",[1581]],[[126632,126632],"mapped",[1591]],[[126633,126633],"mapped",[1610]],[[126634,126634],"disallowed"],[[126635,126635],"mapped",[1604]],[[126636,126636],"mapped",[1605]],[[126637,126637],"mapped",[1606]],[[126638,126638],"mapped",[1587]],[[126639,126639],"mapped",[1593]],[[126640,126640],"mapped",[1601]],[[126641,126641],"mapped",[1589]],[[126642,126642],"mapped",[1602]],[[126643,126643],"mapped",[1585]],[[126644,126644],"mapped",[1588]],[[126645,126645],"mapped",[1578]],[[126646,126646],"mapped",[1579]],[[126647,126647],"mapped",[1582]],[[126648,126648],"mapped",[1584]],[[126649,126649],"mapped",[1590]],[[126650,126650],"mapped",[1592]],[[126651,126651],"mapped",[1594]],[[126652,126703],"disallowed"],[[126704,126705],"valid",[],"NV8"],[[126706,126975],"disallowed"],[[126976,127019],"valid",[],"NV8"],[[127020,127023],"disallowed"],[[127024,127123],"valid",[],"NV8"],[[127124,127135],"disallowed"],[[127136,127150],"valid",[],"NV8"],[[127151,127152],"disallowed"],[[127153,127166],"valid",[],"NV8"],[[127167,127167],"valid",[],"NV8"],[[127168,127168],"disallowed"],[[127169,127183],"valid",[],"NV8"],[[127184,127184],"disallowed"],[[127185,127199],"valid",[],"NV8"],[[127200,127221],"valid",[],"NV8"],[[127222,127231],"disallowed"],[[127232,127232],"disallowed"],[[127233,127233],"disallowed_STD3_mapped",[48,44]],[[127234,127234],"disallowed_STD3_mapped",[49,44]],[[127235,127235],"disallowed_STD3_mapped",[50,44]],[[127236,127236],"disallowed_STD3_mapped",[51,44]],[[127237,127237],"disallowed_STD3_mapped",[52,44]],[[127238,127238],"disallowed_STD3_mapped",[53,44]],[[127239,127239],"disallowed_STD3_mapped",[54,44]],[[127240,127240],"disallowed_STD3_mapped",[55,44]],[[127241,127241],"disallowed_STD3_mapped",[56,44]],[[127242,127242],"disallowed_STD3_mapped",[57,44]],[[127243,127244],"valid",[],"NV8"],[[127245,127247],"disallowed"],[[127248,127248],"disallowed_STD3_mapped",[40,97,41]],[[127249,127249],"disallowed_STD3_mapped",[40,98,41]],[[127250,127250],"disallowed_STD3_mapped",[40,99,41]],[[127251,127251],"disallowed_STD3_mapped",[40,100,41]],[[127252,127252],"disallowed_STD3_mapped",[40,101,41]],[[127253,127253],"disallowed_STD3_mapped",[40,102,41]],[[127254,127254],"disallowed_STD3_mapped",[40,103,41]],[[127255,127255],"disallowed_STD3_mapped",[40,104,41]],[[127256,127256],"disallowed_STD3_mapped",[40,105,41]],[[127257,127257],"disallowed_STD3_mapped",[40,106,41]],[[127258,127258],"disallowed_STD3_mapped",[40,107,41]],[[127259,127259],"disallowed_STD3_mapped",[40,108,41]],[[127260,127260],"disallowed_STD3_mapped",[40,109,41]],[[127261,127261],"disallowed_STD3_mapped",[40,110,41]],[[127262,127262],"disallowed_STD3_mapped",[40,111,41]],[[127263,127263],"disallowed_STD3_mapped",[40,112,41]],[[127264,127264],"disallowed_STD3_mapped",[40,113,41]],[[127265,127265],"disallowed_STD3_mapped",[40,114,41]],[[127266,127266],"disallowed_STD3_mapped",[40,115,41]],[[127267,127267],"disallowed_STD3_mapped",[40,116,41]],[[127268,127268],"disallowed_STD3_mapped",[40,117,41]],[[127269,127269],"disallowed_STD3_mapped",[40,118,41]],[[127270,127270],"disallowed_STD3_mapped",[40,119,41]],[[127271,127271],"disallowed_STD3_mapped",[40,120,41]],[[127272,127272],"disallowed_STD3_mapped",[40,121,41]],[[127273,127273],"disallowed_STD3_mapped",[40,122,41]],[[127274,127274],"mapped",[12308,115,12309]],[[127275,127275],"mapped",[99]],[[127276,127276],"mapped",[114]],[[127277,127277],"mapped",[99,100]],[[127278,127278],"mapped",[119,122]],[[127279,127279],"disallowed"],[[127280,127280],"mapped",[97]],[[127281,127281],"mapped",[98]],[[127282,127282],"mapped",[99]],[[127283,127283],"mapped",[100]],[[127284,127284],"mapped",[101]],[[127285,127285],"mapped",[102]],[[127286,127286],"mapped",[103]],[[127287,127287],"mapped",[104]],[[127288,127288],"mapped",[105]],[[127289,127289],"mapped",[106]],[[127290,127290],"mapped",[107]],[[127291,127291],"mapped",[108]],[[127292,127292],"mapped",[109]],[[127293,127293],"mapped",[110]],[[127294,127294],"mapped",[111]],[[127295,127295],"mapped",[112]],[[127296,127296],"mapped",[113]],[[127297,127297],"mapped",[114]],[[127298,127298],"mapped",[115]],[[127299,127299],"mapped",[116]],[[127300,127300],"mapped",[117]],[[127301,127301],"mapped",[118]],[[127302,127302],"mapped",[119]],[[127303,127303],"mapped",[120]],[[127304,127304],"mapped",[121]],[[127305,127305],"mapped",[122]],[[127306,127306],"mapped",[104,118]],[[127307,127307],"mapped",[109,118]],[[127308,127308],"mapped",[115,100]],[[127309,127309],"mapped",[115,115]],[[127310,127310],"mapped",[112,112,118]],[[127311,127311],"mapped",[119,99]],[[127312,127318],"valid",[],"NV8"],[[127319,127319],"valid",[],"NV8"],[[127320,127326],"valid",[],"NV8"],[[127327,127327],"valid",[],"NV8"],[[127328,127337],"valid",[],"NV8"],[[127338,127338],"mapped",[109,99]],[[127339,127339],"mapped",[109,100]],[[127340,127343],"disallowed"],[[127344,127352],"valid",[],"NV8"],[[127353,127353],"valid",[],"NV8"],[[127354,127354],"valid",[],"NV8"],[[127355,127356],"valid",[],"NV8"],[[127357,127358],"valid",[],"NV8"],[[127359,127359],"valid",[],"NV8"],[[127360,127369],"valid",[],"NV8"],[[127370,127373],"valid",[],"NV8"],[[127374,127375],"valid",[],"NV8"],[[127376,127376],"mapped",[100,106]],[[127377,127386],"valid",[],"NV8"],[[127387,127461],"disallowed"],[[127462,127487],"valid",[],"NV8"],[[127488,127488],"mapped",[12411,12363]],[[127489,127489],"mapped",[12467,12467]],[[127490,127490],"mapped",[12469]],[[127491,127503],"disallowed"],[[127504,127504],"mapped",[25163]],[[127505,127505],"mapped",[23383]],[[127506,127506],"mapped",[21452]],[[127507,127507],"mapped",[12487]],[[127508,127508],"mapped",[20108]],[[127509,127509],"mapped",[22810]],[[127510,127510],"mapped",[35299]],[[127511,127511],"mapped",[22825]],[[127512,127512],"mapped",[20132]],[[127513,127513],"mapped",[26144]],[[127514,127514],"mapped",[28961]],[[127515,127515],"mapped",[26009]],[[127516,127516],"mapped",[21069]],[[127517,127517],"mapped",[24460]],[[127518,127518],"mapped",[20877]],[[127519,127519],"mapped",[26032]],[[127520,127520],"mapped",[21021]],[[127521,127521],"mapped",[32066]],[[127522,127522],"mapped",[29983]],[[127523,127523],"mapped",[36009]],[[127524,127524],"mapped",[22768]],[[127525,127525],"mapped",[21561]],[[127526,127526],"mapped",[28436]],[[127527,127527],"mapped",[25237]],[[127528,127528],"mapped",[25429]],[[127529,127529],"mapped",[19968]],[[127530,127530],"mapped",[19977]],[[127531,127531],"mapped",[36938]],[[127532,127532],"mapped",[24038]],[[127533,127533],"mapped",[20013]],[[127534,127534],"mapped",[21491]],[[127535,127535],"mapped",[25351]],[[127536,127536],"mapped",[36208]],[[127537,127537],"mapped",[25171]],[[127538,127538],"mapped",[31105]],[[127539,127539],"mapped",[31354]],[[127540,127540],"mapped",[21512]],[[127541,127541],"mapped",[28288]],[[127542,127542],"mapped",[26377]],[[127543,127543],"mapped",[26376]],[[127544,127544],"mapped",[30003]],[[127545,127545],"mapped",[21106]],[[127546,127546],"mapped",[21942]],[[127547,127551],"disallowed"],[[127552,127552],"mapped",[12308,26412,12309]],[[127553,127553],"mapped",[12308,19977,12309]],[[127554,127554],"mapped",[12308,20108,12309]],[[127555,127555],"mapped",[12308,23433,12309]],[[127556,127556],"mapped",[12308,28857,12309]],[[127557,127557],"mapped",[12308,25171,12309]],[[127558,127558],"mapped",[12308,30423,12309]],[[127559,127559],"mapped",[12308,21213,12309]],[[127560,127560],"mapped",[12308,25943,12309]],[[127561,127567],"disallowed"],[[127568,127568],"mapped",[24471]],[[127569,127569],"mapped",[21487]],[[127570,127743],"disallowed"],[[127744,127776],"valid",[],"NV8"],[[127777,127788],"valid",[],"NV8"],[[127789,127791],"valid",[],"NV8"],[[127792,127797],"valid",[],"NV8"],[[127798,127798],"valid",[],"NV8"],[[127799,127868],"valid",[],"NV8"],[[127869,127869],"valid",[],"NV8"],[[127870,127871],"valid",[],"NV8"],[[127872,127891],"valid",[],"NV8"],[[127892,127903],"valid",[],"NV8"],[[127904,127940],"valid",[],"NV8"],[[127941,127941],"valid",[],"NV8"],[[127942,127946],"valid",[],"NV8"],[[127947,127950],"valid",[],"NV8"],[[127951,127955],"valid",[],"NV8"],[[127956,127967],"valid",[],"NV8"],[[127968,127984],"valid",[],"NV8"],[[127985,127991],"valid",[],"NV8"],[[127992,127999],"valid",[],"NV8"],[[128000,128062],"valid",[],"NV8"],[[128063,128063],"valid",[],"NV8"],[[128064,128064],"valid",[],"NV8"],[[128065,128065],"valid",[],"NV8"],[[128066,128247],"valid",[],"NV8"],[[128248,128248],"valid",[],"NV8"],[[128249,128252],"valid",[],"NV8"],[[128253,128254],"valid",[],"NV8"],[[128255,128255],"valid",[],"NV8"],[[128256,128317],"valid",[],"NV8"],[[128318,128319],"valid",[],"NV8"],[[128320,128323],"valid",[],"NV8"],[[128324,128330],"valid",[],"NV8"],[[128331,128335],"valid",[],"NV8"],[[128336,128359],"valid",[],"NV8"],[[128360,128377],"valid",[],"NV8"],[[128378,128378],"disallowed"],[[128379,128419],"valid",[],"NV8"],[[128420,128420],"disallowed"],[[128421,128506],"valid",[],"NV8"],[[128507,128511],"valid",[],"NV8"],[[128512,128512],"valid",[],"NV8"],[[128513,128528],"valid",[],"NV8"],[[128529,128529],"valid",[],"NV8"],[[128530,128532],"valid",[],"NV8"],[[128533,128533],"valid",[],"NV8"],[[128534,128534],"valid",[],"NV8"],[[128535,128535],"valid",[],"NV8"],[[128536,128536],"valid",[],"NV8"],[[128537,128537],"valid",[],"NV8"],[[128538,128538],"valid",[],"NV8"],[[128539,128539],"valid",[],"NV8"],[[128540,128542],"valid",[],"NV8"],[[128543,128543],"valid",[],"NV8"],[[128544,128549],"valid",[],"NV8"],[[128550,128551],"valid",[],"NV8"],[[128552,128555],"valid",[],"NV8"],[[128556,128556],"valid",[],"NV8"],[[128557,128557],"valid",[],"NV8"],[[128558,128559],"valid",[],"NV8"],[[128560,128563],"valid",[],"NV8"],[[128564,128564],"valid",[],"NV8"],[[128565,128576],"valid",[],"NV8"],[[128577,128578],"valid",[],"NV8"],[[128579,128580],"valid",[],"NV8"],[[128581,128591],"valid",[],"NV8"],[[128592,128639],"valid",[],"NV8"],[[128640,128709],"valid",[],"NV8"],[[128710,128719],"valid",[],"NV8"],[[128720,128720],"valid",[],"NV8"],[[128721,128735],"disallowed"],[[128736,128748],"valid",[],"NV8"],[[128749,128751],"disallowed"],[[128752,128755],"valid",[],"NV8"],[[128756,128767],"disallowed"],[[128768,128883],"valid",[],"NV8"],[[128884,128895],"disallowed"],[[128896,128980],"valid",[],"NV8"],[[128981,129023],"disallowed"],[[129024,129035],"valid",[],"NV8"],[[129036,129039],"disallowed"],[[129040,129095],"valid",[],"NV8"],[[129096,129103],"disallowed"],[[129104,129113],"valid",[],"NV8"],[[129114,129119],"disallowed"],[[129120,129159],"valid",[],"NV8"],[[129160,129167],"disallowed"],[[129168,129197],"valid",[],"NV8"],[[129198,129295],"disallowed"],[[129296,129304],"valid",[],"NV8"],[[129305,129407],"disallowed"],[[129408,129412],"valid",[],"NV8"],[[129413,129471],"disallowed"],[[129472,129472],"valid",[],"NV8"],[[129473,131069],"disallowed"],[[131070,131071],"disallowed"],[[131072,173782],"valid"],[[173783,173823],"disallowed"],[[173824,177972],"valid"],[[177973,177983],"disallowed"],[[177984,178205],"valid"],[[178206,178207],"disallowed"],[[178208,183969],"valid"],[[183970,194559],"disallowed"],[[194560,194560],"mapped",[20029]],[[194561,194561],"mapped",[20024]],[[194562,194562],"mapped",[20033]],[[194563,194563],"mapped",[131362]],[[194564,194564],"mapped",[20320]],[[194565,194565],"mapped",[20398]],[[194566,194566],"mapped",[20411]],[[194567,194567],"mapped",[20482]],[[194568,194568],"mapped",[20602]],[[194569,194569],"mapped",[20633]],[[194570,194570],"mapped",[20711]],[[194571,194571],"mapped",[20687]],[[194572,194572],"mapped",[13470]],[[194573,194573],"mapped",[132666]],[[194574,194574],"mapped",[20813]],[[194575,194575],"mapped",[20820]],[[194576,194576],"mapped",[20836]],[[194577,194577],"mapped",[20855]],[[194578,194578],"mapped",[132380]],[[194579,194579],"mapped",[13497]],[[194580,194580],"mapped",[20839]],[[194581,194581],"mapped",[20877]],[[194582,194582],"mapped",[132427]],[[194583,194583],"mapped",[20887]],[[194584,194584],"mapped",[20900]],[[194585,194585],"mapped",[20172]],[[194586,194586],"mapped",[20908]],[[194587,194587],"mapped",[20917]],[[194588,194588],"mapped",[168415]],[[194589,194589],"mapped",[20981]],[[194590,194590],"mapped",[20995]],[[194591,194591],"mapped",[13535]],[[194592,194592],"mapped",[21051]],[[194593,194593],"mapped",[21062]],[[194594,194594],"mapped",[21106]],[[194595,194595],"mapped",[21111]],[[194596,194596],"mapped",[13589]],[[194597,194597],"mapped",[21191]],[[194598,194598],"mapped",[21193]],[[194599,194599],"mapped",[21220]],[[194600,194600],"mapped",[21242]],[[194601,194601],"mapped",[21253]],[[194602,194602],"mapped",[21254]],[[194603,194603],"mapped",[21271]],[[194604,194604],"mapped",[21321]],[[194605,194605],"mapped",[21329]],[[194606,194606],"mapped",[21338]],[[194607,194607],"mapped",[21363]],[[194608,194608],"mapped",[21373]],[[194609,194611],"mapped",[21375]],[[194612,194612],"mapped",[133676]],[[194613,194613],"mapped",[28784]],[[194614,194614],"mapped",[21450]],[[194615,194615],"mapped",[21471]],[[194616,194616],"mapped",[133987]],[[194617,194617],"mapped",[21483]],[[194618,194618],"mapped",[21489]],[[194619,194619],"mapped",[21510]],[[194620,194620],"mapped",[21662]],[[194621,194621],"mapped",[21560]],[[194622,194622],"mapped",[21576]],[[194623,194623],"mapped",[21608]],[[194624,194624],"mapped",[21666]],[[194625,194625],"mapped",[21750]],[[194626,194626],"mapped",[21776]],[[194627,194627],"mapped",[21843]],[[194628,194628],"mapped",[21859]],[[194629,194630],"mapped",[21892]],[[194631,194631],"mapped",[21913]],[[194632,194632],"mapped",[21931]],[[194633,194633],"mapped",[21939]],[[194634,194634],"mapped",[21954]],[[194635,194635],"mapped",[22294]],[[194636,194636],"mapped",[22022]],[[194637,194637],"mapped",[22295]],[[194638,194638],"mapped",[22097]],[[194639,194639],"mapped",[22132]],[[194640,194640],"mapped",[20999]],[[194641,194641],"mapped",[22766]],[[194642,194642],"mapped",[22478]],[[194643,194643],"mapped",[22516]],[[194644,194644],"mapped",[22541]],[[194645,194645],"mapped",[22411]],[[194646,194646],"mapped",[22578]],[[194647,194647],"mapped",[22577]],[[194648,194648],"mapped",[22700]],[[194649,194649],"mapped",[136420]],[[194650,194650],"mapped",[22770]],[[194651,194651],"mapped",[22775]],[[194652,194652],"mapped",[22790]],[[194653,194653],"mapped",[22810]],[[194654,194654],"mapped",[22818]],[[194655,194655],"mapped",[22882]],[[194656,194656],"mapped",[136872]],[[194657,194657],"mapped",[136938]],[[194658,194658],"mapped",[23020]],[[194659,194659],"mapped",[23067]],[[194660,194660],"mapped",[23079]],[[194661,194661],"mapped",[23000]],[[194662,194662],"mapped",[23142]],[[194663,194663],"mapped",[14062]],[[194664,194664],"disallowed"],[[194665,194665],"mapped",[23304]],[[194666,194667],"mapped",[23358]],[[194668,194668],"mapped",[137672]],[[194669,194669],"mapped",[23491]],[[194670,194670],"mapped",[23512]],[[194671,194671],"mapped",[23527]],[[194672,194672],"mapped",[23539]],[[194673,194673],"mapped",[138008]],[[194674,194674],"mapped",[23551]],[[194675,194675],"mapped",[23558]],[[194676,194676],"disallowed"],[[194677,194677],"mapped",[23586]],[[194678,194678],"mapped",[14209]],[[194679,194679],"mapped",[23648]],[[194680,194680],"mapped",[23662]],[[194681,194681],"mapped",[23744]],[[194682,194682],"mapped",[23693]],[[194683,194683],"mapped",[138724]],[[194684,194684],"mapped",[23875]],[[194685,194685],"mapped",[138726]],[[194686,194686],"mapped",[23918]],[[194687,194687],"mapped",[23915]],[[194688,194688],"mapped",[23932]],[[194689,194689],"mapped",[24033]],[[194690,194690],"mapped",[24034]],[[194691,194691],"mapped",[14383]],[[194692,194692],"mapped",[24061]],[[194693,194693],"mapped",[24104]],[[194694,194694],"mapped",[24125]],[[194695,194695],"mapped",[24169]],[[194696,194696],"mapped",[14434]],[[194697,194697],"mapped",[139651]],[[194698,194698],"mapped",[14460]],[[194699,194699],"mapped",[24240]],[[194700,194700],"mapped",[24243]],[[194701,194701],"mapped",[24246]],[[194702,194702],"mapped",[24266]],[[194703,194703],"mapped",[172946]],[[194704,194704],"mapped",[24318]],[[194705,194706],"mapped",[140081]],[[194707,194707],"mapped",[33281]],[[194708,194709],"mapped",[24354]],[[194710,194710],"mapped",[14535]],[[194711,194711],"mapped",[144056]],[[194712,194712],"mapped",[156122]],[[194713,194713],"mapped",[24418]],[[194714,194714],"mapped",[24427]],[[194715,194715],"mapped",[14563]],[[194716,194716],"mapped",[24474]],[[194717,194717],"mapped",[24525]],[[194718,194718],"mapped",[24535]],[[194719,194719],"mapped",[24569]],[[194720,194720],"mapped",[24705]],[[194721,194721],"mapped",[14650]],[[194722,194722],"mapped",[14620]],[[194723,194723],"mapped",[24724]],[[194724,194724],"mapped",[141012]],[[194725,194725],"mapped",[24775]],[[194726,194726],"mapped",[24904]],[[194727,194727],"mapped",[24908]],[[194728,194728],"mapped",[24910]],[[194729,194729],"mapped",[24908]],[[194730,194730],"mapped",[24954]],[[194731,194731],"mapped",[24974]],[[194732,194732],"mapped",[25010]],[[194733,194733],"mapped",[24996]],[[194734,194734],"mapped",[25007]],[[194735,194735],"mapped",[25054]],[[194736,194736],"mapped",[25074]],[[194737,194737],"mapped",[25078]],[[194738,194738],"mapped",[25104]],[[194739,194739],"mapped",[25115]],[[194740,194740],"mapped",[25181]],[[194741,194741],"mapped",[25265]],[[194742,194742],"mapped",[25300]],[[194743,194743],"mapped",[25424]],[[194744,194744],"mapped",[142092]],[[194745,194745],"mapped",[25405]],[[194746,194746],"mapped",[25340]],[[194747,194747],"mapped",[25448]],[[194748,194748],"mapped",[25475]],[[194749,194749],"mapped",[25572]],[[194750,194750],"mapped",[142321]],[[194751,194751],"mapped",[25634]],[[194752,194752],"mapped",[25541]],[[194753,194753],"mapped",[25513]],[[194754,194754],"mapped",[14894]],[[194755,194755],"mapped",[25705]],[[194756,194756],"mapped",[25726]],[[194757,194757],"mapped",[25757]],[[194758,194758],"mapped",[25719]],[[194759,194759],"mapped",[14956]],[[194760,194760],"mapped",[25935]],[[194761,194761],"mapped",[25964]],[[194762,194762],"mapped",[143370]],[[194763,194763],"mapped",[26083]],[[194764,194764],"mapped",[26360]],[[194765,194765],"mapped",[26185]],[[194766,194766],"mapped",[15129]],[[194767,194767],"mapped",[26257]],[[194768,194768],"mapped",[15112]],[[194769,194769],"mapped",[15076]],[[194770,194770],"mapped",[20882]],[[194771,194771],"mapped",[20885]],[[194772,194772],"mapped",[26368]],[[194773,194773],"mapped",[26268]],[[194774,194774],"mapped",[32941]],[[194775,194775],"mapped",[17369]],[[194776,194776],"mapped",[26391]],[[194777,194777],"mapped",[26395]],[[194778,194778],"mapped",[26401]],[[194779,194779],"mapped",[26462]],[[194780,194780],"mapped",[26451]],[[194781,194781],"mapped",[144323]],[[194782,194782],"mapped",[15177]],[[194783,194783],"mapped",[26618]],[[194784,194784],"mapped",[26501]],[[194785,194785],"mapped",[26706]],[[194786,194786],"mapped",[26757]],[[194787,194787],"mapped",[144493]],[[194788,194788],"mapped",[26766]],[[194789,194789],"mapped",[26655]],[[194790,194790],"mapped",[26900]],[[194791,194791],"mapped",[15261]],[[194792,194792],"mapped",[26946]],[[194793,194793],"mapped",[27043]],[[194794,194794],"mapped",[27114]],[[194795,194795],"mapped",[27304]],[[194796,194796],"mapped",[145059]],[[194797,194797],"mapped",[27355]],[[194798,194798],"mapped",[15384]],[[194799,194799],"mapped",[27425]],[[194800,194800],"mapped",[145575]],[[194801,194801],"mapped",[27476]],[[194802,194802],"mapped",[15438]],[[194803,194803],"mapped",[27506]],[[194804,194804],"mapped",[27551]],[[194805,194805],"mapped",[27578]],[[194806,194806],"mapped",[27579]],[[194807,194807],"mapped",[146061]],[[194808,194808],"mapped",[138507]],[[194809,194809],"mapped",[146170]],[[194810,194810],"mapped",[27726]],[[194811,194811],"mapped",[146620]],[[194812,194812],"mapped",[27839]],[[194813,194813],"mapped",[27853]],[[194814,194814],"mapped",[27751]],[[194815,194815],"mapped",[27926]],[[194816,194816],"mapped",[27966]],[[194817,194817],"mapped",[28023]],[[194818,194818],"mapped",[27969]],[[194819,194819],"mapped",[28009]],[[194820,194820],"mapped",[28024]],[[194821,194821],"mapped",[28037]],[[194822,194822],"mapped",[146718]],[[194823,194823],"mapped",[27956]],[[194824,194824],"mapped",[28207]],[[194825,194825],"mapped",[28270]],[[194826,194826],"mapped",[15667]],[[194827,194827],"mapped",[28363]],[[194828,194828],"mapped",[28359]],[[194829,194829],"mapped",[147153]],[[194830,194830],"mapped",[28153]],[[194831,194831],"mapped",[28526]],[[194832,194832],"mapped",[147294]],[[194833,194833],"mapped",[147342]],[[194834,194834],"mapped",[28614]],[[194835,194835],"mapped",[28729]],[[194836,194836],"mapped",[28702]],[[194837,194837],"mapped",[28699]],[[194838,194838],"mapped",[15766]],[[194839,194839],"mapped",[28746]],[[194840,194840],"mapped",[28797]],[[194841,194841],"mapped",[28791]],[[194842,194842],"mapped",[28845]],[[194843,194843],"mapped",[132389]],[[194844,194844],"mapped",[28997]],[[194845,194845],"mapped",[148067]],[[194846,194846],"mapped",[29084]],[[194847,194847],"disallowed"],[[194848,194848],"mapped",[29224]],[[194849,194849],"mapped",[29237]],[[194850,194850],"mapped",[29264]],[[194851,194851],"mapped",[149000]],[[194852,194852],"mapped",[29312]],[[194853,194853],"mapped",[29333]],[[194854,194854],"mapped",[149301]],[[194855,194855],"mapped",[149524]],[[194856,194856],"mapped",[29562]],[[194857,194857],"mapped",[29579]],[[194858,194858],"mapped",[16044]],[[194859,194859],"mapped",[29605]],[[194860,194861],"mapped",[16056]],[[194862,194862],"mapped",[29767]],[[194863,194863],"mapped",[29788]],[[194864,194864],"mapped",[29809]],[[194865,194865],"mapped",[29829]],[[194866,194866],"mapped",[29898]],[[194867,194867],"mapped",[16155]],[[194868,194868],"mapped",[29988]],[[194869,194869],"mapped",[150582]],[[194870,194870],"mapped",[30014]],[[194871,194871],"mapped",[150674]],[[194872,194872],"mapped",[30064]],[[194873,194873],"mapped",[139679]],[[194874,194874],"mapped",[30224]],[[194875,194875],"mapped",[151457]],[[194876,194876],"mapped",[151480]],[[194877,194877],"mapped",[151620]],[[194878,194878],"mapped",[16380]],[[194879,194879],"mapped",[16392]],[[194880,194880],"mapped",[30452]],[[194881,194881],"mapped",[151795]],[[194882,194882],"mapped",[151794]],[[194883,194883],"mapped",[151833]],[[194884,194884],"mapped",[151859]],[[194885,194885],"mapped",[30494]],[[194886,194887],"mapped",[30495]],[[194888,194888],"mapped",[30538]],[[194889,194889],"mapped",[16441]],[[194890,194890],"mapped",[30603]],[[194891,194891],"mapped",[16454]],[[194892,194892],"mapped",[16534]],[[194893,194893],"mapped",[152605]],[[194894,194894],"mapped",[30798]],[[194895,194895],"mapped",[30860]],[[194896,194896],"mapped",[30924]],[[194897,194897],"mapped",[16611]],[[194898,194898],"mapped",[153126]],[[194899,194899],"mapped",[31062]],[[194900,194900],"mapped",[153242]],[[194901,194901],"mapped",[153285]],[[194902,194902],"mapped",[31119]],[[194903,194903],"mapped",[31211]],[[194904,194904],"mapped",[16687]],[[194905,194905],"mapped",[31296]],[[194906,194906],"mapped",[31306]],[[194907,194907],"mapped",[31311]],[[194908,194908],"mapped",[153980]],[[194909,194910],"mapped",[154279]],[[194911,194911],"disallowed"],[[194912,194912],"mapped",[16898]],[[194913,194913],"mapped",[154539]],[[194914,194914],"mapped",[31686]],[[194915,194915],"mapped",[31689]],[[194916,194916],"mapped",[16935]],[[194917,194917],"mapped",[154752]],[[194918,194918],"mapped",[31954]],[[194919,194919],"mapped",[17056]],[[194920,194920],"mapped",[31976]],[[194921,194921],"mapped",[31971]],[[194922,194922],"mapped",[32000]],[[194923,194923],"mapped",[155526]],[[194924,194924],"mapped",[32099]],[[194925,194925],"mapped",[17153]],[[194926,194926],"mapped",[32199]],[[194927,194927],"mapped",[32258]],[[194928,194928],"mapped",[32325]],[[194929,194929],"mapped",[17204]],[[194930,194930],"mapped",[156200]],[[194931,194931],"mapped",[156231]],[[194932,194932],"mapped",[17241]],[[194933,194933],"mapped",[156377]],[[194934,194934],"mapped",[32634]],[[194935,194935],"mapped",[156478]],[[194936,194936],"mapped",[32661]],[[194937,194937],"mapped",[32762]],[[194938,194938],"mapped",[32773]],[[194939,194939],"mapped",[156890]],[[194940,194940],"mapped",[156963]],[[194941,194941],"mapped",[32864]],[[194942,194942],"mapped",[157096]],[[194943,194943],"mapped",[32880]],[[194944,194944],"mapped",[144223]],[[194945,194945],"mapped",[17365]],[[194946,194946],"mapped",[32946]],[[194947,194947],"mapped",[33027]],[[194948,194948],"mapped",[17419]],[[194949,194949],"mapped",[33086]],[[194950,194950],"mapped",[23221]],[[194951,194951],"mapped",[157607]],[[194952,194952],"mapped",[157621]],[[194953,194953],"mapped",[144275]],[[194954,194954],"mapped",[144284]],[[194955,194955],"mapped",[33281]],[[194956,194956],"mapped",[33284]],[[194957,194957],"mapped",[36766]],[[194958,194958],"mapped",[17515]],[[194959,194959],"mapped",[33425]],[[194960,194960],"mapped",[33419]],[[194961,194961],"mapped",[33437]],[[194962,194962],"mapped",[21171]],[[194963,194963],"mapped",[33457]],[[194964,194964],"mapped",[33459]],[[194965,194965],"mapped",[33469]],[[194966,194966],"mapped",[33510]],[[194967,194967],"mapped",[158524]],[[194968,194968],"mapped",[33509]],[[194969,194969],"mapped",[33565]],[[194970,194970],"mapped",[33635]],[[194971,194971],"mapped",[33709]],[[194972,194972],"mapped",[33571]],[[194973,194973],"mapped",[33725]],[[194974,194974],"mapped",[33767]],[[194975,194975],"mapped",[33879]],[[194976,194976],"mapped",[33619]],[[194977,194977],"mapped",[33738]],[[194978,194978],"mapped",[33740]],[[194979,194979],"mapped",[33756]],[[194980,194980],"mapped",[158774]],[[194981,194981],"mapped",[159083]],[[194982,194982],"mapped",[158933]],[[194983,194983],"mapped",[17707]],[[194984,194984],"mapped",[34033]],[[194985,194985],"mapped",[34035]],[[194986,194986],"mapped",[34070]],[[194987,194987],"mapped",[160714]],[[194988,194988],"mapped",[34148]],[[194989,194989],"mapped",[159532]],[[194990,194990],"mapped",[17757]],[[194991,194991],"mapped",[17761]],[[194992,194992],"mapped",[159665]],[[194993,194993],"mapped",[159954]],[[194994,194994],"mapped",[17771]],[[194995,194995],"mapped",[34384]],[[194996,194996],"mapped",[34396]],[[194997,194997],"mapped",[34407]],[[194998,194998],"mapped",[34409]],[[194999,194999],"mapped",[34473]],[[195000,195000],"mapped",[34440]],[[195001,195001],"mapped",[34574]],[[195002,195002],"mapped",[34530]],[[195003,195003],"mapped",[34681]],[[195004,195004],"mapped",[34600]],[[195005,195005],"mapped",[34667]],[[195006,195006],"mapped",[34694]],[[195007,195007],"disallowed"],[[195008,195008],"mapped",[34785]],[[195009,195009],"mapped",[34817]],[[195010,195010],"mapped",[17913]],[[195011,195011],"mapped",[34912]],[[195012,195012],"mapped",[34915]],[[195013,195013],"mapped",[161383]],[[195014,195014],"mapped",[35031]],[[195015,195015],"mapped",[35038]],[[195016,195016],"mapped",[17973]],[[195017,195017],"mapped",[35066]],[[195018,195018],"mapped",[13499]],[[195019,195019],"mapped",[161966]],[[195020,195020],"mapped",[162150]],[[195021,195021],"mapped",[18110]],[[195022,195022],"mapped",[18119]],[[195023,195023],"mapped",[35488]],[[195024,195024],"mapped",[35565]],[[195025,195025],"mapped",[35722]],[[195026,195026],"mapped",[35925]],[[195027,195027],"mapped",[162984]],[[195028,195028],"mapped",[36011]],[[195029,195029],"mapped",[36033]],[[195030,195030],"mapped",[36123]],[[195031,195031],"mapped",[36215]],[[195032,195032],"mapped",[163631]],[[195033,195033],"mapped",[133124]],[[195034,195034],"mapped",[36299]],[[195035,195035],"mapped",[36284]],[[195036,195036],"mapped",[36336]],[[195037,195037],"mapped",[133342]],[[195038,195038],"mapped",[36564]],[[195039,195039],"mapped",[36664]],[[195040,195040],"mapped",[165330]],[[195041,195041],"mapped",[165357]],[[195042,195042],"mapped",[37012]],[[195043,195043],"mapped",[37105]],[[195044,195044],"mapped",[37137]],[[195045,195045],"mapped",[165678]],[[195046,195046],"mapped",[37147]],[[195047,195047],"mapped",[37432]],[[195048,195048],"mapped",[37591]],[[195049,195049],"mapped",[37592]],[[195050,195050],"mapped",[37500]],[[195051,195051],"mapped",[37881]],[[195052,195052],"mapped",[37909]],[[195053,195053],"mapped",[166906]],[[195054,195054],"mapped",[38283]],[[195055,195055],"mapped",[18837]],[[195056,195056],"mapped",[38327]],[[195057,195057],"mapped",[167287]],[[195058,195058],"mapped",[18918]],[[195059,195059],"mapped",[38595]],[[195060,195060],"mapped",[23986]],[[195061,195061],"mapped",[38691]],[[195062,195062],"mapped",[168261]],[[195063,195063],"mapped",[168474]],[[195064,195064],"mapped",[19054]],[[195065,195065],"mapped",[19062]],[[195066,195066],"mapped",[38880]],[[195067,195067],"mapped",[168970]],[[195068,195068],"mapped",[19122]],[[195069,195069],"mapped",[169110]],[[195070,195071],"mapped",[38923]],[[195072,195072],"mapped",[38953]],[[195073,195073],"mapped",[169398]],[[195074,195074],"mapped",[39138]],[[195075,195075],"mapped",[19251]],[[195076,195076],"mapped",[39209]],[[195077,195077],"mapped",[39335]],[[195078,195078],"mapped",[39362]],[[195079,195079],"mapped",[39422]],[[195080,195080],"mapped",[19406]],[[195081,195081],"mapped",[170800]],[[195082,195082],"mapped",[39698]],[[195083,195083],"mapped",[40000]],[[195084,195084],"mapped",[40189]],[[195085,195085],"mapped",[19662]],[[195086,195086],"mapped",[19693]],[[195087,195087],"mapped",[40295]],[[195088,195088],"mapped",[172238]],[[195089,195089],"mapped",[19704]],[[195090,195090],"mapped",[172293]],[[195091,195091],"mapped",[172558]],[[195092,195092],"mapped",[172689]],[[195093,195093],"mapped",[40635]],[[195094,195094],"mapped",[19798]],[[195095,195095],"mapped",[40697]],[[195096,195096],"mapped",[40702]],[[195097,195097],"mapped",[40709]],[[195098,195098],"mapped",[40719]],[[195099,195099],"mapped",[40726]],[[195100,195100],"mapped",[40763]],[[195101,195101],"mapped",[173568]],[[195102,196605],"disallowed"],[[196606,196607],"disallowed"],[[196608,262141],"disallowed"],[[262142,262143],"disallowed"],[[262144,327677],"disallowed"],[[327678,327679],"disallowed"],[[327680,393213],"disallowed"],[[393214,393215],"disallowed"],[[393216,458749],"disallowed"],[[458750,458751],"disallowed"],[[458752,524285],"disallowed"],[[524286,524287],"disallowed"],[[524288,589821],"disallowed"],[[589822,589823],"disallowed"],[[589824,655357],"disallowed"],[[655358,655359],"disallowed"],[[655360,720893],"disallowed"],[[720894,720895],"disallowed"],[[720896,786429],"disallowed"],[[786430,786431],"disallowed"],[[786432,851965],"disallowed"],[[851966,851967],"disallowed"],[[851968,917501],"disallowed"],[[917502,917503],"disallowed"],[[917504,917504],"disallowed"],[[917505,917505],"disallowed"],[[917506,917535],"disallowed"],[[917536,917631],"disallowed"],[[917632,917759],"disallowed"],[[917760,917999],"ignored"],[[918000,983037],"disallowed"],[[983038,983039],"disallowed"],[[983040,1048573],"disallowed"],[[1048574,1048575],"disallowed"],[[1048576,1114109],"disallowed"],[[1114110,1114111],"disallowed"]]')}};var __webpack_module_cache__={};function __nccwpck_require__(e){var t=__webpack_module_cache__[e];if(t!==undefined){return t.exports}var r=__webpack_module_cache__[e]={exports:{}};var a=true;try{__webpack_modules__[e].call(r.exports,r,r.exports,__nccwpck_require__);a=false}finally{if(a)delete __webpack_module_cache__[e]}return r.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var __webpack_exports__={};(()=>{"use strict";var e=__webpack_exports__;Object.defineProperty(e,"__esModule",{value:true});const t=__nccwpck_require__(7747);(new t.GithubActionRunner).execute()})();module.exports=__webpack_exports__})(); \ No newline at end of file diff --git a/docs/archive-artifacts-github.png b/docs/archive-artifacts-github.png deleted file mode 100644 index a51372f2b6c9e222fdd5a32b51373f2a3cc58c79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11987 zcmdsd^;cA1)IOckAQI9cE!{PAI=~Q03y9Lv-2+H>3P=w_cb6y~(k0#CfONxm6hH6! z{`CF<@49!*x-+xy+54Qc&pFSt_x=P_SHQs{$3j3rz)@0^)kHu*oPmlrbLa1`HomDsuLFFB10UpU2FPjonqv@J?E#v))o-h3HSq3^akpD6mHJl??o z3wjzv!asKa3jP-$5klPS|D?eK0#Zl}e{W10sT?K*x|)BYh*(Ls|Fu9UK|1h5-K7fV(}y5r=k8c3<$A7epL052qNqz9e)3z zW+?3;E;3U{1}%Ch>At(yt9&-bSutka!5hj>Yy~w?%0mD1GD94KY~#*)h1hp8b?Ass zA2Z1}>;rP@XV`i@6A&Oi)wLiDNFXhskUU1UU_`Ht z#b5rwKqZUB@M9X2&(2S``67)qf!VzOH`l;gsa+nW{#m&yRU-&jKBK#P4KAFSaQTmG7$fxu3@zzsa?gy~Cl44#p(0Qu!=)VsquE%)_*vXpKxd)6bAJ zzguD9USV2oZY(yF29R42(szrdI@zk)p?g;zF3fc&8)X%f+S=Dq>tO=ec zXCB~LzXGms+X(JXp>dLIsx(NTI<5$e+(edA#xX8h!mzv>7hqkao101+n}$ubW}hNG zaMrW2ElMP>WopT4M;7-VVwc<L$xZK7;vKu`OD8%i10e42wl;)v+8EZkX842I3Fy z9L>)Kne#_DuG@TGt3M^_%kQdCar0~ULEBat>wjr67kAopSMB&N%Y4mS^>v=bc<9aI zpd;JzeEqw-!r9>FG9KCBBMg$w`57qxQZL<1Dj071H=c?8?%0`(nHCS*POcyRmj~C) zJ~u;2nKLqTP@t}zG(*WTdu;aL#o*HO{d|)b^~13iqOSc$rM+A&*k_(el%4klypf$u z9A`z#x|>8z#*K@;BS{u=vkmGJqtD-sM;pH;VUKRUt2QSd@G%T|b)_mmvwVoXd6MQ) zZGLFjw9jST{cEht0wzS80y^-i&c9h9tKP`4EiAR*J;`qwSdO>gE43tL4_AY~Ry!P7$~HY`rWclb3eF zwA#VVM=!@cDks?wX>6-+z)>9U!5U^U^Fmxxlp;e=Tp;JoE9Lp=CvYPaU96+-j2v;; zCX-8dGDY2j*~lt!DsdQ^aT2{>f_SQv75h0dYzv5^`V%96x;Ty<&1v1KWtpE2B`#4D zw|FyM#q7VPxq05Z*i@tN^n55Wk{hgPdw5gTxzX@jp~d^~;%57ua!971T+W93G_w$O zSxZf6^(%QL`B9By4<(0d_t$vOxTUK@How)`m7P!J9PFg0#wavZO<$Feu;KU_Xl;{E zx-7G)#MU=u)okvuOl}bqvLO_{Qq5yla8$h!a46ABHg6gnW6rjD?ZMiZ>8{k@%hLsD z(_ky`n(nW@!nSZdctOTz68j({`6`^%`>eUjqx@B$SK$7xtF8FHkxUDKQ?6)U~(x+P+sw3g(G8;dmZ3Nk7wb$ae2AobhaeOWbZjNRv=$H{0XRGSL@G7ff2bLu|D8iL%@FZI!v{{FP-iL>uFzLtV@QODZQDYs${?f3$q+np_VqJ{Ll=E_IprT6e zsb!9rJNR>xoo$DY{`si%z1pVnrCqrBDJ5&f1$vP+RBOW3c#)S8!rsE^Zd|7@J=A~p z$wlgSQ_JRVJ^W0i?%|qbHTJ1UBJTN&KHyUFs&=8>;NDQN!Jd!D<>WPAG#?;}iFUk^ zWUZcKKEa~7(CZ=lyGy0)(_%f0N~Qo-|& z4jxgvoXoo9Rp927wovcT{tMr(=)h@ka%oFj+UurFzu}+D*Mca7jD_TQJfFnHoQIft zmn$-z?=W+9w8@a)W-BEPIx*%cloKa6QR|8oWt*R-(o0SXUpz2id!8mlj+Nw(-+M3c zzv6*^Lv1NNwJ2d|QIOm{yKnz8+QrtgrDVK80J>MYa@CXU-{F^Q=di_4rv5r&JT00L zIAPf2z`fBJqUPl79bV=+cZPe?UcFapjyoJ}y{Ng%c4*bV_h(JeZc`R!8GY!`J1;Z& z?z^C}y0j4OmT%5Jn|LE$~QH( zx&cZZCMlW5VB)PWKc#uBMy%#qeM*R*4#fsk48;}~N<<&Os!0A+vEq%UbgpmQe+?7e zEW#<-oM<@S$jdJE9xY4y1d(}oeGCi9tZp{}6E8P&e0Sp6-0b4r$lKK4EP{zz+!fWB zgDO-#ge~hpA)98Kw%HS93)K!sr18Rh%v&xh1ze*gj9~8P5yynf>a88B?pLZl+h^oS zz&2c0Ha^goF4BUdX^vH8I4-k6=9orP_hpoUdy0yaZ}{bFr>6JK&agBV4=}0Pd^kzd zc%5Z=Dd$O}gy87F!G%+S?xE`Lyi@FxyI-jtk=YwTS!v@gL#)M>lIyO+yjOmegK^7A zX4ThazoaC5nAwvTry9(cDL3{t@4+(Fb|b{QH>~HD$}>wr<}1M-)r%UVP79u z6R=&NeJxX??=2@hRv(j|PTob%;u9Mx)-J~PNubqWkrJ~Q4ReY^gO9F`5t?mlz zMEnR+;4r0qz7v{@!yNX%$+*QAampi z##9rspV#0dX`B^mE5n|vqtSxh&qi8Mih0e5UtgCW| z%vSLWWHMo2D48)#(7n{X>{*bUNPh1}A&F#bV{L85P+V%`g)yMrq6Dbqr=+u zgEqZ$8YLV$3rW8%(UTzUR!DU(aifXjMA){(;v6dX_V>Y$r|O@RRn`hQDJjX+VlUB3 z=t4-`!i(Lr3T=6YoB@=?V#Lqml2B}zs`It{^9jRGT7E?zpPsA3zS8zf zZmuRSl?XdYQqtaVWkp?GNxW=+_5Act?@CcW zthyF}KG!o;7?vbhyL9bOSk(k)(@39+h@AI;2GvZ(Y6@mUTognie7)0!iFZA;N{pYyN*PC7kT z{C{0kAawudC9`OBbpf^u^-881aYqUUPhBX357uA{4d~wHt>#V2cLfsNw!#jS2I$+g zu^>FF*iT<3sI*)#rUdf@KdTa$X1(Cx=Piq-5`BloF7Bb(7>~Gs@b{9Uo9`UGIqxsz z(BJ4A%fsamIDFMd;Gv+U&_^8I%^~7I^^;TyDi3Mjsogz))>5Jy6&Y#r!TgESde0l1 zZkT|Q9I}N!IB=uhaK*Bv?{(Cl9q-uBZ<|u#-y2z3<6ZA+l5!{lA7^AgY=N zBCi7Uq4-c`ei~524oGIfABd*`!AhxkE>~nE zg~>;I7M@MOKLWZdi*OKxd=>|`(|{5{7Z*!bOL#>JfD^^LzYUcBvQ`@;#GL7?EW}bk zT^>j`r&+GZJ(wnoy$fSXe(2(#HYvEaPQ;T-07|NzS#dk(@{49KmPzOLJYoue*)pOa z5;wMXi&qBSB-(_r4V8o68Po%piykC6`BVO{C9wl2D-vRUv$u`dzPKX~Qa-S2u;8!{ zM1;2AnuidaJ}?}-{V0k5Nh%Cz*zChHsYu+E{dWjyV3@LupeS`%5xwbj{E`=RjKwzw zf0eVvd!pTt;4i_>e~w7PYVh9e2F>LP3d~$D+FF{hc4?;R{d)V z&D%gFp_ht~XuD@Xj+--1&!w8MX_B z0n`=*z7aA1<@a&iYry9yRz6m>w@k(T-Ki9~cxwME=xAE*&!Ar2-6fbUu~FD6f| z`NYirj&1-D$p`>u+ux@^X~^(&y%GVx(bpfu;7{akc#KZuBR+QiN}hId#qx5^1dAW% z&68Jge+REK$-f9#me&6Kryr=bYsjd&#hV4B+w)WLabD0+)}BH=l;hWPaEYzRYoBG& z{q4R#8=^iWHFd+4%L*7AF0Eavo&#@oDv4V#{?S%Mc*p{Wljon3FPoU(7(sVQWH-X? zkwE?Xw^b;Qrq`=k_prlAGM z>6I9^d-*N(X4_lKo6ViA+cg~qgqrsZb@0)rT;kqY&0%Q?80lL#IT!1w!%rDF)yIJX zKI|&>lMBg;xL#9uR4Gsww|NV{mwfm;Dbq}`j)3pz$4+EiWZY7!&8{BDANsS;3n^Jx z;zZpJY6aXzk0)M3F5|#i6{q~;Kie$r{m0U(c|6vNEjLLY_7BZ>`nY*)dsMObr9$oD z(?5?DkVwKxm&Tm!tA0OuCRcM0J;_6Cil!1YDmQGI)+v_;ijPY}8tj*oIrJM;w*0%^ zM%1icyO0S=jP{*u6i*;>vb7t2C|}gCS;G8efcz=_2o0}BKI3w$MSHjp910)cd{MZH zz3v!sPG)5lv@Dn`__cx-p>r zd<74uoWobk%$HG=+^%U*?;%a4Kk3xX*tEB!<36>k~yC3EnKa~7h zYN?nSF=+A51WaK)7k4$NJeHxCR6^#vP`4t-rSq-aWxH>~Zh-FgV?r%4Qx4 zn-J_y##O%-|e-_N}c{D23r%P%#b^Y6;2zZwy+ zvLeOJQxC^(*Sp*slG2ABc_c)k(EPX{<>WDQvmBl7(;96zk@Y%SV{}sI=ilC# zBfYnYuIs&|c|nOC0D0kiFFMvjV zCK->$Wotw%E{!3d80L{2vI z>>s3=IE*xw=FcdGnq;+N)|r)uQ`rZ;riw(Tz5E#d8jdRlTd%P5_ahc%j(geP-hJhE zpH`%vx!QW|C~dlmJi@Z4aPEE@&3IUZgDbg zE6>^ZJa6k~69P2}nR!TBA$b%4KTN7h%0Kp{L@Bon39mLm8(lc~J*@!=>OgI;T^#eV z?`^*&lBP2j$*Y3Bhijl#M@32nhU!372TH5{@AkQ9NA*nH_DvK5x`8Rk{D{4_sRoUt z>Uf|~tUx@FKzxrB;iXh?lvCZP3>b^EF=?P3r)MkRWJ<1~1nAOY#AVq=H-+pHyzx=} zL{je=ae?)c`&9G%6}|l=vg#fMxvJx5?3Kii-KeQYv7?lcVVwR7)VkDJVh%jtrLmxIjyoBDOYZ#89ehN8GlwrATro_~~W~_N0FqMVwJow7bI{Ay&+`Xnr zHr_HksvC=dk)H{K;hh``+H#jkNx~o9Y^l`y-){tl;T?Z1qsHfx#WV#piughar+I8w zY5W>s>N!>(tg>aKMs;2k7mI6c@{>Cw&n2u%+3z-ZuYTt-ZejaVQFBUeH_cn@ddW7@ z_nK#fk?~}T+P9Y)Xuqeky}3es5xT%@XooF@%1BRJLpmQhRmB*+2mxxYzLum8HiYRD&91pN4<=LJlT-mOUQ7vBm( z(}wy0o^uX#7IvalXlJZ>+L}Q>`F<}4;9_Q(oiIHGYaK&lWi1(+W$F10b2Z!U`U{w1 z1psn0Y)myKg-mopqK@HwA>o*O&kiS1*8&o`B|?>?QojV_8TEmfQHwhrBC)4>OzwZIOBcVLBEaHM*pSAacnscKelI;dNfmLRawCnDIRqsW9$&fpP z*FRT%5qnuT`ihZ63GzmFWBt3*VC{av!q=(pcNd#8gUB^?X9lO*`&OgZ@(pcwzwtKs zO@3E?ahhDeQvP%L)5KN-!2YL7N?}Y#0eA#b5DEc1tUd(%-_p^{rzRav$y_}@UNRLQ zOL@Y^!HK`p+QQO-c10ccl7$p{8L25Re%6bE!^J9b&g7RyUbm-yf)W+Kq#)b&pX-iA z>9OoWSO7u#@V0|mPc?iSH&M-^+KdPJKG=TT72esuM@Gj{p^V@nZcIYwjWQ#E`dOyjnB zf$ZvnnXo^oxJ-t|0vwJ9G(1|3Sx|jhxN~M2hROL1`&%eybT@aHBAm5RGH4kvMIFbg zw**!hwmhSKlZhG$vs*izKVSmof6spwxv)oyJcQeG2^o=+BbU{fSn^)TmllyNZ;W|* zRtpaABhi$jnhkZ5uZ6zFWCry)oTb+VEVy@KICcx!)e^Aog=0AM{nn7zgs{D%^!n&n zqFZ|gbd`~h#I5YUgJ6?#VE$CGX&g@dP%d09YFE$|TsRXNjUj?|Q9V69O{c>7XDh@9 z&};^iJBIxHFWaQ_C)#*(A`nDl3w~qtnvtU6mgWQ=Kr!~w zdhs1SrZz3&YxraHC`2!OFY&5x+B;kgN4ahUgg&y}B?$m*-#2oKx<0V0NEmajpI9nC ztgc&3dtqBl%|}&V)>y>z$~E}BD4DS%#z=XjrBcV3G~^tPJ2UcQBt%ThO|1e1^8v0q@2?O(bN~pU7^{1zkhj?WhL0t>B&~l_C9h~ zIINcn!)GuuGgLA1o}yehu6x2k%LoqNA>@&r{Io;#7A&MDc(_HaY7Tw-oh>-RZrO}k z9hJbbFf_QSk*Lv0cVoMH-|_4^^9#xh#o<6?F7`2X2vw3_mWQ6i>{l)(Y5z-j+ENMw zk;JMm`h@`B_UwylybK1o20Mc=LcstQq@vxh0WzEvfkH`u@WtjR=1D0M) z)YjRrB>iJarq8i{(-)O-N@HEtS)m+1b*#r}VZU%l#V7bJ(KpU-TOGAV=}a@lvWN(J5K+60f`S z^()wG+E12{M%THFph*GUHOL=6K8cp2GKg0}Fw1o%wJSa3UYaLYQO2I4qQD{jgd|2c z8AjXt?I4 z%wI3?)ctO~UCrb{wC054sM$I%dsP4^XHCek{r+8D9Q(Ok%S!6c+lIi9gk16D-E<5H zXbfDUVOe{~jkfT|Xzc*2nX>38fluRti2YfR{F~ocwENFW?qpMd*|zBnqlO1pD`O1Imko==d-l?j*iO>oGaS!NQ(fWqs-tnZaxGA+~_~G0R7x@DRzJ;W@;?{kG8VC8gXW& zheWy&J5I{jIU*m0T0FTCF^|6mGej0ZL2$24rw7S`cd)==KkBTx@X5c0@NxM7O~-44 zf&5q@lY-C71RWn1SeQ{Y%-ONQCTLb$dBT-M@I~wyit9 z(0bM1(I@hDd@sI+-oyI6&Y8V5ugXGoeI`s>IQsOK8_?jRtpou7cu9+4 z*s`-WW$}HfMBc{uu<0!my)+?t&Ypzj1?xDSVXa|3IqLc|$_Tj=hvvMQNovWT*3F%50O zhQLfxhqDXiZ4x9?La1otc8Wdc+`XV8@_9CMLXmnx@x(jD`&u#{N7ees{;b%~^InOB zDi@`^gmMjB(Y=i&ZQtUHs4NvA_(@of1A8Y-{ZaaEjAp*zPXYukR-ht)oEv*CFzS~B zKAo;?iaNJ-nq5VDjCe>ymBDS)NBzXI2&^;Xb4j{1l@fqmkj6(5#)<`gfSj-AJ^6Pl zve^Slm8`lY(y?em9kY1pQv6?jqY|{=Hw90Be9rXZq20fi76u`(_bumP;z@C`VZ9D-?gN7s7NP$Y^*8x4ZTOi63|wnB8(C`>D9{ zYI+AdySgnV8-JOwD&4a^y%GlRX;0}LPl|zFu*$-grpo8(rv%jmE9KMGbLgmHXwy|Q zX8eMi9nlhYxrWY}Z^zd0)%LKub_4AUoeu%uLT7?`1ZC9K%a*RSdYbA zax@CdnoN3H#%x{iz}%IbZK9`+mc4?gH$tfo!J&xEI1}$+VpQW5)M>K3F{^r&{`UUua%eC`~B9{ z$RwEb;g*5{XN`^{7$p6tPt)uUb^GisKMP!BzkNa&kpa{W3wuV3-x4vKH~VE+Bmi?g zc1J>vw4(fyVgdFZ#JCwL#XqryMS_>mDZ}_u+Un+0;f=}JPkw-Q&Kh>`Os-1-unnW& z&^0MfSqU!8WDD?&RwVdID!b60OR z7q)8Zc(c_ae~hzt9V*%W&GZU^`KzTGg$>mB5RbqV_d2^_&KTsj|g~e@$CSju6Tls67V7*9gh#;1F93Q6M;AJ5d|? zN{ZE1rWiBhbf3}Btaed3J?A^syoL>!vXGeVde?o?jwy?u5v?1Nz~WvE- zI0c0X8MTDObtr3}G!#TM@4B`&Z)QZ#@acS--_;M&H30Z*UD?Hpet@cG9wk4a643O0 z_@*^}<<@SuY<#~(aCO!lQ{U5sGBC+$y!|a#3Ta=B&#?Uxy{nr#Rv=k!Gsg_#$-V(T zP!r|(Cc%}nmrq9-#JP5;l1?W&44+YE@l~M;#aG}GByFYLZe$@V8w(A2hwYdJR1 zBxa4126Na`UN=8+SmJGpMsHvbkams~%bPcxTX;9dDai6F*GPmZs@1_7XV3A+@)WF8 z@PR2nmN0D6=W}26xG>(hi!R}+ySX7!Pj_B-?eNwK4t@u$I9 zacibH_$K+rkw=8k1+J-;RlF*8BfylMo>x5n@fjiO`R)dTST3+7jDAY4*O>bgWhpc;gDqjzKXwn64?tpGE=qs>MIKkE%|AQV(r-;FGYtz6Ih!!D!b7y2EhEr zsv+w0-j1V#(Jsf;_w=L37TAu*`&20HxX0OPLG|EU|FL&N${TS2s(@?~tK7}%#dW9m ztpKZUyc#&Xh`~LFa?7tLK_&zqbV%P%yarf?KLKc)y8)V1$ z2ma#VaWH~!2u^&Y#rKNI+Ua;;&fB-+5#pYMjhG%~E)p!-<;@biR>WR!Uf4CDT z%5Pqqouw#OTeY;@YfMtB8Pb-FUV`SzRi?j83{K--BYni=cUmza<9Qn?c4jd11zpr6 z`OrEInNc)_z-plWS=O_^Jj0(YpfPy<;VkF4Co*m8bvqH0S~9mVk-5z|N`Hpflo+Mo z@36RX@W=mhNBOL9`RiUumn3N!`BclRwbe_lq7IfTd({+7kAwn+?3s-?&R6-YTv?=l z+eg4`Bn(r5v~OQXaC$C8jvRl_&#(V&fh$nRclAdD8CK*F0AS>)(2Lz?(1#q{!odcm zLVPyx9%{nEW8Q5%1x~-)XR<8SAI*_MQqK{g7JcRu42@%J@g{QjNF{lsnqIW{3?SIS z_saJ}hVAfr&8DqV=Er}q@x$QWF9cm~jV;C^395chZ4&_HQTcD;T2LZ^q7pk9iNuD% zR@mB>*P0O93&NUr|7M0}g%z})gNq?1iZXiaLS!{j#+z=+!#c|IFIW1d3?KM_YM1gc zGP{Qf6x{gh*p_W3`RrdHf)4S_STARZ;?x8^1%rgP%#Tu=S9MLe@^7W-AAfK`+UxKK z-YvGdfcNOMABYn8x^*OZb^a@vjaQVq+jf0mVTf4O!s7o#8Z7si4Xb^H zG>i{DEP9XMGe3IPR$TF zx!$A?iAcNvTTl1sJ!g7MywL=lDKs@m@4jH`K(6B-7;; z_F>g;R38(UQb@2Mgl3ObA$qNe#eKioxU|IuzM2_adC^(3{Bzu8uNxMn_MroA&9l(< zd+w=Dld=a1?R%J)EWL0n@?(_Zww*%$Cw`5`y&pAm7puu@7Ba}^{rNssS5A6J}L zqFb;>YQ?-fR1o_S^jx>j&;2Ks*WE?Y^>u7Uk3q(U^)O+*UErBE@Z$Rsx%*4*z2X1T z`QuO=l&$k`Yj{yF&+2ydc(rtU<$^xvemJrc9w8UhPFt%B^4JT)ttFR+%4Sxq7KBIa zGED=U));;%_ng2_{hCe68L;Wq#t6I=7hdJ!X-lJHk78Ux699d2hiiTP_H7Em>q5jF zkpe3U!Al>lLW$UWq&vFlaQ9DB9)x9X+<~jrR2yA?Uye<;?cB|b?O2p0Z=4~Hwm!}p zwH+~;xDd3HU%{=kq+zdwbr``~7;q=e#WjB_y~< z5CVY+nWIhYArKx4_;nKC10x&GBEgG|2O>>fBSWJ70)lZ6dARZVlRQk#pFoV1hnvX5 zVBTS2D%b#Te1vxhQ6&@?35LM?5CS&9F93&Kp952asVS>zE2|+K)wJZ{hA;&9qpqf+ zp{ee^KHnRU3;nyHrivQa;DD>Tx;)$nJXr;VMn!|qXl*SoEe$2`WEd6}jB~;HSOx%U zW}0w>3S4V-i6z?6+DaZ~44#7nf^gsih4T#}tS&M3k06AA5i@Od6+l-_LqkO!t_@x| zc>8%r1pNDLY;5hpzgpU09$ZUZTSXnFxy~al(i^`n4<2g>vsAW-4sdV_Qgd@O*TTdi z*5{CL5ySvO==wBuxQeCgxK$ugO`8xz)ChL<@hAJbYm&%1*g%YpIU)=b5bkQ>?uz$zgrlty=+HnLKR38j zhz1aBgrhm!A_`__97ezgX}G{J z79_l-G1}YI$0lHRW*i;nV`GSM_jSW)6YVrK9b?dD zL^Dm2t0e;K1NRGxw)1zkwXlpfF)<8?4Gy=rw8MjAZ5AEk>R{$b zEbVL&fg0v$qKld~!q(XdZ%u>&g~!Hfhr0%#HApxuW3m-dD?A+I6XvRpvTz|=`Gy$z zN5CUoBkcTvicoG2rns;`YYp&h7j0+dtcB9B#KIA-YH*T|y9_D(IPn* zMZ!ZJ90+z~A8dq?b*QDamZh=3PK=+KZ;TI0%iYWs4faIXgj>hzIAWc&e8YfG8U@)z ztq$YisAwZ?TSTloCfeA{#UjYtC)5dT>>Y!!f@`|^dJ{3`>VfuJt`WpluQLnPP}4Hf zHdAv4K5d4IutP+K;ItgTGu#z0W)`fiVdd@?=&I@CZ-IrmXa)jGX3i);E+WV;)Egca z78q@|I?vn>M$&?|W3)R)Jt)vBG8VkSxB%xe z0vC}P%GXLAOJ4Q5)t^;9{_)r~_XYp|y%gc557gejg+Qbs<|c-Y(VpY^C-1vB%_n=k zFxa+xi=^p$3BEVbAs-R{%i4lgCN~@sNa8YYnztk#i;xySeeK2e?e`^iZXZ`5i)_r5 zw%WWCef`63SzM-v%v{Pby*js1#7Ok1*E;yg=bvilzASXFY&v<5d~c*`cINoN?>^UJ zI-PFvr$rrgi34Fq`o)|d+yoNY!9<8K0cuD>7(GD$JWl}$CQYy7TN>f`lj=uibIvn zDp{q4u}u>%nkTVZp}hw-@Na#%y~3rU(5gV!DfG!VKD}EpGpt6rj3ctiTO}`+AFusF z;G-I_U$~jrn7~Ch!jd zEk2sNDwivaT(s3+{^J|aRbFt{^ZAzxeT(yHi2ef`__kyMJvMa|qYmZQh^Nep%r|>2 z%U0AaKefu&w)3RU;|N2P@L8=Bx{sl8!hOFz>>>v);Se<*wTwJ`E< z>s8GvFW*+X_a9xnLXZ%Z=Nx-g4yEyR^9lCD)Ke9`m5Xt^+2qOo<1N+OW`eJbv<2TR zj9-pf!0W5fCldn&^_HSWKQ%hJ9LF8XlRDkRL-jdX0kBl@o85dx`DYX}?}= zR=xClw5$15(&q62adq-UZ@0xWj&9ta`$y)7vPjh{;5-$6>hJYs@Z<-T651>(o=saU zy!74W!A@?qiRU_q>qeG|aT!D3aQ7o`%P!s3m%>kQkn=;LF^g06)Y$`^rxtdeLf7>)#foyYwqGjdCMl!PcyC`*}F|RjZ>d0?i;^B zt#$>jI^(S#^yzNpEGyYfjyMzY?HCh*Uv#)>MRW0tDY;tNi zs?PSGGj<)hjF?%Kr$1!79|h$ci<^4e_EL^Af^P4--fkM=nWLe1Mp*xk!Iy^tz5{$} zNWSbG2CZ%z_sgT8@!aKy0i9#QwH422zXag9tkdcB++Mez@gp};C>Ws(f`IlXBi3j3y3G%9pKR1q%`=Z)Jf4%LV zH(>wL;AKR>nSepy7QnOp5az6Ijk=fFR6SCSV^*=u3X7 zhbZ;o62e&odE!`Y9+JBFJ=YsKI#7> zr7HP46Q{E#-N^i(9U4rRxUo2uz^Xf{D}zBF0)+NzS+!)8v(6phG>eVAufb9lR~0cb zZ@|5Ecjc~1;0(2nw)FjNO7rqI=YyvtcK&|b-SO*(LK5MXIlZWUq}c3yjNzqbJs#|k zgI<`T6ucd z^O@_!lfkXI$auyj!Id_>$x9nI??P92J|B83=G8LF$rXbhlt0n`NnA7V(rPT?6W(`h zHqI&+W@?tYTV}96qna>-T{7aj*&KK~HC3_S;fxKtMO5H7aGG2%ceaq)2h)Om>IcQn z8MCd_%wyn*3@Lk2M7>ubiy)Or>FAb>3-_j)tEpP(5qGUL%^qtZZf8 z>-th?q{rw1hvH3u4MEw&M&)%jdgOECe6Fkf9D_5DFQplRu`0t1yP<+Li?lB^S*g_lW1d#(+`;=%VNHp5B*Ujd zw*XbED*5H}t*?C-xQXspmZB^2YzsVW-EzN@Mu>la(Tl8p?By+4Q=@*+pM0p%@ed|~ zJVL9J3@z$_$4>veQxQ1i{$mfg{V#z8a_3dUb6IuZYQPOQWj{FER^>zqHrIBkyRe{_ zc!^q8bbn&77$uNzE!{Xnqbs|eF@&&_X`;nv3?6OTzm0tH@yC7Ah?^D=cIkzp?;>F~ z(&wLKJ&Zz%#&W>Kg=-c?B50by_Hf03yziHkBoiRa3`mNHj0kVS{_hy37E~+M4$7_) zl+J|nn!hQahqS4&NV;fbbqDOhjqPaJiTxodO?nSwd* z#dl|cGX`ti3MB~n4rN<^frXDAE8oHNg1$YlPNGU=8*jE{#dwPBC7bS7?{ z;mf&dk8L(dQ=B(IBh1#Rioff{@Uus>+!dT1*C*MO*uslO zrsnUKhu*ecTX%03Qlst!2AvjnB%eCDw({OW?)ze4Ui1LJ6Zee41?a_ddgeVlO0C!e z&`c`SwO24fL}1N&GWWex7lpfAH;6PyuA77`P1Kbkadm_)2kgvQlgZ=QckfmSc5=2@ zagssy`d$b5-wEXcJ;JwbNIZ2)Z=GnZ`1>pyKveNK_pE{7U!pfH8g~PtTl_T=3@)!9 z88^RIpY`QWaomJN8pPMB;&&7EByu1}CBHnQQT@-WdkQ!ju1P9?MGdH1 zEyCxLNSW5U4Zds`dgr)FddYFhL4tQ;edPq+C_`UB8Xy|BD6i7`DRRh%mB@j!u@akrRFfHu}JxMUm{iyh`h~a=3C(-WL#6zt#cebyHX)>X*C8 zcj1zO&^9HWb6XQGZnquHB)PmrXIdsh+LO294^d7mB)4vDLi$SWY-r{GSha8l)EgW& zvJXA*vpbYPI(D{KV#84sIqVZa{J*s~r?_u>{MvqqCE_Q4{G}TxFmw&3a(24a9!^R< z#ympy`a4gKV){wNQbsOE0~9h^o9=|&thmHGZOc3UWJ`?>UsEn)>-(m3X7ovv;)bE? z|5gb3diQnipybguiOB<%BsW3v8hRs0?5xwtl`q8Ec-f>Mi3Z$`+_wQdBibLnKl)~c z+*jRj&-DY1hP%O2!+x`x5lT${2=^HF{`?uEO@FB_Su z1VlV5HqII>I1Gv>xo8=#bS5>@FWmiw&eliKA=>@t>y;x8?TW%;bNvlMb=6-0b=K>} z=6ACX{bz)aR{Xy%JbpR4)bn|4rT1&T004@xvLL6ro#V?uBfO3xXHq`ddVMV4rBivmx{|*HG?efxj&)< zI0}pYb)sfrqW1a5OSravg#!EfTN50c0$rTg$C~n$<+-|uskdT1Z^eGcjueowLk+a) zrb89^A2}sCo|T*bh}Hc`;!N~;wD7+HMHL*YC3n`Cbt6UPf_r(>g4+it*`^_(e_uEu zGiD^a>*DL~x;`-C6WX(X73nN~LRe_8w)oN5hb_7AdY@JFzWCFn?jqP1JzvlQ z5LK`|b@5Mlz^A*pEmzcy_aH(K%gf6@ULwRVc&H1X@1|{$(6)7d6etfe#B5dSR7z#s z{B)Z(gIwB@H!qjclst(C#uutUqBJku@t>RsAi9I&7>hrpP>nLW2z z_1TFGC(rn$sFN)|Br%ruNC!$vIcqs)q(HG~WpQNuDC-W3Zk{z%5x;Z?)FZrDt$B*b zmHGD77(LynSkwTZuOcX2W#99tZsM>z+rO~$3M^lr6~Y12PuH|lFv_T1kM;zXCdCbb z;>qh5chFo`d#m3M;rKs^y%EjI81cNexG<7_Lw@8BYp$OQf%Jz3t52Q@o2>ORx)M@i1TN=ljpGDpj|w&8x>5C;ELYx~7o8n1SYBG_vA!5%{;GaBu__~+b=`&ll*$4( zSoh3H(Xtpg>)l?$5limM!oW&Xf4@56`xVLemy{gFYT`@@lM*@+Z!EeOrGs~s1`rtH zSA=;w`=34crE2uo5KAe<`Z$p*eJi;+F~#_?&kts+H_Ui<7Ndk05~qiAye8ybc0Cfi z+pqVVmPeyrF3OmmWao92cz{w+o%sOpmHz03uVW$i6UbxM+<`?FV!S5i;-N;QzPWuD z%463f;oHj#9I#Zsy`J4Y|8*=r>WtgVJWlI_Hc+JWaZs=0j|120qq+@OTn-!8xqk3g z_#uaoqZ9&=_DPgx&d!sQAhs~?c_7sB%P~*l8svnJRqFFg)yQY-x1&C}SU;{GG39m_ zM(7sL$YezN+26fAbTbP9!du=!wAXpf6!%RJ2Vq03-9L1mCW3HJuc*(B_bdM!Gg&nY zr`HF?{}qYObE5p6J(C6{OLk-?Z}+dqHMFYRrjsL2IopF&!SvLTO9px>#-Zs6vJ}Z{ zXk-)!!*nUbyW6CfTtCYqP7|@%2Yc^#W~8aO8}EwJ@N}!m>y5m)+S&LInZ|H5ivK{p z-Yp_4T5(ChCk?``f3>S-TfUrJO5dphYH(!7p31V~sivkrAQ1F_j@Kg-n?VbO#@GjB z`X>coc3pRi*_lqhWN)y~;+kZR45Hqky+aZ#uIlU>Y{7WZ9yQxHG{{?%xVjqMYPUEw+x;(fbtHL=Sx~YkE0;2*F0#{gjasI=jB&RDY}-Ru+pm6*pf-z9{VuKfKTAc zacZ$y+G>ZyzB=@HcNIQkX;KcA-q4t(xY`}aAID3V-rd5(#>;Pd$CGdc+R~#7=3fL| zi>9wH6PuT1z5*Y{zB#uIMqP|v&=MAdZsDP~>z*=b6Zlo(LEKd~$d;zm8?d+X28bGP z0~9mIxoBk1yqd0ni2?v(a)%r@(7no@gI#J^a8=|N z8p1w#CNHs^M%`+J6%;vO17TO~J17TmhZMjaJoKU}14$cxwjQ4aSp=O2VcO^=1b3mh z-EGMohSD&wnYi2aJ<>}?Z(Fe`1`xKG%@r|egJ*ME&ceCIB?O88xl_K z1+Yh`{@Ltl&dk-rGY1dz(7itYxT6_P_fod%g(idn(ZVV%eCcSU(9aKNPNBebxn7CL zG!9Wj*5Q;v3@^Iqw=LkQox7?x>81RQKcjWg1M0R<6AiuqJ$%`Ot<`6?lk`)!^3nj_ zX=o7q2v|B8s^9_TMb`-^)fdSzGuqQHi!|&9k~O-*;0NeMxd(O&KzjiK3Dssj5~CM& zVRK!)!Rl9LUiZ$+Ed_diR}eS@w3?jdv`5aA8(>?i06hXw^uBMbYeDp)M3G!xXcI8n z-Q*^4I6v_Ns0s=jhi&US4Y}zFOi3scSg;c#-SeA9eLUkGDRRyV!bX`nm+_(NY{TK* zvVgQHT4z~;MvWsqJY%2$Xj{Fzm}@Ar)ME0|K>F)h2$TF;z2dp_(ldqTXM&bMBrR^B zwFKK`vnaw)S^}Wj{JYHEN=%zXT}_#C+4+5IW*qa_RzL7nm>Be$$1zNt};S%&6UFUw~$tK=! zK(uez?00AybTLcn6`9HK zy%x!z@DS+Xp=bjM)HKKAc1uEKfsSdkows?Is*b%@k5@tZHv4oWiY`?osVtLe4mi(x zfc3LQBjI*xA_7ljPI3CeT7p#3$cjc-#VcU3q%?-RD2n^>)f;OOfn*3%Sn-aA*#%DL zHH@`DG&rnBU$q)`p^^MDu#Ezj6oCr}X9J$@3JVOS0wC*lExk06Be|iZHg205?=Vxw z*53YxL)llSOzKN9NM}Vpq}H!sCoh0=HwBqpzSbp>P114&?*Tj%XOD*8w7&+;q+!DT zVoe7nTiyn=qBgiv!%rufKp=eMtKS7M)6N7#tRF3 z0Pc~$E_8Lu$RNewDoi)(r(@E0<$?uJB7cK^VwlKB3%^p&_}dE?EcvI$Ejzcj+VE=r zV7kr+5*qnoXm_7%~)mg(5=$Ki$UczW=)eE#Q&Gp5+F zu!OOmYMa6smiWn=$XJeltuHd{>!}dm@^nePFTzQnx8A%sKQmt5e~g80$p0t>`r7tv z^7?lkDDGwC0ZR2Ex2tY;`$N?>Prkj;rD)_Yh&aQGmx0BSxTBx$W!))%+Jw0V&@xFZ zlr-O0ORh%gv91DiuycXfe$+*)10Ye`PZeIOo5fTf#^cj{bjcIJ@}9Ah`f;v>ant6t zJ@Ein*aQ(K)CVA+*$c<@+{Pu@cunzl*_(i@bv|zeYnHjA<44we$itwve0kr|*oIH{ zJjRRi3K%+BUX@t$ZcHC~VC-jWH-ol(McsFd0P&lPXW{e@`?X$m`a}g^yqNVkGyfQb z)CX@qfIROb%|UJdswzEm;y~MaI8j(XQ!C`l=V}~jvY&F5leU=lzN`FrP&=p8I?pfu zGXOl=SfNHUW;1X9D)T^nV;I&fKOS4WEC`!A3| zJ~RC_QTR*om1#XnV(dh34G9qs3JNu#1ahw>Pcw-0sYj0`bS*=l+fX|7r69uMs;!FTMJS$rsP)3o^S*-uJOPvPV2&w*=&lKs>%Y&RmOPk ztqxX!@h+W1p_L3A69KoW`YX5Os#~Wyzg-=a3|22~4RC4yx4AL@U&RMC*!O>nn9IVE Yd6_az#a9x*_lF_orWliQqZ6n92gE5aHUIzs diff --git a/jest.config.ts b/jest.config.ts deleted file mode 100644 index 59f99ba5..00000000 --- a/jest.config.ts +++ /dev/null @@ -1,16 +0,0 @@ -import type { Config } from "@jest/types"; -// Sync object -const jestConfig: Config.InitialOptions = { - verbose: true, - transform: { - "^.+\\.tsx?$": "ts-jest", - }, - moduleNameMapper: { - "^@bc/(.*)$": "/src/$1", - }, - clearMocks: true, - resetMocks: true, - coveragePathIgnorePatterns: ["/node_modules/", "/test/"], - testTimeout: 120000 -}; -export default jestConfig; \ No newline at end of file diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 3ea97486..00000000 --- a/package-lock.json +++ /dev/null @@ -1,13345 +0,0 @@ -{ - "name": "@kie/build-chain-action", - "version": "3.5.6", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "@kie/build-chain-action", - "version": "3.5.6", - "license": "ISC", - "dependencies": { - "@actions/artifact": "^1.1.0", - "@actions/core": "^1.8.2", - "@actions/exec": "^1.1.1", - "@actions/glob": "^0.3.0", - "@kie/build-chain-configuration-reader": "^3.1.4", - "@octokit/plugin-throttling": "^5.0.1", - "@octokit/request-error": "^2.1.0", - "@octokit/rest": "^18.12.0", - "@octokit/types": "^6.39.0", - "axios": "^1.4.0", - "commander": "^9.3.0", - "fs-extra": "^10.1.0", - "http-proxy-agent": "^7.0.0", - "ms-typescript": "^2.0.0", - "reflect-metadata": "^0.1.13", - "simple-git": "^3.7.1", - "typedi": "^0.10.0" - }, - "bin": { - "build-chain": "build/index.js" - }, - "devDependencies": { - "@kie/act-js": "^2.0.6", - "@kie/mock-github": "^1.0.3", - "@types/fs-extra": "^9.0.13", - "@types/jest": "^28.1.1", - "@types/node": "^18.16.3", - "@typescript-eslint/eslint-plugin": "^5.27.1", - "@typescript-eslint/parser": "^5.27.1", - "@vercel/ncc": "^0.34.0", - "eslint": "^8.17.0", - "husky": "^8.0.1", - "jest": "^28.1.1", - "jest-sonar-reporter": "^2.0.0", - "nock": "^13.2.7", - "npm-run-all": "^4.1.5", - "ts-jest": "^28.0.4", - "ts-node": "^10.9.1", - "tsc-alias": "^1.8.2", - "typescript": "^4.7.3" - }, - "engines": { - "node": ">= 14.19.3" - } - }, - "node_modules/@actions/artifact": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@actions/artifact/-/artifact-1.1.0.tgz", - "integrity": "sha512-shO+w/BAnzRnFhfsgUao8sxjByAMqDdfvek2LLKeCueBKXoTrAcp7U/hs9Fdx+z9g7Q0mbIrmHAzAAww4HK1bQ==", - "dependencies": { - "@actions/core": "^1.2.6", - "@actions/http-client": "^2.0.1", - "tmp": "^0.2.1", - "tmp-promise": "^3.0.2" - } - }, - "node_modules/@actions/core": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.9.1.tgz", - "integrity": "sha512-5ad+U2YGrmmiw6du20AQW5XuWo7UKN2052FjSV7MX+Wfjf8sCqcsZe62NfgHys4QI4/Y+vQvLKYL8jWtA1ZBTA==", - "dependencies": { - "@actions/http-client": "^2.0.1", - "uuid": "^8.3.2" - } - }, - "node_modules/@actions/exec": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@actions/exec/-/exec-1.1.1.tgz", - "integrity": "sha512-+sCcHHbVdk93a0XT19ECtO/gIXoxvdsgQLzb2fE2/5sIZmWQuluYyjPQtrtTHdU1YzTZ7bAPN4sITq2xi1679w==", - "dependencies": { - "@actions/io": "^1.0.1" - } - }, - "node_modules/@actions/glob": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@actions/glob/-/glob-0.3.0.tgz", - "integrity": "sha512-tJP1ZhF87fd6LBnaXWlahkyvdgvsLl7WnreW1EZaC8JWjpMXmzqWzQVe/IEYslrkT9ymibVrKyJN4UMD7uQM2w==", - "dependencies": { - "@actions/core": "^1.2.6", - "minimatch": "^3.0.4" - } - }, - "node_modules/@actions/http-client": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.0.1.tgz", - "integrity": "sha512-PIXiMVtz6VvyaRsGY268qvj57hXQEpsYogYOu2nrQhlf+XCGmZstmuZBbAybUl1nQGnvS1k1eEsQ69ZoD7xlSw==", - "dependencies": { - "tunnel": "^0.0.6" - } - }, - "node_modules/@actions/io": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@actions/io/-/io-1.1.2.tgz", - "integrity": "sha512-d+RwPlMp+2qmBfeLYPLXuSRykDIFEwdTA0MMxzS9kh4kvP1ftrc/9fzy6pX6qAjthdXruHQ6/6kjT/DNo5ALuw==" - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.13.tgz", - "integrity": "sha512-5yUzC5LqyTFp2HLmDoxGQelcdYgSpP9xsnMWBphAscOdFrHSAVbLNzWiy32sVNDqJRDiJK6klfDnAgu6PAGSHw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.13.tgz", - "integrity": "sha512-ZisbOvRRusFktksHSG6pjj1CSvkPkcZq/KHD45LAkVP/oiHJkNBZWfpvlLmX8OtHDG8IuzsFlVRWo08w7Qxn0A==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.13", - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-module-transforms": "^7.18.9", - "@babel/helpers": "^7.18.9", - "@babel/parser": "^7.18.13", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.18.13", - "@babel/types": "^7.18.13", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/generator": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.13.tgz", - "integrity": "sha512-CkPg8ySSPuHTYPJYo7IRALdqyjM9HCbt/3uOBEFbzyGVP6Mn8bwFPB0jX6982JVNBlYzM1nnPkfjuXSOPtQeEQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.13", - "@jridgewell/gen-mapping": "^0.3.2", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz", - "integrity": "sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.18.8", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.20.2", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz", - "integrity": "sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==", - "dev": true, - "dependencies": { - "@babel/template": "^7.18.6", - "@babel/types": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz", - "integrity": "sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.18.6", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz", - "integrity": "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", - "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz", - "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", - "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.9.tgz", - "integrity": "sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==", - "dev": true, - "dependencies": { - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.13.tgz", - "integrity": "sha512-dgXcIfMuQ0kgzLB2b9tRZs7TTFFaGM2AbtA4fJgUUYukzGH4jwsS7hzQHEGs67jdehpm22vkgKwvbU+aEflgwg==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz", - "integrity": "sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/template": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", - "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.10", - "@babel/types": "^7.18.10" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.13.tgz", - "integrity": "sha512-N6kt9X1jRMLPxxxPYWi7tgvJRH/rtoU+dbKAPDM44RFHiMH8igdsaSBgFeskhSl/kLWLDUvIh1RXCrTmg0/zvA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.13", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.18.13", - "@babel/types": "^7.18.13", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/types": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.13.tgz", - "integrity": "sha512-ePqfTihzW0W6XAU+aMw2ykilisStJfDnsejDCXRchCcMJ4O0+8DhPXf2YUbZ6wjBlsEmZwLK/sPweWtu8hcJYQ==", - "dev": true, - "dependencies": { - "@babel/helper-string-parser": "^7.18.10", - "@babel/helper-validator-identifier": "^7.18.6", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", - "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.3.2", - "globals": "^13.15.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.9.5", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", - "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", - "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3", - "slash": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/core": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-28.1.3.tgz", - "integrity": "sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA==", - "dev": true, - "dependencies": { - "@jest/console": "^28.1.3", - "@jest/reporters": "^28.1.3", - "@jest/test-result": "^28.1.3", - "@jest/transform": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^28.1.3", - "jest-config": "^28.1.3", - "jest-haste-map": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-regex-util": "^28.0.2", - "jest-resolve": "^28.1.3", - "jest-resolve-dependencies": "^28.1.3", - "jest-runner": "^28.1.3", - "jest-runtime": "^28.1.3", - "jest-snapshot": "^28.1.3", - "jest-util": "^28.1.3", - "jest-validate": "^28.1.3", - "jest-watcher": "^28.1.3", - "micromatch": "^4.0.4", - "pretty-format": "^28.1.3", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/core/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/core/node_modules/pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/core/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/@jest/environment": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-28.1.3.tgz", - "integrity": "sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA==", - "dev": true, - "dependencies": { - "@jest/fake-timers": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "jest-mock": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/expect": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-28.1.3.tgz", - "integrity": "sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw==", - "dev": true, - "dependencies": { - "expect": "^28.1.3", - "jest-snapshot": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/expect-utils": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.3.tgz", - "integrity": "sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA==", - "dev": true, - "dependencies": { - "jest-get-type": "^28.0.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/expect-utils/node_modules/jest-get-type": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/fake-timers": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-28.1.3.tgz", - "integrity": "sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "@sinonjs/fake-timers": "^9.1.2", - "@types/node": "*", - "jest-message-util": "^28.1.3", - "jest-mock": "^28.1.3", - "jest-util": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/globals": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-28.1.3.tgz", - "integrity": "sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA==", - "dev": true, - "dependencies": { - "@jest/environment": "^28.1.3", - "@jest/expect": "^28.1.3", - "@jest/types": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/reporters": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-28.1.3.tgz", - "integrity": "sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg==", - "dev": true, - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^28.1.3", - "@jest/test-result": "^28.1.3", - "@jest/transform": "^28.1.3", - "@jest/types": "^28.1.3", - "@jridgewell/trace-mapping": "^0.3.13", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3", - "jest-worker": "^28.1.3", - "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^9.0.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/schemas": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", - "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", - "dev": true, - "dependencies": { - "@sinclair/typebox": "^0.24.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/source-map": { - "version": "28.1.2", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-28.1.2.tgz", - "integrity": "sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.13", - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/test-result": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz", - "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", - "dev": true, - "dependencies": { - "@jest/console": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/test-sequencer": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-28.1.3.tgz", - "integrity": "sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw==", - "dev": true, - "dependencies": { - "@jest/test-result": "^28.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.3", - "slash": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/transform": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-28.1.3.tgz", - "integrity": "sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA==", - "dev": true, - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/types": "^28.1.3", - "@jridgewell/trace-mapping": "^0.3.13", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.3", - "jest-regex-util": "^28.0.2", - "jest-util": "^28.1.3", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/types": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", - "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.1.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.15", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", - "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@kie/act-js": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@kie/act-js/-/act-js-2.0.6.tgz", - "integrity": "sha512-wKvOC+7HlWEWK2AgPwPXxoP6RguO5ujyudbr0VNje9jEIG5q+5c2yGDzZT+WJMJdiCnnFBKVPuZdJm5YkmjSUQ==", - "dev": true, - "dependencies": { - "@kie/mock-github": "^1.0.3", - "ajv": "^8.12.0", - "express": "^4.18.1", - "follow-redirects": "^1.15.2", - "yaml": "^2.1.3" - }, - "bin": { - "act-js": "build/bin/act" - } - }, - "node_modules/@kie/act-js/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/@kie/act-js/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/@kie/build-chain-configuration-reader": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@kie/build-chain-configuration-reader/-/build-chain-configuration-reader-3.1.4.tgz", - "integrity": "sha512-2TFlO6JVhkyfOZnRBH3l3/D24PSYun/8szUbeEOzETqXHF6YL5zGWcCb9Qzzz0SAlqAHQzVUimbWh1L3Ci2n5w==", - "dependencies": { - "ajv": "^8.11.0", - "axios": "^0.27.2", - "yaml": "^2.1.1" - } - }, - "node_modules/@kie/build-chain-configuration-reader/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/@kie/build-chain-configuration-reader/node_modules/axios": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", - "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", - "dependencies": { - "follow-redirects": "^1.14.9", - "form-data": "^4.0.0" - } - }, - "node_modules/@kie/build-chain-configuration-reader/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "node_modules/@kie/mock-github": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@kie/mock-github/-/mock-github-1.0.3.tgz", - "integrity": "sha512-zdWD7Z4HDltpsFnsnsPdok6iznp9O+U5tPay+QF+q8HbkgASQI10Q/rZbdVUxL/No5BRhY0mW/9Hr5c3S4C4RA==", - "dev": true, - "dependencies": { - "@octokit/openapi-types-ghec": "^14.0.0", - "ajv": "^8.11.0", - "express": "^4.18.1", - "fast-glob": "^3.2.12", - "fs-extra": "^10.1.0", - "nock": "^13.2.7", - "simple-git": "^3.8.0", - "totalist": "^3.0.0" - } - }, - "node_modules/@kie/mock-github/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/@kie/mock-github/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/@kwsites/file-exists": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@kwsites/file-exists/-/file-exists-1.1.1.tgz", - "integrity": "sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==", - "dependencies": { - "debug": "^4.1.1" - } - }, - "node_modules/@kwsites/promise-deferred": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@kwsites/promise-deferred/-/promise-deferred-1.1.1.tgz", - "integrity": "sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==" - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@octokit/auth-token": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.5.0.tgz", - "integrity": "sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==", - "dependencies": { - "@octokit/types": "^6.0.3" - } - }, - "node_modules/@octokit/core": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.1.0.tgz", - "integrity": "sha512-Czz/59VefU+kKDy+ZfDwtOIYIkFjExOKf+HA92aiTZJ6EfWpFzYQWw0l54ji8bVmyhc+mGaLUbSUmXazG7z5OQ==", - "peer": true, - "dependencies": { - "@octokit/auth-token": "^3.0.0", - "@octokit/graphql": "^5.0.0", - "@octokit/request": "^6.0.0", - "@octokit/request-error": "^3.0.0", - "@octokit/types": "^8.0.0", - "before-after-hook": "^2.2.0", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@octokit/core/node_modules/@octokit/auth-token": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.2.tgz", - "integrity": "sha512-pq7CwIMV1kmzkFTimdwjAINCXKTajZErLB4wMLYapR2nuB/Jpr66+05wOTZMSCBXP6n4DdDWT2W19Bm17vU69Q==", - "peer": true, - "dependencies": { - "@octokit/types": "^8.0.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@octokit/core/node_modules/@octokit/endpoint": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.3.tgz", - "integrity": "sha512-57gRlb28bwTsdNXq+O3JTQ7ERmBTuik9+LelgcLIVfYwf235VHbN9QNo4kXExtp/h8T423cR5iJThKtFYxC7Lw==", - "peer": true, - "dependencies": { - "@octokit/types": "^8.0.0", - "is-plain-object": "^5.0.0", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@octokit/core/node_modules/@octokit/graphql": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.4.tgz", - "integrity": "sha512-amO1M5QUQgYQo09aStR/XO7KAl13xpigcy/kI8/N1PnZYSS69fgte+xA4+c2DISKqUZfsh0wwjc2FaCt99L41A==", - "peer": true, - "dependencies": { - "@octokit/request": "^6.0.0", - "@octokit/types": "^8.0.0", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@octokit/core/node_modules/@octokit/openapi-types": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-14.0.0.tgz", - "integrity": "sha512-HNWisMYlR8VCnNurDU6os2ikx0s0VyEjDYHNS/h4cgb8DeOxQ0n72HyinUtdDVxJhFy3FWLGl0DJhfEWk3P5Iw==", - "peer": true - }, - "node_modules/@octokit/core/node_modules/@octokit/request": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.2.tgz", - "integrity": "sha512-6VDqgj0HMc2FUX2awIs+sM6OwLgwHvAi4KCK3mT2H2IKRt6oH9d0fej5LluF5mck1lRR/rFWN0YIDSYXYSylbw==", - "peer": true, - "dependencies": { - "@octokit/endpoint": "^7.0.0", - "@octokit/request-error": "^3.0.0", - "@octokit/types": "^8.0.0", - "is-plain-object": "^5.0.0", - "node-fetch": "^2.6.7", - "universal-user-agent": "^6.0.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@octokit/core/node_modules/@octokit/request-error": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.3.tgz", - "integrity": "sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==", - "peer": true, - "dependencies": { - "@octokit/types": "^9.0.0", - "deprecation": "^2.0.0", - "once": "^1.4.0" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@octokit/core/node_modules/@octokit/request-error/node_modules/@octokit/openapi-types": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-16.0.0.tgz", - "integrity": "sha512-JbFWOqTJVLHZSUUoF4FzAZKYtqdxWu9Z5m2QQnOyEa04fOFljvyh7D3GYKbfuaSWisqehImiVIMG4eyJeP5VEA==", - "peer": true - }, - "node_modules/@octokit/core/node_modules/@octokit/request-error/node_modules/@octokit/types": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.0.0.tgz", - "integrity": "sha512-LUewfj94xCMH2rbD5YJ+6AQ4AVjFYTgpp6rboWM5T7N3IsIF65SBEOVcYMGAEzO/kKNiNaW4LoWtoThOhH06gw==", - "peer": true, - "dependencies": { - "@octokit/openapi-types": "^16.0.0" - } - }, - "node_modules/@octokit/core/node_modules/@octokit/types": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-8.0.0.tgz", - "integrity": "sha512-65/TPpOJP1i3K4lBJMnWqPUJ6zuOtzhtagDvydAWbEXpbFYA0oMKKyLb95NFZZP0lSh/4b6K+DQlzvYQJQQePg==", - "peer": true, - "dependencies": { - "@octokit/openapi-types": "^14.0.0" - } - }, - "node_modules/@octokit/endpoint": { - "version": "6.0.12", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz", - "integrity": "sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==", - "dependencies": { - "@octokit/types": "^6.0.3", - "is-plain-object": "^5.0.0", - "universal-user-agent": "^6.0.0" - } - }, - "node_modules/@octokit/graphql": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz", - "integrity": "sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==", - "dependencies": { - "@octokit/request": "^5.6.0", - "@octokit/types": "^6.0.3", - "universal-user-agent": "^6.0.0" - } - }, - "node_modules/@octokit/openapi-types": { - "version": "12.11.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz", - "integrity": "sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==" - }, - "node_modules/@octokit/openapi-types-ghec": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types-ghec/-/openapi-types-ghec-14.0.0.tgz", - "integrity": "sha512-xhd9oEvn2aroGn+sk09Ptx/76Y7aKU0EIgHukHPCU1+rGJreO36baEEk6k8ZPblieHNM39FcykJQmtDrETm0KA==", - "dev": true - }, - "node_modules/@octokit/plugin-request-log": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", - "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==", - "peerDependencies": { - "@octokit/core": ">=3" - } - }, - "node_modules/@octokit/plugin-throttling": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-5.0.1.tgz", - "integrity": "sha512-I4qxs7wYvYlFuY3PAUGWAVPhFXG3RwnvTiSr5Fu/Auz7bYhDLnzS2MjwV8nGLq/FPrWwYiweeZrI5yjs1YG4tQ==", - "dependencies": { - "@octokit/types": "^9.0.0", - "bottleneck": "^2.15.3" - }, - "engines": { - "node": ">= 14" - }, - "peerDependencies": { - "@octokit/core": "^4.0.0" - } - }, - "node_modules/@octokit/plugin-throttling/node_modules/@octokit/openapi-types": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-16.0.0.tgz", - "integrity": "sha512-JbFWOqTJVLHZSUUoF4FzAZKYtqdxWu9Z5m2QQnOyEa04fOFljvyh7D3GYKbfuaSWisqehImiVIMG4eyJeP5VEA==" - }, - "node_modules/@octokit/plugin-throttling/node_modules/@octokit/types": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.0.0.tgz", - "integrity": "sha512-LUewfj94xCMH2rbD5YJ+6AQ4AVjFYTgpp6rboWM5T7N3IsIF65SBEOVcYMGAEzO/kKNiNaW4LoWtoThOhH06gw==", - "dependencies": { - "@octokit/openapi-types": "^16.0.0" - } - }, - "node_modules/@octokit/request": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.3.tgz", - "integrity": "sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==", - "dependencies": { - "@octokit/endpoint": "^6.0.1", - "@octokit/request-error": "^2.1.0", - "@octokit/types": "^6.16.1", - "is-plain-object": "^5.0.0", - "node-fetch": "^2.6.7", - "universal-user-agent": "^6.0.0" - } - }, - "node_modules/@octokit/request-error": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz", - "integrity": "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==", - "dependencies": { - "@octokit/types": "^6.0.3", - "deprecation": "^2.0.0", - "once": "^1.4.0" - } - }, - "node_modules/@octokit/rest": { - "version": "18.12.0", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-18.12.0.tgz", - "integrity": "sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==", - "dependencies": { - "@octokit/core": "^3.5.1", - "@octokit/plugin-paginate-rest": "^2.16.8", - "@octokit/plugin-request-log": "^1.0.4", - "@octokit/plugin-rest-endpoint-methods": "^5.12.0" - } - }, - "node_modules/@octokit/rest/node_modules/@octokit/core": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.6.0.tgz", - "integrity": "sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==", - "dependencies": { - "@octokit/auth-token": "^2.4.4", - "@octokit/graphql": "^4.5.8", - "@octokit/request": "^5.6.3", - "@octokit/request-error": "^2.0.5", - "@octokit/types": "^6.0.3", - "before-after-hook": "^2.2.0", - "universal-user-agent": "^6.0.0" - } - }, - "node_modules/@octokit/rest/node_modules/@octokit/plugin-paginate-rest": { - "version": "2.21.3", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.21.3.tgz", - "integrity": "sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==", - "dependencies": { - "@octokit/types": "^6.40.0" - }, - "peerDependencies": { - "@octokit/core": ">=2" - } - }, - "node_modules/@octokit/rest/node_modules/@octokit/plugin-rest-endpoint-methods": { - "version": "5.16.2", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.16.2.tgz", - "integrity": "sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==", - "dependencies": { - "@octokit/types": "^6.39.0", - "deprecation": "^2.3.1" - }, - "peerDependencies": { - "@octokit/core": ">=3" - } - }, - "node_modules/@octokit/types": { - "version": "6.41.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz", - "integrity": "sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==", - "dependencies": { - "@octokit/openapi-types": "^12.11.0" - } - }, - "node_modules/@sinclair/typebox": { - "version": "0.24.28", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.28.tgz", - "integrity": "sha512-dgJd3HLOkLmz4Bw50eZx/zJwtBq65nms3N9VBYu5LTjJ883oBFkTyXRlCB/ZGGwqYpJJHA5zW2Ibhl5ngITfow==", - "dev": true - }, - "node_modules/@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", - "dev": true, - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", - "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^1.7.0" - } - }, - "node_modules/@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "dev": true - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", - "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", - "dev": true - }, - "node_modules/@types/babel__core": { - "version": "7.1.19", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", - "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.0.tgz", - "integrity": "sha512-v4Vwdko+pgymgS+A2UIaJru93zQd85vIGWObM5ekZNdXCKtDYqATlEYnWgfo86Q6I1Lh0oXnksDnMU1cwmlPDw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.3.0" - } - }, - "node_modules/@types/fs-extra": { - "version": "9.0.13", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", - "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "dev": true - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/jest": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-28.1.1.tgz", - "integrity": "sha512-C2p7yqleUKtCkVjlOur9BWVA4HgUQmEj/HWCt5WzZ5mLXrWnyIfl0wGuArc+kBXsy0ZZfLp+7dywB4HtSVYGVA==", - "dev": true, - "dependencies": { - "jest-matcher-utils": "^27.0.0", - "pretty-format": "^27.0.0" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", - "dev": true - }, - "node_modules/@types/node": { - "version": "18.16.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.3.tgz", - "integrity": "sha512-OPs5WnnT1xkCBiuQrZA4+YAV4HEJejmHneyraIaxsbev5yCEr6KMwINNFP9wQeFIw8FWcoTqF3vQsa5CDaI+8Q==", - "dev": true - }, - "node_modules/@types/prettier": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.0.tgz", - "integrity": "sha512-RI1L7N4JnW5gQw2spvL7Sllfuf1SaHdrZpCHiBlCXjIlufi1SMNnbu2teze3/QE67Fg2tBlH7W+mi4hVNk4p0A==", - "dev": true - }, - "node_modules/@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "node_modules/@types/yargs": { - "version": "17.0.11", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.11.tgz", - "integrity": "sha512-aB4y9UDUXTSMxmM4MH+YnuR0g5Cph3FLQBoWoMB21DSvFVAxRVEHEMx3TLh+zUZYMCQtKiqazz0Q4Rre31f/OA==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", - "dev": true - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.28.0.tgz", - "integrity": "sha512-DXVU6Cg29H2M6EybqSg2A+x8DgO9TCUBRp4QEXQHJceLS7ogVDP0g3Lkg/SZCqcvkAP/RruuQqK0gdlkgmhSUA==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "5.28.0", - "@typescript-eslint/type-utils": "5.28.0", - "@typescript-eslint/utils": "5.28.0", - "debug": "^4.3.4", - "functional-red-black-tree": "^1.0.1", - "ignore": "^5.2.0", - "regexpp": "^3.2.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "5.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.28.0.tgz", - "integrity": "sha512-ekqoNRNK1lAcKhZESN/PdpVsWbP9jtiNqzFWkp/yAUdZvJalw2heCYuqRmM5eUJSIYEkgq5sGOjq+ZqsLMjtRA==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "5.28.0", - "@typescript-eslint/types": "5.28.0", - "@typescript-eslint/typescript-estree": "5.28.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.28.0.tgz", - "integrity": "sha512-LeBLTqF/he1Z+boRhSqnso6YrzcKMTQ8bO/YKEe+6+O/JGof9M0g3IJlIsqfrK/6K03MlFIlycbf1uQR1IjE+w==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.28.0", - "@typescript-eslint/visitor-keys": "5.28.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "5.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.28.0.tgz", - "integrity": "sha512-SyKjKh4CXPglueyC6ceAFytjYWMoPHMswPQae236zqe1YbhvCVQyIawesYywGiu98L9DwrxsBN69vGIVxJ4mQQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/utils": "5.28.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/types": { - "version": "5.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.28.0.tgz", - "integrity": "sha512-2OOm8ZTOQxqkPbf+DAo8oc16sDlVR5owgJfKheBkxBKg1vAfw2JsSofH9+16VPlN9PWtv8Wzhklkqw3k/zCVxA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.28.0.tgz", - "integrity": "sha512-9GX+GfpV+F4hdTtYc6OV9ZkyYilGXPmQpm6AThInpBmKJEyRSIjORJd1G9+bknb7OTFYL+Vd4FBJAO6T78OVqA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.28.0", - "@typescript-eslint/visitor-keys": "5.28.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "5.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.28.0.tgz", - "integrity": "sha512-E60N5L0fjv7iPJV3UGc4EC+A3Lcj4jle9zzR0gW7vXhflO7/J29kwiTGITA2RlrmPokKiZbBy2DgaclCaEUs6g==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.28.0", - "@typescript-eslint/types": "5.28.0", - "@typescript-eslint/typescript-estree": "5.28.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.28.0.tgz", - "integrity": "sha512-BtfP1vCor8cWacovzzPFOoeW4kBQxzmhxGoOpt0v1SFvG+nJ0cWaVdJk7cky1ArTcFHHKNIxyo2LLr3oNkSuXA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.28.0", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@vercel/ncc": { - "version": "0.34.0", - "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.34.0.tgz", - "integrity": "sha512-G9h5ZLBJ/V57Ou9vz5hI8pda/YQX5HQszCs3AmIus3XzsmRn/0Ptic5otD3xVST8QLKk7AMk7AqpsyQGN7MZ9A==", - "dev": true, - "bin": { - "ncc": "dist/ncc/cli.js" - } - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dev": true, - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/agent-base": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", - "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", - "dependencies": { - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", - "dev": true - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "node_modules/axios": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", - "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", - "dependencies": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/babel-jest": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-28.1.3.tgz", - "integrity": "sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q==", - "dev": true, - "dependencies": { - "@jest/transform": "^28.1.3", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^28.1.3", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" - } - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-jest-hoist": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.3.tgz", - "integrity": "sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q==", - "dev": true, - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dev": true, - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-jest": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-28.1.3.tgz", - "integrity": "sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A==", - "dev": true, - "dependencies": { - "babel-plugin-jest-hoist": "^28.1.3", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/before-after-hook": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.2.tgz", - "integrity": "sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==" - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", - "dev": true, - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/bottleneck": { - "version": "2.19.5", - "resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.19.5.tgz", - "integrity": "sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==" - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", - "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001370", - "electron-to-chromium": "^1.4.202", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.5" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/bs-logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", - "dev": true, - "dependencies": { - "fast-json-stable-stringify": "2.x" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001383", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001383.tgz", - "integrity": "sha512-swMpEoTp5vDoGBZsYZX7L7nXHe6dsHxi9o6/LKf/f0LukVtnrxly5GVb/fWdCDTqi/yw6Km6tiJ0pmBacm0gbg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - } - ] - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/ci-info": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.2.tgz", - "integrity": "sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==", - "dev": true - }, - "node_modules/cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", - "dev": true - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "dev": true, - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", - "dev": true - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.3.0.tgz", - "integrity": "sha512-hv95iU5uXPbK83mjrJKuZyFM/LBAoCV/XhVGkS5Je6tl7sxr6A0ITMw5WoRV46/UaJ46Nllm3Xt7IaJhXTIkzw==", - "engines": { - "node": "^12.20.0 || >=14" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dev": true, - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-disposition/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", - "dev": true - }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", - "dev": true - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "dev": true, - "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/deprecation": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", - "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "dev": true, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/diff-sequences": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", - "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "dev": true - }, - "node_modules/electron-to-chromium": { - "version": "1.4.230", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.230.tgz", - "integrity": "sha512-3pwjAK0qHSDN9+YAF4fJknsSruP7mpjdWzUSruIJD/JCH77pEh0SorEyb3xVaKkfwk2tzjOt2D8scJ0KAdfXLA==", - "dev": true - }, - "node_modules/emittery": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", - "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-abstract": { - "version": "1.20.4", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz", - "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.3", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.2", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", - "safe-regex-test": "^1.0.0", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "dev": true - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.17.0.tgz", - "integrity": "sha512-gq0m0BTJfci60Fz4nczYxNAlED+sMcihltndR8t9t1evnU/azx53x3t2UHXC/uRjcbvRw/XctpaNygSTcQD+Iw==", - "dev": true, - "dependencies": { - "@eslint/eslintrc": "^1.3.0", - "@humanwhocodes/config-array": "^0.9.2", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.2", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", - "globals": "^13.15.0", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "regexpp": "^3.2.0", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" - } - }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/eslint/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/eslint/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/espree": { - "version": "9.3.3", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.3.tgz", - "integrity": "sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng==", - "dev": true, - "dependencies": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/expect": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/expect/-/expect-28.1.3.tgz", - "integrity": "sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g==", - "dev": true, - "dependencies": { - "@jest/expect-utils": "^28.1.3", - "jest-get-type": "^28.0.2", - "jest-matcher-utils": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/expect/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/expect/node_modules/diff-sequences": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", - "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/expect/node_modules/jest-diff": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz", - "integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^28.1.1", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/expect/node_modules/jest-get-type": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/expect/node_modules/jest-matcher-utils": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz", - "integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^28.1.3", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/expect/node_modules/pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/expect/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", - "dev": true, - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/express/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "node_modules/fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", - "dev": true, - "dependencies": { - "bser": "2.1.1" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "dev": true, - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "dev": true - }, - "node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", - "dev": true - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/globals": { - "version": "13.17.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", - "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dev": true, - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/http-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", - "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/husky": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.1.tgz", - "integrity": "sha512-xs7/chUH/CKdOCs7Zy0Aev9e/dKOMZf3K1Az1nar3tzlv0jfqnYtu235bstsWTmXOR0EfINrPa97yy4Lz6RiKw==", - "dev": true, - "bin": { - "husky": "lib/bin.js" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/typicode" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", - "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", - "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", - "dev": true, - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-reports": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", - "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", - "dev": true, - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/jest/-/jest-28.1.1.tgz", - "integrity": "sha512-qw9YHBnjt6TCbIDMPMpJZqf9E12rh6869iZaN08/vpOGgHJSAaLLUn6H8W3IAEuy34Ls3rct064mZLETkxJ2XA==", - "dev": true, - "dependencies": { - "@jest/core": "^28.1.1", - "@jest/types": "^28.1.1", - "import-local": "^3.0.2", - "jest-cli": "^28.1.1" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-changed-files": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-28.1.3.tgz", - "integrity": "sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA==", - "dev": true, - "dependencies": { - "execa": "^5.0.0", - "p-limit": "^3.1.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-changed-files/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-circus": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-28.1.3.tgz", - "integrity": "sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow==", - "dev": true, - "dependencies": { - "@jest/environment": "^28.1.3", - "@jest/expect": "^28.1.3", - "@jest/test-result": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^28.1.3", - "jest-matcher-utils": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-runtime": "^28.1.3", - "jest-snapshot": "^28.1.3", - "jest-util": "^28.1.3", - "p-limit": "^3.1.0", - "pretty-format": "^28.1.3", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-circus/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-circus/node_modules/diff-sequences": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", - "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-circus/node_modules/jest-diff": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz", - "integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^28.1.1", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-circus/node_modules/jest-get-type": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-circus/node_modules/jest-matcher-utils": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz", - "integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^28.1.3", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-circus/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-circus/node_modules/pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-circus/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/jest-config": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-28.1.3.tgz", - "integrity": "sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^28.1.3", - "@jest/types": "^28.1.3", - "babel-jest": "^28.1.3", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-circus": "^28.1.3", - "jest-environment-node": "^28.1.3", - "jest-get-type": "^28.0.2", - "jest-regex-util": "^28.0.2", - "jest-resolve": "^28.1.3", - "jest-runner": "^28.1.3", - "jest-util": "^28.1.3", - "jest-validate": "^28.1.3", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^28.1.3", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "peerDependencies": { - "@types/node": "*", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/jest-config/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-config/node_modules/jest-get-type": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-config/node_modules/pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-config/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/jest-diff": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", - "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-docblock": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-28.1.1.tgz", - "integrity": "sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA==", - "dev": true, - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-each": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-28.1.3.tgz", - "integrity": "sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "chalk": "^4.0.0", - "jest-get-type": "^28.0.2", - "jest-util": "^28.1.3", - "pretty-format": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-each/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-each/node_modules/jest-get-type": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-each/node_modules/pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-each/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/jest-environment-node": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-28.1.3.tgz", - "integrity": "sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A==", - "dev": true, - "dependencies": { - "@jest/environment": "^28.1.3", - "@jest/fake-timers": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "jest-mock": "^28.1.3", - "jest-util": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-haste-map": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-28.1.3.tgz", - "integrity": "sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^28.0.2", - "jest-util": "^28.1.3", - "jest-worker": "^28.1.3", - "micromatch": "^4.0.4", - "walker": "^1.0.8" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/jest-leak-detector": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-28.1.3.tgz", - "integrity": "sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA==", - "dev": true, - "dependencies": { - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-leak-detector/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-leak-detector/node_modules/jest-get-type": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-leak-detector/node_modules/pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-leak-detector/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/jest-matcher-utils": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", - "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-message-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", - "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^28.1.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^28.1.3", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-message-util/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-message-util/node_modules/pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-message-util/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/jest-mock": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-28.1.3.tgz", - "integrity": "sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "@types/node": "*" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, - "node_modules/jest-regex-util": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", - "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-resolve": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-28.1.3.tgz", - "integrity": "sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.3", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^28.1.3", - "jest-validate": "^28.1.3", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-resolve-dependencies": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.3.tgz", - "integrity": "sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA==", - "dev": true, - "dependencies": { - "jest-regex-util": "^28.0.2", - "jest-snapshot": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-runner": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-28.1.3.tgz", - "integrity": "sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA==", - "dev": true, - "dependencies": { - "@jest/console": "^28.1.3", - "@jest/environment": "^28.1.3", - "@jest/test-result": "^28.1.3", - "@jest/transform": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.10.2", - "graceful-fs": "^4.2.9", - "jest-docblock": "^28.1.1", - "jest-environment-node": "^28.1.3", - "jest-haste-map": "^28.1.3", - "jest-leak-detector": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-resolve": "^28.1.3", - "jest-runtime": "^28.1.3", - "jest-util": "^28.1.3", - "jest-watcher": "^28.1.3", - "jest-worker": "^28.1.3", - "p-limit": "^3.1.0", - "source-map-support": "0.5.13" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-runner/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-runtime": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-28.1.3.tgz", - "integrity": "sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw==", - "dev": true, - "dependencies": { - "@jest/environment": "^28.1.3", - "@jest/fake-timers": "^28.1.3", - "@jest/globals": "^28.1.3", - "@jest/source-map": "^28.1.2", - "@jest/test-result": "^28.1.3", - "@jest/transform": "^28.1.3", - "@jest/types": "^28.1.3", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-mock": "^28.1.3", - "jest-regex-util": "^28.0.2", - "jest-resolve": "^28.1.3", - "jest-snapshot": "^28.1.3", - "jest-util": "^28.1.3", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-snapshot": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-28.1.3.tgz", - "integrity": "sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg==", - "dev": true, - "dependencies": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^28.1.3", - "@jest/transform": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/babel__traverse": "^7.0.6", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^28.1.3", - "graceful-fs": "^4.2.9", - "jest-diff": "^28.1.3", - "jest-get-type": "^28.0.2", - "jest-haste-map": "^28.1.3", - "jest-matcher-utils": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3", - "natural-compare": "^1.4.0", - "pretty-format": "^28.1.3", - "semver": "^7.3.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-snapshot/node_modules/diff-sequences": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", - "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/jest-diff": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz", - "integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^28.1.1", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/jest-get-type": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/jest-matcher-utils": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz", - "integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^28.1.3", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/jest-sonar-reporter": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/jest-sonar-reporter/-/jest-sonar-reporter-2.0.0.tgz", - "integrity": "sha512-ZervDCgEX5gdUbdtWsjdipLN3bKJwpxbvhkYNXTAYvAckCihobSLr9OT/IuyNIRT1EZMDDwR6DroWtrq+IL64w==", - "dev": true, - "dependencies": { - "xml": "^1.0.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/jest-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", - "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-validate": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-28.1.3.tgz", - "integrity": "sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^28.0.2", - "leven": "^3.1.0", - "pretty-format": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-validate/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-validate/node_modules/jest-get-type": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-validate/node_modules/pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-validate/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/jest-watcher": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz", - "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", - "dev": true, - "dependencies": { - "@jest/test-result": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.10.2", - "jest-util": "^28.1.3", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-worker": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", - "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/jest/node_modules/jest-cli": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-28.1.3.tgz", - "integrity": "sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ==", - "dev": true, - "dependencies": { - "@jest/core": "^28.1.3", - "@jest/test-result": "^28.1.3", - "@jest/types": "^28.1.3", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "import-local": "^3.0.2", - "jest-config": "^28.1.3", - "jest-util": "^28.1.3", - "jest-validate": "^28.1.3", - "prompts": "^2.0.1", - "yargs": "^17.3.1" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "dev": true - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "node_modules/load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/load-json-file/node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", - "dev": true, - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/load-json-file/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "dev": true - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, - "dependencies": { - "tmpl": "1.0.5" - } - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/memorystream": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", - "dev": true, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", - "dev": true - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/ms-typescript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms-typescript/-/ms-typescript-2.0.0.tgz", - "integrity": "sha512-47wAq6QgJZeFYqQ9k5PbBoyGhZsxOzwmTee2fna5+7coYuidaUFdACrKDbtOuLChFQOsSTS5dEyuplC52E5S8g==" - }, - "node_modules/mylas": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/mylas/-/mylas-2.1.13.tgz", - "integrity": "sha512-+MrqnJRtxdF+xngFfUUkIMQrUUL0KsxbADUkn23Z/4ibGg192Q+z+CQyiYwvWTsYjJygmMR8+w3ZDa98Zh6ESg==", - "dev": true, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/raouldeheer" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node_modules/nock": { - "version": "13.2.7", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.2.7.tgz", - "integrity": "sha512-R6NUw7RIPtKwgK7jskuKoEi4VFMqIHtV2Uu9K/Uegc4TA5cqe+oNMYslZcUmnVNQCTG6wcSqUBaGTDd7sq5srg==", - "dev": true, - "dependencies": { - "debug": "^4.1.0", - "json-stringify-safe": "^5.0.1", - "lodash": "^4.17.21", - "propagate": "^2.0.0" - }, - "engines": { - "node": ">= 10.13" - } - }, - "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true - }, - "node_modules/node-releases": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", - "dev": true - }, - "node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-run-all": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", - "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "chalk": "^2.4.1", - "cross-spawn": "^6.0.5", - "memorystream": "^0.3.1", - "minimatch": "^3.0.4", - "pidtree": "^0.3.0", - "read-pkg": "^3.0.0", - "shell-quote": "^1.6.1", - "string.prototype.padend": "^3.0.0" - }, - "bin": { - "npm-run-all": "bin/npm-run-all/index.js", - "run-p": "bin/run-p/index.js", - "run-s": "bin/run-s/index.js" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/npm-run-all/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-all/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-all/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/npm-run-all/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/npm-run-all/node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/npm-run-all/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/npm-run-all/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-all/node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-all/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/npm-run-all/node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", - "dev": true, - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-run-all/node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-run-all/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-all/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dev": true, - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", - "dev": true - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pidtree": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", - "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", - "dev": true, - "bin": { - "pidtree": "bin/pidtree.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/plimit-lit": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/plimit-lit/-/plimit-lit-1.5.0.tgz", - "integrity": "sha512-Eb/MqCb1Iv/ok4m1FqIXqvUKPISufcjZ605hl3KM/n8GaX8zfhtgdLwZU3vKjuHGh2O9Rjog/bHTq8ofIShdng==", - "dev": true, - "dependencies": { - "queue-lit": "^1.5.0" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/propagate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", - "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dev": true, - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dev": true, - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/queue-lit": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/queue-lit/-/queue-lit-1.5.0.tgz", - "integrity": "sha512-IslToJ4eiCEE9xwMzq3viOO5nH8sUWUCwoElrhNMozzr9IIt2qqvB4I+uHu/zJTQVqc9R5DFwok4ijNK1pU3fA==", - "dev": true - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dev": true, - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "node_modules/read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", - "dev": true, - "dependencies": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg/node_modules/path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "dependencies": { - "pify": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/reflect-metadata": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", - "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" - }, - "node_modules/regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-cwd/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve.exports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", - "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "dev": true, - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "dev": true, - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/shell-quote": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.4.tgz", - "integrity": "sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "node_modules/simple-git": { - "version": "3.16.0", - "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-3.16.0.tgz", - "integrity": "sha512-zuWYsOLEhbJRWVxpjdiXl6eyAyGo/KzVW+KFhhw9MqEEJttcq+32jTWSGyxTdf9e/YCohxRE+9xpWFj9FdiJNw==", - "dependencies": { - "@kwsites/file-exists": "^1.1.1", - "@kwsites/promise-deferred": "^1.1.1", - "debug": "^4.3.4" - }, - "funding": { - "type": "github", - "url": "https://github.com/steveukx/git-js?sponsor=1" - } - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz", - "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==", - "dev": true - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true - }, - "node_modules/stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string.prototype.padend": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.4.tgz", - "integrity": "sha512-67otBXoksdjsnXXRUq+KMVTdlVRZ2af422Y0aTyTjVaoQkGr3mxl2Bc5emi7dOQ3OGVVQQskmLEWwFXwommpNw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", - "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", - "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "node_modules/tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "dependencies": { - "rimraf": "^3.0.0" - }, - "engines": { - "node": ">=8.17.0" - } - }, - "node_modules/tmp-promise": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.3.tgz", - "integrity": "sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==", - "dependencies": { - "tmp": "^0.2.0" - } - }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/totalist": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.0.tgz", - "integrity": "sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "node_modules/ts-jest": { - "version": "28.0.5", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-28.0.5.tgz", - "integrity": "sha512-Sx9FyP9pCY7pUzQpy4FgRZf2bhHY3za576HMKJFs+OnQ9jS96Du5vNsDKkyedQkik+sEabbKAnCliv9BEsHZgQ==", - "dev": true, - "dependencies": { - "bs-logger": "0.x", - "fast-json-stable-stringify": "2.x", - "jest-util": "^28.0.0", - "json5": "^2.2.1", - "lodash.memoize": "4.x", - "make-error": "1.x", - "semver": "7.x", - "yargs-parser": "^21.0.1" - }, - "bin": { - "ts-jest": "cli.js" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "peerDependencies": { - "@babel/core": ">=7.0.0-beta.0 <8", - "babel-jest": "^28.0.0", - "jest": "^28.0.0", - "typescript": ">=4.3" - }, - "peerDependenciesMeta": { - "@babel/core": { - "optional": true - }, - "babel-jest": { - "optional": true - }, - "esbuild": { - "optional": true - } - } - }, - "node_modules/ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", - "dev": true, - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, - "node_modules/tsc-alias": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/tsc-alias/-/tsc-alias-1.8.2.tgz", - "integrity": "sha512-ukBkcNekOgwtnSWYLD5QsMX3yQWg7JviAs8zg3qJGgu4LGtY3tsV4G6vnqvOXIDkbC+XL9vbhObWSpRA5/6wbg==", - "dev": true, - "dependencies": { - "chokidar": "^3.5.3", - "commander": "^9.0.0", - "globby": "^11.0.4", - "mylas": "^2.1.9", - "normalize-path": "^3.0.0", - "plimit-lit": "^1.2.6" - }, - "bin": { - "tsc-alias": "dist/bin/index.js" - } - }, - "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/tunnel": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", - "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", - "engines": { - "node": ">=0.6.11 <=0.7.0 || >=0.7.3" - } - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typedi": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/typedi/-/typedi-0.10.0.tgz", - "integrity": "sha512-v3UJF8xm68BBj6AF4oQML3ikrfK2c9EmZUyLOfShpJuItAqVBHWP/KtpGinkSsIiP6EZyyb6Z3NXyW9dgS9X1w==" - }, - "node_modules/typescript": { - "version": "4.7.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.3.tgz", - "integrity": "sha512-WOkT3XYvrpXx4vMMqlD+8R8R37fZkjyLGlxavMc4iB8lrl8L0DeTcHbYgw/v0N/z9wAFsgBhcsF0ruoySS22mA==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/universal-user-agent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", - "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==" - }, - "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz", - "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist-lint": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "dev": true, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true - }, - "node_modules/v8-to-istanbul": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", - "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dev": true, - "dependencies": { - "makeerror": "1.0.12" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, - "node_modules/write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/xml": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", - "integrity": "sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==", - "dev": true - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/yaml": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.2.tgz", - "integrity": "sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==", - "engines": { - "node": ">= 14" - } - }, - "node_modules/yargs": { - "version": "17.5.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", - "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - }, - "dependencies": { - "@actions/artifact": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@actions/artifact/-/artifact-1.1.0.tgz", - "integrity": "sha512-shO+w/BAnzRnFhfsgUao8sxjByAMqDdfvek2LLKeCueBKXoTrAcp7U/hs9Fdx+z9g7Q0mbIrmHAzAAww4HK1bQ==", - "requires": { - "@actions/core": "^1.2.6", - "@actions/http-client": "^2.0.1", - "tmp": "^0.2.1", - "tmp-promise": "^3.0.2" - } - }, - "@actions/core": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.9.1.tgz", - "integrity": "sha512-5ad+U2YGrmmiw6du20AQW5XuWo7UKN2052FjSV7MX+Wfjf8sCqcsZe62NfgHys4QI4/Y+vQvLKYL8jWtA1ZBTA==", - "requires": { - "@actions/http-client": "^2.0.1", - "uuid": "^8.3.2" - } - }, - "@actions/exec": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@actions/exec/-/exec-1.1.1.tgz", - "integrity": "sha512-+sCcHHbVdk93a0XT19ECtO/gIXoxvdsgQLzb2fE2/5sIZmWQuluYyjPQtrtTHdU1YzTZ7bAPN4sITq2xi1679w==", - "requires": { - "@actions/io": "^1.0.1" - } - }, - "@actions/glob": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@actions/glob/-/glob-0.3.0.tgz", - "integrity": "sha512-tJP1ZhF87fd6LBnaXWlahkyvdgvsLl7WnreW1EZaC8JWjpMXmzqWzQVe/IEYslrkT9ymibVrKyJN4UMD7uQM2w==", - "requires": { - "@actions/core": "^1.2.6", - "minimatch": "^3.0.4" - } - }, - "@actions/http-client": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.0.1.tgz", - "integrity": "sha512-PIXiMVtz6VvyaRsGY268qvj57hXQEpsYogYOu2nrQhlf+XCGmZstmuZBbAybUl1nQGnvS1k1eEsQ69ZoD7xlSw==", - "requires": { - "tunnel": "^0.0.6" - } - }, - "@actions/io": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@actions/io/-/io-1.1.2.tgz", - "integrity": "sha512-d+RwPlMp+2qmBfeLYPLXuSRykDIFEwdTA0MMxzS9kh4kvP1ftrc/9fzy6pX6qAjthdXruHQ6/6kjT/DNo5ALuw==" - }, - "@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", - "dev": true, - "requires": { - "@babel/highlight": "^7.18.6" - } - }, - "@babel/compat-data": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.13.tgz", - "integrity": "sha512-5yUzC5LqyTFp2HLmDoxGQelcdYgSpP9xsnMWBphAscOdFrHSAVbLNzWiy32sVNDqJRDiJK6klfDnAgu6PAGSHw==", - "dev": true - }, - "@babel/core": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.13.tgz", - "integrity": "sha512-ZisbOvRRusFktksHSG6pjj1CSvkPkcZq/KHD45LAkVP/oiHJkNBZWfpvlLmX8OtHDG8IuzsFlVRWo08w7Qxn0A==", - "dev": true, - "requires": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.13", - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-module-transforms": "^7.18.9", - "@babel/helpers": "^7.18.9", - "@babel/parser": "^7.18.13", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.18.13", - "@babel/types": "^7.18.13", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@babel/generator": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.13.tgz", - "integrity": "sha512-CkPg8ySSPuHTYPJYo7IRALdqyjM9HCbt/3uOBEFbzyGVP6Mn8bwFPB0jX6982JVNBlYzM1nnPkfjuXSOPtQeEQ==", - "dev": true, - "requires": { - "@babel/types": "^7.18.13", - "@jridgewell/gen-mapping": "^0.3.2", - "jsesc": "^2.5.1" - }, - "dependencies": { - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - } - } - }, - "@babel/helper-compilation-targets": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz", - "integrity": "sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.18.8", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.20.2", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", - "dev": true - }, - "@babel/helper-function-name": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz", - "integrity": "sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==", - "dev": true, - "requires": { - "@babel/template": "^7.18.6", - "@babel/types": "^7.18.9" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-module-transforms": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz", - "integrity": "sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.18.6", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz", - "integrity": "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==", - "dev": true - }, - "@babel/helper-simple-access": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", - "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-string-parser": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz", - "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", - "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", - "dev": true - }, - "@babel/helpers": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.9.tgz", - "integrity": "sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==", - "dev": true, - "requires": { - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" - } - }, - "@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/parser": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.13.tgz", - "integrity": "sha512-dgXcIfMuQ0kgzLB2b9tRZs7TTFFaGM2AbtA4fJgUUYukzGH4jwsS7hzQHEGs67jdehpm22vkgKwvbU+aEflgwg==", - "dev": true - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-typescript": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz", - "integrity": "sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/template": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", - "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.10", - "@babel/types": "^7.18.10" - } - }, - "@babel/traverse": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.13.tgz", - "integrity": "sha512-N6kt9X1jRMLPxxxPYWi7tgvJRH/rtoU+dbKAPDM44RFHiMH8igdsaSBgFeskhSl/kLWLDUvIh1RXCrTmg0/zvA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.13", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.18.13", - "@babel/types": "^7.18.13", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "dependencies": { - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - } - } - }, - "@babel/types": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.13.tgz", - "integrity": "sha512-ePqfTihzW0W6XAU+aMw2ykilisStJfDnsejDCXRchCcMJ4O0+8DhPXf2YUbZ6wjBlsEmZwLK/sPweWtu8hcJYQ==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.18.10", - "@babel/helper-validator-identifier": "^7.18.6", - "to-fast-properties": "^2.0.0" - } - }, - "@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "dependencies": { - "@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - } - } - }, - "@eslint/eslintrc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", - "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.3.2", - "globals": "^13.15.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - } - }, - "@humanwhocodes/config-array": { - "version": "0.9.5", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", - "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", - "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - } - }, - "@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "dependencies": { - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - } - } - }, - "@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true - }, - "@jest/console": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", - "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", - "dev": true, - "requires": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3", - "slash": "^3.0.0" - } - }, - "@jest/core": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-28.1.3.tgz", - "integrity": "sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA==", - "dev": true, - "requires": { - "@jest/console": "^28.1.3", - "@jest/reporters": "^28.1.3", - "@jest/test-result": "^28.1.3", - "@jest/transform": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^28.1.3", - "jest-config": "^28.1.3", - "jest-haste-map": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-regex-util": "^28.0.2", - "jest-resolve": "^28.1.3", - "jest-resolve-dependencies": "^28.1.3", - "jest-runner": "^28.1.3", - "jest-runtime": "^28.1.3", - "jest-snapshot": "^28.1.3", - "jest-util": "^28.1.3", - "jest-validate": "^28.1.3", - "jest-watcher": "^28.1.3", - "micromatch": "^4.0.4", - "pretty-format": "^28.1.3", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - }, - "pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "requires": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - } - }, - "react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - } - } - }, - "@jest/environment": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-28.1.3.tgz", - "integrity": "sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA==", - "dev": true, - "requires": { - "@jest/fake-timers": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "jest-mock": "^28.1.3" - } - }, - "@jest/expect": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-28.1.3.tgz", - "integrity": "sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw==", - "dev": true, - "requires": { - "expect": "^28.1.3", - "jest-snapshot": "^28.1.3" - } - }, - "@jest/expect-utils": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.3.tgz", - "integrity": "sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA==", - "dev": true, - "requires": { - "jest-get-type": "^28.0.2" - }, - "dependencies": { - "jest-get-type": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", - "dev": true - } - } - }, - "@jest/fake-timers": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-28.1.3.tgz", - "integrity": "sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw==", - "dev": true, - "requires": { - "@jest/types": "^28.1.3", - "@sinonjs/fake-timers": "^9.1.2", - "@types/node": "*", - "jest-message-util": "^28.1.3", - "jest-mock": "^28.1.3", - "jest-util": "^28.1.3" - } - }, - "@jest/globals": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-28.1.3.tgz", - "integrity": "sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA==", - "dev": true, - "requires": { - "@jest/environment": "^28.1.3", - "@jest/expect": "^28.1.3", - "@jest/types": "^28.1.3" - } - }, - "@jest/reporters": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-28.1.3.tgz", - "integrity": "sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg==", - "dev": true, - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^28.1.3", - "@jest/test-result": "^28.1.3", - "@jest/transform": "^28.1.3", - "@jest/types": "^28.1.3", - "@jridgewell/trace-mapping": "^0.3.13", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3", - "jest-worker": "^28.1.3", - "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^9.0.1" - } - }, - "@jest/schemas": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", - "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", - "dev": true, - "requires": { - "@sinclair/typebox": "^0.24.1" - } - }, - "@jest/source-map": { - "version": "28.1.2", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-28.1.2.tgz", - "integrity": "sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "^0.3.13", - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9" - } - }, - "@jest/test-result": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz", - "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", - "dev": true, - "requires": { - "@jest/console": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/test-sequencer": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-28.1.3.tgz", - "integrity": "sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw==", - "dev": true, - "requires": { - "@jest/test-result": "^28.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.3", - "slash": "^3.0.0" - } - }, - "@jest/transform": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-28.1.3.tgz", - "integrity": "sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA==", - "dev": true, - "requires": { - "@babel/core": "^7.11.6", - "@jest/types": "^28.1.3", - "@jridgewell/trace-mapping": "^0.3.13", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.3", - "jest-regex-util": "^28.0.2", - "jest-util": "^28.1.3", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.1" - } - }, - "@jest/types": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", - "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", - "dev": true, - "requires": { - "@jest/schemas": "^28.1.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - } - }, - "@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true - }, - "@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.15", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", - "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@kie/act-js": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@kie/act-js/-/act-js-2.0.6.tgz", - "integrity": "sha512-wKvOC+7HlWEWK2AgPwPXxoP6RguO5ujyudbr0VNje9jEIG5q+5c2yGDzZT+WJMJdiCnnFBKVPuZdJm5YkmjSUQ==", - "dev": true, - "requires": { - "@kie/mock-github": "^1.0.3", - "ajv": "^8.12.0", - "express": "^4.18.1", - "follow-redirects": "^1.15.2", - "yaml": "^2.1.3" - }, - "dependencies": { - "ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - } - } - }, - "@kie/build-chain-configuration-reader": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@kie/build-chain-configuration-reader/-/build-chain-configuration-reader-3.1.4.tgz", - "integrity": "sha512-2TFlO6JVhkyfOZnRBH3l3/D24PSYun/8szUbeEOzETqXHF6YL5zGWcCb9Qzzz0SAlqAHQzVUimbWh1L3Ci2n5w==", - "requires": { - "ajv": "^8.11.0", - "axios": "^0.27.2", - "yaml": "^2.1.1" - }, - "dependencies": { - "ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "axios": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", - "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", - "requires": { - "follow-redirects": "^1.14.9", - "form-data": "^4.0.0" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - } - } - }, - "@kie/mock-github": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@kie/mock-github/-/mock-github-1.0.3.tgz", - "integrity": "sha512-zdWD7Z4HDltpsFnsnsPdok6iznp9O+U5tPay+QF+q8HbkgASQI10Q/rZbdVUxL/No5BRhY0mW/9Hr5c3S4C4RA==", - "dev": true, - "requires": { - "@octokit/openapi-types-ghec": "^14.0.0", - "ajv": "^8.11.0", - "express": "^4.18.1", - "fast-glob": "^3.2.12", - "fs-extra": "^10.1.0", - "nock": "^13.2.7", - "simple-git": "^3.8.0", - "totalist": "^3.0.0" - }, - "dependencies": { - "ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - } - } - }, - "@kwsites/file-exists": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@kwsites/file-exists/-/file-exists-1.1.1.tgz", - "integrity": "sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==", - "requires": { - "debug": "^4.1.1" - } - }, - "@kwsites/promise-deferred": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@kwsites/promise-deferred/-/promise-deferred-1.1.1.tgz", - "integrity": "sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==" - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@octokit/auth-token": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.5.0.tgz", - "integrity": "sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==", - "requires": { - "@octokit/types": "^6.0.3" - } - }, - "@octokit/core": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.1.0.tgz", - "integrity": "sha512-Czz/59VefU+kKDy+ZfDwtOIYIkFjExOKf+HA92aiTZJ6EfWpFzYQWw0l54ji8bVmyhc+mGaLUbSUmXazG7z5OQ==", - "peer": true, - "requires": { - "@octokit/auth-token": "^3.0.0", - "@octokit/graphql": "^5.0.0", - "@octokit/request": "^6.0.0", - "@octokit/request-error": "^3.0.0", - "@octokit/types": "^8.0.0", - "before-after-hook": "^2.2.0", - "universal-user-agent": "^6.0.0" - }, - "dependencies": { - "@octokit/auth-token": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.2.tgz", - "integrity": "sha512-pq7CwIMV1kmzkFTimdwjAINCXKTajZErLB4wMLYapR2nuB/Jpr66+05wOTZMSCBXP6n4DdDWT2W19Bm17vU69Q==", - "peer": true, - "requires": { - "@octokit/types": "^8.0.0" - } - }, - "@octokit/endpoint": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.3.tgz", - "integrity": "sha512-57gRlb28bwTsdNXq+O3JTQ7ERmBTuik9+LelgcLIVfYwf235VHbN9QNo4kXExtp/h8T423cR5iJThKtFYxC7Lw==", - "peer": true, - "requires": { - "@octokit/types": "^8.0.0", - "is-plain-object": "^5.0.0", - "universal-user-agent": "^6.0.0" - } - }, - "@octokit/graphql": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.4.tgz", - "integrity": "sha512-amO1M5QUQgYQo09aStR/XO7KAl13xpigcy/kI8/N1PnZYSS69fgte+xA4+c2DISKqUZfsh0wwjc2FaCt99L41A==", - "peer": true, - "requires": { - "@octokit/request": "^6.0.0", - "@octokit/types": "^8.0.0", - "universal-user-agent": "^6.0.0" - } - }, - "@octokit/openapi-types": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-14.0.0.tgz", - "integrity": "sha512-HNWisMYlR8VCnNurDU6os2ikx0s0VyEjDYHNS/h4cgb8DeOxQ0n72HyinUtdDVxJhFy3FWLGl0DJhfEWk3P5Iw==", - "peer": true - }, - "@octokit/request": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.2.tgz", - "integrity": "sha512-6VDqgj0HMc2FUX2awIs+sM6OwLgwHvAi4KCK3mT2H2IKRt6oH9d0fej5LluF5mck1lRR/rFWN0YIDSYXYSylbw==", - "peer": true, - "requires": { - "@octokit/endpoint": "^7.0.0", - "@octokit/request-error": "^3.0.0", - "@octokit/types": "^8.0.0", - "is-plain-object": "^5.0.0", - "node-fetch": "^2.6.7", - "universal-user-agent": "^6.0.0" - } - }, - "@octokit/request-error": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.3.tgz", - "integrity": "sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==", - "peer": true, - "requires": { - "@octokit/types": "^9.0.0", - "deprecation": "^2.0.0", - "once": "^1.4.0" - }, - "dependencies": { - "@octokit/openapi-types": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-16.0.0.tgz", - "integrity": "sha512-JbFWOqTJVLHZSUUoF4FzAZKYtqdxWu9Z5m2QQnOyEa04fOFljvyh7D3GYKbfuaSWisqehImiVIMG4eyJeP5VEA==", - "peer": true - }, - "@octokit/types": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.0.0.tgz", - "integrity": "sha512-LUewfj94xCMH2rbD5YJ+6AQ4AVjFYTgpp6rboWM5T7N3IsIF65SBEOVcYMGAEzO/kKNiNaW4LoWtoThOhH06gw==", - "peer": true, - "requires": { - "@octokit/openapi-types": "^16.0.0" - } - } - } - }, - "@octokit/types": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-8.0.0.tgz", - "integrity": "sha512-65/TPpOJP1i3K4lBJMnWqPUJ6zuOtzhtagDvydAWbEXpbFYA0oMKKyLb95NFZZP0lSh/4b6K+DQlzvYQJQQePg==", - "peer": true, - "requires": { - "@octokit/openapi-types": "^14.0.0" - } - } - } - }, - "@octokit/endpoint": { - "version": "6.0.12", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz", - "integrity": "sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==", - "requires": { - "@octokit/types": "^6.0.3", - "is-plain-object": "^5.0.0", - "universal-user-agent": "^6.0.0" - } - }, - "@octokit/graphql": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz", - "integrity": "sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==", - "requires": { - "@octokit/request": "^5.6.0", - "@octokit/types": "^6.0.3", - "universal-user-agent": "^6.0.0" - } - }, - "@octokit/openapi-types": { - "version": "12.11.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz", - "integrity": "sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==" - }, - "@octokit/openapi-types-ghec": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types-ghec/-/openapi-types-ghec-14.0.0.tgz", - "integrity": "sha512-xhd9oEvn2aroGn+sk09Ptx/76Y7aKU0EIgHukHPCU1+rGJreO36baEEk6k8ZPblieHNM39FcykJQmtDrETm0KA==", - "dev": true - }, - "@octokit/plugin-request-log": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", - "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==", - "requires": {} - }, - "@octokit/plugin-throttling": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-5.0.1.tgz", - "integrity": "sha512-I4qxs7wYvYlFuY3PAUGWAVPhFXG3RwnvTiSr5Fu/Auz7bYhDLnzS2MjwV8nGLq/FPrWwYiweeZrI5yjs1YG4tQ==", - "requires": { - "@octokit/types": "^9.0.0", - "bottleneck": "^2.15.3" - }, - "dependencies": { - "@octokit/openapi-types": { - "version": "16.0.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-16.0.0.tgz", - "integrity": "sha512-JbFWOqTJVLHZSUUoF4FzAZKYtqdxWu9Z5m2QQnOyEa04fOFljvyh7D3GYKbfuaSWisqehImiVIMG4eyJeP5VEA==" - }, - "@octokit/types": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.0.0.tgz", - "integrity": "sha512-LUewfj94xCMH2rbD5YJ+6AQ4AVjFYTgpp6rboWM5T7N3IsIF65SBEOVcYMGAEzO/kKNiNaW4LoWtoThOhH06gw==", - "requires": { - "@octokit/openapi-types": "^16.0.0" - } - } - } - }, - "@octokit/request": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.3.tgz", - "integrity": "sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==", - "requires": { - "@octokit/endpoint": "^6.0.1", - "@octokit/request-error": "^2.1.0", - "@octokit/types": "^6.16.1", - "is-plain-object": "^5.0.0", - "node-fetch": "^2.6.7", - "universal-user-agent": "^6.0.0" - } - }, - "@octokit/request-error": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz", - "integrity": "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==", - "requires": { - "@octokit/types": "^6.0.3", - "deprecation": "^2.0.0", - "once": "^1.4.0" - } - }, - "@octokit/rest": { - "version": "18.12.0", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-18.12.0.tgz", - "integrity": "sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==", - "requires": { - "@octokit/core": "^3.5.1", - "@octokit/plugin-paginate-rest": "^2.16.8", - "@octokit/plugin-request-log": "^1.0.4", - "@octokit/plugin-rest-endpoint-methods": "^5.12.0" - }, - "dependencies": { - "@octokit/core": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.6.0.tgz", - "integrity": "sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==", - "requires": { - "@octokit/auth-token": "^2.4.4", - "@octokit/graphql": "^4.5.8", - "@octokit/request": "^5.6.3", - "@octokit/request-error": "^2.0.5", - "@octokit/types": "^6.0.3", - "before-after-hook": "^2.2.0", - "universal-user-agent": "^6.0.0" - } - }, - "@octokit/plugin-paginate-rest": { - "version": "2.21.3", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.21.3.tgz", - "integrity": "sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==", - "requires": { - "@octokit/types": "^6.40.0" - } - }, - "@octokit/plugin-rest-endpoint-methods": { - "version": "5.16.2", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.16.2.tgz", - "integrity": "sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==", - "requires": { - "@octokit/types": "^6.39.0", - "deprecation": "^2.3.1" - } - } - } - }, - "@octokit/types": { - "version": "6.41.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz", - "integrity": "sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==", - "requires": { - "@octokit/openapi-types": "^12.11.0" - } - }, - "@sinclair/typebox": { - "version": "0.24.28", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.28.tgz", - "integrity": "sha512-dgJd3HLOkLmz4Bw50eZx/zJwtBq65nms3N9VBYu5LTjJ883oBFkTyXRlCB/ZGGwqYpJJHA5zW2Ibhl5ngITfow==", - "dev": true - }, - "@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - }, - "@sinonjs/fake-timers": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", - "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", - "dev": true, - "requires": { - "@sinonjs/commons": "^1.7.0" - } - }, - "@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "dev": true - }, - "@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true - }, - "@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true - }, - "@tsconfig/node16": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", - "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", - "dev": true - }, - "@types/babel__core": { - "version": "7.1.19", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", - "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.0.tgz", - "integrity": "sha512-v4Vwdko+pgymgS+A2UIaJru93zQd85vIGWObM5ekZNdXCKtDYqATlEYnWgfo86Q6I1Lh0oXnksDnMU1cwmlPDw==", - "dev": true, - "requires": { - "@babel/types": "^7.3.0" - } - }, - "@types/fs-extra": { - "version": "9.0.13", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", - "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "dev": true - }, - "@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/jest": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-28.1.1.tgz", - "integrity": "sha512-C2p7yqleUKtCkVjlOur9BWVA4HgUQmEj/HWCt5WzZ5mLXrWnyIfl0wGuArc+kBXsy0ZZfLp+7dywB4HtSVYGVA==", - "dev": true, - "requires": { - "jest-matcher-utils": "^27.0.0", - "pretty-format": "^27.0.0" - } - }, - "@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", - "dev": true - }, - "@types/node": { - "version": "18.16.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.3.tgz", - "integrity": "sha512-OPs5WnnT1xkCBiuQrZA4+YAV4HEJejmHneyraIaxsbev5yCEr6KMwINNFP9wQeFIw8FWcoTqF3vQsa5CDaI+8Q==", - "dev": true - }, - "@types/prettier": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.0.tgz", - "integrity": "sha512-RI1L7N4JnW5gQw2spvL7Sllfuf1SaHdrZpCHiBlCXjIlufi1SMNnbu2teze3/QE67Fg2tBlH7W+mi4hVNk4p0A==", - "dev": true - }, - "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "@types/yargs": { - "version": "17.0.11", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.11.tgz", - "integrity": "sha512-aB4y9UDUXTSMxmM4MH+YnuR0g5Cph3FLQBoWoMB21DSvFVAxRVEHEMx3TLh+zUZYMCQtKiqazz0Q4Rre31f/OA==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "@types/yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", - "dev": true - }, - "@typescript-eslint/eslint-plugin": { - "version": "5.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.28.0.tgz", - "integrity": "sha512-DXVU6Cg29H2M6EybqSg2A+x8DgO9TCUBRp4QEXQHJceLS7ogVDP0g3Lkg/SZCqcvkAP/RruuQqK0gdlkgmhSUA==", - "dev": true, - "requires": { - "@typescript-eslint/scope-manager": "5.28.0", - "@typescript-eslint/type-utils": "5.28.0", - "@typescript-eslint/utils": "5.28.0", - "debug": "^4.3.4", - "functional-red-black-tree": "^1.0.1", - "ignore": "^5.2.0", - "regexpp": "^3.2.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/parser": { - "version": "5.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.28.0.tgz", - "integrity": "sha512-ekqoNRNK1lAcKhZESN/PdpVsWbP9jtiNqzFWkp/yAUdZvJalw2heCYuqRmM5eUJSIYEkgq5sGOjq+ZqsLMjtRA==", - "dev": true, - "requires": { - "@typescript-eslint/scope-manager": "5.28.0", - "@typescript-eslint/types": "5.28.0", - "@typescript-eslint/typescript-estree": "5.28.0", - "debug": "^4.3.4" - } - }, - "@typescript-eslint/scope-manager": { - "version": "5.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.28.0.tgz", - "integrity": "sha512-LeBLTqF/he1Z+boRhSqnso6YrzcKMTQ8bO/YKEe+6+O/JGof9M0g3IJlIsqfrK/6K03MlFIlycbf1uQR1IjE+w==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.28.0", - "@typescript-eslint/visitor-keys": "5.28.0" - } - }, - "@typescript-eslint/type-utils": { - "version": "5.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.28.0.tgz", - "integrity": "sha512-SyKjKh4CXPglueyC6ceAFytjYWMoPHMswPQae236zqe1YbhvCVQyIawesYywGiu98L9DwrxsBN69vGIVxJ4mQQ==", - "dev": true, - "requires": { - "@typescript-eslint/utils": "5.28.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/types": { - "version": "5.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.28.0.tgz", - "integrity": "sha512-2OOm8ZTOQxqkPbf+DAo8oc16sDlVR5owgJfKheBkxBKg1vAfw2JsSofH9+16VPlN9PWtv8Wzhklkqw3k/zCVxA==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.28.0.tgz", - "integrity": "sha512-9GX+GfpV+F4hdTtYc6OV9ZkyYilGXPmQpm6AThInpBmKJEyRSIjORJd1G9+bknb7OTFYL+Vd4FBJAO6T78OVqA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.28.0", - "@typescript-eslint/visitor-keys": "5.28.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/utils": { - "version": "5.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.28.0.tgz", - "integrity": "sha512-E60N5L0fjv7iPJV3UGc4EC+A3Lcj4jle9zzR0gW7vXhflO7/J29kwiTGITA2RlrmPokKiZbBy2DgaclCaEUs6g==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.28.0", - "@typescript-eslint/types": "5.28.0", - "@typescript-eslint/typescript-estree": "5.28.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.28.0.tgz", - "integrity": "sha512-BtfP1vCor8cWacovzzPFOoeW4kBQxzmhxGoOpt0v1SFvG+nJ0cWaVdJk7cky1ArTcFHHKNIxyo2LLr3oNkSuXA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.28.0", - "eslint-visitor-keys": "^3.3.0" - } - }, - "@vercel/ncc": { - "version": "0.34.0", - "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.34.0.tgz", - "integrity": "sha512-G9h5ZLBJ/V57Ou9vz5hI8pda/YQX5HQszCs3AmIus3XzsmRn/0Ptic5otD3xVST8QLKk7AMk7AqpsyQGN7MZ9A==", - "dev": true - }, - "accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dev": true, - "requires": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - } - }, - "acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", - "dev": true - }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} - }, - "acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true - }, - "agent-base": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", - "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", - "requires": { - "debug": "^4.3.4" - } - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - }, - "dependencies": { - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true - } - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", - "dev": true - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "axios": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", - "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", - "requires": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "babel-jest": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-28.1.3.tgz", - "integrity": "sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q==", - "dev": true, - "requires": { - "@jest/transform": "^28.1.3", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^28.1.3", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - } - }, - "babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - } - }, - "babel-plugin-jest-hoist": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.3.tgz", - "integrity": "sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q==", - "dev": true, - "requires": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" - } - }, - "babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dev": true, - "requires": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - } - }, - "babel-preset-jest": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-28.1.3.tgz", - "integrity": "sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A==", - "dev": true, - "requires": { - "babel-plugin-jest-hoist": "^28.1.3", - "babel-preset-current-node-syntax": "^1.0.0" - } - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "before-after-hook": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.2.tgz", - "integrity": "sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==" - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, - "body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", - "dev": true, - "requires": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } - } - }, - "bottleneck": { - "version": "2.19.5", - "resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.19.5.tgz", - "integrity": "sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==" - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "browserslist": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", - "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001370", - "electron-to-chromium": "^1.4.202", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.5" - } - }, - "bs-logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", - "dev": true, - "requires": { - "fast-json-stable-stringify": "2.x" - } - }, - "bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "requires": { - "node-int64": "^0.4.0" - } - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30001383", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001383.tgz", - "integrity": "sha512-swMpEoTp5vDoGBZsYZX7L7nXHe6dsHxi9o6/LKf/f0LukVtnrxly5GVb/fWdCDTqi/yw6Km6tiJ0pmBacm0gbg==", - "dev": true - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true - }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "ci-info": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.2.tgz", - "integrity": "sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==", - "dev": true - }, - "cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", - "dev": true - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "dev": true - }, - "collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", - "dev": true - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.3.0.tgz", - "integrity": "sha512-hv95iU5uXPbK83mjrJKuZyFM/LBAoCV/XhVGkS5Je6tl7sxr6A0ITMw5WoRV46/UaJ46Nllm3Xt7IaJhXTIkzw==" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - }, - "content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dev": true, - "requires": { - "safe-buffer": "5.2.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } - } - }, - "content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "dev": true - }, - "convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "dev": true - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", - "dev": true - }, - "create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { - "ms": "2.1.2" - } - }, - "dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", - "dev": true - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true - }, - "define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "dev": true, - "requires": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" - }, - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true - }, - "deprecation": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", - "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" - }, - "destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "dev": true - }, - "detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true - }, - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true - }, - "diff-sequences": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", - "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", - "dev": true - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "requires": { - "path-type": "^4.0.0" - } - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.4.230", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.230.tgz", - "integrity": "sha512-3pwjAK0qHSDN9+YAF4fJknsSruP7mpjdWzUSruIJD/JCH77pEh0SorEyb3xVaKkfwk2tzjOt2D8scJ0KAdfXLA==", - "dev": true - }, - "emittery": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", - "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "dev": true - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es-abstract": { - "version": "1.20.4", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz", - "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.3", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.2", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", - "safe-regex-test": "^1.0.0", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "dev": true - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "eslint": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.17.0.tgz", - "integrity": "sha512-gq0m0BTJfci60Fz4nczYxNAlED+sMcihltndR8t9t1evnU/azx53x3t2UHXC/uRjcbvRw/XctpaNygSTcQD+Iw==", - "dev": true, - "requires": { - "@eslint/eslintrc": "^1.3.0", - "@humanwhocodes/config-array": "^0.9.2", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.2", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", - "globals": "^13.15.0", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "regexpp": "^3.2.0", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "dependencies": { - "eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - } - } - }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^2.0.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - } - } - }, - "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true - }, - "espree": { - "version": "9.3.3", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.3.tgz", - "integrity": "sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng==", - "dev": true, - "requires": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "dev": true - }, - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - } - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", - "dev": true - }, - "expect": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/expect/-/expect-28.1.3.tgz", - "integrity": "sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g==", - "dev": true, - "requires": { - "@jest/expect-utils": "^28.1.3", - "jest-get-type": "^28.0.2", - "jest-matcher-utils": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - }, - "diff-sequences": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", - "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", - "dev": true - }, - "jest-diff": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz", - "integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^28.1.1", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" - } - }, - "jest-get-type": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", - "dev": true - }, - "jest-matcher-utils": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz", - "integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^28.1.3", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" - } - }, - "pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "requires": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - } - }, - "react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - } - } - }, - "express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", - "dev": true, - "requires": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } - } - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", - "dev": true, - "requires": { - "bser": "2.1.1" - } - }, - "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "requires": { - "flat-cache": "^3.0.4" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "dev": true, - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - } - }, - "flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "dev": true - }, - "follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" - }, - "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "dev": true - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "dev": true - }, - "fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - } - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", - "dev": true - }, - "functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - } - }, - "get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true - }, - "get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "globals": { - "version": "13.17.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", - "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - } - }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.1" - } - }, - "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true - }, - "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dev": true, - "requires": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - } - }, - "http-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", - "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", - "requires": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - } - }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true - }, - "husky": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.1.tgz", - "integrity": "sha512-xs7/chUH/CKdOCs7Zy0Aev9e/dKOMZf3K1Az1nar3tzlv0jfqnYtu235bstsWTmXOR0EfINrPa97yy4Lz6RiKw==", - "dev": true - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "dev": true - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "requires": { - "has-bigints": "^1.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true - }, - "is-core-module": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", - "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" - }, - "is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true - }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", - "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", - "dev": true, - "requires": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - } - }, - "istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - } - }, - "istanbul-reports": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", - "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", - "dev": true, - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "jest": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/jest/-/jest-28.1.1.tgz", - "integrity": "sha512-qw9YHBnjt6TCbIDMPMpJZqf9E12rh6869iZaN08/vpOGgHJSAaLLUn6H8W3IAEuy34Ls3rct064mZLETkxJ2XA==", - "dev": true, - "requires": { - "@jest/core": "^28.1.1", - "@jest/types": "^28.1.1", - "import-local": "^3.0.2", - "jest-cli": "^28.1.1" - }, - "dependencies": { - "jest-cli": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-28.1.3.tgz", - "integrity": "sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ==", - "dev": true, - "requires": { - "@jest/core": "^28.1.3", - "@jest/test-result": "^28.1.3", - "@jest/types": "^28.1.3", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "import-local": "^3.0.2", - "jest-config": "^28.1.3", - "jest-util": "^28.1.3", - "jest-validate": "^28.1.3", - "prompts": "^2.0.1", - "yargs": "^17.3.1" - } - } - } - }, - "jest-changed-files": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-28.1.3.tgz", - "integrity": "sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA==", - "dev": true, - "requires": { - "execa": "^5.0.0", - "p-limit": "^3.1.0" - }, - "dependencies": { - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - } - } - }, - "jest-circus": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-28.1.3.tgz", - "integrity": "sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow==", - "dev": true, - "requires": { - "@jest/environment": "^28.1.3", - "@jest/expect": "^28.1.3", - "@jest/test-result": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^28.1.3", - "jest-matcher-utils": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-runtime": "^28.1.3", - "jest-snapshot": "^28.1.3", - "jest-util": "^28.1.3", - "p-limit": "^3.1.0", - "pretty-format": "^28.1.3", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - }, - "diff-sequences": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", - "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", - "dev": true - }, - "jest-diff": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz", - "integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^28.1.1", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" - } - }, - "jest-get-type": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", - "dev": true - }, - "jest-matcher-utils": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz", - "integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^28.1.3", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "requires": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - } - }, - "react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - } - } - }, - "jest-config": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-28.1.3.tgz", - "integrity": "sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ==", - "dev": true, - "requires": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^28.1.3", - "@jest/types": "^28.1.3", - "babel-jest": "^28.1.3", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-circus": "^28.1.3", - "jest-environment-node": "^28.1.3", - "jest-get-type": "^28.0.2", - "jest-regex-util": "^28.0.2", - "jest-resolve": "^28.1.3", - "jest-runner": "^28.1.3", - "jest-util": "^28.1.3", - "jest-validate": "^28.1.3", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^28.1.3", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - }, - "jest-get-type": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", - "dev": true - }, - "pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "requires": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - } - }, - "react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - } - } - }, - "jest-diff": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", - "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - } - }, - "jest-docblock": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-28.1.1.tgz", - "integrity": "sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA==", - "dev": true, - "requires": { - "detect-newline": "^3.0.0" - } - }, - "jest-each": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-28.1.3.tgz", - "integrity": "sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g==", - "dev": true, - "requires": { - "@jest/types": "^28.1.3", - "chalk": "^4.0.0", - "jest-get-type": "^28.0.2", - "jest-util": "^28.1.3", - "pretty-format": "^28.1.3" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - }, - "jest-get-type": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", - "dev": true - }, - "pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "requires": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - } - }, - "react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - } - } - }, - "jest-environment-node": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-28.1.3.tgz", - "integrity": "sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A==", - "dev": true, - "requires": { - "@jest/environment": "^28.1.3", - "@jest/fake-timers": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "jest-mock": "^28.1.3", - "jest-util": "^28.1.3" - } - }, - "jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", - "dev": true - }, - "jest-haste-map": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-28.1.3.tgz", - "integrity": "sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA==", - "dev": true, - "requires": { - "@jest/types": "^28.1.3", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^28.0.2", - "jest-util": "^28.1.3", - "jest-worker": "^28.1.3", - "micromatch": "^4.0.4", - "walker": "^1.0.8" - } - }, - "jest-leak-detector": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-28.1.3.tgz", - "integrity": "sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA==", - "dev": true, - "requires": { - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - }, - "jest-get-type": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", - "dev": true - }, - "pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "requires": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - } - }, - "react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - } - } - }, - "jest-matcher-utils": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", - "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - } - }, - "jest-message-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", - "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^28.1.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^28.1.3", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - }, - "pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "requires": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - } - }, - "react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - } - } - }, - "jest-mock": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-28.1.3.tgz", - "integrity": "sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA==", - "dev": true, - "requires": { - "@jest/types": "^28.1.3", - "@types/node": "*" - } - }, - "jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true, - "requires": {} - }, - "jest-regex-util": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", - "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", - "dev": true - }, - "jest-resolve": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-28.1.3.tgz", - "integrity": "sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.3", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^28.1.3", - "jest-validate": "^28.1.3", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" - } - }, - "jest-resolve-dependencies": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.3.tgz", - "integrity": "sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA==", - "dev": true, - "requires": { - "jest-regex-util": "^28.0.2", - "jest-snapshot": "^28.1.3" - } - }, - "jest-runner": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-28.1.3.tgz", - "integrity": "sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA==", - "dev": true, - "requires": { - "@jest/console": "^28.1.3", - "@jest/environment": "^28.1.3", - "@jest/test-result": "^28.1.3", - "@jest/transform": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.10.2", - "graceful-fs": "^4.2.9", - "jest-docblock": "^28.1.1", - "jest-environment-node": "^28.1.3", - "jest-haste-map": "^28.1.3", - "jest-leak-detector": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-resolve": "^28.1.3", - "jest-runtime": "^28.1.3", - "jest-util": "^28.1.3", - "jest-watcher": "^28.1.3", - "jest-worker": "^28.1.3", - "p-limit": "^3.1.0", - "source-map-support": "0.5.13" - }, - "dependencies": { - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - } - } - }, - "jest-runtime": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-28.1.3.tgz", - "integrity": "sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw==", - "dev": true, - "requires": { - "@jest/environment": "^28.1.3", - "@jest/fake-timers": "^28.1.3", - "@jest/globals": "^28.1.3", - "@jest/source-map": "^28.1.2", - "@jest/test-result": "^28.1.3", - "@jest/transform": "^28.1.3", - "@jest/types": "^28.1.3", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-mock": "^28.1.3", - "jest-regex-util": "^28.0.2", - "jest-resolve": "^28.1.3", - "jest-snapshot": "^28.1.3", - "jest-util": "^28.1.3", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - } - }, - "jest-snapshot": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-28.1.3.tgz", - "integrity": "sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg==", - "dev": true, - "requires": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^28.1.3", - "@jest/transform": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/babel__traverse": "^7.0.6", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^28.1.3", - "graceful-fs": "^4.2.9", - "jest-diff": "^28.1.3", - "jest-get-type": "^28.0.2", - "jest-haste-map": "^28.1.3", - "jest-matcher-utils": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3", - "natural-compare": "^1.4.0", - "pretty-format": "^28.1.3", - "semver": "^7.3.5" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - }, - "diff-sequences": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", - "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", - "dev": true - }, - "jest-diff": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz", - "integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^28.1.1", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" - } - }, - "jest-get-type": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", - "dev": true - }, - "jest-matcher-utils": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz", - "integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^28.1.3", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" - } - }, - "pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "requires": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - } - }, - "react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - } - } - }, - "jest-sonar-reporter": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/jest-sonar-reporter/-/jest-sonar-reporter-2.0.0.tgz", - "integrity": "sha512-ZervDCgEX5gdUbdtWsjdipLN3bKJwpxbvhkYNXTAYvAckCihobSLr9OT/IuyNIRT1EZMDDwR6DroWtrq+IL64w==", - "dev": true, - "requires": { - "xml": "^1.0.1" - } - }, - "jest-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", - "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", - "dev": true, - "requires": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - } - }, - "jest-validate": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-28.1.3.tgz", - "integrity": "sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA==", - "dev": true, - "requires": { - "@jest/types": "^28.1.3", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^28.0.2", - "leven": "^3.1.0", - "pretty-format": "^28.1.3" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - }, - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true - }, - "jest-get-type": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", - "dev": true - }, - "pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "requires": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - } - }, - "react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - } - } - }, - "jest-watcher": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz", - "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", - "dev": true, - "requires": { - "@jest/test-result": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.10.2", - "jest-util": "^28.1.3", - "string-length": "^4.0.1" - } - }, - "jest-worker": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", - "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "dev": true - }, - "json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true - }, - "leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true - } - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "dev": true - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, - "requires": { - "tmpl": "1.0.5" - } - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "dev": true - }, - "memorystream": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", - "dev": true - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", - "dev": true - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "dev": true - }, - "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true - }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" - }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "requires": { - "mime-db": "1.52.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "ms-typescript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms-typescript/-/ms-typescript-2.0.0.tgz", - "integrity": "sha512-47wAq6QgJZeFYqQ9k5PbBoyGhZsxOzwmTee2fna5+7coYuidaUFdACrKDbtOuLChFQOsSTS5dEyuplC52E5S8g==" - }, - "mylas": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/mylas/-/mylas-2.1.13.tgz", - "integrity": "sha512-+MrqnJRtxdF+xngFfUUkIMQrUUL0KsxbADUkn23Z/4ibGg192Q+z+CQyiYwvWTsYjJygmMR8+w3ZDa98Zh6ESg==", - "dev": true - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "dev": true - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "nock": { - "version": "13.2.7", - "resolved": "https://registry.npmjs.org/nock/-/nock-13.2.7.tgz", - "integrity": "sha512-R6NUw7RIPtKwgK7jskuKoEi4VFMqIHtV2Uu9K/Uegc4TA5cqe+oNMYslZcUmnVNQCTG6wcSqUBaGTDd7sq5srg==", - "dev": true, - "requires": { - "debug": "^4.1.0", - "json-stringify-safe": "^5.0.1", - "lodash": "^4.17.21", - "propagate": "^2.0.0" - } - }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true - }, - "node-releases": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", - "dev": true - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "npm-run-all": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", - "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "chalk": "^2.4.1", - "cross-spawn": "^6.0.5", - "memorystream": "^0.3.1", - "minimatch": "^3.0.4", - "pidtree": "^0.3.0", - "read-pkg": "^3.0.0", - "shell-quote": "^1.6.1", - "string.prototype.padend": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", - "dev": true - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, - "object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - } - }, - "on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dev": true, - "requires": { - "ee-first": "1.1.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", - "dev": true - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "pidtree": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", - "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", - "dev": true - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "dev": true - }, - "pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", - "dev": true - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "plimit-lit": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/plimit-lit/-/plimit-lit-1.5.0.tgz", - "integrity": "sha512-Eb/MqCb1Iv/ok4m1FqIXqvUKPISufcjZ605hl3KM/n8GaX8zfhtgdLwZU3vKjuHGh2O9Rjog/bHTq8ofIShdng==", - "dev": true, - "requires": { - "queue-lit": "^1.5.0" - } - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, - "pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - } - }, - "propagate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz", - "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==", - "dev": true - }, - "proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dev": true, - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - } - }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dev": true, - "requires": { - "side-channel": "^1.0.4" - } - }, - "queue-lit": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/queue-lit/-/queue-lit-1.5.0.tgz", - "integrity": "sha512-IslToJ4eiCEE9xwMzq3viOO5nH8sUWUCwoElrhNMozzr9IIt2qqvB4I+uHu/zJTQVqc9R5DFwok4ijNK1pU3fA==", - "dev": true - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true - }, - "raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dev": true, - "requires": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", - "dev": true, - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - }, - "dependencies": { - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "^3.0.0" - } - } - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "reflect-metadata": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", - "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" - }, - "regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - } - }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true - }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" - }, - "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "requires": { - "resolve-from": "^5.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - } - } - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "resolve.exports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", - "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", - "dev": true - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "requires": { - "glob": "^7.1.3" - } - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "dev": true, - "requires": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - } - } - }, - "serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "dev": true, - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - } - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "shell-quote": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.4.tgz", - "integrity": "sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw==", - "dev": true - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "simple-git": { - "version": "3.16.0", - "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-3.16.0.tgz", - "integrity": "sha512-zuWYsOLEhbJRWVxpjdiXl6eyAyGo/KzVW+KFhhw9MqEEJttcq+32jTWSGyxTdf9e/YCohxRE+9xpWFj9FdiJNw==", - "requires": { - "@kwsites/file-exists": "^1.1.1", - "@kwsites/promise-deferred": "^1.1.1", - "debug": "^4.3.4" - } - }, - "sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz", - "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==", - "dev": true - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true - }, - "stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - } - } - }, - "statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true - }, - "string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, - "requires": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "string.prototype.padend": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.4.tgz", - "integrity": "sha512-67otBXoksdjsnXXRUq+KMVTdlVRZ2af422Y0aTyTjVaoQkGr3mxl2Bc5emi7dOQ3OGVVQQskmLEWwFXwommpNw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "string.prototype.trimend": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", - "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "string.prototype.trimstart": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", - "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "dev": true, - "requires": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, - "terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - } - }, - "test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "requires": { - "rimraf": "^3.0.0" - } - }, - "tmp-promise": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.3.tgz", - "integrity": "sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==", - "requires": { - "tmp": "^0.2.0" - } - }, - "tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true - }, - "totalist": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.0.tgz", - "integrity": "sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==", - "dev": true - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "ts-jest": { - "version": "28.0.5", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-28.0.5.tgz", - "integrity": "sha512-Sx9FyP9pCY7pUzQpy4FgRZf2bhHY3za576HMKJFs+OnQ9jS96Du5vNsDKkyedQkik+sEabbKAnCliv9BEsHZgQ==", - "dev": true, - "requires": { - "bs-logger": "0.x", - "fast-json-stable-stringify": "2.x", - "jest-util": "^28.0.0", - "json5": "^2.2.1", - "lodash.memoize": "4.x", - "make-error": "1.x", - "semver": "7.x", - "yargs-parser": "^21.0.1" - } - }, - "ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", - "dev": true, - "requires": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - } - }, - "tsc-alias": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/tsc-alias/-/tsc-alias-1.8.2.tgz", - "integrity": "sha512-ukBkcNekOgwtnSWYLD5QsMX3yQWg7JviAs8zg3qJGgu4LGtY3tsV4G6vnqvOXIDkbC+XL9vbhObWSpRA5/6wbg==", - "dev": true, - "requires": { - "chokidar": "^3.5.3", - "commander": "^9.0.0", - "globby": "^11.0.4", - "mylas": "^2.1.9", - "normalize-path": "^3.0.0", - "plimit-lit": "^1.2.6" - } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - }, - "tunnel": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", - "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==" - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typedi": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/typedi/-/typedi-0.10.0.tgz", - "integrity": "sha512-v3UJF8xm68BBj6AF4oQML3ikrfK2c9EmZUyLOfShpJuItAqVBHWP/KtpGinkSsIiP6EZyyb6Z3NXyW9dgS9X1w==" - }, - "typescript": { - "version": "4.7.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.3.tgz", - "integrity": "sha512-WOkT3XYvrpXx4vMMqlD+8R8R37fZkjyLGlxavMc4iB8lrl8L0DeTcHbYgw/v0N/z9wAFsgBhcsF0ruoySS22mA==", - "dev": true - }, - "unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - } - }, - "universal-user-agent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz", - "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==" - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "dev": true - }, - "update-browserslist-db": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz", - "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==", - "dev": true, - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "requires": { - "punycode": "^2.1.0" - } - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "dev": true - }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" - }, - "v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - }, - "v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true - }, - "v8-to-istanbul": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", - "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0" - } - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "dev": true - }, - "walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dev": true, - "requires": { - "makeerror": "1.0.12" - } - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, - "write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - } - }, - "xml": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", - "integrity": "sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==", - "dev": true - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "yaml": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.2.tgz", - "integrity": "sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==" - }, - "yargs": { - "version": "17.5.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", - "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" - } - }, - "yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true - }, - "yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true - } - } -} diff --git a/package.json b/package.json deleted file mode 100644 index 1cac1234..00000000 --- a/package.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "name": "@kie/build-chain-action", - "version": "3.5.6", - "description": "Library to execute commands based on github projects dependencies.", - "main": "dist/index.js", - "author": "", - "license": "ISC", - "private": false, - "bin": { - "build-chain": "./build/index.js" - }, - "scripts": { - "build": "run-p build:*", - "build:cli": "ncc build -o build --minify src/bin/entry-point/cli.ts", - "build:action": "ncc build -o dist --minify src/bin/entry-point/github-action.ts", - "dev:build": "tsc && tsc-alias", - "test": "jest unitary/", - "pretest:e2e": "ncc build -o dist-e2e --minify src/bin/entry-point/github-action.ts", - "test:e2e": "jest e2e/", - "posttest:e2e": "rm -rf dist-e2e", - "pretest:e2e-regression-action": "npm run pretest:e2e", - "test:e2e-regression-action": "jest --testTimeout=900000 e2e-regression/github-action/", - "posttest:e2e-regression-action": "rm -rf dist-e2e", - "test:e2e-regression-cli": "jest --testTimeout=900000 e2e-regression/cli/", - "test:e2e-regression": "run-p test:e2e-regression-*", - "test:report": "npm test -- --coverage --testResultsProcessor=jest-sonar-reporter", - "lint": "eslint . --ext .ts", - "lint:fix": "npm run lint -- --fix", - "prepare": "husky install" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/kiegroup/github-action-build-chain.git" - }, - "keywords": [], - "bugs": { - "url": "https://github.com/kiegroup/github-action-build-chain/issues" - }, - "homepage": "https://github.com/kiegroup/github-action-build-chain#readme", - "devDependencies": { - "@kie/act-js": "^2.0.6", - "@kie/mock-github": "^1.0.3", - "@types/fs-extra": "^9.0.13", - "@types/jest": "^28.1.1", - "@types/node": "^18.16.3", - "@typescript-eslint/eslint-plugin": "^5.27.1", - "@typescript-eslint/parser": "^5.27.1", - "@vercel/ncc": "^0.34.0", - "eslint": "^8.17.0", - "husky": "^8.0.1", - "jest": "^28.1.1", - "jest-sonar-reporter": "^2.0.0", - "nock": "^13.2.7", - "npm-run-all": "^4.1.5", - "ts-jest": "^28.0.4", - "ts-node": "^10.9.1", - "tsc-alias": "^1.8.2", - "typescript": "^4.7.3" - }, - "dependencies": { - "@actions/artifact": "^1.1.0", - "@actions/core": "^1.8.2", - "@actions/exec": "^1.1.1", - "@actions/glob": "^0.3.0", - "@kie/build-chain-configuration-reader": "^3.1.4", - "@octokit/plugin-throttling": "^5.0.1", - "@octokit/request-error": "^2.1.0", - "@octokit/rest": "^18.12.0", - "@octokit/types": "^6.39.0", - "axios": "^1.4.0", - "commander": "^9.3.0", - "fs-extra": "^10.1.0", - "http-proxy-agent": "^7.0.0", - "ms-typescript": "^2.0.0", - "reflect-metadata": "^0.1.13", - "simple-git": "^3.7.1", - "typedi": "^0.10.0" - }, - "engines": { - "node": ">= 14.19.3" - } -} diff --git a/src/bin/entry-point/cli.ts b/src/bin/entry-point/cli.ts deleted file mode 100644 index 43ea5c6f..00000000 --- a/src/bin/entry-point/cli.ts +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env node - -import { CLIRunner } from "@bc/bin/runners/cli-runner"; - -new CLIRunner().execute(); \ No newline at end of file diff --git a/src/bin/entry-point/github-action.ts b/src/bin/entry-point/github-action.ts deleted file mode 100644 index 7ad246ba..00000000 --- a/src/bin/entry-point/github-action.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { GithubActionRunner } from "@bc/bin/runners/github-action-runner"; - -new GithubActionRunner().execute(); \ No newline at end of file diff --git a/src/bin/runners/cli-runner.ts b/src/bin/runners/cli-runner.ts deleted file mode 100644 index 7317d75f..00000000 --- a/src/bin/runners/cli-runner.ts +++ /dev/null @@ -1,77 +0,0 @@ -import "reflect-metadata"; -import { Runner } from "@bc/bin/runners/runner"; -import { EntryPoint } from "@bc/domain/entry-point"; -import Container from "typedi"; -import { CLIArguments } from "@bc/service/arguments/cli/cli-arguments"; -import { ToolService } from "@bc/service/tools/tools-service"; -import { DEFAULT_STATE_FILENAME, ResumeState } from "@bc/domain/resume"; -import { ConfigurationService } from "@bc/service/config/configuration-service"; -import { FlowService } from "@bc/service/flow/flow-service"; -import { CheckoutService } from "@bc/service/checkout/checkout-service"; -import { writeFileSync } from "fs-extra"; -import path from "path"; - -export class CLIRunner extends Runner { - constructor() { - super(EntryPoint.CLI); - } - - async execute(): Promise { - try { - // parse arguments - const args = Container.get(CLIArguments); - args.getCommand().parse(); - - // initialize configuration - const configService = await this.initConfiguration(); - - if (configService.isToolsCommand()) { - return await this.executeTools(); - } else { - // handle signals only once configuration has been initialized. without it saving the state won't mean anything - // handling exit will automatically run save state when executeBuild finishes - ["exit", "SIGINT", "SIGQUIT", "SIGTERM"].forEach( e => process.on(e, this.saveState)); - return await this.executeBuild(); - } - } catch (err) { - await this.safeAsyncExit(1); - } - } - - private async executeBuild(): Promise { - // execute pre section - const preResult = await this.executePre(); - if (preResult.isFailure) { - this.printExecutionFailure(preResult.output); - return this.safeAsyncExit(1); - } - - // execute flow: checkout node chain -> execute commands for each phase -> upload artifacts - const flowResult = await this.executeFlow(); - - // execute post section - const postResult = await this.executePost(flowResult.isFailure); - - let exitCode = 0; - if (flowResult.isFailure || postResult.isFailure) { - this.printNodeExecutionFailure(flowResult.output.executionResult); - this.printExecutionFailure(postResult.output); - exitCode = 1; - } - return this.safeAsyncExit(exitCode); - } - - private async executeTools() { - return Container.get(ToolService).execute(); - } - - private saveState() { - const configService = Container.get(ConfigurationService); - const state: ResumeState = { - configurationService: Container.get(ConfigurationService).toJSON(), - flowService: Container.get(FlowService).toJSON(), - checkoutService: Container.get(CheckoutService).toJSON() - }; - writeFileSync(path.join(configService.getRootFolder(), DEFAULT_STATE_FILENAME), JSON.stringify(state)); - } -} diff --git a/src/bin/runners/github-action-runner.ts b/src/bin/runners/github-action-runner.ts deleted file mode 100644 index 442068cc..00000000 --- a/src/bin/runners/github-action-runner.ts +++ /dev/null @@ -1,57 +0,0 @@ -import "reflect-metadata"; -import { Runner } from "@bc/bin/runners/runner"; -import { EntryPoint } from "@bc/domain/entry-point"; -import Container from "typedi"; -import { JobSummaryService } from "@bc/service/job-summary/job-summary-service"; -import { defaultFlowResult } from "@bc/domain/flow"; -import { ActionArguments } from "@bc/service/arguments/action/action-arguments"; - -export class GithubActionRunner extends Runner { - constructor() { - super(EntryPoint.GITHUB_EVENT); - } - - async execute(): Promise { - try { - // parse arguments - const args = Container.get(ActionArguments); - args.parse(); - - // initialize configuration - await this.initConfiguration(); - - const jobSummaryService = Container.get(JobSummaryService); - - // execute pre section - const preResult = await this.executePre(); - if (preResult.isFailure) { - // io task is involved so start it as a promise and wait for it when actually needed - const promise = jobSummaryService.generateSummary(defaultFlowResult, preResult.output, []); - this.printExecutionFailure(preResult.output); - await promise; - return await this.safeAsyncExit(1); - } - - // execute flow: checkout node chain -> execute commands for each phase -> upload artifacts - const flowResult = await this.executeFlow(); - - // execute post section - const postResult = await this.executePost(flowResult.isFailure); - - // post a job summary - // io task is involved so start it as a promise and wait for it when actually needed - const promise = jobSummaryService.generateSummary(flowResult.output, preResult.output, postResult.output); - let exitCode = 0; - if (flowResult.isFailure || postResult.isFailure) { - this.printNodeExecutionFailure(flowResult.output.executionResult); - this.printExecutionFailure(postResult.output); - exitCode = 1; - } - await promise; - - return await this.safeAsyncExit(exitCode); - } catch (err) { - await this.safeAsyncExit(1); - } - } -} diff --git a/src/bin/runners/runner.ts b/src/bin/runners/runner.ts deleted file mode 100644 index ca33277e..00000000 --- a/src/bin/runners/runner.ts +++ /dev/null @@ -1,127 +0,0 @@ -import Container from "typedi"; -import { EntryPoint } from "@bc/domain/entry-point"; -import { constants } from "@bc/domain/constants"; -import { ConfigurationService } from "@bc/service/config/configuration-service"; -import { PreExecutor } from "@bc/service/pre-post/pre"; -import { FlowService } from "@bc/service/flow/flow-service"; -import { PostExecutor } from "@bc/service/pre-post/post"; -import { ExecuteCommandResult, ExecutionResult } from "@bc/domain/execute-command-result"; -import { ExecuteNodeResult } from "@bc/domain/execute-node-result"; -import { UploadResponse } from "@actions/artifact"; -import { FlowResult } from "@bc/domain/flow"; -import { LoggerService } from "@bc/service/logger/logger-service"; -import { BaseLoggerService } from "@bc/service/logger/base-logger-service"; - -export abstract class Runner { - private logger: BaseLoggerService; - - constructor(entryPoint: EntryPoint) { - Container.set(constants.CONTAINER.ENTRY_POINT, entryPoint); - this.logger = Container.get(LoggerService).logger; - } - - abstract execute(): Promise; - - protected async initConfiguration(): Promise { - const configService = Container.get(ConfigurationService); - await configService.init(); - return configService; - } - - protected async executePre(): Promise<{ isFailure: boolean; output: ExecuteCommandResult[] }> { - const preService = Container.get(PreExecutor); - const preResult = await preService.run(); - return { isFailure: this.commandExecutionFailure(preResult), output: preResult }; - } - - protected async executeFlow(): Promise<{ isFailure: boolean; output: FlowResult }> { - const flowService = Container.get(FlowService); - const flowResult = await flowService.run(); - let isFailure = this.archiveArtifactsFailure(flowResult.artifactUploadResults); - flowResult.executionResult.forEach(res => { - isFailure ||= this.nodeExecutionFailure(res); - }); - return { - isFailure, - output: flowResult, - }; - } - - protected async executePost(flowExecutionResult: boolean): Promise<{ isFailure: boolean; output: ExecuteCommandResult[] }> { - Container.set("post.executionSuccess", flowExecutionResult); - const postService = Container.get(PostExecutor); - const postResult = await postService.run(); - return { isFailure: this.commandExecutionFailure(postResult), output: postResult }; - } - - /** - * Prints the failed commands in the following format - * [Error] Failed to execute cmd1 : - * [Error] This is a multiline error msg - * [Error] broken down line wise - * @param result - */ - protected printExecutionFailure(result: ExecuteCommandResult[]) { - result.forEach(res => { - if (res.result === ExecutionResult.NOT_OK) { - this.logger.error(`Failed to execute ${res.command} :`); - res.errorMessage.split("\n").forEach(msg => this.logger.error(msg)); - } - }); - } - - /** - * Prints the failed commands for the node chain in the following format - * [Error] Failed to execute commands for owner1/project1 - * [Error] Failed to execute cmd1 : - * [Error] This is a multiline error msg - * [Error] broken down line wise - * @param result - */ - protected printNodeExecutionFailure(chainResult: ExecuteNodeResult[][]) { - chainResult.forEach(nodeResult => - nodeResult - .filter(result => - this.commandExecutionFailure(result.executeCommandResults) - ) - .forEach(result => { - this.logger.error(`Failed to execute commands for ${result.node.project}`); - this.printExecutionFailure(result.executeCommandResults); - }) - ); - } - - protected async safeAsyncExit(exitCode: number): Promise { - if (process.stdout.writableNeedDrain) { - // wait for stdout to flush - await new Promise((resolve, _reject) => { - process.stdout.once("drain", () => { - resolve(); - }); - }); - } - return process.exit(exitCode); - } - - private archiveArtifactsFailure(result: PromiseSettledResult[]) { - return !!result.find(res => res.status === "rejected"); - } - - /** - * Return true if there are no nodes' with a failed commands execution - * @param result - * @returns - */ - private nodeExecutionFailure(result: ExecuteNodeResult[]) { - return result.reduce((prev, curr) => prev || this.commandExecutionFailure(curr.executeCommandResults), false); - } - - /** - * Return true if there is command whose execution failed - * @param result - * @returns - */ - private commandExecutionFailure(result: ExecuteCommandResult[]) { - return !!result.find(res => res.result === ExecutionResult.NOT_OK); - } -} diff --git a/src/domain/base-git-api-client.ts b/src/domain/base-git-api-client.ts deleted file mode 100644 index 8b752421..00000000 --- a/src/domain/base-git-api-client.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { EventData } from "@bc/domain/configuration"; - -export type Response = { - status: number; - data: T; -}; - -export type Repo = { - getBranch: { - parameters: { - owner: string; - repo: string; - branch: string; - }; - response: Response; - }; - get: { - parameters: { - owner: string; - repo: string; - }; - response: Response; - }; - listForkName: { - parameters: { - owner: string; - repo: string; - per_page?: number; // using snake_case to maintain consitency with octokit - page?: number; - }; - response: Response<{ owner: string; repo: string }[]>; - }; - getForkNameForTargetRepoGivenSourceOwner: { - parameters: { - targetOwner: string; - targetRepo: string; - sourceOwner: string; - per_page?: number; - }; - response: Response; - }; -}; - -export type Pulls = { - list: { - parameters: { - owner: string; - repo: string; - state?: "opened" | "closed" | "merged"; - base?: string; - head?: string; - }; - response: Response; - }; - get: { - parameters: { - owner: string; - repo: string; - pull_number: number; - }; - response: Response; - }; -}; diff --git a/src/domain/checkout.ts b/src/domain/checkout.ts deleted file mode 100644 index e25eded3..00000000 --- a/src/domain/checkout.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { Node } from "@kie/build-chain-configuration-reader"; - -export type CheckoutInfo = { - sourceName: string; - sourceGroup: string; - sourceBranch: string; - targetName: string; - targetGroup: string; - targetBranch: string; - repoDir: string; - merge: boolean; -}; - -export type CheckedOutNode = { - node: Node; - checkoutInfo?: CheckoutInfo, - branchHead?: string -} - -export interface SerializedCheckoutNode { - node: Node; - checkoutInfo: CheckoutInfo, - checkedOut: boolean -} - -export type SerializedCheckoutService = SerializedCheckoutNode[] diff --git a/src/domain/cli.ts b/src/domain/cli.ts deleted file mode 100644 index 441a0ee2..00000000 --- a/src/domain/cli.ts +++ /dev/null @@ -1,12 +0,0 @@ -/** Defines all the types of command line actions */ -export enum CLIActionType { - BUILD = "build", - TOOLS = "tools", -} - -/** Defines all the types of tools available */ -export enum ToolType { - PROJECT_LIST = "project-list", - PLAN = "plan", - RESUME = "resume" -} diff --git a/src/domain/configuration.ts b/src/domain/configuration.ts deleted file mode 100644 index 761cb2c0..00000000 --- a/src/domain/configuration.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { InputValues } from "@bc/domain/inputs"; -import { DefinitionFile, Node, PlatformType } from "@kie/build-chain-configuration-reader"; - -export type GitConfiguration = { - serverUrl?: string; - serverUrlWithToken?: string; - action?: string; - actor?: string; - author?: string; - jobId?: string; - ref?: string; - workflow?: string; - repository?: string; -}; - -export type ProjectConfiguration = { - repository?: string; - name?: string; - group?: string; - branch?: string; -}; - -export type EventData = { - html_url: string, - head: { - user: { - login: string - }, - ref: string, - repo?: { - full_name?: string, - name?: string, - owner?: { - login?: string - } - } - }, - base: { - ref: string, - repo: { - full_name: string, - name: string, - owner: { - login: string - } - } - } -} | Record; - -export interface SerializedConfiguration { - _gitEventData: EventData; - _gitConfiguration: GitConfiguration; - _sourceProject: ProjectConfiguration; - _targetProject: ProjectConfiguration; - _parsedInputs: InputValues; - _defaultPlatform: PlatformType; -} - -export interface SerializedConfigurationService { - configuration: SerializedConfiguration, - _nodeChain: Node[], - _definitionFile: DefinitionFile -} \ No newline at end of file diff --git a/src/domain/constants.ts b/src/domain/constants.ts deleted file mode 100644 index e8258420..00000000 --- a/src/domain/constants.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { EntryPoint } from "@bc/domain/entry-point"; -import { Token } from "typedi"; - -export const constants = { - CONTAINER: { - ENTRY_POINT: new Token("entry-point"), - }, -}; diff --git a/src/domain/entry-point.ts b/src/domain/entry-point.ts deleted file mode 100644 index 2be4f048..00000000 --- a/src/domain/entry-point.ts +++ /dev/null @@ -1,4 +0,0 @@ -export enum EntryPoint { - CLI, - GITHUB_EVENT, -} diff --git a/src/domain/errors.ts b/src/domain/errors.ts deleted file mode 100644 index c20381e5..00000000 --- a/src/domain/errors.ts +++ /dev/null @@ -1,2 +0,0 @@ -export class NotFoundError extends Error {} -export class InvalidInput extends Error {} diff --git a/src/domain/execute-command-result.ts b/src/domain/execute-command-result.ts deleted file mode 100644 index db522927..00000000 --- a/src/domain/execute-command-result.ts +++ /dev/null @@ -1,14 +0,0 @@ -export interface ExecuteCommandResult { - startingDate: number; - endingDate: number; - time: number; - result: ExecutionResult; - errorMessage: string; - command: string; -} - -export enum ExecutionResult { - OK = "OK", - NOT_OK = "NOT OK", - SKIP = "SKIP", -} diff --git a/src/domain/execute-node-result.ts b/src/domain/execute-node-result.ts deleted file mode 100644 index 079cc5a0..00000000 --- a/src/domain/execute-node-result.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { ExecuteCommandResult } from "@bc/domain/execute-command-result"; -import { Node } from "@kie/build-chain-configuration-reader"; - -export interface ExecuteNodeResult { - node: Node; - executeCommandResults: ExecuteCommandResult[]; -} diff --git a/src/domain/execution-phase.ts b/src/domain/execution-phase.ts deleted file mode 100644 index bdb10b4a..00000000 --- a/src/domain/execution-phase.ts +++ /dev/null @@ -1,5 +0,0 @@ -export enum ExecutionPhase { - BEFORE = "before", - CURRENT = "commands", - AFTER = "after", -} diff --git a/src/domain/flow.ts b/src/domain/flow.ts deleted file mode 100644 index 17401da1..00000000 --- a/src/domain/flow.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { UploadResponse } from "@actions/artifact"; -import { CheckedOutNode } from "@bc/domain/checkout"; -import { ExecuteNodeResult } from "@bc/domain/execute-node-result"; - -export type FlowResult = { - checkoutInfo: CheckedOutNode[]; - artifactUploadResults: PromiseSettledResult[]; - executionResult: ExecuteNodeResult[][] -} - -export const defaultFlowResult: FlowResult = { - checkoutInfo: [], - artifactUploadResults: [], - executionResult: [[], [], []] -}; - -export type SerializedFlowService = { - executionResult: ExecuteNodeResult[][], - resumeFrom: number, -} - -export const defaultSerializedFlowService: SerializedFlowService = { - executionResult: [], - resumeFrom: -1 -}; \ No newline at end of file diff --git a/src/domain/github-api-client.ts b/src/domain/github-api-client.ts deleted file mode 100644 index 8f670344..00000000 --- a/src/domain/github-api-client.ts +++ /dev/null @@ -1,26 +0,0 @@ -import * as OctokitTypes from "@octokit/types"; - -export type AnyResponse = OctokitTypes.OctokitResponse; -export type StrategyInterface = OctokitTypes.StrategyInterface< - [Token], - [], - Authentication ->; -export type EndpointDefaults = OctokitTypes.EndpointDefaults; -export type EndpointOptions = OctokitTypes.EndpointOptions; -export type RequestParameters = OctokitTypes.RequestParameters; -export type RequestInterface = OctokitTypes.RequestInterface; -export type Route = OctokitTypes.Route; - -export type Token = string; - -export type Authentication = { - type: "token"; - tokenType: "oauth"; - token: Token; -}; - -export type ThrottleOptions = { - method: string; - url: string; -} \ No newline at end of file diff --git a/src/domain/inputs.ts b/src/domain/inputs.ts deleted file mode 100644 index 8deb3aaf..00000000 --- a/src/domain/inputs.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { CLIActionType, ToolType } from "@bc/domain/cli"; -import { OptionValues } from "commander"; - -/** Defines all the types of build flows */ -export enum FlowType { - CROSS_PULL_REQUEST = "cross_pr", - FULL_DOWNSTREAM = "full_downstream", - SINGLE_PULL_REQUEST = "single_pr", - BRANCH = "branch", -} - -/** - * Defines the available level of logs - */ -export enum LoggerLevel { - INFO, - TRACE, - DEBUG, -} - -/** - * Defines all parsed input values for cli and github action - */ -export interface InputValues extends OptionValues { - definitionFile: string; - outputFolder?: string; - flowType?: FlowType; - CLICommand?: CLIActionType; - CLISubCommand?: FlowType | ToolType; - enableParallelExecution: boolean; - skipExecution: boolean; - skipParallelCheckout: boolean; - skipCheckout: boolean; - skipProjectCheckout?: string[]; - skipProjectExecution?: string[]; - startProject?: string; - loggerLevel: LoggerLevel; - annotationsPrefix?: string; - customCommandTreatment?: string[]; - token?: string[]; - url?: string; - branch?: string; - group?: string; - failAtEnd?: boolean; - recheckout?: string[] -} - -/** - * Default value used for initialization - */ -export const defaultInputValues: Readonly = { - definitionFile: "", - skipExecution: false, - skipCheckout: false, - skipParallelCheckout: false, - enableParallelExecution: false, - loggerLevel: LoggerLevel.INFO, -}; diff --git a/src/domain/node-execution.ts b/src/domain/node-execution.ts deleted file mode 100644 index 764c2676..00000000 --- a/src/domain/node-execution.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Node } from "@kie/build-chain-configuration-reader"; - -export enum NodeExecutionLevel { - UPSTREAM = "upstream", - CURRENT = "current", - DOWNSTREAM = "downstream", -} - -export type NodeExecution = { - node: Node, - cwd?: string -} \ No newline at end of file diff --git a/src/domain/node.ts b/src/domain/node.ts deleted file mode 100644 index bff257b4..00000000 --- a/src/domain/node.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { Node } from "@kie/build-chain-configuration-reader"; - -export const defaultNodeValue: Readonly = { - project: "", - parents: [], - children: [], - depth: -1 -}; diff --git a/src/domain/resume.ts b/src/domain/resume.ts deleted file mode 100644 index 84500bda..00000000 --- a/src/domain/resume.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { SerializedCheckoutService } from "@bc/domain/checkout"; -import { SerializedConfigurationService } from "@bc/domain/configuration"; -import { SerializedFlowService } from "@bc/domain/flow"; - -export interface ResumeState { - configurationService: SerializedConfigurationService - checkoutService: SerializedCheckoutService - flowService: SerializedFlowService -} - -export const DEFAULT_STATE_FILENAME = ".state.build-chain.json"; \ No newline at end of file diff --git a/src/domain/serializable.ts b/src/domain/serializable.ts deleted file mode 100644 index 6ee97bbc..00000000 --- a/src/domain/serializable.ts +++ /dev/null @@ -1,4 +0,0 @@ -export interface Serializable { - toJSON(): SerializedType - fromJSON(json: SerializedType): DeserializedType -} \ No newline at end of file diff --git a/src/domain/treatment-options.ts b/src/domain/treatment-options.ts deleted file mode 100644 index 04d5684a..00000000 --- a/src/domain/treatment-options.ts +++ /dev/null @@ -1,4 +0,0 @@ -export interface TreatmentOptions { - replaceExpressions?: string[]; - mavenBinary?: string; -} diff --git a/src/service/arguments/action/action-arguments.ts b/src/service/arguments/action/action-arguments.ts deleted file mode 100644 index d2c96ec3..00000000 --- a/src/service/arguments/action/action-arguments.ts +++ /dev/null @@ -1,118 +0,0 @@ -import { FlowType, InputValues, LoggerLevel } from "@bc/domain/inputs"; -import * as core from "@actions/core"; -import { OptionValues } from "commander"; -import Container, { Service } from "typedi"; -import { InputService } from "@bc/service/inputs/input-service"; -import { InvalidInput } from "@bc/domain/errors"; - -/** - * Parses all inputs from github action workflow files - */ -@Service() -export class ActionArguments { - /** - * Converts user input to corresponding FlowType enum - * @param flowType value for "flow-type" input - * @returns corresponding enum - */ - private getFlowType(flowType: string): FlowType { - if (Object.values(FlowType).includes(flowType as FlowType)) { - return flowType as FlowType; - } else { - // deprecated flowtype. Keep until full compatibility is reached with existing ci - switch (flowType) { - case "pull-request": - return FlowType.CROSS_PULL_REQUEST; - case "full-downstream": - return FlowType.FULL_DOWNSTREAM; - case "single": - return FlowType.SINGLE_PULL_REQUEST; - case "branch": - return FlowType.BRANCH; - } - throw new InvalidInput("Invalid flow-type"); - } - } - - /** - * Converts user input to corresponding LoggerLevel enum - * @param logLevel value for "logger-level" input - * @returns corresponding enum - */ - private getLoggerLevel(logLevel: string): LoggerLevel { - switch (logLevel) { - case "info": - case "": - return LoggerLevel.INFO; - case "debug": - return LoggerLevel.DEBUG; - case "trace": - return LoggerLevel.TRACE; - default: - throw new InvalidInput("Invalid logger-level"); - } - } - - /** - * Gets and sets the any additional flags defined in the workflow - * @param additionaFlags "additional flags for the execution, as it is done on the CLI side. Just semicolon (;) separated, like '--skipParallelCheckout;--skipExecution;-cct (mvn .*)||$1 -s settings.xml'" - * @returns parsed option values - */ - private getAdditionalFlags(additionaFlags: string): OptionValues { - if (additionaFlags === "") { - return {}; - } - const flags: OptionValues = {}; - additionaFlags - .trim() - .split(";") - .forEach(flag => { - const opt: string[] = flag.trim().split(" "); - if (opt[0].startsWith("--")) { - opt[0] = opt[0].substring(2); - } else if (opt[0].startsWith("-")) { - opt[0] = opt[0].substring(1); - } - if (opt.length === 1) { - // its a boolean flag - flags[opt[0]] = true; - } else { - flags[opt[0]] = opt.slice(1).join(" "); - } - }); - return flags; - } - - private getStringInput(key: string) { - const input = core.getInput(key); - return input === "" ? undefined : input; - } - - private getArrayInput(key: string) { - const input = this.getStringInput(key); - return input?.split(",").map(str => str.trim()); - } - - /** - * Gets the actual input from github action event and sets it in parsed input object - */ - parse() { - const input: InputValues = { - definitionFile: core.getInput("definition-file"), - flowType: this.getFlowType(core.getInput("flow-type")), - skipExecution: core.getBooleanInput("skip-execution"), - skipParallelCheckout: core.getBooleanInput("skip-parallel-checkout"), - skipProjectCheckout: this.getArrayInput("skip-project-checkout"), - skipProjectExecution: this.getArrayInput("skip-project-execution"), - enableParallelExecution: core.getBooleanInput("enable-parallel-execution"), - skipCheckout: core.getBooleanInput("skip-checkout"), - startProject: this.getStringInput("starting-project"), - loggerLevel: this.getLoggerLevel(core.getInput("logger-level")), - annotationsPrefix: this.getStringInput("annotations-prefix"), - customCommandTreatment: this.getArrayInput("custom-command-treatment"), - ...this.getAdditionalFlags(core.getInput("additional-flags")), - }; - - Container.get(InputService).updateInputs(input); - } -} diff --git a/src/service/arguments/cli/build/abstract-pr-command.ts b/src/service/arguments/cli/build/abstract-pr-command.ts deleted file mode 100644 index e3bc56a6..00000000 --- a/src/service/arguments/cli/build/abstract-pr-command.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { CLIActionType } from "@bc/domain/cli"; -import { FlowType } from "@bc/domain/inputs"; -import { CommandConstructor } from "@bc/service/arguments/cli/command-constructor"; -import { Command } from "commander"; - -export abstract class AbstractPullRequestCommand implements CommandConstructor { - private readonly description: string; - private readonly type: FlowType; - private readonly alias: string; - - constructor(description: string, type: FlowType, alias: string) { - this.description = description; - this.type = type; - this.alias = alias; - } - - createCommand(): Command { - return new Command(this.type) - .alias(this.alias) // adding deprecated alias for backward compatibility. Keep until full compatibility is reached with existing ci - .description(this.description) - .requiredOption("-u, --url ", "pull request event url") - .option("-p, --startProject ", "The project to start the build from"); - } -} diff --git a/src/service/arguments/cli/build/branch-command.ts b/src/service/arguments/cli/build/branch-command.ts deleted file mode 100644 index cc1015da..00000000 --- a/src/service/arguments/cli/build/branch-command.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { Command } from "commander"; -import { CommandConstructor } from "@bc/service/arguments/cli/command-constructor"; -import { FlowType } from "@bc/domain/inputs"; - -/** - * Create branch flow sub-subcommand for build subcommand - * @implements {CommandConstructor} - */ -export class BranchCommand implements CommandConstructor { - createCommand(): Command { - const program = new Command(FlowType.BRANCH); - program - .description("Execute branch build chain workflow") - .requiredOption("-p, --startProject ", "The project to start the build from") - .requiredOption("-b, --branch ", "The branch to get the project from") - .option("--fullProjectDependencyTree", "Checks out and execute the whole tree instead of the upstream build", false) - .option("-c, --command ", "The command(s) to execute for every project. This will override definition file configuration (just dependency tree will be taken into account)") - .option("-g, --group ", "The group to execute flow. It will take it from project argument in case it's not specified"); - - return program; - } -} diff --git a/src/service/arguments/cli/build/build-subcommand-factory.ts b/src/service/arguments/cli/build/build-subcommand-factory.ts deleted file mode 100644 index 8336a5ea..00000000 --- a/src/service/arguments/cli/build/build-subcommand-factory.ts +++ /dev/null @@ -1,83 +0,0 @@ -import { CLIActionType, ToolType } from "@bc/domain/cli"; -import { Command } from "commander"; -import { CommandConstructor } from "@bc/service/arguments/cli/command-constructor"; -import { BranchCommand } from "@bc/service/arguments/cli/build/branch-command"; -import { CrossPullRequestCommand } from "@bc/service/arguments/cli/build/cross-pr-command"; -import { FullDownstreamCommand } from "@bc/service/arguments/cli/build/fd-command"; -import { SinglePullRequestCommand } from "@bc/service/arguments/cli/build/single-pr-command"; -import { formatDate } from "@bc/utils/date"; -import { InputService } from "@bc/service/inputs/input-service"; -import Container from "typedi"; -import { FlowType, LoggerLevel } from "@bc/domain/inputs"; -import { ResumeCommand } from "@bc/service/arguments/cli/build/resume"; - -/** - * A factory to construct command line parsers for all the different kind of build flows - */ -export class BuildSubCommandFactory { - /** - * Constructs the argument parser for a command line utility - * @param buildType Type of command for which the parser has to be constructed - * @returns {Command} Returns command parser object or throws an error if the cmd is not defined - */ - static getCommand(buildType: FlowType | ToolType.RESUME): Command { - let commandFactory: CommandConstructor; - switch (buildType) { - case FlowType.CROSS_PULL_REQUEST: - commandFactory = new CrossPullRequestCommand(); - break; - case FlowType.SINGLE_PULL_REQUEST: - commandFactory = new SinglePullRequestCommand(); - break; - case FlowType.FULL_DOWNSTREAM: - commandFactory = new FullDownstreamCommand(); - break; - case FlowType.BRANCH: - commandFactory = new BranchCommand(); - break; - case ToolType.RESUME: - return new ResumeCommand().createCommand(); - default: - throw new Error(`No command constructor specified for ${buildType}`); - } - - return commandFactory - .createCommand() - .requiredOption("-f, --definitionFile ", "The definition file, either a path to the filesystem or a URL to it") - .option("-o, --outputFolder ", "The folder path to store projects. Default is of the format 'build_chain_yyyymmddHHMMss'", `build_chain_${formatDate(new Date())}`) - .option("--token ", "The GITHUB_TOKEN. It can be set as an environment variable instead") - .option("-d, --debug", "Set debugging mode to true", false) - .option("--skipExecution", "A flag to skip execution and artifacts archiving for all projects. Overrides skipProjectExecution", false) - .option("--skipProjectExecution ", "A flag to skip execution and artifacts archiving for certain projects only") - .option("--skipParallelCheckout", "Checkout the project sequentially", false) - .option("--enableParallelExecution", "Parallely execute projects", false) - .option("-t, --customCommandTreatment ", "Each exp must be of the form . Regex defines the regular expression for what you want to replace with the ReplacementEx") - .option("--skipProjectCheckout ", "A list of projects to skip checkout.") - .option("--skipCheckout", "skip checkout for all projects. Overrides skipProjectCheckout", false) - .option("-fae, --fail-at-end", "Only fail the build afterwards; allow all non-impacted builds to continue", false) - .option("-ghi, --defaultGithubId ", "default github id") - .option("-ghti, --defaultGithubTokenId ", "default github token id used to get token from env") - .option("-gha, --defaultGithubApiUrl ", "default github api url to use") - .option("-ghs, --defaultGithubServeUrl ", "default github server url to use") - .option("-gli, --defaultGitlabId ", "default gitlab id") - .option("-glti, --defaultGitlabTokenId ", "default gitlab token id used to get token from env") - .option("-gla, --defaultGitlabApiUrl ", "default gitlab api url to use") - .option("-gls, --defaultGitlabServeUrl ", "default gitlab server url to use") - .action((options) => { - const parsedInputs = Container.get(InputService); - if (options.debug) options.loggerLevel = LoggerLevel.DEBUG; - delete options.debug; - parsedInputs.updateInputs({ ...options, CLICommand: CLIActionType.BUILD, CLISubCommand: buildType }); - }); - } - - /** - * Constructs the parsers for all the commands available - * @returns {Command[]} Array of objects of command line parsers - */ - static getAllCommands(): Command[] { - const cmd = Object.keys(FlowType).map((buildType) => this.getCommand(FlowType[buildType as keyof typeof FlowType])); - cmd.push(this.getCommand(ToolType.RESUME)) - return cmd - } -} diff --git a/src/service/arguments/cli/build/cross-pr-command.ts b/src/service/arguments/cli/build/cross-pr-command.ts deleted file mode 100644 index f26af1aa..00000000 --- a/src/service/arguments/cli/build/cross-pr-command.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { FlowType } from "@bc/domain/inputs"; -import { AbstractPullRequestCommand } from "@bc/service/arguments/cli/build/abstract-pr-command"; - -/** - * Create cross pull request flow sub-subcommand for build subcommand - * @implements {CommandConstructor} - */ -export class CrossPullRequestCommand extends AbstractPullRequestCommand { - constructor() { - const description: string = "Execute cross pull request build chain workflow"; - const type: FlowType = FlowType.CROSS_PULL_REQUEST; - super(description, type, "pr"); - } -} diff --git a/src/service/arguments/cli/build/fd-command.ts b/src/service/arguments/cli/build/fd-command.ts deleted file mode 100644 index 98fd94e2..00000000 --- a/src/service/arguments/cli/build/fd-command.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { FlowType } from "@bc/domain/inputs"; -import { AbstractPullRequestCommand } from "@bc/service/arguments/cli/build/abstract-pr-command"; - -/** - * Create full downstream flow sub-subcommand for build subcommand - * @implements {CommandConstructor} - */ -export class FullDownstreamCommand extends AbstractPullRequestCommand { - constructor() { - const description: string = "Execute full downstream build chain workflow"; - const type: FlowType = FlowType.FULL_DOWNSTREAM; - super(description, type, "fd"); - } -} diff --git a/src/service/arguments/cli/build/resume.ts b/src/service/arguments/cli/build/resume.ts deleted file mode 100644 index f8268260..00000000 --- a/src/service/arguments/cli/build/resume.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { Command } from "commander"; -import { CommandConstructor } from "@bc/service/arguments/cli/command-constructor"; -import { CLIActionType, ToolType } from "@bc/domain/cli"; -import Container from "typedi"; -import { InputService } from "@bc/service/inputs/input-service"; -import { LoggerLevel } from "@bc/domain/inputs"; - -/** - * Create command parser for resume - * - * Note that we are setting resume as a tool type command in the parsedInputs even though we are defining - * it with the build subcommand. This is because we want run `build-chain build resume` as it is more - * intuitive than `build-chain build resume`. However internally we still need it to act as a tool because - * it doesn't follow the usual build process. Hence we set resume as a tools command as part of the parsed inputs - * internally. - * - * @implements {CommandConstructor} - */ -export class ResumeCommand implements CommandConstructor { - createCommand(): Command { - const program = new Command(ToolType.RESUME); - program - .description("Resume execution from first point of failure in the previous execution") - .option("-w, --workspace ", "The workspace in which build chain was executed and the one to resume execution in") - .option("-t, --token ", "The GITHUB_TOKEN. It can be set as an environment variable instead") - .option("-d, --debug", "Set debugging mode to true", false) - .option("-p, --startProject ", "Start from the given project instead of the first point of failure", false) - .option("-c, --recheckout ", "List of projects to re-checkout and re-build", false) - .action(options => { - const parsedInputs = Container.get(InputService); - if (options.debug) { - options.loggerLevel = LoggerLevel.DEBUG; - } - delete options.debug; - parsedInputs.updateInputs({ - ...options, - CLICommand: CLIActionType.TOOLS, - CLISubCommand: ToolType.RESUME, - outputFolder: options.workspace - }); - }) - return program; - } -} diff --git a/src/service/arguments/cli/build/single-pr-command.ts b/src/service/arguments/cli/build/single-pr-command.ts deleted file mode 100644 index acbcd443..00000000 --- a/src/service/arguments/cli/build/single-pr-command.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { FlowType } from "@bc/domain/inputs"; -import { AbstractPullRequestCommand } from "@bc/service/arguments/cli/build/abstract-pr-command"; - -/** - * Create single pull request flow sub-subcommand for build subcommand - * @implements {CommandConstructor} - */ -export class SinglePullRequestCommand extends AbstractPullRequestCommand { - constructor() { - const description: string = "Execute single pull request build chain workflow"; - const type: FlowType = FlowType.SINGLE_PULL_REQUEST; - super(description, type, "single"); - } -} diff --git a/src/service/arguments/cli/cli-arguments.ts b/src/service/arguments/cli/cli-arguments.ts deleted file mode 100644 index 10b7f503..00000000 --- a/src/service/arguments/cli/cli-arguments.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { CLIActionType } from "@bc/domain/cli"; -import { BuildSubCommandFactory } from "@bc/service/arguments/cli/build/build-subcommand-factory"; -import { ToolSubCommandFactory } from "@bc/service/arguments/cli/tools/tool-subcommand-factory"; -import { Command } from "commander"; -import { Service } from "typedi"; - -/** - * Constructs and compiles all the subcommands together to produce the main cli parser - */ -@Service() -export class CLIArguments { - /** - * Constructs the argument parser for the main command line utility - * @param options [OPTIONAL] configure the parser to not throw errors or write output. Useful for testing - * @returns {Command} Returns command parser object - */ - getCommand(options?: { exitOverride?: boolean; suppressOutput?: boolean }): Command { - const program = new Command(); - - program.name("build-chain").description("A CLI tool to perform the build chain github actions"); - - const buildSubProgram = new Command(CLIActionType.BUILD).description("Execute different flows"); - const toolSubProgram = new Command(CLIActionType.TOOLS).description("A bunch of utility tools"); - - BuildSubCommandFactory.getAllCommands().forEach(cmd => buildSubProgram.addCommand(this.setConfig(cmd, options))); - ToolSubCommandFactory.getAllCommands().forEach(cmd => toolSubProgram.addCommand(this.setConfig(cmd, options))); - - program.addCommand(buildSubProgram); - program.addCommand(toolSubProgram); - - return program; - } - - /** - * Configure the command line parser instance according to the options passed - * Updates the instance to not to throw any error and suppress output - * Useful for testing - * @param program command line parser - * @param options additional options to configure program instance - * @returns {Command} configured command line parser - */ - private setConfig(program: Command, options?: { exitOverride?: boolean; suppressOutput?: boolean }): Command { - if (options?.exitOverride) { - program.exitOverride(); - } - if (options?.suppressOutput) { - program.configureOutput({ - writeOut: () => undefined, - writeErr: () => undefined, - }); - } - return program; - } -} diff --git a/src/service/arguments/cli/command-constructor.ts b/src/service/arguments/cli/command-constructor.ts deleted file mode 100644 index db937c8d..00000000 --- a/src/service/arguments/cli/command-constructor.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Command } from "commander"; - -export interface CommandConstructor { - /** - * Construct the command line argument parser for the cli - * @returns {Command} Command line argument parser object - */ - createCommand(): Command; -} diff --git a/src/service/arguments/cli/tools/plan.ts b/src/service/arguments/cli/tools/plan.ts deleted file mode 100644 index 99d91046..00000000 --- a/src/service/arguments/cli/tools/plan.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { Command } from "commander"; -import { CommandConstructor } from "@bc/service/arguments/cli/command-constructor"; -import { CLIActionType, ToolType } from "@bc/domain/cli"; -import { BuildSubCommandFactory } from "@bc/service/arguments/cli/build/build-subcommand-factory"; -import Container from "typedi"; -import { InputService } from "@bc/service/inputs/input-service"; -import { FlowType } from "@bc/domain/inputs"; - -/** - * Create command parser for project list tool - * @implements {CommandConstructor} - */ -export class PlanCommand implements CommandConstructor { - createCommand(): Command { - const program = new Command(ToolType.PLAN); - program - .description("Execute build chain without actually cloning or executing projects (like a dry run)") - .hook("postAction", () => { - const parsedInputs = Container.get(InputService); - const flowType = parsedInputs.inputs.CLISubCommand as FlowType; - parsedInputs.updateInputs({ flowType: flowType, CLICommand: CLIActionType.TOOLS, CLISubCommand: ToolType.PLAN }); - }); - - BuildSubCommandFactory.getAllCommands().forEach(cmd => program.addCommand(cmd)); - - return program; - } -} diff --git a/src/service/arguments/cli/tools/project-list.ts b/src/service/arguments/cli/tools/project-list.ts deleted file mode 100644 index 279276cc..00000000 --- a/src/service/arguments/cli/tools/project-list.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { Command } from "commander"; -import { CommandConstructor } from "@bc/service/arguments/cli/command-constructor"; -import { ToolType } from "@bc/domain/cli"; - -/** - * Create command parser for project list tool - * @implements {CommandConstructor} - */ -export class ProjectListCommand implements CommandConstructor { - createCommand(): Command { - const program = new Command(ToolType.PROJECT_LIST); - program - .description("Prints the projects that will be built given a starting project ordered by precedence") - .requiredOption("-p, --startProject ", "The project to start the build from") - .requiredOption("-f, --definitionFile ", "The definition file, either a path to the filesystem or a URL to it") - .option("-t, --token ", "The GITHUB_TOKEN. It can be set as an environment variable instead") - .option("-d, --debug", "Set debugging mode to true", false) - .option("--fullProjectDependencyTree", "Checks out and execute the whole tree instead of the upstream build", false); - - return program; - } -} diff --git a/src/service/arguments/cli/tools/tool-subcommand-factory.ts b/src/service/arguments/cli/tools/tool-subcommand-factory.ts deleted file mode 100644 index df07ef60..00000000 --- a/src/service/arguments/cli/tools/tool-subcommand-factory.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { Command } from "commander"; -import { CommandConstructor } from "@bc/service/arguments/cli/command-constructor"; -import { CLIActionType, ToolType } from "@bc/domain/cli"; -import { ProjectListCommand } from "@bc/service/arguments/cli/tools/project-list"; -import { InputService } from "@bc/service/inputs/input-service"; -import Container from "typedi"; -import { LoggerLevel } from "@bc/domain/inputs"; -import { PlanCommand } from "@bc/service/arguments/cli/tools/plan"; - -/** - * A factory to construct command line parsers for all the different kind of tools - */ -export class ToolSubCommandFactory { - /** - * Constructs the argument parser for a command line utility - * @param toolType Type of command for which the parser has to be constructed - * @returns {Command | undefined} Returns command parser object or throws an error if the cmd is not defined - */ - static getCommand(toolType: ToolType): Command { - let commandFactory: CommandConstructor; - switch (toolType) { - case ToolType.PROJECT_LIST: - commandFactory = new ProjectListCommand(); - break; - case ToolType.PLAN: - commandFactory = new PlanCommand(); - break; - default: - throw new Error(`No command constructor specified for ${toolType}`); - } - - return commandFactory - .createCommand() - .action(options => { - const parsedInputs = Container.get(InputService); - if (options.debug) { - options.loggerLevel = LoggerLevel.DEBUG; - } - delete options.debug; - parsedInputs.updateInputs({ ...options, CLICommand: CLIActionType.TOOLS, CLISubCommand: toolType }); - }); - } - - /** - * Constructs the parsers for all the commands available - * @returns {Command[]} Array of objects of command line parsers - */ - static getAllCommands(): Command[] { - return Object.keys(ToolType) - .filter(toolType => toolType !== "RESUME") - .map(toolType => - this.getCommand(ToolType[toolType as keyof typeof ToolType]) - ); - } -} diff --git a/src/service/artifacts/artifact-service.ts b/src/service/artifacts/artifact-service.ts deleted file mode 100644 index 98eb23e0..00000000 --- a/src/service/artifacts/artifact-service.ts +++ /dev/null @@ -1,66 +0,0 @@ -import Container, { Service } from "typedi"; -import { Node, ArchiveDependencies } from "@kie/build-chain-configuration-reader"; -import { UploadService } from "@bc/service/artifacts/upload-service"; -import { LoggerService } from "@bc/service/logger/logger-service"; -import { UploadResponse } from "@actions/artifact"; -import { BaseLoggerService } from "@bc/service/logger/base-logger-service"; -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; - -@Service() -export class ArtifactService { - private readonly uploadService: UploadService; - private readonly logger: BaseLoggerService; - - constructor() { - this.uploadService = Container.get(UploadService); - this.logger = Container.get(LoggerService).logger; - } - - private getNodesToArchive(nodeChain: Node[], startingNode: Node): Node[] { - const dependencies = startingNode.archiveArtifacts?.dependencies ?? ArchiveDependencies.NONE; - let result: Node[]; - switch (dependencies) { - case ArchiveDependencies.NONE: - result = startingNode.archiveArtifacts ? [startingNode] : []; - break; - case ArchiveDependencies.ALL: - result = nodeChain.filter(node => !!node.archiveArtifacts); - break; - default: - result = nodeChain.filter(node => node.archiveArtifacts && (dependencies.includes(node.project) || node.project === startingNode.project)); - } - return result; - } - - async uploadNodes(nodeChain: Node[], startingNode: Node): Promise[]> { - if (Container.get(constants.CONTAINER.ENTRY_POINT) === EntryPoint.CLI) { - this.logger.info("Will not upload any artifacts in CLI environment"); - return []; - } - - const nodesToArchive = this.getNodesToArchive(nodeChain, startingNode); - this.logger.info(nodesToArchive.length > 0 ? `Archiving artifacts for ${nodesToArchive.map(node => node.project)}` : "No artifacts to archive"); - const promises = nodesToArchive.map(async node => { - this.logger.info(`Project [${node.project}]. Uploading artifacts...`); - // archiveArtifacts will exist as it is verified by getNodesToArchive - return this.uploadService.upload(node.archiveArtifacts!, node.project); - }); - - const result = await Promise.allSettled(promises); - - result.forEach(res => { - if (res.status === "fulfilled") { - if (res.value.artifactItems.length > 0) { - this.logger.info(`Artifact ${res.value.artifactName} uploaded ${res.value.artifactItems.length} files: ${res.value.artifactItems}`); - } - if (res.value.failedItems.length > 0) { - this.logger.info(`Artifact ${res.value.artifactName} failed to upload ${res.value.failedItems.length} files: ${res.value.failedItems}`); - } - } else { - this.logger.info(`Failure in uploading artifacts for one or more nodes: ${res.reason}`); - } - }); - return result; - } -} diff --git a/src/service/artifacts/upload-service.ts b/src/service/artifacts/upload-service.ts deleted file mode 100644 index ae38b873..00000000 --- a/src/service/artifacts/upload-service.ts +++ /dev/null @@ -1,168 +0,0 @@ -import { create, GlobOptions } from "@actions/glob"; -import path from "path"; -import Container, { Service } from "typedi"; -import { stat } from "fs"; -import { promisify } from "util"; -import { LoggerService } from "@bc/service/logger/logger-service"; -import { ArchiveArtifacts, IfNoFile } from "@kie/build-chain-configuration-reader"; -import * as artifact from "@actions/artifact"; -import { logAndThrow } from "@bc/utils/log"; -import { BaseLoggerService } from "@bc/service/logger/base-logger-service"; - -const stats = promisify(stat); -type SearchResult = { filesToUpload: string[]; rootDirectory: string }; - -@Service() -export class UploadService { - private readonly logger: BaseLoggerService; - constructor() { - this.logger = Container.get(LoggerService).logger; - } - - private validateArtifactName(name: string) { - return name.replace(/[/\s":<>*?\\]/g, "_"); - } - - /** src: https://github.com/actions/upload-artifact/blob/main/src/search.ts#L31 */ - private getMultiPathLCA(searchPaths: string[]): string { - if (searchPaths.length < 2) { - throw new Error("At least two search paths must be provided"); - } - - const commonPaths: string[] = []; - const splitPaths: string[][] = []; - let smallestPathLength = Number.MAX_SAFE_INTEGER; - - // split each of the search paths using the platform specific separator - for (const searchPath of searchPaths) { - const splitSearchPath = path.normalize(searchPath).split(path.sep); - - // keep track of the smallest path length so that we don't accidentally later go out of bounds - smallestPathLength = Math.min(smallestPathLength, splitSearchPath.length); - splitPaths.push(splitSearchPath); - } - - // on Unix-like file systems, the file separator exists at the beginning of the file path, make sure to preserve it - if (searchPaths[0].startsWith(path.sep)) { - commonPaths.push(path.sep); - } - - // loop over all the search paths until there is a non-common ancestor or we go out of bounds - for (let splitIndex = 0; splitIndex < smallestPathLength; splitIndex++) { - let flag = true; - // check if the paths are the same at a specific index - for (let i = 1; i < splitPaths.length; i++) { - if (splitPaths[0][splitIndex] !== splitPaths[i][splitIndex]) { - // a non-common index has been reached - flag = false; - break; - } - } - if (!flag) { - break; - } - // if all are the same, add to the end result & increment the index - commonPaths.push(splitPaths[0][splitIndex]); - } - - return path.join(...commonPaths); - } - - private getRootDir(searchPaths: string[], searchResults: string[]) { - if (searchPaths.length > 1) { - this.logger.info("Multiple search paths detected. Calculating the least common ancestor of all paths"); - const lcaSearchPath = this.getMultiPathLCA(searchPaths); - this.logger.info(`The least common ancestor is ${lcaSearchPath}. This will be the root directory of the artifact`); - - return lcaSearchPath; - } - - /* - Special case for a single file artifact that is uploaded without a directory or wildcard pattern. The directory structure is - not preserved and the root directory will be the single files parent directory - */ - if (searchResults.length === 1 && searchPaths[0] === searchResults[0]) { - return path.dirname(searchResults[0]); - } - - return searchPaths[0]; - } - - private async findFilesToUpload( - searchPath: string, - globOptions: GlobOptions = { followSymbolicLinks: true, implicitDescendants: true, omitBrokenSymbolicLinks: true } - ): Promise { - const searchResults: string[] = []; - const globber = await create(searchPath, globOptions); - const rawSearchResults: string[] = await globber.glob(); - - /* - Files are saved with case insensitivity. Uploading both a.txt and A.txt will files to be overwritten - Detect any files that could be overwritten for user awareness - */ - const set = new Set(); - - /* - Directories will be rejected if attempted to be uploaded. This includes just empty - directories so filter any directories out from the raw search results - */ - for (const searchResult of rawSearchResults) { - const fileStats = await stats(searchResult); - // isDirectory() returns false for symlinks if using fs.lstat(), make sure to use fs.stat() instead - if (!fileStats.isDirectory()) { - searchResults.push(searchResult); - - // detect any files that would be overwritten because of case insensitivity - if (set.has(searchResult.toLowerCase())) { - this.logger.info( - `Uploads are case insensitive: ${searchResult} was detected that it will be overwritten by another file with the same path` - ); - } else { - set.add(searchResult.toLowerCase()); - } - } - } - - // Calculate the root directory for the artifact using the search paths that were utilized - const rootDirectory = this.getRootDir(globber.getSearchPaths(), searchResults); - - return { - filesToUpload: searchResults, - rootDirectory, - }; - } - - private noFileFound(archiveArtifacts: ArchiveArtifacts, searchPaths: string) { - switch (archiveArtifacts["if-no-files-found"]) { - case IfNoFile.ERROR: - throw logAndThrow(`No files were found with the provided path: ${searchPaths}. No artifacts will be uploaded.`); - case IfNoFile.IGNORE: - this.logger.info(`No files were found with the provided path: ${searchPaths}. No artifacts will be uploaded.`); - break; - case IfNoFile.WARN: - default: - this.logger.warn(`No files were found with the provided path: ${searchPaths}. No artifacts will be uploaded.`); - } - } - - async upload(archiveArtifacts: ArchiveArtifacts, projectName: string): Promise { - // remove the filter once build-chain-config reader is refactored - const searchPaths = archiveArtifacts.paths.filter(pathItem => pathItem.path).reduce((prev: string, curr) => prev.concat(curr.path, "\n"), ""); - const { filesToUpload, rootDirectory } = await this.findFilesToUpload(searchPaths); - const artifactName = this.validateArtifactName(archiveArtifacts.name ?? projectName); - - if (filesToUpload.length === 0) { - this.noFileFound(archiveArtifacts, searchPaths); - return { - artifactName, - artifactItems: [], - failedItems: [], - size: 0, - }; - } else { - this.logger.debug(`With the provided path (${searchPaths}), there will be ${filesToUpload.length} file(s) uploaded`); - this.logger.debug(`Root artifact directory is ${rootDirectory}`); - return artifact.create().uploadArtifact(artifactName, filesToUpload, rootDirectory, { continueOnError: false }); - } - } -} diff --git a/src/service/checkout/checkout-service.ts b/src/service/checkout/checkout-service.ts deleted file mode 100644 index 5da6c20c..00000000 --- a/src/service/checkout/checkout-service.ts +++ /dev/null @@ -1,310 +0,0 @@ -import { ConfigurationService } from "@bc/service/config/configuration-service"; -import { LoggerService } from "@bc/service/logger/logger-service"; -import { getMappedTarget, Node } from "@kie/build-chain-configuration-reader"; -import Container, { Service } from "typedi"; -import { copy, move } from "fs-extra"; -import path from "path"; -import { CheckedOutNode, CheckoutInfo, SerializedCheckoutService } from "@bc/domain/checkout"; -import { GitAPIService } from "@bc/service/git/git-api-service"; -import { GitCLIService } from "@bc/service/git/git-cli"; -import { logAndThrow } from "@bc/utils/log"; -import { NotFoundError } from "@bc/domain/errors"; -import { BaseLoggerService } from "@bc/service/logger/base-logger-service"; -import { Serializable } from "@bc/domain/serializable"; - -@Service() -export class CheckoutService implements Serializable { - private readonly config: ConfigurationService; - private readonly logger: BaseLoggerService; - private savedCheckedOutState: SerializedCheckoutService; - private currentCheckedOutState: SerializedCheckoutService; - - constructor() { - this.config = Container.get(ConfigurationService); - this.logger = Container.get(LoggerService).logger; - this.savedCheckedOutState = []; - this.currentCheckedOutState = []; - } - /** - * A node is cloned into a directory which is named as following: - * node.project = "owner/project 2" - * cloned dir = owner_project_2 - * @param node - * @returns name of the directory in which the node was cloned - */ - private getProjectDir(node: Node): string { - return path.join(this.config.getRootFolder(), node.project.replace(/[/\s]/g, "_")); - } - - /** - * Implement the 'clone' field functionality - * Clone the project in multiple folders specified in the clone field - * Prerequiste: the project must have already been cloned once - * @param node - * @returns - */ - private async cloneNode(node: Node): Promise { - const promises: Promise[] = []; - node.clone?.forEach(folder => { - const projectDir = this.getProjectDir(node); - const rootDir = this.config.getRootFolder(); - promises.push( - copy(projectDir, path.join(rootDir, folder)) - .then( - async () => move(path.join(rootDir, folder), path.join(projectDir, folder)) - ) - ); - }); - await Promise.all(promises); - } - - /** - * Check out the given node. Checking out involves the following - * 1. Skip checkout of the node if specified in the corresponding flags - * OR - * 1. Get the checkout info - * 2. Clone the target repository:branch - * 3. Merge the source repository:branch into target repository:branch ONLY if merge was true in checkout info - * 4. Clone (Copy) the target repository multiple times depending on the 'clone' field of the definition file - * @param node - * @returns checkout info for the node - */ - private async checkoutNode(node: Node): Promise { - // Don't checkout this node if skipCheckout flag is set to true or project is listed in skipProjectCheckout flag - if (this.config.skipCheckout(node)) { - this.logger.info(`${node.project} checkout skipped`); - return undefined; - } - - const savedCheckoutInfo = this.savedCheckedOutState.find(n => n.node.project === node.project); - - if (savedCheckoutInfo?.checkedOut) { - this.logger.info(`${node.project} already checked out. Continuing...`); - savedCheckoutInfo.checkoutInfo.repoDir = this.getProjectDir(node); - this.currentCheckedOutState.push(savedCheckoutInfo); - return savedCheckoutInfo.checkoutInfo; - } - - const checkoutInfo = savedCheckoutInfo?.checkoutInfo ?? await this.getCheckoutInfo(node); - this.logger.debug(`[${node.project}] CheckoutInfo - ${JSON.stringify(checkoutInfo)}`); - const gitCLIService = Container.get(GitCLIService); - - // get the url of the target repository that needs to be cloned - const targetCloneUrl = this.config.getCloneUrl(checkoutInfo.targetGroup, checkoutInfo.targetName); - - // clone the repository and switch to target branch (for branch flow target and source branch are the same) - await gitCLIService.clone(targetCloneUrl, checkoutInfo.repoDir, checkoutInfo.targetBranch).catch(err => { - this.currentCheckedOutState.push({node, checkoutInfo, checkedOut: false}); - this.logger.debug(JSON.stringify(err)); - logAndThrow( - `[${node.project}] Error cloning ${checkoutInfo.targetGroup}/${checkoutInfo.targetName} and switching to target branch ${checkoutInfo.targetBranch}` - ); - }); - if (checkoutInfo.merge) { - this.logger.debug(`[${node.project}] Merging ${checkoutInfo.sourceGroup}/${checkoutInfo.sourceName}:${checkoutInfo.sourceBranch} - into ${checkoutInfo.targetGroup}/${checkoutInfo.targetName}:${checkoutInfo.targetBranch}`); - - // get url of the source for the merge - const sourceCloneUrl = this.config.getCloneUrl(checkoutInfo.sourceGroup, checkoutInfo.sourceName); - - await gitCLIService - .merge(checkoutInfo.repoDir, sourceCloneUrl, checkoutInfo.sourceBranch) - .then(async () => gitCLIService.rename(checkoutInfo.repoDir, checkoutInfo.sourceBranch)) // need to rename target to source so that sonar cloud can run PR analysis on source - .catch(err => { - this.currentCheckedOutState.push({node, checkoutInfo, checkedOut: false}); - this.logger.debug(JSON.stringify(err)); - logAndThrow(`[${node.project}] Error merging ${checkoutInfo.sourceGroup}/${checkoutInfo.sourceName}:${checkoutInfo.sourceBranch} - into ${checkoutInfo.targetGroup}/${checkoutInfo.targetName}:${checkoutInfo.targetBranch}`); - }); - } - // clone multiple times if needed - await this.cloneNode(node); - - this.logger.info(`${node.project} checked out`); - this.currentCheckedOutState.push({node, checkoutInfo, checkedOut: true}); - - return checkoutInfo; - } - - /** - * Produces the checkout information for the given node - * Checkout information contains details about the source repository, target repository and whether source needs to be merged into target - * @param node - * @returns checkout info - */ - private async getCheckoutInfo(node: Node): Promise { - const gitAPIService = Container.get(GitAPIService); - const projectTriggeringTheJob = this.config.getProjectTriggeringTheJob(); - const originalTarget = this.config.getTargetProject(); - // the current node is the current target - const currentTarget = { - // map the starting project target branch to the corresponding branch defined in the mapping for the current node - // target branch is guaranteed to exist since base always exist - mappedBranch: getMappedTarget( - projectTriggeringTheJob.project, - projectTriggeringTheJob.mapping, - node.project, - node.mapping, - originalTarget.branch! - ), - name: node.project.split("/")[1], - group: this.config.getGroupName() ?? node.project.split("/")[0], - }; - - const originalSource = this.config.getSourceProject(); - - /** - * Case 1: - * Check whether PR exists from node_forked:source_branch to node:mapped_branch - * (where node_forked is the fork of node owned by the same author as the source's author) - * Branch existance is automatically checked by hasPullRequest. If the branch does not exist => there is no PR - */ - const result = await gitAPIService - .getForkName(currentTarget.group, originalSource.group!, currentTarget.name) - .then(async forkName => { - // only check for PR if we were able to get a fork name - const hasPullRequestFromFork = await gitAPIService.hasPullRequest( - currentTarget.group, - currentTarget.name, - `${originalSource.group}:${originalSource.branch}`, - currentTarget.mappedBranch - ); - return { forkName, hasPullRequest: hasPullRequestFromFork }; - }) - .catch(err => { - if (err instanceof NotFoundError) { - return { forkName: "", hasPullRequest: false }; - } - throw err; - }); - if (result.hasPullRequest) { - return { - // source branch is guaranteed to exist since there is PR from the source branch and group - sourceBranch: originalSource.branch!, - sourceGroup: originalSource.group!, - sourceName: result.forkName, - targetBranch: currentTarget.mappedBranch, - targetGroup: currentTarget.group, - targetName: currentTarget.name, - repoDir: this.getProjectDir(node), - merge: true, - }; - } - - /** - * Case 2: - * Check whether PR exists from node:source_branch to node:mapped_branch - * Branch existance is automatically checked by hasPullRequest. If the branch does not exist => there is no PR - */ - const hasPullRequest = await gitAPIService.hasPullRequest( - currentTarget.group, - currentTarget.name, - `${currentTarget.group}:${originalSource.branch}`, - currentTarget.mappedBranch - ); - if (hasPullRequest) { - return { - // source branch is guaranteed to exist since there is PR from the source branch - sourceBranch: originalSource.branch!, - sourceGroup: currentTarget.group, - sourceName: currentTarget.name, - targetBranch: currentTarget.mappedBranch, - targetGroup: currentTarget.group, - targetName: currentTarget.name, - repoDir: this.getProjectDir(node), - merge: true, - }; - } - - /** - * Case 3: - * No PR available. Checkout node:mapped_branch - * No need to check for branch existance since when this node is tried to clone, it will error out - * if the branch does not exist - */ - return { - sourceBranch: currentTarget.mappedBranch, - sourceGroup: currentTarget.group, - sourceName: currentTarget.name, - targetBranch: currentTarget.mappedBranch, - targetGroup: currentTarget.group, - targetName: currentTarget.name, - repoDir: this.getProjectDir(node), - merge: false, - }; - } - - /** - * Checkout each node in the node chain sequentially - * @returns checkout information for each node - */ - private async checkoutDefinitionTreeSequential(): Promise { - const result: CheckedOutNode[] = []; - for (const node of this.config.nodeChain) { - const checkoutInfo = await this.checkoutNode(node); - const branchHead = await this.getBranchHead(checkoutInfo); - result.push({ - node, - checkoutInfo, - branchHead - }); - } - return result; - } - - /** - * Technically this method is concurrent and not parallel since promises are executed concurrently in a single thread js runtime. - * Although for our use case promises might be better since checkoutNode is a more I/O intensive task (cloning repo, copying dirs etc) - * Something to explore later would be to compare the performance of this method against one which uses worker threads. - */ - /** - * Checkout each node in the node chain parallely - * @returns checkout information for each node - */ - private async checkoutDefinitionTreeParallel(): Promise { - return Promise.all( - this.config.nodeChain.map(async node => - this.checkoutNode(node).then(async checkoutInfo => { - const branchHead = await this.getBranchHead(checkoutInfo); - return { - node, - checkoutInfo, - branchHead - }; - }) - ) - ); - } - - /** - * Return the branch head hash based on the checkout information - * @param checkout information - * @returns branch head commit hash - */ - private async getBranchHead(checkoutInfo: CheckoutInfo | undefined) { - return !checkoutInfo ? "" : await Container.get(GitCLIService).head(checkoutInfo.repoDir); - } - - /** - * Checkout each node in the node chain either parallely or sequentially depending on the skipParallelCheckout flag - * @param nodeChain - * @returns checkout information for each node - */ - async checkoutDefinitionTree(): Promise { - return this.config.skipParallelCheckout() ? - this.checkoutDefinitionTreeSequential() : - this.checkoutDefinitionTreeParallel(); - } - - toJSON(): SerializedCheckoutService { - return this.currentCheckedOutState; - } - - fromJSON(_json: SerializedCheckoutService): CheckoutService { - throw new Error("Use the static method"); - } - - static fromJSON(json: SerializedCheckoutService): CheckoutService { - return Object.assign(new CheckoutService(), { savedCheckedOutState: json }); - } -} diff --git a/src/service/command/execute-command-service.ts b/src/service/command/execute-command-service.ts deleted file mode 100644 index 47a76015..00000000 --- a/src/service/command/execute-command-service.ts +++ /dev/null @@ -1,199 +0,0 @@ -import Container, { Service } from "typedi"; -import { ExecuteCommandResult, ExecutionResult } from "@bc/domain/execute-command-result"; -import { CommandTreatmentDelegator } from "@bc/service/command/treatment/command-treatment-delegator"; -import { CommandExecutorDelegator } from "@bc/service/command/executor/command-executor-delegator"; -import { ExecuteNodeResult } from "@bc/domain/execute-node-result"; -import { LoggerService } from "@bc/service/logger/logger-service"; -import { ExecutionPhase } from "@bc/domain/execution-phase"; -import { ConfigurationService } from "@bc/service/config/configuration-service"; -import { NodeExecution, NodeExecutionLevel } from "@bc/domain/node-execution"; -import { Node } from "@kie/build-chain-configuration-reader"; -import { BaseLoggerService } from "@bc/service/logger/base-logger-service"; -import { ExecOptions } from "@actions/exec"; - -@Service() -export class ExecuteCommandService { - private logger: BaseLoggerService; - - constructor(private _commandTreatmentDelegator: CommandTreatmentDelegator, - private _commandExecutorDelegator: CommandExecutorDelegator, - private _configurationService: ConfigurationService, - ) { - this.logger = Container.get(LoggerService).logger; - } - - public async executeNodeChain(chain: NodeExecution[], printResults?: (node: ExecuteNodeResult[]) => void) { - return this._configurationService.isParallelExecutionEnabled() ? - this.executeNodeChainParallel(chain, printResults) : - this.executeNodeChainSequential(chain, printResults); - } - - public async executeCommand(command: string, opts?: ExecOptions): Promise { - const treatedCommand = this._commandTreatmentDelegator.treatCommand(command, this._configurationService.getTreatmentOptions()); - return this._commandExecutorDelegator.executeCommand(treatedCommand, opts); - } - - public async executeNodeCommands(nodeToBeExecuted: NodeExecution, opts?: ExecOptions): Promise { - const result: ExecuteNodeResult[] = []; - const {node, cwd} = nodeToBeExecuted; - const before = this.getNodeCommands(node, ExecutionPhase.BEFORE, this._configurationService.getNodeExecutionLevel(node)); - const current = this.getNodeCommands(node, ExecutionPhase.CURRENT, this._configurationService.getNodeExecutionLevel(node)); - const after = this.getNodeCommands(node, ExecutionPhase.AFTER, this._configurationService.getNodeExecutionLevel(node)); - let skipExecution = this._configurationService.skipExecution(node); - skipExecution = !(await this.executeNodePhase(node, before, skipExecution, {...opts, cwd}, result)) || skipExecution; - skipExecution = !(await this.executeNodePhase(node, current, skipExecution, {...opts, cwd}, result)) || skipExecution; - await this.executeNodePhase(node, after, skipExecution, {...opts, cwd}, result); - return result; - } - - public getNodeCommands(node: Node, executionPhase: ExecutionPhase, nodeExecutionLevel: NodeExecutionLevel): string[] | undefined { - const commands = node[`${executionPhase}`]; - let levelCommands; - if (commands) { - levelCommands = commands[`${nodeExecutionLevel}`].length ? commands[`${nodeExecutionLevel}`] : commands[`${NodeExecutionLevel.CURRENT}`]; - } - if (!commands) { - this.logger.debug(`No commands defined for project ${node.project} and phase ${executionPhase}`); - } else if (!levelCommands || !levelCommands.length) { - const levelMsg = nodeExecutionLevel !== NodeExecutionLevel.CURRENT ? `${nodeExecutionLevel} or ${NodeExecutionLevel.CURRENT}` : NodeExecutionLevel.CURRENT; - this.logger.debug(`No commands defined for project ${node.project} phase ${executionPhase} and level ${levelMsg}`); - } - return levelCommands; - } - - private async executeCommands(node: Node, commands: string[], skipExecution: boolean, opts?: ExecOptions): Promise { - const result: ExecuteNodeResult = { - node, - executeCommandResults: [], - }; - for (const command of commands) { - result.executeCommandResults.push(skipExecution ? - { - startingDate: Date.now(), - endingDate: Date.now(), - command, - result: ExecutionResult.SKIP, - errorMessage: "", - time: 0 - } : await this.executeCommand(command, opts)); - } - return result; - } - - /** - * Executes given phase and adds the result to the result array. Returns true if the phase execution - * succeeded otherwise false. - */ - private async executeNodePhase( - node: Node, - commands: string[] | undefined, - skipExecution: boolean, - opts: ExecOptions | undefined, - result: ExecuteNodeResult[] - ) { - const phaseResult = await this.executeCommands(node, commands ?? [], skipExecution, opts); - result.push(phaseResult); - if ( - !this._configurationService.failAtEnd() && - phaseResult.executeCommandResults.find(r => r.result === ExecutionResult.NOT_OK) - ) { - this.logger.info(`${node.project} failed. Won't execute remaining commands and projects`); - return false; - } - return true; - } - - private nodeExecutionFailed(result: ExecuteNodeResult[]): boolean { - return !!result.find(res => res.executeCommandResults.find(r => r.result === ExecutionResult.NOT_OK)); - } - - private async executeNodeChainSequential(chain: NodeExecution[], printResults?: (node: ExecuteNodeResult[]) => void) { - const result: ExecuteNodeResult[][] = []; - for (const node of chain) { - this.logger.startGroup(`Executing ${node.node.project}`); - const currentNodeResult = await this.executeNodeCommands(node); - result.push(currentNodeResult); - this.logger.info(`Execution summary for ${node.node.project}`); - - if (printResults) { - printResults(currentNodeResult); - } - - this.logger.endGroup(); - - if (!this._configurationService.failAtEnd() && this.nodeExecutionFailed(currentNodeResult)) { - return result; - } - } - return result; - } - - private async executeNodeChainParallel(chain: NodeExecution[], printResults?: (node: ExecuteNodeResult[]) => void) { - const result: ExecuteNodeResult[][] = []; - const maxDepth = Math.max(...chain.map(c => c.node.depth)); - - // we can only execute projects that have the same depth since these projects don't depend each other - this.logger.startGroup("Calculating projects that can be executed parallely"); - const groups = chain.reduce((prev: Record, curr) => { - if (!prev[curr.node.depth]) { - prev[curr.node.depth] = []; - } - prev[curr.node.depth].push(curr); - return prev; - }, {}); - - Object.entries(groups).forEach(v => { - this.logger.info(`${parseInt(v[0]) + 1}. [${v[1].map(n => n.node.project)}]`); - }); - this.logger.endGroup(); - - for (let depth = 0; depth <= maxDepth; depth += 1) { - // start executing the current group and storing their output in buffer. Don't await right now just start execution - const buffers = groups[depth].reduce((prev: Record, curr) => { - prev[curr.node.project] = Buffer.alloc(0); - return prev; - }, {}); - const currentResults: Record = {}; - await Promise.all( - groups[depth].map( - node => this.executeNodeCommands(node, { - silent: true, - listeners: { - stdout: data => { - buffers[node.node.project] = Buffer.concat([ - buffers[node.node.project], - data - ]); - }, - stderr: data => { - buffers[node.node.project] = Buffer.concat([ - buffers[node.node.project], - data - ]); - } - } - }) - .then(r => { - currentResults[node.node.project] = r; - result.push(r); - }) - ) - ); - - // print output to stdout for the previous group - for (const [project, buffer] of Object.entries(buffers)) { - this.logger.startGroup(`Executing ${project}`); - this.logger.logger.log(buffer.toString()); - this.logger.info(`Execution summary for ${project}`); - if (printResults) { - printResults(currentResults[project]); - } - this.logger.endGroup(); - if (!this._configurationService.failAtEnd() && this.nodeExecutionFailed(currentResults[project])) { - return result; - } - } - } - return result; - } -} \ No newline at end of file diff --git a/src/service/command/executor/bash-executor.ts b/src/service/command/executor/bash-executor.ts deleted file mode 100644 index c406af41..00000000 --- a/src/service/command/executor/bash-executor.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { exec, ExecOptions } from "@actions/exec"; -import { Service } from "typedi"; - -@Service() -export class BashExecutor { - - async execute(command: string, opts?: ExecOptions): Promise { - await exec(command, [], opts); - } -} \ No newline at end of file diff --git a/src/service/command/executor/command-executor-delegator.ts b/src/service/command/executor/command-executor-delegator.ts deleted file mode 100644 index 4fa61bf6..00000000 --- a/src/service/command/executor/command-executor-delegator.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { Service } from "typedi"; -import { BashExecutor } from "@bc/service/command/executor/bash-executor"; -import { ExportExecutor } from "@bc/service/command/executor/export-executor"; -import { ExecuteCommandResult, ExecutionResult } from "@bc/domain/execute-command-result"; -import { hrtimeToMs } from "@bc/utils/date"; -import { ExecOptions } from "@actions/exec"; - -@Service() -export class CommandExecutorDelegator { - - constructor(private _bashExecutor: BashExecutor, - private _exportExecutor: ExportExecutor) { - } - - public async executeCommand(command: string, opts?: ExecOptions): Promise { - const startHrTime = process.hrtime(); - const startingDate = Date.now(); - let result: ExecutionResult; - let errorMessage = ""; - - try { - this.isExport(command) ? await this._exportExecutor.execute(command, opts) : await this._bashExecutor.execute(command, opts); - result = ExecutionResult.OK; - } catch (ex) { - errorMessage = (ex instanceof Error) ? ex.message : "unknown"; - result = ExecutionResult.NOT_OK; - } - return { - startingDate, - command, - result, - errorMessage, - endingDate: Date.now(), - time: hrtimeToMs(startHrTime), - }; - } - - private isExport(command: string): boolean { - return command.trim().match(/^export .*=/) !== null; - } -} \ No newline at end of file diff --git a/src/service/command/executor/export-executor.ts b/src/service/command/executor/export-executor.ts deleted file mode 100644 index ada4a243..00000000 --- a/src/service/command/executor/export-executor.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { exec, ExecOptions } from "@actions/exec"; -import Container, { Service } from "typedi"; -import { LoggerService } from "@bc/service/logger/logger-service"; - -@Service() -export class ExportExecutor { - - async execute(command: string, opts?: ExecOptions): Promise { - const expressionCommand = new ExpressionCommand(command); - process.env[expressionCommand.variable] = await this.executeExpression(expressionCommand.expression, opts); - Container.get(LoggerService).logger.debug(`The variable \`${expressionCommand.variable}\` has been set to the env with the value \`${process.env[expressionCommand.variable]}\``); - } - - private async executeExpression(expression: string, opts?: ExecOptions): Promise { - const expressionMatch = expression.match(/`(.*)`/); - const commandFromExpression = expressionMatch ? expressionMatch[1] : undefined; - if (commandFromExpression) { - let myOutput = ""; - const options = { - ...opts, - listeners: { - stdout: (data: Buffer) => { - myOutput += data.toString(); - }, - }, - }; - await exec(commandFromExpression, [], options); - return myOutput; - } - return expression.replace(/['"]+/g, ""); - } -} - -class ExpressionCommand { - _variable: string; - _expression: string; - - constructor(command: string) { - const commandArray = this.getCommandArray(command); - this._variable = commandArray[1]; - this._expression = commandArray[2]; - } - - private getCommandArray(command: string): string[] { - const commandArray = command.match(/^export (\w+)=(.*)/); - if (!commandArray || commandArray.length !== 3) { - const message = `The export command ${command} is not properly defined. It should be something like "export VARIBLE=expression". Please fix it an try again.`; - Container.get(LoggerService).logger.error(message); - throw new Error(message); - } - return commandArray; - } - - get variable(): string { - return this._variable; - } - - get expression(): string { - return this._expression; - } -} \ No newline at end of file diff --git a/src/service/command/treatment/command-builder.ts b/src/service/command/treatment/command-builder.ts deleted file mode 100644 index 20fc46f8..00000000 --- a/src/service/command/treatment/command-builder.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { CommandTreatment } from "@bc/service/command/treatment/command-treatment"; -import { TreatmentOptions } from "@bc/domain/treatment-options"; - -export class CommandBuilder { - private treatedCommand: string; - private readonly options?: TreatmentOptions; - - constructor(command: string, options?: TreatmentOptions) { - this.treatedCommand = command; - this.options = options; - } - - public treat(commandTreatment: CommandTreatment): CommandBuilder { - this.treatedCommand = commandTreatment.treat(this.treatedCommand, this.options); - return this; - } - - public build(): string { - return this.treatedCommand; - } - -} \ No newline at end of file diff --git a/src/service/command/treatment/command-treatment-delegator.ts b/src/service/command/treatment/command-treatment-delegator.ts deleted file mode 100644 index a355e753..00000000 --- a/src/service/command/treatment/command-treatment-delegator.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { Service } from "typedi"; -import { TreatmentOptions } from "@bc/domain/treatment-options"; -import { CommandBuilder } from "@bc/service/command/treatment/command-builder"; -import { EnvironmentCommandTreatment } from "@bc/service/command/treatment/environment-command-treatment"; -import { MavenCommandTreatment } from "@bc/service/command/treatment/maven-command-treatment"; -import { RegexCommandTreatment } from "@bc/service/command/treatment/regex-command-treatment"; - -@Service() -export class CommandTreatmentDelegator { - - constructor(private _environmentCommandTreatment: EnvironmentCommandTreatment, - private _mavenCommandTreatment: MavenCommandTreatment, - private _regexCommandTreatment: RegexCommandTreatment) { - } - - public treatCommand(command: string, options?: TreatmentOptions): string { - return new CommandBuilder(command, options) - .treat(this._environmentCommandTreatment) - .treat(this._mavenCommandTreatment) - .treat(this._regexCommandTreatment) - .build(); - } -} \ No newline at end of file diff --git a/src/service/command/treatment/command-treatment.ts b/src/service/command/treatment/command-treatment.ts deleted file mode 100644 index 0d29122b..00000000 --- a/src/service/command/treatment/command-treatment.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { TreatmentOptions } from "@bc/domain/treatment-options"; - -export interface CommandTreatment { - treat(command: string, options?: TreatmentOptions): string; -} \ No newline at end of file diff --git a/src/service/command/treatment/environment-command-treatment.ts b/src/service/command/treatment/environment-command-treatment.ts deleted file mode 100644 index 3c843a37..00000000 --- a/src/service/command/treatment/environment-command-treatment.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { CommandTreatment } from "@bc/service/command/treatment/command-treatment"; -import { TreatmentOptions } from "@bc/domain/treatment-options"; -import { Service } from "typedi"; - -@Service() -export class EnvironmentCommandTreatment implements CommandTreatment { - - // eslint-disable-next-line - public treat(command: string, _options?: TreatmentOptions): string { - const variables = this.getVariablesFromCommand(command); - return variables?.length > 0 ? variables.reduce( - (acc, variable) => acc.replace(variable[0], process.env[variable[1]] ?? ""), - command, - ) : command; - } - - private getVariablesFromCommand(command: string): RegExpMatchArray[] { - return [...command.matchAll(/\${{ env\.(\w+) }}/g)]; - } - -} \ No newline at end of file diff --git a/src/service/command/treatment/maven-command-treatment.ts b/src/service/command/treatment/maven-command-treatment.ts deleted file mode 100644 index 23d13d1d..00000000 --- a/src/service/command/treatment/maven-command-treatment.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Service } from "typedi"; -import { CommandTreatment } from "@bc/service/command/treatment/command-treatment"; -import { TreatmentOptions } from "@bc/domain/treatment-options"; - -@Service() -export class MavenCommandTreatment implements CommandTreatment { - - public treat(command: string, options?: TreatmentOptions): string { - return !this.isMavenCommand(command, options?.mavenBinary) ? command : `${command} -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -B`; - } - - private isMavenCommand(command: string, mavenBinary = "mvn"): boolean { - return new RegExp(`.*${mavenBinary} .*`).test(command); - } - - -} \ No newline at end of file diff --git a/src/service/command/treatment/regex-command-treatment.ts b/src/service/command/treatment/regex-command-treatment.ts deleted file mode 100644 index 77dacb76..00000000 --- a/src/service/command/treatment/regex-command-treatment.ts +++ /dev/null @@ -1,65 +0,0 @@ -import Container, { Service } from "typedi"; -import { CommandTreatment } from "@bc/service/command/treatment/command-treatment"; -import { TreatmentOptions } from "@bc/domain/treatment-options"; -import { LoggerService } from "@bc/service/logger/logger-service"; - -@Service() -export class RegexCommandTreatment implements CommandTreatment { - - public treat(command: string, options?: TreatmentOptions): string { - if (options?.replaceExpressions) { - Container.get(LoggerService).logger.debug(`[${RegexCommandTreatment.name}] Replacing command: \`${command}\` by expressions: '${options.replaceExpressions}'`); - const result = options.replaceExpressions.reduce( - (acc, replaceEx) => this.treatReplaceEx(acc, replaceEx), - command, - ); - Container.get(LoggerService).logger.debug( - result === command - ? `[${RegexCommandTreatment.name}] No replacement for \`${command}\`` - : `[${RegexCommandTreatment.name}] Replaced to: \`${result}\``, - ); - return result; - } else { - return command; - } - } - - private treatReplaceEx(command: string, replaceExpression: string) { - const replacementExpression = this.getReplacementExpression(replaceExpression); - return command.replace( - replacementExpression.regEx, - replacementExpression.replace, - ); - } - - private getReplacementExpression(replaceExpression: string): ReplacementExpression { - const split = replaceExpression.split("||"); - return new ReplacementExpression(this.createRegex(split[0]), split[1]); - } - - private createRegex(replaceExpression: string): RegExp { - const [, literal, flag] = replaceExpression.split("/"); - if (literal) { - return flag ? new RegExp(literal, flag) : new RegExp(literal); - } - return new RegExp(replaceExpression); - } -} - -class ReplacementExpression { - private readonly _regEx: RegExp; - private readonly _replace: string; - - constructor(regEx: RegExp, replace: string) { - this._regEx = regEx; - this._replace = replace; - } - - get regEx(): RegExp { - return this._regEx; - } - - get replace(): string { - return this._replace; - } -} \ No newline at end of file diff --git a/src/service/config/action-configuration.ts b/src/service/config/action-configuration.ts deleted file mode 100644 index 893c73c8..00000000 --- a/src/service/config/action-configuration.ts +++ /dev/null @@ -1,85 +0,0 @@ -import { EventData, GitConfiguration, ProjectConfiguration } from "@bc/domain/configuration"; -import { BaseConfiguration } from "@bc/service/config/base-configuration"; -import { logAndThrow } from "@bc/utils/log"; -import { readFile } from "node:fs/promises"; -import { FlowType } from "@bc/domain/inputs"; -import { DEFAULT_GITHUB_PLATFORM } from "@kie/build-chain-configuration-reader"; - -export class ActionConfiguration extends BaseConfiguration { - - override loadProject(): { source: ProjectConfiguration; target: ProjectConfiguration } { - if (this.parsedInputs.flowType === FlowType.BRANCH) { - const projectName = this.parsedInputs.startProject ?? this.gitConfiguration.repository; - const decomposedName = projectName!.split("/"); - const projectConfig = { - branch: this.parsedInputs.branch ?? this.gitConfiguration.ref, - repository: projectName, - name: decomposedName[decomposedName.length - 1], - group: this.parsedInputs.group ?? decomposedName[0], - }; - return { - source: projectConfig, - target: projectConfig, - }; - } else { - return super.loadProject(); - } - } - - /** - * Process the various github env variables - * @returns a new GitConfiguration instance - */ - loadGitConfiguration(): GitConfiguration { - const serverUrl = process.env.GITHUB_SERVER_URL ? process.env.GITHUB_SERVER_URL.replace(/\/$/, "") : "https://github.com"; - return { - action: process.env.GITHUB_ACTION, - actor: process.env.GITHUB_ACTOR, - author: process.env.GITHUB_AUTHOR, - serverUrl: serverUrl, - serverUrlWithToken: serverUrl.replace("://", `://${this.tokenService.getToken(DEFAULT_GITHUB_PLATFORM.id)}@`), - jobId: process.env.GITHUB_JOB, - ref: process.env.GITHUB_REF, - workflow: process.env.GITHUB_WORKFLOW, - repository: process.env.GITHUB_REPOSITORY, - }; - } - - /** - * Read the event payload file - * @returns the github event - */ - async loadGitEvent(): Promise { - if (this.parsedInputs.flowType === FlowType.BRANCH) { - return {}; - } - if (process.env.GITHUB_EVENT_PATH) { - this.logger.debug("Getting pull request information"); - const data = await readFile(process.env.GITHUB_EVENT_PATH, { - encoding: "utf8", - }); - return JSON.parse(data).pull_request; - } - logAndThrow("Make sure you are running it in a github environment"); - } - - /** - * Set the github token to the context - */ - loadToken(): void { - if (process.env.GITHUB_TOKEN) { - this.tokenService.setToken(DEFAULT_GITHUB_PLATFORM.id, process.env.GITHUB_TOKEN); - this.tokenService.setGithubTokenPool(DEFAULT_GITHUB_PLATFORM.id, [ process.env.GITHUB_TOKEN ]); - } else { - logAndThrow("A github token is needed"); - } - } - - /** - * Get the flow type for the github event - * @returns - */ - getFlowType(): FlowType { - return this.parsedInputs.flowType!; - } -} diff --git a/src/service/config/base-configuration.ts b/src/service/config/base-configuration.ts deleted file mode 100644 index 8604141a..00000000 --- a/src/service/config/base-configuration.ts +++ /dev/null @@ -1,147 +0,0 @@ -import { ToolType } from "@bc/domain/cli"; -import { EventData, GitConfiguration, ProjectConfiguration } from "@bc/domain/configuration"; -import { defaultInputValues, FlowType, InputValues } from "@bc/domain/inputs"; -import { GitTokenService } from "@bc/service/git/git-token-service"; -import { InputService } from "@bc/service/inputs/input-service"; -import { BaseLoggerService } from "@bc/service/logger/base-logger-service"; -import { LoggerService } from "@bc/service/logger/logger-service"; -import { logAndThrow } from "@bc/utils/log"; -import { DEFAULT_GITHUB_PLATFORM, DEFAULT_GITLAB_PLATFORM, Platform, PlatformType } from "@kie/build-chain-configuration-reader"; -import Container from "typedi"; - -export abstract class BaseConfiguration { - protected _gitEventData: EventData; - protected _gitConfiguration: GitConfiguration; - protected _sourceProject: ProjectConfiguration; - protected _targetProject: ProjectConfiguration; - protected _parsedInputs: InputValues; - protected _defaultPlatform: PlatformType; - protected readonly logger: BaseLoggerService; - protected readonly tokenService: GitTokenService; - - constructor() { - this.logger = Container.get(LoggerService).logger; - this.tokenService = Container.get(GitTokenService); - this._defaultPlatform = PlatformType.GITHUB; - this._parsedInputs = defaultInputValues; - this._gitEventData = {}; - this._gitConfiguration = {}; - this._sourceProject = {}; - this._targetProject = {}; - } - - async init() { - this._parsedInputs = this.loadParsedInput(); - this.loadToken(); - this._gitEventData = await this.loadGitEvent(); - this._gitConfiguration = this.loadGitConfiguration(); - const { source, target } = this.loadProject(); - this._sourceProject = source; - this._targetProject = target; - } - - get gitEventData(): EventData { - return this._gitEventData; - } - - get gitConfiguration(): GitConfiguration { - return this._gitConfiguration; - } - - get sourceProject(): ProjectConfiguration { - return this._sourceProject; - } - - get targetProject(): ProjectConfiguration { - return this._targetProject; - } - - get parsedInputs(): InputValues { - return this._parsedInputs; - } - - abstract loadGitConfiguration(): GitConfiguration; - - abstract loadGitEvent(): Promise; - - abstract loadToken(): void; - - abstract getFlowType(): FlowType; - - /** - * Create the source and target project configuration from the github event payload - * @returns a new { source: ProjectConfiguration; target: ProjectConfiguration } instance - */ - loadProject(): { source: ProjectConfiguration; target: ProjectConfiguration } { - return { - source: { - branch: this.gitEventData.head.ref, - repository: this.gitEventData.head.repo?.full_name, - name: this.gitEventData.head.repo?.name, - group: this.gitEventData.head.repo?.owner?.login, - }, - target: { - branch: this.gitEventData.base.ref, - repository: this.gitEventData.base.repo.full_name, - name: this.gitEventData.base.repo.name, - group: this.gitEventData.base.repo.owner.login, - }, - }; - } - - /** - * Validates any user input and returns the stored user input from InputService if there were no errors - * @returns {InputValues} - */ - loadParsedInput(): InputValues { - const inputs: InputValues = Container.get(InputService).inputs; - - // customCommandTreatment values must be of the form: REGEX||REPLACE_REGEX - inputs.customCommandTreatment?.forEach(cct => { - if (cct.split("||").length !== 2) { - logAndThrow("Invalid format for custom command treatment. Required format: Regex||ReplaceRegex"); - } - }); - - // startProject must be of the form: OWNER/PROJECT - if (inputs.startProject && inputs.startProject.split("/").length !== 2) { - logAndThrow("Invalid start project. Start project must be of the form OWNER/PROJECT"); - } - - this.logger.debug(`Received input: ${JSON.stringify(inputs)}`); - - // parsed inputs will always have the default value. No need to check whether it is empty or not - return inputs; - } - - getToolType(): ToolType { - logAndThrow("tools are defined only in CLI"); - } - - getDefaultGithubConfig(): Platform { - return { - id: this.parsedInputs?.defaultGithubId ?? DEFAULT_GITHUB_PLATFORM.id, - tokenId: this.parsedInputs?.defaultGithubTokenId ?? DEFAULT_GITHUB_PLATFORM.tokenId, - apiUrl: this.parsedInputs?.defaultGithubApiUrl ?? process.env.GITHUB_API_URL ?? DEFAULT_GITHUB_PLATFORM.apiUrl, - serverUrl: this.parsedInputs?.defaultGithubServeUrl ?? process.env.GITHUB_SERVER_URL ?? DEFAULT_GITHUB_PLATFORM.serverUrl, - type: PlatformType.GITHUB - }; - } - - getDefaultGitlabConfig(): Platform { - return { - id: this.parsedInputs?.defaultGitlabId ?? DEFAULT_GITLAB_PLATFORM.id, - tokenId: this.parsedInputs?.defaultGitlabTokenId ?? DEFAULT_GITLAB_PLATFORM.tokenId, - apiUrl: this.parsedInputs?.defaultGitlabApiUrl ?? process.env.CI_API_URL ?? DEFAULT_GITLAB_PLATFORM.apiUrl, - serverUrl: this.parsedInputs?.defaultGitlabServeUrl ?? process.env.CI_SERVER_URL ?? DEFAULT_GITLAB_PLATFORM.serverUrl, - type: PlatformType.GITLAB - }; - } - - getDefaultPlatformConfig(): Platform { - if (this._defaultPlatform === PlatformType.GITLAB) { - return this.getDefaultGitlabConfig(); - } - return this.getDefaultGithubConfig(); - } -} diff --git a/src/service/config/cli-configuration.ts b/src/service/config/cli-configuration.ts deleted file mode 100644 index 4e74da2e..00000000 --- a/src/service/config/cli-configuration.ts +++ /dev/null @@ -1,236 +0,0 @@ -import { CLIActionType, ToolType } from "@bc/domain/cli"; -import { EventData, GitConfiguration, ProjectConfiguration, SerializedConfiguration } from "@bc/domain/configuration"; -import { FlowType, InputValues } from "@bc/domain/inputs"; -import { Serializable } from "@bc/domain/serializable"; -import { BaseConfiguration } from "@bc/service/config/base-configuration"; -import { GitAPIService } from "@bc/service/git/git-api-service"; -import { logAndThrow } from "@bc/utils/log"; -import { DEFAULT_GITHUB_PLATFORM, DEFAULT_GITLAB_PLATFORM, PlatformType } from "@kie/build-chain-configuration-reader"; -import Container from "typedi"; - -const PR_URL = /^(https?:\/\/.+\/)([^/\s]+)\/([^/\s]+)\/pull\/(\d+)$/; -const MR_URL = /^(https?:\/\/.+\/)([^/\s]+)\/([^/\s]+)\/-\/merge_requests\/(\d+)$/; - -export class CLIConfiguration - extends BaseConfiguration - implements Serializable -{ - override loadProject(): { source: ProjectConfiguration; target: ProjectConfiguration } { - if (this.parsedInputs.CLICommand === CLIActionType.TOOLS) { - return { source: {}, target: {} }; - } - else if (this.parsedInputs.CLISubCommand === FlowType.BRANCH) { - const projectName = this.parsedInputs.startProject!.split("/"); - const projectConfig = { - branch: this.parsedInputs.branch, - name: projectName[projectName.length - 1], - group: this.parsedInputs.group ?? projectName[0], - repository: this.parsedInputs.startProject, - }; - return { - source: projectConfig, - target: projectConfig, - }; - } else { - return super.loadProject(); - } - } - - /** - * Process user input to produce git configuration - * @returns - */ - loadGitConfiguration(): GitConfiguration { - // user have the option to set the default server url as gitlab's url by setting the CI_SERVER_URL variable - const githubServerUrl = process.env.GITHUB_SERVER_URL ? process.env.GITHUB_SERVER_URL.replace(/\/$/, "") : "https://github.com"; - const gitlabServerUrl = process.env.CI_SERVER_URL?.replace(/\/$/, ""); - const serverUrl = gitlabServerUrl ? gitlabServerUrl : githubServerUrl; - const token = this.getDefaultToken(serverUrl); - let gitConfig: GitConfiguration = { - serverUrl: serverUrl, - serverUrlWithToken: serverUrl.replace("://", `://${token}@`), - }; - - if (this.parsedInputs.CLISubCommand === FlowType.BRANCH) { - const group = this.parsedInputs.group ?? this.parsedInputs.startProject?.split("/")[0]; - if (!group) { - logAndThrow("Specify group option or set project name as GROUP_NAME/REPO_NAME"); - } - gitConfig = { - ...gitConfig, - actor: group, - ref: this.parsedInputs.branch, - }; - } - return gitConfig; - } - - /** - * Produce the event payload file for PR build using the events url. For branch build github event is empty - * @returns - */ - async loadGitEvent(): Promise { - if (this.parsedInputs.CLICommand === CLIActionType.TOOLS) { - return {}; - } - - if (this.parsedInputs.CLISubCommand === FlowType.BRANCH) { - // set github env variables - process.env["GITHUB_HEAD_REF"] = this.parsedInputs.branch; - process.env["GITHUB_BASE_REF"] = this.parsedInputs.branch; - process.env["GITHUB_REPOSITORY"] = this.parsedInputs.startProject; - process.env["GITHUB_ACTOR"] = this.parsedInputs.group ?? this.parsedInputs.startProject!.split("/")[0]; - - // set gitlab env variables - process.env["CI_MERGE_REQUEST_SOURCE_BRANCH_NAME"] = this.parsedInputs.branch; - process.env["CI_MERGE_REQUEST_TARGET_BRANCH_NAME"] = this.parsedInputs.branch; - process.env["CI_PROJECT_ID"] = this.parsedInputs.startProject; - process.env["CI_PROJECT_NAMESPACE"] = this.parsedInputs.group ?? this.parsedInputs.startProject!.split("/")[0]; - return {}; - } - - if (!this.parsedInputs.url) { - logAndThrow("If running from the CLI, event url needs to be defined"); - } - - const urlCheck = this.isGitlabUrl(this.parsedInputs.url) ? - this.parsedInputs.url.match(MR_URL) : - this.parsedInputs.url.match(PR_URL); - - if (urlCheck) { - this.logger.debug("Getting pull request information"); - - - // cannot use the GitAPIService since it needs config service to get the - // platform. To get the platform i need to read the definition file. To - // read the definition file I need know the source and target projects. To - // know the source and target projects i need to load pull request data - const data = await Container.get(GitAPIService).getPullRequest( - urlCheck[2], - urlCheck[3], - parseInt(urlCheck[4]), - ); - - process.env["GITHUB_SERVER_URL"] = urlCheck[1]; - delete process.env["GITHUB_ACTION"]; // doing process.env["GITHUB_ACTION"] = undefined will set to the string "undefined" - process.env["GITHUB_ACTOR"] = data.head.user.login; - process.env["GITHUB_HEAD_REF"] = data.head.ref; - process.env["GITHUB_BASE_REF"] = data.base.ref; - process.env["GITHUB_REPOSITORY"] = data.base.repo.full_name; - process.env["GITHUB_REF"] = `refs/pull/${urlCheck[4]}/merge`; - process.env["CI_SERVER_URL"] = urlCheck[1]; - process.env["CI_PROJECT_NAMESPACE"] = data.head.user.login; - process.env["CI_MERGE_REQUEST_SOURCE_BRANCH_NAME"] = data.head.ref; - process.env["CI_MERGE_REQUEST_TARGET_BRANCH_NAME"] = data.base.ref; - process.env["CI_PROJECT_ID"] = data.base.repo.full_name; - process.env["CI_MERGE_REQUEST_REF_PATH"] = `refs/merge-requests/${urlCheck[4]}/merge`; - - return data; - } - logAndThrow(`Invalid event url ${this.parsedInputs.url}. URL must be a github pull request event url or a github tree url`); - } - - /** - * Set the github token - * @returns - */ - loadToken(): void { - const platform = this.getDefaultPlatformConfig(); - let token: string[] | undefined; - - if (process.env[platform.tokenId]) { - token = [process.env[platform.tokenId]!]; - } - - if (this.parsedInputs.token && this.parsedInputs.token.length > 0) { - token = this.parsedInputs.token; - } - - if (!token) { - logAndThrow("Either a github or gitlab token must be set"); - } - - if (platform.type === PlatformType.GITHUB) { - this.tokenService.setGithubTokenPool(platform.id, token); - } - this.tokenService.setToken(platform.id, token[0]); - } - - override loadParsedInput(): InputValues { - const parsedInput = super.loadParsedInput(); - this._defaultPlatform = this.isGitlabUrl(parsedInput.url) ? - PlatformType.GITLAB : - PlatformType.GITHUB; - return parsedInput; - } - - /** - * Get the flow type if defined otherwise throw an error - * @returns - */ - getFlowType(): FlowType { - const subcmd = this.parsedInputs.CLISubCommand!; - if (Object.values(FlowType).includes(subcmd as FlowType)) { - return subcmd as FlowType; - } - logAndThrow("The CLI subcommand is a tool command. No flow defined"); - } - - /** - * Get the flow type if defined otherwise throw an error - * @returns - */ - override getToolType(): ToolType { - const subcmd = this.parsedInputs.CLISubCommand!; - if (Object.values(ToolType).includes(subcmd as ToolType)) { - return subcmd as ToolType; - } - logAndThrow("The CLI subcommand is a build command. No tools defined"); - } - - setServerUrlWithToken() { - const token = this.getDefaultToken(this.gitConfiguration.serverUrl); - this._gitConfiguration = { - ...this.gitConfiguration, - serverUrlWithToken: this.gitConfiguration.serverUrl?.replace("://", `://${token}@`) - }; - } - - - fromJSON(_json: SerializedConfiguration): CLIConfiguration { - throw new Error("Use the static method"); - } - - toJSON(): SerializedConfiguration { - return { - _gitConfiguration: { - ...this._gitConfiguration, - serverUrlWithToken: "" // remove serverUrlWithToken to avoid leaking token - }, - _gitEventData: this._gitEventData, - _defaultPlatform: this._defaultPlatform, - _parsedInputs: this._parsedInputs, - _sourceProject: this._sourceProject, - _targetProject: this._targetProject - }; - } - - static fromJSON(json: SerializedConfiguration): CLIConfiguration { - const config: CLIConfiguration = Object.assign(new CLIConfiguration(), json); - config.loadToken(); - config.setServerUrlWithToken(); - return config; - } - - private isGitlabUrl(url?: string) { - return url && MR_URL.test(url); - } - - private getDefaultToken(serverUrl?: string) { - return this.tokenService.getToken( - this.isGitlabUrl(serverUrl) ? - DEFAULT_GITLAB_PLATFORM.id : - DEFAULT_GITHUB_PLATFORM.id - ); - } -} diff --git a/src/service/config/configuration-service.ts b/src/service/config/configuration-service.ts deleted file mode 100644 index 9c3c903a..00000000 --- a/src/service/config/configuration-service.ts +++ /dev/null @@ -1,326 +0,0 @@ -import Container, { Service } from "typedi"; -import { NodeExecutionLevel } from "@bc/domain/node-execution"; -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; -import { CLIConfiguration } from "@bc/service/config/cli-configuration"; -import { ActionConfiguration } from "@bc/service/config/action-configuration"; -import { logAndThrow } from "@bc/utils/log"; -import { BaseConfiguration } from "@bc/service/config/base-configuration"; -import { TreatmentOptions } from "@bc/domain/treatment-options"; -import { ProjectConfiguration, SerializedConfigurationService } from "@bc/domain/configuration"; -import { FlowType } from "@bc/domain/inputs"; -import { DefinitionFile, Post, Pre, Node, Platform, DEFAULT_GITLAB_PLATFORM, DEFAULT_GITHUB_PLATFORM, PlatformType } from "@kie/build-chain-configuration-reader"; -import { DefinitionFileReader } from "@bc/service/config/definition-file-reader"; -import { CLIActionType, ToolType } from "@bc/domain/cli"; -import { GitTokenService } from "@bc/service/git/git-token-service"; -import { Serializable } from "@bc/domain/serializable"; - -@Service() -export class ConfigurationService - implements Serializable -{ - private configuration: BaseConfiguration; - private tokenService: GitTokenService; - private _nodeChain: Node[]; - private _definitionFile: DefinitionFile; - - constructor() { - switch (Container.get(constants.CONTAINER.ENTRY_POINT)) { - case EntryPoint.CLI: - this.configuration = new CLIConfiguration(); - break; - case EntryPoint.GITHUB_EVENT: - this.configuration = new ActionConfiguration(); - break; - default: - logAndThrow("Invalid entrypoint. Please contact with the administrator or report and issue to build-chain tool repository"); - } - this._nodeChain = []; - this._definitionFile = { version: "2.1" }; - this.tokenService = Container.get(GitTokenService); - } - - get nodeChain(): Node[] { - return this._nodeChain; - } - - get definitionFile(): DefinitionFile { - return this._definitionFile; - } - - /** - * Load all necessary data for the configuration object - */ - async init() { - await this.configuration.init(); - const definitionFileReader = new DefinitionFileReader(this.configuration); - this._definitionFile = await definitionFileReader.getDefinitionFile(); - this._nodeChain = await definitionFileReader.generateNodeChain(this.getStarterProjectName()); - } - - /** - * Get the name of the start project which produces node chain for build-chain - * @returns {string} - */ - getStarterProjectName(): string | undefined { - return this.getStarterProjectNameFromInput() ?? - process.env.GITHUB_REPOSITORY ?? - this.configuration.gitEventData.base?.repo.full_name; - } - - - /** - * Get the name of the start project which produces node chain for build-chain - * @returns {string} - */ - getStarterProjectNameFromInput(): string | undefined { - return this.configuration.parsedInputs.startProject; - } - - /** - * Get the name of the project triggering build-chain - * @returns {string} - */ - getProjectTriggeringTheJobName(): string { - return process.env.GITHUB_REPOSITORY ?? - this.configuration.gitEventData.base.repo.full_name ?? - this.configuration.parsedInputs.startProject; - } - - /** - * Check whether the given node is the starter project - * @param node - * @returns {Boolean} true if the node is the starter project - */ - isNodeStarter(node: Node): boolean { - return node.project === this.getStarterProjectName(); - } - - /** - * Check whether the given node is the triggering node - * @param node - * @returns {Boolean} true if the node is the triggering node - */ - isNodeTriggeringTheJob(node: Node): boolean { - return node.project === this.getProjectTriggeringTheJobName(); - } - - /** - * Finds the starter node - * @returns {Node} starter node - */ - getStarterNode(): Node { - const starterNode = this.nodeChain.find(node => this.isNodeStarter(node)); - if (!starterNode) { - logAndThrow(`There's no project ${this.getStarterProjectName()} in the chain - This is normally due the project starting the job (or the one selected to behave like so it's not in the project tree information. - Please choose a different project like starter or define the project ${this.getStarterProjectName()} in the tree.`); - } - return starterNode; - } - - /** - * Finds the node triggering the job - * @returns {Node} starter node - */ - getProjectTriggeringTheJob(): Node { - return this.nodeChain.find(node => this.isNodeTriggeringTheJob(node)) ?? this.getStarterNode(); - } - - /** - * Gets the execution level (current, upstream or downstream) for the given node - * @param node - * @returns {NodeExecutionLevel} Upstream, current or downstream - */ - getNodeExecutionLevel(node: Node): NodeExecutionLevel { - const starterNodeIndex = this.nodeChain.indexOf(this.getStarterNode()); - const currentNodeIndex = this.nodeChain.indexOf(node); - if (currentNodeIndex < starterNodeIndex) { - return NodeExecutionLevel.UPSTREAM; - } else if (currentNodeIndex > starterNodeIndex) { - return NodeExecutionLevel.DOWNSTREAM; - } else { - return NodeExecutionLevel.CURRENT; - } - } - - /** - * Checks whether execution needs to be skipped for the given node - * @param node - * @returns {Boolean} true if execution needs to be skipped otherwise false - */ - skipExecution(node: Node): boolean { - if (this.configuration.parsedInputs.skipExecution) { - return true; - } - return this.configuration.parsedInputs.skipProjectExecution ? this.configuration.parsedInputs.skipProjectExecution.includes(node.project) : false; - } - - /** - * Checks whether given node needs to be checked out or not - * @param node - * @returns {Boolean} true if checking out needs to be skipped for the given node otherwise false - */ - skipCheckout(node: Node): boolean { - if (this.configuration.parsedInputs.skipCheckout) { - return true; - } - return this.configuration.parsedInputs.skipProjectCheckout ? this.configuration.parsedInputs.skipProjectCheckout.includes(node.project) : false; - } - - /** - * Checks whether checkout should be sequential or parallel - * @returns {Boolean} true if checkout should be sequential otherwise false - */ - skipParallelCheckout(): boolean { - return this.configuration.parsedInputs.skipParallelCheckout; - } - - /** - * Checks whether projects should be executed sequential or parallel - * @returns {Boolean} true if project execution should be parallel otherwise false - */ - isParallelExecutionEnabled(): boolean { - return this.configuration.parsedInputs.enableParallelExecution; - } - - - /** - * Parses user input from custom command treatment option to create the treatment option object - * @returns {TreatmentOptions} Construct the treatment options domain object - */ - getTreatmentOptions(): TreatmentOptions { - if (this.configuration.parsedInputs.customCommandTreatment) { - return { - replaceExpressions: this.configuration.parsedInputs.customCommandTreatment, - }; - } - return {}; - } - - /** - * Returns the information for the target repository. For PR flow types it is the base branch - * @returns - */ - getTargetProject(): ProjectConfiguration { - return this.configuration.targetProject; - } - - /** - * Returns the information for the source repository. For PR flow types it is the head branch - * @returns - */ - getSourceProject(): ProjectConfiguration { - return this.configuration.sourceProject; - } - - /** - * Root folder is outputFolder if defined via options otherwise GITHUB_WORKSPACE. - * If both of these are undefined, it is the current working directory - * @returns - */ - getRootFolder(): string { - return this.configuration.parsedInputs.outputFolder ?? process.env.GITHUB_WORKSPACE ?? process.cwd(); - } - - /** - * Return the flow type of the current build or throw an error is the build is not - * of any flow type - * @returns - */ - getFlowType(): FlowType { - return this.configuration.getFlowType(); - } - - /** - * Returns the clone url for the given repo group and name - * @param group owner of the repository - * @param repoName name of the repository - * @returns - */ - getCloneUrl(group: string, repoName: string): string { - const platform = this.getPlatform(group, repoName); - const token = this.tokenService.getToken(platform.id, platform.tokenId); - const oauth2Prefix = platform.type === PlatformType.GITLAB ? "oauth2:" : ""; - const serverUrl = token ? - platform.serverUrl.replace("://", `://${oauth2Prefix}${token}@`) : - platform.serverUrl; - return `${serverUrl}/${group}/${repoName}`; - } - - getPre(): Pre | undefined { - return this.definitionFile.pre; - } - - getPost(): Post | undefined { - return this.definitionFile.post; - } - - getDefinitionFileUrl(): string { - return this.configuration.parsedInputs.definitionFile; - } - - getEventUrl(): string { - return this.getFlowType() === FlowType.BRANCH ? "" : this.configuration.gitEventData.html_url; - } - - getGroupName(): string | undefined { - return this.getFlowType() === FlowType.BRANCH ? this.configuration.parsedInputs.group : undefined; - } - - getToolType(): ToolType { - return this.configuration.getToolType(); - } - - isToolsCommand(): boolean { - return this.configuration.parsedInputs.CLICommand === CLIActionType.TOOLS; - } - - failAtEnd(): boolean { - return this.configuration.parsedInputs.failAtEnd ?? false; - } - - getPlatform(owner: string, repo: string): Platform { - const platformId = this.nodeChain.find(n => n.project === `${owner}/${repo}`)?.platformId; - let platform; - if (platformId === DEFAULT_GITHUB_PLATFORM.id) { - platform = DEFAULT_GITHUB_PLATFORM; - } else if (platformId === DEFAULT_GITLAB_PLATFORM.id) { - platform = DEFAULT_GITLAB_PLATFORM; - } else { - platform = this.getPlatformById(platformId); - } - return platform ?? this.configuration.getDefaultPlatformConfig(); - } - - getPlatformById(id?: string) { - return this.definitionFile.platforms?.find(p => p.id === id); - } - - - getProjectsToRecheckout() { - return this.configuration.parsedInputs?.recheckout ?? []; - } - - toJSON(): SerializedConfigurationService { - if (this.configuration instanceof CLIConfiguration) { - return { - configuration: this.configuration.toJSON(), - _definitionFile: this._definitionFile, - _nodeChain: this._nodeChain - }; - } - throw new Error("Serialization is enabled only for CLI"); - } - - fromJSON(_json: SerializedConfigurationService): ConfigurationService { - throw new Error("Use static method"); - } - - static fromJSON(json: SerializedConfigurationService): ConfigurationService { - return Object.assign(new ConfigurationService(), { - ...json, - configuration: CLIConfiguration.fromJSON(json.configuration) - }); - } -} diff --git a/src/service/config/definition-file-reader.ts b/src/service/config/definition-file-reader.ts deleted file mode 100644 index 0d21f3d8..00000000 --- a/src/service/config/definition-file-reader.ts +++ /dev/null @@ -1,212 +0,0 @@ -import { CLIActionType, ToolType } from "@bc/domain/cli"; -import { FlowType } from "@bc/domain/inputs"; -import { BaseConfiguration } from "@bc/service/config/base-configuration"; -import { GitTokenService } from "@bc/service/git/git-token-service"; -import { BaseLoggerService } from "@bc/service/logger/base-logger-service"; -import { LoggerService } from "@bc/service/logger/logger-service"; -import { logAndThrow } from "@bc/utils/log"; -import { - DefinitionFile, - getTreeForProject, - readDefinitionFile, - Node, - ReaderOpts, - getFullDownstreamProjects, - getUpstreamProjects, - Platform -} from "@kie/build-chain-configuration-reader"; -import Container from "typedi"; - -export class DefinitionFileReader { - private configuration: BaseConfiguration; - private logger: BaseLoggerService; - private tokenService: GitTokenService; - private defaultPlatform: Platform; - - constructor(configuration: BaseConfiguration) { - this.configuration = configuration; - this.logger = Container.get(LoggerService).logger; - this.tokenService = Container.get(GitTokenService); - this.defaultPlatform = configuration.getDefaultPlatformConfig(); - } - - private async getUpstreamOrFullDownstreamProjects(starterProject: string, options: ReaderOpts): Promise { - if (this.configuration.parsedInputs.fullProjectDependencyTree) { - return getFullDownstreamProjects( - this.configuration.parsedInputs.definitionFile, - starterProject, - options - ); - } else { - return getUpstreamProjects( - this.configuration.parsedInputs.definitionFile, - starterProject, - options - ); - } - } - - private async generateNodeChainWithOptions( - starterProject: string, - options: ReaderOpts - ): Promise { - let nodeChain: Node[]; - switch (this.configuration.getFlowType()) { - case FlowType.BRANCH: { - nodeChain = await this.getUpstreamOrFullDownstreamProjects( - starterProject, - options - ); - break; - } - case FlowType.CROSS_PULL_REQUEST: { - nodeChain = await getUpstreamProjects( - this.configuration.parsedInputs.definitionFile, - starterProject, - options - ); - break; - } - case FlowType.FULL_DOWNSTREAM: { - nodeChain = await getFullDownstreamProjects( - this.configuration.parsedInputs.definitionFile, - starterProject, - options - ); - break; - } - case FlowType.SINGLE_PULL_REQUEST: { - const node = await getTreeForProject( - this.configuration.parsedInputs.definitionFile, - starterProject, - options - ); - if (!node) { - throw new Error("Starting project not found"); - } - nodeChain = [node]; - } - } - return nodeChain; - } - - async getDefinitionFileForBuild(): Promise { - try { - return await readDefinitionFile( - this.configuration.parsedInputs.definitionFile, - { - ...this.configuration.sourceProject, - token: this.tokenService.getToken(this.defaultPlatform.id), - } - ); - } catch (err) { - this.logger.debug( - "Did not find correct definition file, trying target" - ); - } - - try { - return await readDefinitionFile( - this.configuration.parsedInputs.definitionFile, - { - ...this.configuration.targetProject, - token: this.tokenService.getToken(this.defaultPlatform.id), - } - ); - } catch (err) { - this.logger.debug( - "Did not find correct definition file, trying with default placeholder values" - ); - } - - try { - return await readDefinitionFile( - this.configuration.parsedInputs.definitionFile, { - token: this.tokenService.getToken(this.defaultPlatform.id) - } - ); - } catch(err) { - logAndThrow(`Invalid definition file. ${err}`); - } - } - - async getDefinitionFileForTools(): Promise { - switch(this.configuration.getToolType()) { - case ToolType.PROJECT_LIST: - return this.getDefinitionFileForBuild(); - case ToolType.PLAN: - case ToolType.RESUME: - return { version: "2.1" }; - default: - logAndThrow(`Invalid tool ${this.configuration.getToolType()}`); - } - } - - async generateNodeChainForBuild(starterProject: string): Promise { - try { - return await this.generateNodeChainWithOptions(starterProject, { - ...this.configuration.sourceProject, - token: this.tokenService.getToken(this.defaultPlatform.id), - }); - } catch (err) { - this.logger.debug( - "Did not find correct definition on file, trying target" - ); - } - - try { - return await this.generateNodeChainWithOptions(starterProject, { - ...this.configuration.targetProject, - token: this.tokenService.getToken(this.defaultPlatform.id), - }); - } catch (err) { - this.logger.debug( - "Did not find correct definition file, trying with default placeholder values" - ); - } - - try { - return await this.generateNodeChainWithOptions(starterProject, { - token: this.tokenService.getToken(this.defaultPlatform.id), - }); - } catch(err) { - logAndThrow(`Invalid definition file. ${err}`); - } - } - - async generateNodeChainForTools(starterProject?: string): Promise { - switch(this.configuration.getToolType()) { - case ToolType.PROJECT_LIST: - if (starterProject) { - return this.getUpstreamOrFullDownstreamProjects( - starterProject, {token: this.tokenService.getToken(this.defaultPlatform.id)} - ); - } - throw logAndThrow("Start project needs to be defined or build chain must be run in a Github environment"); - case ToolType.PLAN: - case ToolType.RESUME: - return []; - default: - logAndThrow(`Invalid tool ${this.configuration.getToolType()}`); - } - } - - async generateNodeChain(starterProject?: string): Promise { - if (this.configuration.parsedInputs.CLICommand === CLIActionType.TOOLS) { - return this.generateNodeChainForTools(starterProject); - } else { - if (starterProject) { - return this.generateNodeChainForBuild(starterProject); - } - throw logAndThrow("Start project needs to be defined or build chain must be run in a Github environment"); - } - } - - async getDefinitionFile(): Promise { - if (this.configuration.parsedInputs.CLICommand === CLIActionType.TOOLS) { - return this.getDefinitionFileForTools(); - } else { - return this.getDefinitionFileForBuild(); - } - } -} diff --git a/src/service/flow/flow-service.ts b/src/service/flow/flow-service.ts deleted file mode 100644 index 70060ef9..00000000 --- a/src/service/flow/flow-service.ts +++ /dev/null @@ -1,236 +0,0 @@ -import { CheckedOutNode } from "@bc/domain/checkout"; -import { ExecutionResult } from "@bc/domain/execute-command-result"; -import { ExecuteNodeResult } from "@bc/domain/execute-node-result"; -import { ExecutionPhase } from "@bc/domain/execution-phase"; -import { FlowResult, SerializedFlowService, defaultSerializedFlowService } from "@bc/domain/flow"; -import { NodeExecution } from "@bc/domain/node-execution"; -import { Serializable } from "@bc/domain/serializable"; -import { ArtifactService } from "@bc/service/artifacts/artifact-service"; -import { CheckoutService } from "@bc/service/checkout/checkout-service"; -import { ExecuteCommandService } from "@bc/service/command/execute-command-service"; -import { ConfigurationService } from "@bc/service/config/configuration-service"; -import { BaseLoggerService } from "@bc/service/logger/base-logger-service"; -import { LoggerService } from "@bc/service/logger/logger-service"; -import Container, { Service } from "typedi"; - -@Service() -export class FlowService implements Serializable { - private configService: ConfigurationService; - private checkoutService: CheckoutService; - private executor: ExecuteCommandService; - private logger: BaseLoggerService; - private artifactService: ArtifactService; - private savedExecutionResult: SerializedFlowService; - private currentExecutionResult: SerializedFlowService; - - constructor() { - this.configService = Container.get(ConfigurationService); - this.checkoutService = Container.get(CheckoutService); - this.executor = Container.get(ExecuteCommandService); - this.artifactService = Container.get(ArtifactService); - this.logger = Container.get(LoggerService).logger; - this.savedExecutionResult = defaultSerializedFlowService; - this.currentExecutionResult = defaultSerializedFlowService; - } - - async run(): Promise { - this.logger.startGroup("Execution Plan"); - this.printExecutionPlan(); - if (this.savedExecutionResult.resumeFrom !== -1) { - this.logger.info( - `Continuing execution from ${this.configService.nodeChain[this.savedExecutionResult.resumeFrom].project}` - ); - } - this.logger.endGroup(); - - this.logger.startGroup( - `Checking out ${this.configService.getStarterProjectName()} and its dependencies (${this.configService.nodeChain.length} projects in total). It can take some time.` - ); - const checkoutInfo = await this.checkoutService.checkoutDefinitionTree(); - this.logger.endGroup(); - this.logger.startGroup("Checkout summary"); - this.printCheckoutSummary(checkoutInfo); - this.logger.endGroup(); - - // update it to end of list if there were no nodes - const resumeFrom = - this.savedExecutionResult.resumeFrom === -1 - ? this.savedExecutionResult.executionResult.length - : this.savedExecutionResult.resumeFrom; - - /** - * Cannot directly map checkoutInfo into NodeExecution array since the order of nodes might change when parallely checking - * out the node chain - */ - const nodeChainForExecution: NodeExecution[] = this.configService.nodeChain - .slice(resumeFrom) - .map(node => ({ - node, - // nodeCheckoutInfo will never be undefined since checkoutInfo is constructed from node chain and so node project will exist - cwd: checkoutInfo.find(info => info.node.project === node.project)!.checkoutInfo?.repoDir, - })); - - // print any saved results - const savedResults = this.savedExecutionResult.executionResult.slice(0, resumeFrom); - savedResults.forEach(s => { - this.logger.startGroup(`Already executed ${s[0].node.project} successfully in the previous run. Printing summary`); - this.printExecutionSummary(s); - this.logger.endGroup(); - }); - - const executionResult = await this.executor.executeNodeChain(nodeChainForExecution, this.printExecutionSummary.bind(this)); - this.currentExecutionResult = { - ...this.currentExecutionResult, - executionResult: savedResults.concat(executionResult) - }; - - // archive artifacts - this.logger.startGroup("Uploading artifacts"); - const artifactUploadResults = await this.artifactService.uploadNodes(this.configService.nodeChain, this.configService.getStarterNode()); - this.logger.endGroup(); - - return { checkoutInfo, artifactUploadResults, executionResult: this.currentExecutionResult.executionResult }; - } - - toJSON(): SerializedFlowService { - const firstNodeThatFailedExecution = this.currentExecutionResult.executionResult.findIndex( - res => !!res.find( - r => !!r.executeCommandResults.find(c => c.result === ExecutionResult.NOT_OK) - ) - ); - - return { - ...this.currentExecutionResult, - resumeFrom: firstNodeThatFailedExecution - }; - } - - fromJSON(_json: SerializedFlowService): FlowService { - throw new Error("Use static method"); - } - - static fromJSON(json: SerializedFlowService): FlowService { - return Object.assign(new FlowService(), { savedExecutionResult: json }); - } - - /** - * Prints the execution plan for the node chain in the following format: - * - * 3 projects will be executed - * [owner/project] - * Level type: current - * [before] - * cmd1 - * cmd2 - * [command] - * cmd1 - * [after] - * cmd1 - * [abc/xyz] - * Level type: downstream - * No command will be executed (this project will be skipped) - * [def/ghi] - * Level type: upstream - * [before] - * cmd1 - * [after] - * cmd1 - */ - private printExecutionPlan() { - this.logger.info(`${this.configService.nodeChain.length} projects will be executed`); - this.configService.nodeChain.forEach(node => { - const nodeLevel = this.configService.getNodeExecutionLevel(node); - this.logger.info(`[${node.project}]`); - this.logger.info(`\t Level type: ${nodeLevel}`); - - if (this.configService.skipExecution(node)) { - this.logger.info("\t No command will be executed (this project will be skipped)"); - } else { - const before = this.executor.getNodeCommands(node, ExecutionPhase.BEFORE, nodeLevel); - const current = this.executor.getNodeCommands(node, ExecutionPhase.CURRENT, nodeLevel); - const after = this.executor.getNodeCommands(node, ExecutionPhase.AFTER, nodeLevel); - - if (before?.length) { - this.logger.info(`\t [${ExecutionPhase.BEFORE}]`); - this.logger.info(`\t\t ${before.join("\n")}`); - } - - if (current?.length) { - this.logger.info(`\t [${ExecutionPhase.CURRENT}]`); - this.logger.info(`\t\t ${current.join("\n")}`); - } - - if (after?.length) { - this.logger.info(`\t [${ExecutionPhase.AFTER}]`); - this.logger.info(`\t\t ${after.join("\n")}`); - } - } - }); - } - - /** - * Prints the checkout info for the node chain in the following format: - * - * [owner/project] - * Project taken from owner/project:main - * Merged owner1/project-forked: - * [abc/xyz] - * This project wasn't checked out - * [def/ghi] - * Project taken from def/ghi:dev - */ - private printCheckoutSummary(checkoutInfo: CheckedOutNode[]) { - checkoutInfo.forEach(info => { - this.logger.info(`[${info.node.project}]`); - if (info.checkoutInfo) { - this.logger.info(`\t Project taken from ${info.checkoutInfo.targetGroup}/${info.checkoutInfo.targetName}:${info.checkoutInfo.targetBranch} (Branch HEAD ${info.branchHead?.trim()})`); - if (info.checkoutInfo.merge) { - this.logger.info( - `\t Merged ${info.checkoutInfo.sourceGroup}/${info.checkoutInfo.sourceName}:${info.checkoutInfo.sourceBranch} into branch ${info.checkoutInfo.targetBranch}` - ); - } - } else { - this.logger.info("\t This project wasn't checked out"); - } - }); - } - - /** - * Prints the checkout info for the node chain in the following format: - * - * [owner/project] - * [OK] cmd1 [Executed in: 10s] - * [abc/xyz] - * No commands were found for this project - * [def/ghi] - * [NOT_OK] cmd2 [Executed in: 5s] - * Error: msg - */ - private printExecutionSummary(result: ExecuteNodeResult[]) { - this.printExecutionSummaryForPhase(result[0], ExecutionPhase.BEFORE); - this.printExecutionSummaryForPhase(result[1], ExecutionPhase.CURRENT); - this.printExecutionSummaryForPhase(result[2], ExecutionPhase.AFTER); - } - - private printExecutionSummaryForPhase(result: ExecuteNodeResult, phase: ExecutionPhase) { - if (this.isNodeExecutionSkipped(result)) { - this.logger.info(`[${phase.toUpperCase()}] Skipped ${result.node.project}`); - } else { - if (!result.executeCommandResults.length) { - this.logger.info(`[${phase.toUpperCase()}] No commands were found for ${result.node.project}`); - } - result.executeCommandResults.forEach(cmdRes => { - this.logger.startGroup(`[${phase.toUpperCase()}] [${result.node.project}] ${cmdRes.command}`); - this.logger.info(`${cmdRes.result} [Executed in ${cmdRes.time} ms]`); - if (cmdRes.result === ExecutionResult.NOT_OK) { - this.logger.error(cmdRes.errorMessage); - } - this.logger.endGroup(); - }); - } - } - - private isNodeExecutionSkipped(result: ExecuteNodeResult) { - return !!result.executeCommandResults.find(res => res.result === ExecutionResult.SKIP); - } -} diff --git a/src/service/git/base-git-api-client.ts b/src/service/git/base-git-api-client.ts deleted file mode 100644 index 70efcba4..00000000 --- a/src/service/git/base-git-api-client.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { Pulls, Repo } from "@bc/domain/base-git-api-client"; -import { GitTokenService } from "@bc/service/git/git-token-service"; -import { BaseLoggerService } from "@bc/service/logger/base-logger-service"; -import { LoggerService } from "@bc/service/logger/logger-service"; -import Container from "typedi"; - -export abstract class BaseGitAPIClient { - protected tokenService: GitTokenService; - protected tokenServiceId: string; - protected baseUrl: string; - protected logger: BaseLoggerService; - - constructor(baseUrl: string, tokenServiceId: string) { - this.tokenService = Container.get(GitTokenService); - this.tokenServiceId = tokenServiceId; - this.baseUrl = baseUrl; - this.logger = Container.get(LoggerService).logger; - } - - abstract get repos(): { - getBranch: ( - args: Repo["getBranch"]["parameters"] - ) => Promise; - get: (args: Repo["get"]["parameters"]) => Promise; - listForkName: ( - args: Repo["listForkName"]["parameters"] - ) => Promise; - getForkNameForTargetRepoGivenSourceOwner: ( - args: Repo["getForkNameForTargetRepoGivenSourceOwner"]["parameters"] - ) => Promise; - }; - - abstract get pulls(): { - list: ( - args: Pulls["list"]["parameters"] - ) => Promise; - get: ( - args: Pulls["get"]["parameters"] - ) => Promise; - }; -} diff --git a/src/service/git/gerrit-api-client.ts b/src/service/git/gerrit-api-client.ts deleted file mode 100644 index e1b0f785..00000000 --- a/src/service/git/gerrit-api-client.ts +++ /dev/null @@ -1,151 +0,0 @@ -import { Pulls, Repo } from "@bc/domain/base-git-api-client"; -import { BaseGitAPIClient } from "@bc/service/git/base-git-api-client"; -import axios, { Axios } from "axios"; - -export class GerritAPIClient extends BaseGitAPIClient { - private client: Axios; - - constructor(baseUrl: string, id: string) { - super(baseUrl, id); - this.client = axios.create({ - baseURL: this.baseUrl, - headers: { - Authorization: `Basic ${this.tokenService.getToken(id)}`, - "User-Agent": "kiegroup/github-build-chain-action", - }, - }); - } - - get repos() { - return { - getBranch: this.getBranch.bind(this), - get: this.getRepo.bind(this), - listForkName: this.listForkName.bind(this), - getForkNameForTargetRepoGivenSourceOwner: - this.getForkNameForTargetRepoGivenSourceOwner.bind(this), - }; - } - - get pulls() { - return { - list: this.listPulls.bind(this), - get: this.getPullRequest.bind(this), - }; - } - - private async getBranch(args: Repo["getBranch"]["parameters"]) { - const projectId = this.getProjectId(args.owner, args.repo); - const { data, status } = await this.client.get( - `/projects/${projectId}/branches/${args.branch}` - ); - return { data, status }; - } - - private async getRepo(args: Repo["get"]["parameters"]) { - const projectId = this.getProjectId(args.owner, args.repo); - const { data, status } = await this.client.get(`/projects/${projectId}`); - return { data, status }; - } - - private async listForkName(_args: Repo["listForkName"]["parameters"]) { - this.logger.debug( - "Gerrit does not have the concept of forking. Returning empty array" - ); - return { status: 200, data: [] }; - } - - private async getForkNameForTargetRepoGivenSourceOwner( - _args: Repo["getForkNameForTargetRepoGivenSourceOwner"]["parameters"] - ) { - this.logger.debug( - "Gerrit does not have the concept of forking. Returning undefined" - ); - return { status: 200, data: undefined }; - } - - private async listPulls(args: Pulls["list"]["parameters"]) { - let state; - switch (args.state) { - case "opened": - state = "open"; - break; - case "closed": - case "merged": - state = "merged"; - } - - // looks like gerrit does not have any query for head branch - let query = `project:${args.owner}/${args.repo}`; - if (state) { - query += `+status:${state}`; - } - if (args.base) { - query += `+branch:${args.base}`; - } - const { data, status } = await this.client.get("/changes/", { - params: { - q: query, - }, - }); - return { data, status }; - } - - private async getPullRequest(args: Pulls["get"]["parameters"]) { - const projectId = this.getProjectId(args.owner, args.repo); - const { data, status } = await this.client.get( - `/changes/${projectId}~${args.pull_number}` - ); - const eventData = data as { - branch: string; - current_revision: string; - } & { - [key: string]: { - fetch: { - "anonymous http": { - url: string; - ref: string; - }; - }; - web_links: [ - { - name: "gitweb"; - url: string; - }, - { - name: "browse"; - url: string; - } - ]; - }; - }; - - return { - data: { - html_url: `${ - eventData[eventData.current_revision].fetch["anonymous http"].url - }${eventData[eventData.current_revision].web_links[1].url}`, - head: { - user: { - login: args.owner, // there are no forks so owner is same as base - }, - ref: eventData.current_revision, - }, - base: { - ref: eventData.branch, - repo: { - full_name: `${args.owner}/${args.repo}`, - name: args.repo, - owner: { - login: args.owner, - }, - }, - }, - }, - status, - }; - } - - private getProjectId(owner: string, repo: string) { - return encodeURIComponent(`${owner}/${repo}`); - } -} diff --git a/src/service/git/git-api-client.ts b/src/service/git/git-api-client.ts deleted file mode 100644 index 4060d54b..00000000 --- a/src/service/git/git-api-client.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { ConfigurationService } from "@bc/service/config/configuration-service"; -import { BaseGitAPIClient } from "@bc/service/git/base-git-api-client"; -import { GerritAPIClient } from "@bc/service/git/gerrit-api-client"; -import { GitTokenService } from "@bc/service/git/git-token-service"; -import { GitHubAPIClient } from "@bc/service/git/github-api-client"; -import { GitlabAPIClient } from "@bc/service/git/gitlab-api-client"; -import { PlatformType } from "@kie/build-chain-configuration-reader"; -import Container from "typedi"; - -export class GitAPIClient { - private config: ConfigurationService; - private gitTokenService: GitTokenService; - private clients: Record; - - constructor() { - this.config = Container.get(ConfigurationService); - this.gitTokenService = Container.get(GitTokenService); - this.clients = {}; - } - - rest(owner: string, repo: string): BaseGitAPIClient { - const platform = this.config.getPlatform(owner, repo); - - if (!this.clients[platform.id]) { - this.gitTokenService.setTokenUsingEnv(platform.id, platform.tokenId); - switch (platform.type) { - case PlatformType.GITHUB: - this.clients[platform.id] = new GitHubAPIClient( - platform.apiUrl, - platform.id - ); - break; - case PlatformType.GITLAB: - this.clients[platform.id] = new GitlabAPIClient( - platform.apiUrl, - platform.id - ); - break; - case PlatformType.GERRIT: - this.clients[platform.id] = new GerritAPIClient( - platform.apiUrl, - platform.id - ); - break; - default: - throw new Error(`${platform} is not supported`); - } - } - return this.clients[platform.id]; - } -} diff --git a/src/service/git/git-api-service.ts b/src/service/git/git-api-service.ts deleted file mode 100644 index e731b6d5..00000000 --- a/src/service/git/git-api-service.ts +++ /dev/null @@ -1,230 +0,0 @@ -import { NotFoundError } from "@bc/domain/errors"; -import { BaseLoggerService } from "@bc/service/logger/base-logger-service"; -import { LoggerService } from "@bc/service/logger/logger-service"; -import { logAndThrow } from "@bc/utils/log"; -import { RequestError } from "@octokit/request-error"; -import Container, { Service } from "typedi"; -import { GitAPIClient } from "@bc/service/git/git-api-client"; - -@Service() -export class GitAPIService { - private readonly logger: BaseLoggerService; - private readonly client: GitAPIClient; - - constructor() { - this.logger = Container.get(LoggerService).logger; - this.client = new GitAPIClient(); - } - - /** - * Check whether the given branch exists for the given repo and owner - * @param owner repo owner - * @param repo repo name - * @param branch branch that we need to check for existence - * @returns whether branch exists or not - */ - async doesBranchExist( - owner: string, - repo: string, - branch: string - ): Promise { - try { - this.logger.debug( - `Making a github API call to get branch ${branch} for ${owner}/${repo}` - ); - await this.client - .rest(owner, repo) - .repos.getBranch({ owner, repo, branch }); - return true; - } catch (err) { - this.logger.warn( - this.getErrorMessage( - err, - `project github.com/${owner}/${repo}:${branch} does not exist. It's not necessarily an error.` - ) - ); - return false; - } - } - - /** - * Checks whether the given repo has any open pull requests for a given head branch either in the forked repo or in the original repo - * @param owner repo owner - * @param repo repo name - * @param head source/head branch to filter PRs by - * @param base base branch to filter PRs by - * @returns whether there is any open pull request - */ - async hasPullRequest( - owner: string, - repo: string, - head?: string, - base?: string - ): Promise { - let query: { - owner: string; - repo: string; - state?: "opened" | "closed" | "merged"; - base?: string; - head?: string; - } = { - owner, - repo, - state: "opened", - }; - if (!base && !head) { - logAndThrow( - `[${owner}/${repo}] Either head or base needs to be defined while requesting pull request information` - ); - } - if (base) { - query = { ...query, base }; - } - if (head) { - query = { ...query, head }; - } - try { - this.logger.debug( - `Making a github API call to check whether there is any open pull request from ${head} to ${base} for ${owner}/${repo}` - ); - const { status, data } = await this.client - .rest(owner, repo) - .pulls.list(query); - return status === 200 && data.length > 0; - } catch (err) { - let msg = `Error getting pull request list from https://api.github.com/repos/${owner}/${repo}/pulls?state=open`; - if (base) { - msg += `&base=${base}`; - } - if (head) { - msg += `&head=${head}`; - } - - this.logger.error(this.getErrorMessage(err, msg)); - throw err; - } - } - - /** - * Possible replacement of getRepository, getForkedProject and build-chain-flow-helper,js/getForkedProjectName - * - * getForkedProjectName basically gets the name if source and target owner are same. Otherwise it finds all the forked projects - * for target owner's repo and returns the name of the forked project whose owner is source owner - */ - /** - * Returns the project name of the forked repo - * @param targetOwner the actual owner of the given repo - * @param sourceOwner the owner of the forked repo - * @param repo repo name - * @returns project name of the forked repo - */ - async getForkName( - targetOwner: string, - sourceOwner: string, - repo: string - ): Promise { - try { - // check whether there is a fork with the same name as repo name - this.logger.info(`Checking if ${targetOwner}/${repo} is forked to ${sourceOwner}/${repo}`); - const repoName = await this.checkIfRepositoryExists(sourceOwner, repo); - - if (repoName) { - this.logger.info(`Fork ${sourceOwner}/${repo} found.`); - return repoName; - } else if (targetOwner !== sourceOwner) { - /** - * find repo from fork list. we reach this case only if we are in the edge case where the forked repo's name is different - * from the original one - */ - this.logger.info(`Fork ${sourceOwner}/${repo} does not exist. Trying to find a fork with a different name in ${sourceOwner}`); - const forkName = ( - await this.client - .rest(targetOwner, repo) - .repos.getForkNameForTargetRepoGivenSourceOwner({ - targetOwner, - targetRepo: repo, - sourceOwner, - }) - ).data; - if (forkName) { - this.logger.info(`Fork ${sourceOwner}/${forkName} found from ${targetOwner}/${repo}`); - return forkName; - } - } - throw new NotFoundError(); - } catch (err) { - this.logger.info(`Fork for ${targetOwner}/${repo} not found where owner is ${sourceOwner}`); - throw err; - } - } - - /** - * Returns the pull request info of a given repo and pr number - * @param owner the owner of the repo - * @param repo the name of the repo - * @param pullNumber the pr number - * @returns pull request info - */ - async getPullRequest(owner: string, repo: string, pullNumber: number) { - try { - this.logger.debug( - `Making a github API call to get pull request info for ${owner}/${repo} PR #${pullNumber}` - ); - const { data } = await this.client.rest(owner, repo).pulls.get({ - owner, - repo, - pull_number: pullNumber, - }); - return data; - } catch (err) { - this.logger.error( - this.getErrorMessage( - err, - `Failed to fetch pull ${pullNumber} for ${owner}/${repo}.` - ) - ); - throw err; - } - } - - private async checkIfRepositoryExists( - owner: string, - repo: string - ): Promise { - try { - this.logger.debug( - `Making a github API call to check whether ${owner}/${repo} exists` - ); - await this.client.rest(owner, repo).repos.get({ - owner, - repo, - }); - return repo; - } catch (err) { - this.logger.debug(`Failed to get ${owner}/${repo}, it is not necessarily an error`); - return undefined; - } - } - - private getErrorMessage(err: unknown, msg: string): string { - let reason; - if (err instanceof RequestError) { - switch (err.status) { - case 401: - reason = - "Failed to authenticate with provided token, please use --token argument to provide a new one. You can also check your GITHUB_TOKEN environment variable and check whether the provided token is still valid."; - break; - case 404: - reason = - "Failed to fetch GitHub resource, please check if resource you requested does exits, the URL used in -u argument is valid, and if the token you are using have permissions to access it."; - break; - case 403: - reason = - "Failed to fetch resource. Either your github token does not have access to the requested resource or you have reached your github api rate limit."; - break; - default: // let reason be undefined for all other codes - } - } - return reason ? `${msg} Reason: ${reason}` : msg; - } -} diff --git a/src/service/git/git-cli.ts b/src/service/git/git-cli.ts deleted file mode 100644 index 45157b23..00000000 --- a/src/service/git/git-cli.ts +++ /dev/null @@ -1,170 +0,0 @@ -import simpleGit, { SimpleGit } from "simple-git"; -import Container, { Service } from "typedi"; -import fs from "fs"; -import { LoggerService } from "@bc/service/logger/logger-service"; -import { GitExecutorResult } from "simple-git/dist/src/lib/types"; -import { BaseLoggerService } from "@bc/service/logger/base-logger-service"; - -type GitErrorHandlerFunction = (error: Buffer | Error | undefined, result: Omit) => Buffer | Error | undefined; - -@Service() -export class GitCLIService { - private readonly logger: BaseLoggerService; - - constructor() { - this.logger = Container.get(LoggerService).logger; - } - - /** - * Returns a git instance configured to execute commands in the directory specified or in the current directory - * @param cwd [OPTIONAL] working directory on which the git commands will be executed in - * @return {SimpleGit} git instance - */ - private git(cwd?: string, errorHandler?: GitErrorHandlerFunction): SimpleGit { - const gitConfig = { ...(cwd ? { baseDir: cwd } : {}), ...(errorHandler ? { errors: errorHandler } : {}) }; - return simpleGit(gitConfig).addConfig("user.name", "Github").addConfig("user.email", "noreply@github.com"); - } - - /** - * Returns the git version - * @returns {Promise} - */ - async version(): Promise { - const rawOutput = await simpleGit().raw("version"); - const match = rawOutput.match(/(\d+\.\d+(\.\d+)?)/); - return match ? match[1] : undefined; - } - - /** - * Clone a repository - * @param from url or path from which the repository should be cloned from - * @param to location at which the repository should be cloned at - * @param branch branch which should be cloned - */ - async clone(from: string, to: string, branch: string) { - if (fs.existsSync(to)) { - this.logger.warn(`Folder ${to} already exist. Deleting it`); - fs.rmSync(to, { recursive: true, force: true }); - } - - // don't use this.git since it will configure git with local user.name and user.email which requires cwd to be a git repo - await simpleGit().clone(from, to, ["--quiet", "--shallow-submodules", "--no-tags", "--branch", branch]); - } - - /** - * Git fetch from a particular branch - * @param cwd repository in which fetch should be performed - * @param branch fetch from the given branch - */ - async fetch(cwd: string, branch: string) { - await this.git(cwd).fetch("origin", branch, ["--quiet"]); - } - - /** - * Gets the most recent common ancestor for the given branches or commits - * Equivalent of 'git merge-base' - * @param cwd the git repo in which merge-base should be executed - * @param refs branches or commits for which we need to find the most recent common ancestor - * @returns - */ - async getCommonAncestor(cwd: string, ...refs: string[]): Promise { - if (refs.length === 1) { - return refs[0]; - } else if (refs.length < 1) { - throw new Error("empty refs!"); - } - - const errorHandler: GitErrorHandlerFunction = (error, result) => { - // ignore the error if git exited with status code 1 - if (result.exitCode === 1 || result.exitCode === 0) { - return; - } - if (error) { - return error; - } - return Buffer.concat([...result.stdOut, ...result.stdErr]); - }; - return (await this.git(cwd, errorHandler).raw("merge-base", "--octopus", ...refs)).trim(); - } - - /** - * Gets the parents of commits reachable from HEAD but not ref - * @param cwd git repo - * @param ref ref from which the reachable commits are excluded - * @returns Array of parent commits - */ - async getReachableParentCommits(cwd: string, ref: string): Promise { - return (await this.git(cwd).raw("rev-list", "--parents", `${ref}..HEAD`)) - .split(/\n/g) - .map(line => line.split(/ /g).slice(1)) - .flat(); - } - - /** - * Equivalent to 'git pull --no-rebase url branch' - * @param cwd git repo in which the merge is to be performed - * @param repositoryUrl remote/url to pull from - * @param branch branch to pull from - */ - async merge(cwd: string, repositoryUrl: string, branch: string) { - await this.git(cwd).pull(repositoryUrl, branch, ["--no-rebase", "--allow-unrelated-histories"]); - } - - /** - * Return the sha-1 hash of the HEAD reference - * @param cwd git repo - * @returns sha string - */ - async head(cwd: string): Promise { - return this.git(cwd).raw("show-ref", "--head", "-s", "/HEAD"); - } - - /** - * Return the sha-1 hash of the given branch reference - * @param cwd git repo - * @param branch branch whose sha is to be returned - * @returns sha string - */ - async sha(cwd: string, branch: string): Promise { - return this.git(cwd).raw("show-ref", "-s", `refs/remotes/origin/${branch}`); - } - - /** - * Rename the current branch - * @param cwd git repo - * @param newBranchName new branch name - */ - async rename(cwd: string, newBranchName: string) { - await this.git(cwd).branch(["--move", newBranchName]); - } - - /** - * autosquash commits in on the given branch - * Equivalent to 'git rebase --quiet --autosquash branch' - * @param cwd git repo - * @param branch branch to be rebased - */ - async rebase(cwd: string, branch: string) { - await this.git(cwd).rebase(["--quiet", "--autosquash", branch]); - } - - /** - * Perform a push - * Equivalent to 'git push --quiet origin branch' or if using force then - * equivalent to 'git push --quiet --force-with-lease origin branch' - * @param cwd git repo - * @param force whether to use force or not - * @param branch branch to push - */ - async push(cwd: string, force: boolean, branch: string) { - const options = ["--quiet"]; - if (force) { - options.push("--force-with-lease"); - } - await this.git(cwd).push("origin", branch, options); - } - - async branch(cwd: string) { - return this.git(cwd).branch(); - } -} diff --git a/src/service/git/git-token-service.ts b/src/service/git/git-token-service.ts deleted file mode 100644 index 13b1f164..00000000 --- a/src/service/git/git-token-service.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { Service } from "typedi"; - -@Service() -export class GitTokenService { - private githubTokenPools: Record; - private tokens: Record; - - constructor() { - this.githubTokenPools = {}; - this.tokens = {}; - } - - setToken(id: string, token: string) { - this.tokens[id] = token; - } - - /** - * Will only set the token if it was defined in the env and - * if a token for the given id didn't already exist. - * Will not throw an error if it failed to set token. It will just - * return back silently. - * @param id - * @param tokenId - */ - setTokenUsingEnv(id: string, tokenId: string) { - const token = process.env[tokenId]; - if (!this.tokens[id] && token) { - this.tokens[id] = token; - } - } - - /** - * Set the token from env and return back the set token - * @param id - * @param tokenId - */ - getToken(id: string, tokenId: string): string | undefined; - /** - * Return back the set token for the given id - * @param id - */ - getToken(id: string): string | undefined; - getToken(id: string, tokenId?: string) { - if (tokenId) { - this.setTokenUsingEnv(id, tokenId); - } - return this.tokens[id]; - } - - setGithubTokenPool(id: string, tokens: string[]) { - this.githubTokenPools[id] = tokens; - } - - getGithubTokenPool(id: string) { - return this.githubTokenPools[id]; - } -} diff --git a/src/service/git/github-api-client.ts b/src/service/git/github-api-client.ts deleted file mode 100644 index 73aca995..00000000 --- a/src/service/git/github-api-client.ts +++ /dev/null @@ -1,268 +0,0 @@ -import { Octokit } from "@octokit/rest"; -import { throttling } from "@octokit/plugin-throttling"; -import { - AnyResponse, - Authentication, - EndpointDefaults, - EndpointOptions, - RequestInterface, - RequestParameters, - Route, - StrategyInterface, - ThrottleOptions, -} from "@bc/domain/github-api-client"; -import { BaseGitAPIClient } from "@bc/service/git/base-git-api-client"; -import { EventData } from "@bc/domain/configuration"; -import { HttpProxyAgent } from "http-proxy-agent"; -import { Pulls, Repo } from "@bc/domain/base-git-api-client"; - -export class GitHubAPIClient extends BaseGitAPIClient { - private octokit: Octokit; - private currentToken: string; - private whitelist: string[]; - private blacklist: Record; - - constructor(baseUrl: string, id: string) { - super(baseUrl, id); - - /** - * Behind the scenes act-js uses proxies to mock apis. It expects that all clients respect the http_proxy env variable. - * Most of the clients do but there are some which don't and in our case Octokit doesn't. Their reasoning being that people - * might use Octokit in browsers which doesn't follow this convention - https://github.com/octokit/octokit.js/issues/2098#issuecomment-844673894 - * - * So using http-proxy-agent is a workaround to force Octokit to respect proxies - * One added advantage of this is that when build-chain is used in an enterprise setting, it might need to go through proxies and - * this workaround will help with that. - */ - const proxy = process.env["http_proxy"]; - this.currentToken = this.tokenService.getToken(id)!; - this.whitelist = this.tokenService.getGithubTokenPool(id); - this.blacklist = {}; - - const ThrottledOctokit = Octokit.plugin(throttling); - - this.octokit = new ThrottledOctokit({ - baseUrl: this.baseUrl, - authStrategy: this.createTokenAuth.bind(this), - userAgent: "kiegroup/github-build-chain-action", - request: { - agent: proxy ? new HttpProxyAgent(proxy) : undefined, - }, - throttle: { - onRateLimit: this.onRateLimit.bind(this), - onSecondaryRateLimit: this.onSecondaryRateLimit.bind(this), - retryAfterBaseValue: 0, - }, - }); - } - - get repos() { - return { - getBranch: this.octokit.rest.repos.getBranch.bind(this.octokit), - get: this.octokit.rest.repos.get.bind(this.octokit), - listForkName: this.listForkName.bind(this), - getForkNameForTargetRepoGivenSourceOwner: - this.getForkNameForTargetRepoGivenSourceOwner.bind(this), - }; - } - - get pulls() { - return { - list: this.listPulls.bind(this), - get: this.getPullRequest.bind(this), - }; - } - - /** - * Rotates through tokens and retries request if there are tokens left when we reach rate limit - * @param retryAfter - * @param options - * @returns - */ - private onRateLimit(retryAfter: number, options: ThrottleOptions) { - this.logger.warn( - `Request quota exhausted for request ${options.method} ${options.url}. Trying other tokens in the pool` - ); - - // check if we have any new available tokens. if there are then add them to whitelist and remove them from blacklist - this.blacklist = Object.keys(this.blacklist).reduce( - (blacklist: Record, token) => { - if (this.blacklist[token] >= new Date().getTime()) { - blacklist[token] = this.blacklist[token]; - } else { - this.whitelist.push(token); - } - return blacklist; - }, - {} - ); - - // move current token to blacklist and keep track of after how much time we can use it again - this.blacklist[this.currentToken] = - retryAfter * 1000 + new Date().getTime(); - - // remove token from whitelist - this.whitelist = this.whitelist.filter( - token => token !== this.currentToken - ); - - // a token is available lets retry the request - if (this.whitelist.length > 0) { - this.logger.debug("Found a token. retrying..."); - - // set new token as current one - this.currentToken = this.whitelist.pop()!; - - // set the new token globally - this.tokenService.setToken(this.tokenServiceId, this.currentToken); - return true; - } else { - this.logger.error("Request quota exhausted. No tokens available"); - return false; - } - } - - /** - * Handles secondary rate limits - * @param retryAfter - * @param options - * @returns - */ - private onSecondaryRateLimit(retryAfter: number, options: ThrottleOptions) { - this.logger.warn( - `Secondary rate limit detected for request ${options.method} ${options.url}. Will retry after ${retryAfter}` - ); - return true; - } - - /** - * Used to create custom auth strategy for octokit. - * We can't use the traditional auth token method since once we initialize octokit with an auth token it - * will stick that and won't dynamically change as we change currentToken - * Refer: https://github.com/octokit/authentication-strategies.js/#how-authentication-strategies-work - * @returns - */ - private createTokenAuth: StrategyInterface = () => - Object.assign(this.auth.bind(this), { - hook: this.hook.bind(this), - }); - - /** - * Utility function to satisfy octokit's auth strategy interface - * Don't really need it otherwise - * @returns - */ - private auth: () => Promise = async () => ({ - type: "token", - token: this.currentToken, - tokenType: "oauth", - }); - - /** - * The main logic for the custom auth strategy. Called before each request - * It will use whatever the current token is and set it as the authorization token - * @param request - * @param route - * @param parameters - * @returns - */ - private async hook( - request: RequestInterface, - route: Route | EndpointOptions, - parameters?: RequestParameters - ): Promise { - const endpoint: EndpointDefaults = request.endpoint.merge( - route as string, - parameters - ); - endpoint.headers.authorization = `token ${this.currentToken}`; - return request(endpoint as EndpointOptions); - } - - private async getPullRequest(args: Pulls["get"]["parameters"]) { - const { data, status } = await this.octokit.pulls.get(args); - return { - data: { - html_url: data.html_url, - head: { - user: { - login: data.head.user.login, - }, - ref: data.head.ref, - repo: { - full_name: data.head.repo?.full_name, - name: data.head.repo?.name, - owner: { - login: data.head.repo?.owner.login, - }, - }, - }, - base: { - ref: data.base.ref, - repo: { - full_name: data.base.repo.full_name, - name: data.base.repo.name, - owner: { - login: data.base.repo.owner.login, - }, - }, - }, - } as EventData, - status, - }; - } - - private async listPulls(args: Pulls["list"]["parameters"]) { - let state: "all" | "closed" | "open" | undefined; - switch (args.state) { - case "opened": - state = "open"; - break; - case "closed": - case "merged": - state = "closed"; - break; - default: - state = "all"; - } - return this.octokit.rest.pulls.list({ - ...args, - state, - }); - } - - private async listForkName(args: Repo["listForkName"]["parameters"]) { - const { status, data } = await this.octokit.rest.repos.listForks(args); - return { - data: data.map(n => ({ owner: n.owner.login, repo: n.name })), - status, - }; - } - - private async getForkNameForTargetRepoGivenSourceOwner( - args: Repo["getForkNameForTargetRepoGivenSourceOwner"]["parameters"] - ) { - let page = 1; - for await (const response of this.octokit.paginate.iterator( - this.octokit.repos.listForks, - { - owner: args.targetOwner, - repo: args.targetRepo, - per_page: args.per_page ?? 100, - } - )) { - this.logger.debug( - `Making a github API call to find a fork for ${args.targetOwner}/${args.targetRepo} (page ${page})` - ); - const forkedRepo = response.data.find( - project => project.owner.login === args.sourceOwner - ); - if (forkedRepo) { - return { status: 200, data: forkedRepo.name }; - } - page += 1; - } - - return { status: 200, data: undefined }; - } -} diff --git a/src/service/git/gitlab-api-client.ts b/src/service/git/gitlab-api-client.ts deleted file mode 100644 index d554389f..00000000 --- a/src/service/git/gitlab-api-client.ts +++ /dev/null @@ -1,159 +0,0 @@ -import { Pulls, Repo } from "@bc/domain/base-git-api-client"; -import { BaseGitAPIClient } from "@bc/service/git/base-git-api-client"; -import axios, { Axios } from "axios"; - -export class GitlabAPIClient extends BaseGitAPIClient { - private client: Axios; - - constructor(baseUrl: string, id: string) { - super(baseUrl, id); - this.client = axios.create({ - baseURL: this.baseUrl, - headers: { - Authorization: `Bearer ${this.tokenService.getToken(id)}`, - "User-Agent": "kiegroup/github-build-chain-action", - }, - }); - } - - get repos() { - return { - getBranch: this.getBranch.bind(this), - get: this.getRepo.bind(this), - listForkName: this.listForkName.bind(this), - getForkNameForTargetRepoGivenSourceOwner: - this.getForkNameForTargetRepoGivenSourceOwner.bind(this), - }; - } - - get pulls() { - return { - list: this.listPulls.bind(this), - get: this.getPullRequest.bind(this), - }; - } - - private async getBranch(args: Repo["getBranch"]["parameters"]) { - const projectId = this.getProjectId(args.owner, args.repo); - const { data, status } = await this.client.get( - `/projects/${projectId}/repository/branches/${args.branch}` - ); - return { data, status }; - } - - private async listPulls(args: Pulls["list"]["parameters"]) { - const projectId = this.getProjectId(args.owner, args.repo); - const { data, status } = await this.client.get( - `/projects/${projectId}/merge_requests`, - { - params: { - state: args.state, - source_branch: args.base, - target_branch: args.head, - }, - } - ); - return { data, status }; - } - - private async getRepo(args: Repo["get"]["parameters"]) { - const projectId = this.getProjectId(args.owner, args.repo); - const { data, status } = await this.client.get(`/projects/${projectId}`); - return { data, status }; - } - - private async getPullRequest(args: Pulls["get"]["parameters"]) { - const projectId = this.getProjectId(args.owner, args.repo); - const { data, status } = await this.client.get( - `/projects/${projectId}/merge_requests/${args.pull_number}` - ); - const eventData = data as { - web_url: string; - target_branch: string; - head_branch: string; - author: { - username: string; - }; - }; - return { - data: { - html_url: eventData.web_url, - head: { - user: { - login: eventData.author.username, - }, - ref: eventData.head_branch, - }, - base: { - ref: eventData.target_branch, - repo: { - full_name: `${args.owner}/${args.repo}`, - name: args.repo, - owner: { - login: args.owner, - }, - }, - }, - }, - status, - }; - } - - private async listForkName(args: Repo["listForkName"]["parameters"]) { - const projectId = this.getProjectId(args.owner, args.repo); - const { data, status } = await this.client.get( - `/projects/${projectId}/forks`, - { - params: { - per_page: args.per_page ?? 100, - page: args.page, - }, - } - ); - return { - status, - data: ( - data as { - path: string; - namespace: { path: string }; - }[] - ).map(d => ({ owner: d.namespace.path, repo: d.path })), - }; - } - - private async getForkNameForTargetRepoGivenSourceOwner( - args: Repo["getForkNameForTargetRepoGivenSourceOwner"]["parameters"] - ) { - let page = 1; - let forks = ( - await this.listForkName({ - owner: args.targetOwner, - repo: args.targetRepo, - page, - per_page: args.per_page, - }) - ).data; - - while (forks.length > 0) { - const forkName = forks.find(n => n.owner === args.sourceOwner); - if (forkName) { - return { status: 200, data: forkName.repo }; - } - page += 1; - - forks = ( - await this.listForkName({ - owner: args.targetOwner, - repo: args.targetRepo, - page, - per_page: args.per_page ?? 100, - }) - ).data; - } - return { status: 200, data: undefined }; - } - - private getProjectId(owner: string, repo: string) { - return encodeURIComponent(`${owner}/${repo}`); - } -} diff --git a/src/service/inputs/input-service.ts b/src/service/inputs/input-service.ts deleted file mode 100644 index f6ac6b17..00000000 --- a/src/service/inputs/input-service.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { defaultInputValues, InputValues } from "@bc/domain/inputs"; -import { Service } from "typedi"; - -@Service() -export class InputService { - // store parsed options - private _inputs: InputValues = defaultInputValues; - - /** - * Getter for parsed options - * @returns Object containing parsed options - */ - get inputs(): InputValues { - return this._inputs; - } - - /** - * Updates the parsed options - * @param updatedInputs Options that were obtained from the parser - */ - updateInputs(updatedInputs: Partial) { - this._inputs = { ...this.inputs, ...updatedInputs }; - } -} diff --git a/src/service/job-summary/job-summary-service.ts b/src/service/job-summary/job-summary-service.ts deleted file mode 100644 index 57be09b7..00000000 --- a/src/service/job-summary/job-summary-service.ts +++ /dev/null @@ -1,149 +0,0 @@ -import Container, { Service } from "typedi"; -import * as ms from "ms-typescript"; -import * as core from "@actions/core"; -import { ConfigurationService } from "@bc/service/config/configuration-service"; -import { FlowType } from "@bc/domain/inputs"; -import { GitCLIService } from "@bc/service/git/git-cli"; -import { ExecuteNodeResult } from "@bc/domain/execute-node-result"; -import { CheckedOutNode } from "@bc/domain/checkout"; -import { ExecuteCommandResult, ExecutionResult } from "@bc/domain/execute-command-result"; -import { FlowResult } from "@bc/domain/flow"; -import { ExecutionPhase } from "@bc/domain/execution-phase"; - -@Service() -export class JobSummaryService { - private configService: ConfigurationService; - private gitService: GitCLIService; - - constructor() { - this.configService = Container.get(ConfigurationService); - this.gitService = Container.get(GitCLIService); - } - - async generateSummary(flowResult: FlowResult, preResult: ExecuteCommandResult[], postResult: ExecuteCommandResult[]) { - const flowType = this.configService.getFlowType(); - if (flowType === FlowType.BRANCH) { - return; - } - const localExecution = core.summary - .emptyBuffer() - .addRaw("You can copy paste the following commands to locally execute build chain tool.", true) - .addCodeBlock( - `npm i @kie/build-chain-action -g\nbuild-chain build ${flowType} -f ${this.configService.getDefinitionFileUrl()} -u ${this.configService.getEventUrl()}` - ) - .addEOL() - .addRaw(`**Git Version**: \`${await this.gitService.version()}\``, true) - .addRaw("> **_Notice_**: The `GITHUB_TOKEN` should be set in the environment.", true) - .stringify(); - - const before = this.constructExecutionResult(flowResult.executionResult.map(res => res[0]), flowResult.checkoutInfo); - const current = this.constructExecutionResult(flowResult.executionResult.map(res => res[1]), flowResult.checkoutInfo); - const after = this.constructExecutionResult(flowResult.executionResult.map(res => res[2]), flowResult.checkoutInfo); - const pre = this.constructPrePostResult(preResult); - const post = this.constructPrePostResult(postResult); - - await core.summary - .emptyBuffer() - .addHeading("Build Chain Execution Summary") - .addEOL() - .addRaw( - `**Project Starting the Job:** [${this.configService.getStarterProjectName()}](https://github.com/${this.configService.getStarterProjectName()})`, - true - ) - .addRaw(`

Pre

${pre}
`, true) - .addRaw(`

Execution phase: ${ExecutionPhase.BEFORE}

${before}
`, true) - .addRaw(`

Execution phase: ${ExecutionPhase.CURRENT}

${current}
`, true) - .addRaw(`

Execution phase: ${ExecutionPhase.AFTER}

${after}
`, true) - .addRaw(`

Post

${post}
`, true) - .addRaw(`

Local Execution

${localExecution}
`, true) - .write(); - } - - private constructPrePostResult(result: ExecuteCommandResult[]): string { - const prePostTableHeaders = [ - { data: "Command", header: true }, - { data: "Execution Result", header: true }, - { data: "Execution Time", header: true }, - ]; - const data = result.map(res => [res.command, this.getExecutionResultString(res.result), `${ms.fromMs(res.time)}`]); - return core.summary - .emptyBuffer() - .addTable([prePostTableHeaders, ...data]) - .stringify(); - } - - private constructExecutionResult(executionNodeResult: ExecuteNodeResult[], checkoutInfo: CheckedOutNode[]): string { - const tableHeaders = [ - { data: "Project", header: true }, - { data: "Source", header: true }, - { data: "Target", header: true }, - { data: "Merged", header: true }, - { data: "Execution Result", header: true }, - { data: "Avg Execution Time", header: true }, - ]; - return core.summary - .emptyBuffer() - .addTable([tableHeaders, ...this.getExecutionResultData(executionNodeResult, checkoutInfo)]) - .addEOL() - .addRaw("```mermaid", true) - .addRaw(this.constructGraph(executionNodeResult), true) - .addRaw("```", true) - .stringify(); - } - - private getExecutionResult(executeCommandResults: ExecuteCommandResult[]): ExecutionResult { - return executeCommandResults.find(res => res.result !== ExecutionResult.OK)?.result ?? ExecutionResult.OK; - } - - private getExecutionResultString(result: ExecutionResult): string { - switch (result) { - case ExecutionResult.NOT_OK: - return "\u274C"; - case ExecutionResult.SKIP: - return "⛔"; - default: - return "\u2705"; - } - } - - private getExecutionResultData(executionResult: ExecuteNodeResult[], checkoutInfo: CheckedOutNode[]): string[][] { - return executionResult.map(res => { - const nodeCheckoutInfo = checkoutInfo.find(info => info.node.project === res.node.project)!.checkoutInfo; - const result = this.getExecutionResultString(this.getExecutionResult(res.executeCommandResults)); - - return [ - res.node.project, - nodeCheckoutInfo ? `${nodeCheckoutInfo.targetGroup}/${nodeCheckoutInfo.targetName}:${nodeCheckoutInfo.targetBranch}` : "checkout skipped", - nodeCheckoutInfo ? `${nodeCheckoutInfo.sourceGroup}/${nodeCheckoutInfo.sourceName}:${nodeCheckoutInfo.sourceBranch}` : "checkout skipped", - nodeCheckoutInfo?.merge ? "\u2705" : "\u274C", - result, - res.executeCommandResults.length > 0 - ? `${ms.fromMs(res.executeCommandResults.reduce((prev, curr) => prev + curr.time, 0) / res.executeCommandResults.length)}` - : "0", - ]; - }); - } - - private constructGraph(executionResult: ExecuteNodeResult[]) { - return `flowchart LR; - ${executionResult - .map(res => { - const result = this.getExecutionResult(res.executeCommandResults); - let className = "okClass"; - switch (result) { - case ExecutionResult.NOT_OK: - className = "errorClass"; - break; - case ExecutionResult.SKIP: - className = "noEntry"; - break; - } - return `${res.node.project}:::${className}`; - }) - .join("==>")} - ${executionResult.map(res => `click ${res.node.project} 'https://github.com/${res.node.project}'`).join("\n\t\t\t\t")} - classDef okClass fill:#218838,stroke:#1e7e34,color: #fff,border-radius: 4px - classDef errorClass fill:#dc3545,stroke:#dc3545,color: #fff,border-radius: 4px - classDef noEntry fill:#6c757d,stroke:#6c757d,color: #fff,border-radius: 4px`; - } -} diff --git a/src/service/logger/base-logger-service.ts b/src/service/logger/base-logger-service.ts deleted file mode 100644 index b1f321e0..00000000 --- a/src/service/logger/base-logger-service.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { LoggerLevel } from "@bc/domain/inputs"; -import { InputService } from "@bc/service/inputs/input-service"; -import { Logger } from "@bc/service/logger/logger"; -import Container from "typedi"; - -export abstract class BaseLoggerService { - - private readonly _logger: Logger; - private readonly input: InputService; - - protected constructor() { - this._logger = new Logger(); - this.input = Container.get(InputService); - } - - abstract startGroup(message: string): void; - - abstract endGroup(): void; - - public debug(message: string): void { - if (this.input.inputs.loggerLevel == LoggerLevel.DEBUG) { - this._logger.log("[DEBUG]", message); - } - } - - public info(message: string): void { - this._logger.log("[INFO]", message); - } - - public trace(message: string): void { - if (this.input.inputs.loggerLevel == LoggerLevel.TRACE) { - this._logger.log("[TRACE]", message); - } - } - - public warn(message: string): void { - this._logger.log("[WARN]", message); - } - - public error(message: string): void { - this._logger.log("[ERROR]", message); - } - - get logger(): Logger { - return this._logger; - } -} \ No newline at end of file diff --git a/src/service/logger/cli-logger-service.ts b/src/service/logger/cli-logger-service.ts deleted file mode 100644 index dec47f43..00000000 --- a/src/service/logger/cli-logger-service.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { BaseLoggerService } from "@bc/service/logger/base-logger-service"; - -export class CLILoggerService extends BaseLoggerService { - - constructor() { - super(); - } - - endGroup(): void { - super.logger.emptyLine(); - } - - startGroup(message: string): void { - super.logger.log("#", message); - } -} \ No newline at end of file diff --git a/src/service/logger/github-action-logger-service.ts b/src/service/logger/github-action-logger-service.ts deleted file mode 100644 index d591f622..00000000 --- a/src/service/logger/github-action-logger-service.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { BaseLoggerService } from "@bc/service/logger/base-logger-service"; -import * as core from "@actions/core"; - -export class GithubActionLoggerService extends BaseLoggerService { - - constructor() { - super(); - } - - endGroup(): void { - core.endGroup(); - } - - startGroup(message: string): void { - core.startGroup(message); - } -} \ No newline at end of file diff --git a/src/service/logger/logger-service.ts b/src/service/logger/logger-service.ts deleted file mode 100644 index b48c38b8..00000000 --- a/src/service/logger/logger-service.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; -import { BaseLoggerService } from "@bc/service/logger/base-logger-service"; -import { CLILoggerService } from "@bc/service/logger/cli-logger-service"; -import { GithubActionLoggerService } from "@bc/service/logger/github-action-logger-service"; -import Container, { Service } from "typedi"; - -@Service() -export class LoggerService { - private _logger: BaseLoggerService; - - constructor() { - const entryPoint = Container.get(constants.CONTAINER.ENTRY_POINT); - switch (entryPoint) { - case EntryPoint.CLI: - this._logger = new CLILoggerService(); - break; - case EntryPoint.GITHUB_EVENT: - this._logger = new GithubActionLoggerService(); - break; - default: - throw new Error(`No LoggerService defined for ${entryPoint}`); - } - } - - get logger() { - return this._logger; - } -} \ No newline at end of file diff --git a/src/service/logger/logger.ts b/src/service/logger/logger.ts deleted file mode 100644 index 4b0e6569..00000000 --- a/src/service/logger/logger.ts +++ /dev/null @@ -1,11 +0,0 @@ -export class Logger { - log(prefix: string, ...str: string[]) { - // eslint-disable-next-line no-console - console.log.apply(console, [prefix, ...str]); - } - - emptyLine() { - this.log("", ""); - } - -} diff --git a/src/service/pre-post/post.ts b/src/service/pre-post/post.ts deleted file mode 100644 index e5d6fa1c..00000000 --- a/src/service/pre-post/post.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { ExecuteCommandResult } from "@bc/domain/execute-command-result"; -import { PrePostExecutor } from "@bc/service/pre-post/pre-post"; -import { Inject, Service } from "typedi"; - -@Service() -export class PostExecutor extends PrePostExecutor { - private executionSuccess: boolean; - - constructor(@Inject("post.executionSuccess") executionSuccess: boolean) { - super(); - this.executionSuccess = executionSuccess; - } - - async run(): Promise { - const post = this.configService.getPost(); - let result: ExecuteCommandResult[] = []; - if (post) { - this.logger.startGroup("Executing post section"); - if (this.executionSuccess) { - this.logger.info("execution result is OK, so 'success' and 'always' sections will be executed"); - if (post.success) { - result = await this.execute(post.success); - } - } else { - this.logger.info("execution result is NOT OK, so 'failure' and 'always' sections will be executed"); - if (post.failure) { - result = await this.execute(post.failure); - } - } - if (post.always) { - result = [...result, ...await this.execute(post.always)]; - } - this.logger.endGroup(); - } - return result; - } -} diff --git a/src/service/pre-post/pre-post.ts b/src/service/pre-post/pre-post.ts deleted file mode 100644 index 6268debb..00000000 --- a/src/service/pre-post/pre-post.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { ExecuteCommandResult } from "@bc/domain/execute-command-result"; -import { ExecuteCommandService } from "@bc/service/command/execute-command-service"; -import { ConfigurationService } from "@bc/service/config/configuration-service"; -import { BaseLoggerService } from "@bc/service/logger/base-logger-service"; -import { LoggerService } from "@bc/service/logger/logger-service"; -import Container from "typedi"; - -export abstract class PrePostExecutor { - protected configService: ConfigurationService; - protected logger: BaseLoggerService; - protected executeService: ExecuteCommandService; - - constructor() { - this.configService = Container.get(ConfigurationService); - this.logger = Container.get(LoggerService).logger; - this.executeService = Container.get(ExecuteCommandService); - } - - protected async execute(cmds: string | string[]): Promise { - const result: ExecuteCommandResult[] = []; - if (Array.isArray(cmds)) { - for (const cmd of cmds) { - result.push(await this.executeService.executeCommand(cmd, {cwd: process.cwd()})); - } - } else { - result.push(await this.executeService.executeCommand(cmds, {cwd: process.cwd()})); - } - return result; - } -} diff --git a/src/service/pre-post/pre.ts b/src/service/pre-post/pre.ts deleted file mode 100644 index abb32f47..00000000 --- a/src/service/pre-post/pre.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { ExecuteCommandResult } from "@bc/domain/execute-command-result"; -import { PrePostExecutor } from "@bc/service/pre-post/pre-post"; -import { Service } from "typedi"; - -@Service() -export class PreExecutor extends PrePostExecutor { - async run(): Promise { - const pre = this.configService.getPre(); - let result: ExecuteCommandResult[] = []; - if (pre) { - this.logger.startGroup("Executing pre section"); - result = await this.execute(pre); - this.logger.endGroup(); - } - return result; - } -} \ No newline at end of file diff --git a/src/service/tools/abstract-tools.ts b/src/service/tools/abstract-tools.ts deleted file mode 100644 index 5eb2325e..00000000 --- a/src/service/tools/abstract-tools.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { ConfigurationService } from "@bc/service/config/configuration-service"; -import { BaseLoggerService } from "@bc/service/logger/base-logger-service"; -import { LoggerService } from "@bc/service/logger/logger-service"; -import Container from "typedi"; - -export abstract class Tools { - protected logger: BaseLoggerService; - protected configService: ConfigurationService; - - constructor() { - this.configService = Container.get(ConfigurationService); - this.logger = Container.get(LoggerService).logger; - } - - abstract execute(): Promise; -} \ No newline at end of file diff --git a/src/service/tools/plan.ts b/src/service/tools/plan.ts deleted file mode 100644 index 9b510f7d..00000000 --- a/src/service/tools/plan.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { ExecutionResult } from "@bc/domain/execute-command-result"; -import { CommandExecutorDelegator } from "@bc/service/command/executor/command-executor-delegator"; -import { GitCLIService } from "@bc/service/git/git-cli"; -import { Tools } from "@bc/service/tools/abstract-tools"; -import { InputService } from "@bc/service/inputs/input-service"; -import Container from "typedi"; -import { CLIActionType } from "@bc/domain/cli"; -import { CLIRunner } from "@bc/bin/runners/cli-runner"; -import { CLIArguments } from "@bc/service/arguments/cli/cli-arguments"; -import { Command } from "commander"; - -export class Plan extends Tools { - async execute(): Promise { - // add DRY_RUN annotation before all console logs - // eslint-disable-next-line no-console - const original = console.log; - // eslint-disable-next-line no-console - console.log = (...args: string[]) => { - original("[PLAN]", ...args); - }; - - // patch git cli service to do no cloning, merging or renaming - const git = Container.get(GitCLIService); - git.clone = async () => undefined; - git.merge = async () => undefined; - git.rename = async () => undefined; - Container.set(GitCLIService, git); - - // patch command executor to not execute a command - const commandExecutor = Container.get(CommandExecutorDelegator); - commandExecutor.executeCommand = async cmd => { - this.logger.logger.log(`Executed ${cmd}`); - return { - startingDate: Date.now(), - endingDate: Date.now(), - time: 0, - command: cmd, - result: ExecutionResult.OK, - errorMessage: "", - }; - }; - Container.set(CommandExecutorDelegator, commandExecutor); - - // update input to make it not look like a tool subcommand execution - const inputService = Container.get(InputService); - inputService.updateInputs({ - CLICommand: CLIActionType.BUILD, - CLISubCommand: inputService.inputs.flowType!, - }); - - // patch cli argument service to prevent argument parsing again - const args = Container.get(CLIArguments); - args.getCommand = () => ({ parse: () => undefined! } as unknown as Command); - Container.set(CLIArguments, args); - - // re-run cli runner - return new CLIRunner().execute(); - } -} diff --git a/src/service/tools/project-list.ts b/src/service/tools/project-list.ts deleted file mode 100644 index c5484944..00000000 --- a/src/service/tools/project-list.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { Tools } from "@bc/service/tools/abstract-tools"; - -export class ProjectList extends Tools { - async execute(): Promise { - this.logger.logger.log(this.configService.nodeChain.map(node => node.project).join("\n")); - } -} \ No newline at end of file diff --git a/src/service/tools/resume.ts b/src/service/tools/resume.ts deleted file mode 100644 index 6b00fc54..00000000 --- a/src/service/tools/resume.ts +++ /dev/null @@ -1,182 +0,0 @@ -import Container, { Service } from "typedi"; -import { Tools } from "@bc/service/tools/abstract-tools"; -import { existsSync, readFileSync } from "fs-extra"; -import path from "path"; -import { DEFAULT_STATE_FILENAME, ResumeState } from "@bc/domain/resume"; -import { ConfigurationService } from "@bc/service/config/configuration-service"; -import { CheckoutService } from "@bc/service/checkout/checkout-service"; -import { FlowService } from "@bc/service/flow/flow-service"; -import { CLIArguments } from "@bc/service/arguments/cli/cli-arguments"; -import { Command } from "commander"; -import { CLIRunner } from "@bc/bin/runners/cli-runner"; -import { SerializedCheckoutService } from "@bc/domain/checkout"; -import { GitCLIService } from "@bc/service/git/git-cli"; -import { SerializedFlowService } from "@bc/domain/flow"; -import { Node } from "@kie/build-chain-configuration-reader"; -import { logAndThrow } from "@bc/utils/log"; - -@Service() -export class Resume extends Tools { - async execute(): Promise { - // detect state file - const workspace = this.configService.getRootFolder(); - const state = JSON.parse( - readFileSync(path.join(workspace, DEFAULT_STATE_FILENAME), "utf8") - ) as ResumeState; - - // update output folder - state.configurationService.configuration._parsedInputs = { - ...state.configurationService.configuration._parsedInputs, - outputFolder: workspace, - }; - - // verify checkout state - const verifiedCheckoutState = await this.verifyCheckout( - state.checkoutService - ); - const { updatedCheckoutService, updatedFlowService } = this.updateCheckout( - verifiedCheckoutState, - state.flowService, - this.configService.getProjectsToRecheckout() - ); - const updatedFlowServiceState = this.updateResumeFrom( - updatedFlowService, - state.configurationService._nodeChain, - state.configurationService.configuration._parsedInputs.failAtEnd - ); - - // reconstruct services - const configService = ConfigurationService.fromJSON( - state.configurationService - ); - // patch init to avoid config service initialization - configService.init = async () => undefined; - Container.set(ConfigurationService, configService); - const checkoutService = CheckoutService.fromJSON(updatedCheckoutService); - Container.set(CheckoutService, checkoutService); - const flowService = FlowService.fromJSON(updatedFlowServiceState); - Container.set(FlowService, flowService); - - // patch cli argument service to prevent argument parsing again - const args = Container.get(CLIArguments); - args.getCommand = () => ({ parse: () => undefined! } as unknown as Command); - Container.set(CLIArguments, args); - - // re-run cli runner - return new CLIRunner().execute(); - } - - private async verifyCheckout( - serializedCheckoutInfo: SerializedCheckoutService - ): Promise { - return Promise.all( - serializedCheckoutInfo.map(checkout => { - if (checkout.checkedOut && existsSync(checkout.checkoutInfo.repoDir)) { - return Container.get(GitCLIService) - .branch(checkout.checkoutInfo.repoDir) - .then(branchSummary => { - if ( - branchSummary.current === checkout.checkoutInfo.sourceBranch - ) { - return checkout; - } else { - this.logger.warn( - `Workspace does not match expected state. Will re-checkout project ${checkout.node.project}` - ); - return { - ...checkout, - checkedOut: false, - }; - } - }); - } - this.logger.warn( - `Workspace does not match expected state. Will re-checkout project ${checkout.node.project}` - ); - return { - ...checkout, - checkedOut: false, - }; - }) - ); - } - - private updateResumeFrom( - flowService: SerializedFlowService, - nodeChain: Node[], - failAtEnd = false - ) { - const startProject = this.configService.getStarterProjectNameFromInput(); - if (!startProject) { - if (failAtEnd) { - this.logger.warn( - "The build we are resuming had enabled fail at end. Will resume building after the last project that had failed" - ); - return { - ...flowService, - resumeFrom: flowService.executionResult.length, - }; - } - return flowService; - } - - // check if start project even exists - if (!nodeChain.find(n => n.project === startProject)) { - logAndThrow(`Given starting project ${startProject} does not exist`); - } - - const startProjectIndex = flowService.executionResult.findIndex( - res => !!res.find(r => r.node.project === startProject) - ); - - if (startProjectIndex === -1) { - if (failAtEnd) { - this.logger.warn( - `The start project ${startProject} you wanted to resume from has un-built dependencies - and the previous build has fail at end enabled. - Will resume building after the last project that had failed.` - ); - return { - ...flowService, - resumeFrom: flowService.executionResult.length, - }; - } else { - this.logger.warn( - `The start project ${startProject} you wanted to resume from has un-built dependencies. - Will resume building from the first point of failure.` - ); - return flowService; - } - } else { - return { - ...flowService, - resumeFrom: startProjectIndex, - }; - } - } - - private updateCheckout( - serializedCheckoutInfo: SerializedCheckoutService, - serializedFlowService: SerializedFlowService, - recheckout: string[] - ) { - let resumeFromIndex: number | undefined; - - const checkoutService = serializedCheckoutInfo.map((c, index) => { - if (recheckout.includes(c.node.project)) { - if (!resumeFromIndex) { - resumeFromIndex = index; - } - return { ...c, checkedOut: false }; - } - return c; - }); - return { - updatedCheckoutService: checkoutService, - updatedFlowService: { - ...serializedFlowService, - resumeFrom: resumeFromIndex ?? serializedFlowService.resumeFrom, - } as SerializedFlowService, - }; - } -} diff --git a/src/service/tools/tools-service.ts b/src/service/tools/tools-service.ts deleted file mode 100644 index 934549af..00000000 --- a/src/service/tools/tools-service.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { ToolType } from "@bc/domain/cli"; -import { Tools } from "@bc/service/tools/abstract-tools"; -import { Plan } from "@bc/service/tools/plan"; -import { ProjectList } from "@bc/service/tools/project-list"; -import { Resume } from "@bc/service/tools/resume"; -import { logAndThrow } from "@bc/utils/log"; -import { Service } from "typedi"; - -@Service() -export class ToolService extends Tools { - async execute(): Promise { - let tool: Tools; - switch(this.configService.getToolType()) { - case ToolType.PROJECT_LIST: - tool = new ProjectList(); - break; - case ToolType.PLAN: - tool = new Plan(); - break; - case ToolType.RESUME: - tool = new Resume(); - break; - default: - logAndThrow("Tool not found"); - } - return tool.execute(); - } -} \ No newline at end of file diff --git a/src/utils/date.ts b/src/utils/date.ts deleted file mode 100644 index 551698b6..00000000 --- a/src/utils/date.ts +++ /dev/null @@ -1,14 +0,0 @@ -/** - * Converts a date object into a string of the format yyyymmddHHMMss - * @param date A Date object - * @returns {string} String of the format yyyymmddHHMMss - */ -function formatDate(date: Date): string { - return `${date.getFullYear()}${date.getMonth()}${date.getDate()}${date.getHours()}${date.getMinutes()}${date.getSeconds()}`; -} - -function hrtimeToMs(startHrTime: [number, number], endHrTime: [number, number] = process.hrtime(startHrTime)): number { - return endHrTime[0] * 1000 + endHrTime[1] / 1000000; -} - -export { formatDate, hrtimeToMs }; diff --git a/src/utils/log.ts b/src/utils/log.ts deleted file mode 100644 index ba97f8d0..00000000 --- a/src/utils/log.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { LoggerService } from "@bc/service/logger/logger-service"; -import Container from "typedi"; - -export function logAndThrow(errorMessage: string): never { - Container.get(LoggerService).logger.error(errorMessage); - throw new Error(errorMessage); -} diff --git a/test/e2e-regression/cli/cli.test.ts b/test/e2e-regression/cli/cli.test.ts deleted file mode 100644 index 224d7a17..00000000 --- a/test/e2e-regression/cli/cli.test.ts +++ /dev/null @@ -1,84 +0,0 @@ -import { Act } from "@kie/act-js"; -import { copyFileSync, mkdirSync, readFileSync, rmSync } from "fs-extra"; -import path from "path"; -import { logActOutput } from "../../e2e/helper/logger"; - -type TestCommand = { - name: string; - cmd: string; - description?: string; - env?: Record; - shouldFail?: boolean; - matchOutput?: string[] - dontMatchOutput?: string[] -}; - -describe("test custom cli e2e commands", () => { - const testCases: TestCommand[] = JSON.parse( - readFileSync(path.join(__dirname, "tests.json"), "utf8") - ) as TestCommand[]; - - const tmpFolder = path.join(__dirname, "tmp"); - - beforeAll(() => { - mkdirSync(tmpFolder); - }); - - afterAll(() => { - rmSync(tmpFolder, { recursive: true }); - }); - - beforeEach(() => { - copyFileSync(path.join(__dirname, "test.yaml"), path.join(tmpFolder, "test.yaml")); - }); - - for (const testCase of testCases) { - test(testCase.name, async () => { - const act = new Act() - .setGithubStepSummary("/dev/stdout") - .setEnv("GITHUB_REPOSITORY", extractGithubRepository(testCase.cmd)) - .setGithubToken(process.env["GITHUB_TOKEN"] ?? ""); - - for (const key of Object.keys(testCase.env ?? {})) { - act.setEnv(key, testCase.env![key]); - } - - const result = await act.runEvent("workflow_dispatch", { - ...logActOutput(`${testCase.name}-cli.log`), - workflowFile: tmpFolder, - mockSteps: { - build: [ - { - name: "Execute build-chain", - mockWith: `${testCase.cmd} -d`, - }, - ], - }, - }); - - expect(result.length).toBe(18); - expect(result[13].name).toBe("Main Execute build-chain"); - expect(result[13].status).toBe(testCase.shouldFail ? 1 : 0); - if (testCase.matchOutput) { - testCase.matchOutput.forEach(output => { - expect(result[13].output).toEqual(expect.stringContaining(output)); - }); - } - - if (testCase.dontMatchOutput) { - testCase.dontMatchOutput.forEach(output => { - expect(result[13].output).not.toEqual(expect.stringContaining(output)); - }); - } - }); - } -}); - -function extractGithubRepository(cmd: string) { - const urlRegex = /-u https?:\/\/.+\/([^/\s]+\/[^/\s]+)\/pull\/(\d+)/; - const urlCheck = cmd.match(urlRegex); - if (urlCheck) { - return urlCheck[1]; - } - return ""; -} diff --git a/test/e2e-regression/cli/test.yaml b/test/e2e-regression/cli/test.yaml deleted file mode 100644 index 7a1f7daa..00000000 --- a/test/e2e-regression/cli/test.yaml +++ /dev/null @@ -1,36 +0,0 @@ -name: Custom cli e2e -on: - workflow_dispatch: - inputs: - java-version: - default: "11" - required: false - maven-version: - default: "3.8.7" - required: false - cache-key-prefix: - default: "Linux-11-maven3.8.7" - required: false -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v3 - with: - node-version: 16 - - name: Install npm packages - run: npm i - - name: Build CLI - run: npm run build:cli - - name: Rename cli - run: mv ./build/index.js ./build/build-chain - - name: Add to path - run: echo "$PWD/build/" >> $GITHUB_PATH - - uses: kiegroup/kogito-pipelines/.ci/actions/maven@main - with: - java-version: ${{ inputs.java-version }} - maven-version: ${{ inputs.maven-version }} - cache-key-prefix: ${{ inputs.maven-version }} - - name: Execute build-chain - run: build-chain help diff --git a/test/e2e-regression/cli/tests.json b/test/e2e-regression/cli/tests.json deleted file mode 100644 index 256ff8aa..00000000 --- a/test/e2e-regression/cli/tests.json +++ /dev/null @@ -1,55 +0,0 @@ -[ - { - "name": "issue-372", - "cmd": "build-chain build cross_pr -f 'https://raw.githubusercontent.com/kiegroup/droolsjbpm-build-bootstrap/${BRANCH:main}/.ci/compilation-config.yaml' -o bc -u https://github.com/kiegroup/appformer/pull/1394 --skipExecution", - "description": "To test that definition file url placeholders fallback to using default value. Checking whether build succeeded is enough" - }, - { - "name": "issue-401", - "cmd": "build-chain build cross_pr -f 'https://raw.githubusercontent.com/apache/incubator-kie-kogito-pipelines/%{process.env.GITHUB_BASE_REF.replace(/(\\d*)\\.(.*)\\.(.*)/g, (m, n1, n2, n3) => `${+n1-7}.${n2}.${n3}`)}/.ci/pull-request-config.yaml' -o bc -u https://github.com/apache/incubator-kie-optaplanner/pull/2634 -p kiegroup/optaplanner --skipExecution", - "description": "To test that definition file url placeholders as well as expressions work when defined together. Checking whether build succeeded is enough" - }, - { - "name": "issue-386", - "cmd": "build-chain build cross_pr -f 'https://raw.githubusercontent.com/apache/incubator-kie-kogito-pipelines/1.34.x/.ci/pull-request-config.yaml' -o bc -u https://github.com/apache/incubator-kie-kogito-examples/pull/1570 -p kiegroup/kogito-examples --skipExecution", - "description": "To test if GITHUB_BASE_REF is set during CLI execution. Checking if 8.34.x is checked out of drools should verify this", - "matchOutput": [ - "Project taken from kiegroup/drools:8.34.x", - "Project taken from kiegroup/kogito-runtimes:1.34.x", - "Project taken from kiegroup/kogito-apps:1.34.x", - "Project taken from kiegroup/kogito-examples:1.34.x" - ] - }, - { - "name": "pr-388,build-chain-config-reader-issue-91", - "cmd": "build-chain build branch -f 'https://raw.githubusercontent.com/${GROUP:kiegroup}/optaplanner/main/.ci/nightly-build-config.yaml' -b main -o bc -p kiegroup/optaplanner --fullProjectDependencyTree --skipParallelCheckout --skipExecution --skipProjectCheckout 'jboss-integration/rhbop-optaplanner'", - "description": "There needs to be a clear difference between project triggering the job and starting project. Checking which branch is checked out should verify this since if there was no distinction then we would have incorrect mapping", - "matchOutput": [ - "Project taken from kiegroup/drools:main-integration-quarkus-lts", - "Project taken from kiegroup/optaplanner:main", - "Project taken from kiegroup/optaplanner-quickstarts:8.x" - ] - }, - { - "name": "issue-378", - "cmd": "build-chain build branch -f https://raw.githubusercontent.com/radtriste/kogito-pipelines/main/.ci/pull-request-config.yaml -o bc -p kiegroup/drools -b quarkus_3 -g radtriste --skipExecution", - "description": "To ensure that branch flow uses the user input. Checking if radtriste/drools is checked out instead of kiegroup/drools should be enough", - "matchOutput": [ - "Project taken from radtriste/drools:quarkus_3" - ], - "dontMatchOutput": [ - "Project taken from kiegroup/drools:quarkus_3" - ] - }, - { - "name": "issue-338", - "description": "${{ env.var }} was not being substituted", - "cmd": "build-chain build cross_pr -f https://raw.githubusercontent.com/kiegroup/droolsjbpm-build-bootstrap/main/.ci/pull-request-config.yaml --url https://github.com/kiegroup/droolsjbpm-build-bootstrap/pull/2187 -p kiegroup/droolsjbpm-build-bootstrap --skipExecution", - "matchOutput": [ - "BUILD_MVN_OPTS= dependency:tree" - ], - "dontMatchOutput": [ - "BUILD_MVN_OPTS=${{ env.BUILD_MVN_OPTS }}" - ] - } -] \ No newline at end of file diff --git a/test/e2e-regression/github-action/action.test.ts b/test/e2e-regression/github-action/action.test.ts deleted file mode 100644 index bb7b0ec3..00000000 --- a/test/e2e-regression/github-action/action.test.ts +++ /dev/null @@ -1,140 +0,0 @@ -import { Act } from "@kie/act-js"; -import { MockGithub } from "@kie/mock-github"; -import { Octokit } from "@octokit/rest"; -import { Endpoints } from "@octokit/types"; -import { readFileSync } from "fs"; -import path from "path"; -import { logActOutput } from "../../e2e/helper/logger"; - -type PullRequestPayload = Endpoints["GET /repos/{owner}/{repo}/pulls/{pull_number}"]["response"]["data"]; - -type TestCommand = { - name: string; - event: PullRequestPayload | string; - env?: Record - shouldFail?: boolean; - matchOutput?: string[]; - dontMatchOutput?: string[]; - description?: string; - "definition-file": string; - "flow-type": string; - "starting-project?": string; - "skip-execution"?: string; - "skip-project-execution"?: string; - "skip-checkout"?: string; - "skip-project-checkout"?: string; - "skip-parallel-checkout"?: string; - "custom-command-treatment"?: string; - "additional-flags"?: string; - "logger-level"?: string; - "annotations-prefix"?: string; - "java-version"?: string; - "maven-version"?: string; - "cache-key-prefix"?: string; -} - -describe("test custom e2e github action", () => { - const testCases: TestCommand[] = JSON.parse( - readFileSync(path.join(__dirname, "tests.json"), "utf8") - ) as TestCommand[]; - - let mockGithub: MockGithub; - - beforeEach(async () => { - mockGithub = new MockGithub( - { - repo: { - "build-chain": { - files: [ - { - src: path.join(__dirname, "test.yaml"), - dest: ".github/workflows/test.yaml", - }, - { - src: path.resolve(__dirname, "..", "..", "..", "action.yml"), - dest: "action.yml", - }, - { - src: path.resolve(__dirname, "..", "..", "..", "dist-e2e"), - dest: "dist", - }, - ], - } - }, - }, - path.join(__dirname, "setup") - ); - await mockGithub.setup(); - }); - - afterEach(async () => { - await mockGithub.teardown(); - }); - - for (const testCase of testCases) { - test(testCase.name, async () => { - let eventPayload: PullRequestPayload; - if (typeof testCase.event === "string") { - eventPayload = await getEventPayload(testCase.event); - } else { - eventPayload = testCase.event; - } - - const act = new Act() - .setGithubStepSummary("/dev/stdout") - .setGithubToken(process.env["GITHUB_TOKEN"] ?? "token") - .setEnv("GITHUB_REPOSITORY", eventPayload.base.repo.full_name) - .setEnv("GITHUB_BASE_REF", eventPayload.base.ref) - .setEvent({ pull_request: eventPayload }); - - for (const key of Object.keys(testCase.env ?? {})) { - act.setEnv(key, testCase.env![key]); - } - - for (const [key, value] of Object.entries(testCase)) { - if (value && - !["name", "event", "env", "shouldFail", "matchOutput", "description"].includes(key) && - typeof value === "string") { - act.setInput(key, value); - } - } - - const result = await act.runEvent("workflow_dispatch", { - ...logActOutput(`${testCase.name}-action.log`), - cwd: mockGithub.repo.getPath("build-chain"), - workflowFile: mockGithub.repo.getPath("build-chain") - }); - - expect(result.length).toBe(12); - expect(result[8].name).toBe("Main ./build-chain"); - expect(result[8].status).toBe(testCase.shouldFail ? 1 : 0); - if (testCase.matchOutput) { - testCase.matchOutput.forEach(output => { - expect(result[8].output).toEqual(expect.stringContaining(output)); - }); - } - - if (testCase.dontMatchOutput) { - testCase.dontMatchOutput.forEach(output => { - expect(result[13].output).not.toEqual(expect.stringContaining(output)); - }); - } - }); - } -}); - -async function getEventPayload(event: string) { - const urlRegex = /^(https?:\/\/.+\/)([^/\s]+)\/([^/\s]+)\/pull\/(\d+)$/; - const urlCheck = event.match(urlRegex); - const octokit = new Octokit(); - if (urlCheck) { - const { data } = await octokit.pulls.get({ - owner: urlCheck[2], - repo: urlCheck[3], - pull_number: parseInt(urlCheck[4]), - } - ); - return data; - } - throw new Error("Invalid url"); -} diff --git a/test/e2e-regression/github-action/test.yaml b/test/e2e-regression/github-action/test.yaml deleted file mode 100644 index f9174b5d..00000000 --- a/test/e2e-regression/github-action/test.yaml +++ /dev/null @@ -1,72 +0,0 @@ -name: custom github action e2e - -on: - workflow_dispatch: - inputs: - definition-file: - required: true - flow-type: - required: true - starting-project: - required: false - skip-execution: - required: false - default: "false" - skip-project-execution: - required: false - skip-checkout: - required: false - default: "false" - skip-project-checkout: - required: false - skip-parallel-checkout: - required: false - default: "false" - custom-command-treatment: - required: false - additional-flags: - required: false - logger-level: - default: "debug" - required: false - annotations-prefix: - required: false - java-version: - default: "11" - required: false - maven-version: - default: "3.8.7" - required: false - cache-key-prefix: - default: "Linux-11-maven3.8.7" - required: false - -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - with: - path: build-chain - - uses: kiegroup/kogito-pipelines/.ci/actions/maven@main - with: - java-version: ${{ inputs.java-version }} - maven-version: ${{ inputs.maven-version }} - cache-key-prefix: ${{ inputs.maven-version }} - - uses: ./build-chain - with: - definition-file: ${{ inputs.definition-file }} - flow-type: ${{ inputs.flow-type }} - starting-project: ${{ inputs.starting-project }} - skip-execution: ${{ inputs.skip-execution }} - skip-project-execution: ${{ inputs.skip-project-execution }} - skip-checkout: ${{ inputs.skip-checkout }} - skip-project-checkout: ${{ inputs.skip-project-checkout }} - skip-parallel-checkout: ${{ inputs.skip-parallel-checkout }} - custom-command-treatment: ${{ inputs.custom-command-treatment }} - additional-flags: ${{ inputs.additional-flags }} - logger-level: ${{ inputs.logger-level }} - annotations-prefix: ${{ inputs.annotations-prefix }} - - - diff --git a/test/e2e-regression/github-action/tests.json b/test/e2e-regression/github-action/tests.json deleted file mode 100644 index c53316ea..00000000 --- a/test/e2e-regression/github-action/tests.json +++ /dev/null @@ -1,40 +0,0 @@ -[ - { - "name": "issue-372", - "definition-file": "https://raw.githubusercontent.com/kiegroup/droolsjbpm-build-bootstrap/${BRANCH:main}/.ci/compilation-config.yaml", - "flow-type": "cross_pr", - "starting-project": "kiegroup/appformer", - "skip-execution": "true", - "event": "https://github.com/kiegroup/appformer/pull/1394", - "description": "To test that definition file url placeholders fallback to using default value. Checking whether build succeeded is enough" - }, - { - "name": "issue-401", - "definition-file": "https://raw.githubusercontent.com/apache/incubator-kie-kogito-pipelines/%{process.env.GITHUB_BASE_REF.replace(/(\\d*)\\.(.*)\\.(.*)/g, (m, n1, n2, n3) => `${+n1-7}.${n2}.${n3}`)}/.ci/pull-request-config.yaml", - "starting-project": "kiegroup/optaplanner", - "flow-type": "cross_pr", - "skip-execution": "true", - "event": "https://github.com/apache/incubator-kie-optaplanner/pull/2634", - "description": "To test that definition file url placeholders as well as expressions work when defined together. Checking whether build succeeded is enough" - }, - { - "name": "issue-376", - "definition-file": "https://raw.githubusercontent.com/kiegroup/optaplanner/65755865acb320558410a7ad77edf69ba2ecdc7a/.ci/pull-request-config-rhbop.yaml", - "flow-type": "branch", - "additional-flags": "--branch main", - "starting-project": "kiegroup/optaplanner", - "skip-execution": "true", - "event": { - "base": { - "ref": "main", - "repo": { - "full_name": "kiegroup/optaplanner" - } - } - }, - "matchOutput": [ - "[BEFORE] No commands were found for kiegroup/optaplanner\n[INFO] [COMMANDS] Skipped kiegroup/optaplanner\n[INFO] [AFTER] Skipped kiegroup/optaplanner" - ], - "description": "Ensure that before, current and after are executed per project. Need to check the order of logging of before, current and after for the same project" - } -] \ No newline at end of file diff --git a/test/e2e/branch/branch.test.ts b/test/e2e/branch/branch.test.ts deleted file mode 100644 index 95343989..00000000 --- a/test/e2e/branch/branch.test.ts +++ /dev/null @@ -1,374 +0,0 @@ -import { GitActionTypes, MockGithub, Moctokit } from "@kie/mock-github"; -import path from "path"; -import { Act } from "@kie/act-js"; -import { logActOutput } from "../helper/logger"; - -let mockGithub: MockGithub; -beforeEach(async () => { - mockGithub = new MockGithub( - { - repo: { - "build-chain": { - files: [ - { - src: path.resolve(__dirname, "..", "resources"), - dest: ".github/", - }, - { - src: path.join(__dirname, "branch.yaml"), - dest: ".github/workflows/branch.yaml", - }, - { - src: path.resolve(__dirname, "..", "..", "..", "action.yml"), - dest: "action.yml", - }, - { - src: path.resolve(__dirname, "..", "..", "..", "dist-e2e"), - dest: "dist", - }, - ], - }, - "owner1/project1": { - pushedBranches: ["branchB", "8.B"], - history: [ - { - action: GitActionTypes.PUSH, - branch: "8.B", - }, - { - action: GitActionTypes.PUSH, - branch: "branchB", - }, - ], - }, - "owner1/project2": { - pushedBranches: ["branchB"], - history: [ - { - action: GitActionTypes.PUSH, - branch: "branchB", - }, - ], - }, - "owner1/project3": { - pushedBranches: ["branchB"], - history: [ - { - action: GitActionTypes.PUSH, - branch: "branchB", - }, - ], - }, - "owner1/project4": { - pushedBranches: ["branchB"], - history: [ - { - action: GitActionTypes.PUSH, - branch: "branchB", - }, - ], - }, - "owner2/project4": { - pushedBranches: ["branchB"], - history: [ - { - action: GitActionTypes.PUSH, - branch: "branchB", - }, - ], - }, - }, - }, - path.join(__dirname, "setup") - ); - await mockGithub.setup(); -}); - -afterEach(async () => { - await mockGithub.teardown(); -}); - -test("full downstream where 1 project has a PR and one doesn't", async () => { - const moctokit = new Moctokit("http://api.github.com"); - const act = new Act(); - const repoPath = mockGithub.repo.getPath("build-chain"); - const parentDir = path.dirname(repoPath!); - const result = await act - .setGithubToken("token") - .setEnv("GITHUB_SERVER_URL", `${parentDir}${path.sep}`) - .setEnv("GITHUB_REPOSITORY", "owner1/project2") - .setEnv( - "CLONE_DIR", - `${path.join(parentDir, "owner1_project2", "project2")} ${path.join(parentDir, "owner1_project1", "project1")}` - ) - .setEnv("ADDITIONAL_FLAGS", "--fullProjectDependencyTree; --branch branchB") - .runEvent("push", { - ...logActOutput("branch-1.log"), - cwd: parentDir, - workflowFile: repoPath, - bind: true, - mockApi: [ - moctokit.rest.repos - .get({ - owner: "owner1", - repo: /project(1|2|4|3)/, - }) - .setResponse({ status: 200, data: {}, repeat: 4 }), - moctokit.rest.pulls - .list({ - owner: "owner1", - repo: /project(2|4|3)/, - }) - .setResponse({ status: 200, data: [], repeat: 6 }), - moctokit.rest.pulls - .list({ - owner: "owner1", - repo: "project1", - }) - .setResponse({ status: 200, data: [{ title: "pr" }] }), - ], - }); - expect(result.length).toBe(4); - expect(result[0]).toStrictEqual({ - name: "Main actions/checkout@v2", - status: 0, - output: "", - }); - expect(result[1]).toMatchObject({ name: "Main ./build-chain", status: 0 }); - expect(result[1].groups?.length).toBe(18); - - // pre section - const group1 = result[1].groups![0]; - expect(group1.name).toBe("Executing pre section"); - expect(group1.output).toEqual( - expect.stringContaining("Executing pre step 1") - ); - expect(group1.output).toEqual( - expect.stringContaining("Executing pre step 2") - ); - - // execution plan - const group2 = result[1].groups![1]; - expect(group2.name).toBe("Execution Plan"); - expect(group2.output).toEqual( - expect.stringContaining("4 projects will be executed") - ); - expect(group2.output).toEqual(expect.stringContaining("[owner1/project1]")); - expect(group2.output).toEqual( - expect.stringContaining("Level type: upstream") - ); - expect(group2.output).toEqual(expect.stringContaining("[owner1/project3]")); - expect(group2.output).toEqual( - expect.stringContaining("Level type: upstream") - ); - expect(group2.output).toEqual(expect.stringContaining("[owner1/project2]")); - expect(group2.output).toEqual(expect.stringContaining("Level type: current")); - expect(group2.output).toEqual(expect.stringContaining("[owner1/project4]")); - expect(group2.output).toEqual( - expect.stringContaining("Level type: downstream") - ); - - // checkout summary - const group4 = result[1].groups![3]; - expect(group4.name).toBe("Checkout summary"); - expect(group4.output).toEqual(expect.stringContaining("[owner1/project1]")); - expect(group4.output).toEqual( - expect.stringContaining("Project taken from owner1/project1:8.B") - ); - expect(group4.output).toEqual( - expect.stringContaining("Merged owner1/project1:branchB into branch 8.B") - ); - expect(group4.output).toEqual(expect.stringContaining("[owner1/project3]")); - expect(group4.output).toEqual( - expect.stringContaining("Project taken from owner1/project3:branchB") - ); - expect(group4.output).toEqual(expect.stringContaining("[owner1/project2]")); - expect(group4.output).toEqual( - expect.stringContaining("Project taken from owner1/project2:branchB") - ); - expect(group4.output).not.toEqual( - expect.stringContaining( - "Merged owner1/project2:branchB into branch branchB" - ) - ); - expect(group4.output).toEqual(expect.stringContaining("[owner1/project4]")); - expect(group4.output).toEqual( - expect.stringContaining("Project taken from owner1/project4:branchB") - ); - expect(group4.output).not.toEqual( - expect.stringContaining( - "Merged owner1/project4:branchB into branch branchB" - ) - ); - - // owner1/project1 execution - const group5 = result[1].groups![4]; - expect(group5.name).toBe("Executing owner1/project1"); - expect(group5.output).toEqual( - expect.stringContaining("before upstream owner1/project1") - ); - expect(group5.output).toEqual( - expect.stringContaining("default upstream") - ); - expect(group5.output).toEqual( - expect.stringContaining("default after current") - ); - - // owner1/project2 execution - const group9 = result[1].groups![8]; - expect(group9.name).toBe("Executing owner1/project2"); - expect(group9.output).toEqual( - expect.stringContaining("current owner1/project2") - ); - expect(group9.output).toEqual(expect.stringContaining("default after current")); - - // owner1/project3 execution - const group12 = result[1].groups![11]; - expect(group12.name).toBe("Executing owner1/project3"); - expect(group12.output).toEqual( - expect.stringContaining("default after current") - ); - - // owner1/project4 execution - const group15 = result[1].groups![14]; - expect(group15.name).toBe("Executing owner1/project4"); - expect(group15.output).toEqual( - expect.stringContaining("default current") - ); - expect(group15.output).toEqual( - expect.stringContaining("default after current") - ); - const group18 = result[1].groups![17]; - expect(group18.name).toBe("Uploading artifacts"); - expect(group18.output).toEqual( - expect.stringContaining("No artifacts to archive") - ); - - expect(result[2]).toStrictEqual({ - name: "Main Check for clones", - status: 0, - output: "exist", - }); -}); - -test("cross-pr with no PRs", async () => { - const moctokit = new Moctokit("http://api.github.com"); - const act = new Act(); - const repoPath = mockGithub.repo.getPath("build-chain"); - const parentDir = path.dirname(repoPath!); - const result = await act - .setGithubToken("token") - .setEnv("GITHUB_SERVER_URL", `${parentDir}${path.sep}`) - .setEnv("GITHUB_REPOSITORY", "owner1/project2") - .setEnv( - "CLONE_DIR", - `${path.join(parentDir, "owner1_project1", "project1")} ${path.join(parentDir, "owner1_project2", "project2")}` - ) - .setEnv("ADDITIONAL_FLAGS", "--branch branchB") - .runEvent("push", { - ...logActOutput("branch-2.log"), - cwd: parentDir, - workflowFile: repoPath, - bind: true, - mockApi: [ - moctokit.rest.repos - .get({ - owner: "owner1", - repo: /project(1|2)/, - }) - .setResponse({ status: 200, data: {}, repeat: 2 }), - moctokit.rest.pulls - .list({ - owner: "owner1", - repo: /project(1|2)/, - }) - .setResponse({ status: 200, data: [], repeat: 4 }), - ], - }); - expect(result.length).toBe(4); - expect(result[0]).toStrictEqual({ - name: "Main actions/checkout@v2", - status: 0, - output: "", - }); - expect(result[1]).toMatchObject({ name: "Main ./build-chain", status: 0 }); - expect(result[1].groups?.length).toBe(12); - - // pre section - const group1 = result[1].groups![0]; - expect(group1.name).toBe("Executing pre section"); - expect(group1.output).toEqual( - expect.stringContaining("Executing pre step 1") - ); - expect(group1.output).toEqual( - expect.stringContaining("Executing pre step 2") - ); - - // execution plan - const group2 = result[1].groups![1]; - expect(group2.name).toBe("Execution Plan"); - expect(group2.output).toEqual( - expect.stringContaining("2 projects will be executed") - ); - expect(group2.output).toEqual(expect.stringContaining("[owner1/project1]")); - expect(group2.output).toEqual( - expect.stringContaining("Level type: upstream") - ); - expect(group2.output).toEqual(expect.stringContaining("[owner1/project2]")); - expect(group2.output).toEqual(expect.stringContaining("Level type: current")); - - // checkout summary. important to verify the mapped targets - const group4 = result[1].groups![3]; - expect(group4.name).toBe("Checkout summary"); - expect(group4.output).toEqual(expect.stringContaining("[owner1/project1]")); - expect(group4.output).toEqual( - expect.stringContaining("Project taken from owner1/project1:8.B") - ); - expect(group4.output).not.toEqual( - expect.stringContaining("Merged owner1/project1:branchB into branch 8.B") - ); - expect(group4.output).toEqual(expect.stringContaining("[owner1/project2]")); - expect(group4.output).toEqual( - expect.stringContaining("Project taken from owner1/project2:branchB") - ); - expect(group4.output).not.toEqual( - expect.stringContaining( - "Merged owner1/project2:branchB into branch branchB" - ) - ); - - // owner1/project1 section - const group5 = result[1].groups![4]; - expect(group5.name).toBe("Executing owner1/project1"); - expect(group5.output).toEqual( - expect.stringContaining("before upstream owner1/project1") - ); - expect(group5.output).toEqual( - expect.stringContaining("default upstream") - ); - expect(group5.output).toEqual( - expect.stringContaining("default after current") - ); - - // owner1/project2 section - const group9 = result[1].groups![8]; - expect(group9.name).toBe("Executing owner1/project2"); - expect(group9.output).toEqual( - expect.stringContaining("current owner1/project2") - ); - expect(group9.output).toEqual(expect.stringContaining("default after current")); - - // artifacts - const group12 = result[1].groups![11]; - expect(group12.name).toBe("Uploading artifacts"); - expect(group12.output).toEqual( - expect.stringContaining("No artifacts to archive") - ); - - // clone check is done during the workflow execution. just verify it succeeded here - expect(result[2]).toStrictEqual({ - name: "Main Check for clones", - status: 0, - output: "exist", - }); -}); diff --git a/test/e2e/branch/branch.yaml b/test/e2e/branch/branch.yaml deleted file mode 100644 index 4d3c71d4..00000000 --- a/test/e2e/branch/branch.yaml +++ /dev/null @@ -1,17 +0,0 @@ -name: Branch - -on: push -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: ./build-chain - with: - definition-file: build-chain/.github/definition-file.yaml - flow-type: branch - additional-flags: ${{ env.ADDITIONAL_FLAGS }} - - name: Check for clones - run: result="exist"; for dir in $CLONE_DIR; do test ! -d $dir && result="does not exist" && break; done; echo "$result" - - name: clean up - run: rm -rf owner1_* && rm -rf project* diff --git a/test/e2e/cross-pr/cross-pr.test.ts b/test/e2e/cross-pr/cross-pr.test.ts deleted file mode 100644 index 63c34ef4..00000000 --- a/test/e2e/cross-pr/cross-pr.test.ts +++ /dev/null @@ -1,496 +0,0 @@ -import { GitActionTypes, MockGithub, Moctokit } from "@kie/mock-github"; -import path from "path"; -import { Act } from "@kie/act-js"; -import { logActOutput } from "../helper/logger"; - -let mockGithub: MockGithub; -beforeEach(async () => { - mockGithub = new MockGithub( - { - repo: { - "build-chain": { - files: [ - { - src: path.resolve(__dirname, "..", "resources"), - dest: ".github/", - }, - { - src: path.join(__dirname, "cross-pr.yaml"), - dest: ".github/workflows/cross-pr.yaml", - }, - { - src: path.resolve(__dirname, "..", "..", "..", "action.yml"), - dest: "action.yml", - }, - { - src: path.resolve(__dirname, "..", "..", "..", "dist-e2e"), - dest: "dist", - }, - ], - }, - "owner1/project1": { - pushedBranches: ["branchA", "branchB", "8.B", "7.x"], - history: [ - { - action: GitActionTypes.PUSH, - branch: "branchA", - }, - { - action: GitActionTypes.PUSH, - branch: "branchB", - }, - { - action: GitActionTypes.PUSH, - branch: "8.B", - }, - { - action: GitActionTypes.PUSH, - branch: "7.x", - }, - ], - }, - "owner1/project2": { - pushedBranches: ["branchA", "branchB"], - history: [ - { - action: GitActionTypes.PUSH, - branch: "branchA", - }, - { - action: GitActionTypes.PUSH, - branch: "branchB", - }, - ], - }, - "owner1/project3": { - pushedBranches: ["branchC"], - history: [ - { - action: GitActionTypes.PUSH, - branch: "branchC", - }, - ], - }, - "owner1/project4": { - pushedBranches: ["branchB"], - history: [ - { - action: GitActionTypes.PUSH, - branch: "branchB", - }, - ], - }, - "owner2/project3": { - pushedBranches: ["branchA"], - history: [ - { - action: GitActionTypes.PUSH, - branch: "branchA", - }, - ], - }, - "owner2/project4": { - pushedBranches: ["branchA"], - history: [ - { - action: GitActionTypes.PUSH, - branch: "branchA", - }, - ], - }, - }, - }, - path.join(__dirname, "setup") - ); - await mockGithub.setup(); -}); - -afterEach(async () => { - await mockGithub.teardown(); -}); - -test("PR from owner1/target:branchA to owner2/target:branchB while using mapping of the starting project (mapping.dependencies.X)", async () => { - const moctokit = new Moctokit("http://api.github.com"); - const act = new Act(); - const repoPath = mockGithub.repo.getPath("build-chain"); - const parentDir = path.dirname(repoPath!); - const result = await act - .setGithubToken("token") - .setEnv("GITHUB_SERVER_URL", `${parentDir}${path.sep}`) - .setEnv("GITHUB_REPOSITORY", "owner1/project4") - .setEnv( - "CLONE_DIR", - `${path.join(parentDir, "owner1_project1", "project1")} ${path.join( - parentDir, - "owner1_project2", - "project2" - )} ${path.join(parentDir, "owner1_project3", "project3")}` - ) - .setEvent({ - pull_request: { - head: { - ref: "branchA", - repo: { - full_name: "owner2/project4", - name: "project4", - owner: { - login: "owner2", - }, - }, - }, - base: { - ref: "branchB", - repo: { - full_name: "owner1/project4", - name: "project4", - owner: { - login: "owner1", - }, - }, - }, - }, - }) - .runEvent("pull_request", { - ...logActOutput("cross-pr-1.log"), - cwd: parentDir, - workflowFile: repoPath, - bind: true, - mockApi: [ - moctokit.rest.repos - .get({ - owner: "owner2", - repo: /project(1|2)/, - }) - .setResponse({ - status: 404, - data: {}, - repeat: 2 - }), - moctokit.rest.repos - .get({ - owner: "owner2", - repo: "project4" - }) - .setResponse({ - status: 200, - data: {}, - }), - moctokit.rest.repos - .listForks({ - owner: "owner1", - repo: "project4", - }) - .setResponse({ - status: 200, - data: [ - { - name: "project4", - owner: { - login: "owner2", - }, - }, - ], - }), - moctokit.rest.repos - .get({ - owner: "owner2", - repo: "project3", - }) - .setResponse({ - status: 200, - data: { name: "project3", owner: { login: "owner2" } }, - }), - moctokit.rest.repos - .listForks({ - owner: "owner1", - repo: /project(1|2)/, - }) - .setResponse({ - status: 200, - data: [], - repeat: 2, - }), - moctokit.rest.pulls - .list({ - owner: "owner1", - repo: /project(1|2|3|4)/, - }) - .setResponse({ status: 200, data: [{ title: "pr" }], repeat: 4 }), - ], - }); - - expect(result.length).toBe(4); - expect(result[0]).toStrictEqual({ - name: "Main actions/checkout@v2", - status: 0, - output: "", - }); - expect(result[1]).toMatchObject({ name: "Main ./build-chain", status: 0 }); - expect(result[1].groups?.length).toBe(18); - - // pre section - const group1 = result[1].groups![0]; - expect(group1.name).toBe("Executing pre section"); - expect(group1.output).toEqual( - expect.stringContaining("Executing pre step 1") - ); - expect(group1.output).toEqual( - expect.stringContaining("Executing pre step 2") - ); - - // execution plan - const group2 = result[1].groups![1]; - expect(group2.name).toBe("Execution Plan"); - expect(group2.output).toEqual( - expect.stringContaining("4 projects will be executed") - ); - expect(group2.output).toEqual(expect.stringContaining("[owner1/project1]")); - expect(group2.output).toEqual( - expect.stringContaining("Level type: upstream") - ); - expect(group2.output).toEqual(expect.stringContaining("[owner1/project2]")); - expect(group2.output).toEqual( - expect.stringContaining("Level type: upstream") - ); - expect(group2.output).toEqual(expect.stringContaining("[owner1/project3]")); - expect(group2.output).toEqual( - expect.stringContaining("Level type: upstream") - ); - expect(group2.output).toEqual(expect.stringContaining("[owner1/project4]")); - expect(group2.output).toEqual(expect.stringContaining("Level type: current")); - - // checkout project. important to verify the mapped targets - const group4 = result[1].groups![3]; - expect(group4.name).toBe("Checkout summary"); - expect(group4.output).toEqual(expect.stringContaining("[owner1/project1]")); - expect(group4.output).toEqual( - expect.stringContaining("Project taken from owner1/project1:7.x") - ); - expect(group4.output).toEqual( - expect.stringContaining("Merged owner1/project1:branchA into branch 7.x") - ); - expect(group4.output).toEqual(expect.stringContaining("[owner1/project2]")); - expect(group4.output).toEqual( - expect.stringContaining("Project taken from owner1/project2:branchB") - ); - expect(group4.output).toEqual( - expect.stringContaining( - "Merged owner1/project2:branchA into branch branchB" - ) - ); - expect(group4.output).toEqual(expect.stringContaining("[owner1/project3]")); - expect(group4.output).toEqual( - expect.stringContaining("Project taken from owner1/project3:branchC") - ); - expect(group4.output).toEqual( - expect.stringContaining( - "Merged owner2/project3:branchA into branch branchC" - ) - ); - expect(group4.output).toEqual(expect.stringContaining("[owner1/project4]")); - expect(group4.output).toEqual( - expect.stringContaining("Project taken from owner1/project4:branchB") - ); - expect(group4.output).toEqual( - expect.stringContaining( - "Merged owner2/project4:branchA into branch branchB" - ) - ); - - // owner1/project1 section - const group5 = result[1].groups![4]; - expect(group5.name).toBe("Executing owner1/project1"); - expect(group5.output).toEqual( - expect.stringContaining("before upstream owner1/project1") - ); - expect(group5.output).toEqual( - expect.stringContaining("default upstream") - ); - expect(group5.output).toEqual( - expect.stringContaining("default after current") - ); - - // owner1/project3 section - const group9 = result[1].groups![8]; - expect(group9.name).toBe("Executing owner1/project3"); - expect(group9.output).toEqual(expect.stringContaining("default after current")); - - // owner1/project2 section - const group12 = result[1].groups![11]; - expect(group12.name).toBe("Executing owner1/project2"); - expect(group12.output).toEqual( - expect.stringContaining("upstream owner1/project2") - ); - expect(group12.output).toEqual( - expect.stringContaining("default after current") - ); - - // owner1/project4 section - const group15 = result[1].groups![14]; - expect(group15.name).toBe("Executing owner1/project4"); - expect(group15.output).toEqual( - expect.stringContaining("default current") - ); - expect(group15.output).toEqual( - expect.stringContaining("default after current") - ); - - // artifacts - const group18 = result[1].groups![17]; - expect(group18.name).toBe("Uploading artifacts"); - expect(group18.output).toEqual( - expect.stringContaining("No artifacts to archive") - ); - - // clone check is done during the workflow execution. just verify it succeeded here - expect(result[2]).toStrictEqual({ - name: "Main Check for clones", - status: 0, - output: "exist", - }); -}); - -test("PR from target:branchA to target:branchB while using mapping of a non-starting project (mapping.dependant.X)", async () => { - const moctokit = new Moctokit("http://api.github.com"); - const act = new Act(); - const repoPath = mockGithub.repo.getPath("build-chain"); - const parentDir = path.dirname(repoPath!); - const result = await act - .setGithubToken("token") - .setEnv("GITHUB_SERVER_URL", `${parentDir}${path.sep}`) - .setEnv("GITHUB_REPOSITORY", "owner1/project2") - .setEnv( - "CLONE_DIR", - `${path.join(parentDir, "owner1_project1", "project1")} ${path.join(parentDir, "owner1_project2", "project2")}` - ) - .setEvent({ - pull_request: { - head: { - ref: "branchA", - repo: { - full_name: "owner1/project2", - name: "project2", - owner: { - login: "owner1", - }, - }, - }, - base: { - ref: "branchB", - repo: { - full_name: "owner1/project2", - name: "project2", - owner: { - login: "owner1", - }, - }, - }, - }, - }) - .runEvent("pull_request", { - ...logActOutput("cross-pr-2.log"), - cwd: parentDir, - workflowFile: repoPath, - bind: true, - mockApi: [ - moctokit.rest.repos - .get({ - owner: "owner1", - repo: /project(1|2)/, - }) - .setResponse({ status: 200, data: {}, repeat: 2 }), - moctokit.rest.pulls - .list({ - owner: "owner1", - repo: /project(1|2)/, - }) - .setResponse({ status: 200, data: [{ title: "pr" }], repeat: 2 }), - ], - }); - expect(result.length).toBe(4); - expect(result[0]).toStrictEqual({ - name: "Main actions/checkout@v2", - status: 0, - output: "", - }); - expect(result[1]).toMatchObject({ name: "Main ./build-chain", status: 0 }); - expect(result[1].groups?.length).toBe(12); - - // pre section - const group1 = result[1].groups![0]; - expect(group1.name).toBe("Executing pre section"); - expect(group1.output).toEqual( - expect.stringContaining("Executing pre step 1") - ); - expect(group1.output).toEqual( - expect.stringContaining("Executing pre step 2") - ); - - // execution plan - const group2 = result[1].groups![1]; - expect(group2.name).toBe("Execution Plan"); - expect(group2.output).toEqual( - expect.stringContaining("2 projects will be executed") - ); - expect(group2.output).toEqual(expect.stringContaining("[owner1/project1]")); - expect(group2.output).toEqual( - expect.stringContaining("Level type: upstream") - ); - expect(group2.output).toEqual(expect.stringContaining("[owner1/project2]")); - expect(group2.output).toEqual(expect.stringContaining("Level type: current")); - - // checkout projects. important to verify the mapped targets - const group4 = result[1].groups![3]; - expect(group4.name).toBe("Checkout summary"); - expect(group4.output).toEqual(expect.stringContaining("[owner1/project1]")); - expect(group4.output).toEqual( - expect.stringContaining("Project taken from owner1/project1:8.B") - ); - expect(group4.output).toEqual( - expect.stringContaining("Merged owner1/project1:branchA into branch 8.B") - ); - expect(group4.output).toEqual(expect.stringContaining("[owner1/project2]")); - expect(group4.output).toEqual( - expect.stringContaining("Project taken from owner1/project2:branchB") - ); - expect(group4.output).toEqual( - expect.stringContaining( - "Merged owner1/project2:branchA into branch branchB" - ) - ); - - // owner1/project1 section - const group5 = result[1].groups![4]; - expect(group5.name).toBe("Executing owner1/project1"); - expect(group5.output).toEqual( - expect.stringContaining("before upstream owner1/project1") - ); - expect(group5.output).toEqual( - expect.stringContaining("default upstream") - ); - expect(group5.output).toEqual( - expect.stringContaining("default after current") - ); - - // owner1/project2 section - const group9 = result[1].groups![8]; - expect(group9.name).toBe("Executing owner1/project2"); - expect(group9.output).toEqual( - expect.stringContaining("current owner1/project2") - ); - expect(group9.output).toEqual(expect.stringContaining("default after current")); - - // artifacts - const group12 = result[1].groups![11]; - expect(group12.name).toBe("Uploading artifacts"); - expect(group12.output).toEqual( - expect.stringContaining("No artifacts to archive") - ); - - // clone check is done during the workflow execution. just verify it succeeded here - expect(result[2]).toStrictEqual({ - name: "Main Check for clones", - status: 0, - output: "exist", - }); -}); diff --git a/test/e2e/cross-pr/cross-pr.yaml b/test/e2e/cross-pr/cross-pr.yaml deleted file mode 100644 index f5f27d80..00000000 --- a/test/e2e/cross-pr/cross-pr.yaml +++ /dev/null @@ -1,16 +0,0 @@ -name: Cross PR - -on: pull_request -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: ./build-chain - with: - definition-file: build-chain/.github/definition-file.yaml - flow-type: cross_pr - - name: Check for clones - run: result="exist"; for dir in $CLONE_DIR; do test ! -d $dir && result="does not exist" && break; done; echo "$result" - - name: clean up - run: rm -rf owner1_* && rm -rf project* diff --git a/test/e2e/full-downstream/full-downstream.test.ts b/test/e2e/full-downstream/full-downstream.test.ts deleted file mode 100644 index f480993a..00000000 --- a/test/e2e/full-downstream/full-downstream.test.ts +++ /dev/null @@ -1,561 +0,0 @@ -import { GitActionTypes, MockGithub, Moctokit } from "@kie/mock-github"; -import path from "path"; -import { Act } from "@kie/act-js"; -import { logActOutput } from "../helper/logger"; - -let mockGithub: MockGithub; -beforeEach(async () => { - mockGithub = new MockGithub( - { - repo: { - "build-chain": { - files: [ - { - src: path.resolve(__dirname, "..", "resources"), - dest: ".github/", - }, - { - src: path.join(__dirname, "full-downstream.yaml"), - dest: ".github/workflows/full-downstream.yaml", - }, - { - src: path.resolve(__dirname, "..", "..", "..", "action.yml"), - dest: "action.yml", - }, - { - src: path.resolve(__dirname, "..", "..", "..", "dist-e2e"), - dest: "dist", - }, - ], - }, - "owner1/project1": { - pushedBranches: ["branchA", "branchB", "8.B", "7.x"], - history: [ - { - action: GitActionTypes.PUSH, - branch: "branchA", - }, - { - action: GitActionTypes.PUSH, - branch: "branchB", - }, - { - action: GitActionTypes.PUSH, - branch: "8.B", - }, - { - action: GitActionTypes.PUSH, - branch: "7.x", - }, - ], - }, - "owner1/project2": { - pushedBranches: ["branchA", "branchB", "8.x"], - history: [ - { - action: GitActionTypes.PUSH, - branch: "branchA", - }, - { - action: GitActionTypes.PUSH, - branch: "branchB", - }, - { - action: GitActionTypes.PUSH, - branch: "8.x", - }, - ], - }, - "owner1/project3": { - pushedBranches: ["8.x", "branchB", "branchA"], - history: [ - { - action: GitActionTypes.PUSH, - branch: "8.x", - }, - { - action: GitActionTypes.PUSH, - branch: "branchB", - }, - { - action: GitActionTypes.PUSH, - branch: "branchA", - }, - ], - }, - "owner1/project4": { - pushedBranches: ["branchB", "branchA", "8.x"], - history: [ - { - action: GitActionTypes.PUSH, - branch: "branchB", - }, - { - action: GitActionTypes.PUSH, - branch: "branchA", - }, - { - action: GitActionTypes.PUSH, - branch: "8.x", - }, - ], - }, - "owner2/project1": { - pushedBranches: ["branchA"], - history: [ - { - action: GitActionTypes.PUSH, - branch: "branchA", - }, - ], - }, - "owner2/project3": { - pushedBranches: ["branchA"], - history: [ - { - action: GitActionTypes.PUSH, - branch: "branchA", - }, - ], - }, - "owner2/project4": { - pushedBranches: ["branchA"], - history: [ - { - action: GitActionTypes.PUSH, - branch: "branchA", - }, - ], - }, - }, - }, - path.join(__dirname, "setup") - ); - await mockGithub.setup(); -}); - -afterEach(async () => { - await mockGithub.teardown(); -}); - -test("PR from owner1/target:branchA to owner2/target:branchB while using mapping of the starting project (mapping.dependencies.X)", async () => { - const moctokit = new Moctokit("http://api.github.com"); - const act = new Act(); - const repoPath = mockGithub.repo.getPath("build-chain"); - const parentDir = path.dirname(repoPath!); - const result = await act - .setGithubToken("token") - .setEnv("GITHUB_SERVER_URL", `${parentDir}${path.sep}`) - .setEnv("GITHUB_REPOSITORY", "owner1/project1") - .setEnv( - "CLONE_DIR", - `${path.join(parentDir, "owner1_project1", "project1")} ${path.join( - parentDir, - "owner1_project2", - "project2" - )} ${path.join(parentDir, "owner1_project3", "project3")}` - ) - .setEvent({ - pull_request: { - head: { - ref: "branchA", - repo: { - full_name: "owner2/project1", - name: "project1", - owner: { - login: "owner2", - }, - }, - }, - base: { - ref: "branchB", - repo: { - full_name: "owner1/project1", - name: "project1", - owner: { - login: "owner1", - }, - }, - }, - }, - }) - .runEvent("pull_request", { - ...logActOutput("full-downstream-1.log"), - cwd: parentDir, - workflowFile: repoPath, - bind: true, - mockApi: [ - moctokit.rest.repos - .get({ - owner: "owner2", - repo: "project2", - }) - .setResponse({ - status: 404, - data: {}, - }), - moctokit.rest.repos - .get({ - owner: "owner2", - repo: /project(1|3|4)/, - }) - .setResponse({ - status: 200, - data: {}, - repeat: 3 - }), - moctokit.rest.repos - .listForks({ - owner: "owner1", - repo: "project1", - }) - .setResponse({ - status: 200, - data: [ - { - name: "project1", - owner: { - login: "owner2", - }, - }, - ], - }), - moctokit.rest.repos - .listForks({ - owner: "owner1", - repo: "project3", - }) - .setResponse({ - status: 200, - data: [{ name: "project3", owner: { login: "owner2" } }], - }), - moctokit.rest.repos - .listForks({ - owner: "owner1", - repo: /project(2|4)/, - }) - .setResponse({ - status: 200, - data: [], - repeat: 2 - }), - moctokit.rest.pulls - .list({ - owner: "owner1", - repo: /project(1|2|3|4)/, - }) - .setResponse({ status: 200, data: [{ title: "pr" }], repeat: 4 }), - ], - }); - - expect(result.length).toBe(4); - expect(result[0]).toStrictEqual({ - name: "Main actions/checkout@v2", - status: 0, - output: "", - }); - expect(result[1]).toMatchObject({ name: "Main ./build-chain", status: 0 }); - expect(result[1].groups?.length).toBe(18); - - // pre section - const group1 = result[1].groups![0]; - expect(group1.name).toBe("Executing pre section"); - expect(group1.output).toEqual( - expect.stringContaining("Executing pre step 1") - ); - expect(group1.output).toEqual( - expect.stringContaining("Executing pre step 2") - ); - - // execution plan - const group2 = result[1].groups![1]; - expect(group2.name).toBe("Execution Plan"); - expect(group2.output).toEqual( - expect.stringContaining("4 projects will be executed") - ); - expect(group2.output).toEqual(expect.stringContaining("[owner1/project1]")); - expect(group2.output).toEqual( - expect.stringContaining("Level type: current") - ); - expect(group2.output).toEqual(expect.stringContaining("[owner1/project3]")); - expect(group2.output).toEqual( - expect.stringContaining("Level type: downstream") - ); - expect(group2.output).toEqual(expect.stringContaining("[owner1/project2]")); - expect(group2.output).toEqual( - expect.stringContaining("Level type: downstream") - ); - expect(group2.output).toEqual(expect.stringContaining("[owner1/project4]")); - expect(group2.output).toEqual(expect.stringContaining("Level type: downstream")); - - // checkout projects. important to verify the mapped targets - const group4 = result[1].groups![3]; - expect(group4.name).toBe("Checkout summary"); - expect(group4.output).toEqual(expect.stringContaining("[owner1/project1]")); - expect(group4.output).toEqual( - expect.stringContaining("Project taken from owner1/project1:branchB") - ); - expect(group4.output).toEqual( - expect.stringContaining("Merged owner2/project1:branchA into branch branchB") - ); - expect(group4.output).toEqual(expect.stringContaining("[owner1/project2]")); - expect(group4.output).toEqual( - expect.stringContaining("Project taken from owner1/project2:8.x") - ); - expect(group4.output).toEqual( - expect.stringContaining( - "Merged owner1/project2:branchA into branch 8.x" - ) - ); - expect(group4.output).toEqual(expect.stringContaining("[owner1/project3]")); - expect(group4.output).toEqual( - expect.stringContaining("Project taken from owner1/project3:8.x") - ); - expect(group4.output).toEqual( - expect.stringContaining( - "Merged owner2/project3:branchA into branch 8.x" - ) - ); - expect(group4.output).toEqual(expect.stringContaining("[owner1/project4]")); - expect(group4.output).toEqual( - expect.stringContaining("Project taken from owner1/project4:8.x") - ); - expect(group4.output).toEqual( - expect.stringContaining( - "Merged owner2/project4:branchA into branch 8.x" - ) - ); - - // owner1/project1 section - const group5 = result[1].groups![4]; - expect(group5.name).toBe("Executing owner1/project1"); - expect(group5.output).toEqual( - expect.stringContaining("before current owner1/project1") - ); - expect(group5.output).toEqual( - expect.stringContaining("current owner1/project1") - ); - expect(group5.output).toEqual( - expect.stringContaining("default after current") - ); - - // owner1/project2 section - const group9 = result[1].groups![8]; - expect(group9.name).toBe("Executing owner1/project2"); - expect(group9.output).toEqual( - expect.stringContaining("current owner1/project2") - ); - expect(group9.output).toEqual(expect.stringContaining("after downstream owner1/project2")); - - // owner1/project3 section - const group12 = result[1].groups![11]; - expect(group12.name).toBe("Executing owner1/project3"); - expect(group12.output).toEqual( - expect.stringContaining("default after current") - ); - - // owner1/project4 section - const group15 = result[1].groups![14]; - expect(group15.name).toBe("Executing owner1/project4"); - expect(group15.output).toEqual( - expect.stringContaining("default current") - ); - expect(group15.output).toEqual( - expect.stringContaining("default after current") - ); - - // artifacts - const group18 = result[1].groups![17]; - expect(group18.name).toBe("Uploading artifacts"); - expect(group18.output).toEqual( - expect.stringContaining("No artifacts to archive") - ); - - // clone check is done during the workflow execution. just verify it succeeded here - expect(result[2]).toStrictEqual({ - name: "Main Check for clones", - status: 0, - output: "exist", - }); -}); - -test("PR from target:branchA to target:branchB while using mapping of a non-starting project (mapping.dependant.X)", async () => { - const moctokit = new Moctokit("http://api.github.com"); - const act = new Act(); - const repoPath = mockGithub.repo.getPath("build-chain"); - const parentDir = path.dirname(repoPath!); - const result = await act - .setGithubToken("token") - .setEnv("GITHUB_SERVER_URL", `${parentDir}${path.sep}`) - .setEnv("GITHUB_REPOSITORY", "owner1/project2") - .setEnv("CLONE_DIR", path.join(parentDir, "owner1_project2", "project2")) - .setEvent({ - pull_request: { - head: { - ref: "branchA", - repo: { - full_name: "owner1/project2", - name: "project2", - owner: { - login: "owner1", - }, - }, - }, - base: { - ref: "branchB", - repo: { - full_name: "owner1/project2", - name: "project2", - owner: { - login: "owner1", - }, - }, - }, - }, - }) - .runEvent("pull_request", { - ...logActOutput("full-downstream-2.log"), - cwd: parentDir, - workflowFile: repoPath, - bind: true, - mockApi: [ - moctokit.rest.repos - .get({ - owner: "owner1", - repo: /project(1|2|3|4)/, - }) - .setResponse({ status: 200, data: {}, repeat: 4 }), - moctokit.rest.pulls - .list({ - owner: "owner1", - repo: /project(1|2|3|4)/, - }) - .setResponse({ status: 200, data: [{ title: "pr" }], repeat: 4 }), - ], - }); - expect(result.length).toBe(4); - expect(result[0]).toStrictEqual({ - name: "Main actions/checkout@v2", - status: 0, - output: "", - }); - expect(result[1]).toMatchObject({ name: "Main ./build-chain", status: 0 }); - expect(result[1].groups?.length).toBe(18); - - // pre section - const group1 = result[1].groups![0]; - expect(group1.name).toBe("Executing pre section"); - expect(group1.output).toEqual( - expect.stringContaining("Executing pre step 1") - ); - expect(group1.output).toEqual( - expect.stringContaining("Executing pre step 2") - ); - - // execution plan - const group2 = result[1].groups![1]; - expect(group2.name).toBe("Execution Plan"); - expect(group2.output).toEqual( - expect.stringContaining("4 projects will be executed") - ); - expect(group2.output).toEqual(expect.stringContaining("[owner1/project1]")); - expect(group2.output).toEqual( - expect.stringContaining("Level type: upstream") - ); - expect(group2.output).toEqual(expect.stringContaining("[owner1/project3]")); - expect(group2.output).toEqual( - expect.stringContaining("Level type: upstream") - ); - expect(group2.output).toEqual(expect.stringContaining("[owner1/project2]")); - expect(group2.output).toEqual(expect.stringContaining("Level type: current")); - expect(group2.output).toEqual(expect.stringContaining("[owner1/project4]")); - expect(group2.output).toEqual( - expect.stringContaining("Level type: downstream") - ); - - // checkout projects - const group4 = result[1].groups![3]; - expect(group4.name).toBe("Checkout summary"); - expect(group4.output).toEqual(expect.stringContaining("[owner1/project1]")); - expect(group4.output).toEqual( - expect.stringContaining("Project taken from owner1/project1:8.B") - ); - expect(group4.output).toEqual( - expect.stringContaining("Merged owner1/project1:branchA into branch 8.B") - ); - expect(group4.output).toEqual(expect.stringContaining("[owner1/project3]")); - expect(group4.output).toEqual( - expect.stringContaining("Project taken from owner1/project3:branchB") - ); - expect(group4.output).toEqual( - expect.stringContaining( - "Merged owner1/project3:branchA into branch branchB" - ) - ); - expect(group4.output).toEqual(expect.stringContaining("[owner1/project2]")); - expect(group4.output).toEqual( - expect.stringContaining("Project taken from owner1/project2:branchB") - ); - expect(group4.output).toEqual( - expect.stringContaining( - "Merged owner1/project2:branchA into branch branchB" - ) - ); - expect(group4.output).toEqual(expect.stringContaining("[owner1/project4]")); - expect(group4.output).toEqual( - expect.stringContaining("Project taken from owner1/project4:branchB") - ); - expect(group4.output).toEqual( - expect.stringContaining( - "Merged owner1/project4:branchA into branch branchB" - ) - ); - - // owner1/project1 section - const group5 = result[1].groups![4]; - expect(group5.name).toBe("Executing owner1/project1"); - expect(group5.output).toEqual( - expect.stringContaining("before upstream owner1/project1") - ); - expect(group5.output).toEqual( - expect.stringContaining("default upstream") - ); - expect(group5.output).toEqual( - expect.stringContaining("default after current") - ); - - // owner1/project2 section - const group9 = result[1].groups![8]; - expect(group9.name).toBe("Executing owner1/project2"); - expect(group9.output).toEqual( - expect.stringContaining("current owner1/project2") - ); - expect(group9.output).toEqual(expect.stringContaining("default after current")); - - // owner1/project3 section - const group12 = result[1].groups![11]; - expect(group12.name).toBe("Executing owner1/project3"); - expect(group12.output).toEqual(expect.stringContaining("default after current")); - - // owner1/project4 section - const group15 = result[1].groups![14]; - expect(group15.name).toBe("Executing owner1/project4"); - expect(group15.output).toEqual( - expect.stringContaining("default current") - ); - expect(group15.output).toEqual( - expect.stringContaining("default after current") - ); - - const group18 = result[1].groups![17]; - expect(group18.name).toBe("Uploading artifacts"); - expect(group18.output).toEqual( - expect.stringContaining("No artifacts to archive") - ); - - expect(result[2]).toStrictEqual({ - name: "Main Check for clones", - status: 0, - output: "exist", - }); -}); diff --git a/test/e2e/full-downstream/full-downstream.yaml b/test/e2e/full-downstream/full-downstream.yaml deleted file mode 100644 index 0f9b43fc..00000000 --- a/test/e2e/full-downstream/full-downstream.yaml +++ /dev/null @@ -1,16 +0,0 @@ -name: Full Downstream - -on: pull_request -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: ./build-chain - with: - definition-file: build-chain/.github/definition-file.yaml - flow-type: full_downstream - - name: Check for clones - run: result="exist"; for dir in $CLONE_DIR; do test ! -d $dir && result="does not exist" && break; done; echo "$result" - - name: clean up - run: rm -rf owner1_* && rm -rf project* diff --git a/test/e2e/helper/logger.ts b/test/e2e/helper/logger.ts deleted file mode 100644 index 532c65cc..00000000 --- a/test/e2e/helper/logger.ts +++ /dev/null @@ -1,4 +0,0 @@ -import path from "path"; - -export const logActOutput = (logFile: string) => - process.env.ACT_LOG ? { logFile: path.join(process.cwd(), logFile) } : {}; diff --git a/test/e2e/parallel/parallel-execution.test.ts b/test/e2e/parallel/parallel-execution.test.ts deleted file mode 100644 index 40c48e27..00000000 --- a/test/e2e/parallel/parallel-execution.test.ts +++ /dev/null @@ -1,164 +0,0 @@ -import { GitActionTypes, MockGithub, Moctokit } from "@kie/mock-github"; -import path from "path"; -import { Act } from "@kie/act-js"; -import { logActOutput } from "../helper/logger"; - -let mockGithub: MockGithub; -beforeEach(async () => { - mockGithub = new MockGithub( - { - repo: { - "build-chain": { - files: [ - { - src: path.resolve(__dirname, "..", "resources"), - dest: ".github/", - }, - { - src: path.join(__dirname, "parallel-execution.yaml"), - dest: ".github/workflows/parallel-execution.yaml", - }, - { - src: path.resolve(__dirname, "..", "..", "..", "action.yml"), - dest: "action.yml", - }, - { - src: path.resolve(__dirname, "..", "..", "..", "dist-e2e"), - dest: "dist", - }, - ], - }, - "owner1/project1": { - pushedBranches: ["branchA", "8.B"], - history: [ - { - action: GitActionTypes.PUSH, - branch: "branchA", - }, - { - action: GitActionTypes.PUSH, - branch: "8.B", - } - ], - }, - "owner1/project2": { - pushedBranches: ["branchA", "branchB"], - history: [ - { - action: GitActionTypes.PUSH, - branch: "branchA", - }, - { - action: GitActionTypes.PUSH, - branch: "branchB", - } - ], - }, - "owner1/project3": { - pushedBranches: ["branchB", "branchA"], - history: [ - { - action: GitActionTypes.PUSH, - branch: "branchB", - }, - { - action: GitActionTypes.PUSH, - branch: "branchA", - }, - ], - }, - "owner1/project4": { - pushedBranches: ["branchB", "branchA"], - history: [ - { - action: GitActionTypes.PUSH, - branch: "branchB", - }, - { - action: GitActionTypes.PUSH, - branch: "branchA", - } - ], - }, - }, - }, - path.join(__dirname, "setup") - ); - await mockGithub.setup(); -}); - -afterEach(async () => { - await mockGithub.teardown(); -}); - -test("PR from target:branchA to target:branchB while using mapping of a non-starting project (mapping.dependant.X)", async () => { - const moctokit = new Moctokit("http://api.github.com"); - const act = new Act(); - const repoPath = mockGithub.repo.getPath("build-chain"); - const parentDir = path.dirname(repoPath!); - const result = await act - .setGithubToken("token") - .setEnv("GITHUB_SERVER_URL", `${parentDir}${path.sep}`) - .setEnv("GITHUB_REPOSITORY", "owner1/project2") - .setEvent({ - pull_request: { - head: { - ref: "branchA", - repo: { - full_name: "owner1/project2", - name: "project2", - owner: { - login: "owner1", - }, - }, - }, - base: { - ref: "branchB", - repo: { - full_name: "owner1/project2", - name: "project2", - owner: { - login: "owner1", - }, - }, - }, - }, - }) - .runEvent("pull_request", { - ...logActOutput("parallel-execution.log"), - cwd: parentDir, - workflowFile: repoPath, - bind: true, - mockApi: [ - moctokit.rest.repos - .get({ - owner: "owner1", - repo: /project(1|2|3|4)/, - }) - .setResponse({ status: 200, data: {}, repeat: 4 }), - moctokit.rest.pulls - .list({ - owner: "owner1", - repo: /project(1|2|3|4)/, - }) - .setResponse({ status: 200, data: [{ title: "pr" }], repeat: 4 }), - ], - }); - expect(result.length).toBe(3); - expect(result[1]).toMatchObject({ name: "Main ./build-chain", status: 0 }); - - // parallel execution calculations - const parallelExecutionGroup = result[1].groups![4]; - expect(parallelExecutionGroup.name).toBe("Calculating projects that can be executed parallely"); - expect(parallelExecutionGroup.output).toEqual(expect.stringContaining("1. [owner1/project1]")); - expect(parallelExecutionGroup.output).toEqual(expect.stringContaining("2. [owner1/project2,owner1/project3]")); - expect(parallelExecutionGroup.output).toEqual(expect.stringContaining("3. [owner1/project4]")); - - // make sure there execution summary for every project and was flushed before exiting - expect(result[1].output).toEqual(expect.stringContaining("Execution summary for owner1/project1")); - expect(result[1].output).toEqual(expect.stringContaining("Execution summary for owner1/project2")); - expect(result[1].output).toEqual(expect.stringContaining("Execution summary for owner1/project3")); - expect(result[1].output).toEqual(expect.stringContaining("Execution summary for owner1/project4")); - // last line of logs to check stdout was flushed - expect(result[1].output).toEqual(expect.stringContaining("No artifacts to archive")); -}); diff --git a/test/e2e/parallel/parallel-execution.yaml b/test/e2e/parallel/parallel-execution.yaml deleted file mode 100644 index a5fa51f3..00000000 --- a/test/e2e/parallel/parallel-execution.yaml +++ /dev/null @@ -1,15 +0,0 @@ -name: Parallel - -on: pull_request -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: ./build-chain - with: - definition-file: build-chain/.github/definition-file.yaml - flow-type: full_downstream - enable-parallel-execution: true - - name: clean up - run: rm -rf owner1_* && rm -rf project* diff --git a/test/e2e/resources/definition-file.yaml b/test/e2e/resources/definition-file.yaml deleted file mode 100644 index 494d30ff..00000000 --- a/test/e2e/resources/definition-file.yaml +++ /dev/null @@ -1,45 +0,0 @@ -version: 2.2 - -dependencies: ./dependencies.yaml - -pre: | - echo "Executing pre step 1" - echo "Executing pre step 2" - -default: - build-command: - current: echo "default current" - upstream: echo "default upstream" - after: - current: echo "default after current" - -build: - - project: owner1/project1 - build-command: - before: - current: echo "before current owner1/project1" - upstream: echo "before upstream owner1/project1" - current: echo "current owner1/project1" - downstream: echo "downstream owner1/project1" - clone: - - project1 - - - project: owner1/project2 - build-command: - current: echo "current owner1/project2" - upstream: echo "upstream owner1/project2" - after: - downstream: echo "after downstream owner1/project2" - clone: - - project2 - - - project: owner1/project3 - build-command: - current: touch project3-current.log - upstream: touch project3-upstream.log - clone: - - project3 - archive-artifacts: - path: | - **/*.log - diff --git a/test/e2e/resources/dependencies.yaml b/test/e2e/resources/dependencies.yaml deleted file mode 100644 index ae3985d1..00000000 --- a/test/e2e/resources/dependencies.yaml +++ /dev/null @@ -1,36 +0,0 @@ -version: 2.2 -dependencies: - - project: owner1/project1 - mapping: - dependencies: - default: - - source: branchB - target: 8.x - dependant: - default: - - source: branchB - targetExpression: "(process.env.GITHUB_BASE_REF === '' ? 'branchB' : process.env.GITHUB_BASE_REF).replace('branch', '8.')" - - project: owner1/project2 - dependencies: - - project: owner1/project1 - - project: owner1/project3 - dependencies: - - project: owner1/project1 - - project: owner1/project4 - dependencies: - - project: owner1/project3 - - project: owner1/project2 - mapping: - dependencies: - default: - - source: branchB - target: 7.x - owner1/project3: - - source: branchB - target: branchC - dependant: - default: - - source: branch.* - target: 8.x - exclude: - - owner1/project2 \ No newline at end of file diff --git a/test/e2e/single-pr/single-pr.test.ts b/test/e2e/single-pr/single-pr.test.ts deleted file mode 100644 index e83b6a74..00000000 --- a/test/e2e/single-pr/single-pr.test.ts +++ /dev/null @@ -1,490 +0,0 @@ -import { GitActionTypes, MockGithub, Moctokit } from "@kie/mock-github"; -import path from "path"; -import { Act } from "@kie/act-js"; -import { existsSync, rmSync } from "fs"; -import { logActOutput } from "../helper/logger"; - - -let mockGithub: MockGithub; -beforeEach(async () => { - mockGithub = new MockGithub( - { - repo: { - "build-chain": { - files: [ - { - src: path.resolve(__dirname, "..", "resources"), - dest: ".github/", - }, - { - src: path.join(__dirname, "single-pr.yaml"), - dest: ".github/workflows/single-pr.yaml", - }, - { - src: path.resolve(__dirname, "..", "..", "..", "action.yml"), - dest: "action.yml", - }, - { - src: path.resolve(__dirname, "..", "..", "..", "dist-e2e"), - dest: "dist", - }, - ], - }, - "owner1/project2": { - pushedBranches: ["branchA", "branchB"], - history: [ - { - action: GitActionTypes.PUSH, - branch: "branchA", - }, - { - action: GitActionTypes.PUSH, - branch: "branchB", - }, - ], - }, - "owner1/project3": { - pushedBranches: ["branchA", "branchB"], - history: [ - { - action: GitActionTypes.PUSH, - branch: "branchA", - }, - { - action: GitActionTypes.PUSH, - branch: "branchB", - }, - ], - }, - "owner2/project3": { - pushedBranches: ["branchA"], - history: [ - { - action: GitActionTypes.PUSH, - branch: "branchA", - }, - ], - }, - "owner1/project1": { - pushedBranches: ["branchA", "branchB"], - history: [ - { - action: GitActionTypes.PUSH, - branch: "branchA", - }, - { - action: GitActionTypes.PUSH, - branch: "branchB", - }, - ], - }, - "owner2/project1-forked": { - pushedBranches: ["branchA"], - history: [ - { - action: GitActionTypes.PUSH, - branch: "branchA", - }, - ], - }, - }, - }, - path.join(__dirname, "setup") - ); - await mockGithub.setup(); -}); - -afterEach(async () => { - await mockGithub.teardown(); -}); - -test("PR from target:branchA to target:branchB", async () => { - const moctokit = new Moctokit("http://api.github.com"); - const act = new Act(); - const repoPath = mockGithub.repo.getPath("build-chain"); - const parentDir = path.dirname(repoPath!); - const result = await act - .setGithubToken("token") - .setEnv("GITHUB_SERVER_URL", `${parentDir}${path.sep}`) - .setEnv("GITHUB_REPOSITORY", "owner1/project2") - .setEnv("CLONE_DIR", path.join(parentDir, "owner1_project2", "project2")) - .setEvent({ - pull_request: { - head: { - ref: "branchA", - repo: { - full_name: "owner1/project2", - name: "project2", - owner: { - login: "owner1", - }, - }, - }, - base: { - ref: "branchB", - repo: { - full_name: "owner1/project2", - name: "project2", - owner: { - login: "owner1", - }, - }, - }, - }, - }) - .runEvent("pull_request", { - ...logActOutput("single-pr-1.log"), - cwd: parentDir, - workflowFile: repoPath, - bind: true, - mockApi: [ - moctokit.rest.repos - .get({ - owner: "owner1", - repo: "project2", - }) - .setResponse({ status: 200, data: {} }), - moctokit.rest.pulls.list().setResponse([ - { status: 200, data: [{ title: "pr" }] }, - ]), - ], - }); - expect(result.length).toBe(4); - expect(result[0]).toStrictEqual({ - name: "Main actions/checkout@v2", - status: 0, - output: "", - }); - expect(result[1]).toMatchObject({ name: "Main ./build-chain", status: 0 }); - expect(result[1].groups?.length).toBe(8); - - // pre section - const group1 = result[1].groups![0]; - expect(group1.name).toBe("Executing pre section"); - expect(group1.output).toEqual( - expect.stringContaining("Executing pre step 1") - ); - expect(group1.output).toEqual( - expect.stringContaining("Executing pre step 2") - ); - - // execution plan - const group2 = result[1].groups![1]; - expect(group2.name).toBe("Execution Plan"); - expect(group2.output).toEqual( - expect.stringContaining("1 projects will be executed") - ); - expect(group2.output).toEqual(expect.stringContaining("[owner1/project2]")); - expect(group2.output).toEqual(expect.stringContaining("Level type: current")); - - // checkout project - const group4 = result[1].groups![3]; - expect(group4.name).toBe("Checkout summary"); - expect(group4.output).toEqual(expect.stringContaining("[owner1/project2]")); - expect(group4.output).toEqual( - expect.stringContaining("Project taken from owner1/project2:branchB") - ); - expect(group4.output).toEqual( - expect.stringContaining( - "Merged owner1/project2:branchA into branch branchB" - ) - ); - - // owner1/project2 section - const group5 = result[1].groups![4]; - expect(group5.name).toBe("Executing owner1/project2"); - expect(group5.output).toEqual( - expect.stringContaining("current owner1/project2") - ); - expect(group5.output).toEqual( - expect.stringContaining("default after current") - ); - - // artifacts - const group8 = result[1].groups![7]; - expect(group8.name).toBe("Uploading artifacts"); - expect(group8.output).toEqual( - expect.stringContaining("No artifacts to archive") - ); - - // clone check is done during the workflow execution. just verify it succeeded here - expect(result[2]).toStrictEqual({ - name: "Main Check for clones", - status: 0, - output: "exist", - }); -}); - -test("PR from owner2/target:branchA to owner1/target:branchB", async () => { - const moctokit = new Moctokit("http://api.github.com"); - const act = new Act(); - const repoPath = mockGithub.repo.getPath("build-chain"); - const parentDir = path.dirname(repoPath!); - const artifactPath = path.join(__dirname, "artifacts"); - const result = await act - .setGithubToken("token") - .setEnv("GITHUB_SERVER_URL", `${parentDir}${path.sep}`) - .setEnv("GITHUB_REPOSITORY", "owner1/project3") - .setEnv("CLONE_DIR", path.join(parentDir, "owner1_project3", "project3")) - .setEvent({ - pull_request: { - head: { - ref: "branchA", - repo: { - full_name: "owner2/project3", - name: "project3", - owner: { - login: "owner2", - }, - }, - }, - base: { - ref: "branchB", - repo: { - full_name: "owner1/project3", - name: "project3", - owner: { - login: "owner1", - }, - }, - }, - }, - }) - .runEvent("pull_request", { - ...logActOutput("single-pr-2.log"), - cwd: parentDir, - workflowFile: repoPath, - bind: true, - artifactServer: { - path: artifactPath, - port: "42469", - }, - mockApi: [ - moctokit.rest.repos - .get({ - owner: "owner2", - repo: "project3", - }) - .setResponse({ - status: 200, - data: { - name: "project3", - owner: { - login: "owner2", - }, - }, - }), - moctokit.rest.pulls - .list() - .setResponse({ status: 200, data: [{ title: "pr" }] }), - ], - }); - - expect(result.length).toBe(4); - expect(result[0]).toStrictEqual({ - name: "Main actions/checkout@v2", - status: 0, - output: "", - }); - expect(result[1]).toMatchObject({ name: "Main ./build-chain", status: 0 }); - expect(result[1].groups?.length).toBe(8); - - // pre section - const group1 = result[1].groups![0]; - expect(group1.name).toBe("Executing pre section"); - expect(group1.output).toEqual( - expect.stringContaining("Executing pre step 1") - ); - expect(group1.output).toEqual( - expect.stringContaining("Executing pre step 2") - ); - - // execution plan - const group2 = result[1].groups![1]; - expect(group2.name).toBe("Execution Plan"); - expect(group2.output).toEqual( - expect.stringContaining("1 projects will be executed") - ); - expect(group2.output).toEqual(expect.stringContaining("[owner1/project3]")); - expect(group2.output).toEqual(expect.stringContaining("Level type: current")); - - // checkout project - const group4 = result[1].groups![3]; - expect(group4.name).toBe("Checkout summary"); - expect(group4.output).toEqual(expect.stringContaining("[owner1/project3]")); - expect(group4.output).toEqual( - expect.stringContaining("Project taken from owner1/project3:branchB") - ); - expect(group4.output).toEqual( - expect.stringContaining( - "Merged owner2/project3:branchA into branch branchB" - ) - ); - - // owner1/project3 section - const group5 = result[1].groups![4]; - expect(group5.name).toBe("Executing owner1/project3"); - expect(group5.output).toEqual( - expect.stringContaining("default after current") - ); - - // artifacts - const group8 = result[1].groups![7]; - expect(group8.name).toBe("Uploading artifacts"); - expect(group8.output).toEqual( - expect.stringContaining("Artifact owner1_project3 uploaded 1 files") - ); - - // clone check is done during the workflow execution. just verify it succeeded here - expect(result[2]).toStrictEqual({ - name: "Main Check for clones", - status: 0, - output: "exist", - }); - - // the first owner1_project3 is the parent dir of the artifact. The second one is - // because we didn't pass any artifact name so it uses the project name as the - // artifact name. So the repetition of owner1_project3 is expected - expect(existsSync(path.join(artifactPath, "1", "owner1_project3", "owner1_project3", "project3-current.log"))).toBe(true); - rmSync(artifactPath, { recursive: true }); -}); - -test("PR from owner2/target:branchA to owner1/target-different-name:branchB", async () => { - const moctokit = new Moctokit("http://api.github.com"); - const act = new Act(); - const repoPath = mockGithub.repo.getPath("build-chain"); - const parentDir = path.dirname(repoPath!); - const result = await act - .setGithubToken("token") - .setEnv("GITHUB_SERVER_URL", `${parentDir}${path.sep}`) - .setEnv("GITHUB_REPOSITORY", "owner1/project1") - .setEnv("CLONE_DIR", path.join(parentDir, "owner1_project1", "project1")) - .setEvent({ - pull_request: { - head: { - ref: "branchA", - repo: { - full_name: "owner2/project1-forked", - name: "project1-forked", - owner: { - login: "owner2", - }, - }, - }, - base: { - ref: "branchB", - repo: { - full_name: "owner1/project1", - name: "project1", - owner: { - login: "owner1", - }, - }, - }, - }, - }) - .runEvent("pull_request", { - ...logActOutput("single-pr-3.log"), - cwd: parentDir, - workflowFile: repoPath, - bind: true, - mockApi: [ - moctokit.rest.repos - .get({ - owner: "owner2", - repo: "project1", - }) - .setResponse({ - status: 404, - data: {}, - }), - moctokit.rest.repos - .listForks({ - owner: "owner1", - repo: "project1", - }) - .setResponse({ - status: 200, - data: [ - { - name: "project1-forked", - owner: { - login: "owner2", - }, - }, - ], - }), - moctokit.rest.pulls - .list() - .setResponse({ status: 200, data: [{ title: "pr" }] }), - ], - }); - - expect(result.length).toBe(4); - expect(result[0]).toStrictEqual({ - name: "Main actions/checkout@v2", - status: 0, - output: "", - }); - expect(result[1]).toMatchObject({ name: "Main ./build-chain", status: 0 }); - expect(result[1].groups?.length).toBe(9); - - // pre section - const group1 = result[1].groups![0]; - expect(group1.name).toBe("Executing pre section"); - expect(group1.output).toEqual( - expect.stringContaining("Executing pre step 1") - ); - expect(group1.output).toEqual( - expect.stringContaining("Executing pre step 2") - ); - - // execution plan - const group2 = result[1].groups![1]; - expect(group2.name).toBe("Execution Plan"); - expect(group2.output).toEqual( - expect.stringContaining("1 projects will be executed") - ); - expect(group2.output).toEqual(expect.stringContaining("[owner1/project1]")); - expect(group2.output).toEqual(expect.stringContaining("Level type: current")); - - // checkout project - const group4 = result[1].groups![3]; - expect(group4.name).toBe("Checkout summary"); - expect(group4.output).toEqual(expect.stringContaining("[owner1/project1]")); - expect(group4.output).toEqual( - expect.stringContaining("Project taken from owner1/project1:branchB") - ); - expect(group4.output).toEqual( - expect.stringContaining( - "Merged owner2/project1-forked:branchA into branch branchB" - ) - ); - - // owner1/project1 section - const group5 = result[1].groups![4]; - expect(group5.name).toBe("Executing owner1/project1"); - expect(group5.output).toEqual( - expect.stringContaining("before current owner1/project1") - ); - expect(group5.output).toEqual( - expect.stringContaining("current owner1/project1") - ); - expect(group5.output).toEqual( - expect.stringContaining("default after current") - ); - - // artifacts - const group9 = result[1].groups![8]; - expect(group9.name).toBe("Uploading artifacts"); - expect(group9.output).toEqual( - expect.stringContaining("No artifacts to archive") - ); - - // clone check is done during the workflow execution. just verify it succeeded here - expect(result[2]).toStrictEqual({ - name: "Main Check for clones", - status: 0, - output: "exist", - }); -}); diff --git a/test/e2e/single-pr/single-pr.yaml b/test/e2e/single-pr/single-pr.yaml deleted file mode 100644 index 126740fc..00000000 --- a/test/e2e/single-pr/single-pr.yaml +++ /dev/null @@ -1,16 +0,0 @@ -name: Single PR - -on: pull_request -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: ./build-chain - with: - definition-file: build-chain/.github/definition-file.yaml - flow-type: single_pr - - name: Check for clones - run: test -d $CLONE_DIR && echo "exist" || echo "does not exist" - - name: clean up - run: rm -rf owner1_* && rm -rf project* diff --git a/test/unitary/bin/cli-runner.test.ts b/test/unitary/bin/cli-runner.test.ts deleted file mode 100644 index d1180acd..00000000 --- a/test/unitary/bin/cli-runner.test.ts +++ /dev/null @@ -1,189 +0,0 @@ -import "reflect-metadata"; -import { CLIRunner } from "@bc/bin/runners/cli-runner"; -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; -import Container from "typedi"; -import { ConfigurationService } from "@bc/service/config/configuration-service"; -import { PreExecutor } from "@bc/service/pre-post/pre"; -import { PostExecutor } from "@bc/service/pre-post/post"; -import { FlowService } from "@bc/service/flow/flow-service"; -import { defaultFlowResult, FlowResult } from "@bc/domain/flow"; -import { ExecuteCommandResult, ExecutionResult } from "@bc/domain/execute-command-result"; -import { UploadResponse } from "@actions/artifact"; -import { ExecuteNodeResult } from "@bc/domain/execute-node-result"; -import { defaultNodeValue } from "@bc/domain/node"; -import { Command } from "commander"; -import { ProjectList } from "@bc/service/tools/project-list"; -import { ToolType } from "@bc/domain/cli"; -import fs from "fs-extra"; - -// disable logs -jest.spyOn(global.console, "log"); - -test("initialization", () => { - // ensure that entry point value is something other than CLI - Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.GITHUB_EVENT); - - new CLIRunner(); - - expect(Container.get(constants.CONTAINER.ENTRY_POINT)).toBe(EntryPoint.CLI); -}); - -describe("execute:build", () => { - let cliRunner: CLIRunner; - const okResult: ExecuteCommandResult = { - startingDate: 0, - endingDate: 0, - result: ExecutionResult.OK, - errorMessage: "", - time: 0, - command: "cmd1", - }; - - const notOkResult: ExecuteCommandResult = { - startingDate: 0, - endingDate: 0, - result: ExecutionResult.NOT_OK, - errorMessage: "", - time: 0, - command: "cmd1", - }; - - const artifactOk: PromiseSettledResult = { - status: "fulfilled", - value: { artifactName: "test", failedItems: [], artifactItems: [], size: 2 }, - }; - - const artifactNotOk: PromiseSettledResult = { - status: "rejected", - reason: "something", - }; - - const nodeOk: ExecuteNodeResult = { - node: { ...defaultNodeValue, project: "owner1/project1" }, - executeCommandResults: [okResult, okResult], - }; - - const nodeNotOk: ExecuteNodeResult = { - node: { ...defaultNodeValue, project: "owner1/project1" }, - executeCommandResults: [okResult, notOkResult], - }; - - const flowOk: FlowResult = { - artifactUploadResults: [artifactOk], - checkoutInfo: [], - executionResult: [[nodeOk, nodeOk, nodeOk]], - }; - - beforeEach(() => { - cliRunner = new CLIRunner(); - jest.spyOn(Command.prototype, "parse").mockImplementation(() => undefined!); - jest.spyOn(ConfigurationService.prototype, "isToolsCommand").mockImplementation(() => false); - jest.spyOn(fs, "writeFileSync").mockImplementation(() => undefined); - }); - - test("success", async () => { - const configSpy = jest.spyOn(ConfigurationService.prototype, "init").mockImplementation(async () => undefined); - const preSpy = jest.spyOn(PreExecutor.prototype, "run").mockImplementation(async () => [okResult]); - const postSpy = jest.spyOn(PostExecutor.prototype, "run").mockImplementation(async () => [okResult, okResult, okResult]); - const flowSpy = jest.spyOn(FlowService.prototype, "run").mockImplementation(async () => flowOk); - const exitSpy = jest.spyOn(process, "exit").mockImplementation((_code?: number) => undefined as never); - - await cliRunner.execute(); - - expect(configSpy).toHaveBeenCalledTimes(1); - expect(preSpy).toHaveBeenCalledTimes(1); - expect(postSpy).toHaveBeenCalledTimes(1); - expect(flowSpy).toHaveBeenCalledTimes(1); - expect(exitSpy).toHaveBeenCalledWith(0); - }); - - test("failure: pre", async () => { - const configSpy = jest.spyOn(ConfigurationService.prototype, "init").mockImplementation(async () => undefined); - const preSpy = jest.spyOn(PreExecutor.prototype, "run").mockImplementation(async () => [notOkResult]); - const postSpy = jest.spyOn(PostExecutor.prototype, "run").mockImplementation(async () => []); - const flowSpy = jest.spyOn(FlowService.prototype, "run").mockImplementation(async () => defaultFlowResult); - const exitSpy = jest.spyOn(process, "exit").mockImplementation((_code?: number) => undefined as never); - - await cliRunner.execute(); - - expect(configSpy).toHaveBeenCalledTimes(1); - expect(preSpy).toHaveBeenCalledTimes(1); - expect(exitSpy).toHaveBeenCalledWith(1); - expect(postSpy).toHaveBeenCalledTimes(0); - expect(flowSpy).toHaveBeenCalledTimes(0); - }); - - test("failure: post", async () => { - const configSpy = jest.spyOn(ConfigurationService.prototype, "init").mockImplementation(async () => undefined); - const preSpy = jest.spyOn(PreExecutor.prototype, "run").mockImplementation(async () => [okResult]); - const postSpy = jest.spyOn(PostExecutor.prototype, "run").mockImplementation(async () => [notOkResult]); - const flowSpy = jest.spyOn(FlowService.prototype, "run").mockImplementation(async () => flowOk); - const exitSpy = jest.spyOn(process, "exit").mockImplementation((_code?: number) => undefined as never); - - await cliRunner.execute(); - - expect(configSpy).toHaveBeenCalledTimes(1); - expect(preSpy).toHaveBeenCalledTimes(1); - expect(postSpy).toHaveBeenCalledTimes(1); - expect(flowSpy).toHaveBeenCalledTimes(1); - expect(exitSpy).toHaveBeenCalledWith(1); - }); - - test("failure: flow - node execution", async () => { - const configSpy = jest.spyOn(ConfigurationService.prototype, "init").mockImplementation(async () => undefined); - const preSpy = jest.spyOn(PreExecutor.prototype, "run").mockImplementation(async () => [okResult]); - const postSpy = jest.spyOn(PostExecutor.prototype, "run").mockImplementation(async () => [okResult]); - const flowSpy = jest.spyOn(FlowService.prototype, "run").mockImplementation(async () => ({ - artifactUploadResults: [artifactOk], - checkoutInfo: [], - executionResult: [[nodeOk, nodeNotOk, nodeNotOk]], - })); - const exitSpy = jest.spyOn(process, "exit").mockImplementation((_code?: number) => undefined as never); - - await cliRunner.execute(); - - expect(configSpy).toHaveBeenCalledTimes(1); - expect(preSpy).toHaveBeenCalledTimes(1); - expect(postSpy).toHaveBeenCalledTimes(1); - expect(flowSpy).toHaveBeenCalledTimes(1); - expect(exitSpy).toHaveBeenCalledWith(1); - }); - - test("failure: flow - artifact upload failure", async () => { - const configSpy = jest.spyOn(ConfigurationService.prototype, "init").mockImplementation(async () => undefined); - const preSpy = jest.spyOn(PreExecutor.prototype, "run").mockImplementation(async () => [okResult]); - const postSpy = jest.spyOn(PostExecutor.prototype, "run").mockImplementation(async () => [okResult]); - const flowSpy = jest.spyOn(FlowService.prototype, "run").mockImplementation(async () => ({ - artifactUploadResults: [artifactNotOk], - checkoutInfo: [], - executionResult: flowOk.executionResult, - })); - const exitSpy = jest.spyOn(process, "exit").mockImplementation((_code?: number) => undefined as never); - - await cliRunner.execute(); - - expect(configSpy).toHaveBeenCalledTimes(1); - expect(preSpy).toHaveBeenCalledTimes(1); - expect(postSpy).toHaveBeenCalledTimes(1); - expect(flowSpy).toHaveBeenCalledTimes(1); - expect(exitSpy).toHaveBeenCalledWith(1); - }); -}); - -describe("execute:tools", () => { - let cliRunner: CLIRunner; - - beforeEach(() => { - cliRunner = new CLIRunner(); - jest.spyOn(Command.prototype, "parse").mockImplementation(() => undefined!); - jest.spyOn(ConfigurationService.prototype, "isToolsCommand").mockImplementation(() => true); - }); - - test("project-list", async () => { - const projectListSpy = jest.spyOn(ProjectList.prototype, "execute").mockImplementation(async () => undefined); - jest.spyOn(ConfigurationService.prototype, "getToolType").mockImplementation(() => ToolType.PROJECT_LIST); - await cliRunner.execute(); - expect(projectListSpy).toHaveBeenCalledTimes(1); - }); -}); diff --git a/test/unitary/bin/github-action-runner.test.ts b/test/unitary/bin/github-action-runner.test.ts deleted file mode 100644 index fab35b5b..00000000 --- a/test/unitary/bin/github-action-runner.test.ts +++ /dev/null @@ -1,194 +0,0 @@ -import "reflect-metadata"; -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; -import Container from "typedi"; -import { ConfigurationService } from "@bc/service/config/configuration-service"; -import { PreExecutor } from "@bc/service/pre-post/pre"; -import { PostExecutor } from "@bc/service/pre-post/post"; -import { FlowService } from "@bc/service/flow/flow-service"; -import { defaultFlowResult, FlowResult } from "@bc/domain/flow"; -import { ExecuteCommandResult, ExecutionResult } from "@bc/domain/execute-command-result"; -import { UploadResponse } from "@actions/artifact"; -import { ExecuteNodeResult } from "@bc/domain/execute-node-result"; -import { GithubActionRunner } from "@bc/bin/runners/github-action-runner"; -import { JobSummaryService } from "@bc/service/job-summary/job-summary-service"; -import { defaultNodeValue } from "@bc/domain/node"; -import { ActionArguments } from "@bc/service/arguments/action/action-arguments"; - - -// disable logs -jest.spyOn(global.console, "log"); - -test("initialization", () => { - // ensure that entry point value is something other than GITHUB_EVENT - Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.CLI); - - new GithubActionRunner(); - - expect(Container.get(constants.CONTAINER.ENTRY_POINT)).toBe(EntryPoint.GITHUB_EVENT); -}); - -describe("execute", () => { - let githubActionRunner: GithubActionRunner; - const okResult: ExecuteCommandResult = { - startingDate: 0, - endingDate: 0, - result: ExecutionResult.OK, - errorMessage: "", - time: 0, - command: "cmd1", - }; - - const notOkResult: ExecuteCommandResult = { - startingDate: 0, - endingDate: 0, - result: ExecutionResult.NOT_OK, - errorMessage: "", - time: 0, - command: "cmd1", - }; - - const artifactOk: PromiseSettledResult = { - status: "fulfilled", - value: { artifactName: "test", failedItems: [], artifactItems: [], size: 2 }, - }; - - const artifactNotOk: PromiseSettledResult = { - status: "rejected", - reason: "something", - }; - - const nodeOk: ExecuteNodeResult = { - node: { ...defaultNodeValue, project: "owner1/project1" }, - executeCommandResults: [okResult, okResult], - }; - - const nodeNotOk: ExecuteNodeResult = { - node: { ...defaultNodeValue, project: "owner1/project1" }, - executeCommandResults: [okResult, notOkResult], - }; - - const flowOk: FlowResult = { - artifactUploadResults: [artifactOk], - checkoutInfo: [], - executionResult: [[nodeOk, nodeOk, nodeOk]], - }; - - beforeEach(() => { - githubActionRunner = new GithubActionRunner(); - jest.spyOn(ActionArguments.prototype, "parse").mockImplementation(() => undefined); - }); - - test("success", async () => { - const configSpy = jest.spyOn(ConfigurationService.prototype, "init").mockImplementation(async () => undefined); - const preSpy = jest.spyOn(PreExecutor.prototype, "run").mockImplementation(async () => [okResult]); - const postSpy = jest.spyOn(PostExecutor.prototype, "run").mockImplementation(async () => [okResult, okResult, okResult]); - const flowSpy = jest.spyOn(FlowService.prototype, "run").mockImplementation(async () => flowOk); - const exitSpy = jest.spyOn(process, "exit").mockImplementation((_code?: number) => undefined as never); - const jobSummarySpy = jest - .spyOn(JobSummaryService.prototype, "generateSummary") - .mockImplementation(async (_flowResult: FlowResult, _preResult: ExecuteCommandResult[], _postResult: ExecuteCommandResult[]) => undefined); - - await githubActionRunner.execute(); - - expect(configSpy).toHaveBeenCalledTimes(1); - expect(preSpy).toHaveBeenCalledTimes(1); - expect(postSpy).toHaveBeenCalledTimes(1); - expect(flowSpy).toHaveBeenCalledTimes(1); - expect(jobSummarySpy).toHaveBeenCalledWith(flowOk, [okResult], [okResult, okResult, okResult]); - expect(exitSpy).toHaveBeenCalledWith(0); - }); - - test("failure: pre", async () => { - const configSpy = jest.spyOn(ConfigurationService.prototype, "init").mockImplementation(async () => undefined); - const preSpy = jest.spyOn(PreExecutor.prototype, "run").mockImplementation(async () => [notOkResult]); - const postSpy = jest.spyOn(PostExecutor.prototype, "run").mockImplementation(async () => []); - const flowSpy = jest.spyOn(FlowService.prototype, "run").mockImplementation(async () => defaultFlowResult); - const exitSpy = jest.spyOn(process, "exit").mockImplementation((_code?: number) => undefined as never); - const jobSummarySpy = jest - .spyOn(JobSummaryService.prototype, "generateSummary") - .mockImplementation(async (_flowResult: FlowResult, _preResult: ExecuteCommandResult[], _postResult: ExecuteCommandResult[]) => undefined); - - await githubActionRunner.execute(); - - expect(configSpy).toHaveBeenCalledTimes(1); - expect(preSpy).toHaveBeenCalledTimes(1); - expect(exitSpy).toHaveBeenCalledWith(1); - expect(jobSummarySpy).toHaveBeenCalledWith(defaultFlowResult, [notOkResult], []); - expect(postSpy).toHaveBeenCalledTimes(0); - expect(flowSpy).toHaveBeenCalledTimes(0); - }); - - test("failure: post", async () => { - const configSpy = jest.spyOn(ConfigurationService.prototype, "init").mockImplementation(async () => undefined); - const preSpy = jest.spyOn(PreExecutor.prototype, "run").mockImplementation(async () => [okResult]); - const postSpy = jest.spyOn(PostExecutor.prototype, "run").mockImplementation(async () => [notOkResult]); - const flowSpy = jest.spyOn(FlowService.prototype, "run").mockImplementation(async () => flowOk); - const exitSpy = jest.spyOn(process, "exit").mockImplementation((_code?: number) => undefined as never); - const jobSummarySpy = jest - .spyOn(JobSummaryService.prototype, "generateSummary") - .mockImplementation(async (_flowResult: FlowResult, _preResult: ExecuteCommandResult[], _postResult: ExecuteCommandResult[]) => undefined); - - await githubActionRunner.execute(); - - expect(configSpy).toHaveBeenCalledTimes(1); - expect(preSpy).toHaveBeenCalledTimes(1); - expect(postSpy).toHaveBeenCalledTimes(1); - expect(flowSpy).toHaveBeenCalledTimes(1); - expect(exitSpy).toHaveBeenCalledWith(1); - expect(jobSummarySpy).toHaveBeenCalledWith(flowOk, [okResult], [notOkResult]); - }); - - test("failure: flow - %p phase execution", async () => { - const configSpy = jest.spyOn(ConfigurationService.prototype, "init").mockImplementation(async () => undefined); - const preSpy = jest.spyOn(PreExecutor.prototype, "run").mockImplementation(async () => [okResult]); - const postSpy = jest.spyOn(PostExecutor.prototype, "run").mockImplementation(async () => [okResult]); - - const flowResult = { - artifactUploadResults: [artifactOk], - checkoutInfo: [], - executionResult: [[nodeOk, nodeNotOk, nodeNotOk]], - }; - const flowSpy = jest.spyOn(FlowService.prototype, "run").mockImplementation(async () => flowResult); - const exitSpy = jest.spyOn(process, "exit").mockImplementation((_code?: number) => undefined as never); - const jobSummarySpy = jest - .spyOn(JobSummaryService.prototype, "generateSummary") - .mockImplementation(async (_flowResult: FlowResult, _preResult: ExecuteCommandResult[], _postResult: ExecuteCommandResult[]) => undefined); - - await githubActionRunner.execute(); - - expect(configSpy).toHaveBeenCalledTimes(1); - expect(preSpy).toHaveBeenCalledTimes(1); - expect(postSpy).toHaveBeenCalledTimes(1); - expect(flowSpy).toHaveBeenCalledTimes(1); - expect(exitSpy).toHaveBeenCalledWith(1); - expect(jobSummarySpy).toHaveBeenCalledWith(flowResult, [okResult], [okResult]); - }); - - test("failure: flow - artifact upload failure", async () => { - const configSpy = jest.spyOn(ConfigurationService.prototype, "init").mockImplementation(async () => undefined); - const preSpy = jest.spyOn(PreExecutor.prototype, "run").mockImplementation(async () => [okResult]); - const postSpy = jest.spyOn(PostExecutor.prototype, "run").mockImplementation(async () => [okResult]); - - const flowResult = { - artifactUploadResults: [artifactNotOk], - checkoutInfo: [], - executionResult: flowOk.executionResult, - }; - const flowSpy = jest.spyOn(FlowService.prototype, "run").mockImplementation(async () => flowResult); - const exitSpy = jest.spyOn(process, "exit").mockImplementation((_code?: number) => undefined as never); - const jobSummarySpy = jest - .spyOn(JobSummaryService.prototype, "generateSummary") - .mockImplementation(async (_flowResult: FlowResult, _preResult: ExecuteCommandResult[], _postResult: ExecuteCommandResult[]) => undefined); - - await githubActionRunner.execute(); - - expect(configSpy).toHaveBeenCalledTimes(1); - expect(preSpy).toHaveBeenCalledTimes(1); - expect(postSpy).toHaveBeenCalledTimes(1); - expect(flowSpy).toHaveBeenCalledTimes(1); - expect(exitSpy).toHaveBeenCalledWith(1); - expect(jobSummarySpy).toHaveBeenCalledWith(flowResult, [okResult], [okResult]); - - }); -}); diff --git a/test/unitary/bin/runner.test.ts b/test/unitary/bin/runner.test.ts deleted file mode 100644 index 5020d848..00000000 --- a/test/unitary/bin/runner.test.ts +++ /dev/null @@ -1,162 +0,0 @@ -import "reflect-metadata"; -import { UploadResponse } from "@actions/artifact"; -import { Runner } from "@bc/bin/runners/runner"; -import { EntryPoint } from "@bc/domain/entry-point"; -import { ExecuteCommandResult, ExecutionResult } from "@bc/domain/execute-command-result"; -import { ExecuteNodeResult } from "@bc/domain/execute-node-result"; -import { FlowResult } from "@bc/domain/flow"; -import { PreExecutor } from "@bc/service/pre-post/pre"; -import { PostExecutor } from "@bc/service/pre-post/post"; -import { FlowService } from "@bc/service/flow/flow-service"; -import { BaseLoggerService } from "@bc/service/logger/base-logger-service"; -import { defaultNodeValue } from "@bc/domain/node"; - - -/** Dummy runner to test protected methods */ -class DummyRunner extends Runner { - async execute(): Promise { - return; - } - - async testExecutePre(): Promise<{ isFailure: boolean; output: ExecuteCommandResult[] }> { - return this.executePre(); - } - - async testExecuteFlow(): Promise<{ isFailure: boolean; output: FlowResult }> { - return this.executeFlow(); - } - - async testExecutePost(flowExecutionResult: boolean): Promise<{ isFailure: boolean; output: ExecuteCommandResult[] }> { - return this.executePost(flowExecutionResult); - } - - testPrintExecutionFailure(res: ExecuteCommandResult[]) { - this.printExecutionFailure(res); - } - - testPrintNodeExecutionFailure(res: ExecuteNodeResult[][]) { - this.printNodeExecutionFailure(res); - } -} - -const okResult: ExecuteCommandResult = { - startingDate: 0, - endingDate: 0, - result: ExecutionResult.OK, - errorMessage: "", - time: 0, - command: "cmd1", -}; - -const notOkResult: ExecuteCommandResult = { - startingDate: 0, - endingDate: 0, - result: ExecutionResult.NOT_OK, - errorMessage: "multiline\nmsg", - time: 0, - command: "cmd1", -}; - -const skipResult: ExecuteCommandResult = { - startingDate: 0, - endingDate: 0, - result: ExecutionResult.SKIP, - errorMessage: "", - time: 0, - command: "cmd1", -}; - -const artifactOk: PromiseSettledResult = { - status: "fulfilled", - value: { artifactName: "test", failedItems: [], artifactItems: [], size: 2 }, -}; - -const artifactNotOk: PromiseSettledResult = { - status: "rejected", - reason: "something", -}; - -const nodeOk: ExecuteNodeResult = { - node: { ...defaultNodeValue, project: "owner1/project1" }, - executeCommandResults: [okResult, skipResult], -}; - -const nodeNotOk: ExecuteNodeResult = { - node: { ...defaultNodeValue, project: "owner1/project1" }, - executeCommandResults: [okResult, notOkResult, skipResult], -}; - -let dummyRunner: DummyRunner; -beforeEach(() => { - // entrypoint does not matter here - dummyRunner = new DummyRunner(EntryPoint.GITHUB_EVENT); -}); - -test.each([ - ["executePre: success", false, [okResult, skipResult]], - ["executePre: failure", true, [okResult, skipResult, notOkResult]], -])("%p", async (_title: string, isFailure: boolean, output: ExecuteCommandResult[]) => { - jest.spyOn(PreExecutor.prototype, "run").mockImplementation(async () => output); - await expect(dummyRunner.testExecutePre()).resolves.toStrictEqual({ isFailure, output }); -}); - -test.each([ - ["executePost: success", false, [okResult, skipResult]], - ["executePost: failure", true, [okResult, skipResult, notOkResult]], -])("%p", async (_title: string, isFailure: boolean, output: ExecuteCommandResult[]) => { - jest.spyOn(PostExecutor.prototype, "run").mockImplementation(async () => output); - - // flowExecutionResult does not matter here - await expect(dummyRunner.testExecutePost(true)).resolves.toStrictEqual({ isFailure, output }); -}); - -test.each([ - [ - "executeFlow: success", - false, - { - artifactUploadResults: [artifactOk], - checkoutInfo: [], - executionResult: [[nodeOk, nodeOk, nodeOk]] - }, - ], - [ - "executeFlow: failure", - true, - { - artifactUploadResults: [artifactOk], - checkoutInfo: [], - executionResult: [[nodeNotOk, nodeOk, nodeOk]], - }, - ], - [ - "executeFlow: failure - artifact upload", - true, - { - artifactUploadResults: [artifactNotOk], - checkoutInfo: [], - executionResult: [[nodeOk, nodeOk, nodeOk]], - }, - ], -])("%p", async (_title: string, isFailure: boolean, output: FlowResult) => { - jest.spyOn(FlowService.prototype, "run").mockImplementation(async () => output); - await expect(dummyRunner.testExecuteFlow()).resolves.toStrictEqual({ isFailure, output }); -}); - -test.each([ - ["no failure", [okResult, okResult, skipResult], 0], - ["failure", [okResult, okResult, skipResult, notOkResult], 3], -])("printExecutionFailure - %p", (_title: string, result: ExecuteCommandResult[], numOfLogCalls: number) => { - const loggerSpy = jest.spyOn(BaseLoggerService.prototype, "error"); - dummyRunner.testPrintExecutionFailure(result); - expect(loggerSpy).toBeCalledTimes(numOfLogCalls); -}); - -test.each([ - ["no failure", [[nodeOk, nodeOk]], 0], - ["failure", [[nodeOk, nodeNotOk, nodeOk]], 4], -])("printNodeExecutionFailure - %p", (_title: string, result: ExecuteNodeResult[][], numOfLogCalls: number) => { - const loggerSpy = jest.spyOn(BaseLoggerService.prototype, "error"); - dummyRunner.testPrintNodeExecutionFailure(result); - expect(loggerSpy).toBeCalledTimes(numOfLogCalls); -}); diff --git a/test/unitary/service/arguments/action/action-argument.test.ts b/test/unitary/service/arguments/action/action-argument.test.ts deleted file mode 100644 index a92ecaa4..00000000 --- a/test/unitary/service/arguments/action/action-argument.test.ts +++ /dev/null @@ -1,111 +0,0 @@ -import { InvalidInput } from "@bc/domain/errors"; -import { FlowType, InputValues, LoggerLevel } from "@bc/domain/inputs"; -import { ActionArguments } from "@bc/service/arguments/action/action-arguments"; -import { InputService } from "@bc/service/inputs/input-service"; -import "reflect-metadata"; -import Container from "typedi"; -const parsedInput = Container.get(InputService); - -const definitionFile = "/path/to/file"; -const skipProject = ["project1", "project2", "project3"]; -const skipAll = true; -const skipParallelCheckout = false; -const enableParallelExecution = false; -const startProject = "project4"; -const fakeFlagValue = "abc"; -const additionaFlags = `--tempFlag;-z ${fakeFlagValue}`; -const customCommandTreatment = ["abc||xyz"]; - -const setGeneralInputs = (flowType: string) => { - process.env = { - "INPUT_DEFINITION-FILE": definitionFile, - "INPUT_SKIP-PROJECT-CHECKOUT": skipProject.join(", "), - "INPUT_SKIP-PROJECT-EXECUTION": skipProject.join(", "), - "INPUT_SKIP-EXECUTION": skipAll.toString(), - "INPUT_SKIP-CHECKOUT": skipAll.toString(), - "INPUT_SKIP-PARALLEL-CHECKOUT": skipParallelCheckout.toString(), - "INPUT_STARTING-PROJECT": startProject, - "INPUT_ADDITIONAL-FLAGS": additionaFlags, - "INPUT_FLOW-TYPE": flowType, - "INPUT_CUSTOM-COMMAND-TREATMENT": customCommandTreatment.join(", "), - "INPUT_ENABLE-PARALLEL-EXECUTION": enableParallelExecution.toString() - }; -}; - -describe("Different flow types", () => { - test.each([ - ["cross_pr", FlowType.CROSS_PULL_REQUEST], - ["full_downstream", FlowType.FULL_DOWNSTREAM], - ["single_pr", FlowType.SINGLE_PULL_REQUEST], - ["branch", FlowType.BRANCH], - ["invalid", undefined], - ])("%p", (flowType: string, expectedFlowType: FlowType | undefined) => { - const parser = new ActionArguments(); - setGeneralInputs(flowType); - try { - parser.parse(); - const vals = parsedInput.inputs; - expect(vals.definitionFile).toBe(definitionFile); - expect(vals.skipProjectCheckout).toStrictEqual(skipProject); - expect(vals.skipProjectExecution).toStrictEqual(skipProject); - expect(vals.skipExecution).toBe(skipAll); - expect(vals.skipCheckout).toBe(skipAll); - expect(vals.skipParallelCheckout).toBe(skipParallelCheckout); - expect(vals.enableParallelExecution).toBe(enableParallelExecution); - expect(vals.startProject).toBe(startProject); - expect(vals.tempFlag).toBe(true); - expect(vals.z).toBe("abc"); - expect(vals.loggerLevel).toBe(LoggerLevel.INFO); - expect(vals.flowType).toBe(expectedFlowType); - expect(vals.customCommandTreatment).toStrictEqual(customCommandTreatment); - } catch (err) { - expect(err).toBeInstanceOf(InvalidInput); - } - }); -}); - -describe("Different log levels", () => { - test.each([ - ["info", LoggerLevel.INFO], - ["trace", LoggerLevel.TRACE], - ["debug", LoggerLevel.DEBUG], - ["invalid", undefined], - ])("%p", (logLevel: string, expectedLogLevel: LoggerLevel | undefined) => { - const parser = new ActionArguments(); - setGeneralInputs("pull-request"); - process.env = { ...process.env, "INPUT_LOGGER-LEVEL": logLevel }; - try { - parser.parse(); - const vals = parsedInput.inputs; - expect(vals.definitionFile).toBe(definitionFile); - expect(vals.skipProjectCheckout).toStrictEqual(skipProject); - expect(vals.skipProjectExecution).toStrictEqual(skipProject); - expect(vals.skipExecution).toBe(skipAll); - expect(vals.skipCheckout).toBe(skipAll); - expect(vals.skipParallelCheckout).toBe(skipParallelCheckout); - expect(vals.enableParallelExecution).toBe(enableParallelExecution); - expect(vals.startProject).toBe(startProject); - expect(vals.tempFlag).toBe(true); - expect(vals.z).toBe("abc"); - expect(vals.flowType).toBe(FlowType.CROSS_PULL_REQUEST); - expect(vals.loggerLevel).toBe(expectedLogLevel); - expect(vals.customCommandTreatment).toStrictEqual(customCommandTreatment); - } catch (err) { - expect(err).toBeInstanceOf(InvalidInput); - } - }); -}); - -describe("undefined inputs", () => { - test.each([ - ["empty string", "INPUT_STARTING-PROJECT", "startProject" as keyof InputValues], - ["array of empty strings", "INPUT_SKIP-PROJECT-CHECKOUT", "skipProjectCheckout" as keyof InputValues] - ])("undefined input should return undefined instead of %p", (_title: string, key: string, toCheckKey: keyof InputValues) => { - setGeneralInputs(FlowType.CROSS_PULL_REQUEST); - delete process.env[key]; - const parser = new ActionArguments(); - parser.parse(); - const vals = parsedInput.inputs; - expect(vals[toCheckKey]).toBe(undefined); - }); -}); diff --git a/test/unitary/service/arguments/cli/build-branch.test.ts b/test/unitary/service/arguments/cli/build-branch.test.ts deleted file mode 100644 index 6e8e88cf..00000000 --- a/test/unitary/service/arguments/cli/build-branch.test.ts +++ /dev/null @@ -1,130 +0,0 @@ -import "reflect-metadata"; -import { CLIActionType } from "@bc/domain/cli"; -import { CLIArguments } from "@bc/service/arguments/cli/cli-arguments"; -import { InputService } from "@bc/service/inputs/input-service"; -import { formatDate } from "@bc/utils/date"; -import { Command, CommanderError } from "commander"; -import Container from "typedi"; -import { FlowType, LoggerLevel } from "@bc/domain/inputs"; - -let program: Command; - -// Define required arguments to be reused for each test -const startProject = "test"; -const definitionFile = "/path/to/file"; -const branch = "main"; - -// command to be executed -const command = [CLIActionType.BUILD, FlowType.BRANCH]; -const parsedInputs = Container.get(InputService); - -beforeEach(() => { - // Construct the a fresh instance of the cli each time - program = Container.get(CLIArguments).getCommand({ exitOverride: true, suppressOutput: true }); -}); - -describe("build branch flow cli", () => { - test("only required options", () => { - program.parse([...command, "-f", definitionFile, "-p", startProject, "-b", branch], { from: "user" }); - - // check all the required options are set and all the optional ones have the right default value if any - const option = parsedInputs.inputs; - expect(option.startProject).toBe(startProject); - expect(option.branch).toBe(branch); - expect(option.definitionFile).toBe(definitionFile); - expect(option.outputFolder).toMatch(new RegExp(`^build_chain_${formatDate(new Date()).slice(0, -2)}\\d\\d`)); - expect(option.loggerLevel).toBe(LoggerLevel.INFO); - expect(option.skipExecution).toBe(false); - expect(option.skipCheckout).toBe(false); - expect(option.skipParallelCheckout).toBe(false); - expect(option.enableParallelExecution).toBe(false); - expect(option.fullProjectDependencyTree).toBe(false); - - // check that the executed command info is set correctly - expect(option.CLICommand).toBe(CLIActionType.BUILD); - expect(option.CLISubCommand).toBe(FlowType.BRANCH); - }); - - // check for missing required options - test.each([ - ["definition file", [...command, "-p", startProject, "-b", branch]], - ["starting project", [...command, "-f", definitionFile, "-b", branch]], - ["branch", [...command, "-f", definitionFile, "-p", startProject]], - ])("missing %p", (title: string, cmd: string[]) => { - try { - program.parse(cmd, { from: "user" }); - } catch (err) { - expect(err).toBeInstanceOf(CommanderError); - if (err instanceof CommanderError) { - expect(err.code).toBe("commander.missingMandatoryOptionValue"); - } - } - }); - - test("optional arguments", () => { - const token = "abc"; - const outputFolder = "qaz"; - const customCommandTreatment = ["abc||def"]; - const skipProject = ["pr1", "pr2"]; - const commandOption = ["cmd1", "cmd2"]; - const group = "gr1"; - - program.parse( - [ - ...command, - "-f", - definitionFile, - "-p", - startProject, - "--token", - token, - "--token", - token, - "-b", - branch, - "-o", - outputFolder, - "-t", - ...customCommandTreatment, - "--skipProjectCheckout", - ...skipProject, - "--skipProjectExecution", - ...skipProject, - "-g", - group, - "-c", - ...commandOption, - "--debug", - "--skipParallelCheckout", - "--skipExecution", - "--skipCheckout", - "--fullProjectDependencyTree", - "--enableParallelExecution" - ], - { from: "user" } - ); - - // check all the required options and optional options are set correctly - const option = parsedInputs.inputs; - expect(option.definitionFile).toBe(definitionFile); - expect(option.outputFolder).toBe(outputFolder); - expect(option.loggerLevel).toBe(LoggerLevel.DEBUG); - expect(option.skipExecution).toBe(true); - expect(option.skipCheckout).toBe(true); - expect(option.skipParallelCheckout).toBe(true); - expect(option.enableParallelExecution).toBe(true); - expect(option.fullProjectDependencyTree).toBe(true); - expect(option.startProject).toBe(startProject); - expect(option.token).toStrictEqual([token, token]); - expect(option.customCommandTreatment).toStrictEqual(customCommandTreatment); - expect(option.skipProjectCheckout).toStrictEqual(skipProject); - expect(option.skipProjectExecution).toStrictEqual(skipProject); - expect(option.branch).toBe(branch); - expect(option.group).toBe(group); - expect(option.command).toStrictEqual(commandOption); - - // check that the executed command info is set correctly - expect(option.CLICommand).toBe(CLIActionType.BUILD); - expect(option.CLISubCommand).toBe(FlowType.BRANCH); - }); -}); diff --git a/test/unitary/service/arguments/cli/build-cross_pr.test.ts b/test/unitary/service/arguments/cli/build-cross_pr.test.ts deleted file mode 100644 index 16cb3258..00000000 --- a/test/unitary/service/arguments/cli/build-cross_pr.test.ts +++ /dev/null @@ -1,115 +0,0 @@ -import "reflect-metadata"; -import { CLIActionType } from "@bc/domain/cli"; -import { CLIArguments } from "@bc/service/arguments/cli/cli-arguments"; -import { InputService } from "@bc/service/inputs/input-service"; -import { formatDate } from "@bc/utils/date"; -import { Command, CommanderError } from "commander"; -import Container from "typedi"; -import { FlowType, LoggerLevel } from "@bc/domain/inputs"; - -let program: Command; - -// Define required arguments to be reused for each test -const url = "test.com"; -const definitionFile = "/path/to/file"; - -// Command to be executed -const command = [CLIActionType.BUILD, FlowType.CROSS_PULL_REQUEST]; -const parsedInputs = Container.get(InputService); - -beforeEach(() => { - // Construct the a fresh instance of the cli each time - program = Container.get(CLIArguments).getCommand({ exitOverride: true, suppressOutput: true }); -}); - -describe("build cross pull request flow cli", () => { - test("only required options", () => { - program.parse([...command, "-f", definitionFile, "-u", url], { from: "user" }); - - // check all the required options are set and all the optional ones have the right default value if any - const option = parsedInputs.inputs; - expect(option.url).toBe(url); - expect(option.definitionFile).toBe(definitionFile); - expect(option.outputFolder).toMatch(new RegExp(`^build_chain_${formatDate(new Date()).slice(0, -2)}\\d\\d`)); - expect(option.loggerLevel).toBe(LoggerLevel.INFO); - expect(option.skipExecution).toBe(false); - expect(option.skipCheckout).toBe(false); - expect(option.enableParallelExecution).toBe(false); - expect(option.skipParallelCheckout).toBe(false); - - // check that the executed command info is set correctly - expect(option.CLICommand).toBe(CLIActionType.BUILD); - expect(option.CLISubCommand).toBe(FlowType.CROSS_PULL_REQUEST); - }); - - // check for missing required options - test.each([ - ["definition file", [...command, "-u", url]], - ["url", [...command, "-f", definitionFile]], - ])("missing %p", (title: string, cmd: string[]) => { - try { - program.parse(cmd, { from: "user" }); - } catch (err) { - expect(err).toBeInstanceOf(CommanderError); - if (err instanceof CommanderError) { - expect(err.code).toBe("commander.missingMandatoryOptionValue"); - } - } - }); - - test("optional arguments", () => { - const startProject = "xyz"; - const token = "abc"; - const outputFolder = "qaz"; - const customCommandTreatment = ["abc||def"]; - const skipProject = ["pr1", "pr2"]; - - program.parse( - [ - ...command, - "-f", - definitionFile, - "-u", - url, - "-p", - startProject, - "--token", - token, - "-o", - outputFolder, - "-t", - ...customCommandTreatment, - "--skipProjectCheckout", - ...skipProject, - "--skipCheckout", - "--skipProjectExecution", - ...skipProject, - "--debug", - "--skipParallelCheckout", - "--skipExecution", - "--enableParallelExecution" - ], - { from: "user" } - ); - - // check all the required options and optional options are set correctly - const option = parsedInputs.inputs; - expect(option.url).toBe(url); - expect(option.definitionFile).toBe(definitionFile); - expect(option.outputFolder).toBe(outputFolder); - expect(option.loggerLevel).toBe(LoggerLevel.DEBUG); - expect(option.skipExecution).toBe(true); - expect(option.skipCheckout).toBe(true); - expect(option.skipParallelCheckout).toBe(true); - expect(option.enableParallelExecution).toBe(true); - expect(option.startProject).toBe(startProject); - expect(option.token).toStrictEqual([token]); - expect(option.customCommandTreatment).toStrictEqual(customCommandTreatment); - expect(option.skipProjectCheckout).toStrictEqual(skipProject); - expect(option.skipProjectExecution).toStrictEqual(skipProject); - - // check that the executed command info is set correctly - expect(option.CLICommand).toBe(CLIActionType.BUILD); - expect(option.CLISubCommand).toBe(FlowType.CROSS_PULL_REQUEST); - }); -}); diff --git a/test/unitary/service/arguments/cli/build-fd.test.ts b/test/unitary/service/arguments/cli/build-fd.test.ts deleted file mode 100644 index 654663f4..00000000 --- a/test/unitary/service/arguments/cli/build-fd.test.ts +++ /dev/null @@ -1,117 +0,0 @@ -import "reflect-metadata"; -import { CLIActionType } from "@bc/domain/cli"; -import { CLIArguments } from "@bc/service/arguments/cli/cli-arguments"; -import { InputService } from "@bc/service/inputs/input-service"; -import { formatDate } from "@bc/utils/date"; -import { Command, CommanderError } from "commander"; -import Container from "typedi"; -import { FlowType, LoggerLevel } from "@bc/domain/inputs"; - -let program: Command; - -// Define required arguments to be reused for each test -const url = "test.com"; -const definitionFile = "/path/to/file"; - -// Command to be executed -const command = [CLIActionType.BUILD, FlowType.FULL_DOWNSTREAM]; -const parsedInputs = Container.get(InputService); - -beforeEach(() => { - // Construct the a fresh instance of the cli each time - program = Container.get(CLIArguments).getCommand({ exitOverride: true, suppressOutput: true }); -}); - -describe("build full downstream pull request flow cli", () => { - test("only required options", () => { - program.parse([...command, "-f", definitionFile, "-u", url], { from: "user" }); - - // check all the required options are set and all the optional ones have the right default value if any - const option = parsedInputs.inputs; - expect(option.url).toBe(url); - expect(option.definitionFile).toBe(definitionFile); - expect(option.outputFolder).toMatch(new RegExp(`^build_chain_${formatDate(new Date()).slice(0, -2)}\\d\\d`)); - expect(option.loggerLevel).toBe(LoggerLevel.INFO); - expect(option.skipExecution).toBe(false); - expect(option.skipCheckout).toBe(false); - expect(option.skipParallelCheckout).toBe(false); - expect(option.enableParallelExecution).toBe(false); - - // check that the executed command info is set correctly - expect(option.CLICommand).toBe(CLIActionType.BUILD); - expect(option.CLISubCommand).toBe(FlowType.FULL_DOWNSTREAM); - }); - - // check for missing required options - test.each([ - ["definition file", [...command, "-u", url]], - ["url", [...command, "-f", definitionFile]], - ])("missing %p", (title: string, cmd: string[]) => { - try { - program.parse(cmd, { from: "user" }); - } catch (err) { - expect(err).toBeInstanceOf(CommanderError); - if (err instanceof CommanderError) { - expect(err.code).toBe("commander.missingMandatoryOptionValue"); - } - } - }); - - test("optional arguments", () => { - const startProject = "xyz"; - const token = "abc"; - const outputFolder = "qaz"; - const customCommandTreatment = ["abc||def"]; - const skipProject = ["pr1", "pr2"]; - - program.parse( - [ - ...command, - "-f", - definitionFile, - "-u", - url, - "-p", - startProject, - "--token", - token, - "--token", - token, - "--skipProjectExecution", - ...skipProject, - "-o", - outputFolder, - "-t", - ...customCommandTreatment, - "--skipProjectCheckout", - ...skipProject, - "--debug", - "--skipParallelCheckout", - "--skipExecution", - "--skipCheckout", - "--enableParallelExecution" - ], - { from: "user" } - ); - - // check all the required options and optional options are set correctly - const option = parsedInputs.inputs; - expect(option.url).toBe(url); - expect(option.definitionFile).toBe(definitionFile); - expect(option.outputFolder).toBe(outputFolder); - expect(option.loggerLevel).toBe(LoggerLevel.DEBUG); - expect(option.skipExecution).toBe(true); - expect(option.skipCheckout).toBe(true); - expect(option.skipParallelCheckout).toBe(true); - expect(option.enableParallelExecution).toBe(true); - expect(option.startProject).toBe(startProject); - expect(option.token).toStrictEqual([token, token]); - expect(option.customCommandTreatment).toStrictEqual(customCommandTreatment); - expect(option.skipProjectCheckout).toStrictEqual(skipProject); - expect(option.skipProjectExecution).toStrictEqual(skipProject); - - // check that the executed command info is set correctly - expect(option.CLICommand).toBe(CLIActionType.BUILD); - expect(option.CLISubCommand).toBe(FlowType.FULL_DOWNSTREAM); - }); -}); diff --git a/test/unitary/service/arguments/cli/build-single.test.ts b/test/unitary/service/arguments/cli/build-single.test.ts deleted file mode 100644 index 7ca8cead..00000000 --- a/test/unitary/service/arguments/cli/build-single.test.ts +++ /dev/null @@ -1,115 +0,0 @@ -import "reflect-metadata"; -import { CLIActionType } from "@bc/domain/cli"; -import { CLIArguments } from "@bc/service/arguments/cli/cli-arguments"; -import { InputService } from "@bc/service/inputs/input-service"; -import { formatDate } from "@bc/utils/date"; -import { Command, CommanderError } from "commander"; -import Container from "typedi"; -import { FlowType, LoggerLevel } from "@bc/domain/inputs"; - -let program: Command; - -// Define required arguments to be reused for each test -const url = "test.com"; -const definitionFile = "/path/to/file"; - -// Command to be executed -const command = [CLIActionType.BUILD, FlowType.SINGLE_PULL_REQUEST]; -const parsedInputs = Container.get(InputService); - -beforeEach(() => { - // Construct the a fresh instance of the cli each time - program = Container.get(CLIArguments).getCommand({ exitOverride: true, suppressOutput: true }); -}); - -describe("build single pull request flow cli", () => { - test("only required options", () => { - program.parse([...command, "-f", definitionFile, "-u", url], { from: "user" }); - - // check all the required options are set and all the optional ones have the right default value if any - const option = parsedInputs.inputs; - expect(option.url).toBe(url); - expect(option.definitionFile).toBe(definitionFile); - expect(option.outputFolder).toMatch(new RegExp(`^build_chain_${formatDate(new Date()).slice(0, -2)}\\d\\d`)); - expect(option.loggerLevel).toBe(LoggerLevel.INFO); - expect(option.skipExecution).toBe(false); - expect(option.skipCheckout).toBe(false); - expect(option.skipParallelCheckout).toBe(false); - expect(option.enableParallelExecution).toBe(false); - - // check that the executed command info is set correctly - expect(option.CLICommand).toBe(CLIActionType.BUILD); - expect(option.CLISubCommand).toBe(FlowType.SINGLE_PULL_REQUEST); - }); - - // check for missing required options - test.each([ - ["definition file", [...command, "-u", url]], - ["url", [...command, "-f", definitionFile]], - ])("missing %p", (title: string, cmd: string[]) => { - try { - program.parse(cmd, { from: "user" }); - } catch (err) { - expect(err).toBeInstanceOf(CommanderError); - if (err instanceof CommanderError) { - expect(err.code).toBe("commander.missingMandatoryOptionValue"); - } - } - }); - - test("optional arguments", () => { - const startProject = "xyz"; - const token = "abc"; - const outputFolder = "qaz"; - const customCommandTreatment = ["abc||def"]; - const skipProject = ["pr1", "pr2"]; - - program.parse( - [ - ...command, - "-f", - definitionFile, - "-u", - url, - "-p", - startProject, - "--token", - token, - "--skipProjectExecution", - ...skipProject, - "-o", - outputFolder, - "-t", - ...customCommandTreatment, - "--skipProjectCheckout", - ...skipProject, - "--debug", - "--skipParallelCheckout", - "--skipExecution", - "--skipCheckout", - "--enableParallelExecution" - ], - { from: "user" } - ); - - // check all the required options and optional options are set correctly - const option = parsedInputs.inputs; - expect(option.url).toBe(url); - expect(option.definitionFile).toBe(definitionFile); - expect(option.outputFolder).toBe(outputFolder); - expect(option.loggerLevel).toBe(LoggerLevel.DEBUG); - expect(option.skipExecution).toBe(true); - expect(option.skipCheckout).toBe(true); - expect(option.skipParallelCheckout).toBe(true); - expect(option.enableParallelExecution).toBe(true); - expect(option.startProject).toBe(startProject); - expect(option.token).toStrictEqual([token]); - expect(option.customCommandTreatment).toStrictEqual(customCommandTreatment); - expect(option.skipProjectCheckout).toStrictEqual(skipProject); - expect(option.skipProjectExecution).toStrictEqual(skipProject); - - // check that the executed command info is set correctly - expect(option.CLICommand).toBe(CLIActionType.BUILD); - expect(option.CLISubCommand).toBe(FlowType.SINGLE_PULL_REQUEST); - }); -}); diff --git a/test/unitary/service/arguments/cli/tool-project_list.test.ts b/test/unitary/service/arguments/cli/tool-project_list.test.ts deleted file mode 100644 index 3aece324..00000000 --- a/test/unitary/service/arguments/cli/tool-project_list.test.ts +++ /dev/null @@ -1,74 +0,0 @@ -import "reflect-metadata"; -import { CLIActionType, ToolType } from "@bc/domain/cli"; -import { CLIArguments } from "@bc/service/arguments/cli/cli-arguments"; -import { InputService } from "@bc/service/inputs/input-service"; -import { Command, CommanderError } from "commander"; -import Container from "typedi"; -import { LoggerLevel } from "@bc/domain/inputs"; - -let program: Command; - -// Command to be executed -const command = [CLIActionType.TOOLS, ToolType.PROJECT_LIST]; - -// Define required arguments to be reused for each test -const definitionFile = "/path/to/file"; -const startingProject = "project"; -const parsedInputs = Container.get(InputService); - -beforeEach(() => { - // Construct the a fresh instance of the cli each time - program = Container.get(CLIArguments).getCommand({ exitOverride: true, suppressOutput: true }); -}); - -describe("build single pull request flow cli", () => { - test("only required options", () => { - program.parse([...command, "-f", definitionFile, "-p", startingProject], { from: "user" }); - - // check all the required options are set and all the optional ones have the right default value if any - const option = parsedInputs.inputs; - expect(option.definitionFile).toBe(definitionFile); - expect(option.loggerLevel).toBe(LoggerLevel.INFO); - - // check that the executed command info is set correctly - expect(option.CLICommand).toBe(CLIActionType.TOOLS); - expect(option.CLISubCommand).toBe(ToolType.PROJECT_LIST); - }); - - // check for missing required options - test.each([ - ["definition file", [...command, "-p", startingProject]], - ["starting project", [...command, "-f", definitionFile]], - ])("missing %p", (_title: string, cmd: string[]) => { - try { - program.parse(cmd, { from: "user" }); - } catch (err) { - expect(err).toBeInstanceOf(CommanderError); - if (err instanceof CommanderError) { - expect(err.code).toBe("commander.missingMandatoryOptionValue"); - } - } - }); - - test("optional arguments", () => { - const token = "abc"; - - program.parse([ - ...command, - "-f", definitionFile, - "-p", startingProject, - "--token", token, - "--fullProjectDependencyTree", - "-d" - ], { from: "user" }); - - // check all the required options and optional options are set correctly - const option = parsedInputs.inputs; - expect(option.token).toBe(token); - expect(option.loggerLevel).toBe(LoggerLevel.DEBUG); - - // check that the executed command info is set correctly - expect(option.CLICommand).toBe(CLIActionType.TOOLS); - expect(option.CLISubCommand).toBe(ToolType.PROJECT_LIST); - }); -}); diff --git a/test/unitary/service/artifacts/artifact-service.test.ts b/test/unitary/service/artifacts/artifact-service.test.ts deleted file mode 100644 index cc89f501..00000000 --- a/test/unitary/service/artifacts/artifact-service.test.ts +++ /dev/null @@ -1,68 +0,0 @@ -import "reflect-metadata"; -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; -import { UploadService } from "@bc/service/artifacts/upload-service"; -import Container from "typedi"; -import { ArtifactService } from "@bc/service/artifacts/artifact-service"; -import { Node } from "@kie/build-chain-configuration-reader"; -import { defaultNodeValue } from "@bc/domain/node"; - -// disable logs -jest.spyOn(global.console, "log"); - -// just to initialize config service otheriwse not relevant -Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.GITHUB_EVENT); - -const nodeChain: Node[] = [ - { - ...defaultNodeValue, - project: "owner1/project1", - archiveArtifacts: { - name: "artifacts-project1", - dependencies: "all", - "if-no-files-found": "ignore", - paths: [{ path: "test", on: "success" }], - }, - }, - { - ...defaultNodeValue, - project: "owner2/project2", - archiveArtifacts: { - name: "artifacts-project1", - dependencies: "none", - "if-no-files-found": "ignore", - paths: [{ path: "test", on: "success" }], - }, - }, - { - ...defaultNodeValue, - project: "owner3/project3", - archiveArtifacts: { - name: "artifacts-project1", - dependencies: ["owner1/project1"], - "if-no-files-found": "ignore", - paths: [{ path: "test", on: "success" }], - }, - }, -]; - -test.each([ - ["none", 1, [nodeChain[1]]], - ["all", 0, nodeChain], - ["array of projects", 2, [nodeChain[0], nodeChain[2]]], -])("artifacts dependencies: %p", async (_title: string, startProjectIndex: number, nodesToArchive: Node[]) => { - const spyUpload = jest.spyOn(UploadService.prototype, "upload").mockImplementation(async () => { - return { - artifactName: "", - artifactItems: [], - failedItems: [], - size: 0, - }; - }); - const artifactService = Container.get(ArtifactService); - await artifactService.uploadNodes(nodeChain, nodeChain[startProjectIndex]); - expect(spyUpload).toHaveBeenCalledTimes(nodesToArchive.length); - nodesToArchive.forEach(node => { - expect(spyUpload).toHaveBeenCalledWith(node.archiveArtifacts, node.project); - }); -}); diff --git a/test/unitary/service/artifacts/upload-service.test.ts b/test/unitary/service/artifacts/upload-service.test.ts deleted file mode 100644 index bc2997bf..00000000 --- a/test/unitary/service/artifacts/upload-service.test.ts +++ /dev/null @@ -1,266 +0,0 @@ -import "reflect-metadata"; -import path from "path"; -import { mkdir, rm, writeFile } from "fs/promises"; -import { ArchiveArtifacts, IfNoFile } from "@kie/build-chain-configuration-reader"; -import { UploadService } from "@bc/service/artifacts/upload-service"; -import Container from "typedi"; -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; -import { create } from "@actions/artifact"; -import * as core from "@actions/core"; -import { BaseLoggerService } from "@bc/service/logger/base-logger-service"; - -jest.mock("@actions/artifact"); - -// disable logs -jest.spyOn(global.console, "log"); - -Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.GITHUB_EVENT); -let uploadService: UploadService; -const mockedCreate = create as jest.Mock; -const uploadOptions = { continueOnError: false }; - -const constructArchiveArtifacts = (search: string[], ifNoFilesFound: IfNoFile = "ignore" as IfNoFile): ArchiveArtifacts => { - return { - "if-no-files-found": ifNoFilesFound, - dependencies: "all", - name: "test", - paths: search.map(s => { - return { path: s, on: "success" }; - }), - }; -}; - -beforeEach(() => { - uploadService = Container.get(UploadService); - jest.spyOn(core, "debug").mockImplementation(() => undefined); - jest.spyOn(core, "info").mockImplementation(() => undefined); - jest.spyOn(core, "warning").mockImplementation(() => undefined); -}); - -describe("search files", () => { - const root = path.join(__dirname, "_temp"); - const searchItem1Path = path.join(root, "folder-a", "folder-b", "folder-c", "search-item1.txt"); - const searchItem2Path = path.join(root, "folder-d", "search-item2.txt"); - const searchItem3Path = path.join(root, "folder-d", "search-item3.txt"); - const searchItem4Path = path.join(root, "folder-d", "search-item4.txt"); - const searchItem5Path = path.join(root, "search-item5.txt"); - const extraSearchItem1Path = path.join(root, "folder-a", "folder-b", "folder-c", "extraSearch-item1.txt"); - const extraSearchItem2Path = path.join(root, "folder-d", "extraSearch-item2.txt"); - const extraSearchItem3Path = path.join(root, "folder-f", "extraSearch-item3.txt"); - const extraSearchItem4Path = path.join(root, "folder-h", "folder-i", "extraSearch-item4.txt"); - const extraSearchItem5Path = path.join(root, "folder-h", "folder-i", "extraSearch-item5.txt"); - const extraFileInFolderCPath = path.join(root, "folder-a", "folder-b", "folder-c", "extra-file-in-folder-c.txt"); - const amazingFileInFolderHPath = path.join(root, "folder-h", "amazing-item.txt"); - const lonelyFilePath = path.join(root, "folder-h", "folder-j", "folder-k", "lonely-file.txt"); - beforeEach(async () => { - await mkdir(path.dirname(searchItem1Path), { - recursive: true, - }); - await mkdir(path.join(root, "folder-a", "folder-b", "folder-e"), { - recursive: true, - }); - await mkdir(path.dirname(searchItem2Path), { - recursive: true, - }); - await mkdir(path.dirname(extraSearchItem3Path), { - recursive: true, - }); - await mkdir(path.join(root, "folder-g"), { - recursive: true, - }); - await mkdir(path.dirname(extraSearchItem4Path), { - recursive: true, - }); - await mkdir(path.dirname(lonelyFilePath), { - recursive: true, - }); - await Promise.all([ - writeFile(searchItem1Path, "search item1 file"), - writeFile(searchItem2Path, "search item2 file"), - writeFile(searchItem3Path, "search item3 file"), - writeFile(searchItem4Path, "search item4 file"), - writeFile(searchItem5Path, "search item5 file"), - writeFile(extraSearchItem1Path, "extraSearch item1 file"), - writeFile(extraSearchItem2Path, "extraSearch item2 file"), - writeFile(extraSearchItem3Path, "extraSearch item3 file"), - writeFile(extraSearchItem4Path, "extraSearch item4 file"), - writeFile(extraSearchItem5Path, "extraSearch item5 file"), - writeFile(extraFileInFolderCPath, "extra file"), - writeFile(amazingFileInFolderHPath, "amazing file"), - writeFile(lonelyFilePath, "all by itself"), - ]); - }); - - afterEach(async () => { - await rm(root, { recursive: true }); - }); - - test.each([ - ["Absolute Path", searchItem1Path], - ["Relative Path", path.join("test", "unitary", "service", "artifacts", "_temp", "folder-a", "folder-b", "folder-c", "search-item1.txt")], - ])("Single file search - %p", async (_title: string, searchPath: string) => { - const rootDir = path.join(root, "folder-a", "folder-b", "folder-c"); - const archiveConfig = constructArchiveArtifacts([searchPath]); - const uploadArtifact = jest.fn().mockResolvedValue({ failedItems: [], artifactName: archiveConfig.name }); - mockedCreate.mockReturnValueOnce({ uploadArtifact }); - await uploadService.upload(archiveConfig, "project"); - expect(uploadArtifact).toHaveBeenCalledWith(archiveConfig.name, [searchItem1Path], rootDir, uploadOptions); - }); - - test("Single file using wildcard", async () => { - const searchPath = path.join(root, "folder-h", "**/*lonely*"); - const rootDir = path.join(root, "folder-h"); - const archiveConfig = constructArchiveArtifacts([searchPath]); - const uploadArtifact = jest.fn().mockResolvedValue({ failedItems: [], artifactName: archiveConfig.name }); - mockedCreate.mockReturnValueOnce({ uploadArtifact }); - await uploadService.upload(archiveConfig, "project"); - expect(uploadArtifact).toHaveBeenCalledWith(archiveConfig.name, [lonelyFilePath], rootDir, uploadOptions); - }); - - test("Single file using directory", async () => { - const searchPath = path.join(root, "folder-h", "folder-j"); - const archiveConfig = constructArchiveArtifacts([searchPath]); - const uploadArtifact = jest.fn().mockResolvedValue({ failedItems: [], artifactName: archiveConfig.name }); - mockedCreate.mockReturnValueOnce({ uploadArtifact }); - await uploadService.upload(archiveConfig, "project"); - expect(uploadArtifact).toHaveBeenCalledWith(archiveConfig.name, [lonelyFilePath], searchPath, uploadOptions); - }); - - test.each([ - ["Absolute Path", path.join(root, "folder-h"), path.join(root, "folder-h")], - ["Relative Path", path.join("test", "unitary", "service", "artifacts", "_temp", "folder-h"), path.join(root, "folder-h")], - ])("Directory search - %p", async (_title: string, searchPath: string, rootDir: string) => { - const archiveConfig = constructArchiveArtifacts([searchPath]); - const uploadArtifact = jest.fn().mockResolvedValue({ failedItems: [], artifactName: archiveConfig.name }); - mockedCreate.mockReturnValueOnce({ uploadArtifact }); - await uploadService.upload(archiveConfig, "project"); - const filesToUpload = [amazingFileInFolderHPath, extraSearchItem4Path, extraSearchItem5Path, lonelyFilePath]; - expect(uploadArtifact).toHaveBeenCalled(); - const receivedName = uploadArtifact.mock.calls[0][0]; - const receivedFiles = uploadArtifact.mock.calls[0][1]; - const receivedRoot = uploadArtifact.mock.calls[0][2]; - const receivedOptions = uploadArtifact.mock.calls[0][3]; - expect(receivedName).toBe(archiveConfig.name); - expect(receivedFiles.sort()).toStrictEqual(filesToUpload.sort()); - expect(receivedRoot).toBe(rootDir); - expect(receivedOptions).toStrictEqual(uploadOptions); - }); - - test.each([ - ["Absolute Path", path.join(root, "**/*[Ss]earch*")], - ["Relative Path", path.join("test", "unitary", "service", "artifacts", "_temp", "**/*[Ss]earch*")], - ])("Wildcard search - %p", async (_title: string, searchPath) => { - const archiveConfig = constructArchiveArtifacts([searchPath]); - const uploadArtifact = jest.fn().mockResolvedValue({ failedItems: [], artifactName: archiveConfig.name }); - mockedCreate.mockReturnValueOnce({ uploadArtifact }); - await uploadService.upload(archiveConfig, "project"); - expect(uploadArtifact).toHaveBeenCalled(); - const receivedName = uploadArtifact.mock.calls[0][0]; - const receivedFiles = uploadArtifact.mock.calls[0][1]; - const receivedRoot = uploadArtifact.mock.calls[0][2]; - const receivedOptions = uploadArtifact.mock.calls[0][3]; - const filesToUpload = [ - searchItem1Path, - searchItem2Path, - searchItem3Path, - searchItem4Path, - searchItem5Path, - extraSearchItem1Path, - extraSearchItem2Path, - extraSearchItem3Path, - extraSearchItem4Path, - extraSearchItem5Path, - ]; - expect(receivedName).toBe(archiveConfig.name); - expect(receivedFiles.sort()).toStrictEqual(filesToUpload.sort()); - expect(receivedRoot).toBe(root); - expect(receivedOptions).toStrictEqual(uploadOptions); - }); - - test("Multi path search - root directory", async () => { - const searchPath = [path.join(root, "folder-a"), path.join(root, "folder-d")]; - const archiveConfig = constructArchiveArtifacts(searchPath); - const uploadArtifact = jest.fn().mockResolvedValue({ failedItems: [], artifactName: archiveConfig.name }); - mockedCreate.mockReturnValueOnce({ uploadArtifact }); - await uploadService.upload(archiveConfig, "project"); - expect(uploadArtifact).toHaveBeenCalled(); - const receivedName = uploadArtifact.mock.calls[0][0]; - const receivedFiles = uploadArtifact.mock.calls[0][1]; - const receivedRoot = uploadArtifact.mock.calls[0][2]; - const receivedOptions = uploadArtifact.mock.calls[0][3]; - const filesToUpload = [ - searchItem1Path, - searchItem2Path, - searchItem3Path, - searchItem4Path, - extraSearchItem1Path, - extraSearchItem2Path, - extraFileInFolderCPath, - ]; - expect(receivedName).toBe(archiveConfig.name); - expect(receivedFiles.sort()).toStrictEqual(filesToUpload.sort()); - expect(receivedRoot).toBe(root); - expect(receivedOptions).toStrictEqual(uploadOptions); - }); - - test("Multi path search - with exclude character", async () => { - const searchPath = [path.join(root, "folder-a"), path.join(root, "folder-d"), "!" + path.join(root, "folder-a", "folder-b", "**/extra*.txt")]; - const archiveConfig = constructArchiveArtifacts(searchPath); - const uploadArtifact = jest.fn().mockResolvedValue({ failedItems: [], artifactName: archiveConfig.name }); - mockedCreate.mockReturnValueOnce({ uploadArtifact }); - await uploadService.upload(archiveConfig, "project"); - expect(uploadArtifact).toHaveBeenCalled(); - const receivedName = uploadArtifact.mock.calls[0][0]; - const receivedFiles = uploadArtifact.mock.calls[0][1]; - const receivedRoot = uploadArtifact.mock.calls[0][2]; - const receivedOptions = uploadArtifact.mock.calls[0][3]; - const filesToUpload = [searchItem1Path, searchItem2Path, searchItem3Path, searchItem4Path, extraSearchItem2Path]; - expect(receivedName).toBe(archiveConfig.name); - expect(receivedFiles.sort()).toStrictEqual(filesToUpload.sort()); - expect(receivedRoot).toBe(root); - expect(receivedOptions).toStrictEqual(uploadOptions); - }); - - test("Multi path search - non root directory", async () => { - const searchPath = [path.join(root, "folder-h", "folder-i"), path.join(root, "folder-h", "folder-j", "folder-k"), amazingFileInFolderHPath]; - const archiveConfig = constructArchiveArtifacts(searchPath); - const uploadArtifact = jest.fn().mockResolvedValue({ failedItems: [], artifactName: archiveConfig.name }); - mockedCreate.mockReturnValueOnce({ uploadArtifact }); - await uploadService.upload(archiveConfig, "project"); - expect(uploadArtifact).toHaveBeenCalled(); - const receivedName = uploadArtifact.mock.calls[0][0]; - const receivedFiles = uploadArtifact.mock.calls[0][1]; - const receivedRoot = uploadArtifact.mock.calls[0][2]; - const receivedOptions = uploadArtifact.mock.calls[0][3]; - const filesToUpload = [amazingFileInFolderHPath, extraSearchItem4Path, extraSearchItem5Path, lonelyFilePath]; - expect(receivedName).toBe(archiveConfig.name); - expect(receivedFiles.sort()).toStrictEqual(filesToUpload.sort()); - expect(receivedRoot).toBe(path.join(root, "folder-h")); - expect(receivedOptions).toStrictEqual(uploadOptions); - }); -}); - -describe("upload", () => { - test.each([ - ["default", jest.spyOn(BaseLoggerService.prototype, "warn")], - ["warn", jest.spyOn(BaseLoggerService.prototype, "warn")], - ["ignore", jest.spyOn(BaseLoggerService.prototype, "info")], - ["error", jest.spyOn(BaseLoggerService.prototype, "error")], - ])("with no files found - %p", async (ifNoFilesFound: string, spy: jest.SpyInstance) => { - const archiveConfig = constructArchiveArtifacts([path.join(__dirname, "does-not-exist.txt")], ifNoFilesFound as IfNoFile); - const uploadArtifact = jest.fn().mockResolvedValue({ failedItems: [], artifactName: archiveConfig.name }); - mockedCreate.mockReturnValueOnce({ uploadArtifact }); - if (ifNoFilesFound === "error") { - await expect(uploadService.upload(archiveConfig, "project")).rejects.toThrowError(); - } else { - await expect(uploadService.upload(archiveConfig, "project")).resolves.toStrictEqual({ - artifactName: archiveConfig.name, - artifactItems: [], - failedItems: [], - size: 0, - }); - } - expect(spy).toHaveBeenCalledTimes(1); - }); -}); diff --git a/test/unitary/service/checkout/checkout-service.test.ts b/test/unitary/service/checkout/checkout-service.test.ts deleted file mode 100644 index 30f92537..00000000 --- a/test/unitary/service/checkout/checkout-service.test.ts +++ /dev/null @@ -1,795 +0,0 @@ -import "reflect-metadata"; -import path from "path"; -import Container from "typedi"; -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; -import { ConfigurationService } from "@bc/service/config/configuration-service"; -import { ProjectConfiguration } from "@bc/domain/configuration"; -import { CheckoutService } from "@bc/service/checkout/checkout-service"; -import { rmSync } from "fs"; -import { GitCLIService } from "@bc/service/git/git-cli"; -import { BaseConfiguration } from "@bc/service/config/base-configuration"; -import { serverUrl, nodeChain, fakeClone, checkClone } from "./helpers"; -import { Moctokit } from "@kie/mock-github"; - -// disable logs -jest.spyOn(global.console, "log"); - -/** - * just so the config service intialization succeeds. Otherwise not really needed - * since all config service functions will be mocked - */ -Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.GITHUB_EVENT); - -const checkoutService = Container.get(CheckoutService); -const moctokit = new Moctokit(); -let cloneSpy: jest.SpyInstance, mergeSpy: jest.SpyInstance, renameSpy: jest.SpyInstance, headSpy: jest.SpyInstance; - -beforeEach(async () => { - process.env = {}; - - //set node chain - jest.spyOn(ConfigurationService.prototype, "nodeChain", "get").mockImplementation(() => nodeChain); - - // skip checkout for the last node - jest - .spyOn(ConfigurationService.prototype, "skipCheckout") - .mockImplementationOnce(() => false) - .mockImplementationOnce(() => false) - .mockImplementationOnce(() => true); - - // mock git server url - jest.spyOn(BaseConfiguration.prototype, "gitConfiguration", "get").mockImplementation(() => { - return { serverUrlWithToken: serverUrl }; - }); - - // spy on git functions - cloneSpy = jest - .spyOn(GitCLIService.prototype, "clone") - .mockImplementationOnce(async (_from: string, to: string, _branch: string) => fakeClone(to)) - .mockImplementationOnce(async () => undefined); - mergeSpy = jest.spyOn(GitCLIService.prototype, "merge").mockImplementation(async () => undefined); - renameSpy = jest.spyOn(GitCLIService.prototype, "rename").mockImplementation(async () => undefined); - headSpy = jest.spyOn(GitCLIService.prototype, "head").mockImplementation(async () => "abc"); -}); - - -describe.each([ - ["sequential", true], - ["parallel", false], -])("%p: starting project has a PR from non-forked repository", (_title: string, skipParallelCheckout: boolean) => { - const originalSource: ProjectConfiguration = { - name: "project2", - group: "owner2", - branch: "sbranch2", - repository: "owner2/project2", - }; - const originalTarget: ProjectConfiguration = { - name: "project2", - group: "owner2", - branch: "tbranch2", - repository: "owner2/project2", - }; - const rootFolder = path.join(__dirname, "non-forked-pr"); - - beforeEach(() => { - jest.spyOn(ConfigurationService.prototype, "getRootFolder").mockImplementation(() => rootFolder); - jest.spyOn(ConfigurationService.prototype, "getSourceProject").mockImplementation(() => originalSource); - jest.spyOn(ConfigurationService.prototype, "getTargetProject").mockImplementation(() => originalTarget); - jest.spyOn(ConfigurationService.prototype, "getProjectTriggeringTheJob").mockImplementation(() => nodeChain[1]); - jest.spyOn(ConfigurationService.prototype, "skipParallelCheckout").mockImplementation(() => skipParallelCheckout); - }); - - afterEach(() => { - rmSync(rootFolder, { recursive: true }); - }); - - test("PR exists from node_forked:source_branch to node:mapped_branch", async () => { - - moctokit.rest.repos.listForks({ - owner: "owner1", - repo: "project1" - }).reply({status: 200, data: [{name: "project1-forked", owner: {login: "owner2"}}]}); - moctokit.rest.repos.get({ - owner: "owner2", - repo: "project2" - }).reply({status: 200, data: {}}); - - moctokit.rest.pulls.list({owner: "owner1", repo: "project1", state: "open", head: "owner2:sbranch2", base: "tbranch1"}).reply({status: 200, data: [{title: "pr"}]}); - moctokit.rest.pulls.list({owner: "owner2", repo: "project2", state: "open", head: "owner2:sbranch2", base: "tbranch2"}).reply({status: 200, data: []}); - moctokit.rest.pulls.list({owner: "owner2", repo: "project2", state: "open", head: "owner2:sbranch2", base: "tbranch2"}).reply({status: 200, data: [{title: "pr"}]}); - - const checkedOutNodeInfo = await checkoutService.checkoutDefinitionTree(); - - // checking clone and merge correctness - expect(cloneSpy).toHaveBeenCalledTimes(2); - expect(cloneSpy).toHaveBeenCalledWith(`${serverUrl}/owner1/project1`, path.join(rootFolder, "owner1_project1"), "tbranch1"); - expect(cloneSpy).toHaveBeenCalledWith(`${serverUrl}/owner2/project2`, path.join(rootFolder, "owner2_project2"), "tbranch2"); - - expect(mergeSpy).toHaveBeenCalledTimes(2); - expect(mergeSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner1_project1"), `${serverUrl}/owner2/project1-forked`, "sbranch2"); - expect(mergeSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner2_project2"), `${serverUrl}/owner2/project2`, "sbranch2"); - - expect(renameSpy).toHaveBeenCalledTimes(2); - expect(renameSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner1_project1"), "sbranch2"); - expect(renameSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner2_project2"), "sbranch2"); - - expect(headSpy).toHaveBeenCalledTimes(2); - expect(headSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner1_project1")); - expect(headSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner2_project2")); - - // checking copying node (i.e. cloneNode) correctness - await checkClone(rootFolder); - - // checking checkout information correctness - expect(checkedOutNodeInfo.length).toBe(3); - expect(checkedOutNodeInfo[0]).toStrictEqual({ - node: nodeChain[0], - checkoutInfo: { - sourceBranch: "sbranch2", - sourceGroup: "owner2", - sourceName: "project1-forked", - targetBranch: "tbranch1", - targetGroup: "owner1", - targetName: "project1", - repoDir: `${rootFolder}/owner1_project1`, - merge: true, - }, - branchHead: "abc" - }); - expect(checkedOutNodeInfo[1]).toStrictEqual({ - node: nodeChain[1], - checkoutInfo: { - sourceBranch: "sbranch2", - sourceGroup: "owner2", - sourceName: "project2", - targetBranch: "tbranch2", - targetGroup: "owner2", - targetName: "project2", - repoDir: `${rootFolder}/owner2_project2`, - merge: true, - }, - branchHead: "abc" - }); - expect(checkedOutNodeInfo[2]).toStrictEqual({ - node: nodeChain[2], - checkoutInfo: undefined, - branchHead: "" - }); - }); - - test("PR exists from node:source_branch to node:mapped_branch", async () => { - - moctokit.rest.repos.listForks({ - owner: "owner1", - repo: "project1" - }).reply({status: 200, data: [{name: "project1-forked", owner: {login: "owner4"}}]}); - moctokit.rest.repos.get({ - owner: "owner2", - repo: "project2" - }).reply({status: 200, data: {}}); - - moctokit.rest.pulls.list({owner: "owner1", repo: "project1", state: "open", head: "owner1:sbranch2", base: "tbranch1"}).reply({status: 200, data: [{title: "pr"}]}); - moctokit.rest.pulls.list({owner: "owner2", repo: "project2", state: "open", head: "owner2:sbranch2", base: "tbranch2"}).reply({status: 200, data: []}); - moctokit.rest.pulls.list({owner: "owner2", repo: "project2", state: "open", head: "owner2:sbranch2", base: "tbranch2"}).reply({status: 200, data: [{title: "pr"}]}); - - const checkedOutNodeInfo = await checkoutService.checkoutDefinitionTree(); - - // checking clone and merge correctness - expect(cloneSpy).toHaveBeenCalledTimes(2); - expect(cloneSpy).toHaveBeenCalledWith(`${serverUrl}/owner1/project1`, path.join(rootFolder, "owner1_project1"), "tbranch1"); - expect(cloneSpy).toHaveBeenCalledWith(`${serverUrl}/owner2/project2`, path.join(rootFolder, "owner2_project2"), "tbranch2"); - - expect(mergeSpy).toHaveBeenCalledTimes(2); - expect(mergeSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner1_project1"), `${serverUrl}/owner1/project1`, "sbranch2"); - expect(mergeSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner2_project2"), `${serverUrl}/owner2/project2`, "sbranch2"); - - expect(renameSpy).toHaveBeenCalledTimes(2); - expect(renameSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner1_project1"), "sbranch2"); - expect(renameSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner2_project2"), "sbranch2"); - - expect(headSpy).toHaveBeenCalledTimes(2); - expect(headSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner1_project1")); - expect(headSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner2_project2")); - - // checking copying node (i.e. cloneNode) correctness - await checkClone(rootFolder); - - // checking checkout information correctness - expect(checkedOutNodeInfo.length).toBe(3); - expect(checkedOutNodeInfo[0]).toStrictEqual({ - node: nodeChain[0], - checkoutInfo: { - sourceBranch: "sbranch2", - sourceGroup: "owner1", - sourceName: "project1", - targetBranch: "tbranch1", - targetGroup: "owner1", - targetName: "project1", - repoDir: `${rootFolder}/owner1_project1`, - merge: true, - }, - branchHead: "abc" - }); - expect(checkedOutNodeInfo[1]).toStrictEqual({ - node: nodeChain[1], - checkoutInfo: { - sourceBranch: "sbranch2", - sourceGroup: "owner2", - sourceName: "project2", - targetBranch: "tbranch2", - targetGroup: "owner2", - targetName: "project2", - repoDir: `${rootFolder}/owner2_project2`, - merge: true, - }, - branchHead: "abc" - }); - expect(checkedOutNodeInfo[2]).toStrictEqual({ - node: nodeChain[2], - checkoutInfo: undefined, - branchHead: "" - }); - }); - - test("No PR", async () => { - moctokit.rest.repos.listForks({ - owner: "owner1", - repo: "project1" - }).reply({status: 200, data: []}); - moctokit.rest.repos.get({ - owner: "owner2", - repo: "project2" - }).reply({status: 200, data: {}}); - - moctokit.rest.pulls.list({owner: "owner1", repo: "project1", state: "open", head: "owner1:sbranch2", base: "tbranch1"}).reply({status: 200, data: []}); - moctokit.rest.pulls.list({owner: "owner2", repo: "project2", state: "open", head: "owner2:sbranch2", base: "tbranch2"}).reply({status: 200, data: []}); - moctokit.rest.pulls.list({owner: "owner2", repo: "project2", state: "open", head: "owner2:sbranch2", base: "tbranch2"}).reply({status: 200, data: [{title: "pr"}]}); - - const checkedOutNodeInfo = await checkoutService.checkoutDefinitionTree(); - - // checking clone and merge correctness - expect(cloneSpy).toHaveBeenCalledTimes(2); - expect(cloneSpy).toHaveBeenCalledWith(`${serverUrl}/owner1/project1`, path.join(rootFolder, "owner1_project1"), "tbranch1"); - expect(cloneSpy).toHaveBeenCalledWith(`${serverUrl}/owner2/project2`, path.join(rootFolder, "owner2_project2"), "tbranch2"); - - expect(mergeSpy).toHaveBeenCalledTimes(1); - expect(mergeSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner2_project2"), `${serverUrl}/owner2/project2`, "sbranch2"); - - expect(renameSpy).toHaveBeenCalledTimes(1); - expect(renameSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner2_project2"), "sbranch2"); - - expect(headSpy).toHaveBeenCalledTimes(2); - expect(headSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner1_project1")); - expect(headSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner2_project2")); - - // checking copying node (i.e. cloneNode) correctness - await checkClone(rootFolder); - - // checking checkout information correctness - expect(checkedOutNodeInfo.length).toBe(3); - expect(checkedOutNodeInfo[0]).toStrictEqual({ - node: nodeChain[0], - checkoutInfo: { - sourceBranch: "tbranch1", - sourceGroup: "owner1", - sourceName: "project1", - targetBranch: "tbranch1", - targetGroup: "owner1", - targetName: "project1", - repoDir: `${rootFolder}/owner1_project1`, - merge: false, - }, - branchHead: "abc" - }); - expect(checkedOutNodeInfo[1]).toStrictEqual({ - node: nodeChain[1], - checkoutInfo: { - sourceBranch: "sbranch2", - sourceGroup: "owner2", - sourceName: "project2", - targetBranch: "tbranch2", - targetGroup: "owner2", - targetName: "project2", - repoDir: `${rootFolder}/owner2_project2`, - merge: true, - }, - branchHead: "abc" - }); - expect(checkedOutNodeInfo[2]).toStrictEqual({ - node: nodeChain[2], - checkoutInfo: undefined, - branchHead: "" - }); - }); -}); - -describe.each([ - ["sequential", true], - ["parallel", false], -])("%p: starting project has a PR from forked repository", (_title: string, skipParallelCheckout: boolean) => { - const originalSource: ProjectConfiguration = { - name: "project2-forked", - group: "owner4", - branch: "sbranch2-forked", - repository: "owner4/project2-forked", - }; - const originalTarget: ProjectConfiguration = { - name: "project2", - group: "owner2", - branch: "tbranch2", - repository: "owner2/project2", - }; - const rootFolder = path.join(__dirname, "forked-pr"); - - beforeEach(() => { - jest.spyOn(ConfigurationService.prototype, "getRootFolder").mockImplementation(() => rootFolder); - jest.spyOn(ConfigurationService.prototype, "getSourceProject").mockImplementation(() => originalSource); - jest.spyOn(ConfigurationService.prototype, "getTargetProject").mockImplementation(() => originalTarget); - jest.spyOn(ConfigurationService.prototype, "getProjectTriggeringTheJob").mockImplementation(() => nodeChain[1]); - jest.spyOn(ConfigurationService.prototype, "skipParallelCheckout").mockImplementation(() => skipParallelCheckout); - }); - - afterEach(() => { - rmSync(rootFolder, { recursive: true }); - }); - - test("PR exists from node_forked:source_branch to node:mapped_branch", async () => { - moctokit.rest.repos.listForks({ - owner: "owner1", - repo: "project1" - }).reply({status: 200, data: [{name: "project1-forked", owner: {login: "owner4"}}]}); - moctokit.rest.repos.listForks({ - owner: "owner2", - repo: "project2" - }).reply({status: 200, data: [{name: "project2-forked", owner: {login: "owner4"}}]}); - - moctokit.rest.pulls.list({owner: "owner1", repo: "project1", state: "open", head: "owner4:sbranch2-forked", base: "tbranch1"}).reply({status: 200, data: [{title: "pr"}]}); - moctokit.rest.pulls.list({owner: "owner2", repo: "project2", state: "open", head: "owner4:sbranch2-forked", base: "tbranch2"}).reply({status: 200, data: [{title: "pr"}]}); - - - const checkedOutNodeInfo = await checkoutService.checkoutDefinitionTree(); - - // checking clone and merge correctness - expect(cloneSpy).toHaveBeenCalledTimes(2); - expect(cloneSpy).toHaveBeenCalledWith(`${serverUrl}/owner1/project1`, path.join(rootFolder, "owner1_project1"), "tbranch1"); - expect(cloneSpy).toHaveBeenCalledWith(`${serverUrl}/owner2/project2`, path.join(rootFolder, "owner2_project2"), "tbranch2"); - - expect(mergeSpy).toHaveBeenCalledTimes(2); - expect(mergeSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner1_project1"), `${serverUrl}/owner4/project1-forked`, "sbranch2-forked"); - expect(mergeSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner2_project2"), `${serverUrl}/owner4/project2-forked`, "sbranch2-forked"); - - expect(renameSpy).toHaveBeenCalledTimes(2); - expect(renameSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner1_project1"), "sbranch2-forked"); - expect(renameSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner2_project2"), "sbranch2-forked"); - - expect(headSpy).toHaveBeenCalledTimes(2); - expect(headSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner1_project1")); - expect(headSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner2_project2")); - - // checking copying node (i.e. cloneNode) correctness - await checkClone(rootFolder); - - // checking checkout information correctness - expect(checkedOutNodeInfo.length).toBe(3); - expect(checkedOutNodeInfo[0]).toStrictEqual({ - node: nodeChain[0], - checkoutInfo: { - sourceBranch: "sbranch2-forked", - sourceGroup: "owner4", - sourceName: "project1-forked", - targetBranch: "tbranch1", - targetGroup: "owner1", - targetName: "project1", - repoDir: `${rootFolder}/owner1_project1`, - merge: true, - }, - branchHead: "abc" - }); - expect(checkedOutNodeInfo[1]).toStrictEqual({ - node: nodeChain[1], - checkoutInfo: { - sourceBranch: "sbranch2-forked", - sourceGroup: "owner4", - sourceName: "project2-forked", - targetBranch: "tbranch2", - targetGroup: "owner2", - targetName: "project2", - repoDir: `${rootFolder}/owner2_project2`, - merge: true, - }, - branchHead: "abc" - }); - expect(checkedOutNodeInfo[2]).toStrictEqual({ - node: nodeChain[2], - checkoutInfo: undefined, - branchHead: "" - }); - }); - - test("PR exists from node:source_branch to node:mapped_branch", async () => { - moctokit.rest.repos.listForks({ - owner: "owner1", - repo: "project1" - }).reply({status: 200, data: []}); - moctokit.rest.repos.listForks({ - owner: "owner2", - repo: "project2" - }).reply({status: 200, data: [{name: "project2-forked", owner: {login: "owner4"}}]}); - - moctokit.rest.pulls.list({owner: "owner1", repo: "project1", state: "open", head: "owner1:sbranch2-forked", base: "tbranch1"}).reply({status: 200, data: [{title: "pr"}]}); - moctokit.rest.pulls.list({owner: "owner2", repo: "project2", state: "open", head: "owner4:sbranch2-forked", base: "tbranch2"}).reply({status: 200, data: [{title: "pr"}]}); - - const checkedOutNodeInfo = await checkoutService.checkoutDefinitionTree(); - - // checking clone and merge correctness - expect(cloneSpy).toHaveBeenCalledTimes(2); - expect(cloneSpy).toHaveBeenCalledWith(`${serverUrl}/owner1/project1`, path.join(rootFolder, "owner1_project1"), "tbranch1"); - expect(cloneSpy).toHaveBeenCalledWith(`${serverUrl}/owner2/project2`, path.join(rootFolder, "owner2_project2"), "tbranch2"); - - expect(mergeSpy).toHaveBeenCalledTimes(2); - expect(mergeSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner1_project1"), `${serverUrl}/owner1/project1`, "sbranch2-forked"); - expect(mergeSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner2_project2"), `${serverUrl}/owner4/project2-forked`, "sbranch2-forked"); - - expect(renameSpy).toHaveBeenCalledTimes(2); - expect(renameSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner1_project1"), "sbranch2-forked"); - expect(renameSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner2_project2"), "sbranch2-forked"); - - expect(headSpy).toHaveBeenCalledTimes(2); - expect(headSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner1_project1")); - expect(headSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner2_project2")); - - // checking copying node (i.e. cloneNode) correctness - await checkClone(rootFolder); - - // checking checkout information correctness - expect(checkedOutNodeInfo.length).toBe(3); - expect(checkedOutNodeInfo[0]).toStrictEqual({ - node: nodeChain[0], - checkoutInfo: { - sourceBranch: "sbranch2-forked", - sourceGroup: "owner1", - sourceName: "project1", - targetBranch: "tbranch1", - targetGroup: "owner1", - targetName: "project1", - repoDir: `${rootFolder}/owner1_project1`, - merge: true, - }, - branchHead: "abc" - }); - expect(checkedOutNodeInfo[1]).toStrictEqual({ - node: nodeChain[1], - checkoutInfo: { - sourceBranch: "sbranch2-forked", - sourceGroup: "owner4", - sourceName: "project2-forked", - targetBranch: "tbranch2", - targetGroup: "owner2", - targetName: "project2", - repoDir: `${rootFolder}/owner2_project2`, - merge: true, - }, - branchHead: "abc" - }); - expect(checkedOutNodeInfo[2]).toStrictEqual({ - node: nodeChain[2], - checkoutInfo: undefined, - branchHead: "" - }); - }); - - test("No PR", async () => { - moctokit.rest.repos.listForks({ - owner: "owner1", - repo: "project1" - }).reply({status: 200, data: []}); - moctokit.rest.repos.listForks({ - owner: "owner2", - repo: "project2" - }).reply({status: 200, data: [{name: "project2-forked", owner: {login: "owner4"}}]}); - - moctokit.rest.pulls.list({owner: "owner1", repo: "project1", state: "open", head: "owner1:sbranch2-forked", base: "tbranch1"}).reply({status: 200, data: []}); - moctokit.rest.pulls.list({owner: "owner2", repo: "project2", state: "open", head: "owner4:sbranch2-forked", base: "tbranch2"}).reply({status: 200, data: [{title: "pr"}]}); - - - const checkedOutNodeInfo = await checkoutService.checkoutDefinitionTree(); - - // checking clone and merge correctness - expect(cloneSpy).toHaveBeenCalledTimes(2); - expect(cloneSpy).toHaveBeenCalledWith(`${serverUrl}/owner1/project1`, path.join(rootFolder, "owner1_project1"), "tbranch1"); - expect(cloneSpy).toHaveBeenCalledWith(`${serverUrl}/owner2/project2`, path.join(rootFolder, "owner2_project2"), "tbranch2"); - - expect(mergeSpy).toHaveBeenCalledTimes(1); - expect(mergeSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner2_project2"), `${serverUrl}/owner4/project2-forked`, "sbranch2-forked"); - - expect(renameSpy).toHaveBeenCalledTimes(1); - expect(renameSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner2_project2"), "sbranch2-forked"); - - expect(headSpy).toHaveBeenCalledTimes(2); - expect(headSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner1_project1")); - expect(headSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner2_project2")); - - // checking copying node (i.e. cloneNode) correctness - await checkClone(rootFolder); - - // checking checkout information correctness - expect(checkedOutNodeInfo.length).toBe(3); - expect(checkedOutNodeInfo[0]).toStrictEqual({ - node: nodeChain[0], - checkoutInfo: { - sourceBranch: "tbranch1", - sourceGroup: "owner1", - sourceName: "project1", - targetBranch: "tbranch1", - targetGroup: "owner1", - targetName: "project1", - repoDir: `${rootFolder}/owner1_project1`, - merge: false, - }, - branchHead: "abc" - }); - expect(checkedOutNodeInfo[1]).toStrictEqual({ - node: nodeChain[1], - checkoutInfo: { - sourceBranch: "sbranch2-forked", - sourceGroup: "owner4", - sourceName: "project2-forked", - targetBranch: "tbranch2", - targetGroup: "owner2", - targetName: "project2", - repoDir: `${rootFolder}/owner2_project2`, - merge: true, - }, - branchHead: "abc" - }); - expect(checkedOutNodeInfo[2]).toStrictEqual({ - node: nodeChain[2], - checkoutInfo: undefined, - branchHead: "" - }); - }); -}); - -describe.each([ - ["sequential", true], - ["parallel", false], -])("%p: starting project has no PR", (_title: string, skipParallelCheckout: boolean) => { - const originalSource: ProjectConfiguration = { - name: "project2", - group: "owner2", - branch: "tbranch2", - repository: "owner2/project2", - }; - const originalTarget: ProjectConfiguration = { - name: "project2", - group: "owner2", - branch: "tbranch2", - repository: "owner2/project2", - }; - - const rootFolder = path.join(__dirname, "no-pr"); - - beforeEach(() => { - jest.spyOn(ConfigurationService.prototype, "getRootFolder").mockImplementation(() => rootFolder); - jest.spyOn(ConfigurationService.prototype, "getSourceProject").mockImplementation(() => originalSource); - jest.spyOn(ConfigurationService.prototype, "getTargetProject").mockImplementation(() => originalTarget); - jest.spyOn(ConfigurationService.prototype, "getProjectTriggeringTheJob").mockImplementation(() => nodeChain[1]); - jest.spyOn(ConfigurationService.prototype, "skipParallelCheckout").mockImplementation(() => skipParallelCheckout); - }); - - afterEach(() => { - rmSync(rootFolder, { recursive: true }); - }); - - test("PR exists from node_forked:source_branch to node:mapped_branch", async () => { - moctokit.rest.repos.listForks({ - owner: "owner1", - repo: "project1" - }).reply({status: 200, data: [{name: "project1-forked", owner: {login: "owner2"}}]}); - moctokit.rest.repos.get({ - owner: "owner2", - repo: "project2" - }).reply({status: 200, data: {}}); - - moctokit.rest.pulls.list({owner: "owner1", repo: "project1", state: "open", head: "owner2:tbranch2", base: "tbranch1"}).reply({status: 200, data: [{title: "pr"}]}); - moctokit.rest.pulls.list({owner: "owner2", repo: "project2", state: "open", head: "owner2:tbranch2", base: "tbranch2"}).reply({status: 200, data: []}); - moctokit.rest.pulls.list({owner: "owner2", repo: "project2", state: "open", head: "owner2:tbranch2", base: "tbranch2"}).reply({status: 200, data: []}); - - const checkedOutNodeInfo = await checkoutService.checkoutDefinitionTree(); - - // checking clone and merge correctness - expect(cloneSpy).toHaveBeenCalledTimes(2); - expect(cloneSpy).toHaveBeenCalledWith(`${serverUrl}/owner1/project1`, path.join(rootFolder, "owner1_project1"), "tbranch1"); - expect(cloneSpy).toHaveBeenCalledWith(`${serverUrl}/owner2/project2`, path.join(rootFolder, "owner2_project2"), "tbranch2"); - - expect(mergeSpy).toHaveBeenCalledTimes(1); - expect(mergeSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner1_project1"), `${serverUrl}/owner2/project1-forked`, "tbranch2"); - - expect(renameSpy).toHaveBeenCalledTimes(1); - expect(renameSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner1_project1"), "tbranch2"); - - expect(headSpy).toHaveBeenCalledTimes(2); - expect(headSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner1_project1")); - expect(headSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner2_project2")); - - // checking copying node (i.e. cloneNode) correctness - await checkClone(rootFolder); - - // checking checkout information correctness - expect(checkedOutNodeInfo.length).toBe(3); - expect(checkedOutNodeInfo[0]).toStrictEqual({ - node: nodeChain[0], - checkoutInfo: { - sourceBranch: "tbranch2", - sourceGroup: "owner2", - sourceName: "project1-forked", - targetBranch: "tbranch1", - targetGroup: "owner1", - targetName: "project1", - repoDir: `${rootFolder}/owner1_project1`, - merge: true, - }, - branchHead: "abc" - }); - expect(checkedOutNodeInfo[1]).toStrictEqual({ - node: nodeChain[1], - checkoutInfo: { - sourceBranch: "tbranch2", - sourceGroup: "owner2", - sourceName: "project2", - targetBranch: "tbranch2", - targetGroup: "owner2", - targetName: "project2", - repoDir: `${rootFolder}/owner2_project2`, - merge: false, - }, - branchHead: "abc" - }); - expect(checkedOutNodeInfo[2]).toStrictEqual({ - node: nodeChain[2], - checkoutInfo: undefined, - branchHead: "" - }); - }); - - test("PR exists from node:source_branch to node:mapped_branch", async () => { - moctokit.rest.repos.listForks({ - owner: "owner1", - repo: "project1" - }).reply({status: 200, data: [{name: "project1-forked", owner: {login: "owner4"}}]}); - moctokit.rest.repos.get({ - owner: "owner2", - repo: "project2" - }).reply({status: 200, data: {}}); - - moctokit.rest.pulls.list({owner: "owner1", repo: "project1", state: "open", head: "owner1:tbranch2", base: "tbranch1"}).reply({status: 200, data: [{title: "pr"}]}); - moctokit.rest.pulls.list({owner: "owner2", repo: "project2", state: "open", head: "owner2:tbranch2", base: "tbranch2"}).reply({status: 200, data: []}); - moctokit.rest.pulls.list({owner: "owner2", repo: "project2", state: "open", head: "owner2:tbranch2", base: "tbranch2"}).reply({status: 200, data: []}); - - const checkedOutNodeInfo = await checkoutService.checkoutDefinitionTree(); - - // checking clone and merge correctness - expect(cloneSpy).toHaveBeenCalledTimes(2); - expect(cloneSpy).toHaveBeenCalledWith(`${serverUrl}/owner1/project1`, path.join(rootFolder, "owner1_project1"), "tbranch1"); - expect(cloneSpy).toHaveBeenCalledWith(`${serverUrl}/owner2/project2`, path.join(rootFolder, "owner2_project2"), "tbranch2"); - - expect(mergeSpy).toHaveBeenCalledTimes(1); - expect(mergeSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner1_project1"), `${serverUrl}/owner1/project1`, "tbranch2"); - - expect(renameSpy).toHaveBeenCalledTimes(1); - expect(renameSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner1_project1"), "tbranch2"); - - expect(headSpy).toHaveBeenCalledTimes(2); - expect(headSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner1_project1")); - expect(headSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner2_project2")); - - // checking copying node (i.e. cloneNode) correctness - await checkClone(rootFolder); - - // checking checkout information correctness - expect(checkedOutNodeInfo.length).toBe(3); - expect(checkedOutNodeInfo[0]).toStrictEqual({ - node: nodeChain[0], - checkoutInfo: { - sourceBranch: "tbranch2", - sourceGroup: "owner1", - sourceName: "project1", - targetBranch: "tbranch1", - targetGroup: "owner1", - targetName: "project1", - repoDir: `${rootFolder}/owner1_project1`, - merge: true, - }, - branchHead: "abc" - }); - expect(checkedOutNodeInfo[1]).toStrictEqual({ - node: nodeChain[1], - checkoutInfo: { - sourceBranch: "tbranch2", - sourceGroup: "owner2", - sourceName: "project2", - targetBranch: "tbranch2", - targetGroup: "owner2", - targetName: "project2", - repoDir: `${rootFolder}/owner2_project2`, - merge: false, - }, - branchHead: "abc" - }); - expect(checkedOutNodeInfo[2]).toStrictEqual({ - node: nodeChain[2], - checkoutInfo: undefined, - branchHead: "" - }); - }); - - test("No PR", async () => { - moctokit.rest.repos.listForks({ - owner: "owner1", - repo: "project1" - }).reply({status: 200, data: []}); - moctokit.rest.repos.get({ - owner: "owner2", - repo: "project2" - }).reply({status: 200, data: {}}); - - moctokit.rest.pulls.list({owner: "owner1", repo: "project1", state: "open", head: "owner1:tbranch2", base: "tbranch1"}).reply({status: 200, data: []}); - moctokit.rest.pulls.list({owner: "owner2", repo: "project2", state: "open", head: "owner2:tbranch2", base: "tbranch2"}).reply({status: 200, data: []}); - moctokit.rest.pulls.list({owner: "owner2", repo: "project2", state: "open", head: "owner2:tbranch2", base: "tbranch2"}).reply({status: 200, data: []}); - - - const checkedOutNodeInfo = await checkoutService.checkoutDefinitionTree(); - - // checking clone and merge correctness - expect(cloneSpy).toHaveBeenCalledTimes(2); - expect(cloneSpy).toHaveBeenCalledWith(`${serverUrl}/owner1/project1`, path.join(rootFolder, "owner1_project1"), "tbranch1"); - expect(cloneSpy).toHaveBeenCalledWith(`${serverUrl}/owner2/project2`, path.join(rootFolder, "owner2_project2"), "tbranch2"); - - expect(mergeSpy).toHaveBeenCalledTimes(0); - expect(renameSpy).toHaveBeenCalledTimes(0); - - expect(headSpy).toHaveBeenCalledTimes(2); - expect(headSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner1_project1")); - expect(headSpy).toHaveBeenCalledWith(path.join(rootFolder, "owner2_project2")); - - // checking copying node (i.e. cloneNode) correctness - await checkClone(rootFolder); - - // checking checkout information correctness - expect(checkedOutNodeInfo.length).toBe(3); - expect(checkedOutNodeInfo[0]).toStrictEqual({ - node: nodeChain[0], - checkoutInfo: { - sourceBranch: "tbranch1", - sourceGroup: "owner1", - sourceName: "project1", - targetBranch: "tbranch1", - targetGroup: "owner1", - targetName: "project1", - repoDir: `${rootFolder}/owner1_project1`, - merge: false, - }, - branchHead: "abc" - }); - expect(checkedOutNodeInfo[1]).toStrictEqual({ - node: nodeChain[1], - checkoutInfo: { - sourceBranch: "tbranch2", - sourceGroup: "owner2", - sourceName: "project2", - targetBranch: "tbranch2", - targetGroup: "owner2", - targetName: "project2", - repoDir: `${rootFolder}/owner2_project2`, - merge: false, - }, - branchHead: "abc" - }); - expect(checkedOutNodeInfo[2]).toStrictEqual({ - node: nodeChain[2], - checkoutInfo: undefined, - branchHead: "" - }); - }); -}); diff --git a/test/unitary/service/checkout/helpers.ts b/test/unitary/service/checkout/helpers.ts deleted file mode 100644 index 3a575d83..00000000 --- a/test/unitary/service/checkout/helpers.ts +++ /dev/null @@ -1,79 +0,0 @@ -import path from "path"; -import { mkdirSync } from "fs"; -import { writeFile, readFile } from "fs/promises"; -import { Node } from "@kie/build-chain-configuration-reader"; -import { defaultNodeValue } from "@bc/domain/node"; - -export const nodeChain: Node[] = [ - { - ...defaultNodeValue, - project: "owner1/project1", - clone: ["clone-1", "clone-2"], - mapping: { - dependant: { - default: [] - }, - dependencies: { - default: [] - }, - exclude: [] - }, - }, - { - ...defaultNodeValue, - project: "owner2/project2", - mapping: { - exclude: [], - dependant: { - default: [] - }, - dependencies: { - default: [ - { - source: "tbranch2", - target: "main", - }, - ], - "owner1/project1": [ - { - source: "tbranch2", - target: "tbranch1", - }, - ], - }, - }, - }, - { - ...defaultNodeValue, - project: "owner3/project3", - }, -]; - -export const serverUrl = "https://github.com"; -export const filename = "test.txt"; -export const depth1Dir = "depth1"; -export const depth2Dir = "depth2"; -export const filedata = "test"; -export const clones = ["clone-1", "clone-2"]; - -export const fakeClone = async (to: string) => { - mkdirSync(path.join(to, depth1Dir, depth2Dir), { recursive: true }); - await Promise.all([ - writeFile(path.join(to, filename), filedata), - writeFile(path.join(to, depth1Dir, depth2Dir, filename), filedata), - writeFile(path.join(to, depth1Dir, filename), filedata), - ]); -}; - -export const checkClone = async (rootFolder: string) => { - const promises: Promise[] = []; - clones.forEach(clone => { - const fullClonePath = path.join(rootFolder, "owner1_project1", clone); - promises.push( - expect(readFile(path.join(fullClonePath, filename), "utf8")).resolves.toBe(filedata), - expect(readFile(path.join(fullClonePath, depth1Dir, filename), "utf8")).resolves.toBe(filedata), - expect(readFile(path.join(fullClonePath, depth1Dir, depth2Dir, filename), "utf8")).resolves.toBe(filedata) - ); - }); - await Promise.all(promises); -}; diff --git a/test/unitary/service/command/execute-command-service.test.ts b/test/unitary/service/command/execute-command-service.test.ts deleted file mode 100644 index 33ef8e1a..00000000 --- a/test/unitary/service/command/execute-command-service.test.ts +++ /dev/null @@ -1,395 +0,0 @@ -import "reflect-metadata"; -import { ExecuteCommandService } from "@bc/service/command/execute-command-service"; -import { CommandTreatmentDelegator } from "@bc/service/command/treatment/command-treatment-delegator"; -import { CommandExecutorDelegator } from "@bc/service/command/executor/command-executor-delegator"; -import { ExecuteCommandResult, ExecutionResult } from "@bc/domain/execute-command-result"; -import { ExecutionPhase } from "@bc/domain/execution-phase"; -import { defaultNodeValue } from "@bc/domain/node"; -import { NodeExecution, NodeExecutionLevel } from "@bc/domain/node-execution"; -import { ConfigurationService } from "@bc/service/config/configuration-service"; -import { Node } from "@kie/build-chain-configuration-reader"; -import Container from "typedi"; -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; -import { ExecuteNodeResult } from "@bc/domain/execute-node-result"; -import { Logger } from "@bc/service/logger/logger"; -import { BaseLoggerService } from "@bc/service/logger/base-logger-service"; - -// disable logs -jest.spyOn(global.console, "log"); -jest.mock("@bc/service/command/treatment/command-treatment-delegator"); -jest.mock("@bc/service/command/executor/command-executor-delegator"); -jest.mock("@bc/service/config/configuration-service"); - -// entry point for logging doesn't make a difference -Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.CLI); - -describe("ExecuteCommandService", () => { - test("executeCommand without cwd", async () => { - // Arrange - const commandTreatmentDelegator = jest.mocked(CommandTreatmentDelegator.prototype, true); - const commandExecutorDelegator = jest.mocked(CommandExecutorDelegator.prototype, true); - const configurationService = new ConfigurationService(); - - (ConfigurationService.prototype.getTreatmentOptions as jest.Mocked).mockReturnValueOnce("treatmentOptions"); - (CommandTreatmentDelegator.prototype.treatCommand as jest.Mocked).mockReturnValue("command x treated"); - (CommandExecutorDelegator.prototype.executeCommand as jest.Mocked).mockReturnValue({ result: ExecutionResult.OK }); - - const executeCommandService = new ExecuteCommandService(commandTreatmentDelegator, commandExecutorDelegator, configurationService); - - // Act - const executeCommandResultPromise = await executeCommandService.executeCommand("command X"); - - // Assert - expect(executeCommandResultPromise).toStrictEqual({ result: ExecutionResult.OK }); - expect(CommandTreatmentDelegator.prototype.treatCommand).toHaveBeenCalledTimes(1); - expect(CommandTreatmentDelegator.prototype.treatCommand).toHaveBeenCalledWith("command X", "treatmentOptions"); - expect(CommandExecutorDelegator.prototype.executeCommand).toHaveBeenCalledTimes(1); - expect(CommandExecutorDelegator.prototype.executeCommand).toHaveBeenCalledWith("command x treated", undefined); - }); - - test("executeCommand with cwd", async () => { - // Arrange - const commandTreatmentDelegator = jest.mocked(CommandTreatmentDelegator.prototype, true); - const commandExecutorDelegator = jest.mocked(CommandExecutorDelegator.prototype, true); - const configurationService = new ConfigurationService(); - - (ConfigurationService.prototype.getTreatmentOptions as jest.Mocked).mockReturnValueOnce("treatmentOptions"); - (CommandTreatmentDelegator.prototype.treatCommand as jest.Mocked).mockReturnValue("command x treated"); - (CommandExecutorDelegator.prototype.executeCommand as jest.Mocked).mockReturnValue({ result: ExecutionResult.OK }); - - const executeCommandService = new ExecuteCommandService(commandTreatmentDelegator, commandExecutorDelegator, configurationService); - - // Act - const executeCommandResultPromise = await executeCommandService.executeCommand("command X", { cwd: "cwd" }); - - // Assert - expect(executeCommandResultPromise).toStrictEqual({ result: ExecutionResult.OK }); - expect(CommandTreatmentDelegator.prototype.treatCommand).toHaveBeenCalledTimes(1); - expect(CommandTreatmentDelegator.prototype.treatCommand).toHaveBeenCalledWith("command X", "treatmentOptions"); - expect(CommandExecutorDelegator.prototype.executeCommand).toHaveBeenCalledTimes(1); - expect(CommandExecutorDelegator.prototype.executeCommand).toHaveBeenCalledWith("command x treated", {cwd: "cwd"}); - }); -}); - -describe("executeNodeCommands", () => { - test("empty nodes", async () => { - // Arrange - const commandTreatmentDelegator = jest.mocked(CommandTreatmentDelegator.prototype, true); - const commandExecutorDelegator = jest.mocked(CommandExecutorDelegator.prototype, true); - const configurationService = new ConfigurationService(); - - const executeCommandService = new ExecuteCommandService(commandTreatmentDelegator, commandExecutorDelegator, configurationService); - jest.spyOn(executeCommandService, "getNodeCommands").mockReturnValue(undefined); - - // Act - const result = await executeCommandService.executeNodeCommands({node: defaultNodeValue}); - - // Arrange - expect(result).toStrictEqual([ - {node: defaultNodeValue, executeCommandResults: []}, - {node: defaultNodeValue, executeCommandResults: []}, - {node: defaultNodeValue, executeCommandResults: []} - ]); - }); - - test.each([ - [NodeExecutionLevel.UPSTREAM, false, "cwd", ["upstream"], ["upstream", "", ""]], - [NodeExecutionLevel.DOWNSTREAM, false, "cwd", ["downstream"], ["", "", "downstream"]], - [NodeExecutionLevel.CURRENT, false, undefined, ["current"], ["", "current", ""]], - [NodeExecutionLevel.CURRENT, true, undefined, [], ["", "current", ""]], - ])("execute node %p skipExecution %p", async (nodeExecutionLevel: NodeExecutionLevel, skipExecution: boolean, cwd: string | undefined, expectedCalls: string[], expectedResult: string[]) => { - const node: Node = { - ...defaultNodeValue, - project: "project1", - before: { - upstream: ["upstream"], - current: [], - downstream: [], - }, - commands: { - upstream: [], - current: ["current"], - downstream: [], - }, - after: { - upstream: [], - current: [], - downstream: ["downstream"], - }, - }; - - const commandTreatmentDelegator = jest.mocked(CommandTreatmentDelegator.prototype, true); - const commandExecutorDelegator = jest.mocked(CommandExecutorDelegator.prototype, true); - const configurationService = jest.mocked(ConfigurationService.prototype, true); - (CommandExecutorDelegator.prototype.executeCommand as jest.Mocked).mockResolvedValue({ - startingDate: 1, - endingDate: 2, - time: 3, - result: ExecutionResult.OK, - command: "commandx", - errorMessage: "" - }); - (ConfigurationService.prototype.getNodeExecutionLevel as jest.Mocked).mockReturnValue(nodeExecutionLevel); - (ConfigurationService.prototype.skipExecution as jest.Mocked).mockReturnValue(skipExecution); - const executeCommandService = new ExecuteCommandService(commandTreatmentDelegator, commandExecutorDelegator, configurationService); - - jest.spyOn(executeCommandService, "getNodeCommands").mockReturnValueOnce(node["before"]![`${nodeExecutionLevel}`]); - jest.spyOn(executeCommandService, "getNodeCommands").mockReturnValueOnce(node["commands"]![`${nodeExecutionLevel}`]); - jest.spyOn(executeCommandService, "getNodeCommands").mockReturnValueOnce(node["after"]![`${nodeExecutionLevel}`]); - - const result = await executeCommandService.executeNodeCommands({node, cwd}); - - expect(commandExecutorDelegator.executeCommand).toHaveBeenCalledTimes(expectedCalls.length); - expect(commandTreatmentDelegator.treatCommand).toHaveBeenCalledTimes(expectedCalls.length); - expectedCalls.forEach(call => expect(commandTreatmentDelegator.treatCommand).toHaveBeenCalledWith(call, undefined)); - expectedCalls.forEach(_call => expect(commandExecutorDelegator.executeCommand).toHaveBeenCalledWith(undefined, { cwd })); - expect(result.map(res => res.executeCommandResults)).toStrictEqual( - expectedResult.map(res => (res !== "" ? [{ - startingDate: skipExecution ? expect.any(Number) : 1, - endingDate: skipExecution ? expect.any(Number) : 2, - time: skipExecution ? 0 : 3, - result: skipExecution ? ExecutionResult.SKIP : ExecutionResult.OK, - command: skipExecution ? res : "commandx", - errorMessage: "" - }] : [])) - ); - }); -}); - -describe("getNodeCommands", () => { - let executeCommandService: ExecuteCommandService; - - beforeEach(() => { - const commandTreatmentDelegator = jest.mocked(CommandTreatmentDelegator.prototype, true); - const commandExecutorDelegator = jest.mocked(CommandExecutorDelegator.prototype, true); - const configurationService = jest.mocked(ConfigurationService.prototype, true); - executeCommandService = new ExecuteCommandService(commandTreatmentDelegator, commandExecutorDelegator, configurationService); - }); - - test.each([ - [ - "execution phase defined but no commands found", - { - current: [], - upstream: [], - downstream: [] - }, - NodeExecutionLevel.DOWNSTREAM, - [] - ], - [ - "execution phase defined but no commands for given level. use current", - { - current: ["current"], - upstream: [], - downstream: [] - }, - NodeExecutionLevel.DOWNSTREAM, - ["current"] - ], - [ - "execution phase defined and command for given level defined", - { - current: [], - upstream: ["upstream"], - downstream: [] - }, - NodeExecutionLevel.UPSTREAM, - ["upstream"] - ], - [ - "execution phase not defined", - undefined, - NodeExecutionLevel.UPSTREAM, - undefined - ] - ])("%p", (_title, after, nodeExecutionLevel, expectedOutput) => { - const node: Node = { - ...defaultNodeValue, - after - }; - const commands = executeCommandService.getNodeCommands(node, ExecutionPhase.AFTER, nodeExecutionLevel); - expect(commands).toStrictEqual(expectedOutput); - }); -}); - -describe("executeNodeChain", () => { - let executeCommandService: ExecuteCommandService; - beforeEach(() => { - const commandTreatmentDelegator = jest.mocked(CommandTreatmentDelegator.prototype, true); - const commandExecutorDelegator = jest.mocked(CommandExecutorDelegator.prototype, true); - const configurationService = new ConfigurationService(); - jest.spyOn(BaseLoggerService.prototype, "logger", "get").mockImplementation(() => ({log: () => undefined, emptyLine: () => undefined}) as Logger); - - executeCommandService = new ExecuteCommandService(commandTreatmentDelegator, commandExecutorDelegator, configurationService); - }); - - test.each([ - ["with print results", jest.fn((_node: ExecuteNodeResult[]) => undefined)], - ["without print results", undefined] - ])("sequential: %p", async (_title, printFn) => { - jest.spyOn(ConfigurationService.prototype, "isParallelExecutionEnabled").mockReturnValueOnce(false); - const execSpy = jest.spyOn(executeCommandService, "executeNodeCommands").mockResolvedValue([]); - - const nodeChain: NodeExecution[] = [ - { - node: { - ...defaultNodeValue, - project: "project1" - } - }, - { - node: { - ...defaultNodeValue, - project: "project2" - } - } - ]; - - await executeCommandService.executeNodeChain(nodeChain, printFn); - expect(execSpy).toHaveBeenCalledTimes(2); - if (printFn) { - expect(printFn).toHaveBeenCalledTimes(2); - } - }); - - test.each([ - ["with print results", jest.fn((_node: ExecuteNodeResult[]) => undefined)], - ["without print results", undefined] - ])("parallel: %p", async (_title, printFn) => { - jest.spyOn(ConfigurationService.prototype, "isParallelExecutionEnabled").mockReturnValueOnce(true); - const execSpy = jest.spyOn(executeCommandService, "executeNodeCommands").mockResolvedValue([]); - const promiseSpy = jest.spyOn(Promise, "all"); - const nodeChain: NodeExecution[] = [ - { - node: { - ...defaultNodeValue, - project: "project1", - depth: 0 - } - }, - { - node: { - ...defaultNodeValue, - project: "project2", - depth: 1 - } - }, - { - node: { - ...defaultNodeValue, - project: "project3", - depth: 1 - } - }, - { - node: { - ...defaultNodeValue, - project: "project4", - depth: 2 - } - } - ]; - - await executeCommandService.executeNodeChain(nodeChain, printFn); - expect(execSpy).toHaveBeenCalledTimes(4); - if (printFn) { - expect(printFn).toHaveBeenCalledTimes(4); - } - - // check the number of arguments passed to Promise.all - expect(promiseSpy.mock.calls[0][0].length).toBe(1); - expect(promiseSpy.mock.calls[1][0].length).toBe(2); - expect(promiseSpy.mock.calls[2][0].length).toBe(1); - - // first call to execSpy must be for the first node - expect(execSpy.mock.calls[0][0]).toStrictEqual(nodeChain[0]); - - // the second and third execSpy must be for 2nd and 3rd node (can be in any order due to promises) - expect([execSpy.mock.calls[1][0], execSpy.mock.calls[2][0]]).toContain(nodeChain[1]); - expect([execSpy.mock.calls[1][0], execSpy.mock.calls[2][0]]).toContain(nodeChain[2]); - - // last call to execSpy must be for the last node - expect(execSpy.mock.calls[3][0]).toStrictEqual(nodeChain[3]); - promiseSpy.mockRestore(); - }); - - test.each([ - ["sequential: fail fast", false, false, 1], - ["sequential: fail at end", false, true, 2], - ["parallel: fail fast", true, false, 1], - ["parallel: fail at end", true, true, 2], - ])("node: %p", async (_title, isParallel, failAtEnd, numExecCalls) => { - jest.spyOn(ConfigurationService.prototype, "isParallelExecutionEnabled").mockReturnValueOnce(isParallel); - jest.spyOn(ConfigurationService.prototype, "failAtEnd").mockReturnValueOnce(failAtEnd); - const execSpy = jest.spyOn(executeCommandService, "executeNodeCommands"); - execSpy.mockResolvedValueOnce([{executeCommandResults: [{result: ExecutionResult.NOT_OK}]} as unknown as ExecuteNodeResult]); - execSpy.mockResolvedValueOnce([{executeCommandResults: [{result: ExecutionResult.OK}]} as unknown as ExecuteNodeResult]); - - const nodeChain: NodeExecution[] = [ - { - node: { - ...defaultNodeValue, - project: "project1", - depth: 0 - } - }, - { - node: { - ...defaultNodeValue, - project: "project2", - depth: 1 - } - } - ]; - - await executeCommandService.executeNodeChain(nodeChain, undefined); - expect(execSpy).toHaveBeenCalledTimes(numExecCalls); - - }); - - test.each([ - [ - "before: sequential: fail fast", - false, false, ExecutionResult.NOT_OK, ExecutionResult.OK, - [ExecutionResult.NOT_OK, ExecutionResult.SKIP, ExecutionResult.SKIP] - ], - [ - "before: sequential: fail at end", - false, true, ExecutionResult.NOT_OK, ExecutionResult.NOT_OK, - [ExecutionResult.NOT_OK, ExecutionResult.NOT_OK, ExecutionResult.OK] - ], - [ - "current: parallel: fail fast", - true, false, ExecutionResult.OK, ExecutionResult.NOT_OK, - [ExecutionResult.OK, ExecutionResult.NOT_OK, ExecutionResult.SKIP] - ], - [ - "current: parallel: fail at end", - true, true, ExecutionResult.OK, ExecutionResult.NOT_OK, - [ExecutionResult.OK, ExecutionResult.NOT_OK, ExecutionResult.OK] - ], - ])("phase: %p", async (_title, isParallel, failAtEnd, beforeResult, currentResult, expectedResult) => { - jest.spyOn(ConfigurationService.prototype, "isParallelExecutionEnabled").mockReturnValueOnce(isParallel); - jest.spyOn(ConfigurationService.prototype, "failAtEnd").mockReturnValue(failAtEnd); - jest.spyOn(executeCommandService, "getNodeCommands").mockReturnValue(["cmd"]); - const execSpy = jest.spyOn(executeCommandService, "executeCommand"); - execSpy.mockResolvedValueOnce({result: beforeResult} as unknown as ExecuteCommandResult); - execSpy.mockResolvedValueOnce({result: currentResult} as unknown as ExecuteCommandResult); - execSpy.mockResolvedValueOnce({result: ExecutionResult.OK} as unknown as ExecuteCommandResult); - - const nodeChain: NodeExecution[] = [ - { - node: { - ...defaultNodeValue, - project: "project1", - depth: 0 - } - } - ]; - - const result = await executeCommandService.executeNodeChain(nodeChain, undefined); - expect(result[0].map(r => r.executeCommandResults[0].result)).toStrictEqual(expectedResult); - }); -}); \ No newline at end of file diff --git a/test/unitary/service/command/executor/bash-executor.test.ts b/test/unitary/service/command/executor/bash-executor.test.ts deleted file mode 100644 index 01082bb3..00000000 --- a/test/unitary/service/command/executor/bash-executor.test.ts +++ /dev/null @@ -1,34 +0,0 @@ -import "reflect-metadata"; -import { BashExecutor } from "@bc/service/command/executor/bash-executor"; -import { Container } from "typedi"; -import * as exec from "@actions/exec"; -jest.mock("@actions/exec"); - -describe("Bash Executor", () => { - test("ok. cwd", async () => { - // Arrange - const bashExecutor = Container.get(BashExecutor); - (exec as jest.Mocked).exec.mockResolvedValueOnce(Promise.resolve(0)); - - // Act - await bashExecutor.execute("command x", {cwd: "whateverthepath"}); - - // Arrange - expect(exec.exec).toHaveBeenCalledTimes(1); - expect(exec.exec).toHaveBeenCalledWith("command x", [], { cwd: "whateverthepath" }); - }); - - test("ok. no cwd", async () => { - // Arrange - const bashExecutor = Container.get(BashExecutor); - (exec as jest.Mocked).exec.mockResolvedValueOnce(Promise.resolve(0)); - - // Act - await bashExecutor.execute("command x"); - - // Arrange - expect(exec.exec).toHaveBeenCalledTimes(1); - expect(exec.exec).toHaveBeenCalledWith("command x", [], undefined); - }); -}); - diff --git a/test/unitary/service/command/executor/command-executor-delegator.test.ts b/test/unitary/service/command/executor/command-executor-delegator.test.ts deleted file mode 100644 index 569bfb69..00000000 --- a/test/unitary/service/command/executor/command-executor-delegator.test.ts +++ /dev/null @@ -1,216 +0,0 @@ -import "reflect-metadata"; -import { CommandExecutorDelegator } from "@bc/service/command/executor/command-executor-delegator"; -import { BashExecutor } from "@bc/service/command/executor/bash-executor"; -import { ExportExecutor } from "@bc/service/command/executor/export-executor"; -import { ExecutionResult } from "@bc/domain/execute-command-result"; -import { hrtimeToMs } from "@bc/utils/date"; -import Container from "typedi"; -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; - -jest.mock("@bc/service/logger/base-logger-service"); -jest.mock("@bc/utils/date"); - -describe("constructor", () => { - // entry point for logging doesn't make a difference - Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.CLI); - - test("ok", () => { - // Arrange - const bashExecutor = jest.mocked(BashExecutor.prototype, true); - const exportExecutor = jest.mocked(ExportExecutor.prototype, true); - - // Act - const commandExecutorDelegator = new CommandExecutorDelegator(bashExecutor, exportExecutor); - - // Assert - expect(commandExecutorDelegator["_bashExecutor"]).toBe(bashExecutor); - expect(commandExecutorDelegator["_exportExecutor"]).toBe(exportExecutor); - }); -}); - -describe("isExport", () => { - test("OK without cwd", async () => { - // Arrange - const command = "export VARIABLE=VALUE"; - - const bashExecutor = jest.mocked(BashExecutor.prototype, true); - const exportExecutor = jest.mocked(ExportExecutor.prototype, true); - const commandExecutorDelegator = new CommandExecutorDelegator(bashExecutor, exportExecutor); - - jest.spyOn(bashExecutor, "execute").mockResolvedValueOnce(); - jest.spyOn(exportExecutor, "execute").mockResolvedValueOnce(); - - (hrtimeToMs as jest.Mocked).mockReturnValue(1000); - - // Act - const result = await commandExecutorDelegator.executeCommand(command); - - // Assert - expect(result).toStrictEqual({ - command: "export VARIABLE=VALUE", - result: ExecutionResult.OK, - startingDate: expect.any(Number), - endingDate: expect.any(Number), - errorMessage: "", - time: 1000, - }); - expect(bashExecutor.execute).toHaveBeenCalledTimes(0); - expect(exportExecutor.execute).toHaveBeenCalledTimes(1); - expect(exportExecutor.execute).toHaveBeenCalledWith(command, undefined); - }); - - test("OK with cwd", async () => { - // Arrange - const command = "export VARIABLE=VALUE"; - const cwd = "path"; - - const bashExecutor = jest.mocked(BashExecutor.prototype, true); - const exportExecutor = jest.mocked(ExportExecutor.prototype, true); - const commandExecutorDelegator = new CommandExecutorDelegator(bashExecutor, exportExecutor); - - jest.spyOn(bashExecutor, "execute").mockResolvedValueOnce(); - jest.spyOn(exportExecutor, "execute").mockResolvedValueOnce(); - - (hrtimeToMs as jest.Mocked).mockReturnValue(2000); - - // Act - const result = await commandExecutorDelegator.executeCommand(command, { cwd }); - - // Assert - expect(result).toStrictEqual({ - command: "export VARIABLE=VALUE", - result: ExecutionResult.OK, - startingDate: expect.any(Number), - endingDate: expect.any(Number), - errorMessage: "", - time: 2000, - }); - expect(bashExecutor.execute).toHaveBeenCalledTimes(0); - expect(exportExecutor.execute).toHaveBeenCalledTimes(1); - expect(exportExecutor.execute).toHaveBeenCalledWith(command, { cwd }); - }); - - test("Error", async () => { - // Arrange - const command = "export VARIABLE=VALUE"; - const errorMessage = "whatever the error message"; - const bashExecutor = jest.mocked(BashExecutor.prototype, true); - - const exportExecutor = jest.mocked(ExportExecutor.prototype, true); - const commandExecutorDelegator = new CommandExecutorDelegator(bashExecutor, exportExecutor); - jest.spyOn(bashExecutor, "execute").mockResolvedValueOnce(); - jest.spyOn(exportExecutor, "execute").mockRejectedValue(new Error(errorMessage)); - - (hrtimeToMs as jest.Mocked).mockReturnValue(1000); - - // Act - const result = await commandExecutorDelegator.executeCommand(command); - - // Assert - expect(result).toStrictEqual({ - command: "export VARIABLE=VALUE", - errorMessage: "whatever the error message", - result: ExecutionResult.NOT_OK, - startingDate: expect.any(Number), - endingDate: expect.any(Number), - time: 1000 - }); - expect(bashExecutor.execute).toHaveBeenCalledTimes(0); - expect(exportExecutor.execute).toHaveBeenCalledTimes(1); - expect(exportExecutor.execute).toHaveBeenCalledWith(command, undefined); - }); -}); - -describe("not export command", () => { - test("OK without cwd", async () => { - // Arrange - const command = "whatever the command"; - - const bashExecutor = jest.mocked(BashExecutor.prototype, true); - const exportExecutor = jest.mocked(ExportExecutor.prototype, true); - const commandExecutorDelegator = new CommandExecutorDelegator(bashExecutor, exportExecutor); - - jest.spyOn(bashExecutor, "execute").mockResolvedValueOnce(); - jest.spyOn(exportExecutor, "execute").mockResolvedValueOnce(); - - (hrtimeToMs as jest.Mocked).mockReturnValue(1000); - - // Act - const result = await commandExecutorDelegator.executeCommand(command); - - // Assert - expect(result).toStrictEqual({ - command: "whatever the command", - result: ExecutionResult.OK, - startingDate: expect.any(Number), - time: 1000, - endingDate: expect.any(Number), - errorMessage: "", - }); - expect(bashExecutor.execute).toHaveBeenCalledTimes(1); - expect(exportExecutor.execute).toHaveBeenCalledTimes(0); - expect(bashExecutor.execute).toHaveBeenCalledWith(command, undefined); - }); - - test("OK with cwd", async () => { - // Arrange - const command = "whatever the command"; - const cwd = "path"; - - const bashExecutor = jest.mocked(BashExecutor.prototype, true); - const exportExecutor = jest.mocked(ExportExecutor.prototype, true); - const commandExecutorDelegator = new CommandExecutorDelegator(bashExecutor, exportExecutor); - - jest.spyOn(bashExecutor, "execute").mockResolvedValueOnce(); - jest.spyOn(exportExecutor, "execute").mockResolvedValueOnce(); - - (hrtimeToMs as jest.Mocked).mockReturnValue(1000); - - // Act - const result = await commandExecutorDelegator.executeCommand(command, { cwd }); - - // Assert - expect(result).toStrictEqual({ - command: "whatever the command", - result: ExecutionResult.OK, - startingDate: expect.any(Number), - time: 1000, - endingDate: expect.any(Number), - errorMessage: "", - }); - expect(bashExecutor.execute).toHaveBeenCalledTimes(1); - expect(exportExecutor.execute).toHaveBeenCalledTimes(0); - expect(bashExecutor.execute).toHaveBeenCalledWith(command, { cwd }); - }); - - test("Error", async () => { - // Arrange - const command = "whatever the command"; - const errorMessage = "whatever the error message"; - const bashExecutor = jest.mocked(BashExecutor.prototype, true); - - const exportExecutor = jest.mocked(ExportExecutor.prototype, true); - const commandExecutorDelegator = new CommandExecutorDelegator(bashExecutor, exportExecutor); - jest.spyOn(bashExecutor, "execute").mockRejectedValue(new Error(errorMessage)); - jest.spyOn(exportExecutor, "execute").mockResolvedValueOnce(); - - (hrtimeToMs as jest.Mocked).mockReturnValue(1000); - - // Act - const result = await commandExecutorDelegator.executeCommand(command); - - // Assert - expect(result).toStrictEqual({ - command: "whatever the command", - errorMessage: "whatever the error message", - result: ExecutionResult.NOT_OK, - startingDate: expect.any(Number), - time: 1000, - endingDate: expect.any(Number), - }); - expect(bashExecutor.execute).toHaveBeenCalledTimes(1); - expect(exportExecutor.execute).toHaveBeenCalledTimes(0); - expect(bashExecutor.execute).toHaveBeenCalledWith(command, undefined); - }); -}); \ No newline at end of file diff --git a/test/unitary/service/command/executor/export-executor.test.ts b/test/unitary/service/command/executor/export-executor.test.ts deleted file mode 100644 index a4a363f9..00000000 --- a/test/unitary/service/command/executor/export-executor.test.ts +++ /dev/null @@ -1,118 +0,0 @@ -import "reflect-metadata"; -import { Container } from "typedi"; -import * as exec from "@actions/exec"; -import { ExportExecutor } from "@bc/service/command/executor/export-executor"; -import { BaseLoggerService } from "@bc/service/logger/base-logger-service"; -import { InputService } from "@bc/service/inputs/input-service"; -import { defaultInputValues, LoggerLevel } from "@bc/domain/inputs"; -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; - -jest.mock("@actions/exec"); -jest.mock("@bc/service/logger/base-logger-service"); - -describe("Export Command Executor", () => { - beforeEach(() => { - // entry point for logging doesn't make a difference - Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.CLI); - jest.spyOn(InputService.prototype, "inputs", "get").mockReturnValueOnce({...defaultInputValues, loggerLevel: LoggerLevel.DEBUG}); - }); - - test("no export command", async () => { - // Arrange - const exportCommandExecutor = Container.get(ExportExecutor); - - // Act - try { - await exportCommandExecutor.execute("command x", {cwd: "whateverthepath"}); - expect(true).toBe(false); - } catch (ex: unknown) { - expect((ex as Error).message).toBe("The export command command x is not properly defined. It should be something like \"export VARIBLE=expression\". Please fix it an try again."); - } - - // Arrange - expect(exec.exec).toHaveBeenCalledTimes(0); - expect(BaseLoggerService.prototype.error).toHaveBeenCalledTimes(1); - expect(BaseLoggerService.prototype.error).toHaveBeenCalledWith("The export command command x is not properly defined. It should be something like \"export VARIBLE=expression\". Please fix it an try again."); - }); - - test("simple export command", async () => { - // Arrange - const exportCommandExecutor = Container.get(ExportExecutor); - (exec as jest.Mocked).exec.mockResolvedValueOnce(Promise.resolve(0)); - - // Act - await exportCommandExecutor.execute("export VARIABLE1=newvalue", {cwd: "whateverthepath"}); - - // Arrange - expect(exec.exec).toHaveBeenCalledTimes(0); - expect(BaseLoggerService.prototype.warn).toHaveBeenCalledTimes(0); - expect(BaseLoggerService.prototype.debug).toHaveBeenCalledTimes(1); - expect(BaseLoggerService.prototype.debug).toHaveBeenCalledWith("The variable `VARIABLE1` has been set to the env with the value `newvalue`"); - expect(process.env["VARIABLE1"]).toBe("newvalue"); - }); - - test("simple export command with quotes", async () => { - // Arrange - const exportCommandExecutor = Container.get(ExportExecutor); - (exec as jest.Mocked).exec.mockResolvedValueOnce(Promise.resolve(0)); - - // Act - await exportCommandExecutor.execute("export VARIABLE2=\"VALUE1 VALUE 2\"", {cwd: "whateverthepath"}); - - // Arrange - expect(exec.exec).toHaveBeenCalledTimes(0); - expect(BaseLoggerService.prototype.warn).toHaveBeenCalledTimes(0); - expect(BaseLoggerService.prototype.debug).toHaveBeenCalledTimes(1); - expect(BaseLoggerService.prototype.debug).toHaveBeenCalledWith("The variable `VARIABLE2` has been set to the env with the value `VALUE1 VALUE 2`"); - expect(process.env["VARIABLE2"]).toBe("VALUE1 VALUE 2"); - }); - - test("simple export command with simple quotes", async () => { - // Arrange - const exportCommandExecutor = Container.get(ExportExecutor); - (exec as jest.Mocked).exec.mockResolvedValueOnce(Promise.resolve(0)); - - // Act - await exportCommandExecutor.execute("export VARIABLE3='VALUE1 VALUE 2'", {cwd: "whateverthepath"}); - - // Arrange - expect(exec.exec).toHaveBeenCalledTimes(0); - expect(BaseLoggerService.prototype.warn).toHaveBeenCalledTimes(0); - expect(BaseLoggerService.prototype.debug).toHaveBeenCalledTimes(1); - expect(BaseLoggerService.prototype.debug).toHaveBeenCalledWith("The variable `VARIABLE3` has been set to the env with the value `VALUE1 VALUE 2`"); - expect(process.env["VARIABLE3"]).toBe("VALUE1 VALUE 2"); - }); - - test("export command", async () => { - // Arrange - const exportCommandExecutor = Container.get(ExportExecutor); - (exec as jest.Mocked).exec.mockResolvedValueOnce(Promise.resolve(0)); - - // Act - await exportCommandExecutor.execute("export VARIABLE4=`whateverthecommand`", {cwd: "whateverthepath"}); - - // Arrange - expect(exec.exec).toHaveBeenCalledTimes(1); - expect(exec.exec).toHaveBeenCalledWith("whateverthecommand", [], { - "cwd": "whateverthepath", - "listeners": { "stdout": expect.anything() }, - }, - ); - expect(BaseLoggerService.prototype.warn).toHaveBeenCalledTimes(0); - }); - - test("no export command", async () => { - // Arrange - const exportCommandExecutor = Container.get(ExportExecutor); - - // Act - try { - await exportCommandExecutor.execute("whatever the command", {cwd: "whateverthepath"}); - expect(false).toBe(true); - } catch (ex: unknown) { - expect((ex as Error).message).toBe("The export command whatever the command is not properly defined. It should be something like \"export VARIBLE=expression\". Please fix it an try again."); - } - }); -}); - diff --git a/test/unitary/service/command/treatment/command-builder.test.ts b/test/unitary/service/command/treatment/command-builder.test.ts deleted file mode 100644 index 60a65375..00000000 --- a/test/unitary/service/command/treatment/command-builder.test.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { CommandBuilder } from "@bc/service/command/treatment/command-builder"; -import { EnvironmentCommandTreatment } from "@bc/service/command/treatment/environment-command-treatment"; - -describe("CommandBuilder", () => { - test("single treat", () => { - // Arrange - const environmentCommandTreatment = new EnvironmentCommandTreatment(); - const options = {}; - jest.spyOn(environmentCommandTreatment, "treat").mockReturnValueOnce("treated1"); - - // Act - const result = new CommandBuilder("commandx", options).treat(environmentCommandTreatment).build(); - - // Assert - expect(result).toBe("treated1"); - expect(environmentCommandTreatment.treat).toHaveBeenCalledTimes(1); - expect(environmentCommandTreatment.treat).toHaveBeenCalledWith("commandx", options); - }); - - test("multiple treat", () => { - // Arrange - const environmentCommandTreatment = new EnvironmentCommandTreatment(); - const options = { replaceExpressions: ["1", "2"] }; - jest.spyOn(environmentCommandTreatment, "treat").mockReturnValueOnce("treated1").mockReturnValueOnce("treated2").mockReturnValueOnce("treated3"); - - // Act - const result = new CommandBuilder("commandx", options).treat(environmentCommandTreatment).treat(environmentCommandTreatment).treat(environmentCommandTreatment).build(); - - // Assert - expect(result).toBe("treated3"); - expect(environmentCommandTreatment.treat).toHaveBeenCalledTimes(3); - expect(environmentCommandTreatment.treat).toHaveBeenCalledWith("commandx", options); - expect(environmentCommandTreatment.treat).toHaveBeenCalledWith("treated1", options); - expect(environmentCommandTreatment.treat).toHaveBeenCalledWith("treated2", options); - }); -}); \ No newline at end of file diff --git a/test/unitary/service/command/treatment/command-treatment-delegator.test.ts b/test/unitary/service/command/treatment/command-treatment-delegator.test.ts deleted file mode 100644 index 0231cc19..00000000 --- a/test/unitary/service/command/treatment/command-treatment-delegator.test.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { CommandTreatmentDelegator } from "@bc/service/command/treatment/command-treatment-delegator"; -import { EnvironmentCommandTreatment } from "@bc/service/command/treatment/environment-command-treatment"; -import { MavenCommandTreatment } from "@bc/service/command/treatment/maven-command-treatment"; -import { RegexCommandTreatment } from "@bc/service/command/treatment/regex-command-treatment"; -import { CommandBuilder } from "@bc/service/command/treatment/command-builder"; - -jest.mock("@bc/service/command/treatment/environment-command-treatment"); -jest.mock("@bc/service/command/treatment/maven-command-treatment"); -jest.mock("@bc/service/command/treatment/regex-command-treatment"); -jest.mock("@bc/service/command/treatment/command-builder"); - -describe("CommandTreatmentDelegator", () => { - test("treatCommand", () => { - // Arrange - const environmentCommandTreatment = new EnvironmentCommandTreatment(); - const mavenCommandTreatment = new MavenCommandTreatment(); - const regexCommandTreatment = new RegexCommandTreatment(); - - (CommandBuilder.prototype.treat as jest.Mocked).mockReturnValue(CommandBuilder.prototype); - (CommandBuilder.prototype.build as jest.Mocked).mockReturnValue("treated"); - - // Act - const result = new CommandTreatmentDelegator(environmentCommandTreatment, mavenCommandTreatment, regexCommandTreatment).treatCommand("commandx", {}); - - // Assert - expect(CommandBuilder.prototype.treat).toHaveBeenCalledTimes(3); - expect(CommandBuilder.prototype.treat).toHaveBeenCalledWith(environmentCommandTreatment); - expect(CommandBuilder.prototype.treat).toHaveBeenCalledWith(mavenCommandTreatment); - expect(CommandBuilder.prototype.treat).toHaveBeenCalledWith(regexCommandTreatment); - expect(result).toBe("treated"); - }); -}); \ No newline at end of file diff --git a/test/unitary/service/command/treatment/environment-command-treatment.test.ts b/test/unitary/service/command/treatment/environment-command-treatment.test.ts deleted file mode 100644 index 388ec8a5..00000000 --- a/test/unitary/service/command/treatment/environment-command-treatment.test.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { EnvironmentCommandTreatment } from "@bc/service/command/treatment/environment-command-treatment"; - -describe("EnvironmentCommandTreatment", () => { - test.each([ - ["Existing variable", "command x ${{ env.VARIABLE_1 }}", (): void => { - process.env.VARIABLE_1 = "VARIABLE_1_VALUE"; - }, "command x VARIABLE_1_VALUE"], - ["treat multiples variables variable", "command x ${{ env.VARIABLE_1 }} ${{ env.VARIABLE_1 }} ${{ env.VARIABLE_2 }} ${{ env.VARIABLE_3 }} ${{ env.VARIABLE_4 }}", (): void => { - process.env.VARIABLE_1 = "VARIABLE_1_VALUE"; - process.env.VARIABLE_2 = "VARIABLE_2_VALUE"; - process.env.VARIABLE_3 = "VARIABLE_3_VALUE"; - process.env.VARIABLE_4 = "VARIABLE_4_VALUE"; - }, "command x VARIABLE_1_VALUE VARIABLE_1_VALUE VARIABLE_2_VALUE VARIABLE_3_VALUE VARIABLE_4_VALUE"], - ["treat not existing variable", "command x ${{ env.VARIABLE_NOT_DEFINED }}", (): void => { - process.env.VARIABLE_1 = "VARIABLE_1_VALUE"; - }, "command x "], - ["no env variables on the command", "command x", (): void => { - process.env.VARIABLE_1 = "VARIABLE_1_VALUE"; - }, "command x"], - ["export command", "export VARIABLE_NAME=value", (): void => { - process.env.VARIABLE_NAME = "VARIABLE_VALUE"; - }, "export VARIABLE_NAME=value"], - ])("%p", (title: string, command: string, arrangeEnvVariables: () => void, expected: string) => { - // Arrange - arrangeEnvVariables(); - - // Act - const result = new EnvironmentCommandTreatment().treat(command, {}); - - // Assert - expect(result).toBe(expected); - }); -}); \ No newline at end of file diff --git a/test/unitary/service/command/treatment/maven-command-treatment.test.ts b/test/unitary/service/command/treatment/maven-command-treatment.test.ts deleted file mode 100644 index 95f236aa..00000000 --- a/test/unitary/service/command/treatment/maven-command-treatment.test.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { MavenCommandTreatment } from "@bc/service/command/treatment/maven-command-treatment"; -import { TreatmentOptions } from "@bc/domain/treatment-options"; - -describe("MavenCommandTreatment", () => { - test.each([ - ["maven simple command", "mvn install", {}, "mvn install -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -B"], - ["maven simple command. Not specifying Maven binary", "maven install", {}, "maven install"], - ["maven simple command. Different Maven binary", "maven install", { mavenBinary: "maven" }, "maven install -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -B"], - ["no maven command", "npm test", {}, "npm test"], - ["maven command from path", "/home/software/maven/bin/mvn clean", {}, "/home/software/maven/bin/mvn clean -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -B"], - ])("%p", (title: string, command: string, options: TreatmentOptions, expected: string) => { - // Act - const result = new MavenCommandTreatment().treat(command, options); - - // Assert - expect(result).toBe(expected); - }); -}); \ No newline at end of file diff --git a/test/unitary/service/command/treatment/regex-command-treatment.test.ts b/test/unitary/service/command/treatment/regex-command-treatment.test.ts deleted file mode 100644 index f28d1402..00000000 --- a/test/unitary/service/command/treatment/regex-command-treatment.test.ts +++ /dev/null @@ -1,35 +0,0 @@ -import "reflect-metadata"; -import { TreatmentOptions } from "@bc/domain/treatment-options"; -import { RegexCommandTreatment } from "@bc/service/command/treatment/regex-command-treatment"; -import { Container } from "typedi"; -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; -import { BaseLoggerService } from "@bc/service/logger/base-logger-service"; -import { InputService } from "@bc/service/inputs/input-service"; -import { defaultInputValues, LoggerLevel } from "@bc/domain/inputs"; - -jest.mock("@bc/service/logger/base-logger-service"); - -describe("RegexCommandTreatment", () => { - Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.CLI); - - test.each([ - ["ok", "mvn clean install", { replaceExpressions: ["(mvn .*)||$1 -s settings.xml"] }, "mvn clean install -s settings.xml", 2], - ["ok. Two regex groups", "mvn clean install", { replaceExpressions: ["(mvn)(.*)||$1 -s settings.xml"] }, "mvn -s settings.xml", 2], - ["ok. Multiple replacements", "mvn clean install", { replaceExpressions: ["(mvn .*)||$1 -s settings.xml", "(.*)(settings.xml)||$1filesettings.yml"] }, "mvn clean install -s filesettings.yml", 2], - ["ok. Real Command", "mvn clean install -DskipTests -Dmaven.wagon.httpconnectionManager.ttlSeconds=25 -Dmaven.wagon.http.retryHandler.count=3 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -B", { replaceExpressions: ["(^mvn .*)||$1 -s /home/emingora/.m2/settings.xml"] }, "mvn clean install -DskipTests -Dmaven.wagon.httpconnectionManager.ttlSeconds=25 -Dmaven.wagon.http.retryHandler.count=3 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -B -s /home/emingora/.m2/settings.xml", 2], - ["ok. Regex with / /", "mvn clean install", { replaceExpressions: ["/(mvn .*)/||$1 -s settings.xml"] }, "mvn clean install -s settings.xml", 2], - ["ok. Regex with / /i", "mvn clean install", { replaceExpressions: ["/(mvn .*)/i||$1 -s settings.xml"] }, "mvn clean install -s settings.xml", 2], - ["No replacement. Regex not matching", "maven clean install", { replaceExpressions: ["/(mvn .*)/i||$1 -s settings.xml"] }, "maven clean install", 2], - ["No replacement. No replacement expression", "mvn clean install", {}, "mvn clean install", 0], - ])("%p", (title: string, command: string, options: TreatmentOptions, expected: string, times: number) => { - jest.spyOn(InputService.prototype, "inputs", "get").mockReturnValueOnce({...defaultInputValues, loggerLevel: LoggerLevel.DEBUG}); - - // Act - const result = new RegexCommandTreatment().treat(command, options); - - // Assert - expect(result).toBe(expected); - expect(BaseLoggerService.prototype.debug).toHaveBeenCalledTimes(times); - }); -}); \ No newline at end of file diff --git a/test/unitary/service/config/action-configuration.test.ts b/test/unitary/service/config/action-configuration.test.ts deleted file mode 100644 index e6ce428f..00000000 --- a/test/unitary/service/config/action-configuration.test.ts +++ /dev/null @@ -1,245 +0,0 @@ -import "reflect-metadata"; -import { ActionConfiguration } from "@bc/service/config/action-configuration"; -import Container from "typedi"; -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; -import { readFile } from "node:fs/promises"; -import { defaultInputValues, FlowType } from "@bc/domain/inputs"; -import { InputService } from "@bc/service/inputs/input-service"; -import { MockGithub } from "@kie/mock-github"; -import { EventData } from "@bc/domain/configuration"; -import { GitTokenService } from "@bc/service/git/git-token-service"; -import { DEFAULT_GITHUB_PLATFORM } from "@kie/build-chain-configuration-reader"; -jest.mock("node:fs/promises"); -jest.mock("@kie/build-chain-configuration-reader"); - -Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.GITHUB_EVENT); -let actionConfig = new ActionConfiguration(); -const readFileMock = readFile as jest.Mock; -const event = { - html_url: "https://github.com/pulls/270", - head: { - ref: "feature", - repo: { - full_name: "owner/project", - name: "project", - owner: { - login: "owner", - }, - }, - }, - base: { - ref: "main", - repo: { - full_name: "owner/project", - name: "project", - owner: { - login: "owner", - }, - }, - }, -}; - -// disable logs -jest.spyOn(global.console, "log"); - -beforeEach(async () => { - actionConfig = new ActionConfiguration(); -}); - -describe("load event data", () => { - test("success: non branch flow", async () => { - jest.spyOn(actionConfig, "parsedInputs", "get").mockImplementation(() => { - return { ...defaultInputValues, flowType: FlowType.CROSS_PULL_REQUEST }; - }); - const mockGithub = new MockGithub({ - env: { - event_path: "path", - }, - }); - await mockGithub.setup(); - readFileMock.mockResolvedValueOnce(JSON.stringify({ pull_request: event })); - const eventData = await actionConfig.loadGitEvent(); - expect(eventData).toStrictEqual(event); - }); - - test("success: branch flow", async () => { - jest.spyOn(actionConfig, "parsedInputs", "get").mockImplementation(() => { - return { ...defaultInputValues, flowType: FlowType.BRANCH }; - }); - const eventData = await actionConfig.loadGitEvent(); - expect(eventData).toStrictEqual({}); - }); - - test("failure", async () => { - delete process.env["GITHUB_EVENT_PATH"]; - await expect(actionConfig.loadGitEvent()).rejects.toThrowError(); - }); -}); - -describe("load git config", () => { - const token = "fakenotenvtoken"; - const env = { - action: "pull_request", - actor: "actor", - author: "author", - job: "job", - workflow: "workflow", - ref: "main", - server_url: "https://git.ca/", - token: "token", - repository: "owner/project", - workspace: "current", - }; - const mockGithub = new MockGithub({ - env, - }); - - beforeEach(async () => { - await mockGithub.setup(); - Container.get(GitTokenService).setToken( - DEFAULT_GITHUB_PLATFORM.id, - token - ); - }); - - afterEach(async () => { - await mockGithub.teardown(); - }); - - test("Without default github url", () => { - const config = actionConfig.loadGitConfiguration(); - const expectedData = { - action: env.action, - actor: env.actor, - author: env.author, - serverUrl: "https://git.ca", - serverUrlWithToken: `https://${token}@git.ca`, - jobId: env.job, - ref: env.ref, - workflow: env.workflow, - repository: env.repository, - }; - expect(config).toStrictEqual(expectedData); - }); - - test("With default github url", () => { - delete process.env["GITHUB_SERVER_URL"]; - const config = actionConfig.loadGitConfiguration(); - const expectedData = { - action: env.action, - actor: env.actor, - author: env.author, - serverUrl: "https://github.com", - serverUrlWithToken: `https://${token}@github.com`, - jobId: env.job, - ref: env.ref, - workflow: env.workflow, - repository: env.repository, - }; - expect(config).toStrictEqual(expectedData); - }); -}); - -describe("load source and target project", () => { - test("non branch flow", async () => { - jest.spyOn(actionConfig, "parsedInputs", "get").mockImplementation(() => { - return { ...defaultInputValues, flowType: FlowType.CROSS_PULL_REQUEST }; - }); - jest - .spyOn(actionConfig, "gitEventData", "get") - .mockImplementation(() => event as EventData); - const { source, target } = actionConfig.loadProject(); - const expectedSource = { - branch: event.head.ref, - repository: event.head.repo.full_name, - name: event.head.repo.name, - group: event.head.repo.owner.login, - }; - - const expectedTarget = { - branch: event.base.ref, - repository: event.base.repo.full_name, - name: event.base.repo.name, - group: event.base.repo.owner.login, - }; - - expect(source).toStrictEqual(expectedSource); - expect(target).toStrictEqual(expectedTarget); - }); - - test("branch flow", async () => { - jest.spyOn(actionConfig, "parsedInputs", "get").mockImplementation(() => { - return { ...defaultInputValues, flowType: FlowType.BRANCH }; - }); - jest - .spyOn(actionConfig, "gitConfiguration", "get") - .mockImplementation(() => { - return { - ref: "main", - repository: "owner/project", - }; - }); - const { source, target } = actionConfig.loadProject(); - const expectedConfig = { - branch: "main", - repository: "owner/project", - name: "project", - group: "owner", - }; - expect(source).toStrictEqual(expectedConfig); - expect(target).toStrictEqual(expectedConfig); - }); -}); - -describe("load token", () => { - test("success", async () => { - const mockGithub = new MockGithub({ - env: { - token: "token", - }, - }); - await mockGithub.setup(); - actionConfig.loadToken(); - expect(Container.get(GitTokenService).getToken( - DEFAULT_GITHUB_PLATFORM.id - )).toBe("token"); - await mockGithub.teardown(); - }); - test("failure", () => { - delete process.env["GITHUB_TOKEN"]; - expect(() => actionConfig.loadToken()).toThrowError(); - }); -}); - -describe("load input", () => { - test("success: validated input", () => { - const input = { - ...defaultInputValues, - customCommandTreatment: ["abc||def", "xyz||pqr"], - startProject: "owner/project", - }; - jest - .spyOn(InputService.prototype, "inputs", "get") - .mockImplementation(() => input); - expect(actionConfig.loadParsedInput()).toStrictEqual(input); - }); - - test("success: no input to validate", () => { - jest - .spyOn(InputService.prototype, "inputs", "get") - .mockImplementation(() => defaultInputValues); - expect(actionConfig.loadParsedInput()).toStrictEqual(defaultInputValues); - }); - - test("failure: invalidate input", () => { - const input = { - ...defaultInputValues, - customCommandTreatment: ["abc||def", "xyz|pqr"], - }; - jest - .spyOn(InputService.prototype, "inputs", "get") - .mockImplementation(() => input); - expect(() => actionConfig.loadParsedInput()).toThrowError(); - }); -}); diff --git a/test/unitary/service/config/cli-configuration.test.ts b/test/unitary/service/config/cli-configuration.test.ts deleted file mode 100644 index aba957b9..00000000 --- a/test/unitary/service/config/cli-configuration.test.ts +++ /dev/null @@ -1,478 +0,0 @@ -import "reflect-metadata"; -import Container from "typedi"; -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; -import { CLIConfiguration } from "@bc/service/config/cli-configuration"; -import { defaultInputValues, FlowType, InputValues } from "@bc/domain/inputs"; -import { InputService } from "@bc/service/inputs/input-service"; -import { MockGithub, Moctokit } from "@kie/mock-github"; -import { EventData } from "@bc/domain/configuration"; -import { CLIActionType } from "@bc/domain/cli"; -import { GitTokenService } from "@bc/service/git/git-token-service"; -import { - DEFAULT_GITHUB_PLATFORM, - DEFAULT_GITLAB_PLATFORM, -} from "@kie/build-chain-configuration-reader"; -import { GitAPIService } from "@bc/service/git/git-api-service"; -import { BaseConfiguration } from "@bc/service/config/base-configuration"; -jest.mock("@kie/build-chain-configuration-reader"); - -let cliConfig: CLIConfiguration; -const event = { - html_url: "https://github.com/pulls/270", - head: { - ref: "feature", - repo: { - full_name: "owner/project", - name: "project", - owner: { - login: "owner", - }, - }, - user: { - login: "owner", - }, - }, - base: { - ref: "main", - repo: { - full_name: "owner/project", - name: "project", - owner: { - login: "owner", - }, - }, - }, -}; - -// disable logs -jest.spyOn(global.console, "log"); - -beforeEach(async () => { - Container.reset(); - Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.CLI); - cliConfig = new CLIConfiguration(); - process.env = {}; -}); - -describe("load event data", () => { - const moctokit = new Moctokit(); - let currentInput: InputValues = { - ...defaultInputValues, - url: "http://github.com/owner/project/pull/270", - }; - beforeEach(() => { - jest - .spyOn(cliConfig, "parsedInputs", "get") - .mockImplementation(() => currentInput); - }); - afterEach(() => { - currentInput = { - ...defaultInputValues, - url: "http://github.com/owner/project/pull/270", - }; - }); - - test("success: tools", async () => { - currentInput = { - ...currentInput, - CLICommand: CLIActionType.TOOLS, - }; - await expect(cliConfig.loadGitEvent()).resolves.toStrictEqual({}); - }); - - test("success: non-branch flow build (github)", async () => { - moctokit.rest.pulls - .get({ - owner: "owner", - repo: "project", - pull_number: 270, - }) - .reply({ - status: 200, - data: event, - }); - - Container.get(GitTokenService).setToken( - DEFAULT_GITHUB_PLATFORM.id, - "faketoken" - ); - Container.get(GitTokenService).setGithubTokenPool( - DEFAULT_GITHUB_PLATFORM.id, - ["faketoken"] - ); - - const eventData = await cliConfig.loadGitEvent(); - expect(eventData).toStrictEqual(event); - expect(process.env["GITHUB_SERVER_URL"]).toBe("http://github.com/"); - expect(process.env["GITHUB_ACTION"]).toBe(undefined); - expect(process.env["GITHUB_ACTOR"]).toBe(event.head.user.login); - expect(process.env["GITHUB_HEAD_REF"]).toBe(event.head.ref); - expect(process.env["GITHUB_BASE_REF"]).toBe(event.base.ref); - expect(process.env["GITHUB_REPOSITORY"]).toBe(event.base.repo.full_name); - expect(process.env["GITHUB_REF"]).toBe("refs/pull/270/merge"); - }); - - test("success: branch flow build", async () => { - currentInput = { - ...defaultInputValues, - CLISubCommand: FlowType.BRANCH, - group: "kiegroup", - branch: "main", - startProject: "kiegroup/drools", - }; - const eventData = await cliConfig.loadGitEvent(); - expect(eventData).toStrictEqual({}); - expect(process.env["GITHUB_ACTOR"]).toBe("kiegroup"); - expect(process.env["GITHUB_HEAD_REF"]).toBe("main"); - expect(process.env["GITHUB_BASE_REF"]).toBe("main"); - expect(process.env["GITHUB_REPOSITORY"]).toBe("kiegroup/drools"); - }); - - test("success: non-branch flow build (gitlab)", async () => { - jest - .spyOn(GitAPIService.prototype, "getPullRequest") - .mockResolvedValueOnce(event); - currentInput = { - ...currentInput, - url: "https://gitlab.com/owner/project/-/merge_requests/270", - }; - - Container.get(GitTokenService).setToken( - DEFAULT_GITHUB_PLATFORM.id, - "faketoken" - ); - Container.get(GitTokenService).setGithubTokenPool( - DEFAULT_GITHUB_PLATFORM.id, - ["faketoken"] - ); - - const eventData = await cliConfig.loadGitEvent(); - expect(eventData).toStrictEqual(event); - expect(process.env["CI_SERVER_URL"]).toBe("https://gitlab.com/"); - expect(process.env["CI_PROJECT_NAMESPACE"]).toBe(event.head.user.login); - expect(process.env["CI_MERGE_REQUEST_SOURCE_BRANCH_NAME"]).toBe( - event.head.ref - ); - expect(process.env["CI_MERGE_REQUEST_TARGET_BRANCH_NAME"]).toBe( - event.base.ref - ); - expect(process.env["CI_PROJECT_ID"]).toBe(event.base.repo.full_name); - expect(process.env["CI_MERGE_REQUEST_REF_PATH"]).toBe( - "refs/merge-requests/270/merge" - ); - }); - - test("failure: no url defined", async () => { - delete currentInput["url"]; - await expect(cliConfig.loadGitEvent()).rejects.toThrowError(); - }); - - test("failure: invalid url (caught by regex)", async () => { - currentInput["url"] = "https://git.com/"; - await expect(cliConfig.loadGitEvent()).rejects.toThrowError(); - }); - - test("failure: invalid url (passes regex)", async () => { - moctokit.rest.pulls.get().reply({ status: 404, data: {} }); - await expect(cliConfig.loadGitEvent()).rejects.toThrowError(); - }); -}); - -describe("load git config branch flow", () => { - const token = "fakenotenvtoken"; - let currentInput: InputValues = { - ...defaultInputValues, - CLISubCommand: FlowType.BRANCH, - group: "group", - branch: "main", - }; - const mockGithub = new MockGithub({ - env: { - action: "pull_request", - actor: "actor", - author: "author", - job: "job", - workflow: "workflow", - ref: "main", - server_url: "https://git.ca/", - token: "token", - repository: "owner/project", - workspace: "current", - }, - }); - beforeEach(async () => { - await mockGithub.setup(); - jest - .spyOn(cliConfig, "parsedInputs", "get") - .mockImplementation(() => currentInput); - Container.get(GitTokenService).setToken( - DEFAULT_GITHUB_PLATFORM.id, - token - ); - }); - - afterEach(async () => { - await mockGithub.teardown(); - currentInput = { - ...defaultInputValues, - CLISubCommand: FlowType.BRANCH, - group: "group", - branch: "main", - }; - }); - - test("success: without default github url", async () => { - const config = cliConfig.loadGitConfiguration(); - const expectedData = { - actor: "group", - serverUrl: "https://git.ca", - serverUrlWithToken: `https://${token}@git.ca`, - ref: "main", - }; - expect(config).toStrictEqual(expectedData); - }); - - test("success: with default github url", async () => { - delete process.env["GITHUB_SERVER_URL"]; - - const config = cliConfig.loadGitConfiguration(); - const expectedData = { - actor: "group", - serverUrl: "https://github.com", - serverUrlWithToken: `https://${token}@github.com`, - ref: "main", - }; - expect(config).toStrictEqual(expectedData); - }); - - test("failure: no group", async () => { - delete currentInput["group"]; - expect(cliConfig.loadGitConfiguration).toThrowError(); - }); -}); - -describe("load git config no branch flow", () => { - const token = "fakenotenvtoken"; - const mockGithub = new MockGithub({ - env: { - action: "pull_request", - actor: "actor", - author: "author", - job: "job", - workflow: "workflow", - ref: "main", - server_url: "https://git.ca/", - token: "token", - repository: "owner/project", - workspace: "current", - }, - }); - - beforeEach(async () => { - await mockGithub.setup(); - jest - .spyOn(cliConfig, "parsedInputs", "get") - .mockImplementation(() => defaultInputValues); - Container.get(GitTokenService).setToken( - DEFAULT_GITHUB_PLATFORM.id, - token - ); - Container.get(GitTokenService).setToken( - DEFAULT_GITLAB_PLATFORM.id, - token - ); - }); - - afterEach(async () => { - await mockGithub.teardown(); - }); - - test("success: without default github url", async () => { - const config = cliConfig.loadGitConfiguration(); - const expectedData = { - serverUrl: "https://git.ca", - serverUrlWithToken: `https://${token}@git.ca`, - }; - expect(config).toStrictEqual(expectedData); - }); - - test("success: with default github url", async () => { - delete process.env["GITHUB_SERVER_URL"]; - - const config = cliConfig.loadGitConfiguration(); - const expectedData = { - serverUrl: "https://github.com", - serverUrlWithToken: `https://${token}@github.com`, - }; - expect(config).toStrictEqual(expectedData); - }); - - test("success: with gitlab url", async () => { - process.env.CI_SERVER_URL = "https://gitlab.com"; - const config = cliConfig.loadGitConfiguration(); - const expectedData = { - serverUrl: "https://gitlab.com", - serverUrlWithToken: `https://${token}@gitlab.com`, - }; - expect(config).toStrictEqual(expectedData); - }); -}); - -describe("load source and target project", () => { - let currentInput: InputValues = { - ...defaultInputValues, - startProject: "owner/project", - group: "owner", - branch: "main", - url: "http://github.com/owner/project/pull/270", - }; - beforeEach(() => { - jest - .spyOn(cliConfig, "parsedInputs", "get") - .mockImplementation(() => currentInput); - }); - - afterEach(() => { - currentInput = { - ...defaultInputValues, - startProject: "owner/project", - group: "owner", - branch: "main", - url: "http://github.com/owner/project/pull/270", - }; - }); - - test("success: tools", () => { - currentInput = { - ...currentInput, - CLICommand: CLIActionType.TOOLS, - }; - expect(cliConfig.loadProject()).toStrictEqual({ source: {}, target: {} }); - }); - - test("branch flow", () => { - currentInput["CLISubCommand"] = FlowType.BRANCH; - const expectedData = { - branch: "main", - name: "project", - group: "owner", - repository: "owner/project", - }; - const { source, target } = cliConfig.loadProject(); - expect(source).toStrictEqual(expectedData); - expect(target).toStrictEqual(expectedData); - }); - - test("Non branch flow", async () => { - jest - .spyOn(cliConfig, "gitEventData", "get") - .mockImplementation(() => event as EventData); - - const expectedSource = { - branch: event.head.ref, - repository: event.head.repo.full_name, - name: event.head.repo.name, - group: event.head.repo.owner.login, - }; - - const expectedTarget = { - branch: event.base.ref, - repository: event.base.repo.full_name, - name: event.base.repo.name, - group: event.base.repo.owner.login, - }; - const { source, target } = cliConfig.loadProject(); - expect(source).toStrictEqual(expectedSource); - expect(target).toStrictEqual(expectedTarget); - }); -}); - -describe("load token", () => { - test("success: via token flag (github)", () => { - const token = ["tokenflag"]; - jest.spyOn(cliConfig, "parsedInputs", "get").mockImplementation(() => { - return { ...defaultInputValues, token }; - }); - cliConfig.loadToken(); - expect( - Container.get(GitTokenService).getToken(DEFAULT_GITHUB_PLATFORM.id) - ).toBe(token[0]); - }); - - test("success: via env (github)", async () => { - const mockGithub = new MockGithub({ - env: { - token: "token", - }, - }); - await mockGithub.setup(); - cliConfig.loadToken(); - expect( - Container.get(GitTokenService).getToken(DEFAULT_GITHUB_PLATFORM.id) - ).toBe("token"); - await mockGithub.teardown(); - }); - - test("success: via token flag (gitlab)", () => { - const token = ["tokenflag"]; - jest.spyOn(cliConfig, "parsedInputs", "get").mockReturnValue({ - ...defaultInputValues, - token, - }); - jest.spyOn(BaseConfiguration.prototype, "getDefaultPlatformConfig").mockReturnValueOnce(DEFAULT_GITLAB_PLATFORM); - cliConfig.loadToken(); - expect( - Container.get(GitTokenService).getToken(DEFAULT_GITLAB_PLATFORM.id) - ).toBe(token[0]); - }); - - test("success: via env (gitlab)", async () => { - jest.spyOn(BaseConfiguration.prototype, "getDefaultPlatformConfig").mockReturnValueOnce(DEFAULT_GITLAB_PLATFORM); - process.env.GITLAB_TOKEN = "token"; - cliConfig.loadToken(); - expect( - Container.get(GitTokenService).getToken(DEFAULT_GITLAB_PLATFORM.id) - ).toBe("token"); - }); - - test("failure", () => { - jest.spyOn(cliConfig, "parsedInputs", "get").mockImplementation(() => { - return { ...defaultInputValues }; - }); - delete process.env["GITHUB_TOKEN"]; - expect(() => cliConfig.loadToken()).toThrowError(); - }); -}); - -describe("load input", () => { - test("success: validated input", () => { - const input = { - ...defaultInputValues, - customCommandTreatment: ["abc||def", "xyz||pqr"], - startProject: "owner/project", - }; - jest - .spyOn(InputService.prototype, "inputs", "get") - .mockImplementation(() => input); - expect(cliConfig.loadParsedInput()).toStrictEqual(input); - }); - - test("success: no input to validate", () => { - jest - .spyOn(InputService.prototype, "inputs", "get") - .mockImplementation(() => defaultInputValues); - expect(cliConfig.loadParsedInput()).toStrictEqual(defaultInputValues); - }); - - test("failure: invalidate input", () => { - const input = { - ...defaultInputValues, - customCommandTreatment: ["abc||def", "xyz|pqr"], - }; - jest - .spyOn(InputService.prototype, "inputs", "get") - .mockImplementation(() => input); - expect(() => cliConfig.loadParsedInput()).toThrowError(); - }); -}); diff --git a/test/unitary/service/config/configuration-service.test.ts b/test/unitary/service/config/configuration-service.test.ts deleted file mode 100644 index 567ed036..00000000 --- a/test/unitary/service/config/configuration-service.test.ts +++ /dev/null @@ -1,514 +0,0 @@ -import "reflect-metadata"; -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; -import { defaultInputValues, FlowType, InputValues } from "@bc/domain/inputs"; -import { ConfigurationService } from "@bc/service/config/configuration-service"; -import Container from "typedi"; -import { BaseConfiguration } from "@bc/service/config/base-configuration"; -import { NodeExecutionLevel } from "@bc/domain/node-execution"; -import { TreatmentOptions } from "@bc/domain/treatment-options"; -import { ToolType } from "@bc/domain/cli"; -import { DefinitionFileReader } from "@bc/service/config/definition-file-reader"; -import { - DEFAULT_GITHUB_PLATFORM, - DEFAULT_GITLAB_PLATFORM, - Node, -} from "@kie/build-chain-configuration-reader"; -import { defaultNodeValue } from "@bc/domain/node"; -import { EventData } from "@bc/domain/configuration"; -import { GitTokenService } from "@bc/service/git/git-token-service"; - -// disable logs -jest.spyOn(global.console, "log"); -jest.mock("@kie/build-chain-configuration-reader"); - -describe("initialization", () => { - beforeEach(() => { - jest - .spyOn(ConfigurationService.prototype, "init") - .mockImplementationOnce( - async () => Container.get(constants.CONTAINER.ENTRY_POINT) as never - ); - }); - test("action", async () => { - Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.GITHUB_EVENT); - const config = new ConfigurationService(); - await expect(config.init()).resolves.toBe(EntryPoint.GITHUB_EVENT); - }); - - test("cli", async () => { - Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.CLI); - const config = new ConfigurationService(); - await expect(config.init()).resolves.toBe(EntryPoint.CLI); - }); - - test("incorrect entrypoint", async () => { - Container.set(constants.CONTAINER.ENTRY_POINT, "dummy"); - expect(() => new ConfigurationService()).toThrowError(); - }); -}); - -describe("methods", () => { - let config: ConfigurationService; - let currentInput: InputValues; - const startProject = "owner/project"; - const projectTriggeringTheJob = "owner/job"; - - beforeAll(() => { - // doesn't matter whether it is a CLI or action - Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.CLI); - }); - - beforeEach(async () => { - currentInput = { - ...defaultInputValues, - startProject, - url: "https://github.com/owner/project/pull/270", - }; - - jest - .spyOn(BaseConfiguration.prototype, "parsedInputs", "get") - .mockImplementation(() => currentInput); - jest - .spyOn(DefinitionFileReader.prototype, "generateNodeChain") - .mockImplementation(async () => []); - jest - .spyOn(DefinitionFileReader.prototype, "getDefinitionFile") - .mockImplementation(async () => { - return { version: "2.1" }; - }); - jest - .spyOn(BaseConfiguration.prototype, "init") - .mockImplementation(async () => undefined); - - config = new ConfigurationService(); - await config.init(); - }); - - afterEach(() => { - currentInput = { - ...defaultInputValues, - startProject, - url: "https://github.com/owner/project/pull/270", - }; - }); - - test("getStarterProjectName: success", () => { - expect(config.getStarterProjectName()).toBe(startProject); - }); - - test("getStarterProjectName: failure", () => { - delete process.env["GITHUB_REPOSITORY"]; - delete currentInput["startProject"]; - expect(config.getStarterProjectName()).toBe(undefined); - }); - - test.each([ - [true, startProject], - [false, "falsename"], - ])("isNodeStarter %p", (isNodeStarter: boolean, project: string) => { - expect(config.isNodeStarter({ ...defaultNodeValue, project })).toBe( - isNodeStarter - ); - }); - - test("getStarterNode: success", () => { - const chain: Node[] = [ - { ...defaultNodeValue, project: "abc" }, - { ...defaultNodeValue, project: startProject }, - { ...defaultNodeValue, project: "def" }, - ]; - const nodeFound: Node = { ...defaultNodeValue, project: startProject }; - jest - .spyOn(ConfigurationService.prototype, "nodeChain", "get") - .mockImplementation(() => chain); - expect(config.getStarterNode()).toStrictEqual(nodeFound); - }); - - test("getStarterNode: failure", () => { - const chain: Node[] = [ - { ...defaultNodeValue, project: "abc" }, - { ...defaultNodeValue, project: "xyz" }, - { ...defaultNodeValue, project: "def" }, - ]; - jest - .spyOn(ConfigurationService.prototype, "nodeChain", "get") - .mockImplementation(() => chain); - expect(() => config.getStarterNode()).toThrowError(); - }); - - test.each([ - ["upstream", 0, NodeExecutionLevel.UPSTREAM], - ["current", 1, NodeExecutionLevel.CURRENT], - ["downstream", 2, NodeExecutionLevel.DOWNSTREAM], - ])( - "getNodeExecutionLevel: %p", - ( - title: string, - currNodeIndex: number, - executionLevel: NodeExecutionLevel - ) => { - const chain: Node[] = [ - { ...defaultNodeValue, project: "abc" }, - { ...defaultNodeValue, project: startProject }, - { ...defaultNodeValue, project: "def" }, - ]; - jest - .spyOn(ConfigurationService.prototype, "nodeChain", "get") - .mockImplementation(() => chain); - expect(config.getNodeExecutionLevel(chain[currNodeIndex])).toBe( - executionLevel - ); - } - ); - - test.each([ - [ - "option skipExecution set to true", - { ...defaultNodeValue, project: "abc" }, - { ...defaultInputValues, skipExecution: true }, - true, - ], - [ - "option skipExecution set to false and skipProjectExecution contains project name", - { ...defaultNodeValue, project: "abc" }, - { ...defaultInputValues, skipProjectExecution: ["abc"] }, - true, - ], - [ - "option skipExecution set to false and skipProjectExecution does not contain project name", - { ...defaultNodeValue, project: "abc" }, - { ...defaultInputValues, skipProjectExecution: ["def"] }, - false, - ], - [ - "option skipExecution set to false and skipProjectExecution not defined", - { ...defaultNodeValue, project: "abc" }, - defaultInputValues, - false, - ], - ])( - "skipExecution: %p", - ( - title: string, - node: Node, - currInput: InputValues, - isExecutionSkipped: boolean - ) => { - currentInput = currInput; - expect(config.skipExecution(node)).toBe(isExecutionSkipped); - } - ); - - test.each([ - [ - "option skipCheckout set to true", - { ...defaultNodeValue, project: "abc" }, - { ...defaultInputValues, skipCheckout: true }, - true, - ], - [ - "option skipCheckout set to false and skipProjectCheckout contains project name", - { ...defaultNodeValue, project: "abc" }, - { ...defaultInputValues, skipProjectCheckout: ["abc"] }, - true, - ], - [ - "option skipCheckout set to false and skipProjectCheckout does not contain project name", - { ...defaultNodeValue, project: "abc" }, - { ...defaultInputValues, skipProjectCheckout: ["def"] }, - false, - ], - [ - "option skipCheckout set to false and skipProjectCheckout not defined", - { ...defaultNodeValue, project: "abc" }, - defaultInputValues, - false, - ], - ])( - "skipCheckout: %p", - ( - title: string, - node: Node, - currInput: InputValues, - isCheckoutSkipped: boolean - ) => { - currentInput = currInput; - expect(config.skipCheckout(node)).toBe(isCheckoutSkipped); - } - ); - - test.each([ - [ - "custom command treatment defined", - { ...defaultInputValues, customCommandTreatment: ["abc||xyz"] }, - { replaceExpressions: ["abc||xyz"] }, - ], - ["custom command treatment not defined", defaultInputValues, {}], - ])( - "getTreatmentOptions: success - %p", - ( - title: string, - currInput: InputValues, - treatmentOptions: TreatmentOptions - ) => { - currentInput = currInput; - expect(config.getTreatmentOptions()).toStrictEqual(treatmentOptions); - } - ); - - test("get target project", () => { - const project = { - branch: "main", - name: "project", - group: "owner", - repository: "owner/project", - }; - jest - .spyOn(BaseConfiguration.prototype, "targetProject", "get") - .mockImplementation(() => project); - expect(config.getTargetProject()).toStrictEqual(project); - }); - - test("get source project", () => { - const project = { - branch: "main", - name: "project", - group: "owner", - repository: "owner/project", - }; - jest - .spyOn(BaseConfiguration.prototype, "sourceProject", "get") - .mockImplementation(() => project); - expect(config.getSourceProject()).toStrictEqual(project); - }); - - test("get flow type: success", () => { - currentInput = { - ...defaultInputValues, - CLISubCommand: FlowType.CROSS_PULL_REQUEST, - }; - expect(config.getFlowType()).toBe(FlowType.CROSS_PULL_REQUEST); - }); - - test("get flow type: failure", () => { - currentInput = { - ...defaultInputValues, - CLISubCommand: ToolType.PROJECT_LIST, - }; - expect(() => config.getFlowType()).toThrowError(); - }); - - test("get tool type: success", () => { - currentInput = { - ...defaultInputValues, - CLISubCommand: ToolType.PROJECT_LIST, - }; - expect(config.getToolType()).toBe(ToolType.PROJECT_LIST); - }); - - test("get tool type: failure", () => { - currentInput = { - ...defaultInputValues, - CLISubCommand: FlowType.CROSS_PULL_REQUEST, - }; - expect(() => config.getToolType()).toThrowError(); - }); - - test("root folder from github workspace", () => { - process.env["GITHUB_WORKSPACE"] = "workspace"; - expect(config.getRootFolder()).toBe("workspace"); - delete process.env["GITHUB_WORKSPACE"]; - }); - - test("root folder from input", () => { - currentInput = { ...defaultInputValues, outputFolder: "current" }; - expect(config.getRootFolder()).toBe(currentInput.outputFolder); - }); - - test("root folder default", () => { - delete process.env["GITHUB_WORKSPACE"]; - expect(config.getRootFolder()).toBe(process.cwd()); - }); - - test.each([ - ["github", DEFAULT_GITHUB_PLATFORM, "token", "https://token@github.com"], - ["gitlab", DEFAULT_GITLAB_PLATFORM, "token", "https://oauth2:token@gitlab.com"], - ["no token", DEFAULT_GITHUB_PLATFORM, undefined, "https://github.com"], - ])("get clone url", (_title, platform, token, baseUrl) => { - jest.spyOn(config, "getPlatform").mockReturnValueOnce(platform); - jest - .spyOn(GitTokenService.prototype, "getToken") - .mockReturnValueOnce(token); - expect(config.getCloneUrl("owner", "repo")).toBe(`${baseUrl}/owner/repo`); - }); - - test("skipParallelCheckout", () => { - currentInput = { ...defaultInputValues, skipParallelCheckout: true }; - expect(config.skipParallelCheckout()).toBe( - currentInput.skipParallelCheckout - ); - }); - - test("isParallelExecutionEnabled", () => { - currentInput = { ...defaultInputValues, enableParallelExecution: true }; - expect(config.isParallelExecutionEnabled()).toBe( - currentInput.enableParallelExecution - ); - }); - - test("getPre", () => { - jest - .spyOn(ConfigurationService.prototype, "definitionFile", "get") - .mockImplementation(() => { - return { - version: "2.1", - pre: ["hello"], - }; - }); - expect(config.getPre()).toStrictEqual(["hello"]); - }); - - test("getPost", () => { - jest - .spyOn(ConfigurationService.prototype, "definitionFile", "get") - .mockImplementation(() => { - return { - version: "2.1", - post: { - success: ["hello"], - }, - }; - }); - expect(config.getPost()).toStrictEqual({ success: ["hello"] }); - }); - - test.each([ - ["branch flow", FlowType.BRANCH, ""], - ["non branch flow", FlowType.CROSS_PULL_REQUEST, "url"], - ])("getEventUrl", (_title: string, flowType: FlowType, expected: string) => { - currentInput = { - ...defaultInputValues, - CLISubCommand: flowType, - }; - jest - .spyOn(BaseConfiguration.prototype, "gitEventData", "get") - .mockImplementationOnce(() => ({ html_url: expected } as EventData)); - expect(config.getEventUrl()).toBe(expected); - }); - - test.each([ - ["branch flow", FlowType.BRANCH, "group"], - ["non branch flow", FlowType.CROSS_PULL_REQUEST, undefined], - ])("getGroupName", (_title: string, flowType: FlowType, group?: string) => { - currentInput = { - ...defaultInputValues, - CLISubCommand: flowType, - group, - }; - expect(config.getGroupName()).toBe(group); - }); - - test.each([ - [ - "github env is defined", - projectTriggeringTheJob, - undefined, - projectTriggeringTheJob, - ], - [ - "github event is defined", - undefined, - projectTriggeringTheJob, - projectTriggeringTheJob, - ], - ["neither is defined use startProject", undefined, undefined, startProject], - ])( - "getProjectTriggeringTheJobName: %p", - (_title, githubEnv, githubEvent, expected) => { - if (githubEnv) { - process.env["GITHUB_REPOSITORY"] = githubEnv; - } - jest - .spyOn(BaseConfiguration.prototype, "gitEventData", "get") - .mockImplementationOnce( - () => ({ base: { repo: { full_name: githubEvent } } } as never) - ); - expect(config.getProjectTriggeringTheJobName()).toBe(expected); - delete process.env["GITHUB_REPOSITORY"]; - } - ); - - test.each([ - [ - "projectTriggeringTheJob is found", - projectTriggeringTheJob, - projectTriggeringTheJob, - ], - ["projectTriggeringTheJob is not found", undefined, startProject], - ])( - "getProjectTriggeringTheJob: %p", - (_title, getProjectTriggeringTheJobName, expectedProject) => { - const chain: Node[] = [ - { ...defaultNodeValue, project: "abc" }, - { ...defaultNodeValue, project: startProject }, - { ...defaultNodeValue, project: projectTriggeringTheJob }, - ]; - const nodeFound: Node = { ...defaultNodeValue, project: expectedProject }; - jest - .spyOn(ConfigurationService.prototype, "nodeChain", "get") - .mockImplementation(() => chain); - jest - .spyOn(ConfigurationService.prototype, "getProjectTriggeringTheJobName") - .mockImplementation(() => getProjectTriggeringTheJobName!); - expect(config.getProjectTriggeringTheJob()).toStrictEqual(nodeFound); - } - ); - - test.each([ - [ - "default github", - { - ...defaultNodeValue, - platformId: DEFAULT_GITHUB_PLATFORM.id, - project: "owner/repo", - }, - DEFAULT_GITHUB_PLATFORM, - ], - [ - "default gitlab", - { - ...defaultNodeValue, - platformId: DEFAULT_GITLAB_PLATFORM.id, - project: "owner/repo", - }, - DEFAULT_GITLAB_PLATFORM, - ], - [ - "custom platform", - { ...defaultNodeValue, platformId: "ghes", project: "owner/repo" }, - { ...DEFAULT_GITHUB_PLATFORM, id: "ghes" }, - ], - [ - "undefined", - { ...defaultNodeValue, project: "owner/repo" }, - DEFAULT_GITLAB_PLATFORM, - ], - ])("getPlatform", (_title, node, expected) => { - jest - .spyOn(ConfigurationService.prototype, "nodeChain", "get") - .mockReturnValueOnce([node]); - jest - .spyOn(ConfigurationService.prototype, "definitionFile", "get") - .mockReturnValueOnce({ - version: "2.3", - platforms: [{ ...DEFAULT_GITHUB_PLATFORM, id: "ghes" }], - }); - jest - .spyOn(BaseConfiguration.prototype, "getDefaultPlatformConfig") - .mockReturnValueOnce(DEFAULT_GITLAB_PLATFORM); - expect( - config.getPlatform(node.project.split("/")[0], node.project.split("/")[1]) - ).toStrictEqual(expected); - }); -}); diff --git a/test/unitary/service/config/definition-file-reader.test.ts b/test/unitary/service/config/definition-file-reader.test.ts deleted file mode 100644 index 7d75f034..00000000 --- a/test/unitary/service/config/definition-file-reader.test.ts +++ /dev/null @@ -1,249 +0,0 @@ -import "reflect-metadata"; -import { EventData, GitConfiguration } from "@bc/domain/configuration"; -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; -import { defaultInputValues, FlowType, InputValues } from "@bc/domain/inputs"; -import { BaseConfiguration } from "@bc/service/config/base-configuration"; -import { getTreeForProject, readDefinitionFile, Node, getFullDownstreamProjects, getUpstreamProjects, DEFAULT_GITHUB_PLATFORM } from "@kie/build-chain-configuration-reader"; -import fs from "fs"; -import path from "path"; -import Container from "typedi"; -import { DefinitionFileReader } from "@bc/service/config/definition-file-reader"; -import { CLIActionType, ToolType } from "@bc/domain/cli"; -import { GitTokenService } from "@bc/service/git/git-token-service"; -jest.mock("@kie/build-chain-configuration-reader"); - -// disable logs -jest.spyOn(global.console, "log"); - -Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.GITHUB_EVENT); -Container.get(GitTokenService).setToken( - DEFAULT_GITHUB_PLATFORM.id, - "faketoken" -); - -class TestConfiguration extends BaseConfiguration { - getFlowType(): FlowType { - return FlowType.BRANCH; - } - - getToolType(): ToolType { - return ToolType.PROJECT_LIST; - } - - loadGitConfiguration(): GitConfiguration { - return {}; - } - - loadToken(): void {return;} - - async loadGitEvent(): Promise { - return {}; - } -} - -let definitionFileReader: DefinitionFileReader; - -beforeEach(() => { - definitionFileReader = new DefinitionFileReader(new TestConfiguration()); -}); - -describe.each([ - ["branch flow fdb", FlowType.BRANCH], - ["full downstream", FlowType.FULL_DOWNSTREAM] -])("generate node chain: %p", (_title: string, flowType: FlowType) => { - const data = JSON.parse(fs.readFileSync(path.join(__dirname, "projectNodes.json"), "utf8")); - const mockData: Node[] = data.mock; - - beforeEach(() => { - jest.spyOn(TestConfiguration.prototype, "getFlowType").mockImplementation(() => flowType); - jest.spyOn(BaseConfiguration.prototype, "parsedInputs", "get").mockImplementation(() => { - return { ...defaultInputValues, fullProjectDependencyTree: true }; - }); - }); - - test("success: from source generated placeholder", async () => { - const getFullDownstreamProjectsMock = getFullDownstreamProjects as jest.Mock; - getFullDownstreamProjectsMock.mockReturnValueOnce(mockData); - - await definitionFileReader.generateNodeChain(mockData[0].project); - expect(getFullDownstreamProjectsMock).toHaveBeenCalledTimes(1); - }); - - test("success: from target generated placeholder", async () => { - const getFullDownstreamProjectsMock = getFullDownstreamProjects as jest.Mock; - getFullDownstreamProjectsMock - .mockImplementationOnce(() => { - throw new Error("Invalid definition file"); - }) - .mockReturnValueOnce(mockData); - - await definitionFileReader.generateNodeChain(mockData[0].project); - expect(getFullDownstreamProjectsMock).toHaveBeenCalledTimes(2); - }); - - test("failure", async () => { - const getFullDownstreamProjectsMock = getFullDownstreamProjects as jest.Mock; - getFullDownstreamProjectsMock.mockImplementation(() => { - throw new Error("Invalid definition file"); - }); - await expect(definitionFileReader.generateNodeChain("test")).rejects.toThrowError(); - }); -}); - -describe.each([ - ["branch flow no fdb", FlowType.BRANCH], - ["cross pr", FlowType.CROSS_PULL_REQUEST], -])("generate node chain: %p", (_title: string, flowType: FlowType) => { - const data = JSON.parse(fs.readFileSync(path.join(__dirname, "projectNodes.json"), "utf8")); - const mockData: Node[] = data.mock; - - beforeEach(() => { - jest.spyOn(TestConfiguration.prototype, "getFlowType").mockImplementation(() => flowType); - jest.spyOn(BaseConfiguration.prototype, "parsedInputs", "get").mockImplementation(() => defaultInputValues); - }); - - test("success: from source generated placeholder", async () => { - const getUpstreamProjectsMock = getUpstreamProjects as jest.Mock; - getUpstreamProjectsMock.mockReturnValueOnce(mockData); - - await definitionFileReader.generateNodeChain(mockData[0].project); - expect(getUpstreamProjectsMock).toHaveBeenCalledTimes(1); - }); - - test("success: from target generated placeholder", async () => { - const getUpstreamProjectsMock = getUpstreamProjects as jest.Mock; - getUpstreamProjectsMock.mockImplementationOnce(() => { - throw new Error("Invalid definition file"); - }).mockReturnValueOnce(mockData); - - await definitionFileReader.generateNodeChain(mockData[0].project); - expect(getUpstreamProjectsMock).toHaveBeenCalledTimes(2); - }); - - test("failure", async () => { - const getUpstreamProjectsMock = getUpstreamProjects as jest.Mock; - getUpstreamProjectsMock.mockImplementation(() => { - throw new Error("Invalid definition file"); - }); - await expect(definitionFileReader.generateNodeChain("test")).rejects.toThrowError(); - }); -}); - -describe("generate node chain: single pr", () => { - const data = JSON.parse(fs.readFileSync(path.join(__dirname, "projectNodes.json"), "utf8")); - const mockData: Node[] = data.mock; - - beforeEach(() => { - jest.spyOn(TestConfiguration.prototype, "getFlowType").mockImplementation(() => FlowType.SINGLE_PULL_REQUEST); - jest.spyOn(BaseConfiguration.prototype, "parsedInputs", "get").mockImplementation(() => defaultInputValues); - }); - - test("success: from source generated placeholder", async () => { - const getTreeForProjectMock = getTreeForProject as jest.Mock; - getTreeForProjectMock.mockReturnValueOnce(mockData[0]); - - await definitionFileReader.generateNodeChain(mockData[0].project); - expect(getTreeForProjectMock).toHaveBeenCalledTimes(1); - }); - - test("success: from target generated placeholder", async () => { - const getTreeForProjectMock = getTreeForProject as jest.Mock; - getTreeForProjectMock.mockImplementationOnce(() => { - throw new Error("Invalid definition file"); - }).mockReturnValueOnce(mockData[0]); - - await definitionFileReader.generateNodeChain(mockData[0].project); - expect(getTreeForProjectMock).toHaveBeenCalledTimes(2); - }); - - test("failure", async () => { - const getTreeForProjectMock = getTreeForProject as jest.Mock; - getTreeForProjectMock.mockImplementation(() => { - throw new Error("Invalid definition file"); - }); - await expect(definitionFileReader.generateNodeChain("test")).rejects.toThrowError(); - }); -}); - -describe("get definition file", () => { - beforeEach(() => { - jest.spyOn(BaseConfiguration.prototype, "parsedInputs", "get").mockImplementation(() => defaultInputValues); - }); - - test("success: from source generated placeholder", async () => { - const readDefinitionFileMock = readDefinitionFile as jest.Mock; - readDefinitionFileMock.mockReturnValueOnce({version: "2.1"}); - - const nodeChain = await definitionFileReader.getDefinitionFile(); - expect(readDefinitionFileMock).toHaveBeenCalledTimes(1); - expect(nodeChain).toStrictEqual({version: "2.1"}); - }); - - test("success: from target generated placeholder", async () => { - const readDefinitionFileMock = readDefinitionFile as jest.Mock; - readDefinitionFileMock.mockImplementationOnce(() => { - throw new Error("Invalid definition file"); - }).mockReturnValueOnce({version: "2.1"}); - - const nodeChain = await definitionFileReader.getDefinitionFile(); - expect(readDefinitionFileMock).toHaveBeenCalledTimes(2); - expect(nodeChain).toStrictEqual({version: "2.1"}); - }); - - test("failure", async () => { - const readDefinitionFileMock = readDefinitionFile as jest.Mock; - readDefinitionFileMock.mockImplementation(() => { - throw new Error("Invalid definition file"); - }); - await expect(definitionFileReader.getDefinitionFile()).rejects.toThrowError(); - }); -}); - -describe("generate node chain: tools", () => { - const getUpstreamProjectsMock = getUpstreamProjects as jest.Mock; - const getFullDownstreamProjectsMock = getFullDownstreamProjects as jest.Mock; - let currentInput: InputValues; - - beforeEach(async () => { - currentInput = { - ...defaultInputValues, - CLICommand: CLIActionType.TOOLS, - }; - - jest - .spyOn(BaseConfiguration.prototype, "parsedInputs", "get") - .mockImplementation(() => currentInput); - }); - - afterEach(() => { - currentInput = { - ...defaultInputValues, - CLICommand: CLIActionType.TOOLS, - }; - }); - - test.each([ - ["upstream", false, 1, 0], - ["full downstream", true, 0, 1] - ])("project list: %p", async (_title, fullProjectDependencyTree: boolean, numUpstream: number, numFDB: number) => { - currentInput = { - ...currentInput, - fullProjectDependencyTree - }; - - jest.spyOn(TestConfiguration.prototype, "getToolType").mockImplementation(() => ToolType.PROJECT_LIST); - getUpstreamProjectsMock.mockReturnValueOnce([]); - getFullDownstreamProjectsMock.mockReturnValueOnce([]); - - await definitionFileReader.generateNodeChain("test"); - - expect(getUpstreamProjectsMock).toHaveBeenCalledTimes(numUpstream); - expect(getFullDownstreamProjectsMock).toHaveBeenCalledTimes(numFDB); - }); - - test("invalid tool", async () => { - jest.spyOn(TestConfiguration.prototype, "getToolType").mockImplementation(() => "something" as ToolType); - await expect(definitionFileReader.generateNodeChain("test")).rejects.toThrowError(); - }); -}); \ No newline at end of file diff --git a/test/unitary/service/config/projectNodes.json b/test/unitary/service/config/projectNodes.json deleted file mode 100644 index 64ee4d8f..00000000 --- a/test/unitary/service/config/projectNodes.json +++ /dev/null @@ -1,127 +0,0 @@ -{ - "mock": [ - { - "project": "root", - "dependencies": [{ "project": "depend" }], - "parent": [ - { - "project": "parent", - "dependencies": [], - "parent": [ - { - "project": "grandparent" - } - ] - }, - { - "project": "parent", - "dependencies": [], - "parent": [ - { - "project": "grandparent" - } - ], - "children": [ - { - "project": "sibling" - } - ], - "build": { - "build-command": { - "after": { - "upstream": "upstream", - "downstream": ["downstream"] - }, - "before": { - "upstream": "upstream", - "downstream": ["downstream"], - "current": ["current1", "current2"] - }, - "upstream": "upstream", - "downstream": "dowstream", - "current": ["current"] - } - } - }, - { - "project": "parent", - "dependencies": [{ "project": "depend" }], - "children": [ - { - "project": "sibling" - } - ] - } - ], - "children": [ - { - "project": "child", - "dependencies": [], - "parent": [ - { - "project": "grandparent" - } - ] - }, - { - "project": "child", - "dependencies": [], - "parent": [ - { - "project": "grandparent" - } - ], - "children": [ - { - "project": "sibling" - } - ] - }, - { - "project": "child", - "dependencies": [{ "project": "depend" }], - "children": [ - { - "project": "sibling" - } - ], - "build": { - "build-command": { - "after": { - "upstream": "upstream", - "downstream": ["downstream"] - }, - "before": { - "upstream": "upstream", - "downstream": ["downstream"], - "current": ["current1", "current2"] - }, - "upstream": "upstream", - "downstream": "dowstream", - "current": ["current"] - } - } - } - ], - "build": { - "build-command": { - "after": { - "upstream": "upstream", - "downstream": ["downstream"] - }, - "before": { - "upstream": "upstream", - "downstream": ["downstream"], - "current": ["current1", "current2"] - }, - "upstream": "upstream", - "downstream": "dowstream", - "current": ["current"] - } - }, - "mapping": { - "exclude": ["abc", "def"] - } - } - ] -} diff --git a/test/unitary/service/flow/flow-service.test.ts b/test/unitary/service/flow/flow-service.test.ts deleted file mode 100644 index 02739178..00000000 --- a/test/unitary/service/flow/flow-service.test.ts +++ /dev/null @@ -1,176 +0,0 @@ -import "reflect-metadata"; -import { UploadResponse } from "@actions/artifact"; -import { CheckedOutNode } from "@bc/domain/checkout"; -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; -import { ExecutionResult } from "@bc/domain/execute-command-result"; -import { FlowType } from "@bc/domain/inputs"; -import { CheckoutService } from "@bc/service/checkout/checkout-service"; -import { ExecuteCommandService } from "@bc/service/command/execute-command-service"; -import { ConfigurationService } from "@bc/service/config/configuration-service"; -import { FlowService } from "@bc/service/flow/flow-service"; -import { GithubActionLoggerService } from "@bc/service/logger/github-action-logger-service"; -import Container from "typedi"; -import { ArtifactService } from "@bc/service/artifacts/artifact-service"; -import { Node } from "@kie/build-chain-configuration-reader"; -import { defaultNodeValue } from "@bc/domain/node"; - -const nodeChain: Node[] = [ - { - ...defaultNodeValue, - project: "owner1/project1", - before: { - upstream: ["cmd1"], - downstream: [], - current: [], - }, - }, - { - ...defaultNodeValue, - project: "owner2/project2", - before: { - current: ["cmd2-before"], - downstream: [], - upstream: [], - }, - commands: { - upstream: [], - downstream: [], - current: ["cmd2-current"], - }, - after: { - upstream: [], - downstream: [], - current: [], - }, - }, - { - ...defaultNodeValue, - project: "owner3/project3", - after: { - upstream: [], - downstream: [], - current: ["cmd3"], - }, - commands: { - upstream: [], - downstream: [], - current: [], - }, - }, -]; - -const checkoutInfo: CheckedOutNode[] = [ - { - node: nodeChain[0], - }, - { - node: nodeChain[1], - checkoutInfo: { - sourceBranch: "main", - sourceGroup: "owner2", - sourceName: "project2", - targetBranch: "main", - targetGroup: "owner2", - targetName: "project2", - merge: false, - repoDir: "owner2_project2", - }, - }, - { - node: nodeChain[2], - checkoutInfo: { - sourceBranch: "dev", - sourceGroup: "owner3-forked", - sourceName: "project3-forked", - targetBranch: "main", - targetGroup: "owner3", - targetName: "project3", - merge: true, - repoDir: "owner3_project3", - }, - }, -]; - -const executionResult1 = { - node: nodeChain[0], - executeCommandResults: [], -}; - -const executionResult2 = { - node: nodeChain[1], - executeCommandResults: [ - { - startingDate: 0, - endingDate: 2, - time: 2, - command: "cmd2", - result: ExecutionResult.OK, - errorMessage: "", - }, - ], -}; - -const executionResult3 = { - node: nodeChain[2], - executeCommandResults: [ - { - startingDate: 0, - endingDate: 3, - time: 3, - command: "cmd3", - result: ExecutionResult.NOT_OK, - errorMessage: "error", - }, - ], -}; - -const artifactUploadResults: PromiseSettledResult[] = []; - -test("run flow", async () => { - // entry point does not make any difference for this function - Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.GITHUB_EVENT); - - // flow type does not make a difference for this function - const flowType = FlowType.BRANCH; - jest.spyOn(ConfigurationService.prototype, "getFlowType").mockImplementation(() => flowType); - - jest.spyOn(ConfigurationService.prototype, "nodeChain", "get").mockImplementation(() => nodeChain); - jest.spyOn(ConfigurationService.prototype, "getStarterProjectName").mockImplementation(() => nodeChain[1].project); - jest.spyOn(ConfigurationService.prototype, "getStarterNode").mockImplementation(() => nodeChain[1]); - jest - .spyOn(ConfigurationService.prototype, "skipExecution") - .mockImplementationOnce(() => true) - .mockImplementationOnce(() => false) - .mockImplementationOnce(() => false); - jest.spyOn(CheckoutService.prototype, "checkoutDefinitionTree").mockImplementation(async () => checkoutInfo); - jest.spyOn(ExecuteCommandService.prototype, "executeNodeCommands").mockImplementationOnce(async () => [ - executionResult1, executionResult1, executionResult1 - ]); - jest.spyOn(ExecuteCommandService.prototype, "executeNodeCommands").mockImplementationOnce(async () => [ - executionResult2, executionResult2, executionResult2 - ]); - jest.spyOn(ExecuteCommandService.prototype, "executeNodeCommands").mockImplementationOnce(async () => [ - executionResult3, executionResult3, executionResult3 - ]); - jest.spyOn(ArtifactService.prototype, "uploadNodes").mockImplementation(async () => []); - - jest.spyOn(GithubActionLoggerService.prototype, "startGroup").mockImplementation(_msg => undefined); - jest.spyOn(GithubActionLoggerService.prototype, "endGroup").mockImplementation(() => undefined); - jest.spyOn(GithubActionLoggerService.prototype, "debug").mockImplementation(_msg => undefined); - jest.spyOn(GithubActionLoggerService.prototype, "info").mockImplementation(_msg => undefined); - jest.spyOn(GithubActionLoggerService.prototype, "error").mockImplementation(_msg => undefined); - - const flowService = Container.get(FlowService); - const result = await flowService.run(); - - expect(result).toStrictEqual({ - checkoutInfo, - artifactUploadResults, - executionResult: [ - [executionResult1, executionResult1, executionResult1], - [executionResult2, executionResult2, executionResult2], - [executionResult3, executionResult3, executionResult3] - ], - }); -}); diff --git a/test/unitary/service/git/gerrit-client.test.ts b/test/unitary/service/git/gerrit-client.test.ts deleted file mode 100644 index 363f7303..00000000 --- a/test/unitary/service/git/gerrit-client.test.ts +++ /dev/null @@ -1,171 +0,0 @@ -import "reflect-metadata"; -import axios from "axios"; -import Container from "typedi"; -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; -import { GerritAPIClient } from "@bc/service/git/gerrit-api-client"; -jest.mock("axios"); -const axiosSpy = axios.create as jest.Mock; -const baseUrl = "baseUrl"; -const id = "id"; -const owner = "owner"; -const repo = "repo"; -let gerritAPIClient: GerritAPIClient; - -Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.CLI); - -describe("repos", () => { - test("getBranch", async () => { - const getSpy = setupSpy("data", 200); - gerritAPIClient = new GerritAPIClient(baseUrl, id); - - const branch = "branch"; - await expect( - gerritAPIClient.repos.getBranch({ - owner, - repo, - branch, - }) - ).resolves.toStrictEqual({ data: "data", status: 200 }); - expect(getSpy).toHaveBeenCalledWith( - `/projects/${encodeURIComponent(`${owner}/${repo}`)}/branches/${branch}` - ); - }); - - test("getRepo", async () => { - const getSpy = setupSpy("data", 200); - gerritAPIClient = new GerritAPIClient(baseUrl, id); - - await expect( - gerritAPIClient.repos.get({ - owner, - repo, - }) - ).resolves.toStrictEqual({ data: "data", status: 200 }); - expect(getSpy).toHaveBeenCalledWith( - `/projects/${encodeURIComponent(`${owner}/${repo}`)}` - ); - }); - - test("listForkName", async () => { - const getSpy = setupSpy("data", 200); - gerritAPIClient = new GerritAPIClient(baseUrl, id); - - await expect( - gerritAPIClient.repos.listForkName({ - owner, - repo, - page: 1, - }) - ).resolves.toStrictEqual({ - data: [], - status: 200, - }); - expect(getSpy).toBeCalledTimes(0); - }); - - test("getForkNameForTargetRepoGivenSourceOwner", async () => { - const getSpy = setupSpy("data", 200); - gerritAPIClient = new GerritAPIClient(baseUrl, id); - - await expect( - gerritAPIClient.repos.getForkNameForTargetRepoGivenSourceOwner({ - targetOwner: owner, - targetRepo: repo, - sourceOwner: "owner3", - }) - ).resolves.toStrictEqual({ status: 200, data: undefined }); - expect(getSpy).toBeCalledTimes(0); - }); -}); - -describe("pulls", () => { - test("get", async () => { - const getSpy = setupSpy( - { - branch: "branch", - current_revision: "abc", - abc: { - fetch: { - "anonymous http": { - url: "http://url", - }, - }, - web_links: [ - {}, - { - url: "/path", - }, - ], - }, - }, - 200 - ); - gerritAPIClient = new GerritAPIClient(baseUrl, id); - - const pullNumber = 1; - await expect( - gerritAPIClient.pulls.get({ - owner, - repo, - pull_number: pullNumber, - }) - ).resolves.toStrictEqual({ - data: { - html_url: "http://url/path", - head: { - user: { - login: owner, - }, - ref: "abc", - }, - base: { - ref: "branch", - repo: { - full_name: `${owner}/${repo}`, - name: repo, - owner: { - login: owner, - }, - }, - }, - }, - status: 200, - }); - expect(getSpy).toHaveBeenCalledWith( - `/changes/${encodeURIComponent(`${owner}/${repo}`)}~${pullNumber}` - ); - }); - - test.each([ - ["opened", "base", "status:open+branch:base"], - ["closed", undefined, "status:merged"], - ["merged", undefined, "status:merged"], - ])("list: %p", async (state, branch, expectedQuery) => { - const getSpy = setupSpy(["data"], 200); - gerritAPIClient = new GerritAPIClient(baseUrl, id); - - await expect( - gerritAPIClient.pulls.list({ - owner, - repo, - base: branch, - state: state as unknown as "opened" | "closed" | "merged", - }) - ).resolves.toStrictEqual({ data: ["data"], status: 200 }); - expect(getSpy).toHaveBeenCalledWith("/changes/", { - params: { - q: `project:${owner}/${repo}+${expectedQuery}`, - }, - }); - }); -}); - -function setupSpy(data: unknown, status: number) { - const getSpy = jest.fn(_url => ({ - data, - status, - })); - axiosSpy.mockReturnValueOnce({ get: getSpy }); - return getSpy; -} diff --git a/test/unitary/service/git/git-api-client.test.ts b/test/unitary/service/git/git-api-client.test.ts deleted file mode 100644 index de550700..00000000 --- a/test/unitary/service/git/git-api-client.test.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; -import { ConfigurationService } from "@bc/service/config/configuration-service"; -import { GitAPIClient } from "@bc/service/git/git-api-client"; -import { GitHubAPIClient } from "@bc/service/git/github-api-client"; -import { GitlabAPIClient } from "@bc/service/git/gitlab-api-client"; -import { - DEFAULT_GITHUB_PLATFORM, - DEFAULT_GITLAB_PLATFORM, - Platform, -} from "@kie/build-chain-configuration-reader"; -import "reflect-metadata"; -import Container from "typedi"; - -Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.CLI); - -describe("rest", () => { - test.each([ - ["github client", DEFAULT_GITHUB_PLATFORM, GitHubAPIClient], - ["gitlab client", DEFAULT_GITLAB_PLATFORM, GitlabAPIClient], - ])("%p", (_title, platform, clientInstance) => { - jest - .spyOn(ConfigurationService.prototype, "getPlatform") - .mockReturnValue(platform); - - const client = new GitAPIClient(); - const client1 = client.rest("owner", "project"); - const client2 = client.rest("owner", "project"); - - expect(client1).toBeInstanceOf(clientInstance); - expect(client2).toBeInstanceOf(clientInstance); - expect(client1).toEqual(client2); - }); - - test("invalid platform", () => { - jest - .spyOn(ConfigurationService.prototype, "getPlatform") - .mockReturnValueOnce({ - type: "some-platform", - } as unknown as Platform); - expect(() => new GitAPIClient().rest("owner", "project")).toThrowError(); - }); -}); diff --git a/test/unitary/service/git/git-api.test.ts b/test/unitary/service/git/git-api.test.ts deleted file mode 100644 index 5a3720ad..00000000 --- a/test/unitary/service/git/git-api.test.ts +++ /dev/null @@ -1,206 +0,0 @@ -import "reflect-metadata"; -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; -import Container from "typedi"; -import { Moctokit } from "@kie/mock-github"; -import { GitAPIService } from "@bc/service/git/git-api-service"; - -let git: GitAPIService; - -beforeAll(async () => { - // disable logs - jest.spyOn(global.console, "log"); -}); - -beforeEach(() => { - // create a fresh instance of git before each test - Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.CLI); - git = new GitAPIService(); -}); - -test.each([ - ["branch exists", true, ["testgroup", "repoA", "main"], 200], - [ - "branch does not exist", - false, - ["testgroup", "repoA", "non_existent_branch"], - 404, - ], - [ - "repo does not exist", - false, - ["testgroup", "non-existant-repo", "main"], - 404, - ], -])( - "doesBranchExist %p", - async ( - _title: string, - branchExists: boolean, - args: string[], - status: number - ) => { - const moctokit = new Moctokit(); - moctokit.rest.repos - .getBranch({ owner: args[0], repo: args[1], branch: args[2] }) - .reply({ status: status as 200 | 404, data: {} }); - await expect(git.doesBranchExist(args[0], args[1], args[2])).resolves.toBe( - branchExists - ); - } -); - -test.each([ - [ - "success: head", - true, - ["testgroup", "repoA"], - ["sbranch", undefined], - [{ title: "pr" }], - ], - [ - "success: base", - true, - ["testgroup", "repoA"], - [undefined, "sbranch"], - [{ title: "pr" }], - ], - [ - "success: head and base", - true, - ["testgroup", "repoA"], - ["tbranch", "sbranch"], - [{ title: "pr" }], - ], - ["success: no pr", false, ["testgroup", "repoA"], ["tbranch", "sbranch"], []], -])( - "hasPullRequest %p", - async ( - _title: string, - hasPR: boolean, - args: string[], - optionalArgs: (string | undefined)[], - data - ) => { - const moctokit = new Moctokit(); - let query = {}; - if (optionalArgs[0]) { - query = { ...query, head: optionalArgs[0] }; - } - if (optionalArgs[1]) { - query = { ...query, base: optionalArgs[1] }; - } - moctokit.rest.pulls - .list({ owner: args[0], repo: args[1], state: "open", ...query }) - .reply({ status: 200, data }); - await expect( - git.hasPullRequest(args[0], args[1], optionalArgs[0], optionalArgs[1]) - ).resolves.toBe(hasPR); - } -); - -test.each([ - ["failure: no head or base", ["testgroup", "repoA"], [undefined, undefined]], - ["failure: api error", ["testgroup", "repoA"], ["tbranch", "sbranch"]], -])( - "hasPullRequest %p", - async ( - _title: string, - args: string[], - optionalArgs: (string | undefined)[] - ) => { - await expect( - git.hasPullRequest(args[0], args[1], optionalArgs[0], optionalArgs[1]) - ).rejects.toThrowError(); - } -); - -test.each([ - [ - "success: same source and target owner", - true, - ["target1", "repoA", "target1", "repoA"], - ], - [ - "failure: same source and target owner", - false, - ["target2", "repoA", "target2", "repoA"], - ], - [ - "success: different source and target owner", - true, - ["target3", "repoA", "source", "repoA"], - ], - [ - "failure: different source and target owner", - false, - ["target4", "repoA", "source", "repoA"], - ], - [ - "success: different source and target owner / different repo name", - true, - ["target5", "repoA", "source", "repoA_fork"], - ], - [ - "failure: different source and target owner / different repo name", - false, - ["target6", "repoA", "source", "no_fork"], - ], -])( - "getForkName %p", - async (_title: string, testForSuccess: boolean, args: string[]) => { - const moctokit = new Moctokit(); - if (testForSuccess) { - moctokit.rest.repos - .get({ owner: args[0], repo: args[1] }) - .reply({ status: 200, data: {} }); - moctokit.rest.repos - .get({ owner: args[2], repo: args[3] }) - .reply({ status: 200, data: {} }); - moctokit.rest.repos.listForks({ owner: args[0], repo: args[1] }).reply({ - status: 200, - data: [{ name: args[3], owner: { login: args[2] } }], - }); - - await expect(git.getForkName(args[0], args[2], args[1])).resolves.toBe( - args[3] - ); - } else { - moctokit.rest.repos - .get({ owner: args[0], repo: args[1] }) - .reply({ status: 404, data: {} }); - moctokit.rest.repos - .listForks({ owner: args[2], repo: args[3] }) - .reply({ status: 200, data: [] }); - - await expect( - git.getForkName(args[0], args[2], args[1]) - ).rejects.toThrowError(); - } - } -); - -test.each([ - ["success", 200], - ["failure", 404], -])("getPullRequest %p", async (_title: string, status: number) => { - const moctokit = new Moctokit(); - moctokit.rest.pulls.get({ - owner: "owner", - repo: "repo", - pull_number: 128 - }).reply({ - status: status as 200 | 404, - data: {html_url: "some_pr", head: {user:{}}, base: {repo: {owner: {}}}} - }); - - if (status == 200) { - await expect(git.getPullRequest("owner", "repo", 128)).resolves.toMatchObject( - { - html_url: "some_pr", - } - ); - } else { - await expect(git.getPullRequest("owner", "repo", 128)).rejects.toThrowError(); - } -}); diff --git a/test/unitary/service/git/git-cli.test.ts b/test/unitary/service/git/git-cli.test.ts deleted file mode 100644 index 487b5e7a..00000000 --- a/test/unitary/service/git/git-cli.test.ts +++ /dev/null @@ -1,261 +0,0 @@ -import "reflect-metadata"; -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; -import { GitCLIService } from "@bc/service/git/git-cli"; -import { spawnSync } from "child_process"; -import fs from "fs"; -import path from "path"; -import Container from "typedi"; -import { assert } from "console"; -import { FileState, MockGithub, GitActionTypes } from "@kie/mock-github"; - -let git: GitCLIService; -let cwd: string; -let currentBranch: string; -let pushedBranches: string[]; -let localBranches: string[]; -let files: FileState[]; - -const mockGithub = new MockGithub( - { - repo: { - repoA: { - pushedBranches: ["sbranch", "tbranch"], - localBranches: ["lbranch"], - currentBranch: "main", - history: [ - { - action: GitActionTypes.PUSH, - branch: "main", - }, - { - action: GitActionTypes.PUSH, - branch: "sbranch", - }, - { - action: GitActionTypes.PUSH, - branch: "tbranch", - }, - ], - }, - }, - }, - path.join(__dirname, "setup-cli") -); - -beforeAll(async () => { - //setup - await mockGithub.setup(); - cwd = mockGithub.repo.getPath("repoA")!; - currentBranch = mockGithub.repo.getBranchState("repoA")!.currentBranch; - pushedBranches = mockGithub.repo.getBranchState("repoA")!.pushedBranches; - localBranches = mockGithub.repo.getBranchState("repoA")!.localBranches; - files = (await mockGithub.repo.getFileSystemState("repoA"))!; - - //make sure the setup is correct to run this test suite - assert( - pushedBranches.length > 1, - "your configuration must have a repository with pushed branches other than main" - ); - assert( - localBranches.length > 0, - "your configuration must have a repository with local branches i.e. not pushed branches" - ); - assert( - files.length > 0, - "your configuration needs at least 1 file committed to some branch which is not the current branch" - ); - - // disable logs - jest.spyOn(global.console, "log"); -}); - -afterAll(async () => { - await mockGithub.teardown(); -}); - -beforeEach(() => { - // create a fresh instance of git before each test - Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.CLI); - git = new GitCLIService(); -}); - -test("version", async () => { - const result = await git.version(); - const actualVersion = spawnSync("git", ["version"]).stdout.toString(); - const match = actualVersion.match(/(\d+\.\d+(\.\d+)?)/); - if (match) { - expect(result).toEqual(match[1]); - } else { - expect(result).toBe(undefined); - } -}); - -test.each([ - ["destination does not exist", false, 0], - ["destination exists", true, 1], -])("clone %p", async (_title: string, destExist: boolean, numRmCalls: number) => { - // Setup - const dest = path.join(__dirname, "git-clone-test"); - - if (destExist) { - // create the folder before cloning the repo - fs.mkdirSync(dest); - } - - const rmSyncSpy = jest.spyOn(fs, "rmSync"); - - await git.clone(cwd, dest, "main"); - - expect(rmSyncSpy).toBeCalledTimes(numRmCalls); - - expect(fs.existsSync(dest)).toBe(true); - const files = fs.readdirSync(dest); - expect(files.length).toBeGreaterThan(0); - - // Clean up - rmSyncSpy.mockRestore(); - fs.rmSync(dest, { recursive: true }); -}); - -test("fetch", async () => { - await expect(git.fetch(cwd, currentBranch)).resolves.not.toThrowError(); -}); - -test("getCommonAncestor", async () => { - // using the code from original codebase to test whether the results match - const mergeBase = async (dir: string, ...refs: string[]) => { - if (refs.length === 1) { - return refs[0]; - } else if (refs.length < 1) { - throw new Error("empty refs!"); - } - let todo = refs; - - while (todo.length > 1) { - const rawCommand = spawnSync("git", ["merge-base", todo[0], todo[1]], { - cwd: dir, - }); - if (rawCommand.status === 1) { - return null; - } - const base = rawCommand.stdout.toString().trim(); - todo = [base].concat(todo.slice(2)); - } - return todo[0]; - }; - const result = await Promise.all([ - mergeBase(cwd, ...pushedBranches), - git.getCommonAncestor(cwd, ...pushedBranches), - ]); - expect(result[1]).toEqual(result[0]); -}); - -test("getReachableParentCommits", async () => { - const ref = pushedBranches[1]; - - // using code from original codebase to compare results - const rawCommand = spawnSync( - "git", - ["rev-list", "--parents", `${ref}..HEAD`], - { cwd } - ); - const output = rawCommand.stdout - .toString() - .split(/\n/g) - .map(line => line.split(/ /g).slice(1)) - .filter(commit => commit.length > 0) - .flat(); - const result = await git.getReachableParentCommits(cwd, ref); - expect(result).toStrictEqual(output); -}); - -test("merge", async () => { - // get a branch which is not the current branch and has a file committed - let branchToMergeFrom = ""; - for (let i = 0; i < files.length; i++) { - if (files[i].branch !== currentBranch) { - branchToMergeFrom = files[i].branch; - break; - } - } - assert( - branchToMergeFrom !== "", - "your configuration needs at least 1 file committed to some branch which is not on the current branch" - ); - - // merge the found branch to the current branch - await expect( - git.merge(cwd, "origin", branchToMergeFrom) - ).resolves.not.toThrowError(); - - // verify that files actually exist after branch is merged - for (let i = 0; i < files.length; i++) { - if (files[i].branch === branchToMergeFrom) { - expect(fs.existsSync(path.join(cwd, files[i].path))).toBe(true); - } - } -}); - -test("head", async () => { - const output = spawnSync("git", ["show-ref", "--head", "-s", "/HEAD"], { - cwd, - }).stdout.toString(); - const result = await git.head(cwd); - expect(result).toEqual(output); -}); - -test("sha", async () => { - const ref = pushedBranches[1]; - const output = spawnSync( - "git", - ["show-ref", "-s", `refs/remotes/origin/${ref}`], - { cwd } - ).stdout.toString(); - const result = await git.sha(cwd, ref); - expect(result).toEqual(output); -}); - -test("rename", async () => { - const ref = localBranches[0]; - const newName = "newBranchName"; - - //switch to local branch - spawnSync("git", ["checkout", ref], { cwd }); - - // change name - await git.rename(cwd, newName); - - // get the current branch name - const output = spawnSync("git", ["branch", "--show-current"], { cwd }) - .stdout.toString() - .trim(); - - expect(output).toEqual(newName); - - // go back to the original current branch - spawnSync("git", ["checkout", currentBranch], { cwd }); -}); - -test("rebase", async () => { - await expect(git.rebase(cwd, currentBranch)).resolves.not.toThrowError(); -}); - -test.each([ - ["with force", true], - ["without force", false], -])("push %p", async (title: string, withForce: boolean) => { - const expressionToTest = "GIT_CHERRY_SHOULD_NOT_INCLUDE_THIS_MSG"; - // create file to push - fs.writeFileSync(path.join(cwd, "test-push"), "testing git push"); - - // add and commit the file - spawnSync("git", ["add", "."], { cwd }); - spawnSync("git", ["commit", "-m", expressionToTest], { cwd }); - - await git.push(cwd, withForce, currentBranch); - - // use git cherry to verify this commit was pushed - const output = spawnSync("git", ["cherry", "-v"], { cwd }).stdout.toString(); - expect(output.includes(expressionToTest)).toBe(false); -}); diff --git a/test/unitary/service/git/git-token-service.test.ts b/test/unitary/service/git/git-token-service.test.ts deleted file mode 100644 index be6c5bc3..00000000 --- a/test/unitary/service/git/git-token-service.test.ts +++ /dev/null @@ -1,42 +0,0 @@ -import "reflect-metadata"; -import { GitTokenService } from "@bc/service/git/git-token-service"; -import Container from "typedi"; - -let gitTokenService: GitTokenService; -beforeEach(() => { - Container.reset(); - gitTokenService = Container.get(GitTokenService); -}); - -describe("git token service", () => { - test("get token with tokenId", () => { - process.env["tokenId"] = "token"; - expect(gitTokenService.getToken("id", "tokenId")).toBe("token"); - delete process.env["tokenId"]; - }); - - test("get token without tokenId", () => { - gitTokenService.setToken("id", "token"); - expect(gitTokenService.getToken("id")).toBe("token"); - }); - - test("set token using env: id already exists", () => { - gitTokenService.setToken("id", "token"); - process.env["tokenId"] = "other token"; - gitTokenService.setTokenUsingEnv("id", "tokenId"); - expect(gitTokenService.getToken("id")).toBe("token"); - delete process.env["tokenId"]; - }); - - test("set token using env: token does not exist in env", () => { - gitTokenService.setTokenUsingEnv("id", "tokenId"); - expect(gitTokenService.getToken("id")).toBe(undefined); - }); - - test("set token using env", () => { - process.env["tokenId"] = "other token"; - gitTokenService.setTokenUsingEnv("id", "tokenId"); - expect(gitTokenService.getToken("id")).toBe("other token"); - delete process.env["tokenId"]; - }); -}); \ No newline at end of file diff --git a/test/unitary/service/git/github-client.test.ts b/test/unitary/service/git/github-client.test.ts deleted file mode 100644 index 26e12158..00000000 --- a/test/unitary/service/git/github-client.test.ts +++ /dev/null @@ -1,353 +0,0 @@ -import "reflect-metadata"; -import { constants } from "@bc/domain/constants"; -import Container from "typedi"; -import { EntryPoint } from "@bc/domain/entry-point"; -import { Moctokit } from "@kie/mock-github"; -import { GitTokenService } from "@bc/service/git/git-token-service"; -import { DEFAULT_GITHUB_PLATFORM } from "@kie/build-chain-configuration-reader"; -import { GitHubAPIClient } from "@bc/service/git/github-api-client"; - -jest.spyOn(global.console, "log"); -Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.CLI); - -describe("pulls", () => { - let octokit: GitHubAPIClient; - - beforeEach(() => { - octokit = new GitHubAPIClient( - DEFAULT_GITHUB_PLATFORM.apiUrl, - DEFAULT_GITHUB_PLATFORM.id - ); - }); - - test.each([ - ["opened", "open"], - ["closed", "closed"], - ["merged", "closed"], - [undefined, "all"], - ])("list - %p", async (state, expectedState) => { - const moctokit = new Moctokit(); - moctokit.rest.pulls - .list({ - owner: "owner", - repo: "repo", - state: expectedState as "open" | "closed" | "all" | undefined, - }) - .reply({ - status: 200, - data: [], - }); - await expect( - octokit.pulls.list({ - owner: "owner", - repo: "repo", - state: state as "opened" | "closed" | "merged" | undefined, - }) - ).resolves.toMatchObject({ - status: 200, - data: [], - }); - }); - - test("get", async () => { - const moctokit = new Moctokit(); - moctokit.rest.pulls - .get({ - owner: "owner", - repo: "repo", - pull_number: 1, - }) - .reply({ - status: 200, - data: { - head: { - user: {}, - }, - base: { - repo: { - owner: {}, - }, - }, - }, - }); - await expect( - octokit.pulls.get({ - owner: "owner", - repo: "repo", - pull_number: 1, - }) - ).resolves.toMatchObject({ - status: 200, - data: {}, - }); - }); -}); - -describe("repos", () => { - let octokit: GitHubAPIClient; - - beforeEach(() => { - octokit = new GitHubAPIClient( - DEFAULT_GITHUB_PLATFORM.apiUrl, - DEFAULT_GITHUB_PLATFORM.id - ); - }); - - test.each([ - ["found", "source", "forked"], - ["not found", "not source", undefined], - ])( - "getForkNameForTargetRepoGivenSourceOwner - %p", - async (_title, data, expected) => { - const moctokit = new Moctokit(); - moctokit.rest.repos - .listForks({ - owner: "owner", - repo: "repo", - }) - .reply({ - status: 200, - data: [ - { - name: "forked", - owner: { - login: data, - }, - }, - ], - }) - .reply({ - status: 200, - data: [], - }); - await expect( - octokit.repos.getForkNameForTargetRepoGivenSourceOwner({ - targetOwner: "owner", - targetRepo: "repo", - sourceOwner: "source", - }) - ).resolves.toMatchObject({ - status: 200, - data: expected, - }); - } - ); - - test("listForkName", async () => { - const moctokit = new Moctokit(); - moctokit.rest.repos - .listForks({ - owner: "owner1", - repo: "repo1", - }) - .reply({ - status: 200, - data: [ - { - owner: { - login: "owner1", - }, - name: "repo1", - }, - ], - }); - await expect( - octokit.repos.listForkName({ - owner: "owner1", - repo: "repo1", - }) - ).resolves.toStrictEqual({ - status: 200, - data: [{ owner: "owner1", repo: "repo1" }], - }); - }); -}); - -describe("token pool auth", () => { - test("Rotate through all tokens", async () => { - const tokenService = Container.get(GitTokenService); - tokenService.setToken(DEFAULT_GITHUB_PLATFORM.id, "token1"); - tokenService.setGithubTokenPool(DEFAULT_GITHUB_PLATFORM.id, [ - "token1", - "token3", - "token2", - ]); - const resetAfter = `${~~(new Date().getTime() / 1000) + 3600}`; // now + 1 hour - const octokit = new GitHubAPIClient( - DEFAULT_GITHUB_PLATFORM.apiUrl, - DEFAULT_GITHUB_PLATFORM.id - ); - const moctokit = new Moctokit(); - - moctokit.rest.repos - .get({ - owner: "kie", - repo: "kie", - }) - .matchReqHeaders({ - authorization: "token token1", - }) - .setResponse([ - { - status: 200, - data: { full_name: "kie/kie" }, - }, - { - status: 403, - data: { message: "You have exceeded your rate limit" }, - headers: { - "x-ratelimit-remaining": "0", - "x-ratelimit-reset": resetAfter, - }, - }, - ]) - .reply() - .matchReqHeaders({ - authorization: "token token2", - }) - .setResponse([ - { - status: 200, - data: { full_name: "kie/kie" }, - repeat: 2, - }, - { - status: 403, - data: { full_name: "kie/kie" }, - headers: { - "x-ratelimit-remaining": "0", - "x-ratelimit-reset": resetAfter, - }, - }, - ]) - .reply() - .matchReqHeaders({ - authorization: "token token3", - }) - .setResponse([ - { - status: 200, - data: { full_name: "kie/kie" }, - repeat: 2, - }, - { - status: 403, - data: { message: "You have exceeded your rate limit" }, - headers: { - "x-ratelimit-remaining": "0", - "x-ratelimit-reset": resetAfter, - }, - }, - ]) - .reply(); - - for (let i = 0; i < 5; i += 1) { - const { data } = await octokit.repos.get({ - owner: "kie", - repo: "kie", - }); - expect(data).toStrictEqual({ full_name: "kie/kie" }); - } - await expect( - octokit.repos.get({ - owner: "kie", - repo: "kie", - }) - ).rejects.toThrowError(); - }); - - test("Rotate through all tokens and reuse reset ones", async () => { - const tokenService = Container.get(GitTokenService); - tokenService.setToken(DEFAULT_GITHUB_PLATFORM.id, "token1"); - tokenService.setGithubTokenPool(DEFAULT_GITHUB_PLATFORM.id, [ - "token1", - "token3", - "token2", - ]); - const octokit = new GitHubAPIClient( - DEFAULT_GITHUB_PLATFORM.apiUrl, - DEFAULT_GITHUB_PLATFORM.id - ); - const moctokit = new Moctokit(); - moctokit.rest.repos - .get({ - owner: "kie", - repo: "kie", - }) - .matchReqHeaders({ - authorization: "token token1", - }) - .setResponse([ - { - status: 200, - data: { full_name: "kie/kie with token1" }, - }, - { - status: 403, - data: { message: "You have exceeded your rate limit" }, - headers: { - "x-ratelimit-remaining": "0", - "x-ratelimit-reset": `${~~(new Date().getTime() / 1000)}`, - }, - }, - { - status: 200, - data: { full_name: "kie/kie with token1 after resetting" }, - }, - { - status: 403, - data: { message: "You have exceeded your rate limit" }, - headers: { - "x-ratelimit-remaining": "0", - "x-ratelimit-reset": `${~~(new Date().getTime() / 1000) + 3600}`, // now + 1 hr - }, - }, - ]) - .reply() - .matchReqHeaders({ - authorization: "token token2", - }) - .setResponse([ - { - status: 200, - data: { full_name: "kie/kie with token2" }, - }, - { - status: 403, - data: { message: "You have exceeded your rate limit" }, - headers: { - "x-ratelimit-remaining": "0", - "x-ratelimit-reset": `${~~(new Date().getTime() / 1000) + 3600}`, // now + 1 hr - }, - }, - ]) - .reply(); - - const res1 = await octokit.repos.get({ - owner: "kie", - repo: "kie", - }); - expect(res1.data).toStrictEqual({ full_name: "kie/kie with token1" }); - - const res2 = await octokit.repos.get({ - owner: "kie", - repo: "kie", - }); - expect(res2.data).toStrictEqual({ full_name: "kie/kie with token2" }); - - const res3 = await octokit.repos.get({ - owner: "kie", - repo: "kie", - }); - expect(res3.data).toStrictEqual({ - full_name: "kie/kie with token1 after resetting", - }); - - await expect( - octokit.repos.get({ - owner: "kie", - repo: "kie", - }) - ).rejects.toThrowError(); - }); -}); diff --git a/test/unitary/service/git/gitlab-client.test.ts b/test/unitary/service/git/gitlab-client.test.ts deleted file mode 100644 index 71a98cfb..00000000 --- a/test/unitary/service/git/gitlab-client.test.ts +++ /dev/null @@ -1,239 +0,0 @@ -import "reflect-metadata"; -import { GitlabAPIClient } from "@bc/service/git/gitlab-api-client"; -import axios from "axios"; -import Container from "typedi"; -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; -jest.mock("axios"); -const axiosSpy = axios.create as jest.Mock; -const baseUrl = "baseUrl"; -const id = "id"; -const owner = "owner"; -const repo = "repo"; -let gitlabAPIClient: GitlabAPIClient; - -Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.CLI); - -describe("repos", () => { - test("getBranch", async () => { - const getSpy = setupSpy("data", 200); - gitlabAPIClient = new GitlabAPIClient(baseUrl, id); - - const branch = "branch"; - await expect( - gitlabAPIClient.repos.getBranch({ - owner, - repo, - branch, - }) - ).resolves.toStrictEqual({ data: "data", status: 200 }); - expect(getSpy).toHaveBeenCalledWith( - `/projects/${encodeURIComponent( - `${owner}/${repo}` - )}/repository/branches/${branch}` - ); - }); - - test("getRepo", async () => { - const getSpy = setupSpy("data", 200); - gitlabAPIClient = new GitlabAPIClient(baseUrl, id); - - await expect( - gitlabAPIClient.repos.get({ - owner, - repo, - }) - ).resolves.toStrictEqual({ data: "data", status: 200 }); - expect(getSpy).toHaveBeenCalledWith( - `/projects/${encodeURIComponent(`${owner}/${repo}`)}` - ); - }); - - test("listForkName", async () => { - const getSpy = setupSpy( - [ - { - path: "repo1", - namespace: { - path: "owner1", - }, - }, - { - path: "repo2", - namespace: { - path: "owner2", - }, - }, - ], - 200 - ); - gitlabAPIClient = new GitlabAPIClient(baseUrl, id); - - await expect( - gitlabAPIClient.repos.listForkName({ - owner, - repo, - page: 1, - }) - ).resolves.toStrictEqual({ - data: [ - { owner: "owner1", repo: "repo1" }, - { owner: "owner2", repo: "repo2" }, - ], - status: 200, - }); - expect(getSpy).toHaveBeenCalledWith( - `/projects/${encodeURIComponent(`${owner}/${repo}`)}/forks`, - { - params: { - per_page: 100, - page: 1, - }, - } - ); - }); - - test.each([ - ["found", [{ path: "repo3", namespace: { path: "owner3" } }], "repo3"], - ["not found", [], undefined], - ])( - "getForkNameForTargetRepoGivenSourceOwner - %p", - async (_title, data, expected) => { - const getSpy = jest.fn((_url, options) => { - return options.params.page === 1 - ? { - data: [ - { - path: "repo1", - namespace: { - path: "owner1", - }, - }, - { - path: "repo2", - namespace: { - path: "owner2", - }, - }, - ], - status: 200, - } - : { data, status: 200 }; - }); - - axiosSpy.mockReturnValueOnce({ get: getSpy }); - - gitlabAPIClient = new GitlabAPIClient(baseUrl, id); - - await expect( - gitlabAPIClient.repos.getForkNameForTargetRepoGivenSourceOwner({ - targetOwner: owner, - targetRepo: repo, - sourceOwner: "owner3", - }) - ).resolves.toStrictEqual({ data: expected, status: 200 }); - expect(getSpy).toHaveBeenCalledWith( - `/projects/${encodeURIComponent(`${owner}/${repo}`)}/forks`, - { - params: { - per_page: 100, - page: 1, - }, - } - ); - expect(getSpy).toHaveBeenCalledWith( - `/projects/${encodeURIComponent(`${owner}/${repo}`)}/forks`, - { - params: { - per_page: 100, - page: 2, - }, - } - ); - } - ); -}); - -describe("pulls", () => { - test("get", async () => { - const getSpy = setupSpy( - { - web_url: "web_url", - target_branch: "target_branch", - head_branch: "head_branch", - author: { - username: "username", - }, - }, - 200 - ); - gitlabAPIClient = new GitlabAPIClient(baseUrl, id); - - const pullNumber = 1; - await expect( - gitlabAPIClient.pulls.get({ - owner, - repo, - pull_number: pullNumber, - }) - ).resolves.toStrictEqual({ - data: { - html_url: "web_url", - head: { - user: { - login: "username", - }, - ref: "head_branch", - }, - base: { - ref: "target_branch", - repo: { - full_name: `${owner}/${repo}`, - name: repo, - owner: { - login: owner, - }, - }, - }, - }, - status: 200, - }); - expect(getSpy).toHaveBeenCalledWith( - `/projects/${encodeURIComponent( - `${owner}/${repo}` - )}/merge_requests/${pullNumber}` - ); - }); - - test("list", async () => { - const getSpy = setupSpy(["data"], 200); - gitlabAPIClient = new GitlabAPIClient(baseUrl, id); - - await expect( - gitlabAPIClient.pulls.list({ - owner, - repo, - state: "opened", - }) - ).resolves.toStrictEqual({ data: ["data"], status: 200 }); - expect(getSpy).toHaveBeenCalledWith( - `/projects/${encodeURIComponent(`${owner}/${repo}`)}/merge_requests`, - { - params: { - state: "opened", - base: undefined, - head: undefined, - }, - } - ); - }); -}); - -function setupSpy(data: unknown, status: number) { - const getSpy = jest.fn(_url => ({ - data, - status, - })); - axiosSpy.mockReturnValueOnce({ get: getSpy }); - return getSpy; -} diff --git a/test/unitary/service/job-summary/expected-summary b/test/unitary/service/job-summary/expected-summary deleted file mode 100644 index 9356836c..00000000 --- a/test/unitary/service/job-summary/expected-summary +++ /dev/null @@ -1,53 +0,0 @@ -

Build Chain Execution Summary

- -**Project Starting the Job:** [owner2/project2](https://github.com/owner2/project2) -

Pre

CommandExecution ResultExecution Time
cmd11ms
cmd22ms
cmd33ms
-
-

Execution phase: before

ProjectSourceTargetMergedExecution ResultAvg Execution Time
owner1/project1checkout skippedcheckout skipped30s
owner2/project2owner2/project2:mainowner2/project2:main5m
owner3/project3owner3/project3:mainowner3-forked/project3-forked:dev2h
- -```mermaid -flowchart LR; - owner1/project1:::noEntry==>owner2/project2:::okClass==>owner3/project3:::errorClass - click owner1/project1 'https://github.com/owner1/project1' - click owner2/project2 'https://github.com/owner2/project2' - click owner3/project3 'https://github.com/owner3/project3' - classDef okClass fill:#218838,stroke:#1e7e34,color: #fff,border-radius: 4px - classDef errorClass fill:#dc3545,stroke:#dc3545,color: #fff,border-radius: 4px - classDef noEntry fill:#6c757d,stroke:#6c757d,color: #fff,border-radius: 4px -``` -
-

Execution phase: commands

ProjectSourceTargetMergedExecution ResultAvg Execution Time
owner1/project1checkout skippedcheckout skipped30s
owner2/project2owner2/project2:mainowner2/project2:main5m
owner3/project3owner3/project3:mainowner3-forked/project3-forked:dev2h
- -```mermaid -flowchart LR; - owner1/project1:::noEntry==>owner2/project2:::okClass==>owner3/project3:::errorClass - click owner1/project1 'https://github.com/owner1/project1' - click owner2/project2 'https://github.com/owner2/project2' - click owner3/project3 'https://github.com/owner3/project3' - classDef okClass fill:#218838,stroke:#1e7e34,color: #fff,border-radius: 4px - classDef errorClass fill:#dc3545,stroke:#dc3545,color: #fff,border-radius: 4px - classDef noEntry fill:#6c757d,stroke:#6c757d,color: #fff,border-radius: 4px -``` -
-

Execution phase: after

ProjectSourceTargetMergedExecution ResultAvg Execution Time
owner1/project1checkout skippedcheckout skipped30s
owner2/project2owner2/project2:mainowner2/project2:main5m
owner3/project3owner3/project3:mainowner3-forked/project3-forked:dev2h
- -```mermaid -flowchart LR; - owner1/project1:::noEntry==>owner2/project2:::okClass==>owner3/project3:::errorClass - click owner1/project1 'https://github.com/owner1/project1' - click owner2/project2 'https://github.com/owner2/project2' - click owner3/project3 'https://github.com/owner3/project3' - classDef okClass fill:#218838,stroke:#1e7e34,color: #fff,border-radius: 4px - classDef errorClass fill:#dc3545,stroke:#dc3545,color: #fff,border-radius: 4px - classDef noEntry fill:#6c757d,stroke:#6c757d,color: #fff,border-radius: 4px -``` -
-

Post

CommandExecution ResultExecution Time
cmd11ms
cmd22ms
cmd33ms
-
-

Local Execution

You can copy paste the following commands to locally execute build chain tool. -
npm i ${{ PACKAGE_NAME }} -g
-build-chain build cross_pr -f definitionFile -u eventUrl
- -**Git Version**: `1.0.1` -> **_Notice_**: The `GITHUB_TOKEN` should be set in the environment. -
diff --git a/test/unitary/service/job-summary/job-summary-service.test.ts b/test/unitary/service/job-summary/job-summary-service.test.ts deleted file mode 100644 index 6223ae7c..00000000 --- a/test/unitary/service/job-summary/job-summary-service.test.ts +++ /dev/null @@ -1,236 +0,0 @@ -import "reflect-metadata"; -import { UploadResponse } from "@actions/artifact"; -import { CheckedOutNode } from "@bc/domain/checkout"; -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; -import { ExecuteCommandResult, ExecutionResult } from "@bc/domain/execute-command-result"; -import { FlowType } from "@bc/domain/inputs"; -import { defaultNodeValue } from "@bc/domain/node"; -import { ConfigurationService } from "@bc/service/config/configuration-service"; -import { GitCLIService } from "@bc/service/git/git-cli"; -import { JobSummaryService } from "@bc/service/job-summary/job-summary-service"; -import { open, rm } from "fs/promises"; -import path from "path"; -import Container from "typedi"; -import { readFileSync } from "fs"; -import { Node } from "@kie/build-chain-configuration-reader"; - -const nodeChain: Node[] = [ - { - ...defaultNodeValue, - project: "owner1/project1", - before: { - upstream: ["cmd1"], - downstream: [], - current: [], - }, - }, - { - ...defaultNodeValue, - project: "owner2/project2", - before: { - current: ["cmd2-before"], - downstream: [], - upstream: [], - }, - commands: { - upstream: [], - downstream: [], - current: ["cmd2-current"], - }, - after: { - upstream: [], - downstream: [], - current: [], - }, - }, - { - ...defaultNodeValue, - project: "owner3/project3", - after: { - upstream: [], - downstream: [], - current: ["cmd3"], - }, - commands: { - upstream: [], - downstream: [], - current: [], - }, - }, -]; - -const checkoutInfo: CheckedOutNode[] = [ - { - node: nodeChain[0], - }, - { - node: nodeChain[1], - checkoutInfo: { - sourceBranch: "main", - sourceGroup: "owner2", - sourceName: "project2", - targetBranch: "main", - targetGroup: "owner2", - targetName: "project2", - merge: false, - repoDir: "owner2_project2", - }, - }, - { - node: nodeChain[2], - checkoutInfo: { - sourceBranch: "dev", - sourceGroup: "owner3-forked", - sourceName: "project3-forked", - targetBranch: "main", - targetGroup: "owner3", - targetName: "project3", - merge: true, - repoDir: "owner3_project3", - }, - }, -]; - -const thirtySeconds = (30) * 1000; -const executionResult1 = { - node: nodeChain[0], - executeCommandResults: [ - { - startingDate: 0, - endingDate: thirtySeconds, - time: thirtySeconds, - command: "cmd1", - result: ExecutionResult.SKIP, - errorMessage: "error", - }, - ], -}; - -const fiveMinutes = (5 * 60) * 1000; -const executionResult2 = { - node: nodeChain[1], - executeCommandResults: [ - { - startingDate: 0, - endingDate: fiveMinutes, - time: fiveMinutes, - command: "cmd2", - result: ExecutionResult.OK, - errorMessage: "", - }, - ], -}; - -const twoHours = (2 * 60 * 60) * 1000; -const executionResult3 = { - node: nodeChain[2], - executeCommandResults: [ - { - startingDate: 0, - endingDate: twoHours, - time: twoHours, - command: "cmd3", - result: ExecutionResult.NOT_OK, - errorMessage: "error", - }, - ], -}; - -const artifactUploadResults: PromiseSettledResult[] = []; - -const prePostResult: ExecuteCommandResult[] = [ - { - startingDate: 0, - endingDate: 1, - time: 1, - command: "cmd1", - result: ExecutionResult.OK, - errorMessage: "", - }, - { - startingDate: 0, - endingDate: 2, - time: 2, - command: "cmd2", - result: ExecutionResult.NOT_OK, - errorMessage: "error", - }, - { - startingDate: 0, - endingDate: 3, - time: 3, - command: "cmd3", - result: ExecutionResult.OK, - errorMessage: "", - }, -]; - -const definitionFile = "definitionFile"; -const eventUrl = "eventUrl"; -const gitVersion = "1.0.1"; -const filename = path.join(__dirname, "summary"); - -beforeEach(async () => { - jest.spyOn(ConfigurationService.prototype, "getDefinitionFileUrl").mockImplementation(() => definitionFile); - jest.spyOn(ConfigurationService.prototype, "getEventUrl").mockImplementation(() => eventUrl); - jest.spyOn(ConfigurationService.prototype, "getStarterProjectName").mockImplementation(() => nodeChain[1].project); - jest.spyOn(GitCLIService.prototype, "version").mockImplementation(async () => gitVersion); - Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.GITHUB_EVENT); - - const fd = await open(filename, "w"); - fd.close(); - process.env["GITHUB_STEP_SUMMARY"] = filename; -}); - -afterEach(async () => { - await rm(filename); - delete process.env["GITHUB_STEP_SUMMARY"]; -}); - -test("non-branch flow", async () => { - jest.spyOn(ConfigurationService.prototype, "getFlowType").mockImplementation(() => FlowType.CROSS_PULL_REQUEST); - const jobSummaryService = Container.get(JobSummaryService); - await jobSummaryService.generateSummary( - { - checkoutInfo, - artifactUploadResults, - executionResult: [ - [executionResult1, executionResult1, executionResult1], - [executionResult2, executionResult2, executionResult2], - [executionResult3, executionResult3, executionResult3] - ] - }, - prePostResult, - prePostResult - ); - - const expected = readFileSync( - path.join(__dirname, "expected-summary"), - "utf8" - ).replace( - /\${{ PACKAGE_NAME }}/, - `${process.env.npm_package_name}` - ); - expect(readFileSync(filename, "utf8")).toBe(expected); -}); - -test("branch flow", async () => { - jest.spyOn(ConfigurationService.prototype, "getFlowType").mockImplementation(() => FlowType.BRANCH); - const jobSummaryService = Container.get(JobSummaryService); - await jobSummaryService.generateSummary( - { - checkoutInfo, - artifactUploadResults, - executionResult: [ - [executionResult1, executionResult1, executionResult1], - [executionResult2, executionResult2, executionResult2], - [executionResult3, executionResult3, executionResult3] - ] - }, - prePostResult, - prePostResult - ); - - expect(readFileSync(filename, "utf8")).toBe(""); -}); diff --git a/test/unitary/service/logger/cli-logger-service.test.ts b/test/unitary/service/logger/cli-logger-service.test.ts deleted file mode 100644 index bed1f927..00000000 --- a/test/unitary/service/logger/cli-logger-service.test.ts +++ /dev/null @@ -1,106 +0,0 @@ -import "reflect-metadata"; -import { CLILoggerService } from "@bc/service/logger/cli-logger-service"; -import { Logger } from "@bc/service/logger/logger"; -import { defaultInputValues, LoggerLevel } from "@bc/domain/inputs"; -import { InputService } from "@bc/service/inputs/input-service"; - -jest.mock("@bc/service/logger/logger"); - -describe("cli logger service", () => { - test("info", () => { - // Arrange - const loggerService = new CLILoggerService(); - - // Act - loggerService.info("whatever the message"); - - // Assert - expect(Logger.prototype.log).toHaveBeenCalledTimes(1); - expect(Logger.prototype.log).toBeCalledWith("[INFO]", "whatever the message"); - }); - - test.each([ - ["logger level is trace", LoggerLevel.TRACE, 1, ["[TRACE]", "whatever the message"]], - ["logger level is not trace", LoggerLevel.INFO, 0, []], - ])("trace - %p", (_title: string, loggerLevel: LoggerLevel, numCalls: number, args: string[]) => { - jest.spyOn(InputService.prototype, "inputs", "get").mockReturnValueOnce({...defaultInputValues, loggerLevel}); - - // Arrange - const loggerService = new CLILoggerService(); - - // Act - loggerService.trace("whatever the message"); - - // Assert - expect(Logger.prototype.log).toHaveBeenCalledTimes(numCalls); - if (args.length > 0) { - expect(Logger.prototype.log).toBeCalledWith(...args); - } - }); - - test("warn", () => { - // Arrange - const loggerService = new CLILoggerService(); - - // Act - loggerService.warn("whatever the message"); - - // Assert - expect(Logger.prototype.log).toHaveBeenCalledTimes(1); - expect(Logger.prototype.log).toBeCalledWith("[WARN]", "whatever the message"); - }); - - test.each([ - ["logger level is debug", LoggerLevel.DEBUG, 1, ["[DEBUG]", "whatever the message"]], - ["logger level is not debug", LoggerLevel.INFO, 0, []], - ])("debug - %p", (_title: string, loggerLevel: LoggerLevel, numCalls: number, args: string[]) => { - jest.spyOn(InputService.prototype, "inputs", "get").mockReturnValueOnce({...defaultInputValues, loggerLevel}); - - // Arrange - const loggerService = new CLILoggerService(); - - // Act - loggerService.debug("whatever the message"); - - // Assert - expect(Logger.prototype.log).toHaveBeenCalledTimes(numCalls); - if (args.length > 0) { - expect(Logger.prototype.log).toBeCalledWith(...args); - } - }); - - test("error", () => { - // Arrange - const loggerService = new CLILoggerService(); - - // Act - loggerService.error("whatever the message"); - - // Assert - expect(Logger.prototype.log).toHaveBeenCalledTimes(1); - expect(Logger.prototype.log).toBeCalledWith("[ERROR]", "whatever the message"); - }); - - test("startGroup", () => { - // Arrange - const loggerService = new CLILoggerService(); - - // Act - loggerService.startGroup("whatever the message"); - - // Assert - expect(Logger.prototype.log).toHaveBeenCalledTimes(1); - expect(Logger.prototype.log).toBeCalledWith("#", "whatever the message"); - }); - - test("endGroup", () => { - // Arrange - const loggerService = new CLILoggerService(); - - // Act - loggerService.endGroup(); - - // Assert - expect(Logger.prototype.emptyLine).toHaveBeenCalledTimes(1); - }); -}); \ No newline at end of file diff --git a/test/unitary/service/logger/github-action-logger-service.test.ts b/test/unitary/service/logger/github-action-logger-service.test.ts deleted file mode 100644 index b9a0e07c..00000000 --- a/test/unitary/service/logger/github-action-logger-service.test.ts +++ /dev/null @@ -1,112 +0,0 @@ -import "reflect-metadata"; -import { GithubActionLoggerService } from "@bc/service/logger/github-action-logger-service"; -import * as core from "@actions/core"; -import { Logger } from "@bc/service/logger/logger"; -import { defaultInputValues, LoggerLevel } from "@bc/domain/inputs"; -import { InputService } from "@bc/service/inputs/input-service"; - -jest.mock("@actions/core"); -jest.mock("@bc/service/logger/logger"); - - -describe("cli logger service", () => { - test("info", () => { - // Arrange - const loggerService = new GithubActionLoggerService(); - - // Act - loggerService.info("whatever the message"); - - // Assert - expect(Logger.prototype.log).toHaveBeenCalledTimes(1); - expect(Logger.prototype.log).toBeCalledWith("[INFO]", "whatever the message"); - }); - - test.each([ - ["logger level is trace", LoggerLevel.TRACE, 1, ["[TRACE]", "whatever the message"]], - ["logger level is not trace", LoggerLevel.INFO, 0, []], - ])("trace - %p", (_title: string, loggerLevel: LoggerLevel, numCalls: number, args: string[]) => { - jest.spyOn(InputService.prototype, "inputs", "get").mockReturnValueOnce({...defaultInputValues, loggerLevel}); - - // Arrange - const loggerService = new GithubActionLoggerService(); - - - // Act - loggerService.trace("whatever the message"); - - // Assert - expect(Logger.prototype.log).toHaveBeenCalledTimes(numCalls); - if (args.length > 0) { - expect(Logger.prototype.log).toBeCalledWith(...args); - } - }); - - test("warn", () => { - // Arrange - const loggerService = new GithubActionLoggerService(); - - // Act - loggerService.warn("whatever the message"); - - // Assert - expect(Logger.prototype.log).toHaveBeenCalledTimes(1); - expect(Logger.prototype.log).toBeCalledWith("[WARN]", "whatever the message"); - }); - - test.each([ - ["logger level is debug", LoggerLevel.DEBUG, 1, ["[DEBUG]", "whatever the message"]], - ["logger level is not debug", LoggerLevel.INFO, 0, []], - ])("debug - %p", (_title: string, loggerLevel: LoggerLevel, numCalls: number, args: string[]) => { - jest.spyOn(InputService.prototype, "inputs", "get").mockReturnValueOnce({...defaultInputValues, loggerLevel}); - - // Arrange - const loggerService = new GithubActionLoggerService(); - - // Act - loggerService.debug("whatever the message"); - - // Assert - expect(Logger.prototype.log).toHaveBeenCalledTimes(numCalls); - if (args.length > 0) { - expect(Logger.prototype.log).toBeCalledWith(...args); - } - }); - - test("error", () => { - // Arrange - const loggerService = new GithubActionLoggerService(); - - // Act - loggerService.error("whatever the message"); - - // Assert - expect(Logger.prototype.log).toHaveBeenCalledTimes(1); - expect(Logger.prototype.log).toBeCalledWith("[ERROR]", "whatever the message"); - }); - - test("startGroup", () => { - // Arrange - const loggerService = new GithubActionLoggerService(); - - // Act - loggerService.startGroup("whatever the message"); - - // Assert - expect(Logger.prototype.log).toHaveBeenCalledTimes(0); - expect(core.startGroup).toHaveBeenCalledTimes(1); - expect(core.startGroup).toHaveBeenCalledWith("whatever the message"); - }); - - test("endGroup", () => { - // Arrange - const loggerService = new GithubActionLoggerService(); - - // Act - loggerService.endGroup(); - - // Assert - expect(Logger.prototype.log).toHaveBeenCalledTimes(0); - expect(core.endGroup).toHaveBeenCalledTimes(1); - }); -}); \ No newline at end of file diff --git a/test/unitary/service/logger/logger-service-factory.test.ts b/test/unitary/service/logger/logger-service-factory.test.ts deleted file mode 100644 index c418e15a..00000000 --- a/test/unitary/service/logger/logger-service-factory.test.ts +++ /dev/null @@ -1,48 +0,0 @@ -import "reflect-metadata"; -import { LoggerService } from "@bc/service/logger/logger-service"; -import { CLILoggerService } from "@bc/service/logger/cli-logger-service"; -import { EntryPoint } from "@bc/domain/entry-point"; -import { GithubActionLoggerService } from "@bc/service/logger/github-action-logger-service"; -import { Container } from "typedi"; -import { constants } from "@bc/domain/constants"; - -describe("logger factory getInstance", () => { - beforeEach(() => { - Container.reset(); - }); - - test("CLI", () => { - // Arrange - Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.CLI); - - // Act - const result = Container.get(LoggerService).logger; - - // Assert - expect(result).toBeInstanceOf(CLILoggerService); - }); - - test("Github", () => { - // Arrange - Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.GITHUB_EVENT); - - // Act - const result = Container.get(LoggerService).logger; - - // Assert - expect(result).toBeInstanceOf(GithubActionLoggerService); - }); - - test("Error", () => { - // Arrange - Container.set(constants.CONTAINER.ENTRY_POINT, 3); - - // Act - try { - Container.get(LoggerService).logger; - expect(true).toBe(false); - } catch (ex: unknown) { - expect((ex as Error).message).toBe("No LoggerService defined for 3"); - } - }); -}); diff --git a/test/unitary/service/logger/logger.test.ts b/test/unitary/service/logger/logger.test.ts deleted file mode 100644 index 9fb635f4..00000000 --- a/test/unitary/service/logger/logger.test.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { Logger } from "@bc/service/logger/logger"; - -/* eslint-disable no-console */ -console.log = jest.fn(); - -describe("Logger.log", () => { - test("prefix", () => { - // Arrange - const logger = new Logger(); - // Act - logger.log("A"); - - // Arrange - expect(console.log).toHaveBeenCalledTimes(1); - expect(console.log).toBeCalledWith("A"); - }); - - test("prefix and 1 message", () => { - // Arrange - const logger = new Logger(); - // Act - logger.log("A", "B"); - - // Arrange - expect(console.log).toHaveBeenCalledTimes(1); - expect(console.log).toBeCalledWith("A", "B"); - }); - - test("prefix and 2 messages", () => { - // Arrange - const logger = new Logger(); - // Act - logger.log("A", "B", "C"); - - // Arrange - expect(console.log).toHaveBeenCalledTimes(1); - expect(console.log).toBeCalledWith("A", "B", "C"); - }); -}); -describe("Logger.emptyLine", () => { - test("ok", () => { - // Arrange - const logger = new Logger(); - // Act - logger.emptyLine(); - - // Arrange - expect(console.log).toHaveBeenCalledTimes(1); - expect(console.log).toBeCalledWith("", ""); - }); -}); \ No newline at end of file diff --git a/test/unitary/service/pre-post/post.test.ts b/test/unitary/service/pre-post/post.test.ts deleted file mode 100644 index 87771190..00000000 --- a/test/unitary/service/pre-post/post.test.ts +++ /dev/null @@ -1,156 +0,0 @@ -import "reflect-metadata"; -import { ExecuteCommandService } from "@bc/service/command/execute-command-service"; -import { PostExecutor } from "@bc/service/pre-post/post"; -import Container from "typedi"; -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; -import * as core from "@actions/core"; -import { ConfigurationService } from "@bc/service/config/configuration-service"; -import { ExecuteCommandResult, ExecutionResult } from "@bc/domain/execute-command-result"; -import { ExecOptions } from "@actions/exec"; - -// just for initialization otherwise not relevant to testing -Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.GITHUB_EVENT); -// disable logs -jest.spyOn(global.console, "log"); -jest.spyOn(core, "startGroup").mockImplementation(() => undefined); -jest.spyOn(core, "endGroup").mockImplementation(() => undefined); - -const emptyCommandResult: ExecuteCommandResult = { - startingDate: 0, - endingDate: 0, - command: "", - result: ExecutionResult.OK, - time: 0, - errorMessage: "" -}; - -describe("On success", () => { - let post: PostExecutor; - - beforeAll(() => { - Container.reset(); - Container.set("post.executionSuccess", true); - }); - - beforeEach(() => { - post = Container.get(PostExecutor); - }); - - test.each([ - ["single command", ["cmd"], ["cmd"]], - ["multiple commands", ["cmd1", "cmd2"], ["cmd1", "cmd2"]], - ])("No always: %p", async (_title: string, cmds: string[], executedCmds: string[]) => { - jest.spyOn(ConfigurationService.prototype, "getPost").mockImplementationOnce(() => { - return { - success: cmds, - }; - }); - const execSpy = jest.spyOn(ExecuteCommandService.prototype, "executeCommand").mockImplementationOnce(async (_cmd: string, _opts?: ExecOptions) => emptyCommandResult); - await post.run(); - expect(execSpy).toHaveBeenCalledTimes(executedCmds.length); - executedCmds.forEach(cmd => { - expect(execSpy).toHaveBeenCalledWith(cmd, {cwd: process.cwd()}); - }); - }); - - test.each([ - ["single command", ["cmd"], ["cmd"]], - ["multiple commands", ["cmd1", "cmd2"], ["cmd1", "cmd2"]], - ])("With always: %p", async (_title: string, cmds: string[], executedCmds: string[]) => { - jest.spyOn(ConfigurationService.prototype, "getPost").mockImplementationOnce(() => { - return { - success: cmds, - always: cmds, - }; - }); - const execSpy = jest.spyOn(ExecuteCommandService.prototype, "executeCommand").mockImplementationOnce(async (_cmd: string, _opts?: ExecOptions) => emptyCommandResult); - await post.run(); - expect(execSpy).toHaveBeenCalledTimes(executedCmds.length * 2); - [...executedCmds, ...executedCmds].forEach(cmd => { - expect(execSpy).toHaveBeenCalledWith(cmd, {cwd: process.cwd()}); - }); - }); - - test("no success", async () => { - jest.spyOn(ConfigurationService.prototype, "getPost").mockImplementationOnce(() => { - return { - failure: ["cmd"], - }; - }); - const execSpy = jest.spyOn(ExecuteCommandService.prototype, "executeCommand").mockImplementationOnce(async (_cmd: string, _opts?: ExecOptions) => emptyCommandResult); - await post.run(); - expect(execSpy).toHaveBeenCalledTimes(0); - }); -}); - -describe("On failure", () => { - let post: PostExecutor; - - beforeAll(() => { - Container.reset(); - Container.set("post.executionSuccess", false); - }); - - beforeEach(() => { - post = Container.get(PostExecutor); - }); - - test.each([ - ["single command", ["cmd"], ["cmd"]], - ["multiple commands", ["cmd1", "cmd2"], ["cmd1", "cmd2"]], - ])("No always: %p", async (_title: string, cmds: string[], executedCmds: string[]) => { - jest.spyOn(ConfigurationService.prototype, "getPost").mockImplementationOnce(() => { - return { - failure: cmds, - }; - }); - const execSpy = jest.spyOn(ExecuteCommandService.prototype, "executeCommand").mockImplementationOnce(async (_cmd: string, _opts?: ExecOptions) => emptyCommandResult); - await post.run(); - expect(execSpy).toHaveBeenCalledTimes(executedCmds.length); - executedCmds.forEach(cmd => { - expect(execSpy).toHaveBeenCalledWith(cmd, {cwd: process.cwd()}); - }); - }); - - test.each([ - ["single command", ["cmd"], ["cmd"]], - ["multiple commands", ["cmd1", "cmd2"], ["cmd1", "cmd2"]], - ])("With always: %p", async (_title: string, cmds: string[], executedCmds: string[]) => { - jest.spyOn(ConfigurationService.prototype, "getPost").mockImplementationOnce(() => { - return { - failure: cmds, - always: cmds, - }; - }); - const execSpy = jest.spyOn(ExecuteCommandService.prototype, "executeCommand").mockImplementationOnce(async (_cmd: string, _opts?: ExecOptions) => emptyCommandResult); - - await post.run(); - expect(execSpy).toHaveBeenCalledTimes(executedCmds.length * 2); - [...executedCmds, ...executedCmds].forEach(cmd => { - expect(execSpy).toHaveBeenCalledWith(cmd, {cwd: process.cwd()}); - }); - }); - - test("no failure", async () => { - jest.spyOn(ConfigurationService.prototype, "getPost").mockImplementationOnce(() => { - return { - success: ["cmd"], - }; - }); - const execSpy = jest.spyOn(ExecuteCommandService.prototype, "executeCommand").mockImplementationOnce(async (_cmd: string, _opts?: ExecOptions) => emptyCommandResult); - - await post.run(); - expect(execSpy).toHaveBeenCalledTimes(0); - }); -}); - -test("no post", async () => { - jest.spyOn(ConfigurationService.prototype, "getPost").mockImplementationOnce(() => { - return {}; - }); - const execSpy = jest.spyOn(ExecuteCommandService.prototype, "executeCommand").mockImplementationOnce(async (_cmd: string, _opts?: ExecOptions) => emptyCommandResult); - const post = Container.get(PostExecutor); - await post.run(); - expect(execSpy).toHaveBeenCalledTimes(0); -}); diff --git a/test/unitary/service/pre-post/pre.test.ts b/test/unitary/service/pre-post/pre.test.ts deleted file mode 100644 index 494c8522..00000000 --- a/test/unitary/service/pre-post/pre.test.ts +++ /dev/null @@ -1,50 +0,0 @@ -import "reflect-metadata"; -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; -import { PreExecutor } from "@bc/service/pre-post/pre"; -import { Pre } from "@kie/build-chain-configuration-reader"; -import Container from "typedi"; -import { ExecuteCommandService } from "@bc/service/command/execute-command-service"; -import * as core from "@actions/core"; -import { ConfigurationService } from "@bc/service/config/configuration-service"; -import { ExecuteCommandResult, ExecutionResult } from "@bc/domain/execute-command-result"; -import { ExecOptions } from "@actions/exec"; - -// just for initialization otherwise not relevant to testing -Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.GITHUB_EVENT); - -// disable logs -jest.spyOn(global.console, "log"); -jest.spyOn(core, "startGroup").mockImplementation(() => undefined); -jest.spyOn(core, "endGroup").mockImplementation(() => undefined); - -const emptyCommandResult: ExecuteCommandResult = { - startingDate: 0, - endingDate: 0, - command: "", - result: ExecutionResult.OK, - time: 0, - errorMessage: "" -}; - -test.each([ - ["single command", ["cmd"], ["cmd"]], - ["multiple commands", ["cmd1", "cmd2"], ["cmd1", "cmd2"]], -])("%p", async (_title: string, cmds: Pre, executedCmds: string[]) => { - jest.spyOn(ConfigurationService.prototype, "getPre").mockImplementation(() => cmds); - const execSpy = jest.spyOn(ExecuteCommandService.prototype, "executeCommand").mockImplementation(async (_cmd: string, _opts?: ExecOptions) => emptyCommandResult); - const pre = Container.get(PreExecutor); - await pre.run(); - expect(execSpy).toHaveBeenCalledTimes(executedCmds.length); - executedCmds.forEach(cmd => { - expect(execSpy).toHaveBeenCalledWith(cmd, {cwd: process.cwd()}); - }); -}); - -test("no pre", async () => { - jest.spyOn(ConfigurationService.prototype, "getPre").mockImplementation(() => undefined); - const execSpy = jest.spyOn(ExecuteCommandService.prototype, "executeCommand").mockImplementation(async (_cmd: string, _opts?: ExecOptions) => emptyCommandResult); - const pre = Container.get(PreExecutor); - await pre.run(); - expect(execSpy).toHaveBeenCalledTimes(0); -}); diff --git a/test/unitary/service/tools/plan.test.ts b/test/unitary/service/tools/plan.test.ts deleted file mode 100644 index fef95563..00000000 --- a/test/unitary/service/tools/plan.test.ts +++ /dev/null @@ -1,69 +0,0 @@ -import "reflect-metadata"; -import { CLIRunner } from "@bc/bin/runners/cli-runner"; -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; -import { Plan } from "@bc/service/tools/plan"; -import Container from "typedi"; -import { GitCLIService } from "@bc/service/git/git-cli"; -import { CommandExecutorDelegator } from "@bc/service/command/executor/command-executor-delegator"; -import { BaseLoggerService } from "@bc/service/logger/base-logger-service"; -import { ExecutionResult } from "@bc/domain/execute-command-result"; -import { InputService } from "@bc/service/inputs/input-service"; -import { CLIActionType } from "@bc/domain/cli"; -import { FlowType } from "@bc/domain/inputs"; -import { CLIArguments } from "@bc/service/arguments/cli/cli-arguments"; - -Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.CLI); - -let plan: Plan; -beforeEach(() => { - plan = new Plan(); -}); - -test("execute", async () => { - jest.spyOn(BaseLoggerService.prototype, "logger", "get").mockReturnValue({ - log: () => undefined, - emptyLine: () => undefined, - }); - Container.get(InputService).updateInputs({ - flowType: FlowType.BRANCH, - }); - - const cliSpy = jest - .spyOn(CLIRunner.prototype, "execute") - .mockImplementation(async () => undefined); - await plan.execute(); - expect(cliSpy).toHaveBeenCalledTimes(1); - - const git = Container.get(GitCLIService); - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - await expect(git.clone()).resolves.toBe(undefined); - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - await expect(git.merge()).resolves.toBe(undefined); - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore - await expect(git.rename()).resolves.toBe(undefined); - - const commandExecutor = Container.get(CommandExecutorDelegator); - await expect( - commandExecutor.executeCommand("command") - ).resolves.toMatchObject({ - startingDate: expect.any(Number), - endingDate: expect.any(Number), - time: 0, - command: "command", - result: ExecutionResult.OK, - errorMessage: "", - }); - - const inputService = Container.get(InputService); - expect(inputService.inputs).toMatchObject({ - CLICommand: CLIActionType.BUILD, - CLISubCommand: FlowType.BRANCH, - }); - - const args = Container.get(CLIArguments); - expect(args.getCommand().parse()).toBe(undefined); -}); diff --git a/test/unitary/service/tools/project-list.test.ts b/test/unitary/service/tools/project-list.test.ts deleted file mode 100644 index 339bd84e..00000000 --- a/test/unitary/service/tools/project-list.test.ts +++ /dev/null @@ -1,21 +0,0 @@ -import "reflect-metadata"; -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; -import { ConfigurationService } from "@bc/service/config/configuration-service"; -import { Logger } from "@bc/service/logger/logger"; -import { ProjectList } from "@bc/service/tools/project-list"; -import Container from "typedi"; - -Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.CLI); - -let projectList: ProjectList; -beforeEach(() => { - projectList = new ProjectList(); - jest.spyOn(ConfigurationService.prototype, "nodeChain", "get").mockReturnValue([]); -}); - -test("execute", async () => { - const loggerSpy = jest.spyOn(Logger.prototype, "log").mockImplementation(() => undefined); - await projectList.execute(); - expect(loggerSpy).toHaveBeenCalledTimes(1); -}); \ No newline at end of file diff --git a/test/unitary/service/tools/resume.test.ts b/test/unitary/service/tools/resume.test.ts deleted file mode 100644 index f5344fff..00000000 --- a/test/unitary/service/tools/resume.test.ts +++ /dev/null @@ -1,699 +0,0 @@ -import "reflect-metadata"; -import { CLIRunner } from "@bc/bin/runners/cli-runner"; -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; -import Container from "typedi"; -import { FlowType } from "@bc/domain/inputs"; -import { CLIArguments } from "@bc/service/arguments/cli/cli-arguments"; -import { Resume } from "@bc/service/tools/resume"; -import fs from "fs-extra"; -import { PlatformType } from "@kie/build-chain-configuration-reader"; -import { ConfigurationService } from "@bc/service/config/configuration-service"; -import { CheckoutService } from "@bc/service/checkout/checkout-service"; -import { FlowService } from "@bc/service/flow/flow-service"; -import { ExecutionResult } from "@bc/domain/execute-command-result"; -import { CLIConfiguration } from "@bc/service/config/cli-configuration"; -import path from "path"; -import { MockGithub } from "@kie/mock-github"; -import { GitCLIService } from "@bc/service/git/git-cli"; -import { BranchSummary } from "simple-git"; -import { defaultSerializedFlowService } from "@bc/domain/flow"; - -Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.CLI); - -let resume: Resume; -beforeEach(() => { - resume = new Resume(); - jest.spyOn(global.console, "log").mockImplementation(() => undefined); - jest - .spyOn(CLIConfiguration.prototype, "loadToken") - .mockImplementation(() => undefined); - delete process.env["GITHUB_REPOSITORY"]; -}); - -describe("execute", () => { - let cliSpy: jest.SpyInstance; - - beforeEach(() => { - jest.spyOn(fs, "existsSync").mockReturnValue(true); - jest.spyOn(fs, "readFileSync").mockReturnValue( - JSON.stringify({ - configurationService: { - configuration: { - _gitEventData: { - base: { - repo: { - full_name: "test", - }, - }, - }, - _gitConfiguration: {}, - _sourceProject: {}, - _targetProject: {}, - _parsedInputs: { - CLISubCommand: FlowType.BRANCH, - }, - _defaultPlatform: PlatformType.GITLAB, - }, - _nodeChain: [{ project: "test" }], - _definitionFile: { - version: 2.3, - build: [], - }, - }, - checkoutService: [ - { - node: { project: "test" }, - checkoutInfo: { merge: false, repoDir: "dir" }, - checkedOut: true, - }, - ], - flowService: { - resumeFrom: -1, - executionResult: [ - [ - { - node: { - project: "test", - }, - executeCommandResults: [ - { - command: "false", - result: ExecutionResult.OK, - errorMessage: "", - }, - ], - }, - { - node: { - project: "test", - }, - executeCommandResults: [ - { - command: "false", - result: ExecutionResult.OK, - errorMessage: "", - }, - ], - }, - { - node: { - project: "test", - }, - executeCommandResults: [ - { - command: "false", - result: ExecutionResult.OK, - errorMessage: "", - }, - ], - }, - ], - ], - }, - }) - ); - cliSpy = jest - .spyOn(CLIRunner.prototype, "execute") - .mockImplementation(async () => undefined); - jest - .spyOn(GitCLIService.prototype, "branch") - .mockResolvedValue({} as BranchSummary); - }); - - afterEach(() => { - jest.restoreAllMocks(); - }); - - test("cli runner to have been called", async () => { - await resume.execute(); - expect(cliSpy).toHaveBeenCalledTimes(1); - }); - - test("config service successfully reconstructed and patched", async () => { - await resume.execute(); - const configService = Container.get(ConfigurationService); - expect(configService.init()).resolves.toBe(undefined); - expect(configService.getFlowType()).toBe(FlowType.BRANCH); - expect(configService.getRootFolder()).toBe(process.cwd()); - }); - - test("checkout service successfully reconstructed", async () => { - await resume.execute(); - const checkoutService = Container.get(CheckoutService); - expect(checkoutService.checkoutDefinitionTree()).resolves.toMatchObject([ - { - node: { project: "test" }, - checkoutInfo: { - merge: false, - repoDir: path.join(process.cwd(), "test"), - }, - }, - ]); - }); - - test("flow service successfully reconstructed", async () => { - await resume.execute(); - const flowService = Container.get(FlowService); - expect(flowService.run()).resolves.toMatchObject({ - executionResult: [ - [ - { - node: { - project: "test", - }, - executeCommandResults: [ - { - command: "false", - result: ExecutionResult.OK, - errorMessage: "", - }, - ], - }, - { - node: { - project: "test", - }, - executeCommandResults: [ - { - command: "false", - result: ExecutionResult.OK, - errorMessage: "", - }, - ], - }, - { - node: { - project: "test", - }, - executeCommandResults: [ - { - command: "false", - result: ExecutionResult.OK, - errorMessage: "", - }, - ], - }, - ], - ], - }); - }); - - test("cli argument service successfully patched", async () => { - await resume.execute(); - const args = Container.get(CLIArguments); - expect(args.getCommand().parse()).toBe(undefined); - }); -}); - -describe("verify", () => { - let mg: MockGithub; - - beforeEach(async () => { - mg = new MockGithub( - { - repo: { - project1: { - currentBranch: "branch1", - }, - project2: { - pushedBranches: ["branch2"], - }, - }, - }, - path.join(__dirname, "setup") - ); - await mg.setup(); - }); - - afterEach(async () => { - await mg.teardown(); - jest.restoreAllMocks(); - }); - - test("verify checkout", async () => { - jest.spyOn(fs, "readFileSync").mockReturnValue( - JSON.stringify({ - configurationService: { - configuration: { - _gitEventData: { - base: { - repo: { - full_name: "test", - }, - }, - }, - _gitConfiguration: {}, - _sourceProject: {}, - _targetProject: {}, - _parsedInputs: { - CLISubCommand: FlowType.BRANCH, - }, - _defaultPlatform: PlatformType.GITLAB, - }, - _nodeChain: [{ project: "test" }], - _definitionFile: { - version: 2.3, - build: [], - }, - }, - checkoutService: [ - { - node: { project: "project1" }, - checkoutInfo: { - sourceBranch: "branch1", - merge: false, - repoDir: mg.repo.getPath("project1"), - }, - checkedOut: true, - }, - { - node: { project: "project2" }, - checkoutInfo: { - sourceBranch: "branch1", - merge: false, - repoDir: mg.repo.getPath("project2"), - }, - checkedOut: true, - }, - { - node: { project: "project3" }, - checkoutInfo: { - sourceBranch: "branch1", - merge: false, - repoDir: "project3", - }, - checkedOut: false, - }, - { - node: { project: "project4" }, - checkoutInfo: { - sourceBranch: "branch1", - merge: false, - repoDir: "project4", - }, - checkedOut: true, - }, - ], - flowService: defaultSerializedFlowService, - }) - ); - - jest - .spyOn(CLIRunner.prototype, "execute") - .mockImplementation(async () => undefined); - - const checkoutServiceSpy = jest.spyOn(CheckoutService, "fromJSON"); - - await resume.execute(); - - expect(checkoutServiceSpy).toHaveBeenCalledWith([ - { - node: { project: "project1" }, - checkoutInfo: { - sourceBranch: "branch1", - merge: false, - repoDir: mg.repo.getPath("project1"), - }, - checkedOut: true, - }, - { - node: { project: "project2" }, - checkoutInfo: { - sourceBranch: "branch1", - merge: false, - repoDir: mg.repo.getPath("project2"), - }, - checkedOut: false, - }, - { - node: { project: "project3" }, - checkoutInfo: { - sourceBranch: "branch1", - merge: false, - repoDir: "project3", - }, - checkedOut: false, - }, - { - node: { project: "project4" }, - checkoutInfo: { - sourceBranch: "branch1", - merge: false, - repoDir: "project4", - }, - checkedOut: false, - }, - ]); - }); -}); - -describe("update resume from", () => { - const checkoutServiceSerialized = [ - { - node: { project: "test1" }, - checkoutInfo: { merge: false, repoDir: "dir" }, - checkedOut: true, - }, - { - node: { project: "test2" }, - checkoutInfo: { merge: false, repoDir: "dir" }, - checkedOut: true, - }, - ]; - - const configurationServiceSerialized = { - configuration: { - _gitEventData: { - base: { - repo: { - full_name: "test", - }, - }, - }, - _gitConfiguration: {}, - _sourceProject: {}, - _targetProject: {}, - _parsedInputs: { - CLISubCommand: FlowType.BRANCH, - }, - _defaultPlatform: PlatformType.GITLAB, - }, - _nodeChain: [{ project: "test1" }, { project: "test2" }], - _definitionFile: { - version: 2.3, - build: [], - }, - }; - - const flowServiceSerialized = { - executionResult: [ - [ - { - node: { - project: "test1", - }, - executeCommandResults: [ - { - command: "false", - result: ExecutionResult.OK, - errorMessage: "", - }, - ], - }, - { - node: { - project: "test1", - }, - executeCommandResults: [ - { - command: "false", - result: ExecutionResult.OK, - errorMessage: "", - }, - ], - }, - { - node: { - project: "test1", - }, - executeCommandResults: [ - { - command: "false", - result: ExecutionResult.NOT_OK, - errorMessage: "", - }, - ], - }, - ], - ], - resumeFrom: 0, - }; - - let flowFromJSONSpy: jest.SpyInstance; - - beforeEach(() => { - jest.spyOn(fs, "existsSync").mockReturnValue(true); - jest - .spyOn(CLIRunner.prototype, "execute") - .mockImplementation(async () => undefined); - jest - .spyOn(GitCLIService.prototype, "branch") - .mockResolvedValue({} as BranchSummary); - flowFromJSONSpy = jest.spyOn(FlowService, "fromJSON"); - }); - - test.each([ - ["start project is undefined: fail at end", true, 1, undefined], - ["start project is undefined: don't fail at end", false, 0, undefined], - [ - "starting project is defined and exists in node chain but isn't found in already executed nodes: fail at end", - true, - 1, - "test2", - ], - [ - "starting project is defined and exists in node chain but isn't found in already executed nodes: don't fail at end", - false, - 0, - "test2", - ], - ])("%p", async (_title, failAtEnd, resumeFrom, startProject) => { - jest.spyOn(fs, "readFileSync").mockReturnValue( - JSON.stringify({ - configurationService: { - ...configurationServiceSerialized, - configuration: { - ...configurationServiceSerialized.configuration, - _parsedInputs: { - ...configurationServiceSerialized.configuration._parsedInputs, - failAtEnd, - }, - }, - }, - checkoutService: checkoutServiceSerialized, - flowService: flowServiceSerialized, - }) - ); - jest - .spyOn(ConfigurationService.prototype, "getStarterProjectNameFromInput") - .mockReturnValueOnce(startProject); - - await resume.execute(); - - expect(flowFromJSONSpy).toHaveBeenCalledWith({ - ...flowServiceSerialized, - resumeFrom, - }); - }); - - test("starting project is defined but does not exist in node chain", async () => { - jest.spyOn(fs, "readFileSync").mockReturnValue( - JSON.stringify({ - configurationService: configurationServiceSerialized, - checkoutService: checkoutServiceSerialized, - flowService: defaultSerializedFlowService, - }) - ); - - jest - .spyOn(ConfigurationService.prototype, "getStarterProjectNameFromInput") - .mockReturnValueOnce("test3"); - - await expect(resume.execute()).rejects.toThrowError(); - }); - - test("starting project is defined, exists in node chain and is in already executed nodes", async () => { - const updatedFlowServiceSerialized = { - executionResult: [ - ...flowServiceSerialized.executionResult, - [ - { - node: { - project: "test2", - }, - executeCommandResults: [ - { - command: "false", - result: ExecutionResult.OK, - errorMessage: "", - }, - ], - }, - { - node: { - project: "test2", - }, - executeCommandResults: [ - { - command: "false", - result: ExecutionResult.OK, - errorMessage: "", - }, - ], - }, - { - node: { - project: "test2", - }, - executeCommandResults: [ - { - command: "false", - result: ExecutionResult.NOT_OK, - errorMessage: "", - }, - ], - }, - ], - ], - resumeFrom: 1, - }; - - jest.spyOn(fs, "readFileSync").mockReturnValue( - JSON.stringify({ - configurationService: configurationServiceSerialized, - checkoutService: checkoutServiceSerialized, - flowService: updatedFlowServiceSerialized, - }) - ); - - jest - .spyOn(ConfigurationService.prototype, "getStarterProjectNameFromInput") - .mockReturnValueOnce("test1"); - - await resume.execute(); - - expect(flowFromJSONSpy).toHaveBeenCalledWith({ - ...updatedFlowServiceSerialized, - resumeFrom: 0, - }); - }); -}); - -describe.only("recheckout projects", () => { - const checkoutServiceSerialized = [ - { - node: { project: "test1" }, - checkoutInfo: { merge: false, repoDir: "dir" }, - checkedOut: true, - }, - { - node: { project: "test2" }, - checkoutInfo: { merge: false, repoDir: "dir" }, - checkedOut: true, - }, - ]; - - const configurationServiceSerialized = { - configuration: { - _gitEventData: { - base: { - repo: { - full_name: "test", - }, - }, - }, - _gitConfiguration: {}, - _sourceProject: {}, - _targetProject: {}, - _parsedInputs: { - CLISubCommand: FlowType.BRANCH, - }, - _defaultPlatform: PlatformType.GITLAB, - }, - _nodeChain: [{ project: "test1" }, { project: "test2" }], - _definitionFile: { - version: 2.3, - build: [], - }, - }; - - const flowServiceSerialized = { - executionResult: [ - [ - { - node: { - project: "test1", - }, - executeCommandResults: [ - { - command: "false", - result: ExecutionResult.OK, - errorMessage: "", - }, - ], - }, - { - node: { - project: "test1", - }, - executeCommandResults: [ - { - command: "false", - result: ExecutionResult.OK, - errorMessage: "", - }, - ], - }, - { - node: { - project: "test1", - }, - executeCommandResults: [ - { - command: "false", - result: ExecutionResult.OK, - errorMessage: "", - }, - ], - }, - ], - ], - resumeFrom: -1, - }; - - let flowFromJSONSpy: jest.SpyInstance; - let checkoutFromJSONSpy: jest.SpyInstance; - - beforeEach(() => { - jest.spyOn(fs, "existsSync").mockReturnValue(true); - jest - .spyOn(CLIRunner.prototype, "execute") - .mockImplementation(async () => undefined); - jest - .spyOn(GitCLIService.prototype, "branch") - .mockResolvedValue({} as BranchSummary); - flowFromJSONSpy = jest.spyOn(FlowService, "fromJSON"); - checkoutFromJSONSpy = jest.spyOn(CheckoutService, "fromJSON"); - }); - - test("starting project is defined, exists in node chain and is in already executed nodes", async () => { - - jest.spyOn(fs, "readFileSync").mockReturnValue( - JSON.stringify({ - configurationService: configurationServiceSerialized, - checkoutService: checkoutServiceSerialized, - flowService: flowServiceSerialized, - }) - ); - - jest - .spyOn(ConfigurationService.prototype, "getProjectsToRecheckout") - .mockReturnValueOnce(["test1"]); - - await resume.execute(); - - expect(checkoutFromJSONSpy).toHaveBeenCalledWith([ - { - ...checkoutServiceSerialized[0], - checkedOut: false - }, - checkoutServiceSerialized[1] - ]); - - expect(flowFromJSONSpy).toHaveBeenCalledWith({ - ...flowServiceSerialized, - resumeFrom: 0, - }); - }); -}); diff --git a/test/unitary/service/tools/tools-service.test.ts b/test/unitary/service/tools/tools-service.test.ts deleted file mode 100644 index d923f2bd..00000000 --- a/test/unitary/service/tools/tools-service.test.ts +++ /dev/null @@ -1,38 +0,0 @@ -import "reflect-metadata"; -import { ToolType } from "@bc/domain/cli"; -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; -import { ConfigurationService } from "@bc/service/config/configuration-service"; -import { ProjectList } from "@bc/service/tools/project-list"; -import { ToolService } from "@bc/service/tools/tools-service"; -import Container from "typedi"; -import { Plan } from "@bc/service/tools/plan"; -import { Resume } from "@bc/service/tools/resume"; - -Container.set(constants.CONTAINER.ENTRY_POINT, EntryPoint.CLI); - -let toolService: ToolService; -beforeEach(() => { - toolService = Container.get(ToolService); -}); - -test("execute: project-list", async () => { - const projectListSpy = jest.spyOn(ProjectList.prototype, "execute").mockImplementation(async () => undefined); - jest.spyOn(ConfigurationService.prototype, "getToolType").mockReturnValue(ToolType.PROJECT_LIST); - await toolService.execute(); - expect(projectListSpy).toHaveBeenCalledTimes(1); -}); - -test("execute: plan", async () => { - const planSpy = jest.spyOn(Plan.prototype, "execute").mockImplementation(async () => undefined); - jest.spyOn(ConfigurationService.prototype, "getToolType").mockReturnValue(ToolType.PLAN); - await toolService.execute(); - expect(planSpy).toHaveBeenCalledTimes(1); -}); - -test("execute: resume", async () => { - const resumeSpy = jest.spyOn(Resume.prototype, "execute").mockImplementation(async () => undefined); - jest.spyOn(ConfigurationService.prototype, "getToolType").mockReturnValue(ToolType.RESUME); - await toolService.execute(); - expect(resumeSpy).toHaveBeenCalledTimes(1); -}); \ No newline at end of file diff --git a/test/unitary/util/date.test.ts b/test/unitary/util/date.test.ts deleted file mode 100644 index e87c5a4f..00000000 --- a/test/unitary/util/date.test.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { hrtimeToMs } from "@bc/utils/date"; - -describe("hrtimeToMs", () => { - test("start no end", () => { - // Arrange - jest.useFakeTimers(); - const start: [number, number] = [1000000, 5]; - - // Act - const result = hrtimeToMs(start); - - // Assert - expect(result).toBe(-1000000000.000005); - }); - - test("start and end", () => { - // Arrange - jest.useFakeTimers(); - const start: [number, number] = [1000000, 5]; - const end: [number, number] = [1000000, 5]; - - // Act - const result = hrtimeToMs(start, end); - - // Assert - expect(result).toBe(1000000000.000005); - }); -}); \ No newline at end of file diff --git a/test/unitary/util/log.test.ts b/test/unitary/util/log.test.ts deleted file mode 100644 index 3fb6122e..00000000 --- a/test/unitary/util/log.test.ts +++ /dev/null @@ -1,20 +0,0 @@ -import "reflect-metadata"; -import { constants } from "@bc/domain/constants"; -import { EntryPoint } from "@bc/domain/entry-point"; -import { BaseLoggerService } from "@bc/service/logger/base-logger-service"; -import { logAndThrow } from "@bc/utils/log"; -import Container from "typedi"; - -// disable logs -jest.spyOn(global.console, "log"); - -test.each([ - ["cli", EntryPoint.CLI], - ["action", EntryPoint.GITHUB_EVENT], -])("log and throw: %p", (_title: string, entryPoint: EntryPoint) => { - Container.set(constants.CONTAINER.ENTRY_POINT, entryPoint); - const spy = jest.spyOn(BaseLoggerService.prototype, "error"); - expect(() => logAndThrow("message")).toThrowError(); - expect(spy).toHaveBeenCalledTimes(1); - expect(spy).toHaveBeenCalledWith("message"); -}); diff --git a/tsconfig.json b/tsconfig.json deleted file mode 100644 index 959ba7c8..00000000 --- a/tsconfig.json +++ /dev/null @@ -1,115 +0,0 @@ -{ - "compilerOptions": { - /* Visit https://aka.ms/tsconfig to read more about this file */ - - /* Projects */ - // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ - // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ - // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ - // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ - // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ - // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ - - /* Language and Environment */ - "target": "ES2020", - /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ - // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ - // "jsx": "preserve", /* Specify what JSX code is generated. */ - "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ - "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ - // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ - // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ - // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ - // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ - // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ - // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ - // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ - - /* Modules */ - "module": "commonjs", - /* Specify what module code is generated. */ - // "rootDir": "./", /* Specify the root folder within your source files. */ - "moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */ - "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ - "paths": { - "@bc/*": [ - "./src/*" - ] - }, /* Specify a set of entries that re-map imports to additional lookup locations. */ - // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ - // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ - // "types": [], /* Specify type package names to be included without being referenced in a source file. */ - // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ - // "resolveJsonModule": true, /* Enable importing .json files. */ - // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ - - /* JavaScript Support */ - // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ - // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ - // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ - - /* Emit */ - // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ - // "declarationMap": true, /* Create sourcemaps for d.ts files. */ - // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ - "sourceMap": true, /* Create source map files for emitted JavaScript files. */ - // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ - "outDir": "./build", - /* Specify an output folder for all emitted files. */ - // "removeComments": true, /* Disable emitting comments. */ - // "noEmit": true, /* Disable emitting files from a compilation. */ - "importHelpers": false, - /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ - // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ - // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ - // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ - // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ - // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ - // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ - // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ - // "newLine": "crlf", /* Set the newline character for emitting files. */ - // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ - // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ - // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ - // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ - // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ - // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ - - /* Interop Constraints */ - // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ - // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ - "esModuleInterop": true, - /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ - // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ - "forceConsistentCasingInFileNames": true, - /* Ensure that casing is correct in imports. */ - - /* Type Checking */ - "strict": true, - /* Enable all strict type-checking options. */ - // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ - // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ - // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ - // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ - // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ - // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ - // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ - // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ - // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ - // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ - // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ - // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ - // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ - // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ - // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ - // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ - // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ - // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ - - /* Completeness */ - // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ - "skipLibCheck": true - /* Skip type checking all .d.ts files. */ - } -}