diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index d8a04fcf3..71a2de2d5 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,14 +1,24 @@ FROM mcr.microsoft.com/vscode/devcontainers/python:0-3.8 +ENV DEBIAN_FRONTEND=noninteractive + +SHELL ["/bin/bash", "-c"] + WORKDIR /workspaces +# Set Docker daemon config +RUN \ + mkdir -p /etc/docker \ + && echo '{"storage-driver": "vfs"}' > /etc/docker/daemon.json + # Install Node/Yarn for Frontent -RUN apt-get update && apt-get install -y --no-install-recommends \ +RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \ + && apt-get update \ + && apt-get update && apt-get install -y --no-install-recommends \ curl \ git \ apt-utils \ apt-transport-https \ - && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \ && echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list \ && apt-get update && apt-get install -y --no-install-recommends \ nodejs \ @@ -39,6 +49,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ dbus \ network-manager \ libpulse0 \ + && bash <(curl https://getvcn.codenotary.com -L) \ && rm -rf /var/lib/apt/lists/* # Install Python dependencies from requirements.txt if it exists diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 7538fde70..72216aa15 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -5,6 +5,7 @@ "appPort": "9123:8123", "postCreateCommand": "pre-commit install", "runArgs": ["-e", "GIT_EDITOR=code --wait", "--privileged"], + "containerEnv": {"NVM_DIR":"/usr/local/share/nvm"}, "extensions": [ "ms-python.python", "ms-python.vscode-pylance", diff --git a/.github/ISSUE_TEMPLATE/BUG_REPORT.md b/.github/ISSUE_TEMPLATE.md similarity index 76% rename from .github/ISSUE_TEMPLATE/BUG_REPORT.md rename to .github/ISSUE_TEMPLATE.md index c66e27df9..15b90ee4b 100644 --- a/.github/ISSUE_TEMPLATE/BUG_REPORT.md +++ b/.github/ISSUE_TEMPLATE.md @@ -1,5 +1,5 @@ --- -name: Report a bug with the Supervisor +name: Report a bug with the Supervisor on a supported System about: Report an issue related to the Home Assistant Supervisor. labels: bug --- @@ -11,6 +11,10 @@ labels: bug - If you have a problem with an add-on, make an issue in it's repository. --> + + ### Describe the issue @@ -47,3 +51,19 @@ Paste supervisor logs here ``` + +### System Information + +
+System Information + + +``` +Paste system info here + +``` + +
+ diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 000000000..bce488d80 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,106 @@ +name: Bug Report Form +about: Report an issue related to the Home Assistant Supervisor. +labels: bug +title: "" +issue_body: true +body: + - type: markdown + attributes: + value: | + This issue form is for reporting bugs with **supported** setups only! + + If you have a feature or enhancement request, please use the [feature request][fr] section of our [Community Forum][fr]. + + [fr]: https://community.home-assistant.io/c/feature-requests + - type: textarea + validations: + required: true + attributes: + label: Describe the issue you are experiencing + description: Provide a clear and concise description of what the bug is. + - type: markdown + attributes: + value: | + ## Environment + - type: input + validations: + required: true + attributes: + label: What is the used version of the Supervisor? + placeholder: supervisor- + description: > + Can be found in the Supervisor panel -> System tab. Starts with + `supervisor-....`. + - type: dropdown + validations: + required: true + attributes: + label: What type of installation are you running? + description: > + If you don't know, you can find it in: Configuration panel -> Info. + options: + - Home Assistant OS + - Home Assistant Supervised + - type: dropdown + validations: + required: true + attributes: + label: Which operating system are you running on? + options: + - Home Assistant Operating System + - Debian + - Other (e.g., Raspbian/Raspberry Pi OS/Fedora) + - type: input + validations: + required: true + attributes: + label: What is the version of your installed operating system? + placeholder: "5.11" + description: Can be found in the Supervisor panel -> System tab. + - type: input + validations: + required: true + attributes: + label: What version of Home Assistant Core is installed? + placeholder: core- + description: > + Can be found in the Supervisor panel -> System tab. Starts with + `core-....`. + - type: markdown + attributes: + value: | + # Details + - type: textarea + validations: + required: true + attributes: + label: Steps to reproduce the issue + description: | + Please tell us exactly how to reproduce your issue. + Provide clear and concise step by step instructions and add code snippets if needed. + value: | + 1. + 2. + 3. + ... + - type: textarea + validations: + required: true + attributes: + label: Anything in the Supervisor logs that might be useful for us? + description: > + The Supervisor logs can be found in the Supervisor panel -> System tab. + value: | + ```txt + # Put your logs below this line + + ``` + - type: markdown + attributes: + value: | + ## Additional information + - type: markdown + attributes: + value: | + If you have any additional information for us, use the field below. + Please note, you can attach screenshots or screen recordings here. diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index a1a000f8d..f007de3f2 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,5 +1,9 @@ blank_issues_enabled: false contact_links: + - name: Report a bug/issues with an unsupported Supervisor + url: https://community.home-assistant.io + about: The Community guide can help or was updated to solve your issue + - name: Report a bug for the Supervisor panel url: https://github.com/home-assistant/frontend/issues about: The Supervisor panel is a part of the Home Assistant frontend diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 8de0c2966..af9147e96 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -37,6 +37,7 @@ - This PR fixes or closes issue: fixes # - This PR is related to issue: - Link to documentation pull request: +- Link to cli pull request: ## Checklist diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml index a4dce4c2b..5613d9471 100644 --- a/.github/release-drafter.yml +++ b/.github/release-drafter.yml @@ -1,4 +1,49 @@ +change-template: "- #$NUMBER $TITLE @$AUTHOR" +sort-direction: ascending + +categories: + - title: ":boom: Breaking Changes" + label: "breaking-change" + + - title: ":wrench: Build" + label: "build" + + - title: ":boar: Chore" + label: "chore" + + - title: ":sparkles: New Features" + label: "new-feature" + + - title: ":zap: Performance" + label: "performance" + + - title: ":recycle: Refactor" + label: "refactor" + + - title: ":green_heart: CI" + label: "ci" + + - title: ":bug: Bug Fixes" + label: "bugfix" + + - title: ":white_check_mark: Test" + label: "test" + + - title: ":arrow_up: Dependency Updates" + label: "dependencies" + +include-labels: + - "breaking-change" + - "build" + - "chore" + - "performance" + - "refactor" + - "new-feature" + - "bugfix" + - "dependencies" + - "test" + - "ci" + template: | - ## What's Changed $CHANGES diff --git a/.github/workflows/builder.yml b/.github/workflows/builder.yml index 51ca88caa..27b3633f9 100644 --- a/.github/workflows/builder.yml +++ b/.github/workflows/builder.yml @@ -35,6 +35,7 @@ on: env: BUILD_NAME: supervisor BUILD_TYPE: supervisor + WHEELS_TAG: 3.8-alpine3.13 jobs: init: @@ -45,6 +46,7 @@ jobs: version: ${{ steps.version.outputs.version }} channel: ${{ steps.version.outputs.channel }} publish: ${{ steps.version.outputs.publish }} + requirements: ${{ steps.requirements.outputs.changed }} steps: - name: Checkout the repository uses: actions/checkout@v2 @@ -61,6 +63,18 @@ jobs: with: type: ${{ env.BUILD_TYPE }} + - name: Get changed files + id: changed_files + if: steps.version.outputs.publish == 'false' + uses: jitterbit/get-changed-files@v1 + + - name: Check if requirements files changed + id: requirements + run: | + if [[ "${{ steps.changed_files.outputs.all }}" =~ requirements.txt ]]; then + echo "::set-output name=changed::true" + fi + build: name: Build ${{ matrix.arch }} supervisor needs: init @@ -74,6 +88,19 @@ jobs: with: fetch-depth: 0 + - name: Build wheels + if: needs.init.outputs.requirements == 'true' + uses: home-assistant/wheels@master + with: + tag: ${{ env.WHEELS_TAG }} + arch: ${{ matrix.arch }} + wheels-host: ${{ secrets.WHEELS_HOST }} + wheels-key: ${{ secrets.WHEELS_KEY }} + wheels-user: wheels + apk: "build-base;libffi-dev;openssl-dev;cargo" + skip-binary: aiohttp + requirements: "requirements.txt" + - name: Set version if: needs.init.outputs.publish == 'true' uses: home-assistant/actions/helpers/version@master @@ -87,19 +114,56 @@ jobs: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Login to GitHub Container Registry + if: needs.init.outputs.publish == 'true' + uses: docker/login-action@v1 + with: + registry: ghcr.io + username: ${{ secrets.GIT_USER }} + password: ${{ secrets.GIT_TOKEN }} + - name: Set build arguments if: needs.init.outputs.publish == 'false' run: echo "BUILD_ARGS=--test" >> $GITHUB_ENV - name: Build supervisor - uses: home-assistant/builder@2020.11.0 + uses: home-assistant/builder@2021.04.0 with: args: | $BUILD_ARGS \ --${{ matrix.arch }} \ --target /data \ + --with-codenotary "${{ secrets.VCN_USER }}" "${{ secrets.VCN_PASSWORD }}" "${{ secrets.VCN_ORG }}" \ + --validate-from "${{ secrets.VCN_ORG }}" \ + --validate-cache "${{ secrets.VCN_ORG }}" \ --generic ${{ needs.init.outputs.version }} + codenotary: + name: CodeNotary signature + needs: init + runs-on: ubuntu-latest + steps: + - name: Checkout the repository + if: needs.init.outputs.publish == 'true' + uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Set version + if: needs.init.outputs.publish == 'true' + uses: home-assistant/actions/helpers/version@master + with: + type: ${{ env.BUILD_TYPE }} + + - name: Signing image + if: needs.init.outputs.publish == 'true' + uses: home-assistant/actions/helpers/codenotary@master + with: + source: dir://${{ github.workspace }} + user: ${{ secrets.VCN_USER }} + password: ${{ secrets.VCN_PASSWORD }} + organisation: ${{ secrets.VCN_ORG }} + version: name: Update version needs: ["init", "run_supervisor"] @@ -128,13 +192,13 @@ jobs: run_supervisor: runs-on: ubuntu-latest name: Run the Supervisor - needs: ["build"] + needs: ["build", "codenotary"] steps: - name: Checkout the repository uses: actions/checkout@v2 - name: Build the Supervisor - uses: home-assistant/builder@2020.11.0 + uses: home-assistant/builder@2021.04.0 with: args: | --test \ diff --git a/.github/workflows/check_pr_labels.yml b/.github/workflows/check_pr_labels.yml new file mode 100644 index 000000000..966a5ce42 --- /dev/null +++ b/.github/workflows/check_pr_labels.yml @@ -0,0 +1,19 @@ +name: Check PR + +on: + pull_request: + branches: ["main"] + types: [labeled, unlabeled, synchronize] + +jobs: + init: + name: Check labels + runs-on: ubuntu-latest + steps: + - name: Check labels + run: | + labels=$(jq -r '.pull_request.labels[] | .name' ${{github.event_path }}) + echo "$labels" + if [ "$labels" == "cla-signed" ]; then + exit 1 + fi diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index f7d936d0d..86e523fb7 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -25,12 +25,12 @@ jobs: uses: actions/checkout@v2 - name: Set up Python ${{ matrix.python-version }} id: python - uses: actions/setup-python@v2.1.4 + uses: actions/setup-python@v2.2.2 with: python-version: ${{ matrix.python-version }} - name: Restore Python virtual environment id: cache-venv - uses: actions/cache@v2 + uses: actions/cache@v2.1.5 with: path: venv key: | @@ -47,7 +47,7 @@ jobs: pip install -r requirements.txt -r requirements_tests.txt - name: Restore pre-commit environment from cache id: cache-precommit - uses: actions/cache@v2 + uses: actions/cache@v2.1.5 with: path: ${{ env.PRE_COMMIT_HOME }} key: | @@ -68,13 +68,13 @@ jobs: - name: Check out code from GitHub uses: actions/checkout@v2 - name: Set up Python ${{ env.DEFAULT_PYTHON }} - uses: actions/setup-python@v2.1.4 + uses: actions/setup-python@v2.2.2 id: python with: python-version: ${{ env.DEFAULT_PYTHON }} - name: Restore Python virtual environment id: cache-venv - uses: actions/cache@v2 + uses: actions/cache@v2.1.5 with: path: venv key: | @@ -112,13 +112,13 @@ jobs: - name: Check out code from GitHub uses: actions/checkout@v2 - name: Set up Python ${{ env.DEFAULT_PYTHON }} - uses: actions/setup-python@v2.1.4 + uses: actions/setup-python@v2.2.2 id: python with: python-version: ${{ env.DEFAULT_PYTHON }} - name: Restore Python virtual environment id: cache-venv - uses: actions/cache@v2 + uses: actions/cache@v2.1.5 with: path: venv key: | @@ -130,7 +130,7 @@ jobs: exit 1 - name: Restore pre-commit environment from cache id: cache-precommit - uses: actions/cache@v2 + uses: actions/cache@v2.1.5 with: path: ${{ env.PRE_COMMIT_HOME }} key: | @@ -156,13 +156,13 @@ jobs: - name: Check out code from GitHub uses: actions/checkout@v2 - name: Set up Python ${{ env.DEFAULT_PYTHON }} - uses: actions/setup-python@v2.1.4 + uses: actions/setup-python@v2.2.2 id: python with: python-version: ${{ env.DEFAULT_PYTHON }} - name: Restore Python virtual environment id: cache-venv - uses: actions/cache@v2 + uses: actions/cache@v2.1.5 with: path: venv key: | @@ -188,13 +188,13 @@ jobs: - name: Check out code from GitHub uses: actions/checkout@v2 - name: Set up Python ${{ env.DEFAULT_PYTHON }} - uses: actions/setup-python@v2.1.4 + uses: actions/setup-python@v2.2.2 id: python with: python-version: ${{ env.DEFAULT_PYTHON }} - name: Restore Python virtual environment id: cache-venv - uses: actions/cache@v2 + uses: actions/cache@v2.1.5 with: path: venv key: | @@ -206,7 +206,7 @@ jobs: exit 1 - name: Restore pre-commit environment from cache id: cache-precommit - uses: actions/cache@v2 + uses: actions/cache@v2.1.5 with: path: ${{ env.PRE_COMMIT_HOME }} key: | @@ -229,13 +229,13 @@ jobs: - name: Check out code from GitHub uses: actions/checkout@v2 - name: Set up Python ${{ env.DEFAULT_PYTHON }} - uses: actions/setup-python@v2.1.4 + uses: actions/setup-python@v2.2.2 id: python with: python-version: ${{ env.DEFAULT_PYTHON }} - name: Restore Python virtual environment id: cache-venv - uses: actions/cache@v2 + uses: actions/cache@v2.1.5 with: path: venv key: | @@ -247,7 +247,7 @@ jobs: exit 1 - name: Restore pre-commit environment from cache id: cache-precommit - uses: actions/cache@v2 + uses: actions/cache@v2.1.5 with: path: ${{ env.PRE_COMMIT_HOME }} key: | @@ -273,13 +273,13 @@ jobs: - name: Check out code from GitHub uses: actions/checkout@v2 - name: Set up Python ${{ env.DEFAULT_PYTHON }} - uses: actions/setup-python@v2.1.4 + uses: actions/setup-python@v2.2.2 id: python with: python-version: ${{ env.DEFAULT_PYTHON }} - name: Restore Python virtual environment id: cache-venv - uses: actions/cache@v2 + uses: actions/cache@v2.1.5 with: path: venv key: | @@ -305,13 +305,13 @@ jobs: - name: Check out code from GitHub uses: actions/checkout@v2 - name: Set up Python ${{ env.DEFAULT_PYTHON }} - uses: actions/setup-python@v2.1.4 + uses: actions/setup-python@v2.2.2 id: python with: python-version: ${{ env.DEFAULT_PYTHON }} - name: Restore Python virtual environment id: cache-venv - uses: actions/cache@v2 + uses: actions/cache@v2.1.5 with: path: venv key: | @@ -323,7 +323,7 @@ jobs: exit 1 - name: Restore pre-commit environment from cache id: cache-precommit - uses: actions/cache@v2 + uses: actions/cache@v2.1.5 with: path: ${{ env.PRE_COMMIT_HOME }} key: | @@ -349,13 +349,17 @@ jobs: - name: Check out code from GitHub uses: actions/checkout@v2 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2.1.4 + uses: actions/setup-python@v2.2.2 id: python with: python-version: ${{ matrix.python-version }} + - name: Install CodeNotary + shell: bash + run: | + bash <(curl https://getvcn.codenotary.com -L) - name: Restore Python virtual environment id: cache-venv - uses: actions/cache@v2 + uses: actions/cache@v2.1.5 with: path: venv key: | @@ -390,7 +394,7 @@ jobs: -o console_output_style=count \ tests - name: Upload coverage artifact - uses: actions/upload-artifact@v2.2.1 + uses: actions/upload-artifact@v2.2.3 with: name: coverage-${{ matrix.python-version }} path: .coverage @@ -403,13 +407,13 @@ jobs: - name: Check out code from GitHub uses: actions/checkout@v2 - name: Set up Python ${{ env.DEFAULT_PYTHON }} - uses: actions/setup-python@v2.1.4 + uses: actions/setup-python@v2.2.2 id: python with: python-version: ${{ env.DEFAULT_PYTHON }} - name: Restore Python virtual environment id: cache-venv - uses: actions/cache@v2 + uses: actions/cache@v2.1.5 with: path: venv key: | @@ -428,4 +432,4 @@ jobs: coverage report coverage xml - name: Upload coverage to Codecov - uses: codecov/codecov-action@v1.0.15 + uses: codecov/codecov-action@v1.3.2 diff --git a/.github/workflows/lock.yml b/.github/workflows/lock.yml index 2f8a12f7d..44cf5f736 100644 --- a/.github/workflows/lock.yml +++ b/.github/workflows/lock.yml @@ -9,7 +9,7 @@ jobs: lock: runs-on: ubuntu-latest steps: - - uses: dessant/lock-threads@v2.0.1 + - uses: dessant/lock-threads@v2.0.3 with: github-token: ${{ github.token }} issue-lock-inactive-days: "30" diff --git a/.github/workflows/release-drafter.yml b/.github/workflows/release-drafter.yml index 5b27fd671..2f3586020 100644 --- a/.github/workflows/release-drafter.yml +++ b/.github/workflows/release-drafter.yml @@ -2,14 +2,43 @@ name: Release Drafter on: push: - # branches to consider in the event; optional, defaults to all branches: - main jobs: update_release_draft: runs-on: ubuntu-latest + name: Release Drafter steps: - - uses: release-drafter/release-drafter@v5 + - name: Checkout the repository + uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Find Next Version + id: version + run: | + declare -i newpost + latest=$(git describe --tags $(git rev-list --tags --max-count=1)) + latestpre=$(echo "$latest" | awk '{split($0,a,"."); print a[1] "." a[2]}') + datepre=$(date --utc '+%Y.%m') + + + if [[ "$latestpre" == "$datepre" ]]; then + latestpost=$(echo "$latest" | awk '{split($0,a,"."); print a[3]}') + newpost=$latestpost+1 + else + newpost=0 + fi + + echo Current version: $latest + echo New target version: $datepre.$newpost + echo "::set-output name=version::$datepre.$newpost" + + - name: Run Release Drafter + uses: release-drafter/release-drafter@v5 + with: + tag: ${{ steps.version.outputs.version }} + name: ${{ steps.version.outputs.version }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index d63928b1e..05b341dca 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -9,7 +9,7 @@ jobs: stale: runs-on: ubuntu-latest steps: - - uses: actions/stale@v3.0.14 + - uses: actions/stale@v3.0.18 with: repo-token: ${{ secrets.GITHUB_TOKEN }} days-before-stale: 60 diff --git a/.hadolint.yaml b/.hadolint.yaml index 128471607..2cc6e2cac 100644 --- a/.hadolint.yaml +++ b/.hadolint.yaml @@ -1,5 +1,6 @@ ignored: - - DL3018 + - DL3003 - DL3006 - DL3013 + - DL3018 - SC2155 diff --git a/.vcnignore b/.vcnignore new file mode 100644 index 000000000..9b739ee8c --- /dev/null +++ b/.vcnignore @@ -0,0 +1,21 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# Distribution / packaging +*.egg-info/ + +# General files +.git +.github +.devcontainer +.vscode +.tox + +# Data +home-assistant-polymer/ +script/ +tests/ +data/ +venv/ diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 4e416daa8..97b66ee21 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -2,9 +2,9 @@ "version": "2.0.0", "tasks": [ { - "label": "Run Testenv", + "label": "Run Supervisor", "type": "shell", - "command": "./scripts/test_env.sh", + "command": "./scripts/run-supervisor.sh", "group": { "kind": "test", "isDefault": true @@ -16,7 +16,21 @@ "problemMatcher": [] }, { - "label": "Run Testenv CLI", + "label": "Build Supervisor", + "type": "shell", + "command": "./scripts/build-supervisor.sh", + "group": { + "kind": "build", + "isDefault": true + }, + "presentation": { + "reveal": "always", + "panel": "new" + }, + "problemMatcher": [] + }, + { + "label": "Run Supervisor CLI", "type": "shell", "command": "docker exec -ti hassio_cli /usr/bin/cli.sh", "group": { @@ -30,7 +44,7 @@ "problemMatcher": [] }, { - "label": "Update UI", + "label": "Update Supervisor Panel", "type": "shell", "command": "./scripts/update-frontend.sh", "group": { diff --git a/Dockerfile b/Dockerfile index f462eee94..fa9899b51 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,13 +1,18 @@ ARG BUILD_FROM -FROM $BUILD_FROM +FROM ${BUILD_FROM} ENV \ S6_SERVICES_GRACETIME=10000 \ SUPERVISOR_API=http://localhost +ARG BUILD_ARCH +ARG VCN_VERSION +WORKDIR /usr/src + # Install base RUN \ - apk add --no-cache \ + set -x \ + && apk add --no-cache \ eudev \ eudev-libs \ git \ @@ -15,10 +20,37 @@ RUN \ libffi \ libpulse \ musl \ - openssl - -ARG BUILD_ARCH -WORKDIR /usr/src + openssl \ + && apk add --no-cache --virtual .build-dependencies \ + build-base \ + go \ + \ + && git clone -b v${VCN_VERSION} --depth 1 \ + https://github.com/codenotary/vcn \ + && cd vcn \ + \ + # Fix: https://github.com/codenotary/vcn/issues/131 + && go get github.com/codenotary/immudb@4cf9e2ae06ac2e6ec98a60364c3de3eab5524757 \ + \ + && if [ "${BUILD_ARCH}" = "armhf" ]; then \ + GOARM=6 GOARCH=arm go build -o vcn -ldflags="-s -w" ./cmd/vcn; \ + elif [ "${BUILD_ARCH}" = "armv7" ]; then \ + GOARM=7 GOARCH=arm go build -o vcn -ldflags="-s -w" ./cmd/vcn; \ + elif [ "${BUILD_ARCH}" = "aarch64" ]; then \ + GOARCH=arm64 go build -o vcn -ldflags="-s -w" ./cmd/vcn; \ + elif [ "${BUILD_ARCH}" = "i386" ]; then \ + GOARCH=386 go build -o vcn -ldflags="-s -w" ./cmd/vcn; \ + elif [ "${BUILD_ARCH}" = "amd64" ]; then \ + GOARCH=amd64 go build -o vcn -ldflags="-s -w" ./cmd/vcn; \ + else \ + exit 1; \ + fi \ + \ + && rm -rf /root/go /root/.cache \ + && mv vcn /usr/bin/vcn \ + \ + && apk del .build-dependencies \ + && rm -rf /usr/src/vcn # Install requirements COPY requirements.txt . diff --git a/README.md b/README.md index c4be92149..5a65bad15 100644 --- a/README.md +++ b/README.md @@ -10,26 +10,23 @@ network settings or installing and updating software. ## Installation -Installation instructions can be found at https://home-assistant.io/hassio. +Installation instructions can be found at https://home-assistant.io/getting-started. ## Development -The development of the Supervisor is not difficult but tricky. - -- You can use the builder to create your Supervisor: https://github.com/home-assistant/hassio-builder -- Access a HassOS device or VM and pull your Supervisor. -- Set the developer modus with the CLI tool: `ha supervisor options --channel=dev` -- Tag it as `homeassistant/xy-hassio-supervisor:latest` -- Restart the service with `systemctl restart hassos-supervisor | journalctl -fu hassos-supervisor` -- Test your changes - -For small bugfixes or improvements, make a PR. For significant changes open a RFC first, please. Thanks. +For small changes and bugfixes you can just follow this, but for significant changes open a RFC first. +Development instructions can be found [here][development]. ## Release -Follow is the relase circle process: +Releases are done in 3 stages (channels) with this structure: -1. Merge master into dev / make sure version stay on dev -2. Merge dev into master -3. Bump the release on master -4. Create a GitHub Release from master with the right version tag +1. Pull requests are merged to the `main` branch. +2. A new build is pushed to the `dev` stage. +3. Releases are published. +4. A new build is pushed to the `beta` stage. +5. The [`stable.json`][stable] file is updated. +6. The build that was pushed to `beta` will now be pushed to `stable`. + +[development]: https://developers.home-assistant.io/docs/supervisor/development +[stable]: https://github.com/home-assistant/version/blob/master/stable.json diff --git a/azure-pipelines-wheels.yml b/azure-pipelines-wheels.yml deleted file mode 100644 index 8f46669d9..000000000 --- a/azure-pipelines-wheels.yml +++ /dev/null @@ -1,26 +0,0 @@ -# https://dev.azure.com/home-assistant - -trigger: - batch: true - branches: - include: - - main -pr: none -variables: - - name: versionWheels - value: "1.13.0-3.8-alpine3.12" -resources: - repositories: - - repository: azure - type: github - name: "home-assistant/ci-azure" - endpoint: "home-assistant" - -jobs: - - template: templates/azp-job-wheels.yaml@azure - parameters: - builderVersion: "$(versionWheels)" - builderApk: "build-base;libffi-dev;openssl-dev" - builderPip: "Cython" - skipBinary: "aiohttp" - wheelsRequirement: "requirements.txt" diff --git a/build.json b/build.json index b46db3345..70db4c776 100644 --- a/build.json +++ b/build.json @@ -1,13 +1,18 @@ { "image": "homeassistant/{arch}-hassio-supervisor", + "shadow_repository": "ghcr.io/home-assistant", "build_from": { - "aarch64": "homeassistant/aarch64-base-python:3.8-alpine3.12", - "armhf": "homeassistant/armhf-base-python:3.8-alpine3.12", - "armv7": "homeassistant/armv7-base-python:3.8-alpine3.12", - "amd64": "homeassistant/amd64-base-python:3.8-alpine3.12", - "i386": "homeassistant/i386-base-python:3.8-alpine3.12" + "aarch64": "ghcr.io/home-assistant/aarch64-base-python:3.8-alpine3.13", + "armhf": "ghcr.io/home-assistant/armhf-base-python:3.8-alpine3.13", + "armv7": "ghcr.io/home-assistant/armv7-base-python:3.8-alpine3.13", + "amd64": "ghcr.io/home-assistant/amd64-base-python:3.8-alpine3.13", + "i386": "ghcr.io/home-assistant/i386-base-python:3.8-alpine3.13" + }, + "args": { + "VCN_VERSION": "0.9.4" }, "labels": { - "io.hass.type": "supervisor" + "io.hass.type": "supervisor", + "org.opencontainers.image.source": "https://github.com/home-assistant/supervisor" } } diff --git a/home-assistant-polymer b/home-assistant-polymer index 1d367eca6..8dd3d78f2 160000 --- a/home-assistant-polymer +++ b/home-assistant-polymer @@ -1 +1 @@ -Subproject commit 1d367eca697206b0b9ca2c3edfdcdcf9854014e3 +Subproject commit 8dd3d78f2125f45bb6c608c54fb3af3fca803acc diff --git a/requirements.txt b/requirements.txt index 7117e5f90..bfaabdd55 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,20 +1,20 @@ -aiohttp==3.7.3 +aiohttp==3.7.4.post0 async_timeout==3.0.1 atomicwrites==1.4.0 attrs==20.3.0 +awesomeversion==21.4.0 brotli==1.0.9 cchardet==2.1.7 -colorlog==4.6.2 +colorlog==4.8.0 cpe==1.2.1 -cryptography==3.2.1 -debugpy==1.2.0 -docker==4.4.0 -gitpython==3.1.11 -jinja2==2.11.2 -packaging==20.4 -pulsectl==20.5.1 -pytz==2020.4 +cryptography==3.4.6 +debugpy==1.2.1 +docker==5.0.0 +gitpython==3.1.14 +jinja2==2.11.3 +pulsectl==21.3.4 +pytz==2021.1 pyudev==0.22.0 ruamel.yaml==0.15.100 -sentry-sdk==0.19.4 -voluptuous==0.12.0 +sentry-sdk==1.0.0 +voluptuous==0.12.1 diff --git a/requirements_tests.txt b/requirements_tests.txt index 3887a9cef..913800083 100644 --- a/requirements_tests.txt +++ b/requirements_tests.txt @@ -1,14 +1,14 @@ black==20.8b1 -codecov==2.1.10 -coverage==5.3 -flake8-docstrings==1.5.0 -flake8==3.8.4 -pre-commit==2.9.2 -pydocstyle==5.1.1 -pylint==2.6.0 +codecov==2.1.11 +coverage==5.5 +flake8-docstrings==1.6.0 +flake8==3.9.0 +pre-commit==2.12.0 +pydocstyle==6.0.0 +pylint==2.7.4 pytest-aiohttp==0.3.0 pytest-asyncio==0.12.0 # NB!: Versions over 0.12.0 breaks pytest-aiohttp (https://github.com/aio-libs/pytest-aiohttp/issues/16) -pytest-cov==2.10.1 +pytest-cov==2.11.1 pytest-timeout==1.4.2 -pytest==6.1.2 -pyupgrade==2.7.4 +pytest==6.2.3 +pyupgrade==2.12.0 diff --git a/rootfs/etc/cont-init.d/udev.sh b/rootfs/etc/cont-init.d/udev.sh index 4aa88b3ed..dab60525e 100644 --- a/rootfs/etc/cont-init.d/udev.sh +++ b/rootfs/etc/cont-init.d/udev.sh @@ -2,9 +2,17 @@ # ============================================================================== # Start udev service # ============================================================================== + +if bashio::fs.directory_exists /run/udev && ! bashio::fs.file_exists /run/.old_udev; then + bashio::log.info "Using udev information from host" + bashio::exit.ok +fi + +bashio::log.info "Setup udev backend inside container" udevd --daemon bashio::log.info "Update udev information" +touch /run/.old_udev if udevadm trigger; then udevadm settle || true else diff --git a/scripts/build-supervisor.sh b/scripts/build-supervisor.sh new file mode 100755 index 000000000..7ecd60eb4 --- /dev/null +++ b/scripts/build-supervisor.sh @@ -0,0 +1,28 @@ +#!/bin/bash +source "${BASH_SOURCE[0]%/*}/common.sh" + +set -eE + +DOCKER_TIMEOUT=30 +DOCKER_PID=0 + +function build_supervisor() { + docker pull homeassistant/amd64-builder:dev + + docker run --rm \ + --privileged \ + -v /run/docker.sock:/run/docker.sock \ + -v "$(pwd):/data" \ + homeassistant/amd64-builder:dev \ + --generic latest \ + --target /data \ + --test \ + --amd64 \ + --no-cache +} + +echo "Build Supervisor" +start_docker +trap "stop_docker" ERR + +build_supervisor diff --git a/scripts/common.sh b/scripts/common.sh new file mode 100644 index 000000000..05126bb7d --- /dev/null +++ b/scripts/common.sh @@ -0,0 +1,58 @@ +#!/bin/bash + +function start_docker() { + local starttime + local endtime + + echo "Starting docker." + dockerd 2> /dev/null & + DOCKER_PID=$! + + echo "Waiting for docker to initialize..." + starttime="$(date +%s)" + endtime="$(date +%s)" + until docker info >/dev/null 2>&1; do + if [ $((endtime - starttime)) -le $DOCKER_TIMEOUT ]; then + sleep 1 + endtime=$(date +%s) + else + echo "Timeout while waiting for docker to come up" + exit 1 + fi + done + echo "Docker was initialized" +} + +function stop_docker() { + local starttime + local endtime + + echo "Stopping in container docker..." + if [ "$DOCKER_PID" -gt 0 ] && kill -0 "$DOCKER_PID" 2> /dev/null; then + starttime="$(date +%s)" + endtime="$(date +%s)" + + # Now wait for it to die + kill "$DOCKER_PID" + while kill -0 "$DOCKER_PID" 2> /dev/null; do + if [ $((endtime - starttime)) -le $DOCKER_TIMEOUT ]; then + sleep 1 + endtime=$(date +%s) + else + echo "Timeout while waiting for container docker to die" + exit 1 + fi + done + else + echo "Your host might have been left with unreleased resources" + fi +} + +function cleanup_lastboot() { + if [[ -f /workspaces/test_supervisor/config.json ]]; then + echo "Cleaning up last boot" + cp /workspaces/test_supervisor/config.json /tmp/config.json + jq -rM 'del(.last_boot)' /tmp/config.json > /workspaces/test_supervisor/config.json + rm /tmp/config.json + fi +} diff --git a/scripts/run-supervisor.sh b/scripts/run-supervisor.sh new file mode 100755 index 000000000..c792d0ef0 --- /dev/null +++ b/scripts/run-supervisor.sh @@ -0,0 +1,102 @@ +#!/bin/bash +source "${BASH_SOURCE[0]%/*}/common.sh" +source "${BASH_SOURCE[0]%/*}/build-supervisor.sh" + +set -eE + +DOCKER_TIMEOUT=30 +DOCKER_PID=0 + + +function cleanup_docker() { + echo "Cleaning up stopped containers..." + docker rm $(docker ps -a -q) || true +} + + +function run_supervisor() { + mkdir -p /workspaces/test_supervisor + + echo "Start Supervisor" + docker run --rm --privileged \ + --name hassio_supervisor \ + --privileged \ + --security-opt seccomp=unconfined \ + --security-opt apparmor:unconfined \ + -v /run/docker.sock:/run/docker.sock:rw \ + -v /run/dbus:/run/dbus:ro \ + -v /run/udev:/run/udev:ro \ + -v "/workspaces/test_supervisor":/data:rw \ + -v /etc/machine-id:/etc/machine-id:ro \ + -v /workspaces/supervisor:/usr/src/supervisor \ + -e SUPERVISOR_SHARE="/workspaces/test_supervisor" \ + -e SUPERVISOR_NAME=hassio_supervisor \ + -e SUPERVISOR_DEV=1 \ + -e SUPERVISOR_MACHINE="qemux86-64" \ + homeassistant/amd64-hassio-supervisor:latest + +} + + +function init_dbus() { + if pgrep dbus-daemon; then + echo "Dbus is running" + return 0 + fi + + echo "Startup dbus" + mkdir -p /var/lib/dbus + cp -f /etc/machine-id /var/lib/dbus/machine-id + + # cleanups + mkdir -p /run/dbus + rm -f /run/dbus/pid + + # run + dbus-daemon --system --print-address +} + + +function init_udev() { + if pgrep systemd-udevd; then + echo "udev is running" + return 0 + fi + + echo "Startup udev" + + # cleanups + mkdir -p /run/udev + + # run + /lib/systemd/systemd-udevd --daemon + sleep 3 + udevadm trigger && udevadm settle +} + +echo "Run Supervisor" + +start_docker +trap "stop_docker" ERR + + +if [ "$( docker container inspect -f '{{.State.Status}}' hassio_supervisor )" == "running" ]; then + echo "Restarting Supervisor" + docker rm -f hassio_supervisor + init_dbus + init_udev + cleanup_lastboot + run_supervisor + stop_docker + +else + echo "Starting Supervisor" + docker system prune -f + build_supervisor + cleanup_lastboot + cleanup_docker + init_dbus + init_udev + run_supervisor + stop_docker +fi \ No newline at end of file diff --git a/scripts/test_env.sh b/scripts/test_env.sh deleted file mode 100755 index 08c52a535..000000000 --- a/scripts/test_env.sh +++ /dev/null @@ -1,135 +0,0 @@ -#!/bin/bash -set -eE - -DOCKER_TIMEOUT=30 -DOCKER_PID=0 - - -function start_docker() { - local starttime - local endtime - - echo "Starting docker." - dockerd 2> /dev/null & - DOCKER_PID=$! - - echo "Waiting for docker to initialize..." - starttime="$(date +%s)" - endtime="$(date +%s)" - until docker info >/dev/null 2>&1; do - if [ $((endtime - starttime)) -le $DOCKER_TIMEOUT ]; then - sleep 1 - endtime=$(date +%s) - else - echo "Timeout while waiting for docker to come up" - exit 1 - fi - done - echo "Docker was initialized" -} - - -function stop_docker() { - local starttime - local endtime - - echo "Stopping in container docker..." - if [ "$DOCKER_PID" -gt 0 ] && kill -0 "$DOCKER_PID" 2> /dev/null; then - starttime="$(date +%s)" - endtime="$(date +%s)" - - # Now wait for it to die - kill "$DOCKER_PID" - while kill -0 "$DOCKER_PID" 2> /dev/null; do - if [ $((endtime - starttime)) -le $DOCKER_TIMEOUT ]; then - sleep 1 - endtime=$(date +%s) - else - echo "Timeout while waiting for container docker to die" - exit 1 - fi - done - else - echo "Your host might have been left with unreleased resources" - fi -} - - -function build_supervisor() { - docker pull homeassistant/amd64-builder:dev - - docker run --rm --privileged \ - -v /run/docker.sock:/run/docker.sock -v "$(pwd):/data" \ - homeassistant/amd64-builder:dev \ - --generic dev -t /data --test --amd64 --no-cache -} - - -function cleanup_lastboot() { - if [[ -f /workspaces/test_supervisor/config.json ]]; then - echo "Cleaning up last boot" - cp /workspaces/test_supervisor/config.json /tmp/config.json - jq -rM 'del(.last_boot)' /tmp/config.json > /workspaces/test_supervisor/config.json - rm /tmp/config.json - fi -} - - -function cleanup_docker() { - echo "Cleaning up stopped containers..." - docker rm $(docker ps -a -q) || true -} - - -function setup_test_env() { - mkdir -p /workspaces/test_supervisor - - echo "Start Supervisor" - docker run --rm --privileged \ - --name hassio_supervisor \ - --security-opt seccomp=unconfined \ - --security-opt apparmor:unconfined \ - -v /run/docker.sock:/run/docker.sock \ - -v /run/dbus:/run/dbus \ - -v "/workspaces/test_supervisor":/data \ - -v /etc/machine-id:/etc/machine-id:ro \ - -e SUPERVISOR_SHARE="/workspaces/test_supervisor" \ - -e SUPERVISOR_NAME=hassio_supervisor \ - -e SUPERVISOR_DEV=1 \ - -e SUPERVISOR_MACHINE="qemux86-64" \ - homeassistant/amd64-hassio-supervisor:latest - -} - - -function init_dbus() { - if pgrep dbus-daemon; then - echo "Dbus is running" - return 0 - fi - - echo "Startup dbus" - mkdir -p /var/lib/dbus - cp -f /etc/machine-id /var/lib/dbus/machine-id - - # cleanups - mkdir -p /run/dbus - rm -f /run/dbus/pid - - # run - dbus-daemon --system --print-address -} - -echo "Start Test-Env" - -start_docker -trap "stop_docker" ERR - -docker system prune -f - -build_supervisor -cleanup_lastboot -cleanup_docker -init_dbus -setup_test_env -stop_docker diff --git a/setup.py b/setup.py index ad904c3a2..ac4e8396d 100644 --- a/setup.py +++ b/setup.py @@ -44,7 +44,9 @@ setup( "supervisor.jobs", "supervisor.misc", "supervisor.plugins", + "supervisor.resolution.checks", "supervisor.resolution.evaluations", + "supervisor.resolution.fixups", "supervisor.resolution", "supervisor.services.modules", "supervisor.services", diff --git a/supervisor/addons/__init__.py b/supervisor/addons/__init__.py index fcbc241b5..c7eadb588 100644 --- a/supervisor/addons/__init__.py +++ b/supervisor/addons/__init__.py @@ -154,17 +154,16 @@ class AddonManager(CoreSysAttributes): async def install(self, slug: str) -> None: """Install an add-on.""" if slug in self.local: - _LOGGER.warning("Add-on %s is already installed", slug) - return + raise AddonsError(f"Add-on {slug} is already installed", _LOGGER.warning) store = self.store.get(slug) if not store: - _LOGGER.error("Add-on %s not exists", slug) - raise AddonsError() + raise AddonsError(f"Add-on {slug} not exists", _LOGGER.error) if not store.available: - _LOGGER.error("Add-on %s not supported on that platform", slug) - raise AddonsNotSupportedError() + raise AddonsNotSupportedError( + f"Add-on {slug} not supported on that platform", _LOGGER.error + ) self.data.install(store) addon = Addon(self.coresys, slug) @@ -256,37 +255,38 @@ class AddonManager(CoreSysAttributes): async def update(self, slug: str) -> None: """Update add-on.""" if slug not in self.local: - _LOGGER.error("Add-on %s is not installed", slug) - raise AddonsError() + raise AddonsError(f"Add-on {slug} is not installed", _LOGGER.error) addon = self.local[slug] if addon.is_detached: - _LOGGER.error("Add-on %s is not available inside store", slug) - raise AddonsError() + raise AddonsError( + f"Add-on {slug} is not available inside store", _LOGGER.error + ) store = self.store[slug] if addon.version == store.version: - _LOGGER.warning("No update available for add-on %s", slug) - return + raise AddonsError(f"No update available for add-on {slug}", _LOGGER.warning) # Check if available, Maybe something have changed if not store.available: - _LOGGER.error("Add-on %s not supported on that platform", slug) - raise AddonsNotSupportedError() + raise AddonsNotSupportedError( + f"Add-on {slug} not supported on that platform", _LOGGER.error + ) # Update instance last_state: AddonState = addon.state + old_image = addon.image try: await addon.instance.update(store.version, store.image) - - # Cleanup - with suppress(DockerError): - await addon.instance.cleanup() except DockerError as err: raise AddonsError() from err - else: - self.data.update(store) - _LOGGER.info("Add-on '%s' successfully updated", slug) + + _LOGGER.info("Add-on '%s' successfully updated", slug) + self.data.update(store) + + # Cleanup + with suppress(DockerError): + await addon.instance.cleanup(old_image=old_image) # Setup/Fix AppArmor profile await addon.install_apparmor() diff --git a/supervisor/addons/addon.py b/supervisor/addons/addon.py index 09620c6f4..fcb9b454f 100644 --- a/supervisor/addons/addon.py +++ b/supervisor/addons/addon.py @@ -10,7 +10,7 @@ import secrets import shutil import tarfile from tempfile import TemporaryDirectory -from typing import Any, Awaitable, Dict, List, Optional +from typing import Any, Awaitable, Dict, List, Optional, Set import aiohttp import voluptuous as vol @@ -22,6 +22,8 @@ from ..const import ( ATTR_AUDIO_OUTPUT, ATTR_AUTO_UPDATE, ATTR_BOOT, + ATTR_DATA, + ATTR_EVENT, ATTR_IMAGE, ATTR_INGRESS_ENTRY, ATTR_INGRESS_PANEL, @@ -32,8 +34,10 @@ from ..const import ( ATTR_PORTS, ATTR_PROTECTED, ATTR_SCHEMA, + ATTR_SLUG, ATTR_STATE, ATTR_SYSTEM, + ATTR_TYPE, ATTR_USER, ATTR_UUID, ATTR_VERSION, @@ -50,18 +54,21 @@ from ..exceptions import ( AddonConfigurationError, AddonsError, AddonsNotSupportedError, + ConfigurationFileError, DockerError, DockerRequestError, HostAppArmorError, - JsonFileError, ) +from ..hardware.data import Device +from ..homeassistant.const import WSEvent, WSType from ..utils import check_port from ..utils.apparmor import adjust_profile from ..utils.json import read_json_file, write_json_file from ..utils.tar import atomic_contents_add, secure_path from .model import AddonModel, Data +from .options import AddonOptions from .utils import remove_data -from .validate import SCHEMA_ADDON_SNAPSHOT, validate_options +from .validate import SCHEMA_ADDON_SNAPSHOT _LOGGER: logging.Logger = logging.getLogger(__name__) @@ -72,7 +79,7 @@ RE_WEBUI = re.compile( RE_WATCHDOG = re.compile( r"^(?:(?Phttps?|tcp)|\[PROTO:(?P\w+)\])" - r":\/\/\[HOST\]:\[PORT:(?P\d+)\](?P.*)$" + r":\/\/\[HOST\]:(?:\[PORT:)?(?P\d+)\]?(?P.*)$" ) RE_OLD_AUDIO = re.compile(r"\d+,\d+") @@ -87,12 +94,34 @@ class Addon(AddonModel): """Initialize data holder.""" super().__init__(coresys, slug) self.instance: DockerAddon = DockerAddon(coresys, self) - self.state: AddonState = AddonState.UNKNOWN + self._state: AddonState = AddonState.UNKNOWN def __repr__(self) -> str: """Return internal representation.""" return f"" + @property + def state(self) -> AddonState: + """Return state of the add-on.""" + return self._state + + @state.setter + def state(self, new_state: AddonState) -> None: + """Set the add-on into new state.""" + if self._state == new_state: + return + self._state = new_state + self.sys_homeassistant.websocket.send_command( + { + ATTR_TYPE: WSType.SUPERVISOR_EVENT, + ATTR_DATA: { + ATTR_EVENT: WSEvent.ADDON, + ATTR_SLUG: self.slug, + ATTR_STATE: new_state, + }, + } + ) + @property def in_progress(self) -> bool: """Return True if a task is in progress.""" @@ -101,7 +130,7 @@ class Addon(AddonModel): async def load(self) -> None: """Async initialize of object.""" with suppress(DockerError): - await self.instance.attach(tag=self.version) + await self.instance.attach(version=self.version) # Evaluate state if await self.instance.is_running(): @@ -394,6 +423,34 @@ class Addon(AddonModel): """Return path to asound config for Docker.""" return Path(self.sys_config.path_extern_tmp, f"{self.slug}_pulse") + @property + def devices(self) -> Set[Device]: + """Extract devices from add-on options.""" + raw_schema = self.data[ATTR_SCHEMA] + if isinstance(raw_schema, bool) or not raw_schema: + return set() + + # Validate devices + options_validator = AddonOptions(self.coresys, raw_schema, self.name, self.slug) + with suppress(vol.Invalid): + options_validator(self.options) + + return options_validator.devices + + @property + def pwned(self) -> Set[str]: + """Extract pwned data for add-on options.""" + raw_schema = self.data[ATTR_SCHEMA] + if isinstance(raw_schema, bool) or not raw_schema: + return set() + + # Validate devices + options_validator = AddonOptions(self.coresys, raw_schema, self.name, self.slug) + with suppress(vol.Invalid): + options_validator(self.options) + + return options_validator.pwned + def save_persist(self) -> None: """Save data of add-on.""" self.sys_addons.data.save_data() @@ -442,22 +499,19 @@ class Addon(AddonModel): async def write_options(self) -> None: """Return True if add-on options is written to data.""" - schema = self.schema - options = self.options - # Update secrets for validation await self.sys_homeassistant.secrets.reload() try: - options = schema(options) + options = self.schema(self.options) write_json_file(self.path_options, options) except vol.Invalid as ex: _LOGGER.error( "Add-on %s has invalid options: %s", self.slug, - humanize_error(options, ex), + humanize_error(self.options, ex), ) - except JsonFileError: + except ConfigurationFileError: _LOGGER.error("Add-on %s can't write options", self.slug) else: _LOGGER.debug("Add-on %s write options: %s", self.slug, options) @@ -538,7 +592,9 @@ class Addon(AddonModel): # create voluptuous new_schema = vol.Schema( - vol.All(dict, validate_options(self.coresys, new_raw_schema)) + vol.All( + dict, AddonOptions(self.coresys, new_raw_schema, self.name, self.slug) + ) ) # validate @@ -570,7 +626,7 @@ class Addon(AddonModel): try: await self.instance.run() except DockerRequestError as err: - self.state = AddonState.STOPPED + self.state = AddonState.ERROR raise AddonsError() from err except DockerError as err: self.state = AddonState.ERROR @@ -581,8 +637,9 @@ class Addon(AddonModel): async def stop(self) -> None: """Stop add-on.""" try: - return await self.instance.stop() + await self.instance.stop() except DockerRequestError as err: + self.state = AddonState.ERROR raise AddonsError() from err except DockerError as err: self.state = AddonState.ERROR @@ -653,7 +710,7 @@ class Addon(AddonModel): # Store local configs/state try: write_json_file(temp_path.joinpath("addon.json"), data) - except JsonFileError as err: + except ConfigurationFileError as err: _LOGGER.error("Can't save meta for %s", self.slug) raise AddonsError() from err @@ -709,7 +766,7 @@ class Addon(AddonModel): # Read snapshot data try: data = read_json_file(Path(temp, "addon.json")) - except JsonFileError as err: + except ConfigurationFileError as err: raise AddonsError() from err # Validate diff --git a/supervisor/addons/build.py b/supervisor/addons/build.py index 13ef6c410..6556ed8aa 100644 --- a/supervisor/addons/build.py +++ b/supervisor/addons/build.py @@ -4,16 +4,25 @@ from __future__ import annotations from pathlib import Path from typing import TYPE_CHECKING, Dict -from ..const import ATTR_ARGS, ATTR_BUILD_FROM, ATTR_SQUASH, META_ADDON +from awesomeversion import AwesomeVersion + +from ..const import ( + ATTR_ARGS, + ATTR_BUILD_FROM, + ATTR_SQUASH, + FILE_SUFFIX_CONFIGURATION, + META_ADDON, +) from ..coresys import CoreSys, CoreSysAttributes -from ..utils.json import JsonConfig +from ..exceptions import ConfigurationFileError +from ..utils.common import FileConfiguration, find_one_filetype from .validate import SCHEMA_BUILD_CONFIG if TYPE_CHECKING: from . import AnyAddon -class AddonBuild(JsonConfig, CoreSysAttributes): +class AddonBuild(FileConfiguration, CoreSysAttributes): """Handle build options for add-ons.""" def __init__(self, coresys: CoreSys, addon: AnyAddon) -> None: @@ -21,9 +30,14 @@ class AddonBuild(JsonConfig, CoreSysAttributes): self.coresys: CoreSys = coresys self.addon = addon - super().__init__( - Path(self.addon.path_location, "build.json"), SCHEMA_BUILD_CONFIG - ) + try: + build_file = find_one_filetype( + self.addon.path_location, "build", FILE_SUFFIX_CONFIGURATION + ) + except ConfigurationFileError: + build_file = self.addon.path_location / "build.json" + + super().__init__(build_file, SCHEMA_BUILD_CONFIG) def save_data(self): """Ignore save function.""" @@ -46,11 +60,21 @@ class AddonBuild(JsonConfig, CoreSysAttributes): """Return additional Docker build arguments.""" return self._data[ATTR_ARGS] - def get_docker_args(self, version): + @property + def is_valid(self) -> bool: + """Return true if the build env is valid.""" + return all( + [ + self.addon.path_location.is_dir(), + Path(self.addon.path_location, "Dockerfile").is_file(), + ] + ) + + def get_docker_args(self, version: AwesomeVersion): """Create a dict with Docker build arguments.""" args = { "path": str(self.addon.path_location), - "tag": f"{self.addon.image}:{version}", + "tag": f"{self.addon.image}:{version!s}", "pull": True, "forcerm": True, "squash": self.squash, diff --git a/supervisor/addons/data.py b/supervisor/addons/data.py index 392d184b4..077e77cb9 100644 --- a/supervisor/addons/data.py +++ b/supervisor/addons/data.py @@ -1,6 +1,5 @@ """Init file for Supervisor add-on data.""" from copy import deepcopy -import logging from typing import Any, Dict from ..const import ( @@ -13,16 +12,14 @@ from ..const import ( ) from ..coresys import CoreSys, CoreSysAttributes from ..store.addon import AddonStore -from ..utils.json import JsonConfig +from ..utils.common import FileConfiguration from .addon import Addon from .validate import SCHEMA_ADDONS_FILE -_LOGGER: logging.Logger = logging.getLogger(__name__) - Config = Dict[str, Any] -class AddonsData(JsonConfig, CoreSysAttributes): +class AddonsData(FileConfiguration, CoreSysAttributes): """Hold data for installed Add-ons inside Supervisor.""" def __init__(self, coresys: CoreSys): diff --git a/supervisor/addons/model.py b/supervisor/addons/model.py index 362a06192..a4f74a31f 100644 --- a/supervisor/addons/model.py +++ b/supervisor/addons/model.py @@ -3,7 +3,7 @@ from abc import ABC, abstractmethod from pathlib import Path from typing import Any, Awaitable, Dict, List, Optional -from packaging import version as pkg_version +from awesomeversion import AwesomeVersion, AwesomeVersionException import voluptuous as vol from ..const import ( @@ -12,7 +12,6 @@ from ..const import ( ATTR_ARCH, ATTR_AUDIO, ATTR_AUTH_API, - ATTR_AUTO_UART, ATTR_BOOT, ATTR_DESCRIPTON, ATTR_DEVICES, @@ -33,6 +32,7 @@ from ..const import ( ATTR_IMAGE, ATTR_INGRESS, ATTR_INIT, + ATTR_JOURNALD, ATTR_KERNEL_MODULES, ATTR_LEGACY, ATTR_LOCATON, @@ -46,6 +46,7 @@ from ..const import ( ATTR_PORTS, ATTR_PORTS_DESCRIPTION, ATTR_PRIVILEGED, + ATTR_REALTIME, ATTR_REPOSITORY, ATTR_SCHEMA, ATTR_SERVICES, @@ -56,6 +57,8 @@ from ..const import ( ATTR_STDIN, ATTR_TIMEOUT, ATTR_TMPFS, + ATTR_TRANSLATIONS, + ATTR_UART, ATTR_UDEV, ATTR_URL, ATTR_USB, @@ -71,7 +74,9 @@ from ..const import ( AddonStartup, ) from ..coresys import CoreSys, CoreSysAttributes -from .validate import RE_SERVICE, RE_VOLUME, schema_ui_options, validate_options +from ..docker.const import Capabilities +from .options import AddonOptions, UiOptions +from .validate import RE_SERVICE, RE_VOLUME Data = Dict[str, Any] @@ -183,12 +188,17 @@ class AddonModel(CoreSysAttributes, ABC): return self.data[ATTR_REPOSITORY] @property - def latest_version(self) -> str: + def translations(self) -> dict: + """Return add-on translations.""" + return self.data[ATTR_TRANSLATIONS] + + @property + def latest_version(self) -> AwesomeVersion: """Return latest version of add-on.""" return self.data[ATTR_VERSION] @property - def version(self) -> Optional[str]: + def version(self) -> AwesomeVersion: """Return version of add-on.""" return self.data[ATTR_VERSION] @@ -296,14 +306,9 @@ class AddonModel(CoreSysAttributes, ABC): return self.data[ATTR_HOST_DBUS] @property - def devices(self) -> List[str]: - """Return devices of add-on.""" - return self.data.get(ATTR_DEVICES, []) - - @property - def tmpfs(self) -> Optional[str]: - """Return tmpfs of add-on.""" - return self.data.get(ATTR_TMPFS) + def static_devices(self) -> List[Path]: + """Return static devices of add-on.""" + return [Path(node) for node in self.data.get(ATTR_DEVICES, [])] @property def environment(self) -> Optional[Dict[str, str]]: @@ -311,7 +316,7 @@ class AddonModel(CoreSysAttributes, ABC): return self.data.get(ATTR_ENVIRONMENT) @property - def privileged(self) -> List[str]: + def privileged(self) -> List[Capabilities]: """Return list of privilege.""" return self.data.get(ATTR_PRIVILEGED, []) @@ -387,7 +392,7 @@ class AddonModel(CoreSysAttributes, ABC): @property def with_uart(self) -> bool: """Return True if we should map all UART device.""" - return self.data[ATTR_AUTO_UART] + return self.data[ATTR_UART] @property def with_udev(self) -> bool: @@ -399,6 +404,11 @@ class AddonModel(CoreSysAttributes, ABC): """Return True if the add-on access to kernel modules.""" return self.data[ATTR_KERNEL_MODULES] + @property + def with_realtime(self) -> bool: + """Return True if the add-on need realtime schedule functions.""" + return self.data[ATTR_REALTIME] + @property def with_full_access(self) -> bool: """Return True if the add-on want full access to hardware.""" @@ -409,6 +419,11 @@ class AddonModel(CoreSysAttributes, ABC): """Return True if the add-on read access to devicetree.""" return self.data[ATTR_DEVICETREE] + @property + def with_tmpfs(self) -> Optional[str]: + """Return if tmp is in memory of add-on.""" + return self.data[ATTR_TMPFS] + @property def access_auth_api(self) -> bool: """Return True if the add-on access to login/auth backend.""" @@ -522,8 +537,10 @@ class AddonModel(CoreSysAttributes, ABC): raw_schema = self.data[ATTR_SCHEMA] if isinstance(raw_schema, bool): - return vol.Schema(dict) - return vol.Schema(vol.All(dict, validate_options(self.coresys, raw_schema))) + raw_schema = {} + return vol.Schema( + vol.All(dict, AddonOptions(self.coresys, raw_schema, self.name, self.slug)) + ) @property def schema_ui(self) -> Optional[List[Dict[str, Any]]]: @@ -532,7 +549,12 @@ class AddonModel(CoreSysAttributes, ABC): if isinstance(raw_schema, bool): return None - return schema_ui_options(raw_schema) + return UiOptions(self.coresys)(raw_schema) + + @property + def with_journald(self) -> bool: + """Return True if the add-on accesses the system journal.""" + return self.data[ATTR_JOURNALD] def __eq__(self, other): """Compaired add-on objects.""" @@ -554,15 +576,10 @@ class AddonModel(CoreSysAttributes, ABC): return False # Home Assistant - version = config.get(ATTR_HOMEASSISTANT) - if version is None or self.sys_homeassistant.version is None: - return True - + version: Optional[AwesomeVersion] = config.get(ATTR_HOMEASSISTANT) try: - return pkg_version.parse( - self.sys_homeassistant.version - ) >= pkg_version.parse(version) - except pkg_version.InvalidVersion: + return self.sys_homeassistant.version >= version + except (AwesomeVersionException, TypeError): return True def _image(self, config) -> str: diff --git a/supervisor/addons/options.py b/supervisor/addons/options.py new file mode 100644 index 000000000..b83bdfbff --- /dev/null +++ b/supervisor/addons/options.py @@ -0,0 +1,417 @@ +"""Add-on Options / UI rendering.""" +import hashlib +import logging +from pathlib import Path +import re +from typing import Any, Dict, List, Set, Union + +import voluptuous as vol + +from ..coresys import CoreSys, CoreSysAttributes +from ..exceptions import HardwareNotFound +from ..hardware.const import UdevSubsystem +from ..hardware.data import Device +from ..validate import network_port + +_LOGGER: logging.Logger = logging.getLogger(__name__) + +_STR = "str" +_INT = "int" +_FLOAT = "float" +_BOOL = "bool" +_PASSWORD = "password" +_EMAIL = "email" +_URL = "url" +_PORT = "port" +_MATCH = "match" +_LIST = "list" +_DEVICE = "device" + +RE_SCHEMA_ELEMENT = re.compile( + r"^(?:" + r"|bool" + r"|email" + r"|url" + r"|port" + r"|device(?:\((?Psubsystem=[a-z]+)\))?" + r"|str(?:\((?P\d+)?,(?P\d+)?\))?" + r"|password(?:\((?P\d+)?,(?P\d+)?\))?" + r"|int(?:\((?P\d+)?,(?P\d+)?\))?" + r"|float(?:\((?P[\d\.]+)?,(?P[\d\.]+)?\))?" + r"|match\((?P.*)\)" + r"|list\((?P.+)\)" + r")\??$" +) + +_SCHEMA_LENGTH_PARTS = ( + "i_min", + "i_max", + "f_min", + "f_max", + "s_min", + "s_max", + "p_min", + "p_max", +) + + +class AddonOptions(CoreSysAttributes): + """Validate Add-ons Options.""" + + def __init__( + self, coresys: CoreSys, raw_schema: Dict[str, Any], name: str, slug: str + ): + """Validate schema.""" + self.coresys: CoreSys = coresys + self.raw_schema: Dict[str, Any] = raw_schema + self.devices: Set[Device] = set() + self.pwned: Set[str] = set() + self._name = name + self._slug = slug + + def __call__(self, struct): + """Create schema validator for add-ons options.""" + options = {} + + # read options + for key, value in struct.items(): + # Ignore unknown options / remove from list + if key not in self.raw_schema: + _LOGGER.warning( + "Option '%s' does not exist in the schema for %s (%s)", + key, + self._name, + self._slug, + ) + continue + + typ = self.raw_schema[key] + try: + if isinstance(typ, list): + # nested value list + options[key] = self._nested_validate_list(typ[0], value, key) + elif isinstance(typ, dict): + # nested value dict + options[key] = self._nested_validate_dict(typ, value, key) + else: + # normal value + options[key] = self._single_validate(typ, value, key) + except (IndexError, KeyError): + raise vol.Invalid( + f"Type error for option '{key}' in {self._name} ({self._slug})" + ) from None + + self._check_missing_options(self.raw_schema, options, "root") + return options + + # pylint: disable=no-value-for-parameter + def _single_validate(self, typ: str, value: Any, key: str): + """Validate a single element.""" + # if required argument + if value is None: + raise vol.Invalid( + f"Missing required option '{key}' in {self._name} ({self._slug})" + ) from None + + # Lookup secret + if str(value).startswith("!secret "): + secret: str = value.partition(" ")[2] + value = self.sys_homeassistant.secrets.get(secret) + if value is None: + raise vol.Invalid( + f"Unknown secret '{secret}' in {self._name} ({self._slug})" + ) from None + + # parse extend data from type + match = RE_SCHEMA_ELEMENT.match(typ) + + if not match: + raise vol.Invalid( + f"Unknown type '{typ}' in {self._name} ({self._slug})" + ) from None + + # prepare range + range_args = {} + for group_name in _SCHEMA_LENGTH_PARTS: + group_value = match.group(group_name) + if group_value: + range_args[group_name[2:]] = float(group_value) + + if typ.startswith(_STR) or typ.startswith(_PASSWORD): + if typ.startswith(_PASSWORD) and value: + self.pwned.add(hashlib.sha1(str(value).encode()).hexdigest()) + return vol.All(str(value), vol.Range(**range_args))(value) + elif typ.startswith(_INT): + return vol.All(vol.Coerce(int), vol.Range(**range_args))(value) + elif typ.startswith(_FLOAT): + return vol.All(vol.Coerce(float), vol.Range(**range_args))(value) + elif typ.startswith(_BOOL): + return vol.Boolean()(value) + elif typ.startswith(_EMAIL): + return vol.Email()(value) + elif typ.startswith(_URL): + return vol.Url()(value) + elif typ.startswith(_PORT): + return network_port(value) + elif typ.startswith(_MATCH): + return vol.Match(match.group("match"))(str(value)) + elif typ.startswith(_LIST): + return vol.In(match.group("list").split("|"))(str(value)) + elif typ.startswith(_DEVICE): + try: + device = self.sys_hardware.get_by_path(Path(value)) + except HardwareNotFound: + raise vol.Invalid( + f"Device '{value}' does not exists! in {self._name} ({self._slug})" + ) from None + + # Have filter + if match.group("filter"): + str_filter = match.group("filter") + device_filter = _create_device_filter(str_filter) + if device not in self.sys_hardware.filter_devices(**device_filter): + raise vol.Invalid( + f"Device '{value}' don't match the filter {str_filter}! in {self._name} ({self._slug})" + ) + + # Device valid + self.devices.add(device) + return str(device.path) + + raise vol.Invalid( + f"Fatal error for option '{key}' with type '{typ}' in {self._name} ({self._slug})" + ) from None + + def _nested_validate_list(self, typ: Any, data_list: List[Any], key: str): + """Validate nested items.""" + options = [] + + # Make sure it is a list + if not isinstance(data_list, list): + raise vol.Invalid( + f"Invalid list for option '{key}' in {self._name} ({self._slug})" + ) from None + + # Process list + for element in data_list: + # Nested? + if isinstance(typ, dict): + c_options = self._nested_validate_dict(typ, element, key) + options.append(c_options) + else: + options.append(self._single_validate(typ, element, key)) + + return options + + def _nested_validate_dict( + self, typ: Dict[Any, Any], data_dict: Dict[Any, Any], key: str + ): + """Validate nested items.""" + options = {} + + # Make sure it is a dict + if not isinstance(data_dict, dict): + raise vol.Invalid( + f"Invalid dict for option '{key}' in {self._name} ({self._slug})" + ) from None + + # Process dict + for c_key, c_value in data_dict.items(): + # Ignore unknown options / remove from list + if c_key not in typ: + _LOGGER.warning( + "Unknown option '%s' for %s (%s)", c_key, self._name, self._slug + ) + continue + + # Nested? + if isinstance(typ[c_key], list): + options[c_key] = self._nested_validate_list( + typ[c_key][0], c_value, c_key + ) + else: + options[c_key] = self._single_validate(typ[c_key], c_value, c_key) + + self._check_missing_options(typ, options, key) + return options + + def _check_missing_options( + self, origin: Dict[Any, Any], exists: Dict[Any, Any], root: str + ) -> None: + """Check if all options are exists.""" + missing = set(origin) - set(exists) + for miss_opt in missing: + miss_schema = origin[miss_opt] + + # If its a list then value in list decides if its optional like ["str?"] + if isinstance(miss_schema, list) and len(miss_schema) > 0: + miss_schema = miss_schema[0] + + if isinstance(miss_schema, str) and miss_schema.endswith("?"): + continue + + raise vol.Invalid( + f"Missing option '{miss_opt}' in {root} in {self._name} ({self._slug})" + ) from None + + +class UiOptions(CoreSysAttributes): + """Render UI Add-ons Options.""" + + def __init__(self, coresys: CoreSys) -> None: + """Initialize UI option render.""" + self.coresys = coresys + + def __call__(self, raw_schema: Dict[str, Any]) -> List[Dict[str, Any]]: + """Generate UI schema.""" + ui_schema: List[Dict[str, Any]] = [] + + # read options + for key, value in raw_schema.items(): + if isinstance(value, list): + # nested value list + self._nested_ui_list(ui_schema, value, key) + elif isinstance(value, dict): + # nested value dict + self._nested_ui_dict(ui_schema, value, key) + else: + # normal value + self._single_ui_option(ui_schema, value, key) + + return ui_schema + + def _single_ui_option( + self, + ui_schema: List[Dict[str, Any]], + value: str, + key: str, + multiple: bool = False, + ) -> None: + """Validate a single element.""" + ui_node: Dict[str, Union[str, bool, float, List[str]]] = {"name": key} + + # If multiple + if multiple: + ui_node["multiple"] = True + + # Parse extend data from type + match = RE_SCHEMA_ELEMENT.match(value) + if not match: + return + + # Prepare range + for group_name in _SCHEMA_LENGTH_PARTS: + group_value = match.group(group_name) + if not group_value: + continue + if group_name[2:] == "min": + ui_node["lengthMin"] = float(group_value) + elif group_name[2:] == "max": + ui_node["lengthMax"] = float(group_value) + + # If required + if value.endswith("?"): + ui_node["optional"] = True + else: + ui_node["required"] = True + + # Data types + if value.startswith(_STR): + ui_node["type"] = "string" + elif value.startswith(_PASSWORD): + ui_node["type"] = "string" + ui_node["format"] = "password" + elif value.startswith(_INT): + ui_node["type"] = "integer" + elif value.startswith(_FLOAT): + ui_node["type"] = "float" + elif value.startswith(_BOOL): + ui_node["type"] = "boolean" + elif value.startswith(_EMAIL): + ui_node["type"] = "string" + ui_node["format"] = "email" + elif value.startswith(_URL): + ui_node["type"] = "string" + ui_node["format"] = "url" + elif value.startswith(_PORT): + ui_node["type"] = "integer" + elif value.startswith(_MATCH): + ui_node["type"] = "string" + elif value.startswith(_LIST): + ui_node["type"] = "select" + ui_node["options"] = match.group("list").split("|") + elif value.startswith(_DEVICE): + ui_node["type"] = "select" + + # Have filter + if match.group("filter"): + device_filter = _create_device_filter(match.group("filter")) + ui_node["options"] = [ + (device.by_id or device.path).as_posix() + for device in self.sys_hardware.filter_devices(**device_filter) + ] + else: + ui_node["options"] = [ + (device.by_id or device.path).as_posix() + for device in self.sys_hardware.devices + ] + + ui_schema.append(ui_node) + + def _nested_ui_list( + self, + ui_schema: List[Dict[str, Any]], + option_list: List[Any], + key: str, + ) -> None: + """UI nested list items.""" + try: + element = option_list[0] + except IndexError: + _LOGGER.error("Invalid schema %s", key) + return + + if isinstance(element, dict): + self._nested_ui_dict(ui_schema, element, key, multiple=True) + else: + self._single_ui_option(ui_schema, element, key, multiple=True) + + def _nested_ui_dict( + self, + ui_schema: List[Dict[str, Any]], + option_dict: Dict[str, Any], + key: str, + multiple: bool = False, + ) -> None: + """UI nested dict items.""" + ui_node = { + "name": key, + "type": "schema", + "optional": True, + "multiple": multiple, + } + + nested_schema = [] + for c_key, c_value in option_dict.items(): + # Nested? + if isinstance(c_value, list): + self._nested_ui_list(nested_schema, c_value, c_key) + else: + self._single_ui_option(nested_schema, c_value, c_key) + + ui_node["schema"] = nested_schema + ui_schema.append(ui_node) + + +def _create_device_filter(str_filter: str) -> Dict[str, Any]: + """Generate device Filter.""" + raw_filter = dict(value.split("=") for value in str_filter.split(";")) + + clean_filter = {} + for key, value in raw_filter.items(): + if key == "subsystem": + clean_filter[key] = UdevSubsystem(value) + else: + clean_filter[key] = value + + return clean_filter diff --git a/supervisor/addons/utils.py b/supervisor/addons/utils.py index 434dc7724..fecf8062f 100644 --- a/supervisor/addons/utils.py +++ b/supervisor/addons/utils.py @@ -6,18 +6,8 @@ import logging from pathlib import Path from typing import TYPE_CHECKING -from ..const import ( - PRIVILEGED_DAC_READ_SEARCH, - PRIVILEGED_NET_ADMIN, - PRIVILEGED_SYS_ADMIN, - PRIVILEGED_SYS_MODULE, - PRIVILEGED_SYS_PTRACE, - PRIVILEGED_SYS_RAWIO, - ROLE_ADMIN, - ROLE_MANAGER, - SECURITY_DISABLE, - SECURITY_PROFILE, -) +from ..const import ROLE_ADMIN, ROLE_MANAGER, SECURITY_DISABLE, SECURITY_PROFILE +from ..docker.const import Capabilities if TYPE_CHECKING: from .model import AddonModel @@ -46,16 +36,19 @@ def rating_security(addon: AddonModel) -> int: rating += 1 # Privileged options - if any( - privilege in addon.privileged - for privilege in ( - PRIVILEGED_NET_ADMIN, - PRIVILEGED_SYS_ADMIN, - PRIVILEGED_SYS_RAWIO, - PRIVILEGED_SYS_PTRACE, - PRIVILEGED_SYS_MODULE, - PRIVILEGED_DAC_READ_SEARCH, + if ( + any( + privilege in addon.privileged + for privilege in ( + Capabilities.NET_ADMIN, + Capabilities.SYS_ADMIN, + Capabilities.SYS_RAWIO, + Capabilities.SYS_PTRACE, + Capabilities.SYS_MODULE, + Capabilities.DAC_READ_SEARCH, + ) ) + or addon.with_kernel_modules ): rating += -1 @@ -73,12 +66,8 @@ def rating_security(addon: AddonModel) -> int: if addon.host_pid: rating += -2 - # Full Access - if addon.with_full_access: - rating += -2 - - # Docker Access - if addon.access_docker_api: + # Docker Access & full Access + if addon.access_docker_api or addon.with_full_access: rating = 1 return max(min(6, rating), 1) diff --git a/supervisor/addons/validate.py b/supervisor/addons/validate.py index 6844e8ef8..700be80cf 100644 --- a/supervisor/addons/validate.py +++ b/supervisor/addons/validate.py @@ -2,7 +2,7 @@ import logging import re import secrets -from typing import Any, Dict, List, Union +from typing import Any, Dict import uuid import voluptuous as vol @@ -18,10 +18,10 @@ from ..const import ( ATTR_AUDIO_INPUT, ATTR_AUDIO_OUTPUT, ATTR_AUTH_API, - ATTR_AUTO_UART, ATTR_AUTO_UPDATE, ATTR_BOOT, ATTR_BUILD_FROM, + ATTR_CONFIGURATION, ATTR_DESCRIPTON, ATTR_DEVICES, ATTR_DEVICETREE, @@ -45,6 +45,7 @@ from ..const import ( ATTR_INGRESS_PORT, ATTR_INGRESS_TOKEN, ATTR_INIT, + ATTR_JOURNALD, ATTR_KERNEL_MODULES, ATTR_LEGACY, ATTR_LOCATON, @@ -60,6 +61,7 @@ from ..const import ( ATTR_PORTS_DESCRIPTION, ATTR_PRIVILEGED, ATTR_PROTECTED, + ATTR_REALTIME, ATTR_REPOSITORY, ATTR_SCHEMA, ATTR_SERVICES, @@ -73,6 +75,8 @@ from ..const import ( ATTR_SYSTEM, ATTR_TIMEOUT, ATTR_TMPFS, + ATTR_TRANSLATIONS, + ATTR_UART, ATTR_UDEV, ATTR_URL, ATTR_USB, @@ -82,7 +86,6 @@ from ..const import ( ATTR_VIDEO, ATTR_WATCHDOG, ATTR_WEBUI, - PRIVILEGED_ALL, ROLE_ALL, ROLE_DEFAULT, AddonBoot, @@ -90,9 +93,10 @@ from ..const import ( AddonStartup, AddonState, ) -from ..coresys import CoreSys from ..discovery.validate import valid_discovery_service +from ..docker.const import Capabilities from ..validate import ( + docker_image, docker_ports, docker_ports_description, network_port, @@ -100,51 +104,14 @@ from ..validate import ( uuid_match, version_tag, ) +from .options import RE_SCHEMA_ELEMENT _LOGGER: logging.Logger = logging.getLogger(__name__) - RE_VOLUME = re.compile(r"^(config|ssl|addons|backup|share|media)(?::(rw|ro))?$") RE_SERVICE = re.compile(r"^(?Pmqtt|mysql):(?Pprovide|want|need)$") -V_STR = "str" -V_INT = "int" -V_FLOAT = "float" -V_BOOL = "bool" -V_PASSWORD = "password" -V_EMAIL = "email" -V_URL = "url" -V_PORT = "port" -V_MATCH = "match" -V_LIST = "list" -RE_SCHEMA_ELEMENT = re.compile( - r"^(?:" - r"|bool" - r"|email" - r"|url" - r"|port" - r"|str(?:\((?P\d+)?,(?P\d+)?\))?" - r"|password(?:\((?P\d+)?,(?P\d+)?\))?" - r"|int(?:\((?P\d+)?,(?P\d+)?\))?" - r"|float(?:\((?P[\d\.]+)?,(?P[\d\.]+)?\))?" - r"|match\((?P.*)\)" - r"|list\((?P.+)\)" - r")\??$" -) - -_SCHEMA_LENGTH_PARTS = ( - "i_min", - "i_max", - "f_min", - "f_max", - "s_min", - "s_max", - "p_min", - "p_max", -) - -RE_DOCKER_IMAGE = re.compile(r"^([a-zA-Z\-\.:\d{}]+/)*?([\-\w{}]+)/([\-\w{}]+)$") RE_DOCKER_IMAGE_BUILD = re.compile( r"^([a-zA-Z\-\.:\d{}]+/)*?([\-\w{}]+)/([\-\w{}]+)(:[\.\-\w{}]+)?$" ) @@ -173,34 +140,101 @@ RE_MACHINE = re.compile( ) -def _simple_startup(value) -> str: - """Define startup schema.""" - if value == "before": - return AddonStartup.SERVICES.value - if value == "after": - return AddonStartup.APPLICATION.value - return value +def _warn_addon_config(config: Dict[str, Any]): + """Warn about miss configs.""" + name = config.get(ATTR_NAME) + if not name: + raise vol.Invalid("Invalid Add-on config!") + + if config.get(ATTR_FULL_ACCESS, False) and ( + config.get(ATTR_DEVICES) + or config.get(ATTR_UART) + or config.get(ATTR_USB) + or config.get(ATTR_GPIO) + ): + _LOGGER.warning( + "Add-on have full device access, and selective device access in the configuration. Please report this to the maintainer of %s", + name, + ) + + return config + + +def _migrate_addon_config(protocol=False): + """Migrate addon config.""" + + def _migrate(config: Dict[str, Any]): + name = config.get(ATTR_NAME) + if not name: + raise vol.Invalid("Invalid Add-on config!") + + # Startup 2018-03-30 + if config.get(ATTR_STARTUP) in ("before", "after"): + value = config[ATTR_STARTUP] + if protocol: + _LOGGER.warning( + "Add-on config 'startup' with '%s' is deprecated. Please report this to the maintainer of %s", + value, + name, + ) + if value == "before": + config[ATTR_STARTUP] = AddonStartup.SERVICES.value + elif value == "after": + config[ATTR_STARTUP] = AddonStartup.APPLICATION.value + + # UART 2021-01-20 + if "auto_uart" in config: + if protocol: + _LOGGER.warning( + "Add-on config 'auto_uart' is deprecated, use 'uart'. Please report this to the maintainer of %s", + name, + ) + config[ATTR_UART] = config.pop("auto_uart") + + # Device 2021-01-20 + if ATTR_DEVICES in config and any(":" in line for line in config[ATTR_DEVICES]): + if protocol: + _LOGGER.warning( + "Add-on config 'devices' use a deprecated format, the new format uses a list of paths only. Please report this to the maintainer of %s", + name, + ) + config[ATTR_DEVICES] = [line.split(":")[0] for line in config[ATTR_DEVICES]] + + # TMPFS 2021-02-01 + if ATTR_TMPFS in config and not isinstance(config[ATTR_TMPFS], bool): + if protocol: + _LOGGER.warning( + "Add-on config 'tmpfs' use a deprecated format, new it's only a boolean. Please report this to the maintainer of %s", + name, + ) + config[ATTR_TMPFS] = True + + return config + + return _migrate # pylint: disable=no-value-for-parameter -SCHEMA_ADDON_CONFIG = vol.Schema( +_SCHEMA_ADDON_CONFIG = vol.Schema( { - vol.Required(ATTR_NAME): vol.Coerce(str), - vol.Required(ATTR_VERSION): vol.All(version_tag, str), - vol.Required(ATTR_SLUG): vol.Coerce(str), - vol.Required(ATTR_DESCRIPTON): vol.Coerce(str), + vol.Required(ATTR_NAME): str, + vol.Required(ATTR_VERSION): version_tag, + vol.Required(ATTR_SLUG): str, + vol.Required(ATTR_DESCRIPTON): str, vol.Required(ATTR_ARCH): [vol.In(ARCH_ALL)], vol.Optional(ATTR_MACHINE): vol.All([vol.Match(RE_MACHINE)], vol.Unique()), vol.Optional(ATTR_URL): vol.Url(), - vol.Required(ATTR_STARTUP): vol.All(_simple_startup, vol.Coerce(AddonStartup)), - vol.Required(ATTR_BOOT): vol.Coerce(AddonBoot), + vol.Optional(ATTR_STARTUP, default=AddonStartup.APPLICATION): vol.Coerce( + AddonStartup + ), + vol.Optional(ATTR_BOOT, default=AddonBoot.AUTO): vol.Coerce(AddonBoot), vol.Optional(ATTR_INIT, default=True): vol.Boolean(), vol.Optional(ATTR_ADVANCED, default=False): vol.Boolean(), vol.Optional(ATTR_STAGE, default=AddonStage.STABLE): vol.Coerce(AddonStage), vol.Optional(ATTR_PORTS): docker_ports, vol.Optional(ATTR_PORTS_DESCRIPTION): docker_ports_description, vol.Optional(ATTR_WATCHDOG): vol.Match( - r"^(?:https?|\[PROTO:\w+\]|tcp):\/\/\[HOST\]:\[PORT:\d+\].*$" + r"^(?:https?|\[PROTO:\w+\]|tcp):\/\/\[HOST\]:(\[PORT:\d+\]|\d+).*$" ), vol.Optional(ATTR_WEBUI): vol.Match( r"^(?:https?|\[PROTO:\w+\]):\/\/\[HOST\]:\[PORT:\d+\].*$" @@ -209,30 +243,31 @@ SCHEMA_ADDON_CONFIG = vol.Schema( vol.Optional(ATTR_INGRESS_PORT, default=8099): vol.Any( network_port, vol.Equal(0) ), - vol.Optional(ATTR_INGRESS_ENTRY): vol.Coerce(str), - vol.Optional(ATTR_PANEL_ICON, default="mdi:puzzle"): vol.Coerce(str), - vol.Optional(ATTR_PANEL_TITLE): vol.Coerce(str), + vol.Optional(ATTR_INGRESS_ENTRY): str, + vol.Optional(ATTR_PANEL_ICON, default="mdi:puzzle"): str, + vol.Optional(ATTR_PANEL_TITLE): str, vol.Optional(ATTR_PANEL_ADMIN, default=True): vol.Boolean(), - vol.Optional(ATTR_HOMEASSISTANT): vol.Maybe(vol.Coerce(str)), + vol.Optional(ATTR_HOMEASSISTANT): vol.Maybe(version_tag), vol.Optional(ATTR_HOST_NETWORK, default=False): vol.Boolean(), vol.Optional(ATTR_HOST_PID, default=False): vol.Boolean(), vol.Optional(ATTR_HOST_IPC, default=False): vol.Boolean(), vol.Optional(ATTR_HOST_DBUS, default=False): vol.Boolean(), - vol.Optional(ATTR_DEVICES): [vol.Match(r"^(.*):(.*):([rwm]{1,3})$")], - vol.Optional(ATTR_AUTO_UART, default=False): vol.Boolean(), + vol.Optional(ATTR_DEVICES): [str], vol.Optional(ATTR_UDEV, default=False): vol.Boolean(), - vol.Optional(ATTR_TMPFS): vol.Match(r"^size=(\d)*[kmg](,uid=\d{1,4})?(,rw)?$"), + vol.Optional(ATTR_TMPFS, default=False): vol.Boolean(), vol.Optional(ATTR_MAP, default=list): [vol.Match(RE_VOLUME)], - vol.Optional(ATTR_ENVIRONMENT): {vol.Match(r"\w*"): vol.Coerce(str)}, - vol.Optional(ATTR_PRIVILEGED): [vol.In(PRIVILEGED_ALL)], + vol.Optional(ATTR_ENVIRONMENT): {vol.Match(r"\w*"): str}, + vol.Optional(ATTR_PRIVILEGED): [vol.Coerce(Capabilities)], vol.Optional(ATTR_APPARMOR, default=True): vol.Boolean(), vol.Optional(ATTR_FULL_ACCESS, default=False): vol.Boolean(), vol.Optional(ATTR_AUDIO, default=False): vol.Boolean(), vol.Optional(ATTR_VIDEO, default=False): vol.Boolean(), vol.Optional(ATTR_GPIO, default=False): vol.Boolean(), vol.Optional(ATTR_USB, default=False): vol.Boolean(), + vol.Optional(ATTR_UART, default=False): vol.Boolean(), vol.Optional(ATTR_DEVICETREE, default=False): vol.Boolean(), vol.Optional(ATTR_KERNEL_MODULES, default=False): vol.Boolean(), + vol.Optional(ATTR_REALTIME, default=False): vol.Boolean(), vol.Optional(ATTR_HASSIO_API, default=False): vol.Boolean(), vol.Optional(ATTR_HASSIO_ROLE, default=ROLE_DEFAULT): vol.In(ROLE_ALL), vol.Optional(ATTR_HOMEASSISTANT_API, default=False): vol.Boolean(), @@ -242,39 +277,38 @@ SCHEMA_ADDON_CONFIG = vol.Schema( vol.Optional(ATTR_AUTH_API, default=False): vol.Boolean(), vol.Optional(ATTR_SERVICES): [vol.Match(RE_SERVICE)], vol.Optional(ATTR_DISCOVERY): [valid_discovery_service], - vol.Optional(ATTR_SNAPSHOT_EXCLUDE): [vol.Coerce(str)], - vol.Required(ATTR_OPTIONS): dict, - vol.Required(ATTR_SCHEMA): vol.Any( + vol.Optional(ATTR_SNAPSHOT_EXCLUDE): [str], + vol.Optional(ATTR_OPTIONS, default={}): dict, + vol.Optional(ATTR_SCHEMA, default={}): vol.Any( vol.Schema( { - vol.Coerce(str): vol.Any( + str: vol.Any( SCHEMA_ELEMENT, [ vol.Any( SCHEMA_ELEMENT, - { - vol.Coerce(str): vol.Any( - SCHEMA_ELEMENT, [SCHEMA_ELEMENT] - ) - }, + {str: vol.Any(SCHEMA_ELEMENT, [SCHEMA_ELEMENT])}, ) ], - vol.Schema( - {vol.Coerce(str): vol.Any(SCHEMA_ELEMENT, [SCHEMA_ELEMENT])} - ), + vol.Schema({str: vol.Any(SCHEMA_ELEMENT, [SCHEMA_ELEMENT])}), ) } ), False, ), - vol.Optional(ATTR_IMAGE): vol.Match(RE_DOCKER_IMAGE), + vol.Optional(ATTR_IMAGE): docker_image, vol.Optional(ATTR_TIMEOUT, default=10): vol.All( vol.Coerce(int), vol.Range(min=10, max=300) ), + vol.Optional(ATTR_JOURNALD, default=False): vol.Boolean(), }, extra=vol.REMOVE_EXTRA, ) +SCHEMA_ADDON_CONFIG = vol.All( + _migrate_addon_config(True), _warn_addon_config, _SCHEMA_ADDON_CONFIG +) + # pylint: disable=no-value-for-parameter SCHEMA_BUILD_CONFIG = vol.Schema( @@ -290,23 +324,38 @@ SCHEMA_BUILD_CONFIG = vol.Schema( extra=vol.REMOVE_EXTRA, ) +SCHEMA_TRANSLATION_CONFIGURATION = vol.Schema( + { + vol.Required(ATTR_NAME): str, + vol.Optional(ATTR_DESCRIPTON): vol.Maybe(str), + }, + extra=vol.REMOVE_EXTRA, +) + + +SCHEMA_ADDON_TRANSLATIONS = vol.Schema( + { + vol.Optional(ATTR_CONFIGURATION): {str: SCHEMA_TRANSLATION_CONFIGURATION}, + vol.Optional(ATTR_NETWORK): {str: str}, + }, + extra=vol.REMOVE_EXTRA, +) + # pylint: disable=no-value-for-parameter SCHEMA_ADDON_USER = vol.Schema( { - vol.Required(ATTR_VERSION): vol.Coerce(str), - vol.Optional(ATTR_IMAGE): vol.Coerce(str), + vol.Required(ATTR_VERSION): version_tag, + vol.Optional(ATTR_IMAGE): docker_image, vol.Optional(ATTR_UUID, default=lambda: uuid.uuid4().hex): uuid_match, vol.Optional(ATTR_ACCESS_TOKEN): token, - vol.Optional(ATTR_INGRESS_TOKEN, default=secrets.token_urlsafe): vol.Coerce( - str - ), + vol.Optional(ATTR_INGRESS_TOKEN, default=secrets.token_urlsafe): str, vol.Optional(ATTR_OPTIONS, default=dict): dict, vol.Optional(ATTR_AUTO_UPDATE, default=False): vol.Boolean(), vol.Optional(ATTR_BOOT): vol.Coerce(AddonBoot), vol.Optional(ATTR_NETWORK): docker_ports, - vol.Optional(ATTR_AUDIO_OUTPUT): vol.Maybe(vol.Coerce(str)), - vol.Optional(ATTR_AUDIO_INPUT): vol.Maybe(vol.Coerce(str)), + vol.Optional(ATTR_AUDIO_OUTPUT): vol.Maybe(str), + vol.Optional(ATTR_AUDIO_INPUT): vol.Maybe(str), vol.Optional(ATTR_PROTECTED, default=True): vol.Boolean(), vol.Optional(ATTR_INGRESS_PANEL, default=False): vol.Boolean(), vol.Optional(ATTR_WATCHDOG, default=False): vol.Boolean(), @@ -314,20 +363,26 @@ SCHEMA_ADDON_USER = vol.Schema( extra=vol.REMOVE_EXTRA, ) - -SCHEMA_ADDON_SYSTEM = SCHEMA_ADDON_CONFIG.extend( - { - vol.Required(ATTR_LOCATON): vol.Coerce(str), - vol.Required(ATTR_REPOSITORY): vol.Coerce(str), - } +SCHEMA_ADDON_SYSTEM = vol.All( + _migrate_addon_config(), + _SCHEMA_ADDON_CONFIG.extend( + { + vol.Required(ATTR_LOCATON): str, + vol.Required(ATTR_REPOSITORY): str, + vol.Required(ATTR_TRANSLATIONS, default=dict): { + str: SCHEMA_ADDON_TRANSLATIONS + }, + } + ), ) SCHEMA_ADDONS_FILE = vol.Schema( { - vol.Optional(ATTR_USER, default=dict): {vol.Coerce(str): SCHEMA_ADDON_USER}, - vol.Optional(ATTR_SYSTEM, default=dict): {vol.Coerce(str): SCHEMA_ADDON_SYSTEM}, - } + vol.Optional(ATTR_USER, default=dict): {str: SCHEMA_ADDON_USER}, + vol.Optional(ATTR_SYSTEM, default=dict): {str: SCHEMA_ADDON_SYSTEM}, + }, + extra=vol.REMOVE_EXTRA, ) @@ -336,263 +391,7 @@ SCHEMA_ADDON_SNAPSHOT = vol.Schema( vol.Required(ATTR_USER): SCHEMA_ADDON_USER, vol.Required(ATTR_SYSTEM): SCHEMA_ADDON_SYSTEM, vol.Required(ATTR_STATE): vol.Coerce(AddonState), - vol.Required(ATTR_VERSION): vol.Coerce(str), + vol.Required(ATTR_VERSION): version_tag, }, extra=vol.REMOVE_EXTRA, ) - - -def validate_options(coresys: CoreSys, raw_schema: Dict[str, Any]): - """Validate schema.""" - - def validate(struct): - """Create schema validator for add-ons options.""" - options = {} - - # read options - for key, value in struct.items(): - # Ignore unknown options / remove from list - if key not in raw_schema: - _LOGGER.warning("Unknown options %s", key) - continue - - typ = raw_schema[key] - try: - if isinstance(typ, list): - # nested value list - options[key] = _nested_validate_list(coresys, typ[0], value, key) - elif isinstance(typ, dict): - # nested value dict - options[key] = _nested_validate_dict(coresys, typ, value, key) - else: - # normal value - options[key] = _single_validate(coresys, typ, value, key) - except (IndexError, KeyError): - raise vol.Invalid(f"Type error for {key}") from None - - _check_missing_options(raw_schema, options, "root") - return options - - return validate - - -# pylint: disable=no-value-for-parameter -# pylint: disable=inconsistent-return-statements -def _single_validate(coresys: CoreSys, typ: str, value: Any, key: str): - """Validate a single element.""" - # if required argument - if value is None: - raise vol.Invalid(f"Missing required option '{key}'") from None - - # Lookup secret - if str(value).startswith("!secret "): - secret: str = value.partition(" ")[2] - value = coresys.homeassistant.secrets.get(secret) - if value is None: - raise vol.Invalid(f"Unknown secret {secret}") from None - - # parse extend data from type - match = RE_SCHEMA_ELEMENT.match(typ) - - if not match: - raise vol.Invalid(f"Unknown type {typ}") from None - - # prepare range - range_args = {} - for group_name in _SCHEMA_LENGTH_PARTS: - group_value = match.group(group_name) - if group_value: - range_args[group_name[2:]] = float(group_value) - - if typ.startswith(V_STR) or typ.startswith(V_PASSWORD): - return vol.All(str(value), vol.Range(**range_args))(value) - elif typ.startswith(V_INT): - return vol.All(vol.Coerce(int), vol.Range(**range_args))(value) - elif typ.startswith(V_FLOAT): - return vol.All(vol.Coerce(float), vol.Range(**range_args))(value) - elif typ.startswith(V_BOOL): - return vol.Boolean()(value) - elif typ.startswith(V_EMAIL): - return vol.Email()(value) - elif typ.startswith(V_URL): - return vol.Url()(value) - elif typ.startswith(V_PORT): - return network_port(value) - elif typ.startswith(V_MATCH): - return vol.Match(match.group("match"))(str(value)) - elif typ.startswith(V_LIST): - return vol.In(match.group("list").split("|"))(str(value)) - - raise vol.Invalid(f"Fatal error for {key} type {typ}") from None - - -def _nested_validate_list(coresys, typ, data_list, key): - """Validate nested items.""" - options = [] - - # Make sure it is a list - if not isinstance(data_list, list): - raise vol.Invalid(f"Invalid list for {key}") from None - - # Process list - for element in data_list: - # Nested? - if isinstance(typ, dict): - c_options = _nested_validate_dict(coresys, typ, element, key) - options.append(c_options) - else: - options.append(_single_validate(coresys, typ, element, key)) - - return options - - -def _nested_validate_dict(coresys, typ, data_dict, key): - """Validate nested items.""" - options = {} - - # Make sure it is a dict - if not isinstance(data_dict, dict): - raise vol.Invalid(f"Invalid dict for {key}") from None - - # Process dict - for c_key, c_value in data_dict.items(): - # Ignore unknown options / remove from list - if c_key not in typ: - _LOGGER.warning("Unknown options %s", c_key) - continue - - # Nested? - if isinstance(typ[c_key], list): - options[c_key] = _nested_validate_list( - coresys, typ[c_key][0], c_value, c_key - ) - else: - options[c_key] = _single_validate(coresys, typ[c_key], c_value, c_key) - - _check_missing_options(typ, options, key) - return options - - -def _check_missing_options(origin, exists, root): - """Check if all options are exists.""" - missing = set(origin) - set(exists) - for miss_opt in missing: - if isinstance(origin[miss_opt], str) and origin[miss_opt].endswith("?"): - continue - raise vol.Invalid(f"Missing option {miss_opt} in {root}") from None - - -def schema_ui_options(raw_schema: Dict[str, Any]) -> List[Dict[str, Any]]: - """Generate UI schema.""" - ui_schema: List[Dict[str, Any]] = [] - - # read options - for key, value in raw_schema.items(): - if isinstance(value, list): - # nested value list - _nested_ui_list(ui_schema, value, key) - elif isinstance(value, dict): - # nested value dict - _nested_ui_dict(ui_schema, value, key) - else: - # normal value - _single_ui_option(ui_schema, value, key) - - return ui_schema - - -def _single_ui_option( - ui_schema: List[Dict[str, Any]], value: str, key: str, multiple: bool = False -) -> None: - """Validate a single element.""" - ui_node: Dict[str, Union[str, bool, float, List[str]]] = {"name": key} - - # If multiple - if multiple: - ui_node["multiple"] = True - - # Parse extend data from type - match = RE_SCHEMA_ELEMENT.match(value) - if not match: - return - - # Prepare range - for group_name in _SCHEMA_LENGTH_PARTS: - group_value = match.group(group_name) - if not group_value: - continue - if group_name[2:] == "min": - ui_node["lengthMin"] = float(group_value) - elif group_name[2:] == "max": - ui_node["lengthMax"] = float(group_value) - - # If required - if value.endswith("?"): - ui_node["optional"] = True - else: - ui_node["required"] = True - - # Data types - if value.startswith(V_STR): - ui_node["type"] = "string" - elif value.startswith(V_PASSWORD): - ui_node["type"] = "string" - ui_node["format"] = "password" - elif value.startswith(V_INT): - ui_node["type"] = "integer" - elif value.startswith(V_FLOAT): - ui_node["type"] = "float" - elif value.startswith(V_BOOL): - ui_node["type"] = "boolean" - elif value.startswith(V_EMAIL): - ui_node["type"] = "string" - ui_node["format"] = "email" - elif value.startswith(V_URL): - ui_node["type"] = "string" - ui_node["format"] = "url" - elif value.startswith(V_PORT): - ui_node["type"] = "integer" - elif value.startswith(V_MATCH): - ui_node["type"] = "string" - elif value.startswith(V_LIST): - ui_node["type"] = "select" - ui_node["options"] = match.group("list").split("|") - - ui_schema.append(ui_node) - - -def _nested_ui_list( - ui_schema: List[Dict[str, Any]], option_list: List[Any], key: str -) -> None: - """UI nested list items.""" - try: - element = option_list[0] - except IndexError: - _LOGGER.error("Invalid schema %s", key) - return - - if isinstance(element, dict): - _nested_ui_dict(ui_schema, element, key, multiple=True) - else: - _single_ui_option(ui_schema, element, key, multiple=True) - - -def _nested_ui_dict( - ui_schema: List[Dict[str, Any]], - option_dict: Dict[str, Any], - key: str, - multiple: bool = False, -) -> None: - """UI nested dict items.""" - ui_node = {"name": key, "type": "schema", "optional": True, "multiple": multiple} - - nested_schema = [] - for c_key, c_value in option_dict.items(): - # Nested? - if isinstance(c_value, list): - _nested_ui_list(nested_schema, c_value, c_key) - else: - _single_ui_option(nested_schema, c_value, c_key) - - ui_node["schema"] = nested_schema - ui_schema.append(ui_node) diff --git a/supervisor/api/__init__.py b/supervisor/api/__init__.py index 3ea30f0e0..1a4686839 100644 --- a/supervisor/api/__init__.py +++ b/supervisor/api/__init__.py @@ -28,6 +28,7 @@ from .resolution import APIResoulution from .security import SecurityMiddleware from .services import APIServices from .snapshots import APISnapshots +from .store import APIStore from .supervisor import APISupervisor _LOGGER: logging.Logger = logging.getLogger(__name__) @@ -80,6 +81,7 @@ class RestAPI(CoreSysAttributes): self._register_services() self._register_snapshots() self._register_supervisor() + self._register_store() await self.start() @@ -226,6 +228,10 @@ class RestAPI(CoreSysAttributes): self.webapp.add_routes( [ web.get("/resolution/info", api_resolution.info), + web.post( + "/resolution/check/{check}/options", api_resolution.options_check + ), + web.post("/resolution/check/{check}/run", api_resolution.run_check), web.post( "/resolution/suggestion/{suggestion}", api_resolution.apply_suggestion, @@ -238,6 +244,7 @@ class RestAPI(CoreSysAttributes): "/resolution/issue/{issue}", api_resolution.dismiss_issue, ), + web.post("/resolution/healthcheck", api_resolution.healthcheck), ] ) @@ -248,6 +255,7 @@ class RestAPI(CoreSysAttributes): self.webapp.add_routes( [ + web.get("/auth", api_auth.auth), web.post("/auth", api_auth.auth), web.post("/auth/reset", api_auth.reset), web.delete("/auth/cache", api_auth.cache), @@ -337,16 +345,15 @@ class RestAPI(CoreSysAttributes): web.get("/addons", api_addons.list), web.post("/addons/reload", api_addons.reload), web.get("/addons/{addon}/info", api_addons.info), - web.post("/addons/{addon}/install", api_addons.install), web.post("/addons/{addon}/uninstall", api_addons.uninstall), web.post("/addons/{addon}/start", api_addons.start), web.post("/addons/{addon}/stop", api_addons.stop), web.post("/addons/{addon}/restart", api_addons.restart), - web.post("/addons/{addon}/update", api_addons.update), web.post("/addons/{addon}/options", api_addons.options), web.post( "/addons/{addon}/options/validate", api_addons.options_validate ), + web.get("/addons/{addon}/options/config", api_addons.options_config), web.post("/addons/{addon}/rebuild", api_addons.rebuild), web.get("/addons/{addon}/logs", api_addons.logs), web.get("/addons/{addon}/icon", api_addons.icon), @@ -467,6 +474,46 @@ class RestAPI(CoreSysAttributes): ] ) + def _register_store(self) -> None: + """Register store endpoints.""" + api_store = APIStore() + api_store.coresys = self.coresys + + self.webapp.add_routes( + [ + web.get("/store", api_store.store_info), + web.get("/store/addons", api_store.addons_list), + web.get("/store/addons/{addon}", api_store.addons_addon_info), + web.get("/store/addons/{addon}/{version}", api_store.addons_addon_info), + web.post( + "/store/addons/{addon}/install", api_store.addons_addon_install + ), + web.post( + "/store/addons/{addon}/install/{version}", + api_store.addons_addon_install, + ), + web.post("/store/addons/{addon}/update", api_store.addons_addon_update), + web.post( + "/store/addons/{addon}/update/{version}", + api_store.addons_addon_update, + ), + web.post("/store/reload", api_store.reload), + web.get("/store/repositories", api_store.repositories_list), + web.get( + "/store/repositories/{repository}", + api_store.repositories_repository_info, + ), + ] + ) + + # Reroute from legacy + self.webapp.add_routes( + [ + web.post("/addons/{addon}/install", api_store.addons_addon_install), + web.post("/addons/{addon}/update", api_store.addons_addon_update), + ] + ) + def _register_panel(self) -> None: """Register panel for Home Assistant.""" panel_dir = Path(__file__).parent.joinpath("panel") diff --git a/supervisor/api/addons.py b/supervisor/api/addons.py index 96550d8bc..621a95b7f 100644 --- a/supervisor/api/addons.py +++ b/supervisor/api/addons.py @@ -82,6 +82,8 @@ from ..const import ( ATTR_STARTUP, ATTR_STATE, ATTR_STDIN, + ATTR_TRANSLATIONS, + ATTR_UART, ATTR_UDEV, ATTR_UPDATE_AVAILABLE, ATTR_URL, @@ -101,7 +103,8 @@ from ..const import ( ) from ..coresys import CoreSysAttributes from ..docker.stats import DockerStats -from ..exceptions import APIError +from ..exceptions import APIError, APIForbidden, PwnedError, PwnedSecret +from ..utils.pwned import check_pwned_password from ..validate import docker_ports from .utils import api_process, api_process_raw, api_validate @@ -170,6 +173,7 @@ class APIAddons(CoreSysAttributes): ATTR_INSTALLED: addon.is_installed, ATTR_AVAILABLE: addon.available, ATTR_DETACHED: addon.is_detached, + ATTR_HOMEASSISTANT: addon.homeassistant_version, ATTR_REPOSITORY: addon.repository, ATTR_BUILD: addon.need_build, ATTR_URL: addon.url, @@ -237,7 +241,7 @@ class APIAddons(CoreSysAttributes): ATTR_PRIVILEGED: addon.privileged, ATTR_FULL_ACCESS: addon.with_full_access, ATTR_APPARMOR: addon.apparmor, - ATTR_DEVICES: _pretty_devices(addon), + ATTR_DEVICES: addon.static_devices, ATTR_ICON: addon.with_icon, ATTR_LOGO: addon.with_logo, ATTR_CHANGELOG: addon.with_changelog, @@ -250,6 +254,7 @@ class APIAddons(CoreSysAttributes): ATTR_HOMEASSISTANT_API: addon.access_homeassistant_api, ATTR_GPIO: addon.with_gpio, ATTR_USB: addon.with_usb, + ATTR_UART: addon.with_uart, ATTR_KERNEL_MODULES: addon.with_kernel_modules, ATTR_DEVICETREE: addon.with_devicetree, ATTR_UDEV: addon.with_udev, @@ -262,6 +267,7 @@ class APIAddons(CoreSysAttributes): ATTR_SERVICES: _pretty_services(addon), ATTR_DISCOVERY: addon.discovery, ATTR_IP_ADDRESS: None, + ATTR_TRANSLATIONS: addon.translations, ATTR_INGRESS: addon.with_ingress, ATTR_INGRESS_ENTRY: None, ATTR_INGRESS_URL: None, @@ -286,6 +292,8 @@ class APIAddons(CoreSysAttributes): ATTR_VERSION: addon.version, ATTR_UPDATE_AVAILABLE: addon.need_update, ATTR_WATCHDOG: addon.watchdog, + ATTR_DEVICES: addon.static_devices + + [device.path for device in addon.devices], } ) @@ -331,14 +339,45 @@ class APIAddons(CoreSysAttributes): """Validate user options for add-on.""" addon = self._extract_addon_installed(request) data = {ATTR_MESSAGE: "", ATTR_VALID: True} + + # Validate config try: addon.schema(addon.options) except vol.Invalid as ex: data[ATTR_MESSAGE] = humanize_error(addon.options, ex) data[ATTR_VALID] = False + # Validate security + if self.sys_config.force_security: + for secret in addon.pwned: + try: + await check_pwned_password(self.sys_websession, secret) + continue + except PwnedSecret: + data[ATTR_MESSAGE] = "Add-on use pwned secrets!" + except PwnedError as err: + data[ + ATTR_MESSAGE + ] = f"Error happening on pwned secrets check: {err!s}!" + + data[ATTR_VALID] = False + break + return data + @api_process + async def options_config(self, request: web.Request) -> None: + """Validate user options for add-on.""" + slug: str = request.match_info.get("addon") + if slug != "self": + raise APIForbidden("This can be only read by the Add-on itself!") + + addon = self._extract_addon_installed(request) + try: + return addon.schema(addon.options) + except vol.Invalid: + raise APIError("Invalid configuration data for the add-on") from None + @api_process async def security(self, request: web.Request) -> None: """Store security options for add-on.""" @@ -369,12 +408,6 @@ class APIAddons(CoreSysAttributes): ATTR_BLK_WRITE: stats.blk_write, } - @api_process - def install(self, request: web.Request) -> Awaitable[None]: - """Install add-on.""" - addon = self._extract_addon(request) - return asyncio.shield(addon.install()) - @api_process def uninstall(self, request: web.Request) -> Awaitable[None]: """Uninstall add-on.""" @@ -393,12 +426,6 @@ class APIAddons(CoreSysAttributes): addon = self._extract_addon_installed(request) return asyncio.shield(addon.stop()) - @api_process - def update(self, request: web.Request) -> Awaitable[None]: - """Update add-on.""" - addon: Addon = self._extract_addon_installed(request) - return asyncio.shield(addon.update()) - @api_process def restart(self, request: web.Request) -> Awaitable[None]: """Restart add-on.""" @@ -468,14 +495,6 @@ class APIAddons(CoreSysAttributes): await asyncio.shield(addon.write_stdin(data)) -def _pretty_devices(addon: AnyAddon) -> List[str]: - """Return a simplified device list.""" - dev_list = addon.devices - if not dev_list: - return [] - return [row.split(":")[0] for row in dev_list] - - def _pretty_services(addon: AnyAddon) -> List[str]: """Return a simplified services role list.""" return [f"{name}:{access}" for name, access in addon.services_role.items()] diff --git a/supervisor/api/auth.py b/supervisor/api/auth.py index 9e5c0feab..a832a0b06 100644 --- a/supervisor/api/auth.py +++ b/supervisor/api/auth.py @@ -29,6 +29,10 @@ SCHEMA_PASSWORD_RESET = vol.Schema( } ) +REALM_HEADER: Dict[str, str] = { + WWW_AUTHENTICATE: 'Basic realm="Home Assistant Authentication"' +} + class APIAuth(CoreSysAttributes): """Handle RESTful API for auth functions.""" @@ -63,7 +67,9 @@ class APIAuth(CoreSysAttributes): # BasicAuth if AUTHORIZATION in request.headers: - return await self._process_basic(request, addon) + if not await self._process_basic(request, addon): + raise HTTPUnauthorized(headers=REALM_HEADER) + return True # Json if request.headers.get(CONTENT_TYPE) == CONTENT_TYPE_JSON: @@ -75,9 +81,7 @@ class APIAuth(CoreSysAttributes): data = await request.post() return await self._process_dict(request, addon, data) - raise HTTPUnauthorized( - headers={WWW_AUTHENTICATE: 'Basic realm="Home Assistant Authentication"'} - ) + raise HTTPUnauthorized(headers=REALM_HEADER) @api_process async def reset(self, request: web.Request) -> None: diff --git a/supervisor/api/discovery.py b/supervisor/api/discovery.py index c76896243..1c6155150 100644 --- a/supervisor/api/discovery.py +++ b/supervisor/api/discovery.py @@ -13,7 +13,7 @@ from ..const import ( from ..coresys import CoreSysAttributes from ..discovery.validate import valid_discovery_service from ..exceptions import APIError, APIForbidden -from .utils import api_process, api_validate +from .utils import api_process, api_validate, require_home_assistant SCHEMA_DISCOVERY = vol.Schema( { @@ -33,15 +33,10 @@ class APIDiscovery(CoreSysAttributes): raise APIError("Discovery message not found") return message - def _check_permission_ha(self, request): - """Check permission for API call / Home Assistant.""" - if request[REQUEST_FROM] != self.sys_homeassistant: - raise APIForbidden("Only HomeAssistant can use this API!") - @api_process + @require_home_assistant async def list(self, request): """Show register services.""" - self._check_permission_ha(request) # Get available discovery discovery = [] @@ -79,13 +74,11 @@ class APIDiscovery(CoreSysAttributes): return {ATTR_UUID: message.uuid} @api_process + @require_home_assistant async def get_discovery(self, request): """Read data into a discovery message.""" message = self._extract_message(request) - # HomeAssistant? - self._check_permission_ha(request) - return { ATTR_ADDON: message.addon, ATTR_SERVICE: message.service, diff --git a/supervisor/api/hardware.py b/supervisor/api/hardware.py index 1db46dd5b..ac3e4313f 100644 --- a/supervisor/api/hardware.py +++ b/supervisor/api/hardware.py @@ -1,50 +1,46 @@ """Init file for Supervisor hardware RESTful API.""" -import asyncio import logging -from typing import Any, Awaitable, Dict, List +from typing import Any, Awaitable, Dict from aiohttp import web -from ..const import ( - ATTR_AUDIO, - ATTR_DISK, - ATTR_GPIO, - ATTR_INPUT, - ATTR_OUTPUT, - ATTR_SERIAL, - ATTR_USB, -) +from ..const import ATTR_AUDIO, ATTR_DEVICES, ATTR_INPUT, ATTR_NAME, ATTR_OUTPUT from ..coresys import CoreSysAttributes +from ..hardware.const import ( + ATTR_ATTRIBUTES, + ATTR_BY_ID, + ATTR_DEV_PATH, + ATTR_SUBSYSTEM, + ATTR_SYSFS, +) +from ..hardware.data import Device from .utils import api_process _LOGGER: logging.Logger = logging.getLogger(__name__) +def device_struct(device: Device) -> Dict[str, Any]: + """Return a dict with information of a interface to be used in th API.""" + return { + ATTR_NAME: device.name, + ATTR_SYSFS: device.sysfs, + ATTR_DEV_PATH: device.path, + ATTR_SUBSYSTEM: device.subsystem, + ATTR_BY_ID: device.by_id, + ATTR_ATTRIBUTES: device.attributes, + } + + class APIHardware(CoreSysAttributes): """Handle RESTful API for hardware functions.""" @api_process async def info(self, request: web.Request) -> Dict[str, Any]: """Show hardware info.""" - serial: List[str] = [] - - # Create Serial list with device links - for device in self.sys_hardware.serial_devices: - serial.append(device.path.as_posix()) - for link in device.links: - serial.append(link.as_posix()) - return { - ATTR_SERIAL: serial, - ATTR_INPUT: list(self.sys_hardware.input_devices), - ATTR_DISK: [ - device.path.as_posix() for device in self.sys_hardware.disk_devices - ], - ATTR_GPIO: list(self.sys_hardware.gpio_devices), - ATTR_USB: [ - device.path.as_posix() for device in self.sys_hardware.usb_devices - ], - ATTR_AUDIO: self.sys_hardware.audio_devices, + ATTR_DEVICES: [ + device_struct(device) for device in self.sys_hardware.devices + ] } @api_process @@ -64,6 +60,6 @@ class APIHardware(CoreSysAttributes): } @api_process - def trigger(self, request: web.Request) -> Awaitable[None]: + async def trigger(self, request: web.Request) -> Awaitable[None]: """Trigger a udev device reload.""" - return asyncio.shield(self.sys_hardware.udev_trigger()) + _LOGGER.debug("Ignoring DEPRECATED hardware trigger function call.") diff --git a/supervisor/api/host.py b/supervisor/api/host.py index ad77e2f26..6da299e27 100644 --- a/supervisor/api/host.py +++ b/supervisor/api/host.py @@ -11,6 +11,7 @@ from ..const import ( ATTR_DEPLOYMENT, ATTR_DESCRIPTON, ATTR_DISK_FREE, + ATTR_DISK_LIFE_TIME, ATTR_DISK_TOTAL, ATTR_DISK_USED, ATTR_FEATURES, @@ -43,6 +44,7 @@ class APIHost(CoreSysAttributes): ATTR_DISK_FREE: self.sys_host.info.free_space, ATTR_DISK_TOTAL: self.sys_host.info.total_space, ATTR_DISK_USED: self.sys_host.info.used_space, + ATTR_DISK_LIFE_TIME: self.sys_host.info.disk_life_time, ATTR_FEATURES: self.sys_host.features, ATTR_HOSTNAME: self.sys_host.info.hostname, ATTR_KERNEL: self.sys_host.info.kernel, diff --git a/supervisor/api/info.py b/supervisor/api/info.py index 6827b486a..85b9519c5 100644 --- a/supervisor/api/info.py +++ b/supervisor/api/info.py @@ -15,6 +15,7 @@ from ..const import ( ATTR_LOGGING, ATTR_MACHINE, ATTR_OPERATING_SYSTEM, + ATTR_STATE, ATTR_SUPERVISOR, ATTR_SUPPORTED, ATTR_SUPPORTED_ARCH, @@ -42,6 +43,7 @@ class APIInfo(CoreSysAttributes): ATTR_FEATURES: self.sys_host.features, ATTR_MACHINE: self.sys_machine, ATTR_ARCH: self.sys_arch.default, + ATTR_STATE: self.sys_core.state, ATTR_SUPPORTED_ARCH: self.sys_arch.supported, ATTR_SUPPORTED: self.sys_core.supported, ATTR_CHANNEL: self.sys_updater.channel, diff --git a/supervisor/api/ingress.py b/supervisor/api/ingress.py index 7e3098a5f..388e26936 100644 --- a/supervisor/api/ingress.py +++ b/supervisor/api/ingress.py @@ -25,10 +25,9 @@ from ..const import ( COOKIE_INGRESS, HEADER_TOKEN, HEADER_TOKEN_OLD, - REQUEST_FROM, ) from ..coresys import CoreSysAttributes -from .utils import api_process, api_validate +from .utils import api_process, api_validate, require_home_assistant _LOGGER: logging.Logger = logging.getLogger(__name__) @@ -50,11 +49,6 @@ class APIIngress(CoreSysAttributes): return addon - def _check_ha_access(self, request: web.Request) -> None: - if request[REQUEST_FROM] != self.sys_homeassistant: - _LOGGER.warning("Ingress is only available behind Home Assistant") - raise HTTPUnauthorized() - def _create_url(self, addon: Addon, path: str) -> str: """Create URL to container.""" return f"http://{addon.ip_address}:{addon.ingress_port}/{path}" @@ -74,18 +68,16 @@ class APIIngress(CoreSysAttributes): return {ATTR_PANELS: addons} @api_process + @require_home_assistant async def create_session(self, request: web.Request) -> Dict[str, Any]: """Create a new session.""" - self._check_ha_access(request) - session = self.sys_ingress.create_session() return {ATTR_SESSION: session} @api_process + @require_home_assistant async def validate_session(self, request: web.Request) -> Dict[str, Any]: """Validate session and extending how long it's valid for.""" - self._check_ha_access(request) - data = await api_validate(VALIDATE_SESSION_DATA, request) # Check Ingress Session @@ -93,11 +85,11 @@ class APIIngress(CoreSysAttributes): _LOGGER.warning("No valid ingress session %s", data[ATTR_SESSION]) raise HTTPUnauthorized() + @require_home_assistant async def handler( self, request: web.Request ) -> Union[web.Response, web.StreamResponse, web.WebSocketResponse]: """Route data to Supervisor ingress service.""" - self._check_ha_access(request) # Check Ingress Session session = request.cookies.get(COOKIE_INGRESS) diff --git a/supervisor/api/jobs.py b/supervisor/api/jobs.py index 865aed76c..fe0e016f6 100644 --- a/supervisor/api/jobs.py +++ b/supervisor/api/jobs.py @@ -36,6 +36,8 @@ class APIJobs(CoreSysAttributes): self.sys_jobs.save_data() + await self.sys_resolution.evaluate.evaluate_system() + @api_process async def reset(self, request: web.Request) -> None: """Reset options for JobManager.""" diff --git a/supervisor/api/network.py b/supervisor/api/network.py index de3db6b9e..627176544 100644 --- a/supervisor/api/network.py +++ b/supervisor/api/network.py @@ -155,7 +155,7 @@ class APINetwork(CoreSysAttributes): except HostNetworkNotFound: pass - raise APIError(f"Interface {name} does not exsist") from None + raise APIError(f"Interface {name} does not exist") from None @api_process async def info(self, request: web.Request) -> Dict[str, Any]: diff --git a/supervisor/api/panel/entrypoint.js b/supervisor/api/panel/entrypoint.js index 1396bb117..4edcce69e 100644 --- a/supervisor/api/panel/entrypoint.js +++ b/supervisor/api/panel/entrypoint.js @@ -1,9 +1,9 @@ try { - new Function("import('/api/hassio/app/frontend_latest/entrypoint.df099659.js')")(); + new Function("import('/api/hassio/app/frontend_latest/entrypoint.4050b348.js')")(); } catch (err) { var el = document.createElement('script'); - el.src = '/api/hassio/app/frontend_es5/entrypoint.d303236e.js'; + el.src = '/api/hassio/app/frontend_es5/entrypoint.bcf8e8ff.js'; document.body.appendChild(el); } \ No newline at end of file diff --git a/supervisor/api/panel/entrypoint.js.gz b/supervisor/api/panel/entrypoint.js.gz index 2f9124953..5f9b673cf 100644 Binary files a/supervisor/api/panel/entrypoint.js.gz and b/supervisor/api/panel/entrypoint.js.gz differ diff --git a/supervisor/api/panel/frontend_es5/chunk.0aeb318c1dfa0b946242.js b/supervisor/api/panel/frontend_es5/chunk.0aeb318c1dfa0b946242.js deleted file mode 100644 index f547f656f..000000000 --- a/supervisor/api/panel/frontend_es5/chunk.0aeb318c1dfa0b946242.js +++ /dev/null @@ -1,2 +0,0 @@ -(self.webpackChunkhome_assistant_frontend=self.webpackChunkhome_assistant_frontend||[]).push([[360],{79074:function(e,t,r){var n,i,o;function l(e){return(l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}o=function(){"use strict";var e=navigator.userAgent,t=navigator.platform,r=/gecko\/\d/i.test(e),n=/MSIE \d/.test(e),i=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(e),o=/Edge\/(\d+)/.exec(e),s=n||i||o,a=s&&(n?document.documentMode||6:+(o||i)[1]),u=!o&&/WebKit\//.test(e),c=u&&/Qt\/\d+\.\d+/.test(e),f=!o&&/Chrome\//.test(e),d=/Opera\//.test(e),h=/Apple Computer/.test(navigator.vendor),p=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(e),g=/PhantomJS/.test(e),m=!o&&/AppleWebKit/.test(e)&&/Mobile\/\w+/.test(e),v=/Android/.test(e),y=m||v||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(e),b=m||/Mac/.test(t),w=/\bCrOS\b/.test(e),x=/win/i.test(t),C=d&&e.match(/Version\/(\d*\.\d*)/);C&&(C=Number(C[1])),C&&C>=15&&(d=!1,u=!0);var S=b&&(c||d&&(null==C||C<12.11)),k=r||s&&a>=9;function M(e){return new RegExp("(^|\\s)"+e+"(?:$|\\s)\\s*")}var L,T=function(e,t){var r=e.className,n=M(t).exec(r);if(n){var i=r.slice(n.index+n[0].length);e.className=r.slice(0,n.index)+(i?n[1]+i:"")}};function N(e){for(var t=e.childNodes.length;t>0;--t)e.removeChild(e.firstChild);return e}function O(e,t){return N(e).appendChild(t)}function A(e,t,r,n){var i=document.createElement(e);if(r&&(i.className=r),n&&(i.style.cssText=n),"string"==typeof t)i.appendChild(document.createTextNode(t));else if(t)for(var o=0;o=t)return l+(t-o);l+=s-o,l+=r-l%r,o=s+1}}m?P=function(e){e.selectionStart=0,e.selectionEnd=e.value.length}:s&&(P=function(e){try{e.select()}catch(t){}});var B=function(){this.id=null};function G(e,t){for(var r=0;r=t)return n+Math.min(l,t-i);if(i+=o-n,n=o+1,(i+=r-i%r)>=t)return n}}var X=[""];function Y(e){for(;X.length<=e;)X.push(q(X)+" ");return X[e]}function q(e){return e[e.length-1]}function $(e,t){for(var r=[],n=0;n"€"&&(e.toUpperCase()!=e.toLowerCase()||J.test(e))}function te(e,t){return t?!!(t.source.indexOf("\\w")>-1&&ee(e))||t.test(e):ee(e)}function re(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return!1;return!0}var ne=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/;function ie(e){return e.charCodeAt(0)>=768&&ne.test(e)}function oe(e,t,r){for(;(r<0?t>0:tr?-1:1;;){if(t==r)return t;var i=(t+r)/2,o=n<0?Math.ceil(i):Math.floor(i);if(o==t)return e(o)?t:r;e(o)?r=o:t=o+n}}var se=null;function ae(e,t,r){var n;se=null;for(var i=0;it)return i;o.to==t&&(o.from!=o.to&&"before"==r?n=i:se=i),o.from==t&&(o.from!=o.to&&"before"!=r?n=i:se=i)}return null!=n?n:se}var ue=function(){var e=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,t=/[stwN]/,r=/[LRr]/,n=/[Lb1n]/,i=/[1n]/;function o(e,t,r){this.level=e,this.from=t,this.to=r}return function(l,s){var a="ltr"==s?"L":"R";if(0==l.length||"ltr"==s&&!e.test(l))return!1;for(var u,c=l.length,f=[],d=0;d-1&&(n[t]=i.slice(0,o).concat(i.slice(o+1)))}}}function ge(e,t){var r=he(e,t);if(r.length)for(var n=Array.prototype.slice.call(arguments,2),i=0;i0}function be(e){e.prototype.on=function(e,t){de(this,e,t)},e.prototype.off=function(e,t){pe(this,e,t)}}function we(e){e.preventDefault?e.preventDefault():e.returnValue=!1}function xe(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0}function Ce(e){return null!=e.defaultPrevented?e.defaultPrevented:0==e.returnValue}function Se(e){we(e),xe(e)}function ke(e){return e.target||e.srcElement}function Me(e){var t=e.which;return null==t&&(1&e.button?t=1:2&e.button?t=3:4&e.button&&(t=2)),b&&e.ctrlKey&&1==t&&(t=3),t}var Le,Te,Ne=function(){if(s&&a<9)return!1;var e=A("div");return"draggable"in e||"dragDrop"in e}();function Oe(e){if(null==Le){var t=A("span","​");O(e,A("span",[t,document.createTextNode("x")])),0!=e.firstChild.offsetHeight&&(Le=t.offsetWidth<=1&&t.offsetHeight>2&&!(s&&a<8))}var r=Le?A("span","​"):A("span"," ",null,"display: inline-block; width: 1px; margin-right: -1px");return r.setAttribute("cm-text",""),r}function Ae(e){if(null!=Te)return Te;var t=O(e,document.createTextNode("AخA")),r=L(t,0,1).getBoundingClientRect(),n=L(t,1,2).getBoundingClientRect();return N(e),!(!r||r.left==r.right)&&(Te=n.right-r.right<3)}var De,We=3!="\n\nb".split(/\n/).length?function(e){for(var t=0,r=[],n=e.length;t<=n;){var i=e.indexOf("\n",t);-1==i&&(i=e.length);var o=e.slice(t,"\r"==e.charAt(i-1)?i-1:i),l=o.indexOf("\r");-1!=l?(r.push(o.slice(0,l)),t+=l+1):(r.push(o),t=i+1)}return r}:function(e){return e.split(/\r\n?|\n/)},He=window.getSelection?function(e){try{return e.selectionStart!=e.selectionEnd}catch(De){return!1}}:function(e){var t;try{t=e.ownerDocument.selection.createRange()}catch(De){}return!(!t||t.parentElement()!=e)&&0!=t.compareEndPoints("StartToEnd",t)},ze="oncopy"in(De=A("div"))||(De.setAttribute("oncopy","return;"),"function"==typeof De.oncopy),Fe=null,Pe={},Ee={};function Ie(e,t){arguments.length>2&&(t.dependencies=Array.prototype.slice.call(arguments,2)),Pe[e]=t}function Re(e){if("string"==typeof e&&Ee.hasOwnProperty(e))e=Ee[e];else if(e&&"string"==typeof e.name&&Ee.hasOwnProperty(e.name)){var t=Ee[e.name];"string"==typeof t&&(t={name:t}),(e=Q(t,e)).name=t.name}else{if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+xml$/.test(e))return Re("application/xml");if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+json$/.test(e))return Re("application/json")}return"string"==typeof e?{name:e}:e||{name:"null"}}function Be(e,t){t=Re(t);var r=Pe[t.name];if(!r)return Be(e,"text/plain");var n=r(e,t);if(Ge.hasOwnProperty(t.name)){var i=Ge[t.name];for(var o in i)i.hasOwnProperty(o)&&(n.hasOwnProperty(o)&&(n["_"+o]=n[o]),n[o]=i[o])}if(n.name=t.name,t.helperType&&(n.helperType=t.helperType),t.modeProps)for(var l in t.modeProps)n[l]=t.modeProps[l];return n}var Ge={};function Ue(e,t){I(t,Ge.hasOwnProperty(e)?Ge[e]:Ge[e]={})}function Ve(e,t){if(!0===t)return t;if(e.copyState)return e.copyState(t);var r={};for(var n in t){var i=t[n];i instanceof Array&&(i=i.concat([])),r[n]=i}return r}function je(e,t){for(var r;e.innerMode&&(r=e.innerMode(t))&&r.mode!=e;)t=r.state,e=r.mode;return r||{mode:e,state:t}}function Ke(e,t,r){return!e.startState||e.startState(t,r)}var _e=function(e,t,r){this.pos=this.start=0,this.string=e,this.tabSize=t||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0,this.lineOracle=r};function Xe(e,t){if((t-=e.first)<0||t>=e.size)throw new Error("There is no line "+(t+e.first)+" in the document.");for(var r=e;!r.lines;)for(var n=0;;++n){var i=r.children[n],o=i.chunkSize();if(t=e.first&&tr?tt(r,Xe(e,r).text.length):function(e,t){var r=e.ch;return null==r||r>t?tt(e.line,t):r<0?tt(e.line,0):e}(t,Xe(e,t.line).text.length)}function ut(e,t){for(var r=[],n=0;n=this.string.length},_e.prototype.sol=function(){return this.pos==this.lineStart},_e.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},_e.prototype.next=function(){if(this.post},_e.prototype.eatSpace=function(){for(var e=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e},_e.prototype.skipToEnd=function(){this.pos=this.string.length},_e.prototype.skipTo=function(e){var t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0},_e.prototype.backUp=function(e){this.pos-=e},_e.prototype.column=function(){return this.lastColumnPos0?null:(n&&!1!==t&&(this.pos+=n[0].length),n)}var i=function(e){return r?e.toLowerCase():e};if(i(this.string.substr(this.pos,e.length))==i(e))return!1!==t&&(this.pos+=e.length),!0},_e.prototype.current=function(){return this.string.slice(this.start,this.pos)},_e.prototype.hideFirstChars=function(e,t){this.lineStart+=e;try{return t()}finally{this.lineStart-=e}},_e.prototype.lookAhead=function(e){var t=this.lineOracle;return t&&t.lookAhead(e)},_e.prototype.baseToken=function(){var e=this.lineOracle;return e&&e.baseToken(this.pos)};var ct=function(e,t){this.state=e,this.lookAhead=t},ft=function(e,t,r,n){this.state=t,this.doc=e,this.line=r,this.maxLookAhead=n||0,this.baseTokens=null,this.baseTokenPos=1};function dt(e,t,r,n){var i=[e.state.modeGen],o={};xt(e,t.text,e.doc.mode,r,(function(e,t){return i.push(e,t)}),o,n);for(var l=r.state,s=function(n){r.baseTokens=i;var s=e.state.overlays[n],a=1,u=0;r.state=!0,xt(e,t.text,s.mode,r,(function(e,t){for(var r=a;ue&&i.splice(a,1,e,i[a+1],n),a+=2,u=Math.min(e,n)}if(t)if(s.opaque)i.splice(r,a-r,e,"overlay "+t),a=r+2;else for(;re.options.maxHighlightLength&&Ve(e.doc.mode,n.state),o=dt(e,t,n);i&&(n.state=i),t.stateAfter=n.save(!i),t.styles=o.styles,o.classes?t.styleClasses=o.classes:t.styleClasses&&(t.styleClasses=null),r===e.doc.highlightFrontier&&(e.doc.modeFrontier=Math.max(e.doc.modeFrontier,++e.doc.highlightFrontier))}return t.styles}function pt(e,t,r){var n=e.doc,i=e.display;if(!n.mode.startState)return new ft(n,!0,t);var o=function(e,t,r){for(var n,i,o=e.doc,l=r?-1:t-(e.doc.mode.innerMode?1e3:100),s=t;s>l;--s){if(s<=o.first)return o.first;var a=Xe(o,s-1),u=a.stateAfter;if(u&&(!r||s+(u instanceof ct?u.lookAhead:0)<=o.modeFrontier))return s;var c=R(a.text,null,e.options.tabSize);(null==i||n>c)&&(i=s-1,n=c)}return i}(e,t,r),l=o>n.first&&Xe(n,o-1).stateAfter,s=l?ft.fromSaved(n,l,o):new ft(n,Ke(n.mode),o);return n.iter(o,t,(function(r){gt(e,r.text,s);var n=s.line;r.stateAfter=n==t-1||n%5==0||n>=i.viewFrom&&nt.start)return o}throw new Error("Mode "+e.name+" failed to advance stream.")}ft.prototype.lookAhead=function(e){var t=this.doc.getLine(this.line+e);return null!=t&&e>this.maxLookAhead&&(this.maxLookAhead=e),t},ft.prototype.baseToken=function(e){if(!this.baseTokens)return null;for(;this.baseTokens[this.baseTokenPos]<=e;)this.baseTokenPos+=2;var t=this.baseTokens[this.baseTokenPos+1];return{type:t&&t.replace(/( |^)overlay .*/,""),size:this.baseTokens[this.baseTokenPos]-e}},ft.prototype.nextLine=function(){this.line++,this.maxLookAhead>0&&this.maxLookAhead--},ft.fromSaved=function(e,t,r){return t instanceof ct?new ft(e,Ve(e.mode,t.state),r,t.lookAhead):new ft(e,Ve(e.mode,t),r)},ft.prototype.save=function(e){var t=!1!==e?Ve(this.doc.mode,this.state):this.state;return this.maxLookAhead>0?new ct(t,this.maxLookAhead):t};var yt=function(e,t,r){this.start=e.start,this.end=e.pos,this.string=e.current(),this.type=t||null,this.state=r};function bt(e,t,r,n){var i,o,l=e.doc,s=l.mode,a=Xe(l,(t=at(l,t)).line),u=pt(e,t.line,r),c=new _e(a.text,e.options.tabSize,u);for(n&&(o=[]);(n||c.pose.options.maxHighlightLength?(s=!1,l&>(e,t,n,f.pos),f.pos=t.length,a=null):a=wt(vt(r,f,n.state,d),o),d){var h=d[0].name;h&&(a="m-"+(a?h+" "+a:h))}if(!s||c!=a){for(;u=t:o.to>t);(n||(n=[])).push(new kt(l,o.from,s?null:o.to))}}return n}(r,i,l),a=function(e,t,r){var n;if(e)for(var i=0;i=t:o.to>t)||o.from==t&&"bookmark"==l.type&&(!r||o.marker.insertLeft)){var s=null==o.from||(l.inclusiveLeft?o.from<=t:o.from0&&s)for(var b=0;bt)&&(!r||Ht(r,o.marker)<0)&&(r=o.marker)}return r}function It(e,t,r,n,i){var o=Xe(e,t),l=St&&o.markedSpans;if(l)for(var s=0;s=0&&f<=0||c<=0&&f>=0)&&(c<=0&&(a.marker.inclusiveRight&&i.inclusiveLeft?rt(u.to,r)>=0:rt(u.to,r)>0)||c>=0&&(a.marker.inclusiveRight&&i.inclusiveLeft?rt(u.from,n)<=0:rt(u.from,n)<0)))return!0}}}function Rt(e){for(var t;t=Ft(e);)e=t.find(-1,!0).line;return e}function Bt(e,t){var r=Xe(e,t),n=Rt(r);return r==n?t:Ze(n)}function Gt(e,t){if(t>e.lastLine())return t;var r,n=Xe(e,t);if(!Ut(e,n))return t;for(;r=Pt(n);)n=r.find(1,!0).line;return Ze(n)+1}function Ut(e,t){var r=St&&t.markedSpans;if(r)for(var n=void 0,i=0;it.maxLineLength&&(t.maxLineLength=r,t.maxLine=e)}))}var Xt=function(e,t,r){this.text=e,At(this,t),this.height=r?r(this):1};function Yt(e){e.parent=null,Ot(e)}Xt.prototype.lineNo=function(){return Ze(this)},be(Xt);var qt={},$t={};function Zt(e,t){if(!e||/^\s*$/.test(e))return null;var r=t.addModeClass?$t:qt;return r[e]||(r[e]=e.replace(/\S+/g,"cm-$&"))}function Qt(e,t){var r=D("span",null,null,u?"padding-right: .1px":null),n={pre:D("pre",[r],"CodeMirror-line"),content:r,col:0,pos:0,cm:e,trailingSpace:!1,splitSpaces:e.getOption("lineWrapping")};t.measure={};for(var i=0;i<=(t.rest?t.rest.length:0);i++){var o=i?t.rest[i-1]:t.line,l=void 0;n.pos=0,n.addToken=er,Ae(e.display.measure)&&(l=ce(o,e.doc.direction))&&(n.addToken=tr(n.addToken,l)),n.map=[],nr(o,n,ht(e,o,t!=e.display.externalMeasured&&Ze(o))),o.styleClasses&&(o.styleClasses.bgClass&&(n.bgClass=F(o.styleClasses.bgClass,n.bgClass||"")),o.styleClasses.textClass&&(n.textClass=F(o.styleClasses.textClass,n.textClass||""))),0==n.map.length&&n.map.push(0,0,n.content.appendChild(Oe(e.display.measure))),0==i?(t.measure.map=n.map,t.measure.cache={}):((t.measure.maps||(t.measure.maps=[])).push(n.map),(t.measure.caches||(t.measure.caches=[])).push({}))}if(u){var s=n.content.lastChild;(/\bcm-tab\b/.test(s.className)||s.querySelector&&s.querySelector(".cm-tab"))&&(n.content.className="cm-tab-wrap-hack")}return ge(e,"renderLine",e,t.line,n.pre),n.pre.className&&(n.textClass=F(n.pre.className,n.textClass||"")),n}function Jt(e){var t=A("span","•","cm-invalidchar");return t.title="\\u"+e.charCodeAt(0).toString(16),t.setAttribute("aria-label",t.title),t}function er(e,t,r,n,i,o,l){if(t){var u,c=e.splitSpaces?function(e,t){if(e.length>1&&!/ /.test(e))return e;for(var r=t,n="",i=0;iu&&f.from<=u);d++);if(f.to>=c)return e(r,n,i,o,l,s,a);e(r,n.slice(0,f.to-u),i,o,null,s,a),o=null,n=n.slice(f.to-u),u=f.to}}}function rr(e,t,r,n){var i=!n&&r.widgetNode;i&&e.map.push(e.pos,e.pos+t,i),!n&&e.cm.display.input.needsContentAttribute&&(i||(i=e.content.appendChild(document.createElement("span"))),i.setAttribute("cm-marker",r.id)),i&&(e.cm.display.input.setUneditable(i),e.content.appendChild(i)),e.pos+=t,e.trailingSpace=!1}function nr(e,t,r){var n=e.markedSpans,i=e.text,o=0;if(n)for(var l,s,a,u,c,f,d,h=i.length,p=0,g=1,m="",v=0;;){if(v==p){a=u=c=s="",d=null,f=null,v=1/0;for(var y=[],b=void 0,w=0;wp||C.collapsed&&x.to==p&&x.from==p)){if(null!=x.to&&x.to!=p&&v>x.to&&(v=x.to,u=""),C.className&&(a+=" "+C.className),C.css&&(s=(s?s+";":"")+C.css),C.startStyle&&x.from==p&&(c+=" "+C.startStyle),C.endStyle&&x.to==v&&(b||(b=[])).push(C.endStyle,x.to),C.title&&((d||(d={})).title=C.title),C.attributes)for(var S in C.attributes)(d||(d={}))[S]=C.attributes[S];C.collapsed&&(!f||Ht(f.marker,C)<0)&&(f=x)}else x.from>p&&v>x.from&&(v=x.from)}if(b)for(var k=0;k=h)break;for(var L=Math.min(h,v);;){if(m){var T=p+m.length;if(!f){var N=T>L?m.slice(0,L-p):m;t.addToken(t,N,l?l+a:a,c,p+N.length==v?u:"",s,d)}if(T>=L){m=m.slice(L-p),p=L;break}p=T,c=""}m=i.slice(o,o=r[g++]),l=Zt(r[g++],t.cm.options)}}else for(var O=1;Or)return{map:e.measure.maps[i],cache:e.measure.caches[i],before:!0}}function Ar(e,t,r,n){return Hr(e,Wr(e,t),r,n)}function Dr(e,t){if(t>=e.display.viewFrom&&t=r.lineN&&t2&&o.push((a.bottom+u.top)/2-r.top)}}o.push(r.bottom-r.top)}}(e,t.view,t.rect),t.hasHeights=!0),(o=function(e,t,r,n){var i,o=Pr(t.map,r,n),l=o.node,u=o.start,c=o.end,f=o.collapse;if(3==l.nodeType){for(var d=0;d<4;d++){for(;u&&ie(t.line.text.charAt(o.coverStart+u));)--u;for(;o.coverStart+c1}(e))return t;var r=screen.logicalXDPI/screen.deviceXDPI,n=screen.logicalYDPI/screen.deviceYDPI;return{left:t.left*r,right:t.right*r,top:t.top*n,bottom:t.bottom*n}}(e.display.measure,i))}else{var h;u>0&&(f=n="right"),i=e.options.lineWrapping&&(h=l.getClientRects()).length>1?h["right"==n?h.length-1:0]:l.getBoundingClientRect()}if(s&&a<9&&!u&&(!i||!i.left&&!i.right)){var p=l.parentNode.getClientRects()[0];i=p?{left:p.left,right:p.left+on(e.display),top:p.top,bottom:p.bottom}:Fr}for(var g=i.top-t.rect.top,m=i.bottom-t.rect.top,v=(g+m)/2,y=t.view.measure.heights,b=0;bt)&&(i=(o=a-s)-1,t>=a&&(l="right")),null!=i){if(n=e[u+2],s==a&&r==(n.insertLeft?"left":"right")&&(l=r),"left"==r&&0==i)for(;u&&e[u-2]==e[u-3]&&e[u-1].insertLeft;)n=e[2+(u-=3)],l="left";if("right"==r&&i==a-s)for(;u=0&&(r=e[i]).left==r.right;i--);return r}function Ir(e){if(e.measure&&(e.measure.cache={},e.measure.heights=null,e.rest))for(var t=0;t=n.text.length?(a=n.text.length,u="before"):a<=0&&(a=0,u="after"),!s)return l("before"==u?a-1:a,"before"==u);function c(e,t,r){return l(r?e-1:e,1==s[t].level!=r)}var f=ae(s,a,u),d=se,h=c(a,f,"before"==u);return null!=d&&(h.other=c(a,d,"before"!=u)),h}function Yr(e,t){var r=0;t=at(e.doc,t),e.options.lineWrapping||(r=on(e.display)*t.ch);var n=Xe(e.doc,t.line),i=jt(n)+Sr(e.display);return{left:r,right:r,top:i,bottom:i+n.height}}function qr(e,t,r,n,i){var o=tt(e,t,r);return o.xRel=i,n&&(o.outside=n),o}function $r(e,t,r){var n=e.doc;if((r+=e.display.viewOffset)<0)return qr(n.first,0,null,-1,-1);var i=Qe(n,r),o=n.first+n.size-1;if(i>o)return qr(n.first+n.size-1,Xe(n,o).text.length,null,1,1);t<0&&(t=0);for(var l=Xe(n,i);;){var s=en(e,l,i,t,r),a=Et(l,s.ch+(s.xRel>0||s.outside>0?1:0));if(!a)return s;var u=a.find(1);if(u.line==i)return u;l=Xe(n,i=u.line)}}function Zr(e,t,r,n){n-=Vr(t);var i=t.text.length,o=le((function(t){return Hr(e,r,t-1).bottom<=n}),i,0);return{begin:o,end:i=le((function(t){return Hr(e,r,t).top>n}),o,i)}}function Qr(e,t,r,n){return r||(r=Wr(e,t)),Zr(e,t,r,jr(e,t,Hr(e,r,n),"line").top)}function Jr(e,t,r,n){return!(e.bottom<=r)&&(e.top>r||(n?e.left:e.right)>t)}function en(e,t,r,n,i){i-=jt(t);var o=Wr(e,t),l=Vr(t),s=0,a=t.text.length,u=!0,c=ce(t,e.doc.direction);if(c){var f=(e.options.lineWrapping?rn:tn)(e,t,r,o,c,n,i);s=(u=1!=f.level)?f.from:f.to-1,a=u?f.to:f.from-1}var d,h,p=null,g=null,m=le((function(t){var r=Hr(e,o,t);return r.top+=l,r.bottom+=l,!!Jr(r,n,i,!1)&&(r.top<=i&&r.left<=n&&(p=t,g=r),!0)}),s,a),v=!1;if(g){var y=n-g.left=w.bottom?1:0}return qr(r,m=oe(t.text,m,1),h,v,n-d)}function tn(e,t,r,n,i,o,l){var s=le((function(s){var a=i[s],u=1!=a.level;return Jr(Xr(e,tt(r,u?a.to:a.from,u?"before":"after"),"line",t,n),o,l,!0)}),0,i.length-1),a=i[s];if(s>0){var u=1!=a.level,c=Xr(e,tt(r,u?a.from:a.to,u?"after":"before"),"line",t,n);Jr(c,o,l,!0)&&c.top>l&&(a=i[s-1])}return a}function rn(e,t,r,n,i,o,l){var s=Zr(e,t,n,l),a=s.begin,u=s.end;/\s/.test(t.text.charAt(u-1))&&u--;for(var c=null,f=null,d=0;d=u||h.to<=a)){var p=Hr(e,n,1!=h.level?Math.min(u,h.to)-1:Math.max(a,h.from)).right,g=pg)&&(c=h,f=g)}}return c||(c=i[i.length-1]),c.fromu&&(c={from:c.from,to:u,level:c.level}),c}function nn(e){if(null!=e.cachedTextHeight)return e.cachedTextHeight;if(null==zr){zr=A("pre",null,"CodeMirror-line-like");for(var t=0;t<49;++t)zr.appendChild(document.createTextNode("x")),zr.appendChild(A("br"));zr.appendChild(document.createTextNode("x"))}O(e.measure,zr);var r=zr.offsetHeight/50;return r>3&&(e.cachedTextHeight=r),N(e.measure),r||1}function on(e){if(null!=e.cachedCharWidth)return e.cachedCharWidth;var t=A("span","xxxxxxxxxx"),r=A("pre",[t],"CodeMirror-line-like");O(e.measure,r);var n=t.getBoundingClientRect(),i=(n.right-n.left)/10;return i>2&&(e.cachedCharWidth=i),i||10}function ln(e){for(var t=e.display,r={},n={},i=t.gutters.clientLeft,o=t.gutters.firstChild,l=0;o;o=o.nextSibling,++l){var s=e.display.gutterSpecs[l].className;r[s]=o.offsetLeft+o.clientLeft+i,n[s]=o.clientWidth}return{fixedPos:sn(t),gutterTotalWidth:t.gutters.offsetWidth,gutterLeft:r,gutterWidth:n,wrapperWidth:t.wrapper.clientWidth}}function sn(e){return e.scroller.getBoundingClientRect().left-e.sizer.getBoundingClientRect().left}function an(e){var t=nn(e.display),r=e.options.lineWrapping,n=r&&Math.max(5,e.display.scroller.clientWidth/on(e.display)-3);return function(i){if(Ut(e.doc,i))return 0;var o=0;if(i.widgets)for(var l=0;l=e.display.viewTo)return null;if((t-=e.display.viewFrom)<0)return null;for(var r=e.display.view,n=0;nt)&&(i.updateLineNumbers=t),e.curOp.viewChanged=!0,t>=i.viewTo)St&&Bt(e.doc,t)i.viewFrom?pn(e):(i.viewFrom+=n,i.viewTo+=n);else if(t<=i.viewFrom&&r>=i.viewTo)pn(e);else if(t<=i.viewFrom){var o=gn(e,r,r+n,1);o?(i.view=i.view.slice(o.index),i.viewFrom=o.lineN,i.viewTo+=n):pn(e)}else if(r>=i.viewTo){var l=gn(e,t,t,-1);l?(i.view=i.view.slice(0,l.index),i.viewTo=l.lineN):pn(e)}else{var s=gn(e,t,t,-1),a=gn(e,r,r+n,1);s&&a?(i.view=i.view.slice(0,s.index).concat(or(e,s.lineN,a.lineN)).concat(i.view.slice(a.index)),i.viewTo+=n):pn(e)}var u=i.externalMeasured;u&&(r=i.lineN&&t=n.viewTo)){var o=n.view[fn(e,t)];if(null!=o.node){var l=o.changes||(o.changes=[]);-1==G(l,r)&&l.push(r)}}}function pn(e){e.display.viewFrom=e.display.viewTo=e.doc.first,e.display.view=[],e.display.viewOffset=0}function gn(e,t,r,n){var i,o=fn(e,t),l=e.display.view;if(!St||r==e.doc.first+e.doc.size)return{index:o,lineN:r};for(var s=e.display.viewFrom,a=0;a0){if(o==l.length-1)return null;i=s+l[o].size-t,o++}else i=s-t;t+=i,r+=i}for(;Bt(e.doc,r)!=r;){if(o==(n<0?0:l.length-1))return null;r+=n*l[o-(n<0?1:0)].size,o+=n}return{index:o,lineN:r}}function mn(e){for(var t=e.display.view,r=0,n=0;n=e.display.viewTo||s.to().linet||t==r&&l.to==t)&&(n(Math.max(l.from,t),Math.min(l.to,r),1==l.level?"rtl":"ltr",o),i=!0)}i||n(t,r,"ltr")}(g,r||0,null==n?d:n,(function(e,t,i,f){var m="ltr"==i,v=h(e,m?"left":"right"),y=h(t-1,m?"right":"left"),b=null==r&&0==e,w=null==n&&t==d,x=0==f,C=!g||f==g.length-1;if(y.top-v.top<=3){var S=(u?w:b)&&C,k=(u?b:w)&&x?s:(m?v:y).left,M=S?a:(m?y:v).right;c(k,v.top,M-k,v.bottom)}else{var L,T,N,O;m?(L=u&&b&&x?s:v.left,T=u?a:p(e,i,"before"),N=u?s:p(t,i,"after"),O=u&&w&&C?a:y.right):(L=u?p(e,i,"before"):s,T=!u&&b&&x?a:v.right,N=!u&&w&&C?s:y.left,O=u?p(t,i,"after"):a),c(L,v.top,T-L,v.bottom),v.bottom0?t.blinker=setInterval((function(){return t.cursorDiv.style.visibility=(r=!r)?"":"hidden"}),e.options.cursorBlinkRate):e.options.cursorBlinkRate<0&&(t.cursorDiv.style.visibility="hidden")}}function Sn(e){e.state.focused||(e.display.input.focus(),Mn(e))}function kn(e){e.state.delayingBlurEvent=!0,setTimeout((function(){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1,Ln(e))}),100)}function Mn(e,t){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1),"nocursor"!=e.options.readOnly&&(e.state.focused||(ge(e,"focus",e,t),e.state.focused=!0,z(e.display.wrapper,"CodeMirror-focused"),e.curOp||e.display.selForContextMenu==e.doc.sel||(e.display.input.reset(),u&&setTimeout((function(){return e.display.input.reset(!0)}),20)),e.display.input.receivedFocus()),Cn(e))}function Ln(e,t){e.state.delayingBlurEvent||(e.state.focused&&(ge(e,"blur",e,t),e.state.focused=!1,T(e.display.wrapper,"CodeMirror-focused")),clearInterval(e.display.blinker),setTimeout((function(){e.state.focused||(e.display.shift=!1)}),150))}function Tn(e){for(var t=e.display,r=t.lineDiv.offsetTop,n=0;n.005||d<-.005)&&($e(i.line,l),Nn(i.line),i.rest))for(var h=0;he.display.sizerWidth){var p=Math.ceil(u/on(e.display));p>e.display.maxLineLength&&(e.display.maxLineLength=p,e.display.maxLine=i.line,e.display.maxLineChanged=!0)}}}}function Nn(e){if(e.widgets)for(var t=0;t=l&&(o=Qe(t,jt(Xe(t,a))-e.wrapper.clientHeight),l=a)}return{from:o,to:Math.max(l,o+1)}}function An(e,t){var r=e.display,n=nn(e.display);t.top<0&&(t.top=0);var i=e.curOp&&null!=e.curOp.scrollTop?e.curOp.scrollTop:r.scroller.scrollTop,o=Nr(e),l={};t.bottom-t.top>o&&(t.bottom=t.top+o);var s=e.doc.height+kr(r),a=t.tops-n;if(t.topi+o){var c=Math.min(t.top,(u?s:t.bottom)-o);c!=i&&(l.scrollTop=c)}var f=e.curOp&&null!=e.curOp.scrollLeft?e.curOp.scrollLeft:r.scroller.scrollLeft,d=Tr(e)-(e.options.fixedGutter?r.gutters.offsetWidth:0),h=t.right-t.left>d;return h&&(t.right=t.left+d),t.left<10?l.scrollLeft=0:t.leftd+f-3&&(l.scrollLeft=t.right+(h?0:10)-d),l}function Dn(e,t){null!=t&&(zn(e),e.curOp.scrollTop=(null==e.curOp.scrollTop?e.doc.scrollTop:e.curOp.scrollTop)+t)}function Wn(e){zn(e);var t=e.getCursor();e.curOp.scrollToPos={from:t,to:t,margin:e.options.cursorScrollMargin}}function Hn(e,t,r){null==t&&null==r||zn(e),null!=t&&(e.curOp.scrollLeft=t),null!=r&&(e.curOp.scrollTop=r)}function zn(e){var t=e.curOp.scrollToPos;t&&(e.curOp.scrollToPos=null,Fn(e,Yr(e,t.from),Yr(e,t.to),t.margin))}function Fn(e,t,r,n){var i=An(e,{left:Math.min(t.left,r.left),top:Math.min(t.top,r.top)-n,right:Math.max(t.right,r.right),bottom:Math.max(t.bottom,r.bottom)+n});Hn(e,i.scrollLeft,i.scrollTop)}function Pn(e,t){Math.abs(e.doc.scrollTop-t)<2||(r||ui(e,{top:t}),En(e,t,!0),r&&ui(e),ii(e,100))}function En(e,t,r){t=Math.min(e.display.scroller.scrollHeight-e.display.scroller.clientHeight,t),(e.display.scroller.scrollTop!=t||r)&&(e.doc.scrollTop=t,e.display.scrollbars.setScrollTop(t),e.display.scroller.scrollTop!=t&&(e.display.scroller.scrollTop=t))}function In(e,t,r,n){t=Math.min(t,e.display.scroller.scrollWidth-e.display.scroller.clientWidth),(r?t==e.doc.scrollLeft:Math.abs(e.doc.scrollLeft-t)<2)&&!n||(e.doc.scrollLeft=t,di(e),e.display.scroller.scrollLeft!=t&&(e.display.scroller.scrollLeft=t),e.display.scrollbars.setScrollLeft(t))}function Rn(e){var t=e.display,r=t.gutters.offsetWidth,n=Math.round(e.doc.height+kr(e.display));return{clientHeight:t.scroller.clientHeight,viewHeight:t.wrapper.clientHeight,scrollWidth:t.scroller.scrollWidth,clientWidth:t.scroller.clientWidth,viewWidth:t.wrapper.clientWidth,barLeft:e.options.fixedGutter?r:0,docHeight:n,scrollHeight:n+Lr(e)+t.barHeight,nativeBarWidth:t.nativeBarWidth,gutterWidth:r}}var Bn=function(e,t,r){this.cm=r;var n=this.vert=A("div",[A("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),i=this.horiz=A("div",[A("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");n.tabIndex=i.tabIndex=-1,e(n),e(i),de(n,"scroll",(function(){n.clientHeight&&t(n.scrollTop,"vertical")})),de(i,"scroll",(function(){i.clientWidth&&t(i.scrollLeft,"horizontal")})),this.checkedZeroWidth=!1,s&&a<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};Bn.prototype.update=function(e){var t=e.scrollWidth>e.clientWidth+1,r=e.scrollHeight>e.clientHeight+1,n=e.nativeBarWidth;if(r){this.vert.style.display="block",this.vert.style.bottom=t?n+"px":"0";var i=e.viewHeight-(t?n:0);this.vert.firstChild.style.height=Math.max(0,e.scrollHeight-e.clientHeight+i)+"px"}else this.vert.style.display="",this.vert.firstChild.style.height="0";if(t){this.horiz.style.display="block",this.horiz.style.right=r?n+"px":"0",this.horiz.style.left=e.barLeft+"px";var o=e.viewWidth-e.barLeft-(r?n:0);this.horiz.firstChild.style.width=Math.max(0,e.scrollWidth-e.clientWidth+o)+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&e.clientHeight>0&&(0==n&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:r?n:0,bottom:t?n:0}},Bn.prototype.setScrollLeft=function(e){this.horiz.scrollLeft!=e&&(this.horiz.scrollLeft=e),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,"horiz")},Bn.prototype.setScrollTop=function(e){this.vert.scrollTop!=e&&(this.vert.scrollTop=e),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,"vert")},Bn.prototype.zeroWidthHack=function(){var e=b&&!p?"12px":"18px";this.horiz.style.height=this.vert.style.width=e,this.horiz.style.pointerEvents=this.vert.style.pointerEvents="none",this.disableHoriz=new B,this.disableVert=new B},Bn.prototype.enableZeroWidthBar=function(e,t,r){e.style.pointerEvents="auto",t.set(1e3,(function n(){var i=e.getBoundingClientRect();("vert"==r?document.elementFromPoint(i.right-1,(i.top+i.bottom)/2):document.elementFromPoint((i.right+i.left)/2,i.bottom-1))!=e?e.style.pointerEvents="none":t.set(1e3,n)}))},Bn.prototype.clear=function(){var e=this.horiz.parentNode;e.removeChild(this.horiz),e.removeChild(this.vert)};var Gn=function(){};function Un(e,t){t||(t=Rn(e));var r=e.display.barWidth,n=e.display.barHeight;Vn(e,t);for(var i=0;i<4&&r!=e.display.barWidth||n!=e.display.barHeight;i++)r!=e.display.barWidth&&e.options.lineWrapping&&Tn(e),Vn(e,Rn(e)),r=e.display.barWidth,n=e.display.barHeight}function Vn(e,t){var r=e.display,n=r.scrollbars.update(t);r.sizer.style.paddingRight=(r.barWidth=n.right)+"px",r.sizer.style.paddingBottom=(r.barHeight=n.bottom)+"px",r.heightForcer.style.borderBottom=n.bottom+"px solid transparent",n.right&&n.bottom?(r.scrollbarFiller.style.display="block",r.scrollbarFiller.style.height=n.bottom+"px",r.scrollbarFiller.style.width=n.right+"px"):r.scrollbarFiller.style.display="",n.bottom&&e.options.coverGutterNextToScrollbar&&e.options.fixedGutter?(r.gutterFiller.style.display="block",r.gutterFiller.style.height=n.bottom+"px",r.gutterFiller.style.width=t.gutterWidth+"px"):r.gutterFiller.style.display=""}Gn.prototype.update=function(){return{bottom:0,right:0}},Gn.prototype.setScrollLeft=function(){},Gn.prototype.setScrollTop=function(){},Gn.prototype.clear=function(){};var jn={native:Bn,null:Gn};function Kn(e){e.display.scrollbars&&(e.display.scrollbars.clear(),e.display.scrollbars.addClass&&T(e.display.wrapper,e.display.scrollbars.addClass)),e.display.scrollbars=new jn[e.options.scrollbarStyle]((function(t){e.display.wrapper.insertBefore(t,e.display.scrollbarFiller),de(t,"mousedown",(function(){e.state.focused&&setTimeout((function(){return e.display.input.focus()}),0)})),t.setAttribute("cm-not-content","true")}),(function(t,r){"horizontal"==r?In(e,t):Pn(e,t)}),e),e.display.scrollbars.addClass&&z(e.display.wrapper,e.display.scrollbars.addClass)}var _n=0;function Xn(e){var t;e.curOp={cm:e,viewChanged:!1,startHeight:e.doc.height,forceUpdate:!1,updateInput:0,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++_n},t=e.curOp,lr?lr.ops.push(t):t.ownsGroup=lr={ops:[t],delayedCallbacks:[]}}function Yn(e){var t=e.curOp;t&&function(e,t){var r=e.ownsGroup;if(r)try{!function(e){var t=e.delayedCallbacks,r=0;do{for(;r=r.viewTo)||r.maxLineChanged&&t.options.lineWrapping,e.update=e.mustUpdate&&new li(t,e.mustUpdate&&{top:e.scrollTop,ensure:e.scrollToPos},e.forceUpdate)}function $n(e){e.updatedDisplay=e.mustUpdate&&si(e.cm,e.update)}function Zn(e){var t=e.cm,r=t.display;e.updatedDisplay&&Tn(t),e.barMeasure=Rn(t),r.maxLineChanged&&!t.options.lineWrapping&&(e.adjustWidthTo=Ar(t,r.maxLine,r.maxLine.text.length).left+3,t.display.sizerWidth=e.adjustWidthTo,e.barMeasure.scrollWidth=Math.max(r.scroller.clientWidth,r.sizer.offsetLeft+e.adjustWidthTo+Lr(t)+t.display.barWidth),e.maxScrollLeft=Math.max(0,r.sizer.offsetLeft+e.adjustWidthTo-Tr(t))),(e.updatedDisplay||e.selectionChanged)&&(e.preparedSelection=r.input.prepareSelection())}function Qn(e){var t=e.cm;null!=e.adjustWidthTo&&(t.display.sizer.style.minWidth=e.adjustWidthTo+"px",e.maxScrollLeft(window.innerHeight||document.documentElement.clientHeight)&&(i=!1),null!=i&&!g){var o=A("div","​",null,"position: absolute;\n top: "+(t.top-r.viewOffset-Sr(e.display))+"px;\n height: "+(t.bottom-t.top+Lr(e)+r.barHeight)+"px;\n left: "+t.left+"px; width: "+Math.max(2,t.right-t.left)+"px;");e.display.lineSpace.appendChild(o),o.scrollIntoView(i),e.display.lineSpace.removeChild(o)}}}(t,function(e,t,r,n){var i;null==n&&(n=0),e.options.lineWrapping||t!=r||(r="before"==(t=t.ch?tt(t.line,"before"==t.sticky?t.ch-1:t.ch,"after"):t).sticky?tt(t.line,t.ch+1,"before"):t);for(var o=0;o<5;o++){var l=!1,s=Xr(e,t),a=r&&r!=t?Xr(e,r):s,u=An(e,i={left:Math.min(s.left,a.left),top:Math.min(s.top,a.top)-n,right:Math.max(s.left,a.left),bottom:Math.max(s.bottom,a.bottom)+n}),c=e.doc.scrollTop,f=e.doc.scrollLeft;if(null!=u.scrollTop&&(Pn(e,u.scrollTop),Math.abs(e.doc.scrollTop-c)>1&&(l=!0)),null!=u.scrollLeft&&(In(e,u.scrollLeft),Math.abs(e.doc.scrollLeft-f)>1&&(l=!0)),!l)break}return i}(t,at(n,e.scrollToPos.from),at(n,e.scrollToPos.to),e.scrollToPos.margin));var i=e.maybeHiddenMarkers,o=e.maybeUnhiddenMarkers;if(i)for(var l=0;l=e.display.viewTo)){var r=+new Date+e.options.workTime,n=pt(e,t.highlightFrontier),i=[];t.iter(n.line,Math.min(t.first+t.size,e.display.viewTo+500),(function(o){if(n.line>=e.display.viewFrom){var l=o.styles,s=o.text.length>e.options.maxHighlightLength?Ve(t.mode,n.state):null,a=dt(e,o,n,!0);s&&(n.state=s),o.styles=a.styles;var u=o.styleClasses,c=a.classes;c?o.styleClasses=c:u&&(o.styleClasses=null);for(var f=!l||l.length!=o.styles.length||u!=c&&(!u||!c||u.bgClass!=c.bgClass||u.textClass!=c.textClass),d=0;!f&&dr)return ii(e,e.options.workDelay),!0})),t.highlightFrontier=n.line,t.modeFrontier=Math.max(t.modeFrontier,n.line),i.length&&ei(e,(function(){for(var t=0;t=r.viewFrom&&t.visible.to<=r.viewTo&&(null==r.updateLineNumbers||r.updateLineNumbers>=r.viewTo)&&r.renderedView==r.view&&0==mn(e))return!1;hi(e)&&(pn(e),t.dims=ln(e));var i=n.first+n.size,o=Math.max(t.visible.from-e.options.viewportMargin,n.first),l=Math.min(i,t.visible.to+e.options.viewportMargin);r.viewFroml&&r.viewTo-l<20&&(l=Math.min(i,r.viewTo)),St&&(o=Bt(e.doc,o),l=Gt(e.doc,l));var s=o!=r.viewFrom||l!=r.viewTo||r.lastWrapHeight!=t.wrapperHeight||r.lastWrapWidth!=t.wrapperWidth;!function(e,t,r){var n=e.display;0==n.view.length||t>=n.viewTo||r<=n.viewFrom?(n.view=or(e,t,r),n.viewFrom=t):(n.viewFrom>t?n.view=or(e,t,n.viewFrom).concat(n.view):n.viewFromr&&(n.view=n.view.slice(0,fn(e,r)))),n.viewTo=r}(e,o,l),r.viewOffset=jt(Xe(e.doc,r.viewFrom)),e.display.mover.style.top=r.viewOffset+"px";var a=mn(e);if(!s&&0==a&&!t.force&&r.renderedView==r.view&&(null==r.updateLineNumbers||r.updateLineNumbers>=r.viewTo))return!1;var c=function(e){if(e.hasFocus())return null;var t=H();if(!t||!W(e.display.lineDiv,t))return null;var r={activeElt:t};if(window.getSelection){var n=window.getSelection();n.anchorNode&&n.extend&&W(e.display.lineDiv,n.anchorNode)&&(r.anchorNode=n.anchorNode,r.anchorOffset=n.anchorOffset,r.focusNode=n.focusNode,r.focusOffset=n.focusOffset)}return r}(e);return a>4&&(r.lineDiv.style.display="none"),function(e,t,r){var n=e.display,i=e.options.lineNumbers,o=n.lineDiv,l=o.firstChild;function s(t){var r=t.nextSibling;return u&&b&&e.display.currentWheelTarget==t?t.style.display="none":t.parentNode.removeChild(t),r}for(var a=n.view,c=n.viewFrom,f=0;f-1&&(h=!1),cr(e,d,c,r)),h&&(N(d.lineNumber),d.lineNumber.appendChild(document.createTextNode(et(e.options,c)))),l=d.node.nextSibling}else{var p=vr(e,d,c,r);o.insertBefore(p,l)}c+=d.size}for(;l;)l=s(l)}(e,r.updateLineNumbers,t.dims),a>4&&(r.lineDiv.style.display=""),r.renderedView=r.view,function(e){if(e&&e.activeElt&&e.activeElt!=H()&&(e.activeElt.focus(),e.anchorNode&&W(document.body,e.anchorNode)&&W(document.body,e.focusNode))){var t=window.getSelection(),r=document.createRange();r.setEnd(e.anchorNode,e.anchorOffset),r.collapse(!1),t.removeAllRanges(),t.addRange(r),t.extend(e.focusNode,e.focusOffset)}}(c),N(r.cursorDiv),N(r.selectionDiv),r.gutters.style.height=r.sizer.style.minHeight=0,s&&(r.lastWrapHeight=t.wrapperHeight,r.lastWrapWidth=t.wrapperWidth,ii(e,400)),r.updateLineNumbers=null,!0}function ai(e,t){for(var r=t.viewport,n=!0;(n&&e.options.lineWrapping&&t.oldDisplayWidth!=Tr(e)||(r&&null!=r.top&&(r={top:Math.min(e.doc.height+kr(e.display)-Nr(e),r.top)}),t.visible=On(e.display,e.doc,r),!(t.visible.from>=e.display.viewFrom&&t.visible.to<=e.display.viewTo)))&&si(e,t);n=!1){Tn(e);var i=Rn(e);vn(e),Un(e,i),fi(e,i),t.force=!1}t.signal(e,"update",e),e.display.viewFrom==e.display.reportedViewFrom&&e.display.viewTo==e.display.reportedViewTo||(t.signal(e,"viewportChange",e,e.display.viewFrom,e.display.viewTo),e.display.reportedViewFrom=e.display.viewFrom,e.display.reportedViewTo=e.display.viewTo)}function ui(e,t){var r=new li(e,t);if(si(e,r)){Tn(e),ai(e,r);var n=Rn(e);vn(e),Un(e,n),fi(e,n),r.finish()}}function ci(e){var t=e.gutters.offsetWidth;e.sizer.style.marginLeft=t+"px"}function fi(e,t){e.display.sizer.style.minHeight=t.docHeight+"px",e.display.heightForcer.style.top=t.docHeight+"px",e.display.gutters.style.height=t.docHeight+e.display.barHeight+Lr(e)+"px"}function di(e){var t=e.display,r=t.view;if(t.alignWidgets||t.gutters.firstChild&&e.options.fixedGutter){for(var n=sn(t)-t.scroller.scrollLeft+e.doc.scrollLeft,i=t.gutters.offsetWidth,o=n+"px",l=0;ls.clientWidth,c=s.scrollHeight>s.clientHeight;if(i&&a||o&&c){if(o&&b&&u)e:for(var f=t.target,h=l.view;f!=s;f=f.parentNode)for(var p=0;p=0&&rt(e,n.to())<=0)return r}return-1};var ki=function(e,t){this.anchor=e,this.head=t};function Mi(e,t,r){var n=e&&e.options.selectionsMayTouch,i=t[r];t.sort((function(e,t){return rt(e.from(),t.from())})),r=G(t,i);for(var o=1;o0:a>=0){var u=lt(s.from(),l.from()),c=ot(s.to(),l.to()),f=s.empty()?l.from()==l.head:s.from()==s.head;o<=r&&--r,t.splice(--o,2,new ki(f?c:u,f?u:c))}}return new Si(t,r)}function Li(e,t){return new Si([new ki(e,t||e)],0)}function Ti(e){return e.text?tt(e.from.line+e.text.length-1,q(e.text).length+(1==e.text.length?e.from.ch:0)):e.to}function Ni(e,t){if(rt(e,t.from)<0)return e;if(rt(e,t.to)<=0)return Ti(t);var r=e.line+t.text.length-(t.to.line-t.from.line)-1,n=e.ch;return e.line==t.to.line&&(n+=Ti(t).ch-t.to.ch),tt(r,n)}function Oi(e,t){for(var r=[],n=0;n1&&e.remove(s.line+1,p-1),e.insert(s.line+1,v)}ar(e,"change",e,t)}function Fi(e,t,r){!function e(n,i,o){if(n.linked)for(var l=0;ls-(e.cm?e.cm.options.historyEventDelay:500)||"*"==t.origin.charAt(0)))&&(o=function(e,t){return t?(Bi(e.done),q(e.done)):e.done.length&&!q(e.done).ranges?q(e.done):e.done.length>1&&!e.done[e.done.length-2].ranges?(e.done.pop(),q(e.done)):void 0}(i,i.lastOp==n)))l=q(o.changes),0==rt(t.from,t.to)&&0==rt(t.from,l.to)?l.to=Ti(t):o.changes.push(Ri(e,t));else{var a=q(i.done);for(a&&a.ranges||Vi(e.sel,i.done),o={changes:[Ri(e,t)],generation:i.generation},i.done.push(o);i.done.length>i.undoDepth;)i.done.shift(),i.done[0].ranges||i.done.shift()}i.done.push(r),i.generation=++i.maxGeneration,i.lastModTime=i.lastSelTime=s,i.lastOp=i.lastSelOp=n,i.lastOrigin=i.lastSelOrigin=t.origin,l||ge(e,"historyAdded")}function Ui(e,t,r,n){var i=e.history,o=n&&n.origin;r==i.lastSelOp||o&&i.lastSelOrigin==o&&(i.lastModTime==i.lastSelTime&&i.lastOrigin==o||function(e,t,r,n){var i=t.charAt(0);return"*"==i||"+"==i&&r.ranges.length==n.ranges.length&&r.somethingSelected()==n.somethingSelected()&&new Date-e.history.lastSelTime<=(e.cm?e.cm.options.historyEventDelay:500)}(e,o,q(i.done),t))?i.done[i.done.length-1]=t:Vi(t,i.done),i.lastSelTime=+new Date,i.lastSelOrigin=o,i.lastSelOp=r,n&&!1!==n.clearRedo&&Bi(i.undone)}function Vi(e,t){var r=q(t);r&&r.ranges&&r.equals(e)||t.push(e)}function ji(e,t,r,n){var i=t["spans_"+e.id],o=0;e.iter(Math.max(e.first,r),Math.min(e.first+e.size,n),(function(r){r.markedSpans&&((i||(i=t["spans_"+e.id]={}))[o]=r.markedSpans),++o}))}function Ki(e){if(!e)return null;for(var t,r=0;r-1&&(q(s)[f]=u[f],delete u[f])}}}return n}function Yi(e,t,r,n){if(n){var i=e.anchor;if(r){var o=rt(t,i)<0;o!=rt(r,i)<0?(i=t,t=r):o!=rt(t,r)<0&&(t=r)}return new ki(i,t)}return new ki(r||t,t)}function qi(e,t,r,n,i){null==i&&(i=e.cm&&(e.cm.display.shift||e.extend)),eo(e,new Si([Yi(e.sel.primary(),t,r,i)],0),n)}function $i(e,t,r){for(var n=[],i=e.cm&&(e.cm.display.shift||e.extend),o=0;o=t.ch:s.to>t.ch))){if(i&&(ge(a,"beforeCursorEnter"),a.explicitlyCleared)){if(o.markedSpans){--l;continue}break}if(!a.atomic)continue;if(r){var f=a.find(n<0?1:-1),d=void 0;if((n<0?c:u)&&(f=so(e,f,-n,f&&f.line==t.line?o:null)),f&&f.line==t.line&&(d=rt(f,r))&&(n<0?d<0:d>0))return oo(e,f,t,n,i)}var h=a.find(n<0?-1:1);return(n<0?u:c)&&(h=so(e,h,n,h.line==t.line?o:null)),h?oo(e,h,t,n,i):null}}return t}function lo(e,t,r,n,i){var o=n||1,l=oo(e,t,r,o,i)||!i&&oo(e,t,r,o,!0)||oo(e,t,r,-o,i)||!i&&oo(e,t,r,-o,!0);return l||(e.cantEdit=!0,tt(e.first,0))}function so(e,t,r,n){return r<0&&0==t.ch?t.line>e.first?at(e,tt(t.line-1)):null:r>0&&t.ch==(n||Xe(e,t.line)).text.length?t.line0)){var c=[a,1],f=rt(u.from,s.from),d=rt(u.to,s.to);(f<0||!l.inclusiveLeft&&!f)&&c.push({from:u.from,to:s.from}),(d>0||!l.inclusiveRight&&!d)&&c.push({from:s.to,to:u.to}),i.splice.apply(i,c),a+=c.length-3}}return i}(e,t.from,t.to);if(n)for(var i=n.length-1;i>=0;--i)fo(e,{from:n[i].from,to:n[i].to,text:i?[""]:t.text,origin:t.origin});else fo(e,t)}}function fo(e,t){if(1!=t.text.length||""!=t.text[0]||0!=rt(t.from,t.to)){var r=Oi(e,t);Gi(e,t,r,e.cm?e.cm.curOp.id:NaN),go(e,t,r,Tt(e,t));var n=[];Fi(e,(function(e,r){r||-1!=G(n,e.history)||(bo(e.history,t),n.push(e.history)),go(e,t,null,Tt(e,t))}))}}function ho(e,t,r){var n=e.cm&&e.cm.state.suppressEdits;if(!n||r){for(var i,o=e.history,l=e.sel,s="undo"==t?o.done:o.undone,a="undo"==t?o.undone:o.done,u=0;u=0;--h){var p=d(h);if(p)return p.v}}}}function po(e,t){if(0!=t&&(e.first+=t,e.sel=new Si($(e.sel.ranges,(function(e){return new ki(tt(e.anchor.line+t,e.anchor.ch),tt(e.head.line+t,e.head.ch))})),e.sel.primIndex),e.cm)){dn(e.cm,e.first,e.first-t,t);for(var r=e.cm.display,n=r.viewFrom;ne.lastLine())){if(t.from.lineo&&(t={from:t.from,to:tt(o,Xe(e,o).text.length),text:[t.text[0]],origin:t.origin}),t.removed=Ye(e,t.from,t.to),r||(r=Oi(e,t)),e.cm?function(e,t,r){var n=e.doc,i=e.display,o=t.from,l=t.to,s=!1,a=o.line;e.options.lineWrapping||(a=Ze(Rt(Xe(n,o.line))),n.iter(a,l.line+1,(function(e){if(e==i.maxLine)return s=!0,!0}))),n.sel.contains(t.from,t.to)>-1&&ve(e),zi(n,t,r,an(e)),e.options.lineWrapping||(n.iter(a,o.line+t.text.length,(function(e){var t=Kt(e);t>i.maxLineLength&&(i.maxLine=e,i.maxLineLength=t,i.maxLineChanged=!0,s=!1)})),s&&(e.curOp.updateMaxLine=!0)),function(e,t){if(e.modeFrontier=Math.min(e.modeFrontier,t),!(e.highlightFrontierr;n--){var i=Xe(e,n).stateAfter;if(i&&(!(i instanceof ct)||n+i.lookAhead1||!(this.children[0]instanceof xo))){var a=[];this.collapse(a),this.children=[new xo(a)],this.children[0].parent=this}},collapse:function(e){for(var t=0;t50){for(var s=o.lines.length%25+25,a=s;a10);e.parent.maybeSpill()}},iterN:function(e,t,r){for(var n=0;n0||0==l&&!1!==o.clearWhenEmpty)return o;if(o.replacedWith&&(o.collapsed=!0,o.widgetNode=D("span",[o.replacedWith],"CodeMirror-widget"),n.handleMouseEvents||o.widgetNode.setAttribute("cm-ignore-events","true"),n.insertLeft&&(o.widgetNode.insertLeft=!0)),o.collapsed){if(It(e,t.line,t,r,o)||t.line!=r.line&&It(e,r.line,t,r,o))throw new Error("Inserting collapsed marker partially overlapping an existing one");St=!0}o.addToHistory&&Gi(e,{from:t,to:r,origin:"markText"},e.sel,NaN);var s,a=t.line,u=e.cm;if(e.iter(a,r.line+1,(function(e){u&&o.collapsed&&!u.options.lineWrapping&&Rt(e)==u.display.maxLine&&(s=!0),o.collapsed&&a!=t.line&&$e(e,0),function(e,t){e.markedSpans=e.markedSpans?e.markedSpans.concat([t]):[t],t.marker.attachLine(e)}(e,new kt(o,a==t.line?t.ch:null,a==r.line?r.ch:null)),++a})),o.collapsed&&e.iter(t.line,r.line+1,(function(t){Ut(e,t)&&$e(t,0)})),o.clearOnEnter&&de(o,"beforeCursorEnter",(function(){return o.clear()})),o.readOnly&&(Ct=!0,(e.history.done.length||e.history.undone.length)&&e.clearHistory()),o.collapsed&&(o.id=++Mo,o.atomic=!0),u){if(s&&(u.curOp.updateMaxLine=!0),o.collapsed)dn(u,t.line,r.line+1);else if(o.className||o.startStyle||o.endStyle||o.css||o.attributes||o.title)for(var c=t.line;c<=r.line;c++)hn(u,c,"text");o.atomic&&no(u.doc),ar(u,"markerAdded",u,o)}return o}Lo.prototype.clear=function(){var e=this;if(!this.explicitlyCleared){var t=this.doc.cm,r=t&&!t.curOp;if(r&&Xn(t),ye(this,"clear")){var n=this.find();n&&ar(this,"clear",n.from,n.to)}for(var i=null,o=null,l=0;lt.display.maxLineLength&&(t.display.maxLine=c,t.display.maxLineLength=f,t.display.maxLineChanged=!0)}null!=i&&t&&this.collapsed&&dn(t,i,o+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,t&&no(t.doc)),t&&ar(t,"markerCleared",t,this,i,o),r&&Yn(t),this.parent&&this.parent.clear()}},Lo.prototype.find=function(e,t){var r,n;null==e&&"bookmark"==this.type&&(e=1);for(var i=0;i=0;a--)co(this,n[a]);s?Ji(this,s):this.cm&&Wn(this.cm)})),undo:ni((function(){ho(this,"undo")})),redo:ni((function(){ho(this,"redo")})),undoSelection:ni((function(){ho(this,"undo",!0)})),redoSelection:ni((function(){ho(this,"redo",!0)})),setExtending:function(e){this.extend=e},getExtending:function(){return this.extend},historySize:function(){for(var e=this.history,t=0,r=0,n=0;n=e.ch)&&t.push(i.marker.parent||i.marker)}return t},findMarks:function(e,t,r){e=at(this,e),t=at(this,t);var n=[],i=e.line;return this.iter(e.line,t.line+1,(function(o){var l=o.markedSpans;if(l)for(var s=0;s=a.to||null==a.from&&i!=e.line||null!=a.from&&i==t.line&&a.from>=t.ch||r&&!r(a.marker)||n.push(a.marker.parent||a.marker)}++i})),n},getAllMarks:function(){var e=[];return this.iter((function(t){var r=t.markedSpans;if(r)for(var n=0;ne)return t=e,!0;e-=o,++r})),at(this,tt(r,t))},indexFromPos:function(e){var t=(e=at(this,e)).ch;if(e.linet&&(t=e.from),null!=e.to&&e.to-1)return t.state.draggingText(e),void setTimeout((function(){return t.display.input.focus()}),20);try{var c=e.dataTransfer.getData("Text");if(c){var f;if(t.state.draggingText&&!t.state.draggingText.copy&&(f=t.listSelections()),to(t.doc,Li(r,r)),f)for(var d=0;d=0;t--)mo(e.doc,"",n[t].from,n[t].to,"+delete");Wn(e)}))}function Jo(e,t,r){var n=oe(e.text,t+r,r);return n<0||n>e.text.length?null:n}function el(e,t,r){var n=Jo(e,t.ch,r);return null==n?null:new tt(t.line,n,r<0?"after":"before")}function tl(e,t,r,n,i){if(e){var o=ce(r,t.doc.direction);if(o){var l,s=i<0?q(o):o[0],a=i<0==(1==s.level)?"after":"before";if(s.level>0||"rtl"==t.doc.direction){var u=Wr(t,r);l=i<0?r.text.length-1:0;var c=Hr(t,u,l).top;l=le((function(e){return Hr(t,u,e).top==c}),i<0==(1==s.level)?s.from:s.to-1,l),"before"==a&&(l=Jo(r,l,1))}else l=i<0?s.to:s.from;return new tt(n,l,a)}}return new tt(n,i<0?r.text.length:0,i<0?"before":"after")}jo.basic={Left:"goCharLeft",Right:"goCharRight",Up:"goLineUp",Down:"goLineDown",End:"goLineEnd",Home:"goLineStartSmart",PageUp:"goPageUp",PageDown:"goPageDown",Delete:"delCharAfter",Backspace:"delCharBefore","Shift-Backspace":"delCharBefore",Tab:"defaultTab","Shift-Tab":"indentAuto",Enter:"newlineAndIndent",Insert:"toggleOverwrite",Esc:"singleSelection"},jo.pcDefault={"Ctrl-A":"selectAll","Ctrl-D":"deleteLine","Ctrl-Z":"undo","Shift-Ctrl-Z":"redo","Ctrl-Y":"redo","Ctrl-Home":"goDocStart","Ctrl-End":"goDocEnd","Ctrl-Up":"goLineUp","Ctrl-Down":"goLineDown","Ctrl-Left":"goGroupLeft","Ctrl-Right":"goGroupRight","Alt-Left":"goLineStart","Alt-Right":"goLineEnd","Ctrl-Backspace":"delGroupBefore","Ctrl-Delete":"delGroupAfter","Ctrl-S":"save","Ctrl-F":"find","Ctrl-G":"findNext","Shift-Ctrl-G":"findPrev","Shift-Ctrl-F":"replace","Shift-Ctrl-R":"replaceAll","Ctrl-[":"indentLess","Ctrl-]":"indentMore","Ctrl-U":"undoSelection","Shift-Ctrl-U":"redoSelection","Alt-U":"redoSelection",fallthrough:"basic"},jo.emacsy={"Ctrl-F":"goCharRight","Ctrl-B":"goCharLeft","Ctrl-P":"goLineUp","Ctrl-N":"goLineDown","Alt-F":"goWordRight","Alt-B":"goWordLeft","Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd","Ctrl-V":"goPageDown","Shift-Ctrl-V":"goPageUp","Ctrl-D":"delCharAfter","Ctrl-H":"delCharBefore","Alt-D":"delWordAfter","Alt-Backspace":"delWordBefore","Ctrl-K":"killLine","Ctrl-T":"transposeChars","Ctrl-O":"openLine"},jo.macDefault={"Cmd-A":"selectAll","Cmd-D":"deleteLine","Cmd-Z":"undo","Shift-Cmd-Z":"redo","Cmd-Y":"redo","Cmd-Home":"goDocStart","Cmd-Up":"goDocStart","Cmd-End":"goDocEnd","Cmd-Down":"goDocEnd","Alt-Left":"goGroupLeft","Alt-Right":"goGroupRight","Cmd-Left":"goLineLeft","Cmd-Right":"goLineRight","Alt-Backspace":"delGroupBefore","Ctrl-Alt-Backspace":"delGroupAfter","Alt-Delete":"delGroupAfter","Cmd-S":"save","Cmd-F":"find","Cmd-G":"findNext","Shift-Cmd-G":"findPrev","Cmd-Alt-F":"replace","Shift-Cmd-Alt-F":"replaceAll","Cmd-[":"indentLess","Cmd-]":"indentMore","Cmd-Backspace":"delWrappedLineLeft","Cmd-Delete":"delWrappedLineRight","Cmd-U":"undoSelection","Shift-Cmd-U":"redoSelection","Ctrl-Up":"goDocStart","Ctrl-Down":"goDocEnd",fallthrough:["basic","emacsy"]},jo.default=b?jo.macDefault:jo.pcDefault;var rl={selectAll:ao,singleSelection:function(e){return e.setSelection(e.getCursor("anchor"),e.getCursor("head"),V)},killLine:function(e){return Qo(e,(function(t){if(t.empty()){var r=Xe(e.doc,t.head.line).text.length;return t.head.ch==r&&t.head.line0)i=new tt(i.line,i.ch+1),e.replaceRange(o.charAt(i.ch-1)+o.charAt(i.ch-2),tt(i.line,i.ch-2),i,"+transpose");else if(i.line>e.doc.first){var l=Xe(e.doc,i.line-1).text;l&&(i=new tt(i.line,1),e.replaceRange(o.charAt(0)+e.doc.lineSeparator()+l.charAt(l.length-1),tt(i.line-1,l.length-1),i,"+transpose"))}r.push(new ki(i,i))}e.setSelections(r)}))},newlineAndIndent:function(e){return ei(e,(function(){for(var t=e.listSelections(),r=t.length-1;r>=0;r--)e.replaceRange(e.doc.lineSeparator(),t[r].anchor,t[r].head,"+input");t=e.listSelections();for(var n=0;n-1&&(rt((i=l.ranges[i]).from(),t)<0||t.xRel>0)&&(rt(i.to(),t)>0||t.xRel<0)?function(e,t,r,n){var i=e.display,o=!1,l=ti(e,(function(t){u&&(i.scroller.draggable=!1),e.state.draggingText=!1,pe(i.wrapper.ownerDocument,"mouseup",l),pe(i.wrapper.ownerDocument,"mousemove",c),pe(i.scroller,"dragstart",f),pe(i.scroller,"drop",l),o||(we(t),n.addNew||qi(e.doc,r,null,null,n.extend),u||s&&9==a?setTimeout((function(){i.wrapper.ownerDocument.body.focus(),i.input.focus()}),20):i.input.focus())})),c=function(e){o=o||Math.abs(t.clientX-e.clientX)+Math.abs(t.clientY-e.clientY)>=10},f=function(){return o=!0};u&&(i.scroller.draggable=!0),e.state.draggingText=l,l.copy=!n.moveOnDrag,i.scroller.dragDrop&&i.scroller.dragDrop(),de(i.wrapper.ownerDocument,"mouseup",l),de(i.wrapper.ownerDocument,"mousemove",c),de(i.scroller,"dragstart",f),de(i.scroller,"drop",l),kn(e),setTimeout((function(){return i.input.focus()}),20)}(e,n,t,o):function(e,t,r,n){var i=e.display,o=e.doc;we(t);var l,s,a=o.sel,u=a.ranges;if(n.addNew&&!n.extend?(s=o.sel.contains(r),l=s>-1?u[s]:new ki(r,r)):(l=o.sel.primary(),s=o.sel.primIndex),"rectangle"==n.unit)n.addNew||(l=new ki(r,r)),r=cn(e,t,!0,!0),s=-1;else{var c=yl(e,r,n.unit);l=n.extend?Yi(l,c.anchor,c.head,n.extend):c}n.addNew?-1==s?(s=u.length,eo(o,Mi(e,u.concat([l]),s),{scroll:!1,origin:"*mouse"})):u.length>1&&u[s].empty()&&"char"==n.unit&&!n.extend?(eo(o,Mi(e,u.slice(0,s).concat(u.slice(s+1)),0),{scroll:!1,origin:"*mouse"}),a=o.sel):Zi(o,s,l,j):(s=0,eo(o,new Si([l],0),j),a=o.sel);var f=r;function d(t){if(0!=rt(f,t))if(f=t,"rectangle"==n.unit){for(var i=[],u=e.options.tabSize,c=R(Xe(o,r.line).text,r.ch,u),d=R(Xe(o,t.line).text,t.ch,u),h=Math.min(c,d),p=Math.max(c,d),g=Math.min(r.line,t.line),m=Math.min(e.lastLine(),Math.max(r.line,t.line));g<=m;g++){var v=Xe(o,g).text,y=_(v,h,u);h==p?i.push(new ki(tt(g,y),tt(g,y))):v.length>y&&i.push(new ki(tt(g,y),tt(g,_(v,p,u))))}i.length||i.push(new ki(r,r)),eo(o,Mi(e,a.ranges.slice(0,s).concat(i),s),{origin:"*mouse",scroll:!1}),e.scrollIntoView(t)}else{var b,w=l,x=yl(e,t,n.unit),C=w.anchor;rt(x.anchor,C)>0?(b=x.head,C=lt(w.from(),x.anchor)):(b=x.anchor,C=ot(w.to(),x.head));var S=a.ranges.slice(0);S[s]=function(e,t){var r=t.anchor,n=t.head,i=Xe(e.doc,r.line);if(0==rt(r,n)&&r.sticky==n.sticky)return t;var o=ce(i);if(!o)return t;var l=ae(o,r.ch,r.sticky),s=o[l];if(s.from!=r.ch&&s.to!=r.ch)return t;var a,u=l+(s.from==r.ch==(1!=s.level)?0:1);if(0==u||u==o.length)return t;if(n.line!=r.line)a=(n.line-r.line)*("ltr"==e.doc.direction?1:-1)>0;else{var c=ae(o,n.ch,n.sticky),f=c-l||(n.ch-r.ch)*(1==s.level?-1:1);a=c==u-1||c==u?f<0:f>0}var d=o[u+(a?-1:0)],h=a==(1==d.level),p=h?d.from:d.to,g=h?"after":"before";return r.ch==p&&r.sticky==g?t:new ki(new tt(r.line,p,g),n)}(e,new ki(at(o,C),b)),eo(o,Mi(e,S,s),j)}}var h=i.wrapper.getBoundingClientRect(),p=0;function g(t){var r=++p,l=cn(e,t,!0,"rectangle"==n.unit);if(l)if(0!=rt(l,f)){e.curOp.focus=H(),d(l);var s=On(i,o);(l.line>=s.to||l.lineh.bottom?20:0;a&&setTimeout(ti(e,(function(){p==r&&(i.scroller.scrollTop+=a,g(t))})),50)}}function m(t){e.state.selectingText=!1,p=1/0,t&&(we(t),i.input.focus()),pe(i.wrapper.ownerDocument,"mousemove",v),pe(i.wrapper.ownerDocument,"mouseup",y),o.history.lastSelOrigin=null}var v=ti(e,(function(e){0!==e.buttons&&Me(e)?g(e):m(e)})),y=ti(e,m);e.state.selectingText=y,de(i.wrapper.ownerDocument,"mousemove",v),de(i.wrapper.ownerDocument,"mouseup",y)}(e,n,t,o)}(t,n,o,e):ke(e)==r.scroller&&we(e):2==i?(n&&qi(t.doc,n),setTimeout((function(){return r.input.focus()}),20)):3==i&&(k?t.display.input.onContextMenu(e):kn(t)))}}function yl(e,t,r){if("char"==r)return new ki(t,t);if("word"==r)return e.findWordAt(t);if("line"==r)return new ki(tt(t.line,0),at(e.doc,tt(t.line+1,0)));var n=r(e,t);return new ki(n.from,n.to)}function bl(e,t,r,n){var i,o;if(t.touches)i=t.touches[0].clientX,o=t.touches[0].clientY;else try{i=t.clientX,o=t.clientY}catch(t){return!1}if(i>=Math.floor(e.display.gutters.getBoundingClientRect().right))return!1;n&&we(t);var l=e.display,s=l.lineDiv.getBoundingClientRect();if(o>s.bottom||!ye(e,r))return Ce(t);o-=s.top-l.viewOffset;for(var a=0;a=i)return ge(e,r,e,Qe(e.doc,o),e.display.gutterSpecs[a].className,t),Ce(t)}}function wl(e,t){return bl(e,t,"gutterClick",!0)}function xl(e,t){Cr(e.display,t)||function(e,t){return!!ye(e,"gutterContextMenu")&&bl(e,t,"gutterContextMenu",!1)}(e,t)||me(e,t,"contextmenu")||k||e.display.input.onContextMenu(t)}function Cl(e){e.display.wrapper.className=e.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+e.options.theme.replace(/(^|\s)\s*/g," cm-s-"),Br(e)}ml.prototype.compare=function(e,t,r){return this.time+400>e&&0==rt(t,this.pos)&&r==this.button};var Sl={toString:function(){return"CodeMirror.Init"}},kl={},Ml={};function Ll(e,t,r){if(!t!=!(r&&r!=Sl)){var n=e.display.dragFunctions,i=t?de:pe;i(e.display.scroller,"dragstart",n.start),i(e.display.scroller,"dragenter",n.enter),i(e.display.scroller,"dragover",n.over),i(e.display.scroller,"dragleave",n.leave),i(e.display.scroller,"drop",n.drop)}}function Tl(e){e.options.lineWrapping?(z(e.display.wrapper,"CodeMirror-wrap"),e.display.sizer.style.minWidth="",e.display.sizerWidth=null):(T(e.display.wrapper,"CodeMirror-wrap"),_t(e)),un(e),dn(e),Br(e),setTimeout((function(){return Un(e)}),100)}function Nl(e,t){var r=this;if(!(this instanceof Nl))return new Nl(e,t);this.options=t=t?I(t):{},I(kl,t,!1);var n=t.value;"string"==typeof n?n=new Wo(n,t.mode,null,t.lineSeparator,t.direction):t.mode&&(n.modeOption=t.mode),this.doc=n;var i=new Nl.inputStyles[t.inputStyle](this),o=this.display=new vi(e,n,i,t);for(var l in o.wrapper.CodeMirror=this,Cl(this),t.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),Kn(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:-1,cutIncoming:-1,selectingText:!1,draggingText:!1,highlight:new B,keySeq:null,specialChars:null},t.autofocus&&!y&&o.input.focus(),s&&a<11&&setTimeout((function(){return r.display.input.reset(!0)}),20),function(e){var t=e.display;de(t.scroller,"mousedown",ti(e,vl)),de(t.scroller,"dblclick",s&&a<11?ti(e,(function(t){if(!me(e,t)){var r=cn(e,t);if(r&&!wl(e,t)&&!Cr(e.display,t)){we(t);var n=e.findWordAt(r);qi(e.doc,n.anchor,n.head)}}})):function(t){return me(e,t)||we(t)}),de(t.scroller,"contextmenu",(function(t){return xl(e,t)}));var r,n={end:0};function i(){t.activeTouch&&(r=setTimeout((function(){return t.activeTouch=null}),1e3),(n=t.activeTouch).end=+new Date)}function o(e){if(1!=e.touches.length)return!1;var t=e.touches[0];return t.radiusX<=1&&t.radiusY<=1}function l(e,t){if(null==t.left)return!0;var r=t.left-e.left,n=t.top-e.top;return r*r+n*n>400}de(t.scroller,"touchstart",(function(i){if(!me(e,i)&&!o(i)&&!wl(e,i)){t.input.ensurePolled(),clearTimeout(r);var l=+new Date;t.activeTouch={start:l,moved:!1,prev:l-n.end<=300?n:null},1==i.touches.length&&(t.activeTouch.left=i.touches[0].pageX,t.activeTouch.top=i.touches[0].pageY)}})),de(t.scroller,"touchmove",(function(){t.activeTouch&&(t.activeTouch.moved=!0)})),de(t.scroller,"touchend",(function(r){var n=t.activeTouch;if(n&&!Cr(t,r)&&null!=n.left&&!n.moved&&new Date-n.start<300){var o,s=e.coordsChar(t.activeTouch,"page");o=!n.prev||l(n,n.prev)?new ki(s,s):!n.prev.prev||l(n,n.prev.prev)?e.findWordAt(s):new ki(tt(s.line,0),at(e.doc,tt(s.line+1,0))),e.setSelection(o.anchor,o.head),e.focus(),we(r)}i()})),de(t.scroller,"touchcancel",i),de(t.scroller,"scroll",(function(){t.scroller.clientHeight&&(Pn(e,t.scroller.scrollTop),In(e,t.scroller.scrollLeft,!0),ge(e,"scroll",e))})),de(t.scroller,"mousewheel",(function(t){return Ci(e,t)})),de(t.scroller,"DOMMouseScroll",(function(t){return Ci(e,t)})),de(t.wrapper,"scroll",(function(){return t.wrapper.scrollTop=t.wrapper.scrollLeft=0})),t.dragFunctions={enter:function(t){me(e,t)||Se(t)},over:function(t){me(e,t)||(function(e,t){var r=cn(e,t);if(r){var n=document.createDocumentFragment();bn(e,r,n),e.display.dragCursor||(e.display.dragCursor=A("div",null,"CodeMirror-cursors CodeMirror-dragcursors"),e.display.lineSpace.insertBefore(e.display.dragCursor,e.display.cursorDiv)),O(e.display.dragCursor,n)}}(e,t),Se(t))},start:function(t){return function(e,t){if(s&&(!e.state.draggingText||+new Date-Ho<100))Se(t);else if(!me(e,t)&&!Cr(e.display,t)&&(t.dataTransfer.setData("Text",e.getSelection()),t.dataTransfer.effectAllowed="copyMove",t.dataTransfer.setDragImage&&!h)){var r=A("img",null,null,"position: fixed; left: 0; top: 0;");r.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",d&&(r.width=r.height=1,e.display.wrapper.appendChild(r),r._top=r.offsetTop),t.dataTransfer.setDragImage(r,0,0),d&&r.parentNode.removeChild(r)}}(e,t)},drop:ti(e,zo),leave:function(t){me(e,t)||Fo(e)}};var u=t.input.getField();de(u,"keyup",(function(t){return dl.call(e,t)})),de(u,"keydown",ti(e,fl)),de(u,"keypress",ti(e,hl)),de(u,"focus",(function(t){return Mn(e,t)})),de(u,"blur",(function(t){return Ln(e,t)}))}(this),Io(),Xn(this),this.curOp.forceUpdate=!0,Pi(this,n),t.autofocus&&!y||this.hasFocus()?setTimeout(E(Mn,this),20):Ln(this),Ml)Ml.hasOwnProperty(l)&&Ml[l](r,t[l],Sl);hi(this),t.finishInit&&t.finishInit(this);for(var c=0;c150)){if(!n)return;r="prev"}}else u=0,r="not";"prev"==r?u=t>o.first?R(Xe(o,t-1).text,null,l):0:"add"==r?u=a+e.options.indentUnit:"subtract"==r?u=a-e.options.indentUnit:"number"==typeof r&&(u=a+r),u=Math.max(0,u);var f="",d=0;if(e.options.indentWithTabs)for(var h=Math.floor(u/l);h;--h)d+=l,f+="\t";if(dl,a=We(t),u=null;if(s&&n.ranges.length>1)if(Dl&&Dl.text.join("\n")==t){if(n.ranges.length%Dl.text.length==0){u=[];for(var c=0;c=0;d--){var h=n.ranges[d],p=h.from(),g=h.to();h.empty()&&(r&&r>0?p=tt(p.line,p.ch-r):e.state.overwrite&&!s?g=tt(g.line,Math.min(Xe(o,g.line).text.length,g.ch+q(a).length)):s&&Dl&&Dl.lineWise&&Dl.text.join("\n")==t&&(p=g=tt(p.line,0)));var m={from:p,to:g,text:u?u[d%u.length]:a,origin:i||(s?"paste":e.state.cutIncoming>l?"cut":"+input")};co(e.doc,m),ar(e,"inputRead",e,m)}t&&!s&&Fl(e,t),Wn(e),e.curOp.updateInput<2&&(e.curOp.updateInput=f),e.curOp.typing=!0,e.state.pasteIncoming=e.state.cutIncoming=-1}function zl(e,t){var r=e.clipboardData&&e.clipboardData.getData("Text");if(r)return e.preventDefault(),t.isReadOnly()||t.options.disableInput||ei(t,(function(){return Hl(t,r,0,null,"paste")})),!0}function Fl(e,t){if(e.options.electricChars&&e.options.smartIndent)for(var r=e.doc.sel,n=r.ranges.length-1;n>=0;n--){var i=r.ranges[n];if(!(i.head.ch>100||n&&r.ranges[n-1].head.line==i.head.line)){var o=e.getModeAt(i.head),l=!1;if(o.electricChars){for(var s=0;s-1){l=Al(e,i.head.line,"smart");break}}else o.electricInput&&o.electricInput.test(Xe(e.doc,i.head.line).text.slice(0,i.head.ch))&&(l=Al(e,i.head.line,"smart"));l&&ar(e,"electricInput",e,i.head.line)}}}function Pl(e){for(var t=[],r=[],n=0;n=t.text.length?(r.ch=t.text.length,r.sticky="before"):r.ch<=0&&(r.ch=0,r.sticky="after");var o=ae(i,r.ch,r.sticky),l=i[o];if("ltr"==e.doc.direction&&l.level%2==0&&(n>0?l.to>r.ch:l.from=l.from&&d>=c.begin)){var h=f?"before":"after";return new tt(r.line,d,h)}}var p=function(e,t,n){for(var o=function(e,t){return t?new tt(r.line,a(e,1),"before"):new tt(r.line,e,"after")};e>=0&&e0==(1!=l.level),u=s?n.begin:a(n.end,-1);if(l.from<=u&&u0?c.end:a(c.begin,-1);return null==m||n>0&&m==t.text.length||!(g=p(n>0?0:i.length-1,n,u(m)))?null:g}(e.cm,s,t,r):el(s,t,r))){if(n||(l=t.line+r)=e.first+e.size||(t=new tt(l,t.ch,t.sticky),!(s=Xe(e,l))))return!1;t=tl(i,e.cm,s,t.line,r)}else t=o;return!0}if("char"==n)a();else if("column"==n)a(!0);else if("word"==n||"group"==n)for(var u=null,c="group"==n,f=e.cm&&e.cm.getHelper(t,"wordChars"),d=!0;!(r<0)||a(!d);d=!1){var h=s.text.charAt(t.ch)||"\n",p=te(h,f)?"w":c&&"\n"==h?"n":!c||/\s/.test(h)?null:"p";if(!c||d||p||(p="s"),u&&u!=p){r<0&&(r=1,a(),t.sticky="after");break}if(p&&(u=p),r>0&&!a(!d))break}var g=lo(e,t,o,l,!0);return nt(o,g)&&(g.hitSide=!0),g}function Bl(e,t,r,n){var i,o,l=e.doc,s=t.left;if("page"==n){var a=Math.min(e.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight),u=Math.max(a-.5*nn(e.display),3);i=(r>0?t.bottom:t.top)+r*u}else"line"==n&&(i=r>0?t.bottom+3:t.top-3);for(;(o=$r(e,s,i)).outside;){if(r<0?i<=0:i>=l.height){o.hitSide=!0;break}i+=5*r}return o}var Gl=function(e){this.cm=e,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new B,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};function Ul(e,t){var r=Dr(e,t.line);if(!r||r.hidden)return null;var n=Xe(e.doc,t.line),i=Or(r,n,t.line),o=ce(n,e.doc.direction),l="left";o&&(l=ae(o,t.ch)%2?"right":"left");var s=Pr(i.map,t.ch,l);return s.offset="right"==s.collapse?s.end:s.start,s}function Vl(e,t){return t&&(e.bad=!0),e}function jl(e,t,r){var n;if(t==e.display.lineDiv){if(!(n=e.display.lineDiv.childNodes[r]))return Vl(e.clipPos(tt(e.display.viewTo-1)),!0);t=null,r=0}else for(n=t;;n=n.parentNode){if(!n||n==e.display.lineDiv)return null;if(n.parentNode&&n.parentNode==e.display.lineDiv)break}for(var i=0;i=t.display.viewTo||o.line=t.display.viewFrom&&Ul(t,i)||{node:a[0].measure.map[2],offset:0},c=o.linen.firstLine()&&(l=tt(l.line-1,Xe(n.doc,l.line-1).length)),s.ch==Xe(n.doc,s.line).text.length&&s.linei.viewTo-1)return!1;l.line==i.viewFrom||0==(e=fn(n,l.line))?(t=Ze(i.view[0].line),r=i.view[0].node):(t=Ze(i.view[e].line),r=i.view[e-1].node.nextSibling);var a,u,c=fn(n,s.line);if(c==i.view.length-1?(a=i.viewTo-1,u=i.lineDiv.lastChild):(a=Ze(i.view[c+1].line)-1,u=i.view[c+1].node.previousSibling),!r)return!1;for(var f=n.doc.splitLines(function(e,t,r,n,i){var o="",l=!1,s=e.doc.lineSeparator(),a=!1;function u(e){return function(t){return t.id==e}}function c(){l&&(o+=s,a&&(o+=s),l=a=!1)}function f(e){e&&(c(),o+=e)}function d(t){if(1==t.nodeType){var r=t.getAttribute("cm-text");if(r)return void f(r);var o,h=t.getAttribute("cm-marker");if(h){var p=e.findMarks(tt(n,0),tt(i+1,0),u(+h));return void(p.length&&(o=p[0].find(0))&&f(Ye(e.doc,o.from,o.to).join(s)))}if("false"==t.getAttribute("contenteditable"))return;var g=/^(pre|div|p|li|table|br)$/i.test(t.nodeName);if(!/^br$/i.test(t.nodeName)&&0==t.textContent.length)return;g&&c();for(var m=0;m1&&d.length>1;)if(q(f)==q(d))f.pop(),d.pop(),a--;else{if(f[0]!=d[0])break;f.shift(),d.shift(),t++}for(var h=0,p=0,g=f[0],m=d[0],v=Math.min(g.length,m.length);hl.ch&&y.charCodeAt(y.length-p-1)==b.charCodeAt(b.length-p-1);)h--,p++;f[f.length-1]=y.slice(0,y.length-p).replace(/^\u200b+/,""),f[0]=f[0].slice(h).replace(/\u200b+$/,"");var x=tt(t,h),C=tt(a,d.length?q(d).length-p:0);return f.length>1||f[0]||rt(x,C)?(mo(n.doc,f,x,C,"+input"),!0):void 0},Gl.prototype.ensurePolled=function(){this.forceCompositionEnd()},Gl.prototype.reset=function(){this.forceCompositionEnd()},Gl.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},Gl.prototype.readFromDOMSoon=function(){var e=this;null==this.readDOMTimeout&&(this.readDOMTimeout=setTimeout((function(){if(e.readDOMTimeout=null,e.composing){if(!e.composing.done)return;e.composing=null}e.updateFromDOM()}),80))},Gl.prototype.updateFromDOM=function(){var e=this;!this.cm.isReadOnly()&&this.pollContent()||ei(this.cm,(function(){return dn(e.cm)}))},Gl.prototype.setUneditable=function(e){e.contentEditable="false"},Gl.prototype.onKeyPress=function(e){0==e.charCode||this.composing||(e.preventDefault(),this.cm.isReadOnly()||ti(this.cm,Hl)(this.cm,String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),0))},Gl.prototype.readOnlyChanged=function(e){this.div.contentEditable=String("nocursor"!=e)},Gl.prototype.onContextMenu=function(){},Gl.prototype.resetPosition=function(){},Gl.prototype.needsContentAttribute=!0;var _l=function(e){this.cm=e,this.prevInput="",this.pollingFast=!1,this.polling=new B,this.hasSelection=!1,this.composing=null};_l.prototype.init=function(e){var t=this,r=this,n=this.cm;this.createField(e);var i=this.textarea;function o(e){if(!me(n,e)){if(n.somethingSelected())Wl({lineWise:!1,text:n.getSelections()});else{if(!n.options.lineWiseCopyCut)return;var t=Pl(n);Wl({lineWise:!0,text:t.text}),"cut"==e.type?n.setSelections(t.ranges,null,V):(r.prevInput="",i.value=t.text.join("\n"),P(i))}"cut"==e.type&&(n.state.cutIncoming=+new Date)}}e.wrapper.insertBefore(this.wrapper,e.wrapper.firstChild),m&&(i.style.width="0px"),de(i,"input",(function(){s&&a>=9&&t.hasSelection&&(t.hasSelection=null),r.poll()})),de(i,"paste",(function(e){me(n,e)||zl(e,n)||(n.state.pasteIncoming=+new Date,r.fastPoll())})),de(i,"cut",o),de(i,"copy",o),de(e.scroller,"paste",(function(t){if(!Cr(e,t)&&!me(n,t)){if(!i.dispatchEvent)return n.state.pasteIncoming=+new Date,void r.focus();var o=new Event("paste");o.clipboardData=t.clipboardData,i.dispatchEvent(o)}})),de(e.lineSpace,"selectstart",(function(t){Cr(e,t)||we(t)})),de(i,"compositionstart",(function(){var e=n.getCursor("from");r.composing&&r.composing.range.clear(),r.composing={start:e,range:n.markText(e,n.getCursor("to"),{className:"CodeMirror-composing"})}})),de(i,"compositionend",(function(){r.composing&&(r.poll(),r.composing.range.clear(),r.composing=null)}))},_l.prototype.createField=function(e){this.wrapper=Il(),this.textarea=this.wrapper.firstChild},_l.prototype.prepareSelection=function(){var e=this.cm,t=e.display,r=e.doc,n=yn(e);if(e.options.moveInputWithCursor){var i=Xr(e,r.sel.primary().head,"div"),o=t.wrapper.getBoundingClientRect(),l=t.lineDiv.getBoundingClientRect();n.teTop=Math.max(0,Math.min(t.wrapper.clientHeight-10,i.top+l.top-o.top)),n.teLeft=Math.max(0,Math.min(t.wrapper.clientWidth-10,i.left+l.left-o.left))}return n},_l.prototype.showSelection=function(e){var t=this.cm.display;O(t.cursorDiv,e.cursors),O(t.selectionDiv,e.selection),null!=e.teTop&&(this.wrapper.style.top=e.teTop+"px",this.wrapper.style.left=e.teLeft+"px")},_l.prototype.reset=function(e){if(!this.contextMenuPending&&!this.composing){var t=this.cm;if(t.somethingSelected()){this.prevInput="";var r=t.getSelection();this.textarea.value=r,t.state.focused&&P(this.textarea),s&&a>=9&&(this.hasSelection=r)}else e||(this.prevInput=this.textarea.value="",s&&a>=9&&(this.hasSelection=null))}},_l.prototype.getField=function(){return this.textarea},_l.prototype.supportsTouch=function(){return!1},_l.prototype.focus=function(){if("nocursor"!=this.cm.options.readOnly&&(!y||H()!=this.textarea))try{this.textarea.focus()}catch(De){}},_l.prototype.blur=function(){this.textarea.blur()},_l.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},_l.prototype.receivedFocus=function(){this.slowPoll()},_l.prototype.slowPoll=function(){var e=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,(function(){e.poll(),e.cm.state.focused&&e.slowPoll()}))},_l.prototype.fastPoll=function(){var e=!1,t=this;t.pollingFast=!0,t.polling.set(20,(function r(){t.poll()||e?(t.pollingFast=!1,t.slowPoll()):(e=!0,t.polling.set(60,r))}))},_l.prototype.poll=function(){var e=this,t=this.cm,r=this.textarea,n=this.prevInput;if(this.contextMenuPending||!t.state.focused||He(r)&&!n&&!this.composing||t.isReadOnly()||t.options.disableInput||t.state.keySeq)return!1;var i=r.value;if(i==n&&!t.somethingSelected())return!1;if(s&&a>=9&&this.hasSelection===i||b&&/[\uf700-\uf7ff]/.test(i))return t.display.input.reset(),!1;if(t.doc.sel==t.display.selForContextMenu){var o=i.charCodeAt(0);if(8203!=o||n||(n="​"),8666==o)return this.reset(),this.cm.execCommand("undo")}for(var l=0,u=Math.min(n.length,i.length);l1e3||i.indexOf("\n")>-1?r.value=e.prevInput="":e.prevInput=i,e.composing&&(e.composing.range.clear(),e.composing.range=t.markText(e.composing.start,t.getCursor("to"),{className:"CodeMirror-composing"}))})),!0},_l.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},_l.prototype.onKeyPress=function(){s&&a>=9&&(this.hasSelection=null),this.fastPoll()},_l.prototype.onContextMenu=function(e){var t=this,r=t.cm,n=r.display,i=t.textarea;t.contextMenuPending&&t.contextMenuPending();var o=cn(r,e),l=n.scroller.scrollTop;if(o&&!d){r.options.resetSelectionOnContextMenu&&-1==r.doc.sel.contains(o)&&ti(r,eo)(r.doc,Li(o),V);var c,f=i.style.cssText,h=t.wrapper.style.cssText,p=t.wrapper.offsetParent.getBoundingClientRect();t.wrapper.style.cssText="position: static",i.style.cssText="position: absolute; width: 30px; height: 30px;\n top: "+(e.clientY-p.top-5)+"px; left: "+(e.clientX-p.left-5)+"px;\n z-index: 1000; background: "+(s?"rgba(255, 255, 255, .05)":"transparent")+";\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);",u&&(c=window.scrollY),n.input.focus(),u&&window.scrollTo(null,c),n.input.reset(),r.somethingSelected()||(i.value=t.prevInput=" "),t.contextMenuPending=m,n.selForContextMenu=r.doc.sel,clearTimeout(n.detectingSelectAll),s&&a>=9&&g(),k?(Se(e),de(window,"mouseup",(function e(){pe(window,"mouseup",e),setTimeout(m,20)}))):setTimeout(m,50)}function g(){if(null!=i.selectionStart){var e=r.somethingSelected(),o="​"+(e?i.value:"");i.value="⇚",i.value=o,t.prevInput=e?"":"​",i.selectionStart=1,i.selectionEnd=o.length,n.selForContextMenu=r.doc.sel}}function m(){if(t.contextMenuPending==m&&(t.contextMenuPending=!1,t.wrapper.style.cssText=h,i.style.cssText=f,s&&a<9&&n.scrollbars.setScrollTop(n.scroller.scrollTop=l),null!=i.selectionStart)){(!s||s&&a<9)&&g();var e=0;n.detectingSelectAll=setTimeout((function o(){n.selForContextMenu==r.doc.sel&&0==i.selectionStart&&i.selectionEnd>0&&"​"==t.prevInput?ti(r,ao)(r):e++<10?n.detectingSelectAll=setTimeout(o,500):(n.selForContextMenu=null,n.input.reset())}),200)}}},_l.prototype.readOnlyChanged=function(e){e||this.reset(),this.textarea.disabled="nocursor"==e},_l.prototype.setUneditable=function(){},_l.prototype.needsContentAttribute=!1,function(e){var t=e.optionHandlers;function r(r,n,i,o){e.defaults[r]=n,i&&(t[r]=o?function(e,t,r){r!=Sl&&i(e,t,r)}:i)}e.defineOption=r,e.Init=Sl,r("value","",(function(e,t){return e.setValue(t)}),!0),r("mode",null,(function(e,t){e.doc.modeOption=t,Di(e)}),!0),r("indentUnit",2,Di,!0),r("indentWithTabs",!1),r("smartIndent",!0),r("tabSize",4,(function(e){Wi(e),Br(e),dn(e)}),!0),r("lineSeparator",null,(function(e,t){if(e.doc.lineSep=t,t){var r=[],n=e.doc.first;e.doc.iter((function(e){for(var i=0;;){var o=e.text.indexOf(t,i);if(-1==o)break;i=o+t.length,r.push(tt(n,o))}n++}));for(var i=r.length-1;i>=0;i--)mo(e.doc,t,r[i],tt(r[i].line,r[i].ch+t.length))}})),r("specialChars",/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b-\u200f\u2028\u2029\ufeff\ufff9-\ufffc]/g,(function(e,t,r){e.state.specialChars=new RegExp(t.source+(t.test("\t")?"":"|\t"),"g"),r!=Sl&&e.refresh()})),r("specialCharPlaceholder",Jt,(function(e){return e.refresh()}),!0),r("electricChars",!0),r("inputStyle",y?"contenteditable":"textarea",(function(){throw new Error("inputStyle can not (yet) be changed in a running editor")}),!0),r("spellcheck",!1,(function(e,t){return e.getInputField().spellcheck=t}),!0),r("autocorrect",!1,(function(e,t){return e.getInputField().autocorrect=t}),!0),r("autocapitalize",!1,(function(e,t){return e.getInputField().autocapitalize=t}),!0),r("rtlMoveVisually",!x),r("wholeLineUpdateBefore",!0),r("theme","default",(function(e){Cl(e),mi(e)}),!0),r("keyMap","default",(function(e,t,r){var n=Zo(t),i=r!=Sl&&Zo(r);i&&i.detach&&i.detach(e,n),n.attach&&n.attach(e,i||null)})),r("extraKeys",null),r("configureMouse",null),r("lineWrapping",!1,Tl,!0),r("gutters",[],(function(e,t){e.display.gutterSpecs=pi(t,e.options.lineNumbers),mi(e)}),!0),r("fixedGutter",!0,(function(e,t){e.display.gutters.style.left=t?sn(e.display)+"px":"0",e.refresh()}),!0),r("coverGutterNextToScrollbar",!1,(function(e){return Un(e)}),!0),r("scrollbarStyle","native",(function(e){Kn(e),Un(e),e.display.scrollbars.setScrollTop(e.doc.scrollTop),e.display.scrollbars.setScrollLeft(e.doc.scrollLeft)}),!0),r("lineNumbers",!1,(function(e,t){e.display.gutterSpecs=pi(e.options.gutters,t),mi(e)}),!0),r("firstLineNumber",1,mi,!0),r("lineNumberFormatter",(function(e){return e}),mi,!0),r("showCursorWhenSelecting",!1,vn,!0),r("resetSelectionOnContextMenu",!0),r("lineWiseCopyCut",!0),r("pasteLinesPerSelection",!0),r("selectionsMayTouch",!1),r("readOnly",!1,(function(e,t){"nocursor"==t&&(Ln(e),e.display.input.blur()),e.display.input.readOnlyChanged(t)})),r("disableInput",!1,(function(e,t){t||e.display.input.reset()}),!0),r("dragDrop",!0,Ll),r("allowDropFileTypes",null),r("cursorBlinkRate",530),r("cursorScrollMargin",0),r("cursorHeight",1,vn,!0),r("singleCursorHeightPerLine",!0,vn,!0),r("workTime",100),r("workDelay",100),r("flattenSpans",!0,Wi,!0),r("addModeClass",!1,Wi,!0),r("pollInterval",100),r("undoDepth",200,(function(e,t){return e.doc.history.undoDepth=t})),r("historyEventDelay",1250),r("viewportMargin",10,(function(e){return e.refresh()}),!0),r("maxHighlightLength",1e4,Wi,!0),r("moveInputWithCursor",!0,(function(e,t){t||e.display.input.resetPosition()})),r("tabindex",null,(function(e,t){return e.display.input.getField().tabIndex=t||""})),r("autofocus",null),r("direction","ltr",(function(e,t){return e.doc.setDirection(t)}),!0),r("phrases",null)}(Nl),function(e){var t=e.optionHandlers,r=e.helpers={};e.prototype={constructor:e,focus:function(){window.focus(),this.display.input.focus()},setOption:function(e,r){var n=this.options,i=n[e];n[e]==r&&"mode"!=e||(n[e]=r,t.hasOwnProperty(e)&&ti(this,t[e])(this,r,i),ge(this,"optionChange",this,e))},getOption:function(e){return this.options[e]},getDoc:function(){return this.doc},addKeyMap:function(e,t){this.state.keyMaps[t?"push":"unshift"](Zo(e))},removeKeyMap:function(e){for(var t=this.state.keyMaps,r=0;rn&&(Al(t,o.head.line,e,!0),n=o.head.line,i==t.doc.sel.primIndex&&Wn(t));else{var l=o.from(),s=o.to(),a=Math.max(n,l.line);n=Math.min(t.lastLine(),s.line-(s.ch?0:1))+1;for(var u=a;u0&&Zi(t.doc,i,new ki(l,c[i].to()),V)}}})),getTokenAt:function(e,t){return bt(this,e,t)},getLineTokens:function(e,t){return bt(this,tt(e),t,!0)},getTokenTypeAt:function(e){e=at(this.doc,e);var t,r=ht(this,Xe(this.doc,e.line)),n=0,i=(r.length-1)/2,o=e.ch;if(0==o)t=r[2];else for(;;){var l=n+i>>1;if((l?r[2*l-1]:0)>=o)i=l;else{if(!(r[2*l+1]o&&(e=o,i=!0),n=Xe(this.doc,e)}else n=e;return jr(this,n,{top:0,left:0},t||"page",r||i).top+(i?this.doc.height-jt(n):0)},defaultTextHeight:function(){return nn(this.display)},defaultCharWidth:function(){return on(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(e,t,r,n,i){var o,l,s,a=this.display,u=(e=Xr(this,at(this.doc,e))).bottom,c=e.left;if(t.style.position="absolute",t.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(t),a.sizer.appendChild(t),"over"==n)u=e.top;else if("above"==n||"near"==n){var f=Math.max(a.wrapper.clientHeight,this.doc.height),d=Math.max(a.sizer.clientWidth,a.lineSpace.clientWidth);("above"==n||e.bottom+t.offsetHeight>f)&&e.top>t.offsetHeight?u=e.top-t.offsetHeight:e.bottom+t.offsetHeight<=f&&(u=e.bottom),c+t.offsetWidth>d&&(c=d-t.offsetWidth)}t.style.top=u+"px",t.style.left=t.style.right="","right"==i?(c=a.sizer.clientWidth-t.offsetWidth,t.style.right="0px"):("left"==i?c=0:"middle"==i&&(c=(a.sizer.clientWidth-t.offsetWidth)/2),t.style.left=c+"px"),r&&(o=this,l={left:c,top:u,right:c+t.offsetWidth,bottom:u+t.offsetHeight},null!=(s=An(o,l)).scrollTop&&Pn(o,s.scrollTop),null!=s.scrollLeft&&In(o,s.scrollLeft))},triggerOnKeyDown:ri(fl),triggerOnKeyPress:ri(hl),triggerOnKeyUp:dl,triggerOnMouseDown:ri(vl),execCommand:function(e){if(rl.hasOwnProperty(e))return rl[e].call(null,this)},triggerElectric:ri((function(e){Fl(this,e)})),findPosH:function(e,t,r,n){var i=1;t<0&&(i=-1,t=-t);for(var o=at(this.doc,e),l=0;l0&&l(t.charAt(r-1));)--r;for(;n.5)&&un(this),ge(this,"refresh",this)})),swapDoc:ri((function(e){var t=this.doc;return t.cm=null,this.state.selectingText&&this.state.selectingText(),Pi(this,e),Br(this),this.display.input.reset(),Hn(this,e.scrollLeft,e.scrollTop),this.curOp.forceScroll=!0,ar(this,"swapDoc",this,t),t})),phrase:function(e){var t=this.options.phrases;return t&&Object.prototype.hasOwnProperty.call(t,e)?t[e]:e},getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},be(e),e.registerHelper=function(t,n,i){r.hasOwnProperty(t)||(r[t]=e[t]={_global:[]}),r[t][n]=i},e.registerGlobalHelper=function(t,n,i,o){e.registerHelper(t,n,o),r[t]._global.push({pred:i,val:o})}}(Nl);var Xl="iter insert remove copy getEditor constructor".split(" ");for(var Yl in Wo.prototype)Wo.prototype.hasOwnProperty(Yl)&&G(Xl,Yl)<0&&(Nl.prototype[Yl]=function(e){return function(){return e.apply(this.doc,arguments)}}(Wo.prototype[Yl]));return be(Wo),Nl.inputStyles={textarea:_l,contenteditable:Gl},Nl.defineMode=function(e){Nl.defaults.mode||"null"==e||(Nl.defaults.mode=e),Ie.apply(this,arguments)},Nl.defineMIME=function(e,t){Ee[e]=t},Nl.defineMode("null",(function(){return{token:function(e){return e.skipToEnd()}}})),Nl.defineMIME("text/plain","null"),Nl.defineExtension=function(e,t){Nl.prototype[e]=t},Nl.defineDocExtension=function(e,t){Wo.prototype[e]=t},Nl.fromTextArea=function(e,t){if((t=t?I(t):{}).value=e.value,!t.tabindex&&e.tabIndex&&(t.tabindex=e.tabIndex),!t.placeholder&&e.placeholder&&(t.placeholder=e.placeholder),null==t.autofocus){var r=H();t.autofocus=r==e||null!=e.getAttribute("autofocus")&&r==document.body}function n(){e.value=s.getValue()}var i;if(e.form&&(de(e.form,"submit",n),!t.leaveSubmitMethodAlone)){var o=e.form;i=o.submit;try{var l=o.submit=function(){n(),o.submit=i,o.submit(),o.submit=l}}catch(De){}}t.finishInit=function(r){r.save=n,r.getTextArea=function(){return e},r.toTextArea=function(){r.toTextArea=isNaN,n(),e.parentNode.removeChild(r.getWrapperElement()),e.style.display="",e.form&&(pe(e.form,"submit",n),t.leaveSubmitMethodAlone||"function"!=typeof e.form.submit||(e.form.submit=i))}},e.style.display="none";var s=Nl((function(t){return e.parentNode.insertBefore(t,e.nextSibling)}),t);return s},function(e){e.off=pe,e.on=de,e.wheelEventPixels=xi,e.Doc=Wo,e.splitLines=We,e.countColumn=R,e.findColumn=_,e.isWordChar=ee,e.Pass=U,e.signal=ge,e.Line=Xt,e.changeEnd=Ti,e.scrollbarModel=jn,e.Pos=tt,e.cmpPos=rt,e.modes=Pe,e.mimeModes=Ee,e.resolveMode=Re,e.getMode=Be,e.modeExtensions=Ge,e.extendMode=Ue,e.copyState=Ve,e.startState=Ke,e.innerMode=je,e.commands=rl,e.keyMap=jo,e.keyName=$o,e.isModifierKey=Yo,e.lookupKey=Xo,e.normalizeKeyMap=_o,e.StringStream=_e,e.SharedTextMarker=No,e.TextMarker=Lo,e.LineWidget=So,e.e_preventDefault=we,e.e_stopPropagation=xe,e.e_stop=Se,e.addClass=z,e.contains=W,e.rmClass=T,e.keyNames=Bo}(Nl),Nl.version="5.49.0",Nl},"object"===l(t)?e.exports=o():void 0===(i="function"==typeof(n=o)?n.call(t,r,t,e):n)||(e.exports=i)},22080:function(e,t,r){var n,i,o,l;function s(e){return(s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}e=r.nmd(e),l=function(e){"use strict";e.defineMode("jinja2",(function(){var e=["and","as","block","endblock","by","cycle","debug","else","elif","extends","filter","endfilter","firstof","for","endfor","if","endif","ifchanged","endifchanged","ifequal","endifequal","ifnotequal","endifnotequal","in","include","load","not","now","or","parsed","regroup","reversed","spaceless","endspaceless","ssi","templatetag","openblock","closeblock","openvariable","closevariable","openbrace","closebrace","opencomment","closecomment","widthratio","url","with","endwith","get_current_language","trans","endtrans","noop","blocktrans","endblocktrans","get_available_languages","get_current_language_bidi","plural"],t=/^[+\-*&%=<>!?|~^]/,r=/^[:\[\(\{]/,n=["true","false"],i=/^(\d[+\-\*\/])?\d+(\.\d+)?/;function o(o,l){var s=o.peek();if(l.incomment)return o.skipTo("#}")?(o.eatWhile(/\#|}/),l.incomment=!1):o.skipToEnd(),"comment";if(l.intag){if(l.operator){if(l.operator=!1,o.match(n))return"atom";if(o.match(i))return"number"}if(l.sign){if(l.sign=!1,o.match(n))return"atom";if(o.match(i))return"number"}if(l.instring)return s==l.instring&&(l.instring=!1),o.next(),"string";if("'"==s||'"'==s)return l.instring=s,o.next(),"string";if(o.match(l.intag+"}")||o.eat("-")&&o.match(l.intag+"}"))return l.intag=!1,"tag";if(o.match(t))return l.operator=!0,"operator";if(o.match(r))l.sign=!0;else if(o.eat(" ")||o.sol()){if(o.match(e))return"keyword";if(o.match(n))return"atom";if(o.match(i))return"number";o.sol()&&o.next()}else o.next();return"variable"}if(o.eat("{")){if(o.eat("#"))return l.incomment=!0,o.skipTo("#}")?(o.eatWhile(/\#|}/),l.incomment=!1):o.skipToEnd(),"comment";if(s=o.eat(/\{|%/))return l.intag=s,"{"==s&&(l.intag="}"),o.eat("-"),"tag"}o.next()}return e=new RegExp("(("+e.join(")|(")+"))\\b"),n=new RegExp("(("+n.join(")|(")+"))\\b"),{startState:function(){return{tokenize:o}},token:function(e,t){return t.tokenize(e,t)},blockCommentStart:"{#",blockCommentEnd:"#}"}})),e.defineMIME("text/jinja2","jinja2")},"object"==s(t)&&"object"==s(e)?l(r(79074)):(i=[r(79074)],void 0===(o="function"==typeof(n=l)?n.apply(t,i):n)||(e.exports=o))},19393:function(e,t,r){var n,i,o,l;function s(e){return(s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}e=r.nmd(e),l=function(e){"use strict";e.defineMode("yaml",(function(){var e=new RegExp("\\b(("+["true","false","on","off","yes","no"].join(")|(")+"))$","i");return{token:function(t,r){var n=t.peek(),i=r.escaped;if(r.escaped=!1,"#"==n&&(0==t.pos||/\s/.test(t.string.charAt(t.pos-1))))return t.skipToEnd(),"comment";if(t.match(/^('([^']|\\.)*'?|"([^"]|\\.)*"?)/))return"string";if(r.literal&&t.indentation()>r.keyCol)return t.skipToEnd(),"string";if(r.literal&&(r.literal=!1),t.sol()){if(r.keyCol=0,r.pair=!1,r.pairStart=!1,t.match(/---/))return"def";if(t.match(/\.\.\./))return"def";if(t.match(/\s*-\s+/))return"meta"}if(t.match(/^(\{|\}|\[|\])/))return"{"==n?r.inlinePairs++:"}"==n?r.inlinePairs--:"["==n?r.inlineList++:r.inlineList--,"meta";if(r.inlineList>0&&!i&&","==n)return t.next(),"meta";if(r.inlinePairs>0&&!i&&","==n)return r.keyCol=0,r.pair=!1,r.pairStart=!1,t.next(),"meta";if(r.pairStart){if(t.match(/^\s*(\||\>)\s*/))return r.literal=!0,"meta";if(t.match(/^\s*(\&|\*)[a-z0-9\._-]+\b/i))return"variable-2";if(0==r.inlinePairs&&t.match(/^\s*-?[0-9\.\,]+\s?$/))return"number";if(r.inlinePairs>0&&t.match(/^\s*-?[0-9\.\,]+\s?(?=(,|}))/))return"number";if(t.match(e))return"keyword"}return!r.pair&&t.match(/^\s*(?:[,\[\]{}&*!|>'"%@`][^\s'":]|[^,\[\]{}#&*!|>'"%@`])[^#]*?(?=\s*:($|\s))/)?(r.pair=!0,r.keyCol=t.indentation(),"atom"):r.pair&&t.match(/^:\s*/)?(r.pairStart=!0,"meta"):(r.pairStart=!1,r.escaped="\\"==n,t.next(),null)},startState:function(){return{pair:!1,pairStart:!1,keyCol:0,inlinePairs:0,inlineList:0,literal:!1,escaped:!1}},lineComment:"#",fold:"indent"}})),e.defineMIME("text/x-yaml","yaml"),e.defineMIME("text/yaml","yaml")},"object"==s(t)&&"object"==s(e)?l(r(79074)):(i=[r(79074)],void 0===(o="function"==typeof(n=l)?n.apply(t,i):n)||(e.exports=o))},49338:function(e,t){"use strict";t.Z="/* BASICS */\n\n.CodeMirror {\n /* Set height, width, borders, and global font properties here */\n font-family: monospace;\n height: 300px;\n color: black;\n direction: ltr;\n}\n\n/* PADDING */\n\n.CodeMirror-lines {\n padding: 4px 0; /* Vertical padding around content */\n}\n.CodeMirror pre.CodeMirror-line,\n.CodeMirror pre.CodeMirror-line-like {\n padding: 0 4px; /* Horizontal padding of content */\n}\n\n.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {\n background-color: white; /* The little square between H and V scrollbars */\n}\n\n/* GUTTER */\n\n.CodeMirror-gutters {\n border-right: 1px solid #ddd;\n background-color: #f7f7f7;\n white-space: nowrap;\n}\n.CodeMirror-linenumbers {}\n.CodeMirror-linenumber {\n padding: 0 3px 0 5px;\n min-width: 20px;\n text-align: right;\n color: #999;\n white-space: nowrap;\n}\n\n.CodeMirror-guttermarker { color: black; }\n.CodeMirror-guttermarker-subtle { color: #999; }\n\n/* CURSOR */\n\n.CodeMirror-cursor {\n border-left: 1px solid black;\n border-right: none;\n width: 0;\n}\n/* Shown when moving in bi-directional text */\n.CodeMirror div.CodeMirror-secondarycursor {\n border-left: 1px solid silver;\n}\n.cm-fat-cursor .CodeMirror-cursor {\n width: auto;\n border: 0 !important;\n background: #7e7;\n}\n.cm-fat-cursor div.CodeMirror-cursors {\n z-index: 1;\n}\n.cm-fat-cursor-mark {\n background-color: rgba(20, 255, 20, 0.5);\n -webkit-animation: blink 1.06s steps(1) infinite;\n -moz-animation: blink 1.06s steps(1) infinite;\n animation: blink 1.06s steps(1) infinite;\n}\n.cm-animate-fat-cursor {\n width: auto;\n border: 0;\n -webkit-animation: blink 1.06s steps(1) infinite;\n -moz-animation: blink 1.06s steps(1) infinite;\n animation: blink 1.06s steps(1) infinite;\n background-color: #7e7;\n}\n@-moz-keyframes blink {\n 0% {}\n 50% { background-color: transparent; }\n 100% {}\n}\n@-webkit-keyframes blink {\n 0% {}\n 50% { background-color: transparent; }\n 100% {}\n}\n@keyframes blink {\n 0% {}\n 50% { background-color: transparent; }\n 100% {}\n}\n\n/* Can style cursor different in overwrite (non-insert) mode */\n.CodeMirror-overwrite .CodeMirror-cursor {}\n\n.cm-tab { display: inline-block; text-decoration: inherit; }\n\n.CodeMirror-rulers {\n position: absolute;\n left: 0; right: 0; top: -50px; bottom: 0;\n overflow: hidden;\n}\n.CodeMirror-ruler {\n border-left: 1px solid #ccc;\n top: 0; bottom: 0;\n position: absolute;\n}\n\n/* DEFAULT THEME */\n\n.cm-s-default .cm-header {color: blue;}\n.cm-s-default .cm-quote {color: #090;}\n.cm-negative {color: #d44;}\n.cm-positive {color: #292;}\n.cm-header, .cm-strong {font-weight: bold;}\n.cm-em {font-style: italic;}\n.cm-link {text-decoration: underline;}\n.cm-strikethrough {text-decoration: line-through;}\n\n.cm-s-default .cm-keyword {color: #708;}\n.cm-s-default .cm-atom {color: #219;}\n.cm-s-default .cm-number {color: #164;}\n.cm-s-default .cm-def {color: #00f;}\n.cm-s-default .cm-variable,\n.cm-s-default .cm-punctuation,\n.cm-s-default .cm-property,\n.cm-s-default .cm-operator {}\n.cm-s-default .cm-variable-2 {color: #05a;}\n.cm-s-default .cm-variable-3, .cm-s-default .cm-type {color: #085;}\n.cm-s-default .cm-comment {color: #a50;}\n.cm-s-default .cm-string {color: #a11;}\n.cm-s-default .cm-string-2 {color: #f50;}\n.cm-s-default .cm-meta {color: #555;}\n.cm-s-default .cm-qualifier {color: #555;}\n.cm-s-default .cm-builtin {color: #30a;}\n.cm-s-default .cm-bracket {color: #997;}\n.cm-s-default .cm-tag {color: #170;}\n.cm-s-default .cm-attribute {color: #00c;}\n.cm-s-default .cm-hr {color: #999;}\n.cm-s-default .cm-link {color: #00c;}\n\n.cm-s-default .cm-error {color: #f00;}\n.cm-invalidchar {color: #f00;}\n\n.CodeMirror-composing { border-bottom: 2px solid; }\n\n/* Default styles for common addons */\n\ndiv.CodeMirror span.CodeMirror-matchingbracket {color: #0b0;}\ndiv.CodeMirror span.CodeMirror-nonmatchingbracket {color: #a22;}\n.CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); }\n.CodeMirror-activeline-background {background: #e8f2ff;}\n\n/* STOP */\n\n/* The rest of this file contains styles related to the mechanics of\n the editor. You probably shouldn't touch them. */\n\n.CodeMirror {\n position: relative;\n overflow: hidden;\n background: white;\n}\n\n.CodeMirror-scroll {\n overflow: scroll !important; /* Things will break if this is overridden */\n /* 30px is the magic margin used to hide the element's real scrollbars */\n /* See overflow: hidden in .CodeMirror */\n margin-bottom: -30px; margin-right: -30px;\n padding-bottom: 30px;\n height: 100%;\n outline: none; /* Prevent dragging from highlighting the element */\n position: relative;\n}\n.CodeMirror-sizer {\n position: relative;\n border-right: 30px solid transparent;\n}\n\n/* The fake, visible scrollbars. Used to force redraw during scrolling\n before actual scrolling happens, thus preventing shaking and\n flickering artifacts. */\n.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {\n position: absolute;\n z-index: 6;\n display: none;\n}\n.CodeMirror-vscrollbar {\n right: 0; top: 0;\n overflow-x: hidden;\n overflow-y: scroll;\n}\n.CodeMirror-hscrollbar {\n bottom: 0; left: 0;\n overflow-y: hidden;\n overflow-x: scroll;\n}\n.CodeMirror-scrollbar-filler {\n right: 0; bottom: 0;\n}\n.CodeMirror-gutter-filler {\n left: 0; bottom: 0;\n}\n\n.CodeMirror-gutters {\n position: absolute; left: 0; top: 0;\n min-height: 100%;\n z-index: 3;\n}\n.CodeMirror-gutter {\n white-space: normal;\n height: 100%;\n display: inline-block;\n vertical-align: top;\n margin-bottom: -30px;\n}\n.CodeMirror-gutter-wrapper {\n position: absolute;\n z-index: 4;\n background: none !important;\n border: none !important;\n}\n.CodeMirror-gutter-background {\n position: absolute;\n top: 0; bottom: 0;\n z-index: 4;\n}\n.CodeMirror-gutter-elt {\n position: absolute;\n cursor: default;\n z-index: 4;\n}\n.CodeMirror-gutter-wrapper ::selection { background-color: transparent }\n.CodeMirror-gutter-wrapper ::-moz-selection { background-color: transparent }\n\n.CodeMirror-lines {\n cursor: text;\n min-height: 1px; /* prevents collapsing before first draw */\n}\n.CodeMirror pre.CodeMirror-line,\n.CodeMirror pre.CodeMirror-line-like {\n /* Reset some styles that the rest of the page might have set */\n -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0;\n border-width: 0;\n background: transparent;\n font-family: inherit;\n font-size: inherit;\n margin: 0;\n white-space: pre;\n word-wrap: normal;\n line-height: inherit;\n color: inherit;\n z-index: 2;\n position: relative;\n overflow: visible;\n -webkit-tap-highlight-color: transparent;\n -webkit-font-variant-ligatures: contextual;\n font-variant-ligatures: contextual;\n}\n.CodeMirror-wrap pre.CodeMirror-line,\n.CodeMirror-wrap pre.CodeMirror-line-like {\n word-wrap: break-word;\n white-space: pre-wrap;\n word-break: normal;\n}\n\n.CodeMirror-linebackground {\n position: absolute;\n left: 0; right: 0; top: 0; bottom: 0;\n z-index: 0;\n}\n\n.CodeMirror-linewidget {\n position: relative;\n z-index: 2;\n padding: 0.1px; /* Force widget margins to stay inside of the container */\n}\n\n.CodeMirror-widget {}\n\n.CodeMirror-rtl pre { direction: rtl; }\n\n.CodeMirror-code {\n outline: none;\n}\n\n/* Force content-box sizing for the elements where we expect it */\n.CodeMirror-scroll,\n.CodeMirror-sizer,\n.CodeMirror-gutter,\n.CodeMirror-gutters,\n.CodeMirror-linenumber {\n -moz-box-sizing: content-box;\n box-sizing: content-box;\n}\n\n.CodeMirror-measure {\n position: absolute;\n width: 100%;\n height: 0;\n overflow: hidden;\n visibility: hidden;\n}\n\n.CodeMirror-cursor {\n position: absolute;\n pointer-events: none;\n}\n.CodeMirror-measure pre { position: static; }\n\ndiv.CodeMirror-cursors {\n visibility: hidden;\n position: relative;\n z-index: 3;\n}\ndiv.CodeMirror-dragcursors {\n visibility: visible;\n}\n\n.CodeMirror-focused div.CodeMirror-cursors {\n visibility: visible;\n}\n\n.CodeMirror-selected { background: #d9d9d9; }\n.CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; }\n.CodeMirror-crosshair { cursor: crosshair; }\n.CodeMirror-line::selection, .CodeMirror-line > span::selection, .CodeMirror-line > span > span::selection { background: #d7d4f0; }\n.CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection { background: #d7d4f0; }\n\n.cm-searching {\n background-color: #ffa;\n background-color: rgba(255, 255, 0, .4);\n}\n\n/* Used to force a border model for a node */\n.cm-force-border { padding-right: .1px; }\n\n@media print {\n /* Hide the cursor when printing */\n .CodeMirror div.CodeMirror-cursors {\n visibility: hidden;\n }\n}\n\n/* See issue #2901 */\n.cm-tab-wrap-hack:after { content: ''; }\n\n/* Help users use markselection to safely style text background */\nspan.CodeMirror-selectedtext { background: none; }\n"}}]); -//# sourceMappingURL=chunk.0aeb318c1dfa0b946242.js.map \ No newline at end of file diff --git a/supervisor/api/panel/frontend_es5/chunk.0aeb318c1dfa0b946242.js.gz b/supervisor/api/panel/frontend_es5/chunk.0aeb318c1dfa0b946242.js.gz deleted file mode 100644 index 1cdb72133..000000000 Binary files a/supervisor/api/panel/frontend_es5/chunk.0aeb318c1dfa0b946242.js.gz and /dev/null differ diff --git a/supervisor/api/panel/frontend_es5/chunk.0aeb318c1dfa0b946242.js.map b/supervisor/api/panel/frontend_es5/chunk.0aeb318c1dfa0b946242.js.map deleted file mode 100644 index c82e5d8ce..000000000 --- a/supervisor/api/panel/frontend_es5/chunk.0aeb318c1dfa0b946242.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"chunk.0aeb318c1dfa0b946242.js","sources":["webpack://home-assistant-frontend/chunk.0aeb318c1dfa0b946242.js"],"mappings":"AAAA","sourceRoot":""} \ No newline at end of file diff --git a/supervisor/api/panel/frontend_es5/chunk.0cd3dee90fe9e2ba789d.js b/supervisor/api/panel/frontend_es5/chunk.0cd3dee90fe9e2ba789d.js deleted file mode 100644 index 23249e067..000000000 --- a/supervisor/api/panel/frontend_es5/chunk.0cd3dee90fe9e2ba789d.js +++ /dev/null @@ -1,2 +0,0 @@ -!function(){"use strict";var n,t={14971:function(n,t,e){e(58556);var r,o,i=e(91107),u=e(9902),a=e.n(u),s=e(62173),f={renderMarkdown:function(n,t){var e,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return r||(r=Object.assign({},(0,s.getDefaultWhiteList)(),{"ha-icon":["icon"],"ha-svg-icon":["path"]})),i.allowSvg?(o||(o=Object.assign({},r,{svg:["xmlns","height","width"],path:["transform","stroke","d"],img:["src"]})),e=o):e=r,(0,s.filterXSS)(a()(n,t),{whiteList:e})}};(0,i.Jj)(f)}},e={};function r(n){if(e[n])return e[n].exports;var o=e[n]={exports:{}};return t[n].call(o.exports,o,o.exports,r),o.exports}r.m=t,r.x=function(){r(14971)},r.n=function(n){var t=n&&n.__esModule?function(){return n.default}:function(){return n};return r.d(t,{a:t}),t},r.d=function(n,t){for(var e in t)r.o(t,e)&&!r.o(n,e)&&Object.defineProperty(n,e,{enumerable:!0,get:t[e]})},r.f={},r.e=function(n){return Promise.all(Object.keys(r.f).reduce((function(t,e){return r.f[e](n,t),t}),[]))},r.u=function(n){return"chunk.d93e72d29a82b1218f4a.js"},r.o=function(n,t){return Object.prototype.hasOwnProperty.call(n,t)},n=r.x,r.x=function(){return r.e(474).then(n)},r.p="/api/hassio/app/frontend_es5/",function(){var n={971:1};r.f.i=function(t,e){n[t]||importScripts(""+r.u(t))};var t=self.webpackChunkhome_assistant_frontend=self.webpackChunkhome_assistant_frontend||[],e=t.push.bind(t);t.push=function(t){var o=t[0],i=t[1],u=t[2];for(var a in i)r.o(i,a)&&(r.m[a]=i[a]);for(u&&u(r);o.length;)n[o.pop()]=1;e(t)}}(),r.x()}(); -//# sourceMappingURL=chunk.0cd3dee90fe9e2ba789d.js.map \ No newline at end of file diff --git a/supervisor/api/panel/frontend_es5/chunk.0cd3dee90fe9e2ba789d.js.gz b/supervisor/api/panel/frontend_es5/chunk.0cd3dee90fe9e2ba789d.js.gz deleted file mode 100644 index 668b70db1..000000000 Binary files a/supervisor/api/panel/frontend_es5/chunk.0cd3dee90fe9e2ba789d.js.gz and /dev/null differ diff --git a/supervisor/api/panel/frontend_es5/chunk.0cd3dee90fe9e2ba789d.js.map b/supervisor/api/panel/frontend_es5/chunk.0cd3dee90fe9e2ba789d.js.map deleted file mode 100644 index 6906c2d99..000000000 --- a/supervisor/api/panel/frontend_es5/chunk.0cd3dee90fe9e2ba789d.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"chunk.0cd3dee90fe9e2ba789d.js","sources":["webpack://home-assistant-frontend/chunk.0cd3dee90fe9e2ba789d.js"],"mappings":"AAAA","sourceRoot":""} \ No newline at end of file diff --git a/supervisor/api/panel/frontend_es5/chunk.4c51a194fe9fc242f107.js b/supervisor/api/panel/frontend_es5/chunk.1274df0d4f9b61110840.js similarity index 99% rename from supervisor/api/panel/frontend_es5/chunk.4c51a194fe9fc242f107.js rename to supervisor/api/panel/frontend_es5/chunk.1274df0d4f9b61110840.js index c8219f42a..fc3fc2622 100644 --- a/supervisor/api/panel/frontend_es5/chunk.4c51a194fe9fc242f107.js +++ b/supervisor/api/panel/frontend_es5/chunk.1274df0d4f9b61110840.js @@ -1,2 +1,2 @@ (self.webpackChunkhome_assistant_frontend=self.webpackChunkhome_assistant_frontend||[]).push([[546],{93546:function(e,t,r){"use strict";var n,i=r(99722),o=r(47181),a=r(91107);function s(e,t,r,n,i,o,a){try{var s=e[o](a),c=s.value}catch(l){return void r(l)}s.done?t(c):Promise.resolve(c).then(n,i)}var c=function(){var e,t=(e=regeneratorRuntime.mark((function e(t,i,o){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n||(n=(0,a.Ud)(new Worker(new URL(r.p+r.u(971),r.b)))),e.next=3,n.renderMarkdown(t,i,o);case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e)})),function(){var t=this,r=arguments;return new Promise((function(n,i){var o=e.apply(t,r);function a(e){s(o,n,i,a,c,"next",e)}function c(e){s(o,n,i,a,c,"throw",e)}a(void 0)}))});return function(e,r,n){return t.apply(this,arguments)}}();function l(e){return(l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function u(e,t,r,n,i,o,a){try{var s=e[o](a),c=s.value}catch(l){return void r(l)}s.done?t(c):Promise.resolve(c).then(n,i)}function f(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function d(e,t){return(d=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function p(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=D(e);if(t){var i=D(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return h(this,r)}}function h(e,t){return!t||"object"!==l(t)&&"function"!=typeof t?m(e):t}function m(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function y(){y=function(){return e};var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach((function(r){t.forEach((function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)}),this)}),this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach((function(n){t.forEach((function(t){var i=t.placement;if(t.kind===n&&("static"===i||"prototype"===i)){var o="static"===i?e:r;this.defineClassElement(o,t)}}),this)}),this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],i={static:[],prototype:[],own:[]};if(e.forEach((function(e){this.addElementPlacement(e,i)}),this),e.forEach((function(e){if(!w(e))return r.push(e);var t=this.decorateElement(e,i);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)}),this),!t)return{elements:r,finishers:n};var o=this.decorateConstructor(r,t);return n.push.apply(n,o.finishers),o.finishers=n,o},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],i=e.decorators,o=i.length-1;o>=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;ae.length)&&(t=e.length);for(var r=0,n=new Array(t);r *:first-child {\n margin-top: 0;\n }\n ha-markdown-element > *:last-child {\n margin-bottom: 0;\n }\n ha-markdown-element a {\n color: var(--primary-color);\n }\n ha-markdown-element img {\n max-width: 100%;\n }\n ha-markdown-element code,\n pre {\n background-color: var(--markdown-code-background-color, none);\n border-radius: 3px;\n }\n ha-markdown-element svg {\n background-color: var(--markdown-svg-background-color, none);\n color: var(--markdown-svg-color, none);\n }\n ha-markdown-element code {\n font-size: 85%;\n padding: 0.2em 0.4em;\n }\n ha-markdown-element pre code {\n padding: 0;\n }\n ha-markdown-element pre {\n padding: 16px;\n overflow: auto;\n line-height: 1.45;\n font-family: var(--code-font-family, monospace);\n }\n ha-markdown-element h2 {\n font-size: 1.5em;\n font-weight: bold;\n }\n "]);return C=function(){return e},e}function x(){var e=T([""]);return x=function(){return e},e}function A(){var e=T([""]);return A=function(){return e},e}function T(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function j(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function z(e,t){return(z=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function _(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=I(e);if(t){var i=I(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return R(this,r)}}function R(e,t){return!t||"object"!==O(t)&&"function"!=typeof t?F(e):t}function F(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function I(e){return(I=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function M(){M=function(){return e};var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach((function(r){t.forEach((function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)}),this)}),this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach((function(n){t.forEach((function(t){var i=t.placement;if(t.kind===n&&("static"===i||"prototype"===i)){var o="static"===i?e:r;this.defineClassElement(o,t)}}),this)}),this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],i={static:[],prototype:[],own:[]};if(e.forEach((function(e){this.addElementPlacement(e,i)}),this),e.forEach((function(e){if(!N(e))return r.push(e);var t=this.decorateElement(e,i);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)}),this),!t)return{elements:r,finishers:n};var o=this.decorateConstructor(r,t);return n.push.apply(n,o.finishers),o.finishers=n,o},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],i=e.decorators,o=i.length-1;o>=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;ae.length)&&(t=e.length);for(var r=0,n=new Array(t);r',"

"]);return u=function(){return e},e}function d(){var e=m(['\n \n

\n ',"\n

"]);return d=function(){return e},e}function p(){var e=m(['\n

\n ',"\n

\n
\n
\n ",'\n
\n\n \n \n ','\n \n \n ',"\n \n \n \n \n \n ',"\n \n \n ',"\n "]);return p=function(){return e},e}function f(){var e=m(["\n \n ","\n ","\n \n "]);return f=function(){return e},e}function h(){var e=m([""]);return h=function(){return e},e}function m(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function v(e,t,r,n,i,o,a){try{var s=e[o](a),c=s.value}catch(l){return void r(l)}s.done?t(c):Promise.resolve(c).then(n,i)}function y(e){return function(){var t=this,r=arguments;return new Promise((function(n,i){var o=e.apply(t,r);function a(e){v(o,n,i,a,s,"next",e)}function s(e){v(o,n,i,a,s,"throw",e)}a(void 0)}))}}function g(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function k(e,t){return(k=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function b(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=P(e);if(t){var i=P(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return w(this,r)}}function w(e,t){return!t||"object"!==c(t)&&"function"!=typeof t?_(e):t}function _(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function P(e){return(P=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function E(){E=function(){return e};var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach((function(r){t.forEach((function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)}),this)}),this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach((function(n){t.forEach((function(t){var i=t.placement;if(t.kind===n&&("static"===i||"prototype"===i)){var o="static"===i?e:r;this.defineClassElement(o,t)}}),this)}),this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],i={static:[],prototype:[],own:[]};if(e.forEach((function(e){this.addElementPlacement(e,i)}),this),e.forEach((function(e){if(!z(e))return r.push(e);var t=this.decorateElement(e,i);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)}),this),!t)return{elements:r,finishers:n};var o=this.decorateConstructor(r,t);return n.push.apply(n,o.finishers),o.finishers=n,o},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],i=e.decorators,o=i.length-1;o>=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;ae.length)&&(t=e.length);for(var r=0,n=new Array(t);re.length)&&(t=e.length);for(var n=0,r=new Array(t);n1&&void 0!==arguments[1]?arguments[1]:self;t.addEventListener("message",(function n(o){if(o&&o.data){var a,l=Object.assign({path:[]},o.data),c=l.id,p=l.type,f=l.path,D=(o.data.argumentList||[]).map(w);try{var h=f.slice(0,-1).reduce((function(e,t){return e[t]}),e),d=f.reduce((function(e,t){return e[t]}),e);switch(p){case 0:a=d;break;case 1:h[f.slice(-1)[0]]=w(o.data.value),a=!0;break;case 2:a=d.apply(h,D);break;case 3:var m;a=y(i(d,s(D)));break;case 4:var F=new MessageChannel,k=F.port1,C=F.port2;b(e,C),a=E(k,[k]);break;case 5:a=void 0}}catch(m){a=u({value:m},g,0)}Promise.resolve(a).catch((function(e){return u({value:e},g,0)})).then((function(e){var u=r(x(e),2),i=u[0],o=u[1];t.postMessage(Object.assign(Object.assign({},i),{id:c}),o),5===p&&(t.removeEventListener("message",n),A(t))}))}})),t.start&&t.start()}function A(e){(function(e){return"MessagePort"===e.constructor.name})(e)&&e.close()}function F(e){if(e)throw new Error("Proxy has been released and is not useable")}function k(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},u=!1,i=new Proxy(n,{get:function(n,r){if(F(u),r===h)return function(){return B(e,{type:5,path:t.map((function(e){return e.toString()}))}).then((function(){A(e),u=!0}))};if("then"===r){if(0===t.length)return{then:function(){return i}};var o=B(e,{type:0,path:t.map((function(e){return e.toString()}))}).then(w);return o.then.bind(o)}return k(e,[].concat(s(t),[r]))},set:function(n,i,o){F(u);var a=r(x(o),2),l=a[0],c=a[1];return B(e,{type:1,path:[].concat(s(t),[i]).map((function(e){return e.toString()})),value:l},c).then(w)},apply:function(n,i,o){F(u);var a=t[t.length-1];if(a===D)return B(e,{type:4}).then(w);if("bind"===a)return k(e,t.slice(0,-1));var s=r(C(o),2),l=s[0],c=s[1];return B(e,{type:2,path:t.map((function(e){return e.toString()})),argumentList:l},c).then(w)},construct:function(n,i){F(u);var o=r(C(i),2),a=o[0],s=o[1];return B(e,{type:3,path:t.map((function(e){return e.toString()})),argumentList:a},s).then(w)}});return i}function C(e){var t,n=e.map(x);return[n.map((function(e){return e[0]})),(t=n.map((function(e){return e[1]})),Array.prototype.concat.apply([],t))]}var v=new WeakMap;function E(e,t){return v.set(e,t),e}function y(e){return Object.assign(e,u({},f,!0))}function x(e){var t,n=function(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=l(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,u=function(){};return{s:u,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:u}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,o=!0,a=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return o=e.done,e},e:function(e){a=!0,i=e},f:function(){try{o||null==n.return||n.return()}finally{if(a)throw i}}}}(m);try{for(n.s();!(t=n.n()).done;){var u=r(t.value,2),i=u[0],o=u[1];if(o.canHandle(e)){var a=r(o.serialize(e),2);return[{type:3,name:i,value:a[0]},a[1]]}}}catch(s){n.e(s)}finally{n.f()}return[{type:0,value:e},v.get(e)||[]]}function w(e){switch(e.type){case 3:return m.get(e.name).deserialize(e.value);case 0:return e.value}}function B(e,t,n){return new Promise((function(r){var u=new Array(4).fill(0).map((function(){return Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16)})).join("-");e.addEventListener("message",(function t(n){n.data&&n.data.id&&n.data.id===u&&(e.removeEventListener("message",t),r(n.data))})),e.start&&e.start(),e.postMessage(Object.assign({id:u},t),n)}))}},91100:function(e,t,n){var r=n(79668),u=n(48544);n(27301);function i(e){return null==e}function o(e){(e=function(e){var t={};for(var n in e)t[n]=e[n];return t}(e||{})).whiteList=e.whiteList||r.whiteList,e.onAttr=e.onAttr||r.onAttr,e.onIgnoreAttr=e.onIgnoreAttr||r.onIgnoreAttr,e.safeAttrValue=e.safeAttrValue||r.safeAttrValue,this.options=e}o.prototype.process=function(e){if(!(e=(e=e||"").toString()))return"";var t=this.options,n=t.whiteList,r=t.onAttr,o=t.onIgnoreAttr,a=t.safeAttrValue;return u(e,(function(e,t,u,s,l){var c=n[u],p=!1;if(!0===c?p=c:"function"==typeof c?p=c(s):c instanceof RegExp&&(p=c.test(s)),!0!==p&&(p=!1),s=a(u,s)){var f,D={position:t,sourcePosition:e,source:l,isWhite:p};return p?i(f=r(u,s,D))?u+":"+s:f:i(f=o(u,s,D))?void 0:f}}))},e.exports=o},79668:function(e,t){function n(){var e={"align-content":!1,"align-items":!1,"align-self":!1,"alignment-adjust":!1,"alignment-baseline":!1,all:!1,"anchor-point":!1,animation:!1,"animation-delay":!1,"animation-direction":!1,"animation-duration":!1,"animation-fill-mode":!1,"animation-iteration-count":!1,"animation-name":!1,"animation-play-state":!1,"animation-timing-function":!1,azimuth:!1,"backface-visibility":!1,background:!0,"background-attachment":!0,"background-clip":!0,"background-color":!0,"background-image":!0,"background-origin":!0,"background-position":!0,"background-repeat":!0,"background-size":!0,"baseline-shift":!1,binding:!1,bleed:!1,"bookmark-label":!1,"bookmark-level":!1,"bookmark-state":!1,border:!0,"border-bottom":!0,"border-bottom-color":!0,"border-bottom-left-radius":!0,"border-bottom-right-radius":!0,"border-bottom-style":!0,"border-bottom-width":!0,"border-collapse":!0,"border-color":!0,"border-image":!0,"border-image-outset":!0,"border-image-repeat":!0,"border-image-slice":!0,"border-image-source":!0,"border-image-width":!0,"border-left":!0,"border-left-color":!0,"border-left-style":!0,"border-left-width":!0,"border-radius":!0,"border-right":!0,"border-right-color":!0,"border-right-style":!0,"border-right-width":!0,"border-spacing":!0,"border-style":!0,"border-top":!0,"border-top-color":!0,"border-top-left-radius":!0,"border-top-right-radius":!0,"border-top-style":!0,"border-top-width":!0,"border-width":!0,bottom:!1,"box-decoration-break":!0,"box-shadow":!0,"box-sizing":!0,"box-snap":!0,"box-suppress":!0,"break-after":!0,"break-before":!0,"break-inside":!0,"caption-side":!1,chains:!1,clear:!0,clip:!1,"clip-path":!1,"clip-rule":!1,color:!0,"color-interpolation-filters":!0,"column-count":!1,"column-fill":!1,"column-gap":!1,"column-rule":!1,"column-rule-color":!1,"column-rule-style":!1,"column-rule-width":!1,"column-span":!1,"column-width":!1,columns:!1,contain:!1,content:!1,"counter-increment":!1,"counter-reset":!1,"counter-set":!1,crop:!1,cue:!1,"cue-after":!1,"cue-before":!1,cursor:!1,direction:!1,display:!0,"display-inside":!0,"display-list":!0,"display-outside":!0,"dominant-baseline":!1,elevation:!1,"empty-cells":!1,filter:!1,flex:!1,"flex-basis":!1,"flex-direction":!1,"flex-flow":!1,"flex-grow":!1,"flex-shrink":!1,"flex-wrap":!1,float:!1,"float-offset":!1,"flood-color":!1,"flood-opacity":!1,"flow-from":!1,"flow-into":!1,font:!0,"font-family":!0,"font-feature-settings":!0,"font-kerning":!0,"font-language-override":!0,"font-size":!0,"font-size-adjust":!0,"font-stretch":!0,"font-style":!0,"font-synthesis":!0,"font-variant":!0,"font-variant-alternates":!0,"font-variant-caps":!0,"font-variant-east-asian":!0,"font-variant-ligatures":!0,"font-variant-numeric":!0,"font-variant-position":!0,"font-weight":!0,grid:!1,"grid-area":!1,"grid-auto-columns":!1,"grid-auto-flow":!1,"grid-auto-rows":!1,"grid-column":!1,"grid-column-end":!1,"grid-column-start":!1,"grid-row":!1,"grid-row-end":!1,"grid-row-start":!1,"grid-template":!1,"grid-template-areas":!1,"grid-template-columns":!1,"grid-template-rows":!1,"hanging-punctuation":!1,height:!0,hyphens:!1,icon:!1,"image-orientation":!1,"image-resolution":!1,"ime-mode":!1,"initial-letters":!1,"inline-box-align":!1,"justify-content":!1,"justify-items":!1,"justify-self":!1,left:!1,"letter-spacing":!0,"lighting-color":!0,"line-box-contain":!1,"line-break":!1,"line-grid":!1,"line-height":!1,"line-snap":!1,"line-stacking":!1,"line-stacking-ruby":!1,"line-stacking-shift":!1,"line-stacking-strategy":!1,"list-style":!0,"list-style-image":!0,"list-style-position":!0,"list-style-type":!0,margin:!0,"margin-bottom":!0,"margin-left":!0,"margin-right":!0,"margin-top":!0,"marker-offset":!1,"marker-side":!1,marks:!1,mask:!1,"mask-box":!1,"mask-box-outset":!1,"mask-box-repeat":!1,"mask-box-slice":!1,"mask-box-source":!1,"mask-box-width":!1,"mask-clip":!1,"mask-image":!1,"mask-origin":!1,"mask-position":!1,"mask-repeat":!1,"mask-size":!1,"mask-source-type":!1,"mask-type":!1,"max-height":!0,"max-lines":!1,"max-width":!0,"min-height":!0,"min-width":!0,"move-to":!1,"nav-down":!1,"nav-index":!1,"nav-left":!1,"nav-right":!1,"nav-up":!1,"object-fit":!1,"object-position":!1,opacity:!1,order:!1,orphans:!1,outline:!1,"outline-color":!1,"outline-offset":!1,"outline-style":!1,"outline-width":!1,overflow:!1,"overflow-wrap":!1,"overflow-x":!1,"overflow-y":!1,padding:!0,"padding-bottom":!0,"padding-left":!0,"padding-right":!0,"padding-top":!0,page:!1,"page-break-after":!1,"page-break-before":!1,"page-break-inside":!1,"page-policy":!1,pause:!1,"pause-after":!1,"pause-before":!1,perspective:!1,"perspective-origin":!1,pitch:!1,"pitch-range":!1,"play-during":!1,position:!1,"presentation-level":!1,quotes:!1,"region-fragment":!1,resize:!1,rest:!1,"rest-after":!1,"rest-before":!1,richness:!1,right:!1,rotation:!1,"rotation-point":!1,"ruby-align":!1,"ruby-merge":!1,"ruby-position":!1,"shape-image-threshold":!1,"shape-outside":!1,"shape-margin":!1,size:!1,speak:!1,"speak-as":!1,"speak-header":!1,"speak-numeral":!1,"speak-punctuation":!1,"speech-rate":!1,stress:!1,"string-set":!1,"tab-size":!1,"table-layout":!1,"text-align":!0,"text-align-last":!0,"text-combine-upright":!0,"text-decoration":!0,"text-decoration-color":!0,"text-decoration-line":!0,"text-decoration-skip":!0,"text-decoration-style":!0,"text-emphasis":!0,"text-emphasis-color":!0,"text-emphasis-position":!0,"text-emphasis-style":!0,"text-height":!0,"text-indent":!0,"text-justify":!0,"text-orientation":!0,"text-overflow":!0,"text-shadow":!0,"text-space-collapse":!0,"text-transform":!0,"text-underline-position":!0,"text-wrap":!0,top:!1,transform:!1,"transform-origin":!1,"transform-style":!1,transition:!1,"transition-delay":!1,"transition-duration":!1,"transition-property":!1,"transition-timing-function":!1,"unicode-bidi":!1,"vertical-align":!1,visibility:!1,"voice-balance":!1,"voice-duration":!1,"voice-family":!1,"voice-pitch":!1,"voice-range":!1,"voice-rate":!1,"voice-stress":!1,"voice-volume":!1,volume:!1,"white-space":!1,widows:!1,width:!0,"will-change":!1,"word-break":!0,"word-spacing":!0,"word-wrap":!0,"wrap-flow":!1,"wrap-through":!1,"writing-mode":!1,"z-index":!1};return e}var r=/javascript\s*\:/gim;t.whiteList=n(),t.getDefaultWhiteList=n,t.onAttr=function(e,t,n){},t.onIgnoreAttr=function(e,t,n){},t.safeAttrValue=function(e,t){return r.test(t)?"":t}},8300:function(e,t,n){var r=n(79668),u=n(91100);for(var i in(t=e.exports=function(e,t){return new u(t).process(e)}).FilterCSS=u,r)t[i]=r[i];"undefined"!=typeof window&&(window.filterCSS=e.exports)},48544:function(e,t,n){var r=n(27301);e.exports=function(e,t){";"!==(e=r.trimRight(e))[e.length-1]&&(e+=";");var n=e.length,u=!1,i=0,o=0,a="";function s(){if(!u){var n=r.trim(e.slice(i,o)),s=n.indexOf(":");if(-1!==s){var l=r.trim(n.slice(0,s)),c=r.trim(n.slice(s+1));if(l){var p=t(i,a.length,l,c,n);p&&(a+=p+"; ")}}}i=o+1}for(;oe.length)&&(t=e.length);for(var n=0,r=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[u++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(r=e[Symbol.iterator]()).next.bind(r)}var r=function(e){var t={exports:{}};return e(t,t.exports),t.exports}((function(e){function t(){return{baseUrl:null,breaks:!1,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}}e.exports={defaults:{baseUrl:null,breaks:!1,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1},getDefaults:t,changeDefaults:function(t){e.exports.defaults=t}}})),u=/[&<>"']/,i=/[&<>"']/g,o=/[<>"']|&(?!#?\w+;)/,a=/[<>"']|&(?!#?\w+;)/g,s={"&":"&","<":"<",">":">",'"':""","'":"'"},l=function(e){return s[e]},c=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function p(e){return e.replace(c,(function(e,t){return"colon"===(t=t.toLowerCase())?":":"#"===t.charAt(0)?"x"===t.charAt(1)?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):""}))}var f=/(^|[^\[])\^/g,D=/[^\w:]/g,h=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i,g={},d=/^[^:]+:\/*[^/]*$/,m=/^([^:]+:)[\s\S]*$/,b=/^([^:]+:\/*[^/]*)[\s\S]*$/;function A(e,t){g[" "+e]||(d.test(e)?g[" "+e]=e+"/":g[" "+e]=F(e,"/",!0));var n=-1===(e=g[" "+e]).indexOf(":");return"//"===t.substring(0,2)?n?t:e.replace(m,"$1")+t:"/"===t.charAt(0)?n?t:e.replace(b,"$1")+t:e+t}function F(e,t,n){var r=e.length;if(0===r)return"";for(var u=0;u=0&&"\\"===n[u];)r=!r;return r?"|":" |"})).split(/ \|/),r=0;if(n.length>t)n.splice(t);else for(;n.length1;)1&t&&(n+=e),t>>=1,e+=e;return n+e},$=r.defaults,T=B,I=w,O=k,j=S;function R(e,t,n){var r=t.href,u=t.title?O(t.title):null,i=e[1].replace(/\\([\[\]])/g,"$1");return"!"!==e[0].charAt(0)?{type:"link",raw:n,href:r,title:u,text:i}:{type:"image",raw:n,href:r,title:u,text:O(i)}}var P=function(){function e(e){this.options=e||$}var t=e.prototype;return t.space=function(e){var t=this.rules.block.newline.exec(e);if(t)return t[0].length>1?{type:"space",raw:t[0]}:{raw:"\n"}},t.code=function(e){var t=this.rules.block.code.exec(e);if(t){var n=t[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?n:T(n,"\n")}}},t.fences=function(e){var t=this.rules.block.fences.exec(e);if(t){var n=t[0],r=function(e,t){var n=e.match(/^(\s+)(?:```)/);if(null===n)return t;var r=n[1];return t.split("\n").map((function(e){var t=e.match(/^\s+/);return null===t?e:t[0].length>=r.length?e.slice(r.length):e})).join("\n")}(n,t[3]||"");return{type:"code",raw:n,lang:t[2]?t[2].trim():t[2],text:r}}},t.heading=function(e){var t=this.rules.block.heading.exec(e);if(t){var n=t[2].trim();if(/#$/.test(n)){var r=T(n,"#");this.options.pedantic?n=r.trim():r&&!/ $/.test(r)||(n=r.trim())}return{type:"heading",raw:t[0],depth:t[1].length,text:n}}},t.nptable=function(e){var t=this.rules.block.nptable.exec(e);if(t){var n={type:"table",header:I(t[1].replace(/^ *| *\| *$/g,"")),align:t[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:t[3]?t[3].replace(/\n$/,"").split("\n"):[],raw:t[0]};if(n.header.length===n.align.length){var r,u=n.align.length;for(r=0;r ?/gm,"");return{type:"blockquote",raw:t[0],text:n}}},t.list=function(e){var t=this.rules.block.list.exec(e);if(t){var n,r,u,i,o,a,s,l,c=t[0],p=t[2],f=p.length>1,D={type:"list",raw:c,ordered:f,start:f?+p.slice(0,-1):"",loose:!1,items:[]},h=t[0].match(this.rules.block.item),g=!1,d=h.length;u=this.rules.block.listItemStart.exec(h[0]);for(var m=0;mu[1].length:i[1].length>u[0].length||i[1].length>3){h.splice(m,2,h[m]+"\n"+h[m+1]),m--,d--;continue}(!this.options.pedantic||this.options.smartLists?i[2][i[2].length-1]!==p[p.length-1]:f===(1===i[2].length))&&(o=h.slice(m+1).join("\n"),D.raw=D.raw.substring(0,D.raw.length-o.length),m=d-1),u=i}r=n.length,~(n=n.replace(/^ *([*+-]|\d+[.)]) ?/,"")).indexOf("\n ")&&(r-=n.length,n=this.options.pedantic?n.replace(/^ {1,4}/gm,""):n.replace(new RegExp("^ {1,"+r+"}","gm"),"")),a=g||/\n\n(?!\s*$)/.test(n),m!==d-1&&(g="\n"===n.charAt(n.length-1),a||(a=g)),a&&(D.loose=!0),this.options.gfm&&(l=void 0,(s=/^\[[ xX]\] /.test(n))&&(l=" "!==n[1],n=n.replace(/^\[[ xX]\] +/,""))),D.items.push({type:"list_item",raw:c,task:s,checked:l,loose:a,text:n})}return D}},t.html=function(e){var t=this.rules.block.html.exec(e);if(t)return{type:this.options.sanitize?"paragraph":"html",raw:t[0],pre:!this.options.sanitizer&&("pre"===t[1]||"script"===t[1]||"style"===t[1]),text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(t[0]):O(t[0]):t[0]}},t.def=function(e){var t=this.rules.block.def.exec(e);if(t)return t[3]&&(t[3]=t[3].substring(1,t[3].length-1)),{tag:t[1].toLowerCase().replace(/\s+/g," "),raw:t[0],href:t[2],title:t[3]}},t.table=function(e){var t=this.rules.block.table.exec(e);if(t){var n={type:"table",header:I(t[1].replace(/^ *| *\| *$/g,"")),align:t[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:t[3]?t[3].replace(/\n$/,"").split("\n"):[]};if(n.header.length===n.align.length){n.raw=t[0];var r,u=n.align.length;for(r=0;r/i.test(r[0])&&(t=!1),!n&&/^<(pre|code|kbd|script)(\s|>)/i.test(r[0])?n=!0:n&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(r[0])&&(n=!1),{type:this.options.sanitize?"text":"html",raw:r[0],inLink:t,inRawBlock:n,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(r[0]):O(r[0]):r[0]}},t.link=function(e){var t=this.rules.inline.link.exec(e);if(t){var n=t[2].trim();if(!this.options.pedantic&&/^$/.test(n))return;var r=T(n.slice(0,-1),"\\");if((n.length-r.length)%2==0)return}else{var u=j(t[2],"()");if(u>-1){var i=(0===t[0].indexOf("!")?5:4)+t[1].length+u;t[2]=t[2].substring(0,u),t[0]=t[0].substring(0,i).trim(),t[3]=""}}var o=t[2],a="";if(this.options.pedantic){var s=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(o);s&&(o=s[1],a=s[3])}else a=t[3]?t[3].slice(1,-1):"";return o=o.trim(),/^$/.test(n)?o.slice(1):o.slice(1,-1)),R(t,{href:o?o.replace(this.rules.inline._escapes,"$1"):o,title:a?a.replace(this.rules.inline._escapes,"$1"):a},t[0])}},t.reflink=function(e,t){var n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){var r=(n[2]||n[1]).replace(/\s+/g," ");if(!(r=t[r.toLowerCase()])||!r.href){var u=n[0].charAt(0);return{type:"text",raw:u,text:u}}return R(n,r,n[0])}},t.emStrong=function(e,t,n){void 0===n&&(n="");var r=this.rules.inline.emStrong.lDelim.exec(e);if(r&&(!r[3]||!n.match(/(?:[0-9A-Za-z\xAA\xB2\xB3\xB5\xB9\xBA\xBC-\xBE\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u0660-\u0669\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07C0-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08C7\u0904-\u0939\u093D\u0950\u0958-\u0961\u0966-\u096F\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09E6-\u09F1\u09F4-\u09F9\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A66-\u0A6F\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AE6-\u0AEF\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B66-\u0B6F\u0B71-\u0B77\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0BE6-\u0BF2\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C66-\u0C6F\u0C78-\u0C7E\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CE6-\u0CEF\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D58-\u0D61\u0D66-\u0D78\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DE6-\u0DEF\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F20-\u0F33\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F-\u1049\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u1090-\u1099\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1369-\u137C\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A16\u1A20-\u1A54\u1A80-\u1A89\u1A90-\u1A99\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B50-\u1B59\u1B83-\u1BA0\u1BAE-\u1BE5\u1C00-\u1C23\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2070\u2071\u2074-\u2079\u207F-\u2089\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2150-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2CFD\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u3192-\u3195\u31A0-\u31BF\u31F0-\u31FF\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\u3400-\u4DBF\u4E00-\u9FFC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7BF\uA7C2-\uA7CA\uA7F5-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA830-\uA835\uA840-\uA873\uA882-\uA8B3\uA8D0-\uA8D9\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA900-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF-\uA9D9\uA9E0-\uA9E4\uA9E6-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDE80-\uDE9C\uDEA0-\uDED0\uDEE1-\uDEFB\uDF00-\uDF23\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC58-\uDC76\uDC79-\uDC9E\uDCA7-\uDCAF\uDCE0-\uDCF2\uDCF4\uDCF5\uDCFB-\uDD1B\uDD20-\uDD39\uDD80-\uDDB7\uDDBC-\uDDCF\uDDD2-\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE40-\uDE48\uDE60-\uDE7E\uDE80-\uDE9F\uDEC0-\uDEC7\uDEC9-\uDEE4\uDEEB-\uDEEF\uDF00-\uDF35\uDF40-\uDF55\uDF58-\uDF72\uDF78-\uDF91\uDFA9-\uDFAF]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDCFA-\uDD23\uDD30-\uDD39\uDE60-\uDE7E\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF27\uDF30-\uDF45\uDF51-\uDF54\uDFB0-\uDFCB\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC52-\uDC6F\uDC83-\uDCAF\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD03-\uDD26\uDD36-\uDD3F\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDD0-\uDDDA\uDDDC\uDDE1-\uDDF4\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDEF0-\uDEF9\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC50-\uDC59\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE50-\uDE59\uDE80-\uDEAA\uDEB8\uDEC0-\uDEC9\uDF00-\uDF1A\uDF30-\uDF3B]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCF2\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDD50-\uDD59\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC50-\uDC6C\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD50-\uDD59\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDDA0-\uDDA9\uDEE0-\uDEF2\uDFB0\uDFC0-\uDFD4]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF50-\uDF59\uDF5B-\uDF61\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE96\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82C[\uDC00-\uDD1E\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD834[\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD40-\uDD49\uDD4E\uDEC0-\uDEEB\uDEF0-\uDEF9]|\uD83A[\uDC00-\uDCC4\uDCC7-\uDCCF\uDD00-\uDD43\uDD4B\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9]|\uD869[\uDC00-\uDEDD\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])/))){var u=r[1]||r[2]||"";if(!u||u&&(""===n||this.rules.inline.punctuation.exec(n))){var i,o,a=r[0].length-1,s=a,l=0,c="*"===r[0][0]?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;for(c.lastIndex=0,t=t.slice(-1*e.length+a);null!=(r=c.exec(t));)if(i=r[1]||r[2]||r[3]||r[4]||r[5]||r[6])if(o=i.length,r[3]||r[4])s+=o;else if(!((r[5]||r[6])&&a%3)||(a+o)%3){if(!((s-=o)>0)){if(s+l-o<=0&&!t.slice(c.lastIndex).match(c)&&(o=Math.min(o,o+s+l)),Math.min(a,o)%2)return{type:"em",raw:e.slice(0,a+r.index+o+1),text:e.slice(1,a+r.index+o)};if(Math.min(a,o)%2==0)return{type:"strong",raw:e.slice(0,a+r.index+o+1),text:e.slice(2,a+r.index+o-1)}}}else l+=o}}},t.codespan=function(e){var t=this.rules.inline.code.exec(e);if(t){var n=t[2].replace(/\n/g," "),r=/[^ ]/.test(n),u=/^ /.test(n)&&/ $/.test(n);return r&&u&&(n=n.substring(1,n.length-1)),n=O(n,!0),{type:"codespan",raw:t[0],text:n}}},t.br=function(e){var t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}},t.del=function(e){var t=this.rules.inline.del.exec(e);if(t)return{type:"del",raw:t[0],text:t[2]}},t.autolink=function(e,t){var n,r,u=this.rules.inline.autolink.exec(e);if(u)return r="@"===u[2]?"mailto:"+(n=O(this.options.mangle?t(u[1]):u[1])):n=O(u[1]),{type:"link",raw:u[0],text:n,href:r,tokens:[{type:"text",raw:n,text:n}]}},t.url=function(e,t){var n;if(n=this.rules.inline.url.exec(e)){var r,u;if("@"===n[2])u="mailto:"+(r=O(this.options.mangle?t(n[0]):n[0]));else{var i;do{i=n[0],n[0]=this.rules.inline._backpedal.exec(n[0])[0]}while(i!==n[0]);r=O(n[0]),u="www."===n[1]?"http://"+r:r}return{type:"link",raw:n[0],text:r,href:u,tokens:[{type:"text",raw:r,text:r}]}}},t.inlineText=function(e,t,n){var r,u=this.rules.inline.text.exec(e);if(u)return r=t?this.options.sanitize?this.options.sanitizer?this.options.sanitizer(u[0]):O(u[0]):u[0]:O(this.options.smartypants?n(u[0]):u[0]),{type:"text",raw:u[0],text:r}},e}(),L=y,q=v,Z=x,M={newline:/^(?: *(?:\n|$))+/,code:/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?:\n+|$)|$)/,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3})(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?! {0,3}bull )\n*|\s*$)/,html:"^ {0,3}(?:<(script|pre|style)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:\\n{2,}|$)|<(?!script|pre|style)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$))",def:/^ {0,3}\[(label)\]: *\n? *]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,nptable:L,table:L,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html| +\n)[^\n]+)*)/,text:/^[^\n]+/,_label:/(?!\s*\])(?:\\[\[\]]|[^\[\]])+/,_title:/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/};M.def=q(M.def).replace("label",M._label).replace("title",M._title).getRegex(),M.bullet=/(?:[*+-]|\d{1,9}[.)])/,M.item=/^( *)(bull) ?[^\n]*(?:\n(?! *bull ?)[^\n]*)*/,M.item=q(M.item,"gm").replace(/bull/g,M.bullet).getRegex(),M.listItemStart=q(/^( *)(bull)/).replace("bull",M.bullet).getRegex(),M.list=q(M.list).replace(/bull/g,M.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+M.def.source+")").getRegex(),M._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",M._comment=/|$)/,M.html=q(M.html,"i").replace("comment",M._comment).replace("tag",M._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),M.paragraph=q(M._paragraph).replace("hr",M.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|!--)").replace("tag",M._tag).getRegex(),M.blockquote=q(M.blockquote).replace("paragraph",M.paragraph).getRegex(),M.normal=Z({},M),M.gfm=Z({},M.normal,{nptable:"^ *([^|\\n ].*\\|.*)\\n {0,3}([-:]+ *\\|[-| :]*)(?:\\n((?:(?!\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)",table:"^ *\\|(.+)\\n {0,3}\\|?( *[-:]+[-| :]*)(?:\\n *((?:(?!\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"}),M.gfm.nptable=q(M.gfm.nptable).replace("hr",M.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|!--)").replace("tag",M._tag).getRegex(),M.gfm.table=q(M.gfm.table).replace("hr",M.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|!--)").replace("tag",M._tag).getRegex(),M.pedantic=Z({},M.normal,{html:q("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",M._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:L,paragraph:q(M.normal._paragraph).replace("hr",M.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",M.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});var U={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:L,tag:"^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/,nolink:/^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",emStrong:{lDelim:/^(?:\*+(?:([punct_])|[^\s*]))|^_+(?:([punct*])|([^\s_]))/,rDelimAst:/\_\_[^_]*?\*[^_]*?\_\_|[punct_](\*+)(?=[\s]|$)|[^punct*_\s](\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|[^punct*_\s](\*+)(?=[^punct*_\s])/,rDelimUnd:/\*\*[^*]*?\_[^*]*?\*\*|[punct*](\_+)(?=[\s]|$)|[^punct*_\s](\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:L,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\?@\\[\\]`^{|}~"};U.punctuation=q(U.punctuation).replace(/punctuation/g,U._punctuation).getRegex(),U.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g,U.escapedEmSt=/\\\*|\\_/g,U._comment=q(M._comment).replace("(?:--\x3e|$)","--\x3e").getRegex(),U.emStrong.lDelim=q(U.emStrong.lDelim).replace(/punct/g,U._punctuation).getRegex(),U.emStrong.rDelimAst=q(U.emStrong.rDelimAst,"g").replace(/punct/g,U._punctuation).getRegex(),U.emStrong.rDelimUnd=q(U.emStrong.rDelimUnd,"g").replace(/punct/g,U._punctuation).getRegex(),U._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,U._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,U._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,U.autolink=q(U.autolink).replace("scheme",U._scheme).replace("email",U._email).getRegex(),U._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,U.tag=q(U.tag).replace("comment",U._comment).replace("attribute",U._attribute).getRegex(),U._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,U._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/,U._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,U.link=q(U.link).replace("label",U._label).replace("href",U._href).replace("title",U._title).getRegex(),U.reflink=q(U.reflink).replace("label",U._label).getRegex(),U.reflinkSearch=q(U.reflinkSearch,"g").replace("reflink",U.reflink).replace("nolink",U.nolink).getRegex(),U.normal=Z({},U),U.pedantic=Z({},U.normal,{strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:q(/^!?\[(label)\]\((.*?)\)/).replace("label",U._label).getRegex(),reflink:q(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",U._label).getRegex()}),U.gfm=Z({},U.normal,{escape:q(U.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\.5&&(n="x"+n.toString(16)),r+="&#"+n+";";return r}var J=function(){function t(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||H,this.options.tokenizer=this.options.tokenizer||new P,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options;var t={block:N.normal,inline:W.normal};this.options.pedantic?(t.block=N.pedantic,t.inline=W.pedantic):this.options.gfm&&(t.block=N.gfm,this.options.breaks?t.inline=W.breaks:t.inline=W.gfm),this.tokenizer.rules=t}t.lex=function(e,n){return new t(n).lex(e)},t.lexInline=function(e,n){return new t(n).inlineTokens(e)};var n,r,u,i=t.prototype;return i.lex=function(e){return e=e.replace(/\r\n|\r/g,"\n").replace(/\t/g," "),this.blockTokens(e,this.tokens,!0),this.inline(this.tokens),this.tokens},i.blockTokens=function(e,t,n){var r,u,i,o;for(void 0===t&&(t=[]),void 0===n&&(n=!0),this.options.pedantic&&(e=e.replace(/^ +$/gm,""));e;)if(r=this.tokenizer.space(e))e=e.substring(r.raw.length),r.type&&t.push(r);else if(r=this.tokenizer.code(e))e=e.substring(r.raw.length),(o=t[t.length-1])&&"paragraph"===o.type?(o.raw+="\n"+r.raw,o.text+="\n"+r.text):t.push(r);else if(r=this.tokenizer.fences(e))e=e.substring(r.raw.length),t.push(r);else if(r=this.tokenizer.heading(e))e=e.substring(r.raw.length),t.push(r);else if(r=this.tokenizer.nptable(e))e=e.substring(r.raw.length),t.push(r);else if(r=this.tokenizer.hr(e))e=e.substring(r.raw.length),t.push(r);else if(r=this.tokenizer.blockquote(e))e=e.substring(r.raw.length),r.tokens=this.blockTokens(r.text,[],n),t.push(r);else if(r=this.tokenizer.list(e)){for(e=e.substring(r.raw.length),i=r.items.length,u=0;u0)for(;null!=(o=this.tokenizer.rules.inline.reflinkSearch.exec(l));)c.includes(o[0].slice(o[0].lastIndexOf("[")+1,-1))&&(l=l.slice(0,o.index)+"["+X("a",o[0].length-2)+"]"+l.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;null!=(o=this.tokenizer.rules.inline.blockSkip.exec(l));)l=l.slice(0,o.index)+"["+X("a",o[0].length-2)+"]"+l.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;null!=(o=this.tokenizer.rules.inline.escapedEmSt.exec(l));)l=l.slice(0,o.index)+"++"+l.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);for(;e;)if(a||(s=""),a=!1,u=this.tokenizer.escape(e))e=e.substring(u.raw.length),t.push(u);else if(u=this.tokenizer.tag(e,n,r)){e=e.substring(u.raw.length),n=u.inLink,r=u.inRawBlock;var p=t[t.length-1];p&&"text"===u.type&&"text"===p.type?(p.raw+=u.raw,p.text+=u.text):t.push(u)}else if(u=this.tokenizer.link(e))e=e.substring(u.raw.length),"link"===u.type&&(u.tokens=this.inlineTokens(u.text,[],!0,r)),t.push(u);else if(u=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(u.raw.length);var f=t[t.length-1];"link"===u.type?(u.tokens=this.inlineTokens(u.text,[],!0,r),t.push(u)):f&&"text"===u.type&&"text"===f.type?(f.raw+=u.raw,f.text+=u.text):t.push(u)}else if(u=this.tokenizer.emStrong(e,l,s))e=e.substring(u.raw.length),u.tokens=this.inlineTokens(u.text,[],n,r),t.push(u);else if(u=this.tokenizer.codespan(e))e=e.substring(u.raw.length),t.push(u);else if(u=this.tokenizer.br(e))e=e.substring(u.raw.length),t.push(u);else if(u=this.tokenizer.del(e))e=e.substring(u.raw.length),u.tokens=this.inlineTokens(u.text,[],n,r),t.push(u);else if(u=this.tokenizer.autolink(e,Q))e=e.substring(u.raw.length),t.push(u);else if(n||!(u=this.tokenizer.url(e,Q))){if(u=this.tokenizer.inlineText(e,r,G))e=e.substring(u.raw.length),"_"!==u.raw.slice(-1)&&(s=u.raw.slice(-1)),a=!0,(i=t[t.length-1])&&"text"===i.type?(i.raw+=u.raw,i.text+=u.text):t.push(u);else if(e){var D="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(D);break}throw new Error(D)}}else e=e.substring(u.raw.length),t.push(u);return t},n=t,u=[{key:"rules",get:function(){return{block:N,inline:W}}}],(r=null)&&e(n.prototype,r),u&&e(n,u),t}(),K=r.defaults,Y=E,ee=k,te=function(){function e(e){this.options=e||K}var t=e.prototype;return t.code=function(e,t,n){var r=(t||"").match(/\S*/)[0];if(this.options.highlight){var u=this.options.highlight(e,r);null!=u&&u!==e&&(n=!0,e=u)}return e=e.replace(/\n$/,"")+"\n",r?'
'+(n?e:ee(e,!0))+"
\n":"
"+(n?e:ee(e,!0))+"
\n"},t.blockquote=function(e){return"
\n"+e+"
\n"},t.html=function(e){return e},t.heading=function(e,t,n,r){return this.options.headerIds?"'+e+"\n":""+e+"\n"},t.hr=function(){return this.options.xhtml?"
\n":"
\n"},t.list=function(e,t,n){var r=t?"ol":"ul";return"<"+r+(t&&1!==n?' start="'+n+'"':"")+">\n"+e+"\n"},t.listitem=function(e){return"
  • "+e+"
  • \n"},t.checkbox=function(e){return" "},t.paragraph=function(e){return"

    "+e+"

    \n"},t.table=function(e,t){return t&&(t=""+t+""),"\n\n"+e+"\n"+t+"
    \n"},t.tablerow=function(e){return"\n"+e+"\n"},t.tablecell=function(e,t){var n=t.header?"th":"td";return(t.align?"<"+n+' align="'+t.align+'">':"<"+n+">")+e+"\n"},t.strong=function(e){return""+e+""},t.em=function(e){return""+e+""},t.codespan=function(e){return""+e+""},t.br=function(){return this.options.xhtml?"
    ":"
    "},t.del=function(e){return""+e+""},t.link=function(e,t,n){if(null===(e=Y(this.options.sanitize,this.options.baseUrl,e)))return n;var r='"},t.image=function(e,t,n){if(null===(e=Y(this.options.sanitize,this.options.baseUrl,e)))return n;var r=''+n+'":">"},t.text=function(e){return e},e}(),ne=function(){function e(){}var t=e.prototype;return t.strong=function(e){return e},t.em=function(e){return e},t.codespan=function(e){return e},t.del=function(e){return e},t.html=function(e){return e},t.text=function(e){return e},t.link=function(e,t,n){return""+n},t.image=function(e,t,n){return""+n},t.br=function(){return""},e}(),re=function(){function e(){this.seen={}}var t=e.prototype;return t.serialize=function(e){return e.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")},t.getNextSafeSlug=function(e,t){var n=e,r=0;if(this.seen.hasOwnProperty(n)){r=this.seen[e];do{n=e+"-"+ ++r}while(this.seen.hasOwnProperty(n))}return t||(this.seen[e]=r,this.seen[n]=0),n},t.slug=function(e,t){void 0===t&&(t={});var n=this.serialize(e);return this.getNextSafeSlug(n,t.dryrun)},e}(),ue=r.defaults,ie=C,oe=function(){function e(e){this.options=e||ue,this.options.renderer=this.options.renderer||new te,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new ne,this.slugger=new re}e.parse=function(t,n){return new e(n).parse(t)},e.parseInline=function(t,n){return new e(n).parseInline(t)};var t=e.prototype;return t.parse=function(e,t){void 0===t&&(t=!0);var n,r,u,i,o,a,s,l,c,p,f,D,h,g,d,m,b,A,F="",k=e.length;for(n=0;n0&&"text"===d.tokens[0].type?(d.tokens[0].text=A+" "+d.tokens[0].text,d.tokens[0].tokens&&d.tokens[0].tokens.length>0&&"text"===d.tokens[0].tokens[0].type&&(d.tokens[0].tokens[0].text=A+" "+d.tokens[0].tokens[0].text)):d.tokens.unshift({type:"text",text:A}):g+=A),g+=this.parse(d.tokens,h),c+=this.renderer.listitem(g,b,m);F+=this.renderer.list(c,f,D);continue;case"html":F+=this.renderer.html(p.text);continue;case"paragraph":F+=this.renderer.paragraph(this.parseInline(p.tokens));continue;case"text":for(c=p.tokens?this.parseInline(p.tokens):p.text;n+1An error occurred:

    "+le(s.message+"",!0)+"
    ";throw s}}return De.options=De.setOptions=function(e){return ae(De.defaults,e),pe(De.defaults),De},De.getDefaults=ce,De.defaults=fe,De.use=function(e){var t=ae({},e);if(e.renderer&&function(){var n=De.defaults.renderer||new te,r=function(t){var r=n[t];n[t]=function(){for(var u=arguments.length,i=new Array(u),o=0;oAn error occurred:

    "+le(r.message+"",!0)+"
    ";throw r}},De.Parser=oe,De.parser=oe.parse,De.Renderer=te,De.TextRenderer=ne,De.Lexer=J,De.lexer=J.lex,De.Tokenizer=P,De.Slugger=re,De.parse=De,De},"object"===o(t)?e.exports=i():void 0===(u="function"==typeof(r=i)?r.call(t,n,t,e):r)||(e.exports=u)},58556:function(e,t,n){"use strict";var r;(r="undefined"!=typeof process&&"[object process]"==={}.toString.call(process)||"undefined"!=typeof navigator&&"ReactNative"===navigator.product?global:self).Proxy||(r.Proxy=n(87082)(),r.Proxy.revocable=r.Proxy.revocable)},87082:function(e){function t(e){return(t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}e.exports=function(){var e,n=null;function r(e){return!!e&&("object"===t(e)||"function"==typeof e)}return(e=function(e,t){if(!r(e)||!r(t))throw new TypeError("Cannot create proxy with a non-object as target or handler");var u=function(){};n=function(){e=null,u=function(e){throw new TypeError("Cannot perform '".concat(e,"' on a proxy that has been revoked"))}},setTimeout((function(){n=null}),0);var i=t;for(var o in t={get:null,set:null,apply:null,construct:null},i){if(!(o in t))throw new TypeError("Proxy polyfill does not support trap '".concat(o,"'"));t[o]=i[o]}"function"==typeof i&&(t.apply=i.apply.bind(i));var a=this,s=!1,l=!1;"function"==typeof e?(a=function(){var n=this&&this.constructor===a,r=Array.prototype.slice.call(arguments);if(u(n?"construct":"apply"),n&&t.construct)return t.construct.call(this,e,r);if(!n&&t.apply)return t.apply(e,this,r);if(n){r.unshift(e);var i=e.bind.apply(e,r);return new i}return e.apply(this,r)},s=!0):e instanceof Array&&(a=[],l=!0);var c=t.get?function(e){return u("get"),t.get(this,e,a)}:function(e){return u("get"),this[e]},p=t.set?function(e,n){u("set");t.set(this,e,n,a)}:function(e,t){u("set"),this[e]=t},f=Object.getOwnPropertyNames(e),D={};f.forEach((function(t){if(!s&&!l||!(t in a)){var n={enumerable:!!Object.getOwnPropertyDescriptor(e,t).enumerable,get:c.bind(e,t),set:p.bind(e,t)};Object.defineProperty(a,t,n),D[t]=!0}}));var h=!0;if(Object.setPrototypeOf?Object.setPrototypeOf(a,Object.getPrototypeOf(e)):a.__proto__?a.__proto__=e.__proto__:h=!1,t.get||!h)for(var g in e)D[g]||Object.defineProperty(a,g,{get:c.bind(e,g)});return Object.seal(e),Object.seal(a),a}).revocable=function(t,r){return{proxy:new e(t,r),revoke:n}},e}},60841:function(e,t,n){var r=n(8300).FilterCSS,u=n(8300).getDefaultWhiteList,i=n(58511);function o(){return{a:["target","href","title"],abbr:["title"],address:[],area:["shape","coords","href","alt"],article:[],aside:[],audio:["autoplay","controls","loop","preload","src"],b:[],bdi:["dir"],bdo:["dir"],big:[],blockquote:["cite"],br:[],caption:[],center:[],cite:[],code:[],col:["align","valign","span","width"],colgroup:["align","valign","span","width"],dd:[],del:["datetime"],details:["open"],div:[],dl:[],dt:[],em:[],font:["color","size","face"],footer:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],hr:[],i:[],img:["src","alt","title","width","height"],ins:["datetime"],li:[],mark:[],nav:[],ol:[],p:[],pre:[],s:[],section:[],small:[],span:[],sub:[],sup:[],strong:[],table:["width","border","align","valign"],tbody:["align","valign"],td:["width","rowspan","colspan","align","valign"],tfoot:["align","valign"],th:["width","rowspan","colspan","align","valign"],thead:["align","valign"],tr:["rowspan","align","valign"],tt:[],u:[],ul:[],video:["autoplay","controls","loop","preload","src","height","width"]}}var a=new r;function s(e){return e.replace(l,"<").replace(c,">")}var l=//g,p=/"/g,f=/"/g,D=/&#([a-zA-Z0-9]*);?/gim,h=/:?/gim,g=/&newline;?/gim,d=/((j\s*a\s*v\s*a|v\s*b|l\s*i\s*v\s*e)\s*s\s*c\s*r\s*i\s*p\s*t\s*|m\s*o\s*c\s*h\s*a)\:/gi,m=/e\s*x\s*p\s*r\s*e\s*s\s*s\s*i\s*o\s*n\s*\(.*/gi,b=/u\s*r\s*l\s*\(.*/gi;function A(e){return e.replace(p,""")}function F(e){return e.replace(f,'"')}function k(e){return e.replace(D,(function(e,t){return"x"===t[0]||"X"===t[0]?String.fromCharCode(parseInt(t.substr(1),16)):String.fromCharCode(parseInt(t,10))}))}function C(e){return e.replace(h,":").replace(g," ")}function v(e){for(var t="",n=0,r=e.length;n/g;t.whiteList={a:["target","href","title"],abbr:["title"],address:[],area:["shape","coords","href","alt"],article:[],aside:[],audio:["autoplay","controls","loop","preload","src"],b:[],bdi:["dir"],bdo:["dir"],big:[],blockquote:["cite"],br:[],caption:[],center:[],cite:[],code:[],col:["align","valign","span","width"],colgroup:["align","valign","span","width"],dd:[],del:["datetime"],details:["open"],div:[],dl:[],dt:[],em:[],font:["color","size","face"],footer:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],hr:[],i:[],img:["src","alt","title","width","height"],ins:["datetime"],li:[],mark:[],nav:[],ol:[],p:[],pre:[],s:[],section:[],small:[],span:[],sub:[],sup:[],strong:[],table:["width","border","align","valign"],tbody:["align","valign"],td:["width","rowspan","colspan","align","valign"],tfoot:["align","valign"],th:["width","rowspan","colspan","align","valign"],thead:["align","valign"],tr:["rowspan","align","valign"],tt:[],u:[],ul:[],video:["autoplay","controls","loop","preload","src","height","width"]},t.getDefaultWhiteList=o,t.onTag=function(e,t,n){},t.onIgnoreTag=function(e,t,n){},t.onTagAttr=function(e,t,n){},t.onIgnoreTagAttr=function(e,t,n){},t.safeAttrValue=function(e,t,n,r){if(n=E(n),"href"===t||"src"===t){if("#"===(n=i.trim(n)))return"#";if("http://"!==n.substr(0,7)&&"https://"!==n.substr(0,8)&&"mailto:"!==n.substr(0,7)&&"tel:"!==n.substr(0,4)&&"#"!==n[0]&&"/"!==n[0])return""}else if("background"===t){if(d.lastIndex=0,d.test(n))return""}else if("style"===t){if(m.lastIndex=0,m.test(n))return"";if(b.lastIndex=0,b.test(n)&&(d.lastIndex=0,d.test(n)))return"";!1!==r&&(n=(r=r||a).process(n))}return n=y(n)},t.escapeHtml=s,t.escapeQuote=A,t.unescapeQuote=F,t.escapeHtmlEntities=k,t.escapeDangerHtml5Entities=C,t.clearNonPrintableCharacter=v,t.friendlyAttrValue=E,t.escapeAttrValue=y,t.onIgnoreTagStripAll=function(){return""},t.StripTagBody=function(e,t){"function"!=typeof t&&(t=function(){});var n=!Array.isArray(e),r=[],u=!1;return{onIgnoreTag:function(o,a,s){if(function(t){return!!n||-1!==i.indexOf(e,t)}(o)){if(s.isClosing){var l="[/removed]",c=s.position+l.length;return r.push([!1!==u?u:s.position,c]),u=!1,l}return u||(u=s.position),"[removed]"}return t(o,a,s)},remove:function(e){var t="",n=0;return i.forEach(r,(function(r){t+=e.slice(n,r[0]),n=r[1]})),t+=e.slice(n)}}},t.stripCommentTag=function(e){return e.replace(x,"")},t.stripBlankChar=function(e){var t=e.split("");return(t=t.filter((function(e){var t=e.charCodeAt(0);return 127!==t&&(!(t<=31)||(10===t||13===t))}))).join("")},t.cssFilter=a,t.getDefaultCSSWhiteList=u},62173:function(e,t,n){var r=n(60841),u=n(79542),i=n(61585);function o(e,t){return new i(t).process(e)}for(var a in(t=e.exports=o).filterXSS=o,t.FilterXSS=i,r)t[a]=r[a];for(var a in u)t[a]=u[a];"undefined"!=typeof window&&(window.filterXSS=e.exports),"undefined"!=typeof self&&"undefined"!=typeof DedicatedWorkerGlobalScope&&self instanceof DedicatedWorkerGlobalScope&&(self.filterXSS=e.exports)},79542:function(e,t,n){var r=n(58511);function u(e){var t=r.spaceIndex(e);if(-1===t)var n=e.slice(1,-1);else n=e.slice(1,t+1);return"/"===(n=r.trim(n).toLowerCase()).slice(0,1)&&(n=n.slice(1)),"/"===n.slice(-1)&&(n=n.slice(0,-1)),n}function i(e){return"0;t--){var n=e[t];if(" "!==n)return"="===n?t:-1}}function l(e){return function(e){return'"'===e[0]&&'"'===e[e.length-1]||"'"===e[0]&&"'"===e[e.length-1]}(e)?e.substr(1,e.length-2):e}t.parseTag=function(e,t,n){var r="",o=0,a=!1,s=!1,l=0,c=e.length,p="",f="";for(l=0;l"===D){r+=n(e.slice(o,a)),p=u(f=e.slice(a,l+1)),r+=t(a,r.length,p,f,i(f)),o=l+1,a=!1;continue}if(('"'===D||"'"===D)&&"="===e.charAt(l-1)){s=D;continue}}else if(D===s){s=!1;continue}}return o";var b=function(e){var t=s.spaceIndex(e);if(-1===t)return{html:"",closing:"/"===e[e.length-2]};var n="/"===(e=s.trim(e.slice(t+1,-1)))[e.length-1];return n&&(e=s.trim(e.slice(0,-1))),{html:e,closing:n}}(o),A=n[u],F=a(b.html,(function(e,t){var n,r=-1!==s.indexOf(A,e);return l(n=c(u,e,t,r))?r?(t=f(u,e,t,h))?e+'="'+t+'"':e:l(n=p(u,e,t,r))?void 0:n:n}));o="<"+u;return F&&(o+=" "+F),b.closing&&(o+=" /"),o+=">"}return l(d=i(u,o,m))?D(o):d}),D);return g&&(d=g.remove(d)),d},e.exports=c}}]); +//# sourceMappingURL=chunk.23709353009814f6ec3d.js.map \ No newline at end of file diff --git a/supervisor/api/panel/frontend_es5/chunk.23709353009814f6ec3d.js.gz b/supervisor/api/panel/frontend_es5/chunk.23709353009814f6ec3d.js.gz new file mode 100644 index 000000000..045482840 Binary files /dev/null and b/supervisor/api/panel/frontend_es5/chunk.23709353009814f6ec3d.js.gz differ diff --git a/supervisor/api/panel/frontend_es5/chunk.23709353009814f6ec3d.js.map b/supervisor/api/panel/frontend_es5/chunk.23709353009814f6ec3d.js.map new file mode 100644 index 000000000..593726171 --- /dev/null +++ b/supervisor/api/panel/frontend_es5/chunk.23709353009814f6ec3d.js.map @@ -0,0 +1 @@ +{"version":3,"file":"chunk.23709353009814f6ec3d.js","sources":["webpack://home-assistant-frontend/chunk.23709353009814f6ec3d.js"],"mappings":"AAAA","sourceRoot":""} \ No newline at end of file diff --git a/supervisor/api/panel/frontend_es5/chunk.28ab065538efa89db557.js b/supervisor/api/panel/frontend_es5/chunk.28ab065538efa89db557.js new file mode 100644 index 000000000..747f0955c --- /dev/null +++ b/supervisor/api/panel/frontend_es5/chunk.28ab065538efa89db557.js @@ -0,0 +1,2 @@ +(self.webpackChunkhome_assistant_frontend=self.webpackChunkhome_assistant_frontend||[]).push([[226],{98226:function(e,r,t){"use strict";t.r(r);var n=t(99722),i=t(54211),o=t(15493),s=(t(48811),t(83849));function a(e){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function c(e,r){return C(e)||function(e,r){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var t=[],n=!0,i=!1,o=void 0;try{for(var s,a=e[Symbol.iterator]();!(n=(s=a.next()).done)&&(t.push(s.value),!r||t.length!==r);n=!0);}catch(c){i=!0,o=c}finally{try{n||null==a.return||a.return()}finally{if(i)throw o}}return t}(e,r)||j(e,r)||O()}function l(){var e=d([""]);return l=function(){return e},e}function u(){var e=d([""]);return u=function(){return e},e}function f(){var e=d(['\n ',"\n
    "]);return f=function(){return e},e}function d(e,r){return r||(r=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(r)}}))}function p(e,r){if(!(e instanceof r))throw new TypeError("Cannot call a class as a function")}function h(e,r){return(h=Object.setPrototypeOf||function(e,r){return e.__proto__=r,e})(e,r)}function m(e){var r=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var t,n=A(e);if(r){var i=A(this).constructor;t=Reflect.construct(n,arguments,i)}else t=n.apply(this,arguments);return y(this,t)}}function y(e,r){return!r||"object"!==a(r)&&"function"!=typeof r?v(e):r}function v(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function b(){b=function(){return e};var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,r){["method","field"].forEach((function(t){r.forEach((function(r){r.kind===t&&"own"===r.placement&&this.defineClassElement(e,r)}),this)}),this)},initializeClassElements:function(e,r){var t=e.prototype;["method","field"].forEach((function(n){r.forEach((function(r){var i=r.placement;if(r.kind===n&&("static"===i||"prototype"===i)){var o="static"===i?e:t;this.defineClassElement(o,r)}}),this)}),this)},defineClassElement:function(e,r){var t=r.descriptor;if("field"===r.kind){var n=r.initializer;t={enumerable:t.enumerable,writable:t.writable,configurable:t.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,r.key,t)},decorateClass:function(e,r){var t=[],n=[],i={static:[],prototype:[],own:[]};if(e.forEach((function(e){this.addElementPlacement(e,i)}),this),e.forEach((function(e){if(!g(e))return t.push(e);var r=this.decorateElement(e,i);t.push(r.element),t.push.apply(t,r.extras),n.push.apply(n,r.finishers)}),this),!r)return{elements:t,finishers:n};var o=this.decorateConstructor(t,r);return n.push.apply(n,o.finishers),o.finishers=n,o},addElementPlacement:function(e,r,t){var n=r[e.placement];if(!t&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,r){for(var t=[],n=[],i=e.decorators,o=i.length-1;o>=0;o--){var s=r[e.placement];s.splice(s.indexOf(e.key),1);var a=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(a)||a);e=c.element,this.addElementPlacement(e,r),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,r[n])(i)||i);if(void 0!==o.finisher&&t.push(o.finisher),void 0!==o.elements){e=o.elements;for(var s=0;se.length)&&(r=e.length);for(var t=0,n=new Array(r);t-1}(r))return r;var s=r.match(i);if(!s)return r;var a=s[0];return t.test(a)?"about:blank":r}}}]); +//# sourceMappingURL=chunk.28ab065538efa89db557.js.map \ No newline at end of file diff --git a/supervisor/api/panel/frontend_es5/chunk.28ab065538efa89db557.js.gz b/supervisor/api/panel/frontend_es5/chunk.28ab065538efa89db557.js.gz new file mode 100644 index 000000000..4f925e3dc Binary files /dev/null and b/supervisor/api/panel/frontend_es5/chunk.28ab065538efa89db557.js.gz differ diff --git a/supervisor/api/panel/frontend_es5/chunk.28ab065538efa89db557.js.map b/supervisor/api/panel/frontend_es5/chunk.28ab065538efa89db557.js.map new file mode 100644 index 000000000..2378bdbe0 --- /dev/null +++ b/supervisor/api/panel/frontend_es5/chunk.28ab065538efa89db557.js.map @@ -0,0 +1 @@ +{"version":3,"file":"chunk.28ab065538efa89db557.js","sources":["webpack://home-assistant-frontend/chunk.28ab065538efa89db557.js"],"mappings":"AAAA","sourceRoot":""} \ No newline at end of file diff --git a/supervisor/api/panel/frontend_es5/chunk.2e5192dd0552c13e5623.js b/supervisor/api/panel/frontend_es5/chunk.2e5192dd0552c13e5623.js new file mode 100644 index 000000000..707525646 --- /dev/null +++ b/supervisor/api/panel/frontend_es5/chunk.2e5192dd0552c13e5623.js @@ -0,0 +1,2 @@ +(self.webpackChunkhome_assistant_frontend=self.webpackChunkhome_assistant_frontend||[]).push([[914],{92914:function(r,o,e){"use strict";e.r(o),e.d(o,{keymap:function(){return t.$f},highlightActiveLine:function(){return t.ZO},drawSelection:function(){return t.Uw},EditorView:function(){return t.tk},EditorState:function(){return l.yy},Prec:function(){return l.Wl},defaultKeymap:function(){return p.wQ},lineNumbers:function(){return d.Eu},searchKeymap:function(){return m.Lp},highlightSelectionMatches:function(){return m.sW},history:function(){return u.m8},historyKeymap:function(){return u.f$},rectangularSelection:function(){return g.Z},HighlightStyle:function(){return a.Qf},tags:function(){return a.pJ},langs:function(){return s},langCompartment:function(){return v},readonlyCompartment:function(){return b},tabKeyBindings:function(){return f},theme:function(){return y},highlightStyle:function(){return h}});var a=e(49619),t=e(19753),n=e(11163),c=e(49413),i=e(8987),p=e(86876),l=e(77885),d=e(11254),m=e(72360),u=e(62118),g=e(63637),s={jinja2:n.i.define(c.b),yaml:n.i.define(i.r)},v=new l.F6,b=new l.F6,f=[{key:"Tab",run:p.at},{key:"Shift-Tab",run:p.xi}],y=t.tk.theme({"&":{color:"var(--primary-text-color)",backgroundColor:"var(--code-editor-background-color, var(--card-background-color))","& ::selection":{backgroundColor:"rgba(var(--rgb-primary-color), 0.3)"},caretColor:"var(--secondary-text-color)",height:"var(--code-mirror-height, auto)",maxHeight:"var(--code-mirror-max-height, unset)"},"&.cm-focused":{outline:"none"},"&.cm-focused .cm-cursor":{borderLeftColor:"var(--secondary-text-color)"},"&.cm-focused .cm-selectionBackground, .cm-selectionBackground":{backgroundColor:"rgba(var(--rgb-primary-color), 0.3)"},".cm-activeLine":{backgroundColor:"rgba(var(--rgb-secondary-text-color), 0.1)"},".cm-scroller":{outline:"none"},".cm-content":{caretColor:"var(--secondary-text-color)"},".cm-panels":{backgroundColor:"var(--primary-background-color)",color:"var(--primary-text-color)"},".cm-panels.top":{borderBottom:"1px solid var(--divider-color)"},".cm-panels.bottom":{borderTop:"1px solid var(--divider-color)"},".cm-panel.search input":{margin:"4px 4px 0"},".cm-button":{border:"1px solid var(--primary-color)",padding:"0px 16px",textTransform:"uppercase",margin:"4px",background:"none",color:"var(--primary-color)",fontFamily:"var(--mdc-typography-button-font-family, var(--mdc-typography-font-family, Roboto, sans-serif))",fontSize:"var(--mdc-typography-button-font-size, 0.875rem)",height:"36px",fontWeight:"var(--mdc-typography-button-font-weight, 500)",borderRadius:"4px",letterSpacing:"var(--mdc-typography-button-letter-spacing, 0.0892857em)"},".cm-textfield":{padding:"4px 0px 5px",borderRadius:"0",fontSize:"16px",color:"var(--primary-text-color)",border:"0",background:"none",fontFamily:"Roboto",borderBottom:"1px solid var(--paper-input-container-color, var(--secondary-text-color))",margin:"4px 4px 0","& ::placeholder":{color:"var(--paper-input-container-color, var(--secondary-text-color))"},"&:focus":{outline:"none",borderBottom:"2px solid var(--primary-color)",paddingBottom:"4px"}},".cm-selectionMatch":{backgroundColor:"rgba(var(--rgb-primary-color), 0.1)"},".cm-searchMatch":{backgroundColor:"rgba(var(--rgb-accent-color), .2)",outline:"1px solid rgba(var(--rgb-accent-color), .4)"},".cm-searchMatch.selected":{backgroundColor:"rgba(var(--rgb-accent-color), .4)",outline:"1px solid var(--accent-color)"},".cm-gutters":{backgroundColor:"var(--paper-dialog-background-color, var(--primary-background-color))",color:"var(--paper-dialog-color, var(--secondary-text-color))",border:"none",borderRight:"1px solid var(--paper-input-container-color, var(--secondary-text-color))",paddingRight:"1px"},"&.cm-focused cm-gutters":{borderRight:"2px solid var(--paper-input-container-focus-color, var(--primary-color))",paddingRight:"0"},".cm-gutterElement.lineNumber":{color:"inherit"}}),h=a.Qf.define([{tag:a.pJ.keyword,color:"var(--codemirror-keyword, #6262FF)"},{tag:[a.pJ.name,a.pJ.deleted,a.pJ.character,a.pJ.propertyName,a.pJ.macroName],color:"var(--codemirror-property, #905)"},{tag:[a.pJ.function(a.pJ.variableName),a.pJ.labelName],color:"var(--codemirror-variable, #07a)"},{tag:[a.pJ.color,a.pJ.constant(a.pJ.name),a.pJ.standard(a.pJ.name)],color:"var(--codemirror-qualifier, #690)"},{tag:[a.pJ.definition(a.pJ.name),a.pJ.separator],color:"var(--codemirror-def, #8DA6CE)"},{tag:[a.pJ.typeName,a.pJ.className,a.pJ.number,a.pJ.changed,a.pJ.annotation,a.pJ.modifier,a.pJ.self,a.pJ.namespace],color:"var(--codemirror-number, #ca7841)"},{tag:[a.pJ.operator,a.pJ.operatorKeyword,a.pJ.url,a.pJ.escape,a.pJ.regexp,a.pJ.link,a.pJ.special(a.pJ.string)],color:"var(--codemirror-operator, #cda869)"},{tag:a.pJ.comment,color:"var(--codemirror-comment, #777)"},{tag:a.pJ.meta,color:"var(--codemirror-meta, var(--primary-text-color))"},{tag:a.pJ.strong,fontWeight:"bold"},{tag:a.pJ.emphasis,fontStyle:"italic"},{tag:a.pJ.link,color:"var(--primary-color)",textDecoration:"underline"},{tag:a.pJ.heading,fontWeight:"bold"},{tag:a.pJ.atom,color:"var(--codemirror-atom, #F90)"},{tag:a.pJ.bool,color:"var(--codemirror-atom, #F90)"},{tag:a.pJ.special(a.pJ.variableName),color:"var(--codemirror-variable-2, #690)"},{tag:a.pJ.processingInstruction,color:"var(--secondary-text-color)"},{tag:a.pJ.string,color:"var(--codemirror-string, #07a)"},{tag:a.pJ.inserted,color:"var(--codemirror-string2, #07a)"},{tag:a.pJ.invalid,color:"var(--error-color)"}])}}]); +//# sourceMappingURL=chunk.2e5192dd0552c13e5623.js.map \ No newline at end of file diff --git a/supervisor/api/panel/frontend_es5/chunk.2e5192dd0552c13e5623.js.gz b/supervisor/api/panel/frontend_es5/chunk.2e5192dd0552c13e5623.js.gz new file mode 100644 index 000000000..3d28c7a0c Binary files /dev/null and b/supervisor/api/panel/frontend_es5/chunk.2e5192dd0552c13e5623.js.gz differ diff --git a/supervisor/api/panel/frontend_es5/chunk.2e5192dd0552c13e5623.js.map b/supervisor/api/panel/frontend_es5/chunk.2e5192dd0552c13e5623.js.map new file mode 100644 index 000000000..730dab17b --- /dev/null +++ b/supervisor/api/panel/frontend_es5/chunk.2e5192dd0552c13e5623.js.map @@ -0,0 +1 @@ +{"version":3,"file":"chunk.2e5192dd0552c13e5623.js","sources":["webpack://home-assistant-frontend/chunk.2e5192dd0552c13e5623.js"],"mappings":"AAAA","sourceRoot":""} \ No newline at end of file diff --git a/supervisor/api/panel/frontend_es5/chunk.3a2a2f6b4ddd0c4883f8.js b/supervisor/api/panel/frontend_es5/chunk.3a2a2f6b4ddd0c4883f8.js new file mode 100644 index 000000000..ecd7e8348 --- /dev/null +++ b/supervisor/api/panel/frontend_es5/chunk.3a2a2f6b4ddd0c4883f8.js @@ -0,0 +1,3 @@ +/*! For license information please see chunk.3a2a2f6b4ddd0c4883f8.js.LICENSE.txt */ +(self.webpackChunkhome_assistant_frontend=self.webpackChunkhome_assistant_frontend||[]).push([[619],{37087:function(e,n,t){"use strict";t(51309),t(65660);var i=t(26110),r=t(98235),a=t(67139),o=t(18149),s=t(50856);function l(){var e=function(e,n){n||(n=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}}))}(['\n \n\n \x3c!-- the mirror sizes the input/textarea so it grows with typing --\x3e\n \x3c!-- use   instead   of to allow this element to be used in XHTML --\x3e\n \n\n \x3c!-- size the input/textarea with a div, because the textarea has intrinsic size in ff --\x3e\n
    \n \n
    \n'],['\n \n\n \x3c!-- the mirror sizes the input/textarea so it grows with typing --\x3e\n \x3c!-- use   instead   of to allow this element to be used in XHTML --\x3e\n \n\n \x3c!-- size the input/textarea with a div, because the textarea has intrinsic size in ff --\x3e\n
    \n \n
    \n']);return l=function(){return e},e}(0,a.k)({_template:(0,s.d)(l()),is:"iron-autogrow-textarea",behaviors:[r.x,i.a],properties:{value:{observer:"_valueChanged",type:String,notify:!0},bindValue:{observer:"_bindValueChanged",type:String,notify:!0},rows:{type:Number,value:1,observer:"_updateCached"},maxRows:{type:Number,value:0,observer:"_updateCached"},autocomplete:{type:String,value:"off"},autofocus:{type:Boolean,value:!1},inputmode:{type:String},placeholder:{type:String},readonly:{type:String},required:{type:Boolean},minlength:{type:Number},maxlength:{type:Number},label:{type:String}},listeners:{input:"_onInput"},get textarea(){return this.$.textarea},get selectionStart(){return this.$.textarea.selectionStart},get selectionEnd(){return this.$.textarea.selectionEnd},set selectionStart(e){this.$.textarea.selectionStart=e},set selectionEnd(e){this.$.textarea.selectionEnd=e},attached:function(){navigator.userAgent.match(/iP(?:[oa]d|hone)/)&&(this.$.textarea.style.marginLeft="-3px")},validate:function(){var e=this.$.textarea.validity.valid;return e&&(this.required&&""===this.value?e=!1:this.hasValidator()&&(e=r.x.validate.call(this,this.value))),this.invalid=!e,this.fire("iron-input-validate"),e},_bindValueChanged:function(e){this.value=e},_valueChanged:function(e){var n=this.textarea;n&&(n.value!==e&&(n.value=e||0===e?e:""),this.bindValue=e,this.$.mirror.innerHTML=this._valueForMirror(),this.fire("bind-value-changed",{value:this.bindValue}))},_onInput:function(e){var n=(0,o.vz)(e).path;this.value=n?n[0].value:e.target.value},_constrain:function(e){var n;for(e=e||[""],n=this.maxRows>0&&e.length>this.maxRows?e.slice(0,this.maxRows):e.slice(0);this.rows>0&&n.length")+" "},_valueForMirror:function(){var e=this.textarea;if(e)return this.tokens=e&&e.value?e.value.replace(/&/gm,"&").replace(/"/gm,""").replace(/'/gm,"'").replace(//gm,">").split("\n"):[""],this._constrain(this.tokens)},_updateCached:function(){this.$.mirror.innerHTML=this._constrain(this.tokens)}})},25782:function(e,n,t){"use strict";t(51309),t(65660),t(70019),t(97968);var i=t(67139),r=t(50856),a=t(33760);function o(){var e=function(e,n){n||(n=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}}))}(['\n \n \n\n
    \n \n
    \n \n']);return o=function(){return e},e}(0,i.k)({_template:(0,r.d)(o()),is:"paper-icon-item",behaviors:[a.U]})},1548:function(e,n,t){"use strict";t(65660),t(77956);var i=t(51309),r={properties:{value:{type:Number,value:0,notify:!0,reflectToAttribute:!0},min:{type:Number,value:0,notify:!0},max:{type:Number,value:100,notify:!0},step:{type:Number,value:1,notify:!0},ratio:{type:Number,value:0,readOnly:!0,notify:!0}},observers:["_update(value, min, max, step)"],_calcRatio:function(e){return(this._clampValue(e)-this.min)/(this.max-this.min)},_clampValue:function(e){return Math.min(this.max,Math.max(this.min,this._calcStep(e)))},_calcStep:function(e){if(e=parseFloat(e),!this.step)return e;var n=Math.round((e-this.min)/this.step);return this.step<1?n/(1/this.step)+this.min:n*this.step+this.min},_validateValue:function(){var e=this._clampValue(this.value);return this.value=this.oldValue=isNaN(e)?this.oldValue:e,this.value!==e},_update:function(){this._validateValue(),this._setRatio(100*this._calcRatio(this.value))}},a=t(67139),o=t(50856);function s(){var e=function(e,n){n||(n=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}}))}(['\n \n\n
    \n
    \n
    \n
    \n'],['\n \n\n
    \n
    \n
    \n
    \n']);return s=function(){return e},e}(0,a.k)({_template:(0,o.d)(s()),is:"paper-progress",behaviors:[r],properties:{secondaryProgress:{type:Number,value:0},secondaryRatio:{type:Number,value:0,readOnly:!0},indeterminate:{type:Boolean,value:!1,observer:"_toggleIndeterminate"},disabled:{type:Boolean,value:!1,reflectToAttribute:!0,observer:"_disabledChanged"}},observers:["_progressChanged(secondaryProgress, value, min, max, indeterminate)"],hostAttributes:{role:"progressbar"},_toggleIndeterminate:function(e){this.toggleClass("indeterminate",e,this.$.primaryProgress)},_transformProgress:function(e,n){var t="scaleX("+n/100+")";e.style.transform=e.style.webkitTransform=t},_mainRatioChanged:function(e){this._transformProgress(this.$.primaryProgress,e)},_progressChanged:function(e,n,t,i,r){e=this._clampValue(e),n=this._clampValue(n);var a=100*this._calcRatio(e),o=100*this._calcRatio(n);this._setSecondaryRatio(a),this._transformProgress(this.$.secondaryProgress,a),this._transformProgress(this.$.primaryProgress,o),this.secondaryProgress=e,r?this.removeAttribute("aria-valuenow"):this.setAttribute("aria-valuenow",n),this.setAttribute("aria-valuemin",t),this.setAttribute("aria-valuemax",i)},_disabledChanged:function(e){this.setAttribute("aria-disabled",e?"true":"false")},_hideSecondaryProgress:function(e){return 0===e}});var l=t(8621),c=t(21006),u=t(49075),d=t(81668);function p(){var e=function(e,n){n||(n=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(n)}}))}(['\n \n\n
    \n
    \n \n
    \n\n \n\n
    \n
    \n
    \n
    \n\n \n'],['\n \n\n
    \n
    \n \n
    \n\n \n\n
    \n
    \n
    \n
    \n\n \n']);return p=function(){return e},e}var h=(0,i.dy)(p());h.setAttribute("strip-whitespace",""),(0,a.k)({_template:h,is:"paper-slider",behaviors:[l.G,c.V,u.B,r],properties:{value:{type:Number,value:0},snaps:{type:Boolean,value:!1,notify:!0},pin:{type:Boolean,value:!1,notify:!0},secondaryProgress:{type:Number,value:0,notify:!0,observer:"_secondaryProgressChanged"},editable:{type:Boolean,value:!1},immediateValue:{type:Number,value:0,readOnly:!0,notify:!0},maxMarkers:{type:Number,value:0,notify:!0},expand:{type:Boolean,value:!1,readOnly:!0},ignoreBarTouch:{type:Boolean,value:!1},dragging:{type:Boolean,value:!1,readOnly:!0,notify:!0},transiting:{type:Boolean,value:!1,readOnly:!0},markers:{type:Array,readOnly:!0,value:function(){return[]}}},observers:["_updateKnob(value, min, max, snaps, step)","_valueChanged(value)","_immediateValueChanged(immediateValue)","_updateMarkers(maxMarkers, min, max, snaps)"],hostAttributes:{role:"slider",tabindex:0},keyBindings:{left:"_leftKey",right:"_rightKey","down pagedown home":"_decrementKey","up pageup end":"_incrementKey"},ready:function(){this.ignoreBarTouch&&(0,d.BP)(this.$.sliderBar,"auto")},increment:function(){this.value=this._clampValue(this.value+this.step)},decrement:function(){this.value=this._clampValue(this.value-this.step)},_updateKnob:function(e,n,t,i,r){this.setAttribute("aria-valuemin",n),this.setAttribute("aria-valuemax",t),this.setAttribute("aria-valuenow",e),this._positionKnob(100*this._calcRatio(e))},_valueChanged:function(){this.fire("value-change",{composed:!0})},_immediateValueChanged:function(){this.dragging?this.fire("immediate-value-change",{composed:!0}):this.value=this.immediateValue},_secondaryProgressChanged:function(){this.secondaryProgress=this._clampValue(this.secondaryProgress)},_expandKnob:function(){this._setExpand(!0)},_resetKnob:function(){this.cancelDebouncer("expandKnob"),this._setExpand(!1)},_positionKnob:function(e){this._setImmediateValue(this._calcStep(this._calcKnobPosition(e))),this._setRatio(100*this._calcRatio(this.immediateValue)),this.$.sliderKnob.style.left=this.ratio+"%",this.dragging&&(this._knobstartx=this.ratio*this._w/100,this.translate3d(0,0,0,this.$.sliderKnob))},_calcKnobPosition:function(e){return(this.max-this.min)*e/100+this.min},_onTrack:function(e){switch(e.stopPropagation(),e.detail.state){case"start":this._trackStart(e);break;case"track":this._trackX(e);break;case"end":this._trackEnd()}},_trackStart:function(e){this._setTransiting(!1),this._w=this.$.sliderBar.offsetWidth,this._x=this.ratio*this._w/100,this._startx=this._x,this._knobstartx=this._startx,this._minx=-this._startx,this._maxx=this._w-this._startx,this.$.sliderKnob.classList.add("dragging"),this._setDragging(!0)},_trackX:function(e){this.dragging||this._trackStart(e);var n=this._isRTL?-1:1,t=Math.min(this._maxx,Math.max(this._minx,e.detail.dx*n));this._x=this._startx+t;var i=this._calcStep(this._calcKnobPosition(this._x/this._w*100));this._setImmediateValue(i);var r=this._calcRatio(this.immediateValue)*this._w-this._knobstartx;this.translate3d(r+"px",0,0,this.$.sliderKnob)},_trackEnd:function(){var e=this.$.sliderKnob.style;this.$.sliderKnob.classList.remove("dragging"),this._setDragging(!1),this._resetKnob(),this.value=this.immediateValue,e.transform=e.webkitTransform="",this.fire("change",{composed:!0})},_knobdown:function(e){this._expandKnob(),e.preventDefault(),this.focus()},_bartrack:function(e){this._allowBarEvent(e)&&this._onTrack(e)},_barclick:function(e){this._w=this.$.sliderBar.offsetWidth;var n=this.$.sliderBar.getBoundingClientRect(),t=(e.detail.x-n.left)/this._w*100;this._isRTL&&(t=100-t);var i=this.ratio;this._setTransiting(!0),this._positionKnob(t),i===this.ratio&&this._setTransiting(!1),this.async((function(){this.fire("change",{composed:!0})})),e.preventDefault(),this.focus()},_bardown:function(e){this._allowBarEvent(e)&&(this.debounce("expandKnob",this._expandKnob,60),this._barclick(e))},_knobTransitionEnd:function(e){e.target===this.$.sliderKnob&&this._setTransiting(!1)},_updateMarkers:function(e,n,t,i){i||this._setMarkers([]);var r=Math.round((t-n)/this.step);r>e&&(r=e),(r<0||!isFinite(r))&&(r=0),this._setMarkers(new Array(r))},_mergeClasses:function(e){return Object.keys(e).filter((function(n){return e[n]})).join(" ")},_getClassNames:function(){return this._mergeClasses({disabled:this.disabled,pin:this.pin,snaps:this.snaps,ring:this.immediateValue<=this.min,expand:this.expand,dragging:this.dragging,transiting:this.transiting,editable:this.editable})},_allowBarEvent:function(e){return!this.ignoreBarTouch||e.detail.sourceEvent instanceof MouseEvent},get _isRTL(){return void 0===this.__isRTL&&(this.__isRTL="rtl"===window.getComputedStyle(this).direction),this.__isRTL},_leftKey:function(e){this._isRTL?this._incrementKey(e):this._decrementKey(e)},_rightKey:function(e){this._isRTL?this._decrementKey(e):this._incrementKey(e)},_incrementKey:function(e){this.disabled||("end"===e.detail.key?this.value=this.max:this.increment(),this.fire("change"),e.preventDefault())},_decrementKey:function(e){this.disabled||("home"===e.detail.key?this.value=this.min:this.decrement(),this.fire("change"),e.preventDefault())},_changeValue:function(e){this.value=e.target.value,this.fire("change",{composed:!0})},_inputKeyDown:function(e){e.stopPropagation()},_createRipple:function(){return this._rippleContainer=this.$.sliderKnob,u.S._createRipple.call(this)},_focusedChanged:function(e){e&&this.ensureRipple(),this.hasRipple()&&(this._ripple.style.display=e?"":"none",this._ripple.holdDown=e)}})},91107:function(e,n,t){"use strict";function i(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var t=[],i=!0,r=!1,a=void 0;try{for(var o,s=e[Symbol.iterator]();!(i=(o=s.next()).done)&&(t.push(o.value),!n||t.length!==n);i=!0);}catch(l){r=!0,a=l}finally{try{i||null==s.return||s.return()}finally{if(r)throw a}}return t}(e,n)||c(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function a(e,n,t){return(a=o()?Reflect.construct:function(e,n,t){var i=[null];i.push.apply(i,n);var r=new(Function.bind.apply(e,i));return t&&s(r,t.prototype),r}).apply(null,arguments)}function o(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function s(e,n){return(s=Object.setPrototypeOf||function(e,n){return e.__proto__=n,e})(e,n)}function l(e){return function(e){if(Array.isArray(e))return u(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||c(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(e,n){if(e){if("string"==typeof e)return u(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?u(e,n):void 0}}function u(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,i=new Array(n);t1&&void 0!==arguments[1]?arguments[1]:self;n.addEventListener("message",(function t(o){if(o&&o.data){var s,c=Object.assign({path:[]},o.data),u=c.id,d=c.type,p=c.path,h=(o.data.argumentList||[]).map(S);try{var f=p.slice(0,-1).reduce((function(e,n){return e[n]}),e),g=p.reduce((function(e,n){return e[n]}),e);switch(d){case 0:s=g;break;case 1:f[p.slice(-1)[0]]=S(o.data.value),s=!0;break;case 2:s=g.apply(f,h);break;case 3:var b;s=E(a(g,l(h)));break;case 4:var _=new MessageChannel,w=_.port1,x=_.port2;v(e,x),s=P(w,[w]);break;case 5:s=void 0}}catch(b){s=r({value:b},m,0)}Promise.resolve(s).catch((function(e){return r({value:e},m,0)})).then((function(e){var r=i(A(e),2),a=r[0],o=r[1];n.postMessage(Object.assign(Object.assign({},a),{id:u}),o),5===d&&(n.removeEventListener("message",t),y(n))}))}})),n.start&&n.start()}function y(e){(function(e){return"MessagePort"===e.constructor.name})(e)&&e.close()}function _(e,n){return x(e,[],n)}function w(e){if(e)throw new Error("Proxy has been released and is not useable")}function x(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},r=!1,a=new Proxy(t,{get:function(t,i){if(w(r),i===f)return function(){return R(e,{type:5,path:n.map((function(e){return e.toString()}))}).then((function(){y(e),r=!0}))};if("then"===i){if(0===n.length)return{then:function(){return a}};var o=R(e,{type:0,path:n.map((function(e){return e.toString()}))}).then(S);return o.then.bind(o)}return x(e,[].concat(l(n),[i]))},set:function(t,a,o){w(r);var s=i(A(o),2),c=s[0],u=s[1];return R(e,{type:1,path:[].concat(l(n),[a]).map((function(e){return e.toString()})),value:c},u).then(S)},apply:function(t,a,o){w(r);var s=n[n.length-1];if(s===h)return R(e,{type:4}).then(S);if("bind"===s)return x(e,n.slice(0,-1));var l=i(k(o),2),c=l[0],u=l[1];return R(e,{type:2,path:n.map((function(e){return e.toString()})),argumentList:c},u).then(S)},construct:function(t,a){w(r);var o=i(k(a),2),s=o[0],l=o[1];return R(e,{type:3,path:n.map((function(e){return e.toString()})),argumentList:s},l).then(S)}});return a}function k(e){var n,t=e.map(A);return[t.map((function(e){return e[0]})),(n=t.map((function(e){return e[1]})),Array.prototype.concat.apply([],n))]}var T=new WeakMap;function P(e,n){return T.set(e,n),e}function E(e){return Object.assign(e,r({},p,!0))}function A(e){var n,t=function(e,n){var t;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(t=c(e))||n&&e&&"number"==typeof e.length){t&&(e=t);var i=0,r=function(){};return{s:r,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){t=e[Symbol.iterator]()},n:function(){var e=t.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==t.return||t.return()}finally{if(s)throw a}}}}(b);try{for(t.s();!(n=t.n()).done;){var r=i(n.value,2),a=r[0],o=r[1];if(o.canHandle(e)){var s=i(o.serialize(e),2);return[{type:3,name:a,value:s[0]},s[1]]}}}catch(l){t.e(l)}finally{t.f()}return[{type:0,value:e},T.get(e)||[]]}function S(e){switch(e.type){case 3:return b.get(e.name).deserialize(e.value);case 0:return e.value}}function R(e,n,t){return new Promise((function(i){var r=new Array(4).fill(0).map((function(){return Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16)})).join("-");e.addEventListener("message",(function n(t){t.data&&t.data.id&&t.data.id===r&&(e.removeEventListener("message",n),i(t.data))})),e.start&&e.start(),e.postMessage(Object.assign({id:r},n),t)}))}},61740:function(){var e,n,t;n={},t={},function(e,n){function t(){this._delay=0,this._endDelay=0,this._fill="none",this._iterationStart=0,this._iterations=1,this._duration=0,this._playbackRate=1,this._direction="normal",this._easing="linear",this._easingFunction=p}function i(){return e.isDeprecated("Invalid timing inputs","2016-03-02","TypeError exceptions will be thrown instead.",!0)}function r(n,i,r){var a=new t;return i&&(a.fill="both",a.duration="auto"),"number"!=typeof n||isNaN(n)?void 0!==n&&Object.getOwnPropertyNames(n).forEach((function(t){if("auto"!=n[t]){if(("number"==typeof a[t]||"duration"==t)&&("number"!=typeof n[t]||isNaN(n[t])))return;if("fill"==t&&-1==u.indexOf(n[t]))return;if("direction"==t&&-1==d.indexOf(n[t]))return;if("playbackRate"==t&&1!==n[t]&&e.isDeprecated("AnimationEffectTiming.playbackRate","2014-11-28","Use Animation.playbackRate instead."))return;a[t]=n[t]}})):a.duration=n,a}function a(e,n,t,i){return e<0||e>1||t<0||t>1?p:function(r){function a(e,n,t){return 3*e*(1-t)*(1-t)*t+3*n*(1-t)*t*t+t*t*t}if(r<=0){var o=0;return e>0?o=n/e:!n&&t>0&&(o=i/t),o*r}if(r>=1){var s=0;return t<1?s=(i-1)/(t-1):1==t&&e<1&&(s=(n-1)/(e-1)),1+s*(r-1)}for(var l=0,c=1;l=1)return 1;var i=1/e;return(t+=n*i)-t%i}}function s(e){b||(b=document.createElement("div").style),b.animationTimingFunction="",b.animationTimingFunction=e;var n=b.animationTimingFunction;if(""==n&&i())throw new TypeError(e+" is not a valid value for easing");return n}function l(e){if("linear"==e)return p;var n=y.exec(e);if(n)return a.apply(this,n.slice(1).map(Number));var t=_.exec(e);if(t)return o(Number(t[1]),m);var i=w.exec(e);return i?o(Number(i[1]),{start:h,middle:f,end:m}[i[2]]):g[e]||p}function c(e,n,t){if(null==n)return x;var i=t.delay+e+t.endDelay;return n=Math.min(t.delay+e,i)?T:P}var u="backwards|forwards|both|none".split("|"),d="reverse|alternate|alternate-reverse".split("|"),p=function(e){return e};t.prototype={_setMember:function(n,t){this["_"+n]=t,this._effect&&(this._effect._timingInput[n]=t,this._effect._timing=e.normalizeTimingInput(this._effect._timingInput),this._effect.activeDuration=e.calculateActiveDuration(this._effect._timing),this._effect._animation&&this._effect._animation._rebuildUnderlyingAnimation())},get playbackRate(){return this._playbackRate},set delay(e){this._setMember("delay",e)},get delay(){return this._delay},set endDelay(e){this._setMember("endDelay",e)},get endDelay(){return this._endDelay},set fill(e){this._setMember("fill",e)},get fill(){return this._fill},set iterationStart(e){if((isNaN(e)||e<0)&&i())throw new TypeError("iterationStart must be a non-negative number, received: "+e);this._setMember("iterationStart",e)},get iterationStart(){return this._iterationStart},set duration(e){if("auto"!=e&&(isNaN(e)||e<0)&&i())throw new TypeError("duration must be non-negative or auto, received: "+e);this._setMember("duration",e)},get duration(){return this._duration},set direction(e){this._setMember("direction",e)},get direction(){return this._direction},set easing(e){this._easingFunction=l(s(e)),this._setMember("easing",e)},get easing(){return this._easing},set iterations(e){if((isNaN(e)||e<0)&&i())throw new TypeError("iterations must be non-negative, received: "+e);this._setMember("iterations",e)},get iterations(){return this._iterations}};var h=1,f=.5,m=0,g={ease:a(.25,.1,.25,1),"ease-in":a(.42,0,1,1),"ease-out":a(0,0,.58,1),"ease-in-out":a(.42,0,.58,1),"step-start":o(1,h),"step-middle":o(1,f),"step-end":o(1,m)},b=null,v="\\s*(-?\\d+\\.?\\d*|-?\\.\\d+)\\s*",y=new RegExp("cubic-bezier\\("+v+","+v+","+v+","+v+"\\)"),_=/steps\(\s*(\d+)\s*\)/,w=/steps\(\s*(\d+)\s*,\s*(start|middle|end)\s*\)/,x=0,k=1,T=2,P=3;e.cloneTimingInput=function(e){if("number"==typeof e)return e;var n={};for(var t in e)n[t]=e[t];return n},e.makeTiming=r,e.numericTimingToObject=function(e){return"number"==typeof e&&(e=isNaN(e)?{duration:0}:{duration:e}),e},e.normalizeTimingInput=function(n,t){return r(n=e.numericTimingToObject(n),t)},e.calculateActiveDuration=function(e){return Math.abs(function(e){return 0===e.duration||0===e.iterations?0:e.duration*e.iterations}(e)/e.playbackRate)},e.calculateIterationProgress=function(e,n,t){var i=c(e,n,t),r=function(e,n,t,i,r){switch(i){case k:return"backwards"==n||"both"==n?0:null;case P:return t-r;case T:return"forwards"==n||"both"==n?e:null;case x:return null}}(e,t.fill,n,i,t.delay);if(null===r)return null;var a=function(e,n,t,i,r){var a=r;return 0===e?n!==k&&(a+=t):a+=i/e,a}(t.duration,i,t.iterations,r,t.iterationStart),o=function(e,n,t,i,r,a){var o=e===1/0?n%1:e%1;return 0!==o||t!==T||0===i||0===r&&0!==a||(o=1),o}(a,t.iterationStart,i,t.iterations,r,t.duration),s=function(e,n,t,i){return e===T&&n===1/0?1/0:1===t?Math.floor(i)-1:Math.floor(i)}(i,t.iterations,o,a),l=function(e,n,t){var i=e;if("normal"!==e&&"reverse"!==e){var r=n;"alternate-reverse"===e&&(r+=1),i="normal",r!==1/0&&r%2!=0&&(i="reverse")}return"normal"===i?t:1-t}(t.direction,s,o);return t._easingFunction(l)},e.calculatePhase=c,e.normalizeEasing=s,e.parseEasingFunction=l}(e={}),function(e,n){function t(e,n){return e in l&&l[e][n]||n}function i(e,n,i){if(!function(e){return"display"===e||0===e.lastIndexOf("animation",0)||0===e.lastIndexOf("transition",0)}(e)){var r=a[e];if(r)for(var s in o.style[e]=n,r){var l=r[s],c=o.style[l];i[l]=t(l,c)}else i[e]=t(e,n)}}function r(e){var n=[];for(var t in e)if(!(t in["easing","offset","composite"])){var i=e[t];Array.isArray(i)||(i=[i]);for(var r,a=i.length,o=0;o1)throw new TypeError("Keyframe offsets must be between 0 and 1.")}}else if("composite"==r){if("add"==a||"accumulate"==a)throw{type:DOMException.NOT_SUPPORTED_ERR,name:"NotSupportedError",message:"add compositing is not supported"};if("replace"!=a)throw new TypeError("Invalid composite mode "+a+".")}else a="easing"==r?e.normalizeEasing(a):""+a;i(r,a,t)}return null==t.offset&&(t.offset=null),null==t.easing&&(t.easing="linear"),t})),a=!0,o=-1/0,s=0;s=0&&e.offset<=1})),a||function(){var e=t.length;null==t[e-1].offset&&(t[e-1].offset=1),e>1&&null==t[0].offset&&(t[0].offset=0);for(var n=0,i=t[0].offset,r=1;r=e.applyFrom&&t0?this._totalDuration:0),this._ensureAlive())},get currentTime(){return this._idle||this._currentTimePending?null:this._currentTime},set currentTime(e){e=+e,isNaN(e)||(n.restart(),this._paused||null==this._startTime||(this._startTime=this._timeline.currentTime-e/this._playbackRate),this._currentTimePending=!1,this._currentTime!=e&&(this._idle&&(this._idle=!1,this._paused=!0),this._tickCurrentTime(e,!0),n.applyDirtiedAnimation(this)))},get startTime(){return this._startTime},set startTime(e){e=+e,isNaN(e)||this._paused||this._idle||(this._startTime=e,this._tickCurrentTime((this._timeline.currentTime-this._startTime)*this.playbackRate),n.applyDirtiedAnimation(this))},get playbackRate(){return this._playbackRate},set playbackRate(e){if(e!=this._playbackRate){var t=this.currentTime;this._playbackRate=e,this._startTime=null,"paused"!=this.playState&&"idle"!=this.playState&&(this._finishedFlag=!1,this._idle=!1,this._ensureAlive(),n.applyDirtiedAnimation(this)),null!=t&&(this.currentTime=t)}},get _isFinished(){return!this._idle&&(this._playbackRate>0&&this._currentTime>=this._totalDuration||this._playbackRate<0&&this._currentTime<=0)},get _totalDuration(){return this._effect._totalDuration},get playState(){return this._idle?"idle":null==this._startTime&&!this._paused&&0!=this.playbackRate||this._currentTimePending?"pending":this._paused?"paused":this._isFinished?"finished":"running"},_rewind:function(){if(this._playbackRate>=0)this._currentTime=0;else{if(!(this._totalDuration<1/0))throw new DOMException("Unable to rewind negative playback rate animation with infinite duration","InvalidStateError");this._currentTime=this._totalDuration}},play:function(){this._paused=!1,(this._isFinished||this._idle)&&(this._rewind(),this._startTime=null),this._finishedFlag=!1,this._idle=!1,this._ensureAlive(),n.applyDirtiedAnimation(this)},pause:function(){this._isFinished||this._paused||this._idle?this._idle&&(this._rewind(),this._idle=!1):this._currentTimePending=!0,this._startTime=null,this._paused=!0},finish:function(){this._idle||(this.currentTime=this._playbackRate>0?this._totalDuration:0,this._startTime=this._totalDuration-this.currentTime,this._currentTimePending=!1,n.applyDirtiedAnimation(this))},cancel:function(){this._inEffect&&(this._inEffect=!1,this._idle=!0,this._paused=!1,this._finishedFlag=!0,this._currentTime=0,this._startTime=null,this._effect._update(null),n.applyDirtiedAnimation(this))},reverse:function(){this.playbackRate*=-1,this.play()},addEventListener:function(e,n){"function"==typeof n&&"finish"==e&&this._finishHandlers.push(n)},removeEventListener:function(e,n){if("finish"==e){var t=this._finishHandlers.indexOf(n);t>=0&&this._finishHandlers.splice(t,1)}},_fireEvents:function(e){if(this._isFinished){if(!this._finishedFlag){var n=new i(this,this._currentTime,e),t=this._finishHandlers.concat(this.onfinish?[this.onfinish]:[]);setTimeout((function(){t.forEach((function(e){e.call(n.target,n)}))}),0),this._finishedFlag=!0}}else this._finishedFlag=!1},_tick:function(e,n){this._idle||this._paused||(null==this._startTime?n&&(this.startTime=e-this._currentTime/this.playbackRate):this._isFinished||this._tickCurrentTime((e-this._startTime)*this.playbackRate)),n&&(this._currentTimePending=!1,this._fireEvents(e))},get _needsTick(){return this.playState in{pending:1,running:1}||!this._finishedFlag},_targetAnimations:function(){var e=this._effect._target;return e._activeAnimations||(e._activeAnimations=[]),e._activeAnimations},_markTarget:function(){var e=this._targetAnimations();-1===e.indexOf(this)&&e.push(this)},_unmarkTarget:function(){var e=this._targetAnimations(),n=e.indexOf(this);-1!==n&&e.splice(n,1)}}}(e,n),function(e,n,t){function i(e){var n=c;c=[],ei?t%=i:i%=t;return e*n/(t+i)}(i.length,r.length),c=0;c=1?n:"visible"}]}),["visibility"])}(n),function(e,n){function t(e){e=e.trim(),a.fillStyle="#000",a.fillStyle=e;var n=a.fillStyle;if(a.fillStyle="#fff",a.fillStyle=e,n==a.fillStyle){a.fillRect(0,0,1,1);var t=a.getImageData(0,0,1,1).data;a.clearRect(0,0,1,1);var i=t[3]/255;return[t[0]*i,t[1]*i,t[2]*i,i]}}function i(n,t){return[n,t,function(n){function t(e){return Math.max(0,Math.min(255,e))}if(n[3])for(var i=0;i<3;i++)n[i]=Math.round(t(n[i]/n[3]));return n[3]=e.numberToString(e.clamp(0,1,n[3])),"rgba("+n.join(",")+")"}]}var r=document.createElementNS("http://www.w3.org/1999/xhtml","canvas");r.width=r.height=1;var a=r.getContext("2d");e.addPropertiesHandler(t,i,["background-color","border-bottom-color","border-left-color","border-right-color","border-top-color","color","fill","flood-color","lighting-color","outline-color","stop-color","stroke","text-decoration-color"]),e.consumeColor=e.consumeParenthesised.bind(null,t),e.mergeColors=i}(n),function(e,n){function t(e){function n(){var n=o.exec(e);a=n?n[0]:void 0}function t(){if("("!==a)return function(){var e=Number(a);return n(),e}();n();var e=r();return")"!==a?NaN:(n(),e)}function i(){for(var e=t();"*"===a||"/"===a;){var i=a;n();var r=t();"*"===i?e*=r:e/=r}return e}function r(){for(var e=i();"+"===a||"-"===a;){var t=a;n();var r=i();"+"===t?e+=r:e-=r}return e}var a,o=/([\+\-\w\.]+|[\(\)\*\/])/g;return n(),r()}function i(e,n){if("0"==(n=n.trim().toLowerCase())&&"px".search(e)>=0)return{px:0};if(/^[^(]*$|^calc/.test(n)){n=n.replace(/calc\(/g,"(");var i={};n=n.replace(e,(function(e){return i[e]=null,"U"+e}));for(var r="U("+e.source+")",a=n.replace(/[-+]?(\d*\.)?\d+([Ee][-+]?\d+)?/g,"N").replace(new RegExp("N"+r,"g"),"D").replace(/\s[+-]\s/g,"O").replace(/\s/g,""),o=[/N\*(D)/g,/(N|D)[*\/]N/g,/(N|D)O\1/g,/\((N|D)\)/g],s=0;s1?"calc("+t+")":t}]}var o="px|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc",s=i.bind(null,new RegExp(o,"g")),l=i.bind(null,new RegExp(o+"|%","g")),c=i.bind(null,/deg|rad|grad|turn/g);e.parseLength=s,e.parseLengthOrPercent=l,e.consumeLengthOrPercent=e.consumeParenthesised.bind(null,l),e.parseAngle=c,e.mergeDimensions=a;var u=e.consumeParenthesised.bind(null,s),d=e.consumeRepeated.bind(void 0,u,/^/),p=e.consumeRepeated.bind(void 0,d,/^,/);e.consumeSizePairList=p;var h=e.mergeNestedRepeated.bind(void 0,r," "),f=e.mergeNestedRepeated.bind(void 0,h,",");e.mergeNonNegativeSizePair=h,e.addPropertiesHandler((function(e){var n=p(e);if(n&&""==n[1])return n[0]}),f,["background-size"]),e.addPropertiesHandler(l,r,["border-bottom-width","border-image-width","border-left-width","border-right-width","border-top-width","flex-basis","font-size","height","line-height","max-height","max-width","outline-width","width"]),e.addPropertiesHandler(l,a,["border-bottom-left-radius","border-bottom-right-radius","border-top-left-radius","border-top-right-radius","bottom","left","letter-spacing","margin-bottom","margin-left","margin-right","margin-top","min-height","min-width","outline-offset","padding-bottom","padding-left","padding-right","padding-top","perspective","right","shape-margin","stroke-dashoffset","text-indent","top","vertical-align","word-spacing"])}(n),function(e,n){function t(n){return e.consumeLengthOrPercent(n)||e.consumeToken(/^auto/,n)}function i(n){var i=e.consumeList([e.ignore(e.consumeToken.bind(null,/^rect/)),e.ignore(e.consumeToken.bind(null,/^\(/)),e.consumeRepeated.bind(null,t,/^,/),e.ignore(e.consumeToken.bind(null,/^\)/))],n);if(i&&4==i[0].length)return i[0]}var r=e.mergeWrappedNestedRepeated.bind(null,(function(e){return"rect("+e+")"}),(function(n,t){return"auto"==n||"auto"==t?[!0,!1,function(i){var r=i?n:t;if("auto"==r)return"auto";var a=e.mergeDimensions(r,r);return a[2](a[0])}]:e.mergeDimensions(n,t)}),", ");e.parseBox=i,e.mergeBoxes=r,e.addPropertiesHandler(i,r,["clip"])}(n),function(e,n){function t(e){return function(n){var t=0;return e.map((function(e){return e===c?n[t++]:e}))}}function i(e){return e}function r(n){if("none"==(n=n.toLowerCase().trim()))return[];for(var t,i=/\s*(\w+)\(([^)]*)\)/g,r=[],a=0;t=i.exec(n);){if(t.index!=a)return;a=t.index+t[0].length;var o=t[1],s=p[o];if(!s)return;var l=t[2].split(","),c=s[0];if(c.length=0&&this._cancelHandlers.splice(t,1)}else l.call(this,e,n)},a}}}(),function(e){var n=document.documentElement,t=null,i=!1;try{var r="0"==getComputedStyle(n).getPropertyValue("opacity")?"1":"0";(t=n.animate({opacity:[r,r]},{duration:1})).currentTime=0,i=getComputedStyle(n).getPropertyValue("opacity")==r}catch(e){}finally{t&&t.cancel()}if(!i){var a=window.Element.prototype.animate;window.Element.prototype.animate=function(n,t){return window.Symbol&&Symbol.iterator&&Array.prototype.from&&n[Symbol.iterator]&&(n=Array.from(n)),Array.isArray(n)||null===n||(n=e.convertToArrayForm(n)),a.call(this,n,t)}}}(e),function(e,n,t){function i(e){var t=n.timeline;t.currentTime=e,t._discardAnimations(),0==t._animations.length?a=!1:requestAnimationFrame(i)}var r=window.requestAnimationFrame;window.requestAnimationFrame=function(e){return r((function(t){n.timeline._updateAnimationsPromises(),e(t),n.timeline._updateAnimationsPromises()}))},n.AnimationTimeline=function(){this._animations=[],this.currentTime=void 0},n.AnimationTimeline.prototype={getAnimations:function(){return this._discardAnimations(),this._animations.slice()},_updateAnimationsPromises:function(){n.animationsWithPromises=n.animationsWithPromises.filter((function(e){return e._updatePromises()}))},_discardAnimations:function(){this._updateAnimationsPromises(),this._animations=this._animations.filter((function(e){return"finished"!=e.playState&&"idle"!=e.playState}))},_play:function(e){var t=new n.Animation(e,this);return this._animations.push(t),n.restartWebAnimationsNextTick(),t._updatePromises(),t._animation.play(),t._updatePromises(),t},play:function(e){return e&&e.remove(),this._play(e)}};var a=!1;n.restartWebAnimationsNextTick=function(){a||(a=!0,requestAnimationFrame(i))};var o=new n.AnimationTimeline;n.timeline=o;try{Object.defineProperty(window.document,"timeline",{configurable:!0,get:function(){return o}})}catch(e){}try{window.document.timeline=o}catch(e){}}(0,t),function(e,n,t){n.animationsWithPromises=[],n.Animation=function(n,t){if(this.id="",n&&n._id&&(this.id=n._id),this.effect=n,n&&(n._animation=this),!t)throw new Error("Animation with null timeline is not supported");this._timeline=t,this._sequenceNumber=e.sequenceNumber++,this._holdTime=0,this._paused=!1,this._isGroup=!1,this._animation=null,this._childAnimations=[],this._callback=null,this._oldPlayState="idle",this._rebuildUnderlyingAnimation(),this._animation.cancel(),this._updatePromises()},n.Animation.prototype={_updatePromises:function(){var e=this._oldPlayState,n=this.playState;return this._readyPromise&&n!==e&&("idle"==n?(this._rejectReadyPromise(),this._readyPromise=void 0):"pending"==e?this._resolveReadyPromise():"pending"==n&&(this._readyPromise=void 0)),this._finishedPromise&&n!==e&&("idle"==n?(this._rejectFinishedPromise(),this._finishedPromise=void 0):"finished"==n?this._resolveFinishedPromise():"finished"==e&&(this._finishedPromise=void 0)),this._oldPlayState=this.playState,this._readyPromise||this._finishedPromise},_rebuildUnderlyingAnimation:function(){this._updatePromises();var e,t,i,r,a=!!this._animation;a&&(e=this.playbackRate,t=this._paused,i=this.startTime,r=this.currentTime,this._animation.cancel(),this._animation._wrapper=null,this._animation=null),(!this.effect||this.effect instanceof window.KeyframeEffect)&&(this._animation=n.newUnderlyingAnimationForKeyframeEffect(this.effect),n.bindAnimationForKeyframeEffect(this)),(this.effect instanceof window.SequenceEffect||this.effect instanceof window.GroupEffect)&&(this._animation=n.newUnderlyingAnimationForGroup(this.effect),n.bindAnimationForGroup(this)),this.effect&&this.effect._onsample&&n.bindAnimationForCustomEffect(this),a&&(1!=e&&(this.playbackRate=e),null!==i?this.startTime=i:null!==r?this.currentTime=r:null!==this._holdTime&&(this.currentTime=this._holdTime),t&&this.pause()),this._updatePromises()},_updateChildren:function(){if(this.effect&&"idle"!=this.playState){var e=this.effect._timing.delay;this._childAnimations.forEach(function(t){this._arrangeChildren(t,e),this.effect instanceof window.SequenceEffect&&(e+=n.groupChildDuration(t.effect))}.bind(this))}},_setExternalAnimation:function(e){if(this.effect&&this._isGroup)for(var n=0;n\n ',"\n \n "]);return l=function(){return e},e}function u(){var e=h(["\n \n "]);return u=function(){return e},e}function p(){var e=h(["\n \n ","\n

    \n "]);return p=function(){return e},e}function d(){var e=h(["\n \n ',"\n \n \n "]);return d=function(){return e},e}function f(){var e=h([""]);return f=function(){return e},e}function h(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function m(e,t,r,n,i,o,a){try{var s=e[o](a),c=s.value}catch(l){return void r(l)}s.done?t(c):Promise.resolve(c).then(n,i)}function y(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function v(e,t){return(v=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function b(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=w(e);if(t){var i=w(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return g(this,r)}}function g(e,t){return!t||"object"!==s(t)&&"function"!=typeof t?k(e):t}function k(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function w(e){return(w=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function _(){_=function(){return e};var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach((function(r){t.forEach((function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)}),this)}),this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach((function(n){t.forEach((function(t){var i=t.placement;if(t.kind===n&&("static"===i||"prototype"===i)){var o="static"===i?e:r;this.defineClassElement(o,t)}}),this)}),this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],i={static:[],prototype:[],own:[]};if(e.forEach((function(e){this.addElementPlacement(e,i)}),this),e.forEach((function(e){if(!x(e))return r.push(e);var t=this.decorateElement(e,i);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)}),this),!t)return{elements:r,finishers:n};var o=this.decorateConstructor(r,t);return n.push.apply(n,o.finishers),o.finishers=n,o},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],i=e.decorators,o=i.length-1;o>=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;ae.length)&&(t=e.length);for(var r=0,n=new Array(t);r\n \n \n "]);return u=function(){return e},e}function l(){var e=f([""]);return l=function(){return e},e}function f(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function p(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function d(e,t){return(d=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function h(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=v(e);if(t){var o=v(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return m(this,r)}}function m(e,t){return!t||"object"!==c(t)&&"function"!=typeof t?y(e):t}function y(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function v(e){return(v=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function b(){b=function(){return e};var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach((function(r){t.forEach((function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)}),this)}),this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach((function(n){t.forEach((function(t){var o=t.placement;if(t.kind===n&&("static"===o||"prototype"===o)){var i="static"===o?e:r;this.defineClassElement(i,t)}}),this)}),this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],o={static:[],prototype:[],own:[]};if(e.forEach((function(e){this.addElementPlacement(e,o)}),this),e.forEach((function(e){if(!k(e))return r.push(e);var t=this.decorateElement(e,o);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)}),this),!t)return{elements:r,finishers:n};var i=this.decorateConstructor(r,t);return n.push.apply(n,i.finishers),i.finishers=n,i},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],o=e.decorators,i=o.length-1;i>=0;i--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var c=this.fromElementDescriptor(e),s=this.toElementFinisherExtras((0,o[i])(c)||c);e=s.element,this.addElementPlacement(e,t),s.finisher&&n.push(s.finisher);var u=s.extras;if(u){for(var l=0;l=0;n--){var o=this.fromClassDescriptor(e),i=this.toClassDescriptor((0,t[n])(o)||o);if(void 0!==i.finisher&&r.push(i.finisher),void 0!==i.elements){e=i.elements;for(var a=0;ae.length)&&(t=e.length);for(var r=0,n=new Array(t);re.length)&&(t=e.length);for(var r=0,n=new Array(t);r1&&void 0!==arguments[1]?arguments[1]:self;t.addEventListener("message",(function r(a){if(a&&a.data){var c,u=Object.assign({path:[]},a.data),l=u.id,f=u.type,p=u.path,d=(a.data.argumentList||[]).map(O);try{var h=p.slice(0,-1).reduce((function(e,t){return e[t]}),e),y=p.reduce((function(e,t){return e[t]}),e);switch(f){case 0:c=y;break;case 1:h[p.slice(-1)[0]]=O(a.data.value),c=!0;break;case 2:c=y.apply(h,d);break;case 3:var v;c=j(i(y,s(d)));break;case 4:var w=new MessageChannel,k=w.port1,E=w.port2;b(e,E),c=P(k,[k]);break;case 5:c=void 0}}catch(v){c=o({value:v},m,0)}Promise.resolve(c).catch((function(e){return o({value:e},m,0)})).then((function(e){var o=n(A(e),2),i=o[0],a=o[1];t.postMessage(Object.assign(Object.assign({},i),{id:l}),a),5===f&&(t.removeEventListener("message",r),g(t))}))}})),t.start&&t.start()}function g(e){(function(e){return"MessagePort"===e.constructor.name})(e)&&e.close()}function w(e,t){return E(e,[],t)}function k(e){if(e)throw new Error("Proxy has been released and is not useable")}function E(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},o=!1,i=new Proxy(r,{get:function(r,n){if(k(o),n===h)return function(){return C(e,{type:5,path:t.map((function(e){return e.toString()}))}).then((function(){g(e),o=!0}))};if("then"===n){if(0===t.length)return{then:function(){return i}};var a=C(e,{type:0,path:t.map((function(e){return e.toString()}))}).then(O);return a.then.bind(a)}return E(e,[].concat(s(t),[n]))},set:function(r,i,a){k(o);var c=n(A(a),2),u=c[0],l=c[1];return C(e,{type:1,path:[].concat(s(t),[i]).map((function(e){return e.toString()})),value:u},l).then(O)},apply:function(r,i,a){k(o);var c=t[t.length-1];if(c===d)return C(e,{type:4}).then(O);if("bind"===c)return E(e,t.slice(0,-1));var s=n(S(a),2),u=s[0],l=s[1];return C(e,{type:2,path:t.map((function(e){return e.toString()})),argumentList:u},l).then(O)},construct:function(r,i){k(o);var a=n(S(i),2),c=a[0],s=a[1];return C(e,{type:3,path:t.map((function(e){return e.toString()})),argumentList:c},s).then(O)}});return i}function S(e){var t,r=e.map(A);return[r.map((function(e){return e[0]})),(t=r.map((function(e){return e[1]})),Array.prototype.concat.apply([],t))]}var x=new WeakMap;function P(e,t){return x.set(e,t),e}function j(e){return Object.assign(e,o({},p,!0))}function A(e){var t,r=function(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=u(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,c=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return a=e.done,e},e:function(e){c=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(c)throw i}}}}(v);try{for(r.s();!(t=r.n()).done;){var o=n(t.value,2),i=o[0],a=o[1];if(a.canHandle(e)){var c=n(a.serialize(e),2);return[{type:3,name:i,value:c[0]},c[1]]}}}catch(s){r.e(s)}finally{r.f()}return[{type:0,value:e},x.get(e)||[]]}function O(e){switch(e.type){case 3:return v.get(e.name).deserialize(e.value);case 0:return e.value}}function C(e,t,r){return new Promise((function(n){var o=new Array(4).fill(0).map((function(){return Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16)})).join("-");e.addEventListener("message",(function t(r){r.data&&r.data.id&&r.data.id===o&&(e.removeEventListener("message",t),n(r.data))})),e.start&&e.start(),e.postMessage(Object.assign({id:o},t),r)}))}}}]); -//# sourceMappingURL=chunk.6c00b80674f8de8db25e.js.map \ No newline at end of file +(self.webpackChunkhome_assistant_frontend=self.webpackChunkhome_assistant_frontend||[]).push([[694],{56884:function(e,t,r){"use strict";r.r(t);var n=r(99722),o=r(64990),i=(r(93546),r(11654)),a=r(55677);function c(e){return(c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(){var e=f(['\n ha-paper-dialog {\n min-width: 350px;\n font-size: 14px;\n border-radius: 2px;\n }\n app-toolbar {\n margin: 0;\n padding: 0 16px;\n color: var(--primary-text-color);\n background-color: var(--secondary-background-color);\n }\n app-toolbar [main-title] {\n margin-left: 16px;\n }\n paper-checkbox {\n display: block;\n margin: 4px;\n }\n @media all and (max-width: 450px), all and (max-height: 500px) {\n ha-paper-dialog {\n max-height: 100%;\n }\n ha-paper-dialog::before {\n content: "";\n position: fixed;\n z-index: -1;\n top: 0px;\n left: 0px;\n right: 0px;\n bottom: 0px;\n background-color: inherit;\n }\n app-toolbar {\n color: var(--text-primary-color);\n background-color: var(--primary-color);\n }\n ha-markdown {\n padding: 16px;\n }\n }\n ']);return s=function(){return e},e}function u(){var e=f(["\n \n \n \n "]);return u=function(){return e},e}function l(){var e=f([""]);return l=function(){return e},e}function f(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function p(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function d(e,t){return(d=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function h(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=v(e);if(t){var o=v(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return m(this,r)}}function m(e,t){return!t||"object"!==c(t)&&"function"!=typeof t?y(e):t}function y(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function v(e){return(v=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function b(){b=function(){return e};var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach((function(r){t.forEach((function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)}),this)}),this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach((function(n){t.forEach((function(t){var o=t.placement;if(t.kind===n&&("static"===o||"prototype"===o)){var i="static"===o?e:r;this.defineClassElement(i,t)}}),this)}),this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],o={static:[],prototype:[],own:[]};if(e.forEach((function(e){this.addElementPlacement(e,o)}),this),e.forEach((function(e){if(!k(e))return r.push(e);var t=this.decorateElement(e,o);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)}),this),!t)return{elements:r,finishers:n};var i=this.decorateConstructor(r,t);return n.push.apply(n,i.finishers),i.finishers=n,i},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],o=e.decorators,i=o.length-1;i>=0;i--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var c=this.fromElementDescriptor(e),s=this.toElementFinisherExtras((0,o[i])(c)||c);e=s.element,this.addElementPlacement(e,t),s.finisher&&n.push(s.finisher);var u=s.extras;if(u){for(var l=0;l=0;n--){var o=this.fromClassDescriptor(e),i=this.toClassDescriptor((0,t[n])(o)||o);if(void 0!==i.finisher&&r.push(i.finisher),void 0!==i.elements){e=i.elements;for(var a=0;ae.length)&&(t=e.length);for(var r=0,n=new Array(t);re.length)&&(t=e.length);for(var r=0,n=new Array(t);r1&&void 0!==arguments[1]?arguments[1]:self;t.addEventListener("message",(function r(a){if(a&&a.data){var c,u=Object.assign({path:[]},a.data),l=u.id,f=u.type,p=u.path,d=(a.data.argumentList||[]).map(O);try{var h=p.slice(0,-1).reduce((function(e,t){return e[t]}),e),y=p.reduce((function(e,t){return e[t]}),e);switch(f){case 0:c=y;break;case 1:h[p.slice(-1)[0]]=O(a.data.value),c=!0;break;case 2:c=y.apply(h,d);break;case 3:var v;c=j(i(y,s(d)));break;case 4:var w=new MessageChannel,k=w.port1,E=w.port2;b(e,E),c=P(k,[k]);break;case 5:c=void 0}}catch(v){c=o({value:v},m,0)}Promise.resolve(c).catch((function(e){return o({value:e},m,0)})).then((function(e){var o=n(A(e),2),i=o[0],a=o[1];t.postMessage(Object.assign(Object.assign({},i),{id:l}),a),5===f&&(t.removeEventListener("message",r),g(t))}))}})),t.start&&t.start()}function g(e){(function(e){return"MessagePort"===e.constructor.name})(e)&&e.close()}function w(e,t){return E(e,[],t)}function k(e){if(e)throw new Error("Proxy has been released and is not useable")}function E(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},o=!1,i=new Proxy(r,{get:function(r,n){if(k(o),n===h)return function(){return C(e,{type:5,path:t.map((function(e){return e.toString()}))}).then((function(){g(e),o=!0}))};if("then"===n){if(0===t.length)return{then:function(){return i}};var a=C(e,{type:0,path:t.map((function(e){return e.toString()}))}).then(O);return a.then.bind(a)}return E(e,[].concat(s(t),[n]))},set:function(r,i,a){k(o);var c=n(A(a),2),u=c[0],l=c[1];return C(e,{type:1,path:[].concat(s(t),[i]).map((function(e){return e.toString()})),value:u},l).then(O)},apply:function(r,i,a){k(o);var c=t[t.length-1];if(c===d)return C(e,{type:4}).then(O);if("bind"===c)return E(e,t.slice(0,-1));var s=n(S(a),2),u=s[0],l=s[1];return C(e,{type:2,path:t.map((function(e){return e.toString()})),argumentList:u},l).then(O)},construct:function(r,i){k(o);var a=n(S(i),2),c=a[0],s=a[1];return C(e,{type:3,path:t.map((function(e){return e.toString()})),argumentList:c},s).then(O)}});return i}function S(e){var t,r=e.map(A);return[r.map((function(e){return e[0]})),(t=r.map((function(e){return e[1]})),Array.prototype.concat.apply([],t))]}var x=new WeakMap;function P(e,t){return x.set(e,t),e}function j(e){return Object.assign(e,o({},p,!0))}function A(e){var t,r=function(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=u(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,c=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return a=e.done,e},e:function(e){c=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(c)throw i}}}}(v);try{for(r.s();!(t=r.n()).done;){var o=n(t.value,2),i=o[0],a=o[1];if(a.canHandle(e)){var c=n(a.serialize(e),2);return[{type:3,name:i,value:c[0]},c[1]]}}}catch(s){r.e(s)}finally{r.f()}return[{type:0,value:e},x.get(e)||[]]}function O(e){switch(e.type){case 3:return v.get(e.name).deserialize(e.value);case 0:return e.value}}function C(e,t,r){return new Promise((function(n){var o=new Array(4).fill(0).map((function(){return Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16)})).join("-");e.addEventListener("message",(function t(r){r.data&&r.data.id&&r.data.id===o&&(e.removeEventListener("message",t),n(r.data))})),e.start&&e.start(),e.postMessage(Object.assign({id:o},t),r)}))}}}]); +//# sourceMappingURL=chunk.3c156057c501c13568ee.js.map \ No newline at end of file diff --git a/supervisor/api/panel/frontend_es5/chunk.3c156057c501c13568ee.js.gz b/supervisor/api/panel/frontend_es5/chunk.3c156057c501c13568ee.js.gz new file mode 100644 index 000000000..a17f8894f Binary files /dev/null and b/supervisor/api/panel/frontend_es5/chunk.3c156057c501c13568ee.js.gz differ diff --git a/supervisor/api/panel/frontend_es5/chunk.3c156057c501c13568ee.js.map b/supervisor/api/panel/frontend_es5/chunk.3c156057c501c13568ee.js.map new file mode 100644 index 000000000..90d866e82 --- /dev/null +++ b/supervisor/api/panel/frontend_es5/chunk.3c156057c501c13568ee.js.map @@ -0,0 +1 @@ +{"version":3,"file":"chunk.3c156057c501c13568ee.js","sources":["webpack://home-assistant-frontend/chunk.3c156057c501c13568ee.js"],"mappings":"AAAA","sourceRoot":""} \ No newline at end of file diff --git a/supervisor/api/panel/frontend_es5/chunk.480c85c27dcb0da9fc2a.js b/supervisor/api/panel/frontend_es5/chunk.480c85c27dcb0da9fc2a.js new file mode 100644 index 000000000..af392b03d --- /dev/null +++ b/supervisor/api/panel/frontend_es5/chunk.480c85c27dcb0da9fc2a.js @@ -0,0 +1,2 @@ +(self.webpackChunkhome_assistant_frontend=self.webpackChunkhome_assistant_frontend||[]).push([[530],{22530:function(e,t,n){"use strict";n.r(t);n(30573);var r=n(55317),o=(n(32296),n(77956),n(99722)),i=n(47181);n(23221),n(52039);"".concat(location.protocol,"//").concat(location.host);var s=n(41682),a=n(77097),c=n(26765),l=n(11654);function u(e){return(u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function d(){var e=E(["\n paper-checkbox {\n display: block;\n margin: 4px;\n }\n mwc-button ha-svg-icon {\n margin-right: 4px;\n }\n .button-row {\n display: grid;\n gap: 8px;\n margin-right: 8px;\n }\n .details {\n color: var(--secondary-text-color);\n }\n .warning,\n .error {\n color: var(--error-color);\n }\n .buttons li {\n list-style-type: none;\n }\n .buttons .icon {\n margin-right: 16px;\n }\n .no-margin-top {\n margin-top: 0;\n }\n ha-header-bar {\n --mdc-theme-on-primary: var(--primary-text-color);\n --mdc-theme-primary: var(--mdc-theme-surface);\n flex-shrink: 0;\n }\n /* overrule the ha-style-dialog max-height on small screens */\n @media all and (max-width: 450px), all and (max-height: 500px) {\n ha-header-bar {\n --mdc-theme-primary: var(--app-header-background-color);\n --mdc-theme-on-primary: var(--app-header-text-color, white);\n }\n }\n "]);return d=function(){return e},e}function h(){var e=E(["\n \n Download Snapshot\n ']);return h=function(){return e},e}function p(){var e=E(["\n \n \n Restore Everything\n \n ']);return p=function(){return e},e}function f(){var e=E(["\n \n \n \n Delete Snapshot\n \n ']);return f=function(){return e},e}function m(){var e=E(['

    Error: ',"

    "]);return m=function(){return e},e}function v(){var e=E(['\n \n ',"\n \n "]);return y=function(){return e},e}function g(){var e=E(['\n
    Add-on:
    \n \n ',"\n \n "]);return g=function(){return e},e}function k(){var e=E(["\n \n ',"\n \n "]);return k=function(){return e},e}function b(){var e=E(['\n
    Folders:
    \n \n ',"\n \n "]);return b=function(){return e},e}function w(){var e=E(["
    Home Assistant:
    \n \n Home Assistant ',"\n "]);return w=function(){return e},e}function _(){var e=E(["\n \n \n \n ','\n \n \n \n \n \n \n
    \n ',"\n (",")
    \n ","\n
    \n ","\n ","\n ","\n ","\n ",'\n\n
    \n \n Restore Selected\n \n ','\n
    \n
    \n ',"\n ","\n
    \n
    \n "]);return _=function(){return e},e}function x(){var e=E([""]);return x=function(){return e},e}function E(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function P(e,t,n,r,o,i,s){try{var a=e[i](s),c=a.value}catch(l){return void n(l)}a.done?t(c):Promise.resolve(c).then(r,o)}function S(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function s(e){P(i,r,o,s,a,"next",e)}function a(e){P(i,r,o,s,a,"throw",e)}s(void 0)}))}}function D(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function A(e,t){return(A=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function C(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=T(e);if(t){var o=T(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return O(this,n)}}function O(e,t){return!t||"object"!==u(t)&&"function"!=typeof t?R(e):t}function R(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function T(e){return(T=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function z(){z=function(){return e};var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach((function(n){t.forEach((function(t){t.kind===n&&"own"===t.placement&&this.defineClassElement(e,t)}),this)}),this)},initializeClassElements:function(e,t){var n=e.prototype;["method","field"].forEach((function(r){t.forEach((function(t){var o=t.placement;if(t.kind===r&&("static"===o||"prototype"===o)){var i="static"===o?e:n;this.defineClassElement(i,t)}}),this)}),this)},defineClassElement:function(e,t){var n=t.descriptor;if("field"===t.kind){var r=t.initializer;n={enumerable:n.enumerable,writable:n.writable,configurable:n.configurable,value:void 0===r?void 0:r.call(e)}}Object.defineProperty(e,t.key,n)},decorateClass:function(e,t){var n=[],r=[],o={static:[],prototype:[],own:[]};if(e.forEach((function(e){this.addElementPlacement(e,o)}),this),e.forEach((function(e){if(!H(e))return n.push(e);var t=this.decorateElement(e,o);n.push(t.element),n.push.apply(n,t.extras),r.push.apply(r,t.finishers)}),this),!t)return{elements:n,finishers:r};var i=this.decorateConstructor(n,t);return r.push.apply(r,i.finishers),i.finishers=r,i},addElementPlacement:function(e,t,n){var r=t[e.placement];if(!n&&-1!==r.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");r.push(e.key)},decorateElement:function(e,t){for(var n=[],r=[],o=e.decorators,i=o.length-1;i>=0;i--){var s=t[e.placement];s.splice(s.indexOf(e.key),1);var a=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,o[i])(a)||a);e=c.element,this.addElementPlacement(e,t),c.finisher&&r.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;r--){var o=this.fromClassDescriptor(e),i=this.toClassDescriptor((0,t[r])(o)||o);if(void 0!==i.finisher&&n.push(i.finisher),void 0!==i.elements){e=i.elements;for(var s=0;se.length)&&(t=e.length);for(var n=0,r=new Array(t);nt.name?1:-1})),this._addons=(i=null===(r=this._snapshot)||void 0===r?void 0:r.addons,i.map((function(e){return{slug:e.slug,name:e.name,version:e.version,checked:!0}}))).sort((function(e,t){return e.name>t.name?1:-1})),this._dialogParams=t,this._onboarding=null!==(o=t.onboarding)&&void 0!==o&&o,this.supervisor=t.supervisor,this._snapshot.homeassistant||(this._restoreHass=!1);case 9:case"end":return e.stop()}var i,s,c}),e,this)}))),function(e){return O.apply(this,arguments)})},{kind:"method",key:"render",value:function(){var e=this;return this._dialogParams&&this._snapshot?(0,o.dy)(_(),this._closeDialog,!0,this._computeName,r.r5M,"full"===this._snapshot.type?"Full snapshot":"Partial snapshot",this._computeSize,this._formatDatetime(this._snapshot.date),this._snapshot.homeassistant?(0,o.dy)(w(),this._restoreHass,(function(t){e._restoreHass=t.target.checked}),this._snapshot.homeassistant):"",this._folders.length?(0,o.dy)(b(),this._folders.map((function(t){return(0,o.dy)(k(),t.checked,(function(n){return e._updateFolders(t,n.target.checked)}),t.name)}))):"",this._addons.length?(0,o.dy)(g(),this._addons.map((function(t){return(0,o.dy)(y(),t.checked,(function(n){return e._updateAddons(t,n.target.checked)}),t.name)}))):"",this._snapshot.protected?(0,o.dy)(v(),this._passwordInput,this._snapshotPassword):"",this._error?(0,o.dy)(m(),this._error):"",this._partialRestoreClicked,r.BBX,this._onboarding?"":(0,o.dy)(f(),this._deleteClicked,r.x9U),"full"===this._snapshot.type?(0,o.dy)(p(),this._fullRestoreClicked,r.BBX):"",this._onboarding?"":(0,o.dy)(h(),this._downloadClicked,r.OGU)):(0,o.dy)(x())}},{kind:"get",static:!0,key:"styles",value:function(){return[l.Qx,l.yu,(0,o.iv)(d())]}},{kind:"method",key:"_updateFolders",value:function(e,t){this._folders=this._folders.map((function(n){return n.slug===e.slug&&(n.checked=t),n}))}},{kind:"method",key:"_updateAddons",value:function(e,t){this._addons=this._addons.map((function(n){return n.slug===e.slug&&(n.checked=t),n}))}},{kind:"method",key:"_passwordInput",value:function(e){this._snapshotPassword=e.detail.value}},{kind:"method",key:"_partialRestoreClicked",value:(P=S(regeneratorRuntime.mark((function e(){var t,n,r,o=this;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(void 0===this.supervisor||"running"===this.supervisor.info.state){e.next=4;break}return e.next=3,(0,c.Ys)(this,{title:"Could not restore snapshot",text:"Restoring a snapshot is not possible right now because the system is in ".concat(this.supervisor.info.state," state.")});case 3:return e.abrupt("return");case 4:return e.next=6,(0,c.g7)(this,{title:"Are you sure you want partially to restore this snapshot?",confirmText:"restore",dismissText:"cancel"});case 6:if(e.sent){e.next=8;break}return e.abrupt("return");case 8:t=this._addons.filter((function(e){return e.checked})).map((function(e){return e.slug})),n=this._folders.filter((function(e){return e.checked})).map((function(e){return e.slug})),r={homeassistant:this._restoreHass,addons:t,folders:n},this._snapshot.protected&&(r.password=this._snapshotPassword),this._onboarding?((0,i.B)(this,"restoring"),fetch("/api/hassio/snapshots/".concat(this._snapshot.slug,"/restore/partial"),{method:"POST",body:JSON.stringify(r)}),this._closeDialog()):this.hass.callApi("POST","hassio/snapshots/".concat(this._snapshot.slug,"/restore/partial"),r).then((function(){alert("Snapshot restored!"),o._closeDialog()}),(function(e){o._error=e.body.message}));case 13:case"end":return e.stop()}}),e,this)}))),function(){return P.apply(this,arguments)})},{kind:"method",key:"_fullRestoreClicked",value:(E=S(regeneratorRuntime.mark((function e(){var t,n=this;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(void 0===this.supervisor||"running"===this.supervisor.info.state){e.next=4;break}return e.next=3,(0,c.Ys)(this,{title:"Could not restore snapshot",text:"Restoring a snapshot is not possible right now because the system is in ".concat(this.supervisor.info.state," state.")});case 3:return e.abrupt("return");case 4:return e.next=6,(0,c.g7)(this,{title:"Are you sure you want to wipe your system and restore this snapshot?",confirmText:"restore",dismissText:"cancel"});case 6:if(e.sent){e.next=8;break}return e.abrupt("return");case 8:t=this._snapshot.protected?{password:this._snapshotPassword}:void 0,this._onboarding?((0,i.B)(this,"restoring"),fetch("/api/hassio/snapshots/".concat(this._snapshot.slug,"/restore/full"),{method:"POST",body:JSON.stringify(t)}),this._closeDialog()):this.hass.callApi("POST","hassio/snapshots/".concat(this._snapshot.slug,"/restore/full"),t).then((function(){alert("Snapshot restored!"),n._closeDialog()}),(function(e){n._error=e.body.message}));case 10:case"end":return e.stop()}}),e,this)}))),function(){return E.apply(this,arguments)})},{kind:"method",key:"_deleteClicked",value:(u=S(regeneratorRuntime.mark((function e(){var t=this;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,c.g7)(this,{title:"Are you sure you want to delete this snapshot?",confirmText:"delete",dismissText:"cancel"});case 2:if(e.sent){e.next=4;break}return e.abrupt("return");case 4:this.hass.callApi("POST","hassio/snapshots/".concat(this._snapshot.slug,"/remove")).then((function(){t._dialogParams.onDelete&&t._dialogParams.onDelete(),t._closeDialog()}),(function(e){t._error=e.body.message}));case 5:case"end":return e.stop()}}),e,this)}))),function(){return u.apply(this,arguments)})},{kind:"method",key:"_downloadClicked",value:(n=S(regeneratorRuntime.mark((function e(){var t,n,r;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,o=this.hass,i="/api/hassio/snapshots/".concat(this._snapshot.slug,"/download"),o.callWS({type:"auth/sign_path",path:i});case 3:t=e.sent,e.next=10;break;case 6:return e.prev=6,e.t0=e.catch(0),alert("Error: ".concat((0,s.js)(e.t0))),e.abrupt("return");case 10:if(!window.location.href.includes("ui.nabu.casa")){e.next=16;break}return e.next=13,(0,c.g7)(this,{title:"Potential slow download",text:"Downloading snapshots over the Nabu Casa URL will take some time, it is recomended to use your local URL instead, do you want to continue?",confirmText:"continue",dismissText:"cancel"});case 13:if(e.sent){e.next=16;break}return e.abrupt("return");case 16:n=this._computeName.replace(/[^a-z0-9]+/gi,"_"),(r=document.createElement("a")).href=t.path,r.download="Hass_io_".concat(n,".tar"),this.shadowRoot.appendChild(r),r.click(),this.shadowRoot.removeChild(r);case 23:case"end":return e.stop()}var o,i}),e,this,[[0,6]])}))),function(){return n.apply(this,arguments)})},{kind:"get",key:"_computeName",value:function(){return this._snapshot?this._snapshot.name||this._snapshot.slug:"Unnamed snapshot"}},{kind:"get",key:"_computeSize",value:function(){return Math.ceil(10*this._snapshot.size)/10+" MB"}},{kind:"method",key:"_formatDatetime",value:function(e){return new Date(e).toLocaleDateString(navigator.language,{weekday:"long",year:"numeric",month:"short",day:"numeric",hour:"numeric",minute:"2-digit"})}},{kind:"method",key:"_closeDialog",value:function(){this._dialogParams=void 0,this._snapshot=void 0,this._snapshotPassword="",this._folders=[],this._addons=[]}}]}}),o.oi)}}]); +//# sourceMappingURL=chunk.480c85c27dcb0da9fc2a.js.map \ No newline at end of file diff --git a/supervisor/api/panel/frontend_es5/chunk.480c85c27dcb0da9fc2a.js.gz b/supervisor/api/panel/frontend_es5/chunk.480c85c27dcb0da9fc2a.js.gz new file mode 100644 index 000000000..b545a48eb Binary files /dev/null and b/supervisor/api/panel/frontend_es5/chunk.480c85c27dcb0da9fc2a.js.gz differ diff --git a/supervisor/api/panel/frontend_es5/chunk.480c85c27dcb0da9fc2a.js.map b/supervisor/api/panel/frontend_es5/chunk.480c85c27dcb0da9fc2a.js.map new file mode 100644 index 000000000..669baecdc --- /dev/null +++ b/supervisor/api/panel/frontend_es5/chunk.480c85c27dcb0da9fc2a.js.map @@ -0,0 +1 @@ +{"version":3,"file":"chunk.480c85c27dcb0da9fc2a.js","sources":["webpack://home-assistant-frontend/chunk.480c85c27dcb0da9fc2a.js"],"mappings":"AAAA","sourceRoot":""} \ No newline at end of file diff --git a/supervisor/api/panel/frontend_es5/chunk.4c51a194fe9fc242f107.js.map b/supervisor/api/panel/frontend_es5/chunk.4c51a194fe9fc242f107.js.map deleted file mode 100644 index 9137d32d0..000000000 --- a/supervisor/api/panel/frontend_es5/chunk.4c51a194fe9fc242f107.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"chunk.4c51a194fe9fc242f107.js","sources":["webpack://home-assistant-frontend/chunk.4c51a194fe9fc242f107.js"],"mappings":"AAAA","sourceRoot":""} \ No newline at end of file diff --git a/supervisor/api/panel/frontend_es5/chunk.4e6beec37a57a13ae7aa.js b/supervisor/api/panel/frontend_es5/chunk.4e6beec37a57a13ae7aa.js new file mode 100644 index 000000000..939b75ffd --- /dev/null +++ b/supervisor/api/panel/frontend_es5/chunk.4e6beec37a57a13ae7aa.js @@ -0,0 +1,2 @@ +(self.webpackChunkhome_assistant_frontend=self.webpackChunkhome_assistant_frontend||[]).push([[102],{86876:function(t,e,n){"use strict";n.d(e,{wQ:function(){return kt},xi:function(){return mt},at:function(){return gt}});var r=n(77885),i=n(23414),o=n(19753),a=n(64928),s=n(26856);function u(t,e){var n;if("undefined"==typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(n=function(t,e){if(!t)return;if("string"==typeof t)return l(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return l(t,e)}(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var r=0,i=function(){};return{s:i,n:function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){n=t[Symbol.iterator]()},n:function(){var t=n.next();return a=t.done,t},e:function(t){s=!0,o=t},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function l(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n0&&m(e.state,s.head-1,1,i)||i.afterCursor&&(m(e.state,s.head,1,i)||s.head-1&&i%2==(e<0?1:0))return[n[i+e]]}return null}function m(t,e,n){var r,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=i.maxScanDistance||c,s=i.brackets||f,u=(0,a.qz)(t),l=u.resolve(e,n);return(r=g(l.type,n,s))?y(t,e,n,l,r,s):k(t,e,n,u,l.type,o,s)}function y(t,e,n,r,i,o){var a=r.parent,s={from:r.from,to:r.to},u=0,l=null==a?void 0:a.cursor;if(l&&(n<0?l.childBefore(r.from):l.childAfter(r.to)))do{if(n<0?l.to<=r.from:l.from>=r.to){if(0==u&&i.indexOf(l.type.name)>-1)return{start:s,end:{from:l.from,to:l.to},matched:!0};if(g(l.type,n,o))u++;else if(g(l.type,-n,o)&&0==--u)return{start:s,end:{from:l.from,to:l.to},matched:!1}}}while(n<0?l.prevSibling():l.nextSibling());return{start:s,matched:!1}}function k(t,e,n,r,i,o,a){var s=n<0?t.sliceDoc(e-1,e):t.sliceDoc(e,e+1),u=a.indexOf(s);if(u<0||u%2==0!=n>0)return null;for(var l={from:n<0?e-1:e,to:n>0?e+1:e},h=t.doc.iterRange(e,n>0?t.doc.length:0),c=0,f=0;!h.next().done&&f<=o;){var d=h.value;n<0&&(f+=d.length);for(var v=e+f*n,p=n>0?0:d.length-1,g=n>0?d.length:-1;p!=g;p+=n){var m=a.indexOf(d[p]);if(!(m<0||r.resolve(v+p,1).type!=i))if(m%2==0==n>0)c++;else{if(1==c)return{start:l,end:{from:v+p,to:v+p+1},matched:m>>1==u>>1};c--}}n>0&&(f+=d.length)}return h.done?{start:l,matched:!1}:null}function b(t,e){var n;if("undefined"==typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(n=function(t,e){if(!t)return;if("string"==typeof t)return w(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return w(t,e)}(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var r=0,i=function(){};return{s:i,n:function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){n=t[Symbol.iterator]()},n:function(){var t=n.next();return a=t.done,t},e:function(t){s=!0,o=t},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function w(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n2||/[^\s,.;:]/.test(t.sliceDoc(e.from,e.to)))||e.firstChild}function P(t,e,n){for(var i=(0,a.qz)(t).resolve(e.head),o=n?s.md.closedBy:s.md.openedBy,u=e.head;;){var l=n?i.childAfter(u):i.childBefore(u);if(!l)break;E(t,l,o)?i=l:u=n?l.to:l.from}var h,c;return c=i.type.prop(o)&&(h=n?m(t,i.from,1):m(t,i.to,-1))&&h.matched?n?h.end.to:h.end.from:n?i.to:i.from,r.jT.cursor(c,n?-1:1)}function R(t,e){return A(t,(function(n){return n.empty?t.moveVertically(n,e):C(n,e)}))}var B=function(t){return R(t,!1)},L=function(t){return R(t,!0)};function N(t,e){return A(t,(function(n){return n.empty?t.moveVertically(n,e,t.dom.clientHeight):C(n,e)}))}var j=function(t){return N(t,!1)},I=function(t){return N(t,!0)};function V(t,e,n){var i=t.visualLineAt(e.head),o=t.moveToLineBoundary(e,n);if(o.head==e.head&&o.head!=(n?i.to:i.from)&&(o=t.moveToLineBoundary(e,n,!1)),!n&&o.head==i.from&&i.length){var a=/^\s*/.exec(t.state.sliceDoc(i.from,Math.min(i.from+100,i.to)))[0].length;a&&e.head!=i.from+a&&(o=r.jT.cursor(i.from+a))}return o}var W=function(t){return A(t,(function(e){return r.jT.cursor(t.visualLineAt(e.head).from,1)}))},z=function(t){return A(t,(function(e){return r.jT.cursor(t.visualLineAt(e.head).to,-1)}))};function H(t,e,n){var i=!1,o=S(t.selection,(function(e){var o=m(t,e.head,-1)||m(t,e.head,1)||e.head>0&&m(t,e.head-1,1)||e.headl.from&&rn&&(i.empty||i.to>s.from)&&(e(s,o,i),n=s.number),a=s.to+1}var u=t.changes(o);return{changes:o,range:r.jT.range(u.mapPos(i.anchor,1),u.mapPos(i.head,1))}}))}var pt=function(t){var e=t.state,n=t.dispatch,r=Object.create(null),i=new a.Gn(e,{overrideIndentation:function(t){var e=r[t];return null==e?-1:e}}),o=vt(e,(function(t,n,o){var s=(0,a.K0)(i,t.from);if(null!=s){var u=/^\s*/.exec(t.text)[0],l=(0,a.SS)(e,s);(u!=l||o.from=e&&(n=i.type.prop(s.md.closedBy))&&n.indexOf(o.name)>-1&&t.doc.lineAt(i.to).from==t.doc.lineAt(o.from).from?{from:i.to,to:o.from}:null}(e,n),l=new a.Gn(e,{simulateBreak:n,simulateDoubleBreak:!!u}),h=(0,a.K0)(l,n);null==h&&(h=/^\s*/.exec(e.doc.lineAt(n).text)[0].length);for(var c=e.doc.lineAt(n);oc.from&&n",run:nt},{key:"Ctrl-v",run:I},{key:"Alt-v",run:j}].map((function(t){return{mac:t.key,run:t.run,shift:t.shift}}))),kt=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:function(t){return A(t,(function(e){return P(t.state,e,t.textDirection!=o.Nm.LTR)}))},shift:function(t){return _(t,(function(e){return P(t.state,e,t.textDirection!=o.Nm.LTR)}))}},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:function(t){return A(t,(function(e){return P(t.state,e,t.textDirection==o.Nm.LTR)}))},shift:function(t){return _(t,(function(e){return P(t.state,e,t.textDirection==o.Nm.LTR)}))}},{key:"Alt-ArrowUp",run:function(t){return ft(t.state,t.dispatch,!1)}},{key:"Shift-Alt-ArrowUp",run:function(t){return dt(t.state,t.dispatch,!1)}},{key:"Alt-ArrowDown",run:function(t){return ft(t.state,t.dispatch,!0)}},{key:"Shift-Alt-ArrowDown",run:function(t){return dt(t.state,t.dispatch,!0)}},{key:"Escape",run:function(t){var e=t.state,n=t.dispatch,i=e.selection,o=null;return i.ranges.length>1?o=r.jT.create([i.main]):i.main.empty||(o=r.jT.create([r.jT.cursor(i.main.head)])),!!o&&(n(x(e,o)),!0)}},{key:"Alt-l",run:function(t){var e=t.state,n=t.dispatch,i=ct(e).map((function(t){var n=t.from,i=t.to;return r.jT.range(n,Math.min(i+1,e.doc.length))}));return n(e.update({selection:r.jT.create(i),annotations:r.YW.userEvent.of("keyboardselection")})),!0}},{key:"Mod-i",run:function(t){var e=t.state,n=t.dispatch,i=S(e.selection,(function(t){for(var n,i=(0,a.qz)(e).resolve(t.head,1);!(i.from=t.to||i.to>t.to&&i.from<=t.from)&&(null===(n=i.parent)||void 0===n?void 0:n.parent);)i=i.parent;return r.jT.range(i.to,i.from)}));return n(x(e,i)),!0}},{key:"Mod-[",run:mt},{key:"Mod-]",run:gt},{key:"Mod-Alt-\\",run:pt},{key:"Shift-Mod-k",run:function(t){var e=t.state,n=e.changes(ct(e).map((function(t){var n=t.from,r=t.to;return n>0?n--:r=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,u=!1;return{s:function(){n=t[Symbol.iterator]()},n:function(){var t=n.next();return a=t.done,t},e:function(t){u=!0,o=t},f:function(){try{a||null==n.return||n.return()}finally{if(u)throw o}}}}function s(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);nthis.i;)t.dom.removeChild(t.elements.pop().dom)}}]),t}(),M=function(){function t(e,n){var r=this;l(this,t),this.view=e,this.config=n,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");var i=function(t){r.dom.addEventListener(t,(function(r){var i=e.visualLineAtHeight(r.clientY,e.contentDOM.getBoundingClientRect().top);n.domEventHandlers[t](e,i,r)&&r.preventDefault()}))};for(var o in n.domEventHandlers)i(o);this.markers=A(n.markers(e)),n.initialSpacer&&(this.spacer=new O(e,0,0,[n.initialSpacer(e)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}return c(t,[{key:"update",value:function(t){var e=this.markers;if(this.markers=A(this.config.markers(t.view)),this.spacer&&this.config.updateSpacer){var n=this.config.updateSpacer(this.spacer.markers[0],t);n!=this.spacer.markers[0]&&this.spacer.update(t.view,0,0,[n])}return this.markers!=e}}]),t}(),O=function(){function t(e,n,r,i){l(this,t),this.height=-1,this.above=0,this.dom=document.createElement("div"),this.update(e,n,r,i)}return c(t,[{key:"update",value:function(t,e,n,r){if(this.height!=e&&(this.dom.style.height=(this.height=e)+"px"),this.above!=n&&(this.dom.style.marginTop=(this.above=n)?n+"px":""),this.markers!=r){this.markers=r;for(var i;i=this.dom.lastChild;)i.remove();var o,s="cm-gutterElement",u=a(r);try{for(u.s();!(o=u.n()).done;){var l=o.value,h=l.toDOM(t);h&&this.dom.appendChild(h);var c=l.elementClass;c&&(s+=" "+c)}}catch(f){u.e(f)}finally{u.f()}this.dom.className=s}}}]),t}();var T=o.r$.define(),D=o.r$.define({combine:function(t){return(0,o.BO)(t,{formatNumber:String,domEventHandlers:{}},{domEventHandlers:function(t,e){var n=Object.assign({},t),r=function(t){var r=n[t],i=e[t];n[t]=r?function(t,e,n){return r(t,e,n)||i(t,e,n)}:i};for(var i in e)r(i);return n}})}}),E=function(t){f(n,t);var e=v(n);function n(t){var r;return l(this,n),(r=e.call(this)).number=t,r}return c(n,[{key:"eq",value:function(t){return this.number==t.number}},{key:"toDOM",value:function(){return document.createTextNode(this.number)}}]),n}(m);function P(t,e){return t.state.facet(D).formatNumber(e,t.state)}var R,B=(R={class:"cm-lineNumbers",markers:function(t){return t.state.facet(T)},lineMarker:function(t,e,n){return n.length?null:new E(P(t,t.state.doc.lineAt(e.from).number))},initialSpacer:function(t){return new E(P(t,N(t.state.doc.lines)))},updateSpacer:function(t,e){var n=P(e.view,N(e.view.state.doc.lines));return n==t.number?t:new E(n)}},[S(),k.of(Object.assign(Object.assign({},y),R))]);function L(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return[D.of(t),B]}function N(t){for(var e=9;e=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){n=t[Symbol.iterator]()},n:function(){var t=n.next();return a=t.done,t},e:function(t){s=!0,o=t},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function h(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n-1?e:m.get(e.base||e,e.modified.concat(t).sort((function(t,e){return t.id-e.id})))}}}]),t}(),g=0,m=function(){function t(){c(this,t),this.instances=[],this.id=g++}return d(t,null,[{key:"get",value:function(e,n){if(!n.length)return e;var r=n[0].instances.find((function(t){return t.base==e&&(r=n,i=t.modified,r.length==i.length&&r.every((function(t,e){return t==i[e]})));var r,i}));if(r)return r;var i,o=[],a=new p(o,e,n),s=l(n);try{for(s.s();!(i=s.n()).done;){i.value.instances.push(a)}}catch(m){s.e(m)}finally{s.f()}var u,h=y(n),c=l(e.set);try{for(c.s();!(u=c.n()).done;){var f,d=u.value,v=l(h);try{for(v.s();!(f=v.n()).done;){var g=f.value;o.push(t.get(d,g))}}catch(m){v.e(m)}finally{v.f()}}}catch(m){c.e(m)}finally{c.f()}return a}}]),t}();function y(t){for(var e=[t],n=0;n0&&c+3==a.length){u=1;break}var f=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(h);if(!f)throw new RangeError("Invalid path: "+a);if(s.push("*"==f[0]?null:'"'==f[0][0]?JSON.parse(f[0]):f[0]),(c+=f[0].length)==a.length)break;var d=a[c++];if(c==a.length&&"!"==d){u=0;break}if("/"!=d)throw new RangeError("Invalid path: "+a);h=a.slice(c)}var v=s.length-1,p=s[v];if(!p)throw new RangeError("Invalid path: "+a);var g=new C(r,u,v>0?s.slice(0,v):null);e[p]=g.sort(e[p])}}}catch(m){o.e(m)}finally{o.f()}}return b.add(e)}var b=new r.md,w=a.r$.define({combine:function(t){return t.length?M.combinedMatch(t):null}}),S=a.r$.define({combine:function(t){return t.length?t[0].match:null}});function x(){return null}function A(t){return t.facet(w)||t.facet(S)||x}var C=function(){function t(e,n,r,i){c(this,t),this.tags=e,this.mode=n,this.context=r,this.next=i}return d(t,[{key:"sort",value:function(t){return!t||t.depth=n||v<=e)){D[h]=f.name,f.isTop&&(c=f);for(var p=u,g=f.prop(b),m=!1;g;){if(!g.context||P(g.context,D,h)){var y,k=l(g.tags);try{for(k.s();!(y=k.n()).done;){var w=y.value,S=r(w,c);S&&(p&&(p+=" "),p+=S,1==g.mode?u+=(u?" ":"")+S:0==g.mode&&(m=!0))}}catch(C){k.e(C)}finally{k.f()}break}g=g.next}if(p!=a&&(d>o&&a&&i(o,s.from,a),o=d,a=p),!m&&s.firstChild()){do{var x=s.to;if(t(u,h+1,c),a!=p){var A=Math.min(n,x);A>o&&a&&i(o,A,a),o=A,a=p}}while(s.nextSibling());s.parent()}}}("",0,t.type)}function P(t,e,n){if(t.length>n-1)return!1;for(var r=n-1,i=t.length-1;i>=0;i--,r--){var o=t[i];if(o&&o!=e[r])return!1}return!0}var R=p.define,B=R(),L=R(),N=R(L),j=R(),I=R(j),V=R(j),W=R(),z=R(W),H=R(),_=R(),q=R(),F=R(q),$=R(),U={comment:B,lineComment:R(B),blockComment:R(B),docComment:R(B),name:L,variableName:R(L),typeName:N,tagName:R(N),propertyName:R(L),className:R(L),labelName:R(L),namespace:R(L),macroName:R(L),literal:j,string:I,docString:R(I),character:R(I),number:V,integer:R(V),float:R(V),bool:R(j),regexp:R(j),escape:R(j),color:R(j),url:R(j),keyword:H,self:R(H),null:R(H),atom:R(H),unit:R(H),modifier:R(H),operatorKeyword:R(H),controlKeyword:R(H),definitionKeyword:R(H),operator:_,derefOperator:R(_),arithmeticOperator:R(_),logicOperator:R(_),bitwiseOperator:R(_),compareOperator:R(_),updateOperator:R(_),definitionOperator:R(_),typeOperator:R(_),controlOperator:R(_),punctuation:q,separator:R(q),bracket:F,angleBracket:R(F),squareBracket:R(F),paren:R(F),brace:R(F),content:W,heading:z,heading1:R(z),heading2:R(z),heading3:R(z),heading4:R(z),heading5:R(z),heading6:R(z),contentSeparator:R(W),list:R(W),quote:R(W),emphasis:R(W),strong:R(W),link:R(W),monospace:R(W),inserted:R(),deleted:R(),changed:R(),invalid:R(),meta:$,documentMeta:R($),annotation:R($),processingInstruction:R($),definition:p.defineModifier(),constant:p.defineModifier(),function:p.defineModifier(),standard:p.defineModifier(),local:p.defineModifier(),special:p.defineModifier()};M.define([{tag:U.link,textDecoration:"underline"},{tag:U.heading,textDecoration:"underline",fontWeight:"bold"},{tag:U.emphasis,fontStyle:"italic"},{tag:U.strong,fontWeight:"bold"},{tag:U.keyword,color:"#708"},{tag:[U.atom,U.bool,U.url,U.contentSeparator,U.labelName],color:"#219"},{tag:[U.literal,U.inserted],color:"#164"},{tag:[U.string,U.deleted],color:"#a11"},{tag:[U.regexp,U.escape,U.special(U.string)],color:"#e40"},{tag:U.definition(U.variableName),color:"#00f"},{tag:U.local(U.variableName),color:"#30a"},{tag:[U.typeName,U.namespace],color:"#085"},{tag:U.className,color:"#167"},{tag:[U.special(U.variableName),U.macroName],color:"#256"},{tag:U.definition(U.propertyName),color:"#00c"},{tag:U.comment,color:"#940"},{tag:U.meta,color:"#7a757a"},{tag:U.invalid,color:"#f00"}]),M.define([{tag:U.link,class:"cmt-link"},{tag:U.heading,class:"cmt-heading"},{tag:U.emphasis,class:"cmt-emphasis"},{tag:U.strong,class:"cmt-strong"},{tag:U.keyword,class:"cmt-keyword"},{tag:U.atom,class:"cmt-atom"},{tag:U.bool,class:"cmt-bool"},{tag:U.url,class:"cmt-url"},{tag:U.labelName,class:"cmt-labelName"},{tag:U.inserted,class:"cmt-inserted"},{tag:U.deleted,class:"cmt-deleted"},{tag:U.literal,class:"cmt-literal"},{tag:U.string,class:"cmt-string"},{tag:U.number,class:"cmt-number"},{tag:[U.regexp,U.escape,U.special(U.string)],class:"cmt-string2"},{tag:U.variableName,class:"cmt-variableName"},{tag:U.local(U.variableName),class:"cmt-variableName cmt-local"},{tag:U.definition(U.variableName),class:"cmt-variableName cmt-definition"},{tag:U.special(U.variableName),class:"cmt-variableName2"},{tag:U.typeName,class:"cmt-typeName"},{tag:U.namespace,class:"cmt-namespace"},{tag:U.macroName,class:"cmt-macroName"},{tag:U.propertyName,class:"cmt-propertyName"},{tag:U.operator,class:"cmt-operator"},{tag:U.comment,class:"cmt-comment"},{tag:U.meta,class:"cmt-meta"},{tag:U.invalid,class:"cmt-invalid"},{tag:U.punctuation,class:"cmt-punctuation"}])},62118:function(t,e,n){"use strict";n.d(e,{m8:function(){return p},f$:function(){return P}});var r=n(77885),i=n(19753);function o(t,e){var n;if("undefined"==typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(n=function(t,e){if(!t)return;if("string"==typeof t)return a(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return a(t,e)}(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var r=0,i=function(){};return{s:i,n:function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,s=!0,u=!1;return{s:function(){n=t[Symbol.iterator]()},n:function(){var t=n.next();return s=t.done,t},e:function(t){u=!0,o=t},f:function(){try{s||null==n.return||n.return()}finally{if(u)throw o}}}}function a(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n0&&void 0!==arguments[0]?arguments[0]:{};return[v,d.of(t),i.tk.domEventHandlers({beforeinput:function(t,e){return"historyUndo"==t.inputType?m(e):"historyRedo"==t.inputType&&y(e)}})]}function g(t,e){return function(n){var r=n.state,i=n.dispatch,o=r.field(v,!1);if(!o)return!1;var a=o.pop(t,r,e);return!!a&&(i(a),!0)}}var m=g(0,!1),y=g(1,!1),k=g(0,!0),b=g(1,!0);function w(t){return function(e){var n=e.field(v,!1);if(!n)return 0;var r=0==t?n.done:n.undone;return r.length-(r.length&&!r[0].changes?1:0)}}w(0),w(1);var S=function(){function t(e,n,r,i,o){s(this,t),this.changes=e,this.effects=n,this.mapped=r,this.startSelection=i,this.selectionsAfter=o}return l(t,[{key:"setSelAfter",value:function(e){return new t(this.changes,this.effects,this.mapped,this.startSelection,e)}}],[{key:"fromTransaction",value:function(e){var n,r=C,i=o(e.startState.facet(f));try{for(i.s();!(n=i.n()).done;){var a=(0,n.value)(e);a.length&&(r=r.concat(a))}}catch(s){i.e(s)}finally{i.f()}return!r.length&&e.changes.empty?null:new t(e.changes.invert(e.startState.doc),r,void 0,e.startState.selection,C)}},{key:"selection",value:function(e){return new t(void 0,C,void 0,void 0,e)}}]),t}();function x(t,e,n,r){var i=e+1>n+20?e-n-1:0,o=t.slice(i,e);return o.push(r),o}function A(t,e){return t.length?e.length?t.concat(e):t:e}var C=[];function M(t,e){if(t.length){var n=t[t.length-1],r=n.selectionsAfter.slice(Math.max(0,n.selectionsAfter.length-200));return r.length&&r[r.length-1].eq(e)?t:(r.push(e),x(t,t.length-1,1e9,n.setSelAfter(r)))}return[S.selection([e])]}function O(t){var e=t[t.length-1],n=t.slice();return n[t.length-1]=e.setSelAfter(e.selectionsAfter.slice(0,e.selectionsAfter.length-1)),n}function T(t,e){if(!t.length)return t;for(var n=t.length,r=C;n;){var i=D(t[n-1],e,r);if(i.changes&&!i.changes.empty||i.effects.length){var o=t.slice(0,n);return o[n-1]=i,o}e=i.mapped,n--,r=i.selectionsAfter}return r.length?[S.selection(r)]:C}function D(t,e,n){var i=A(t.selectionsAfter.length?t.selectionsAfter.map((function(t){return t.map(e)})):C,n);if(!t.changes)return S.selection(i);var o=t.changes.map(e),a=e.mapDesc(t.changes,!0),s=t.mapped?t.mapped.composeDesc(a):a;return new S(o,r.Py.mapEffects(t.effects,e),s,t.startSelection.map(a),i)}var E=function(){function t(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:void 0;s(this,t),this.done=e,this.undone=n,this.prevTime=r,this.prevUserEvent=i}return l(t,[{key:"isolate",value:function(){return this.prevTime?new t(this.done,this.undone):this}},{key:"addChanges",value:function(e,n,r,i,o){var a=this.done,s=a[a.length-1];return new t(a=s&&s.changes&&n-this.prevTime=s&&i<=u&&(r=!0)}})),r}(s.changes,e.changes)?x(a,a.length-1,o,new S(e.changes.compose(s.changes),A(e.effects,s.effects),s.mapped,s.startSelection,C)):x(a,a.length,o,e),C,n,r)}},{key:"addSelection",value:function(e,n,r,i){var o,a,s=this.done.length?this.done[this.done.length-1].selectionsAfter:C;return s.length>0&&n-this.prevTime=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){n=t[Symbol.iterator]()},n:function(){var t=n.next();return a=t.done,t},e:function(t){s=!0,o=t},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function u(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n3&&void 0!==arguments[3]?arguments[3]:[];p(this,t),this.data=e,this.topNode=r,o.yy.prototype.hasOwnProperty("tree")||Object.defineProperty(o.yy.prototype,"tree",{get:function(){return S(this)}}),this.parser=n,this.extension=[E.of(this),o.yy.languageData.of((function(t,e){return t.facet(w(t,e))}))].concat(i)}return m(t,[{key:"isActiveAt",value:function(t,e){return w(t,e)==this.data}},{key:"findRegions",value:function(t){var e=this,n=t.facet(E);if((null==n?void 0:n.data)==this.data)return[{from:0,to:t.doc.length}];if(!n||!n.allowsNesting)return[];var r=[];return S(t).iterate({enter:function(t,n,i){if(t.isTop&&t.prop(y)==e.data)return r.push({from:n,to:i}),!1}}),r}},{key:"parseString",value:function(t){for(var e,n=i.xv.of(t.split("\n")),a=this.parser.startParse(new x(n),0,new A(this.parser,o.yy.create({doc:n}),[],r.mp.empty,{from:0,to:t.length},[]));!(e=a.advance()););return e}},{key:"allowsNesting",get:function(){return!0}}]),t}();function w(t,e){var n=t.facet(E);if(!n)return null;if(!n.allowsNesting)return n.data;for(var r=S(t).resolve(e,-1);r;){var i=r.type.prop(y);if(i)return i;r=r.parent}return n.data}b.setState=o.Py.define();function S(t){var e=t.field(b.state,!1);return e?e.tree:r.mp.empty}var x=function(){function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e.length;p(this,t),this.doc=e,this.length=n,this.cursorPos=0,this.string="",this.prevString="",this.cursor=e.iter()}return m(t,[{key:"syncTo",value:function(t){return t=this.length)return-1;var e=this.cursorPos-this.string.length;if(t=this.cursorPos){if(t=e-this.prevString.length)return this.prevString.charCodeAt(t-(e-this.prevString.length));e=this.syncTo(t)}return this.string.charCodeAt(t-e)}},{key:"lineAfter",value:function(t){if(t>=this.length||t<0)return"";var e=this.cursorPos-this.string.length;return(t=this.cursorPos)&&(e=this.syncTo(t)),this.cursor.lineBreak?"":this.string.slice(t-e)}},{key:"read",value:function(t,e){var n=this.cursorPos-this.string.length;return t=this.cursorPos?this.doc.sliceString(t,e):this.string.slice(t-n,e-n)}},{key:"clip",value:function(e){return new t(this.doc,e)}}]),t}(),A=function(){function t(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],i=arguments.length>3?arguments[3]:void 0,o=arguments.length>4?arguments[4]:void 0,a=arguments.length>5?arguments[5]:void 0;p(this,t),this.parser=e,this.state=n,this.fragments=r,this.tree=i,this.viewport=o,this.skipped=a,this.parse=null,this.tempSkipped=[]}return m(t,[{key:"work",value:function(t,e){if(this.tree!=r.mp.empty&&(null==e?this.tree.length==this.state.doc.length:this.tree.length>=e))return this.takeTree(),!0;this.parse||(this.parse=this.parser.startParse(new x(this.state.doc),0,this));for(var n=Date.now()+t;;){var i=this.parse.advance();if(i)return this.fragments=this.withoutTempSkipped(r.i9.addTree(i)),this.parse=null,this.tree=i,!0;if(null!=e&&this.parse.pos>=e)return this.takeTree(),!0;if(Date.now()>n)return!1}}},{key:"takeTree",value:function(){this.parse&&this.parse.pos>this.tree.length&&(this.tree=this.parse.forceFinish(),this.fragments=this.withoutTempSkipped(r.i9.addTree(this.tree,this.fragments,!0)))}},{key:"withoutTempSkipped",value:function(t){for(var e;e=this.tempSkipped.pop();)t=C(t,e.from,e.to);return t}},{key:"changes",value:function(e,n){var i=this.fragments,o=this.tree,a=this.viewport,u=this.skipped;if(this.takeTree(),!e.empty){var l=[];if(e.iterChangedRanges((function(t,e,n,r){return l.push({fromA:t,toA:e,fromB:n,toB:r})})),i=r.i9.applyChanges(i,l),o=r.mp.empty,a={from:e.mapPos(a.from,-1),to:e.mapPos(a.to,1)},this.skipped.length){u=[];var h,c=s(this.skipped);try{for(c.s();!(h=c.n()).done;){var f=h.value,d=e.mapPos(f.from,1),v=e.mapPos(f.to,-1);dt.from&&(this.fragments=C(this.fragments,i,o),this.skipped.splice(n--,1))}return this.skipped.length=t}}]),t}();function C(t,e,n){return r.i9.applyChanges(t,[{fromA:e,toA:n,fromB:e,toB:n}])}A.skippingParser={startParse:function(t,e,n){return{pos:e,advance:function(){return n.tempSkipped.push({from:e,to:t.length}),this.pos=t.length,new r.mp(r.Jq.none,[],[],t.length-e)},forceFinish:function(){return this.advance()}}}};var M=function(){function t(e){p(this,t),this.context=e,this.tree=e.tree}return m(t,[{key:"apply",value:function(e){if(!e.docChanged)return this;var n=this.context.changes(e.changes,e.state),r=this.context.tree.length==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.tree.length),n.viewport.to);return n.work(25,r)||n.takeTree(),new t(n)}}],[{key:"init",value:function(e){var n=new A(e.facet(E).parser,e,[],r.mp.empty,{from:0,to:e.doc.length},[]);return n.work(25)||n.takeTree(),new t(n)}}]),t}();b.state=o.QQ.define({create:M.init,update:function(t,e){var n,r=s(e.effects);try{for(r.s();!(n=r.n()).done;){var i=n.value;if(i.is(b.setState))return i.value}}catch(o){r.e(o)}finally{r.f()}return e.startState.facet(E)!=e.state.facet(E)?M.init(e.state):t.apply(e)}});var O="undefined"!=typeof window&&window.requestIdleCallback||function(t,e){var n=e.timeout;return setTimeout(t,n)},T="undefined"!=typeof window&&window.cancelIdleCallback||clearTimeout,D=a.lg.fromClass(function(){function t(e){p(this,t),this.view=e,this.working=-1,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}return m(t,[{key:"update",value:function(t){if(t.viewportChanged){var e=this.view.state.field(b.state).context;e.updateViewport(t.view.viewport)&&e.reset(),this.view.viewport.to>e.tree.length&&this.scheduleWork()}t.docChanged&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork())}},{key:"scheduleWork",value:function(){if(!(this.working>-1)){var t=this.view.state;t.field(b.state).tree.length>=t.doc.length||(this.working=O(this.work,{timeout:500}))}}},{key:"work",value:function(t){this.working=-1;var e=Date.now();if(this.chunkEnd=i+1e6)){var a=Math.min(this.chunkBudget,t?Math.max(25,t.timeRemaining()):100),s=o.context.work(a,i+1e6);this.chunkBudget-=Date.now()-e,(s||this.chunkBudget<=0||o.context.movedPast(i))&&(o.context.takeTree(),this.view.dispatch({effects:b.setState.of(new M(o.context))})),!s&&this.chunkBudget>0&&this.scheduleWork()}}}},{key:"destroy",value:function(){this.working>=0&&T(this.working)}}]),t}(),{eventHandlers:{focus:function(){this.scheduleWork()}}}),E=o.r$.define({combine:function(t){return t.length?t[0]:null},enables:[b.state,D]}),P=o.r$.define(),R=o.r$.define({combine:function(t){if(!t.length)return" ";if(!/^(?: +|\t+)$/.test(t[0]))throw new Error("Invalid indent unit: "+JSON.stringify(t[0]));return t[0]}});function B(t){var e=t.facet(R);return 9==e.charCodeAt(0)?t.tabSize*e.length:e.length}function L(t,e){var n="",r=t.tabSize;if(9==t.facet(R).charCodeAt(0))for(;e>=r;)n+="\t",e-=r;for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:{};p(this,t),this.state=e,this.options=n,this.unit=B(e)}return m(t,[{key:"textAfterPos",value:function(t){var e,n,r=null===(e=this.options)||void 0===e?void 0:e.simulateBreak;return t==r&&(null===(n=this.options)||void 0===n?void 0:n.simulateDoubleBreak)?"":this.state.sliceDoc(t,Math.min(t+100,null!=r&&r>t?r:1e9,this.state.doc.lineAt(t).to))}},{key:"column",value:function(t){var e,n=this.state.doc.lineAt(t),r=n.text.slice(0,t-n.from),i=this.countColumn(r,t-n.from),o=(null===(e=this.options)||void 0===e?void 0:e.overrideIndentation)?this.options.overrideIndentation(n.from):-1;return o>-1&&(i+=o-this.countColumn(r,r.search(/\S/))),i}},{key:"countColumn",value:function(t,e){return(0,i.IS)(e<0?t:t.slice(0,e),0,this.state.tabSize)}},{key:"lineIndent",value:function(t){var e,n=null===(e=this.options)||void 0===e?void 0:e.overrideIndentation;if(n){var r=n(t.from);if(r>-1)return r}return this.countColumn(t.text,t.text.search(/\S/))}}]),t}(),I=new r.md;function V(t){var e=t.type.prop(I);if(e)return e;var n,i=t.firstChild;if(i&&(n=i.type.prop(r.md.closedBy))){var o=t.lastChild,a=o&&n.indexOf(o.name)>-1;return function(t){return q(t,!0,1,void 0,a&&!function(t){var e,n;return t.pos==(null===(e=t.options)||void 0===e?void 0:e.simulateBreak)&&(null===(n=t.options)||void 0===n?void 0:n.simulateDoubleBreak)}(t)?o.from:void 0)}}return null==t.parent?z:null}function W(t,e,n){for(;t;t=t.parent){var r=V(t);if(r)return r(new H(n,e,t))}return null}function z(){return 0}var H=function(t){h(n,t);var e=f(n);function n(t,r,i){var o;return p(this,n),(o=e.call(this,t.state,t.options)).base=t,o.pos=r,o.node=i,o}return m(n,[{key:"continue",value:function(){var t=this.node.parent;return t?W(t,this.pos,this.base):0}},{key:"textAfter",get:function(){return this.textAfterPos(this.pos)}},{key:"baseIndent",get:function(){for(var t=this.state.doc.lineAt(this.node.from);;){for(var e=this.node.resolve(t.from);e.parent&&e.parent.from==e.from;)e=e.parent;if(_(e,this.node))break;t=this.state.doc.lineAt(e.from)}return this.lineIndent(t)}}]),n}(j);function _(t,e){for(var n=e;n;n=n.parent)if(t==n)return!0;return!1}function q(t,e,n,r,i){var o=t.textAfter,a=o.match(/^\s*/)[0].length,s=r&&o.slice(a,a+r.length)==r||i==t.pos+a,u=e?function(t){var e,n=t.node,r=n.childAfter(n.from),i=n.lastChild;if(!r)return null;for(var o=null===(e=t.options)||void 0===e?void 0:e.simulateBreak,a=t.state.doc.lineAt(r.from),s=null==o||o<=a.from?a.to:Math.min(a.to,o),u=r.to;;){var l=n.childAfter(u);if(!l||l==i)return null;if(!l.type.isSkipped)return l.from!?|~^]/,o=/^[:\[\(\{]/,a=["true","false"],s=/^(\d[+\-\*\/])?\d+(\.\d+)?/;function u(t,e){var n=t.peek();if(e.incomment)return t.skipTo("#}")?(t.eatWhile(/\#|}/),e.incomment=!1):t.skipToEnd(),"comment";if(e.intag){if(e.operator){if(e.operator=!1,t.match(a))return"atom";if(t.match(s))return"number"}if(e.sign){if(e.sign=!1,t.match(a))return"atom";if(t.match(s))return"number"}if(e.instring)return n==e.instring&&(e.instring=!1),t.next(),"string";if("'"==n||'"'==n)return e.instring=n,t.next(),"string";if(t.match(e.intag+"}")||t.eat("-")&&t.match(e.intag+"}"))return e.intag=!1,"tag";if(t.match(i))return e.operator=!0,"operator";if(t.match(o))e.sign=!0;else if(t.eat(" ")||t.sol()){if(t.match(r))return"keyword";if(t.match(a))return"atom";if(t.match(s))return"number";t.sol()&&t.next()}else t.next();return"variable"}if(t.eat("{")){if(t.eat("#"))return e.incomment=!0,t.skipTo("#}")?(t.eatWhile(/\#|}/),e.incomment=!1):t.skipToEnd(),"comment";if(n=t.eat(/\{|%/))return e.intag=n,"{"==n&&(e.intag="}"),t.eat("-"),"tag"}t.next()}r=new RegExp("(("+r.join(")|(")+"))\\b"),a=new RegExp("(("+a.join(")|(")+"))\\b");var l={startState:function(){return{tokenize:u}},token:function(t,e){return e.tokenize(t,e)},languageData:{commentTokens:{block:{open:"{#",close:"#}"}}}}},8987:function(t,e,n){"use strict";n.d(e,{r:function(){return i}});var r=new RegExp("\\b(("+["true","false","on","off","yes","no"].join(")|(")+"))$","i"),i={token:function(t,e){var n=t.peek(),i=e.escaped;if(e.escaped=!1,"#"==n&&(0==t.pos||/\s/.test(t.string.charAt(t.pos-1))))return t.skipToEnd(),"comment";if(t.match(/^('([^']|\\.)*'?|"([^"]|\\.)*"?)/))return"string";if(e.literal&&t.indentation()>e.keyCol)return t.skipToEnd(),"string";if(e.literal&&(e.literal=!1),t.sol()){if(e.keyCol=0,e.pair=!1,e.pairStart=!1,t.match("---"))return"def";if(t.match("..."))return"def";if(t.match(/^\s*-\s+/))return"meta"}if(t.match(/^(\{|\}|\[|\])/))return"{"==n?e.inlinePairs++:"}"==n?e.inlinePairs--:"["==n?e.inlineList++:e.inlineList--,"meta";if(e.inlineList>0&&!i&&","==n)return t.next(),"meta";if(e.inlinePairs>0&&!i&&","==n)return e.keyCol=0,e.pair=!1,e.pairStart=!1,t.next(),"meta";if(e.pairStart){if(t.match(/^\s*(\||\>)\s*/))return e.literal=!0,"meta";if(t.match(/^\s*(\&|\*)[a-z0-9\._-]+\b/i))return"variable";if(0==e.inlinePairs&&t.match(/^\s*-?[0-9\.\,]+\s?$/))return"number";if(e.inlinePairs>0&&t.match(/^\s*-?[0-9\.\,]+\s?(?=(,|}))/))return"number";if(t.match(r))return"keyword"}return!e.pair&&t.match(/^\s*(?:[,\[\]{}&*!|>'"%@`][^\s'":]|[^,\[\]{}#&*!|>'"%@`])[^#]*?(?=\s*:($|\s))/)?(e.pair=!0,e.keyCol=t.indentation(),"atom"):e.pair&&t.match(/^:\s*/)?(e.pairStart=!0,"meta"):(e.pairStart=!1,e.escaped="\\"==n,t.next(),null)},startState:function(){return{pair:!1,pairStart:!1,keyCol:0,inlinePairs:0,inlineList:0,literal:!1,escaped:!1}},languageData:{commentTokens:{line:"#"}}}},13764:function(t,e,n){"use strict";n.d(e,{Xs:function(){return d},f_:function(){return v},uU:function(){return l}});var r=n(77885);function i(t,e){var n;if("undefined"==typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(n=function(t,e){if(!t)return;if("string"==typeof t)return o(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return o(t,e)}(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var r=0,i=function(){};return{s:i,n:function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,u=!1;return{s:function(){n=t[Symbol.iterator]()},n:function(){var t=n.next();return s=t.done,t},e:function(t){u=!0,a=t},f:function(){try{s||null==n.return||n.return()}finally{if(u)throw a}}}}function o(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n1&&void 0!==arguments[1]?arguments[1]:t;return new h(t,e,this)}}]),t}();l.prototype.startSide=l.prototype.endSide=0,l.prototype.point=!1,l.prototype.mapMode=r.gc.TrackDel;var h=function t(e,n,r){a(this,t),this.from=e,this.to=n,this.value=r};function c(t,e){return t.from-e.from||t.value.startSide-e.value.startSide}var f=function(){function t(e,n,r,i){a(this,t),this.from=e,this.to=n,this.value=r,this.maxPoint=i}return u(t,[{key:"findIndex",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1e9*e,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;if(t<=0)return r;for(var i=e<0?this.to:this.from,o=r,a=i.length;;){if(o==a)return o;var s=o+a>>1,u=i[s]-t||(e<0?this.value[s].startSide:this.value[s].endSide)-n;if(s==o)return u>=0?o:a;u>=0?a=s:o=s+1}}},{key:"between",value:function(t,e,n,r){for(var i=this.findIndex(e,-1),o=this.findIndex(n,1,void 0,i);i(d=n.mapPos(c,l.endSide))||f==d&&l.startSide>0&&l.endSide<=0)continue;(d-f||l.endSide-l.startSide)<0||(a<0&&(a=f),l.point&&(s=Math.max(s,d-f)),r.push(l),i.push(f-a),o.push(d-a))}return{mapped:r.length?new t(i,o,r,s):null,pos:a}}},{key:"length",get:function(){return this.to[this.to.length-1]}}]),t}(),d=function(){function t(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t.empty,i=arguments.length>3?arguments[3]:void 0;a(this,t),this.chunkPos=e,this.chunk=n,this.nextLayer=r,this.maxPoint=i}return u(t,[{key:"chunkEnd",value:function(t){return this.chunkPos[t]+this.chunk[t].length}},{key:"update",value:function(e){var n=e.add,r=void 0===n?[]:n,i=e.sort,o=void 0!==i&&i,a=e.filterFrom,s=void 0===a?0:a,u=e.filterTo,l=void 0===u?this.length:u,f=e.filter;if(0==r.length&&!f)return this;if(o&&r.slice().sort(c),this==t.empty)return r.length?t.of(r):this;for(var d=new g(this,null,-1).goto(0),p=0,m=[],y=new v;d.value||p=0){var k=r[p++];y.addInner(k.from,k.to,k.value)||m.push(k)}else 1==d.rangeIndex&&d.chunkIndexthis.chunkEnd(d.chunkIndex)||ld.to||l=o&&e<=o+a.length&&!1===a.between(o,e-o,n-o,r))return}this.nextLayer.between(e,n,r)}}},{key:"iter",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return m.from([this]).goto(t)}},{key:"length",get:function(){var t=this.chunk.length-1;return t<0?0:Math.max(this.chunkEnd(t),this.nextLayer.length)}},{key:"size",get:function(){if(this==t.empty)return 0;var e,n=this.nextLayer.size,r=i(this.chunk);try{for(r.s();!(e=r.n()).done;){n+=e.value.value.length}}catch(o){r.e(o)}finally{r.f()}return n}}],[{key:"iter",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return m.from(t).goto(e)}},{key:"compare",value:function(e,n,r,i){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:-1,a=e.filter((function(e){return e.maxPoint>=500||e!=t.empty&&n.indexOf(e)<0&&e.maxPoint>=o})),s=n.filter((function(n){return n.maxPoint>=500||n!=t.empty&&e.indexOf(n)<0&&n.maxPoint>=o})),u=p(a,s),l=new k(a,u,o),h=new k(s,u,o);r.iterGaps((function(t,e,n){return b(l,t,h,e,n,i)})),r.empty&&0==r.length&&b(l,0,h,0,0,i)}},{key:"spans",value:function(t,e,n,r){for(var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:-1,o=new k(t,null,i).goto(e),a=e,s=o.openStart;;){var u=Math.min(o.to,n);if(o.point?(r.point(a,u,o.point,o.activeForPoint(o.to),s),s=o.openEnd(u)+(o.to>u?1:0)):u>a&&(r.span(a,u,o.active,s),s=o.openEnd(u)),o.to>n)break;a=o.to,o.next()}return s}},{key:"of",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=new v,o=i(t instanceof h?[t]:n?t.slice().sort(c):t);try{for(o.s();!(e=o.n()).done;){var a=e.value;r.add(a.from,a.to,a.value)}}catch(s){o.e(s)}finally{o.f()}return r.finish()}}]),t}();d.empty=new d([],[],null,-1),d.empty.nextLayer=d.empty;var v=function(){function t(){a(this,t),this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}return u(t,[{key:"finishChunk",value:function(t){this.chunks.push(new f(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,t&&(this.from=[],this.to=[],this.value=[])}},{key:"add",value:function(e,n,r){this.addInner(e,n,r)||(this.nextLayer||(this.nextLayer=new t)).add(e,n,r)}},{key:"addInner",value:function(t,e,n){var r=t-this.lastTo||n.startSide-this.last.endSide;if(r<=0&&(t-this.lastFrom||n.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return!(r<0)&&(250==this.from.length&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=t),this.from.push(t-this.chunkStart),this.to.push(e-this.chunkStart),this.last=n,this.lastFrom=t,this.lastTo=e,this.value.push(n),n.point&&(this.maxPoint=Math.max(this.maxPoint,e-t)),!0)}},{key:"addChunk",value:function(t,e){if((t-this.lastTo||e.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,e.maxPoint),this.chunks.push(e),this.chunkPos.push(t);var n=e.value.length-1;return this.last=e.value[n],this.lastFrom=e.from[n]+t,this.lastTo=e.to[n]+t,!0}},{key:"finish",value:function(){return this.finishInner(d.empty)}},{key:"finishInner",value:function(t){if(this.from.length&&this.finishChunk(!1),0==this.chunks.length)return t;var e=new d(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(t):t,this.setMaxPoint);return this.from=null,e}}]),t}();function p(t,e){var n,r=new Map,o=i(t);try{for(o.s();!(n=o.n()).done;)for(var a=n.value,s=0;s3&&void 0!==arguments[3]?arguments[3]:0;a(this,t),this.layer=e,this.skip=n,this.minPoint=r,this.rank=i}return u(t,[{key:"goto",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1e9;return this.chunkIndex=this.rangeIndex=0,this.gotoInner(t,e,!1),this}},{key:"gotoInner",value:function(t,e,n){for(;this.chunkIndex=this.minPoint)break}}},{key:"nextChunk",value:function(){this.chunkIndex++,this.rangeIndex=0,this.next()}},{key:"compare",value:function(t){return this.from-t.from||this.startSide-t.startSide||this.to-t.to||this.endSide-t.endSide}},{key:"startSide",get:function(){return this.value?this.value.startSide:0}},{key:"endSide",get:function(){return this.value?this.value.endSide:0}}]),t}(),m=function(){function t(e){a(this,t),this.heap=e}return u(t,[{key:"goto",value:function(t){var e,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1e9,r=i(this.heap);try{for(r.s();!(e=r.n()).done;){var o=e.value;o.goto(t,n)}}catch(s){r.e(s)}finally{r.f()}for(var a=this.heap.length>>1;a>=0;a--)y(this.heap,a);return this.next(),this}},{key:"forward",value:function(t,e){var n,r=i(this.heap);try{for(r.s();!(n=r.n()).done;){n.value.forward(t,e)}}catch(a){r.e(a)}finally{r.f()}for(var o=this.heap.length>>1;o>=0;o--)y(this.heap,o);(this.to-t||this.value.endSide-e)<0&&this.next()}},{key:"next",value:function(){if(0==this.heap.length)this.from=this.to=1e9,this.value=null,this.rank=-1;else{var t=this.heap[0];this.from=t.from,this.to=t.to,this.value=t.value,this.rank=t.rank,t.value&&t.next(),y(this.heap,0)}}},{key:"startSide",get:function(){return this.value?this.value.startSide:0}}],[{key:"from",value:function(e){for(var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-1,i=[],o=0;o=r&&i.push(new g(a,n,r,o));return 1==i.length?i[0]:new t(i)}}]),t}();function y(t,e){for(var n=t[e];;){var r=1+(e<<1);if(r>=t.length)break;var i=t[r];if(r+1=0&&(i=t[r+1],r++),n.compare(i)<0)break;t[r]=n,t[e]=i,e=r}}var k=function(){function t(e,n,r){a(this,t),this.minPoint=r,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=m.from(e,n,r)}return u(t,[{key:"goto",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1e9;return this.cursor.goto(t,e),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=t,this.endSide=e,this.openStart=-1,this.next(),this}},{key:"forward",value:function(t,e){for(;this.minActive>-1&&(this.activeTo[this.minActive]-t||this.active[this.minActive].endSide-e)<0;)this.removeActive(this.minActive);this.cursor.forward(t,e)}},{key:"removeActive",value:function(t){S(this.active,t),S(this.activeTo,t),S(this.activeRank,t),this.minActive=A(this.active,this.activeTo)}},{key:"addActive",value:function(t){for(var e=0,n=this.cursor,r=n.value,i=n.to,o=n.rank;e-1&&(this.activeTo[r]-this.cursor.from||this.active[r].endSide-this.cursor.startSide)<0){if(this.activeTo[r]>t){this.to=this.activeTo[r],this.endSide=this.active[r].endSide;break}this.removeActive(r),e&&S(e,r)}else{if(!this.cursor.value){this.to=this.endSide=1e9;break}if(this.cursor.from>t){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}var i=this.cursor.value;if(i.point){this.point=i,this.pointFrom=this.cursor.from,this.pointRank=this.cursor.rank,this.to=this.cursor.to,this.endSide=i.endSide,this.cursor.fromt&&this.forward(this.to,this.endSide);break}this.addActive(e),this.cursor.next()}}if(e){for(var o=0;othis.pointRank);n++)(this.activeTo[n]>t||this.activeTo[n]==t&&this.active[n].endSide>this.point.endSide)&&e.push(this.active[n]);return e}},{key:"openEnd",value:function(t){for(var e=0;et;)e++;return e}}]),t}();function b(t,e,n,r,i,o){t.goto(e),n.goto(r);for(var a=r+i,s=r,u=r-e;;){var l=t.to+u-n.to||t.endSide-n.endSide,h=l<0?t.to+u:n.to,c=Math.min(h,a);if(t.point||n.point?t.point&&n.point&&(t.point==n.point||t.point.eq(n.point))||o.comparePoint(s,c,t.point,n.point):c>s&&!w(t.active,n.active)&&o.compareRange(s,c,t.active,n.active),h>a)break;s=h,l<=0&&t.next(),l>=0&&n.next()}}function w(t,e){if(t.length!=e.length)return!1;for(var n=0;n=e;r--)t[r+1]=t[r];t[e]=n}function A(t,e){for(var n=-1,r=1e9,i=0;ia?-1:i==r.length?function(t,e){var n=t.coordsAtPos(t.viewport.from);return n?Math.round(Math.abs((n.left-e)/t.defaultCharacterWidth)):-1}(t,e.clientX):(0,o.IS)(r.text.slice(0,n-r.from),0,t.state.tabSize);return{line:r.number,col:s,off:i}}function u(t,e){var n=s(t,e),i=t.state.selection;return n?{update:function(t){if(t.docChanged){var e=t.changes.mapPos(t.startState.doc.line(n.line).from),r=t.state.doc.lineAt(e);n={line:r.number,col:n.col,off:Math.min(n.off,r.length)},i=i.map(t.changes)}},get:function(e,u,l){var h=s(t,e);if(!h)return i;var c=function(t,e,n){var i=Math.min(e.line,n.line),s=Math.max(e.line,n.line),u=[];if(e.off>a||n.off>a||e.col<0||n.col<0)for(var l=Math.min(e.off,n.off),h=Math.max(e.off,n.off),c=i;c<=s;c++){var f=t.doc.line(c);f.length<=h&&u.push(r.jT.range(f.from+l,f.to+h))}else for(var d=Math.min(e.col,n.col),v=Math.max(e.col,n.col),p=i;p<=s;p++){var g=t.doc.line(p),m=g.length>a?g.text.slice(0,2*v):g.text,y=(0,o.Gz)(m,0,d,t.tabSize),k=(0,o.Gz)(m,0,v,t.tabSize);y.leftOver||u.push(r.jT.range(g.from+y.offset,g.from+k.offset))}return u}(t.state,n,h);return c.length?l?r.jT.create(c.concat(i.ranges)):r.jT.create(c):i}}:null}function l(t){var e=(null==t?void 0:t.eventFilter)||function(t){return t.altKey&&0==t.button};return i.tk.mouseSelectionStyle.of((function(t,n){return e(n)?u(t,n):null}))}},72360:function(t,e,n){"use strict";n.d(e,{sW:function(){return W},Lp:function(){return lt}});var r=n(19753),i=n(77885);function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function a(t,e){for(var n=0;n=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){n=t[Symbol.iterator]()},n:function(){var t=n.next();return a=t.done,t},e:function(t){s=!0,o=t},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function l(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n-1?n.panels[r]:null}var v=r.lg.fromClass(function(){function t(e){o(this,t),this.specs=e.state.facet(f),this.panels=this.specs.map((function(t){return t(e)}));var n=e.state.facet(h);this.top=new p(e,!0,n.topContainer),this.bottom=new p(e,!1,n.bottomContainer),this.top.sync(this.panels.filter((function(t){return t.top}))),this.bottom.sync(this.panels.filter((function(t){return!t.top})));var r,i=u(this.panels);try{for(i.s();!(r=i.n()).done;){var a=r.value;a.dom.classList.add("cm-panel"),a.class&&a.dom.classList.add(a.class),a.mount&&a.mount()}}catch(s){i.e(s)}finally{i.f()}}return s(t,[{key:"update",value:function(t){var e=t.state.facet(h);this.top.container!=e.topContainer&&(this.top.sync([]),this.top=new p(t.view,!0,e.topContainer)),this.bottom.container!=e.bottomContainer&&(this.bottom.sync([]),this.bottom=new p(t.view,!1,e.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();var n=t.state.facet(f);if(n!=this.specs){var r,i=[],o=[],a=[],s=[],l=u(n);try{for(l.s();!(r=l.n()).done;){var c=r.value,d=this.specs.indexOf(c),v=void 0;d<0?(v=c(t.view),s.push(v)):(v=this.panels[d]).update&&v.update(t),i.push(v),(v.top?o:a).push(v)}}catch(S){l.e(S)}finally{l.f()}this.specs=n,this.panels=i,this.top.sync(o),this.bottom.sync(a);for(var g=0,m=s;g=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){n=t[Symbol.iterator]()},n:function(){var t=n.next();return a=t.done,t},e:function(t){s=!0,o=t},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function C(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(t)))return;var n=[],r=!0,i=!1,o=void 0;try{for(var a,s=t[Symbol.iterator]();!(r=(a=s.next()).done)&&(n.push(a.value),!e||n.length!==e);r=!0);}catch(u){i=!0,o=u}finally{try{r||null==s.return||s.return()}finally{if(i)throw o}}return n}(t,e)||M(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function M(t,e){if(t){if("string"==typeof t)return O(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?O(t,e):void 0}}function O(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n2&&void 0!==arguments[2]?arguments[2]:0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:e.length,o=arguments.length>4?arguments[4]:void 0;T(this,t),this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(r,i),this.bufferStart=r,this.normalize=o?function(t){return o(P(t))}:P,this.query=this.normalize(n)}return E(t,[{key:"peek",value:function(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return this.buffer.charCodeAt(this.bufferPos)}},{key:"next",value:function(){for(;;){var t=this.peek();if(t<0)return this.done=!0,this;var e=String.fromCharCode(t),n=this.bufferStart+this.bufferPos;for(this.bufferPos++;;){var r=this.peek();if(r<56320||r>=57344)break;this.bufferPos++,e+=String.fromCharCode(r)}for(var i=this.normalize(e),o=0,a=n;;o++){var s=i.charCodeAt(o),u=this.match(s,a);if(u)return this.value=u,this;if(o==i.length-1)break;a==n&&o1)return r.p.none;var a,s=o.main,u=null;if(s.empty){if(!e.highlightWordAroundCursor)return r.p.none;if(u=n.charCategorizer(s.head),!(a=function(t,e,n){for(var r=t.lineAt(e),o=e-r.from,a=e-r.from;o>0;){var s=(0,S.cp)(r.text,o,!1);if(n(r.text.slice(s,o))!=i.D0.Word)break;o=s}for(;a200)return r.p.none;if(!(a=n.sliceDoc(s.from,s.to).trim()))return r.p.none}var h,c=[],f=A(t.visibleRanges);try{for(f.s();!(h=f.n()).done;)for(var d=h.value,v=new R(n.doc,a,d.from,d.to);!v.next().done;){var p=v.value,g=p.from,m=p.to;if((!u||(0==g||u(n.sliceDoc(g-1,g))!=i.D0.Word)&&(m==n.doc.length||u(n.sliceDoc(m,m+1))!=i.D0.Word))&&(u&&g<=s.from&&m>=s.to?c.push(H.range(g,m)):(g>=s.to||m<=s.from)&&c.push(z.range(g,m)),c.length>e.maxMatches))return r.p.none}}catch(y){f.e(y)}finally{f.f()}return r.p.set(c)}}]),t}(),{decorations:function(t){return t.decorations}}),q=r.tk.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),F=function(){function t(e,n,r){T(this,t),this.search=e,this.replace=n,this.caseInsensitive=r}return E(t,[{key:"eq",value:function(t){return this.search==t.search&&this.replace==t.replace&&this.caseInsensitive==t.caseInsensitive}},{key:"cursor",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t.length;return new R(t,this.search,e,n,this.caseInsensitive?function(t){return t.toLowerCase()}:void 0)}},{key:"valid",get:function(){return!!this.search}}]),t}(),$=i.Py.define(),U=i.Py.define(),G=i.QQ.define({create:function(){return new K(new F("","",!1),[])},update:function(t,e){var n,r=A(e.effects);try{for(r.s();!(n=r.n()).done;){var i=n.value;i.is($)?t=new K(i.value,t.panel):i.is(U)&&(t=new K(t.query,i.value?[at]:[]))}}catch(o){r.e(o)}finally{r.f()}return t},provide:function(t){return f.computeN([t],(function(e){return e.field(t).panel}))}}),K=function t(e,n){T(this,t),this.query=e,this.panel=n},J=r.p.mark({class:"cm-searchMatch"}),Y=r.p.mark({class:"cm-searchMatch cm-searchMatch-selected"}),X=r.lg.fromClass(function(){function t(e){T(this,t),this.view=e,this.decorations=this.highlight(e.state.field(G))}return E(t,[{key:"update",value:function(t){var e=t.state.field(G);(e!=t.startState.field(G)||t.docChanged||t.selectionSet)&&(this.decorations=this.highlight(e))}},{key:"highlight",value:function(t){var e=t.query;if(!t.panel.length||!e.valid)return r.p.none;for(var n=this.view.state,i=this.view.viewport,o=e.cursor(n.doc,Math.max(0,i.from-e.search.length),Math.min(i.to+e.search.length,n.doc.length)),a=new y.f_,s=function(){var t=o.value,e=t.from,r=t.to,i=n.selection.ranges.some((function(t){return t.from==e&&t.to==r}));a.add(e,r,i?Y:J)};!o.next().done;)s();return a.finish()}}]),t}(),{decorations:function(t){return t.decorations}});function Q(t){return function(e){var n=e.state.field(G,!1);return n&&n.query.valid?t(e,n):st(e)}}function Z(t,e,n){var r=n.cursor(t,e).next();return r.done&&(r=n.cursor(t,0,e+n.search.length-1).next()).done?null:r.value}var tt=Q((function(t,e){var n=t.state.selection.main,r=n.from,i=n.to,o=Z(t.state.doc,t.state.selection.main.from+1,e.query);return!(!o||o.from==r&&o.to==i)&&(t.dispatch({selection:{anchor:o.from,head:o.to},scrollIntoView:!0,effects:ft(t,o)}),!0)}));function et(t,e,n,r){for(var i=r;;){for(var o=Math.max(n,i-1e4-t.search.length),a=t.cursor(e,o,i),s=null;!a.next().done;)s=a.value;if(s)return s;if(o==n)return null;i-=1e4}}var nt=Q((function(t,e){var n=e.query,r=t.state,i=et(n,r.doc,0,r.selection.main.to-1)||et(n,r.doc,r.selection.main.from+1,r.doc.length);return!!i&&(t.dispatch({selection:{anchor:i.from,head:i.to},scrollIntoView:!0,effects:ft(t,i)}),!0)})),rt=Q((function(t,e){for(var n=e.query.cursor(t.state.doc),r=[];!n.next().done;)r.push(i.jT.range(n.value.from,n.value.to));return!!r.length&&(t.dispatch({selection:i.jT.create(r)}),!0)})),it=Q((function(t,e){var n=e.query,r=t.state,i=Z(r.doc,r.selection.main.from,n);if(!i)return!1;var o,a=r.selection.main,s=a.from,u=a.to,l=[];if(i.from==s&&i.to==u&&(l.push({from:i.from,to:i.to,insert:n.replace}),i=Z(r.doc,i.to,n)),i){var h=0==l.length||l[0].from>=i.to?0:i.to-i.from-n.replace.length;o={anchor:i.from-h,head:i.to-h}}return t.dispatch({changes:l,selection:o,scrollIntoView:!!o,effects:i?ft(t,i):void 0}),!0})),ot=Q((function(t,e){for(var n=e.query,r=n.cursor(t.state.doc),i=[];!r.next().done;){var o=r.value,a=o.from,s=o.to;i.push({from:a,to:s,insert:n.replace})}return!!i.length&&(t.dispatch({changes:i}),!0)}));function at(t){var e=t.state.field(G).query;return{dom:ht({view:t,query:e,updateQuery:function(n){e.eq(n)||(e=n,t.dispatch({effects:$.of(e)}))}}),mount:function(){this.dom.querySelector("[name=search]").select()},pos:80,class:"cm-search"}}var st=function(t){var e=t.state.field(G,!1);if(e&&e.panel.length){var n=d(t,at);if(!n)return!1;n.dom.querySelector("[name=search]").focus()}else t.dispatch({effects:[U.of(!0)].concat(x(e?[]:[i.Py.appendConfig.of(vt)]))});return!0},ut=function(t){var e=t.state.field(G,!1);if(!e||!e.panel.length)return!1;var n=d(t,at);return n&&n.dom.contains(t.root.activeElement)&&t.focus(),t.dispatch({effects:U.of(!1)}),!0},lt=[{key:"Mod-f",run:st,scope:"editor search-panel"},{key:"F3",run:tt,shift:nt,scope:"editor search-panel"},{key:"Mod-g",run:tt,shift:nt,scope:"editor search-panel"},{key:"Escape",run:ut,scope:"editor search-panel"},{key:"Mod-Shift-l",run:function(t){var e=t.state,n=t.dispatch,r=e.selection;if(r.ranges.length>1||r.main.empty)return!1;for(var o=r.main,a=o.from,s=o.to,u=[],l=0,h=new R(e.doc,e.sliceDoc(a,s));!h.next().done;){if(u.length>1e3)return!1;h.value.from==a&&(l=u.length),u.push(i.jT.range(h.value.from,h.value.to))}return n(e.update({selection:i.jT.create(u,l)})),!0}},{key:"Alt-g",run:function(t){var e=d(t,B);if(!e){var n=[L.of(!0)];null==t.state.field(N,!1)&&n.push(i.Py.appendConfig.of([c(),N,j])),t.dispatch({effects:n}),e=d(t,B)}return e&&e.dom.querySelector("input").focus(),!0}}];function ht(t){function e(e){return t.view.state.phrase(e)}var n=b("input",{value:t.query.search,placeholder:e("Find"),"aria-label":e("Find"),class:"cm-textfield",name:"search",onchange:a,onkeyup:a}),i=b("input",{value:t.query.replace,placeholder:e("Replace"),"aria-label":e("Replace"),class:"cm-textfield",name:"replace",onchange:a,onkeyup:a}),o=b("input",{type:"checkbox",name:"case",checked:!t.query.caseInsensitive,onchange:a});function a(){t.updateQuery(new F(n.value,i.value,!o.checked))}function s(t,e,n){return b("button",{class:"cm-button",name:t,onclick:e},n)}return b("div",{onkeydown:function(e){(0,r.$1)(t.view,e,"search-panel")?e.preventDefault():13==e.keyCode&&e.target==n?(e.preventDefault(),(e.shiftKey?nt:tt)(t.view)):13==e.keyCode&&e.target==i&&(e.preventDefault(),it(t.view))}},[n,s("next",(function(){return tt(t.view)}),[e("next")]),s("prev",(function(){return nt(t.view)}),[e("previous")]),s("select",(function(){return rt(t.view)}),[e("all")]),b("label",null,[o,"match case"]),b("br"),i,s("replace",(function(){return it(t.view)}),[e("replace")]),s("replaceAll",(function(){return ot(t.view)}),[e("replace all")]),b("button",{name:"close",onclick:function(){return ut(t.view)},"aria-label":e("close")},["×"])])}var ct=/[\s\.,:;?!]/;function ft(t,e){var n=e.from,i=e.to;if(!t.hasFocus){var o=t.state.doc.lineAt(n).from,a=t.state.doc.lineAt(i).to,s=Math.max(o,n-30),u=Math.min(a,i+30),l=t.state.sliceDoc(s,u);if(s!=o)for(var h=0;h<30;h++)if(!ct.test(l[h+1])&&ct.test(l[h])){l=l.slice(h);break}if(u!=a)for(var c=l.length-1;c>l.length-30;c--)if(!ct.test(l[c-1])&&ct.test(l[c])){l=l.slice(0,c);break}return r.tk.announce.of("".concat(t.state.phrase("current match"),". ").concat(l," ").concat(t.state.phrase("on line")," ").concat(t.state.doc.lineAt(n).number))}}var dt=r.tk.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button":{margin:".2em .5em .2em 0"},"& label":{fontSize:"80%"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),vt=[G,i.Wl.override(X),c(),dt]},77885:function(t,e,n){"use strict";n.d(e,{q6:function(){return X},as:function(){return m},D0:function(){return at},F6:function(){return z},jT:function(){return C},yy:function(){return ft},r$:function(){return D},gc:function(){return v},Wl:function(){return V},Py:function(){return tt},QQ:function(){return B},YW:function(){return et},BO:function(){return dt}});var r=n(23414);function i(t){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function o(t,e){var n;if("undefined"==typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(n=function(t,e){if(!t)return;if("string"==typeof t)return a(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return a(t,e)}(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var r=0,i=function(){};return{s:i,n:function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,s=!0,u=!1;return{s:function(){n=t[Symbol.iterator]()},n:function(){var t=n.next();return s=t.done,t},e:function(t){u=!0,o=t},f:function(){try{s||null==n.return||n.return()}finally{if(u)throw o}}}}function a(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n1&&void 0!==arguments[1]&&arguments[1];b(this,t,e)}},{key:"composeDesc",value:function(t){return this.empty?t:t.empty?this:S(this,t)}},{key:"mapDesc",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return t.empty?this:w(this,t,e)}},{key:"mapPos",value:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:v.Simple,r=0,i=0,o=0;ot)return i+(t-r);i+=a}else{if(n!=v.Simple&&u>=t&&(n==v.TrackDel&&rt||n==v.TrackBefore&&rt))return null;if(u>t||u==t&&e<0&&!a)return t==r||e<0?i:i+s;i+=s}r=u}if(t>r)throw new RangeError("Position ".concat(t," is out of range for changeset of length ").concat(r));return i}},{key:"touchesRange",value:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t,n=0,r=0;n=0&&r<=e&&a>=t)return!(re)||"cover";r=a}return!1}},{key:"toString",value:function(){for(var t="",e=0;e=0?":"+r:"")}return t}},{key:"length",get:function(){for(var t=0,e=0;e1&&void 0!==arguments[1]&&arguments[1];return w(this,t,e,!0)}},{key:"invert",value:function(t){for(var e=this.sections.slice(),i=[],o=0,a=0;o=0){e[o]=u,e[o+1]=s;for(var l=o>>1;i.length1&&void 0!==arguments[1]&&arguments[1];return t.empty?this:w(this,t,e,!0)}},{key:"iterChanges",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];b(this,t,e)}},{key:"filter",value:function(t){var e=[],r=[],i=[],o=new x(this);t:for(var a=0,s=0;;){for(var u=a==t.length?1e9:t[a++];s0&&k(r,e,o.text),o.forward(l),s+=l}for(var c=t[a++];s>1].toJSON()))}return t}},{key:"desc",get:function(){return new g(this.sections)}}],[{key:"of",value:function(t,e,i){var a=[],s=[],u=0,l=null;function h(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(t||a.length){um||v<0||m>e)throw new RangeError("Invalid change range ".concat(v," to ").concat(m," (in doc of length ").concat(e,")"));var w=b?"string"==typeof b?r.xv.of(b.split(i||p)):b:r.xv.empty,S=w.length;if(v==m&&0==S)return;vu&&y(a,v-u,-1),y(a,m-v,S),k(s,a,w),u=m}}(t),h(!l),l}},{key:"empty",value:function(t){return new n(t?[t,-1]:[],[])}},{key:"fromJSON",value:function(t){if(!Array.isArray(t))throw new RangeError("Invalid JSON representation of ChangeSet");for(var e=[],i=[],o=0;o3&&void 0!==arguments[3]&&arguments[3];if(!(0==e&&n<=0)){var i=t.length-2;i>=0&&n<=0&&n==t[i+1]?t[i]+=e:0==e&&0==t[i]?t[i+1]+=n:r?(t[i]+=e,t[i+1]+=n):t.push(e,n)}}function k(t,e,n){if(0!=n.length){var i=e.length-2>>1;if(i>1])),!(n||s==t.sections.length||t.sections[s+1]<0);)u=t.sections[s++],l=t.sections[s++];e(o,h,a,c,f),o=h,a=c}}}function w(t,e,n){for(var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],i=[],o=r?[]:null,a=new x(t),s=new x(e),u=0,l=0;;)if(-1==a.ins)u+=a.len,a.next();else if(-1==s.ins&&l=0&&(a.done||ll&&!a.done&&u+a.len=0)){if(a.done&&s.done)return o?new m(i,o):new g(i);throw new Error("Mismatched change set lengths")}for(var c=0,f=u+a.len;;)if(s.ins>=0&&l>u&&l+s.len2&&void 0!==arguments[2]&&arguments[2],r=[],i=n?[]:null,o=new x(t),a=new x(e),s=!1;;){if(o.done&&a.done)return i?new m(r,i):new g(r);if(0==o.ins)y(r,o.len,0,s),o.next();else if(0!=a.len||a.done){if(o.done||a.done)throw new Error("Mismatched change set lengths");var u=Math.min(o.len2,a.len),l=r.length;if(-1==o.ins){var h=-1==a.ins?-1:a.off?0:a.ins;y(r,u,h,s),i&&h&&k(i,r,a.text)}else-1==a.ins?(y(r,o.off?0:o.len,u,s),i&&k(i,r,o.textBit(u))):(y(r,o.off?0:o.len,a.off?0:a.ins,s),i&&!a.off&&k(i,r,a.text));s=(o.ins>u||a.ins>=0&&a.len>u)&&(s||r.length>l),o.forward2(u),a.forward(u)}else y(r,0,a.ins,s),i&&k(i,r,a.text),a.next()}}var x=function(){function t(e){c(this,t),this.set=e,this.i=0,this.next()}return d(t,[{key:"next",value:function(){var t=this.set.sections;this.i>1;return n>=e.length&&!t?r.xv.empty:e[n].slice(this.off,null==t?void 0:this.off+t)}},{key:"forward",value:function(t){t==this.len?this.next():(this.len-=t,this.off+=t)}},{key:"forward2",value:function(t){-1==this.ins?this.forward(t):t==this.ins?this.next():(this.ins-=t,this.off+=t)}},{key:"done",get:function(){return-2==this.ins}},{key:"len2",get:function(){return this.ins<0?this.len:this.ins}},{key:"text",get:function(){var t=this.set.inserted,e=this.i-2>>1;return e>=t.length?r.xv.empty:t[e]}}]),t}(),A=function(){function t(e,n,r){c(this,t),this.from=e,this.to=n,this.flags=r}return d(t,[{key:"map",value:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1,r=e.mapPos(this.from,n),i=e.mapPos(this.to,n);return r==this.from&&i==this.to?this:new t(r,i,this.flags)}},{key:"extend",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t;if(t<=this.anchor&&e>=this.anchor)return C.range(t,e);var n=Math.abs(t-this.anchor)>Math.abs(e-this.anchor)?t:e;return C.range(this.anchor,n)}},{key:"eq",value:function(t){return this.anchor==t.anchor&&this.head==t.head}},{key:"toJSON",value:function(){return{anchor:this.anchor,head:this.head}}},{key:"anchor",get:function(){return 16&this.flags?this.to:this.from}},{key:"head",get:function(){return 16&this.flags?this.from:this.to}},{key:"empty",get:function(){return this.from==this.to}},{key:"assoc",get:function(){return 4&this.flags?-1:8&this.flags?1:0}},{key:"bidiLevel",get:function(){var t=3&this.flags;return 3==t?null:t}},{key:"goalColumn",get:function(){var t=this.flags>>5;return 33554431==t?void 0:t}}],[{key:"fromJSON",value:function(t){if(!t||"number"!=typeof t.anchor||"number"!=typeof t.head)throw new RangeError("Invalid JSON representation for SelectionRange");return C.range(t.anchor,t.head)}}]),t}(),C=function(){function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;c(this,t),this.ranges=e,this.mainIndex=n}return d(t,[{key:"map",value:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1;return e.empty?this:t.create(this.ranges.map((function(t){return t.map(e,n)})),this.mainIndex)}},{key:"eq",value:function(t){if(this.ranges.length!=t.ranges.length||this.mainIndex!=t.mainIndex)return!1;for(var e=0;e1&&void 0!==arguments[1])||arguments[1];return t.create([e].concat(this.ranges),n?0:this.mainIndex+1)}},{key:"replaceRange",value:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.mainIndex,r=this.ranges.slice();return r[n]=e,t.create(r,this.mainIndex)}},{key:"toJSON",value:function(){return{ranges:this.ranges.map((function(t){return t.toJSON()})),main:this.mainIndex}}},{key:"main",get:function(){return this.ranges[this.mainIndex]}}],[{key:"fromJSON",value:function(e){if(!e||!Array.isArray(e.ranges)||"number"!=typeof e.main||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new t(e.ranges.map((function(t){return A.fromJSON(t)})),e.main)}},{key:"single",value:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e;return new t([t.range(e,n)],0)}},{key:"create",value:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(0==e.length)throw new RangeError("A selection needs at least one range");for(var r=0,i=0;i1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0;return new A(t,t,(0==e?0:e<0?4:8)|(null==n?3:Math.min(2,n))|(null!=r?r:33554431)<<5)}},{key:"range",value:function(t,e,n){var r=(null!=n?n:33554431)<<5;return e1&&void 0!==arguments[1]?arguments[1]:0,n=t[e];t.sort((function(t,e){return t.from-e.from})),e=t.indexOf(n);for(var r=1;ri.head?C.range(s,a):C.range(a,s))}}return new C(t,e)}function O(t,e){var n,r=o(t.ranges);try{for(r.s();!(n=r.n()).done;){if(n.value.to>e)throw new RangeError("Selection points outside of document")}}catch(i){r.e(i)}finally{r.f()}}var T=0,D=function(){function t(e,n,r,i,o){c(this,t),this.combine=e,this.compareInput=n,this.compare=r,this.isStatic=i,this.extensions=o,this.id=T++,this.default=e([])}return d(t,[{key:"of",value:function(t){return new P([],this,0,t)}},{key:"compute",value:function(t,e){if(this.isStatic)throw new Error("Can't compute a static facet");return new P(t,this,1,e)}},{key:"computeN",value:function(t,e){if(this.isStatic)throw new Error("Can't compute a static facet");return new P(t,this,2,e)}},{key:"from",value:function(t,e){return e||(e=function(t){return t}),this.compute([t],(function(n){return e(n.field(t))}))}}],[{key:"define",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new t(e.combine||function(t){return t},e.compareInput||function(t,e){return t===e},e.compare||(e.combine?function(t,e){return t===e}:E),!!e.static,e.enables)}}]),t}();function E(t,e){return t==e||t.length==e.length&&t.every((function(t,n){return t===e[n]}))}var P=function(){function t(e,n,r,i){c(this,t),this.dependencies=e,this.facet=n,this.type=r,this.value=i,this.id=T++}return d(t,[{key:"dynamicSlot",value:function(t){var e,n,r=this.value,i=this.facet.compareInput,a=t[this.id]>>1,s=2==this.type,u=!1,l=!1,h=[],c=o(this.dependencies);try{for(c.s();!(n=c.n()).done;){var f=n.value;"doc"==f?u=!0:"selection"==f?l=!0:0==(1&(null!==(e=t[f.id])&&void 0!==e?e:1))&&h.push(t[f.id])}}catch(d){c.e(d)}finally{c.f()}return function(t,e){if(!e||e.reconfigured)return t.values[a]=r(t),1;if(!(u&&e.docChanged||l&&(e.docChanged||e.selection)||h.some((function(e){return(1&q(t,e))>0}))))return 0;var n=r(t),o=e.startState.values[a];return(s?function(t,e,n){if(t.length!=e.length)return!1;for(var r=0;r>1;return function(t,r){if(!r)return t.values[n]=e.create(t),1;var i,o=0;if(r.reconfigured){var a=function(t,e){var n=t.config.address[e];return null==n?null:n>>1}(r.startState,e.id);i=null==a?e.create(r.startState):r.startState.values[a],o=1}else i=r.startState.values[n];var s=e.updateF(i,r);return o||e.compareF(i,s)||(o=1),o&&(t.values[n]=s),o}}},{key:"init",value:function(t){return[this,R.of({field:this,create:t})]}}],[{key:"define",value:function(e){var n=new t(T++,e.create,e.update,e.compare||function(t,e){return t===e},e);return e.provide&&(n.provides=e.provide(n)),n}}]),t}(),L=2,N=1,j=0;function I(t){return function(e){return new W(e,t)}}var V={fallback:I(3),default:I(L),extend:I(N),override:I(j)},W=function t(e,n){c(this,t),this.inner=e,this.prec=n},z=function(){function t(){c(this,t)}return d(t,[{key:"of",value:function(t){return new H(this,t)}},{key:"reconfigure",value:function(e){return t.reconfigure.of({compartment:this,extension:e})}}]),t}(),H=function t(e,n){c(this,t),this.compartment=e,this.inner=n},_=function(){function t(e,n,r,i,o){for(c(this,t),this.base=e,this.compartments=n,this.dynamicSlots=r,this.address=i,this.staticValues=o,this.statusTemplate=[];this.statusTemplate.length>1]}}],[{key:"resolve",value:function(e,n,r){var i,a=[],s=Object.create(null),u=new Set,l=o(function(t,e,n){var r=[[],[],[],[]],i=new Map;function a(t,s){var u=i.get(t);if(null!=u){if(u>=s)return;var l=r[u].indexOf(t);l>-1&&r[u].splice(l,1),t instanceof H&&n.delete(t.compartment)}if(i.set(t,s),Array.isArray(t)){var h,c=o(t);try{for(c.s();!(h=c.n()).done;){a(h.value,s)}}catch(d){c.e(d)}finally{c.f()}}else if(t instanceof H){if(n.has(t.compartment))throw new RangeError("Duplicate use of compartment in extensions");n.add(t.compartment),a(e.get(t.compartment)||t.inner,s)}else if(t instanceof W)a(t.inner,t.prec);else if(t instanceof B)r[s].push(t),t.provides&&a(t.provides,s);else if(t instanceof P)r[s].push(t),t.facet.extensions&&a(t.facet.extensions,s);else{var f=t.extension;if(!f)throw new Error("Unrecognized extension value in extension set (".concat(t,"). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks."));a(f,s)}}return a(t,L),r.reduce((function(t,e){return t.concat(e)}))}(e,n,u));try{for(l.s();!(i=l.n()).done;){var h=i.value;h instanceof B?a.push(h):(s[h.facet.id]||(s[h.facet.id]=[])).push(h)}}catch(k){l.e(k)}finally{l.f()}for(var c=Object.create(null),f=[],d=[],v=function(){var t=g[p];c[t.id]=d.length<<1,d.push((function(e){return t.slot(e)}))},p=0,g=a;p>1;return function(t,n){var u,l=n?n.reconfigured?n.startState.config.address[e.id]:s<<1:null,h=null==l,c=o(a);try{for(c.s();!(u=c.n()).done;)1&q(t,u.value)&&(h=!0)}catch(k){c.e(k)}finally{c.f()}if(!h)return 0;for(var f=[],d=0;d>1,r=t.status[n];if(4==r)throw new Error("Cyclic dependency between fields and/or facets");if(2&r)return r;t.status[n]=4;var i=t.config.dynamicSlots[n](t,t.applying);return t.status[n]=2|i}function F(t,e){return 1&e?t.config.staticValues[e>>1]:t.values[e>>1]}var $=D.define(),U=D.define({combine:function(t){return t.some((function(t){return t}))},static:!0}),G=D.define({combine:function(t){return t.length?t[0]:void 0},static:!0}),K=D.define(),J=D.define(),Y=D.define(),X=function(){function t(e,n){c(this,t),this.type=e,this.value=n}return d(t,null,[{key:"define",value:function(){return new Q}}]),t}(),Q=function(){function t(){c(this,t)}return d(t,[{key:"of",value:function(t){return new X(this,t)}}]),t}(),Z=function(){function t(e){c(this,t),this.map=e}return d(t,[{key:"of",value:function(t){return new tt(this,t)}}]),t}(),tt=function(){function t(e,n){c(this,t),this.type=e,this.value=n}return d(t,[{key:"map",value:function(e){var n=this.type.map(this.value,e);return void 0===n?void 0:n==this.value?this:new t(this.type,n)}},{key:"is",value:function(t){return this.type==t}}],[{key:"define",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new Z(t.map||function(t){return t})}},{key:"mapEffects",value:function(t,e){if(!t.length)return t;var n,r=[],i=o(t);try{for(i.s();!(n=i.n()).done;){var a=n.value.map(e);a&&r.push(a)}}catch(s){i.e(s)}finally{i.f()}return r}}]),t}();tt.reconfigure=tt.define(),tt.appendConfig=tt.define();var et=function(){function t(e,n,r,i,o,a){c(this,t),this.startState=e,this.changes=n,this.selection=r,this.effects=i,this.annotations=o,this.scrollIntoView=a,this._doc=null,this._state=null,r&&O(r,n.newLength),o.some((function(e){return e.type==t.time}))||(this.annotations=o.concat(t.time.of(Date.now())))}return d(t,[{key:"annotation",value:function(t){var e,n=o(this.annotations);try{for(n.s();!(e=n.n()).done;){var r=e.value;if(r.type==t)return r.value}}catch(i){n.e(i)}finally{n.f()}}},{key:"newDoc",get:function(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}},{key:"newSelection",get:function(){return this.selection||this.startState.selection.map(this.changes)}},{key:"state",get:function(){return this._state||this.startState.applyTransaction(this),this._state}},{key:"docChanged",get:function(){return!this.changes.empty}},{key:"reconfigured",get:function(){return this.startState.config!=this.state.config}}]),t}();function nt(t,e){for(var n=[],r=0,i=0;;){var o=void 0,a=void 0;if(r=t[r]))o=t[r++],a=t[r++];else{if(!(i=0;i--){var o=n[i](t);o&&Object.keys(o).length&&(r=rt(t,it(e,o,t.changes.newLength),!0))}return r==t?t:new et(e,t.changes,t.selection,r.effects,r.annotations,r.scrollIntoView)}(n?function(t){var e,n=t.startState,r=!0,i=o(n.facet(K));try{for(i.s();!(e=i.n()).done;){var a=(0,e.value)(t);if(!1===a){r=!1;break}Array.isArray(a)&&(r=!0===r?a:nt(r,a))}}catch(d){i.e(d)}finally{i.f()}if(!0!==r){var s,u;if(!1===r)u=t.changes.invertedDesc,s=m.empty(n.doc.length);else{var l=t.changes.filter(r);s=l.changes,u=l.filtered.invertedDesc}t=new et(n,s,t.selection&&t.selection.map(u),tt.mapEffects(t.effects,u),t.annotations,t.scrollIntoView)}for(var h=n.facet(J),c=h.length-1;c>=0;c--){var f=h[c](t);t=f instanceof et?f:Array.isArray(f)&&1==f.length&&f[0]instanceof et?f[0]:ot(n,ut(f),!1)}return t}(s):s)}et.time=X.define(),et.userEvent=X.define(),et.addToHistory=X.define();var at,st=[];function ut(t){return null==t?st:Array.isArray(t)?t:[t]}!function(t){t[t.Word=0]="Word",t[t.Space=1]="Space",t[t.Other=2]="Other"}(at||(at={}));var lt,ht=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;try{lt=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch(vt){}function ct(t){return function(e){if(!/\S/.test(e))return at.Space;if(function(t){if(lt)return lt.test(t);for(var e=0;e"€"&&(n.toUpperCase()!=n.toLowerCase()||ht.test(n)))return!0}return!1}(e))return at.Word;for(var n=0;n-1)return at.Word;return at.Other}}var ft=function(){function t(e,n,r){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;if(c(this,t),this.config=e,this.doc=n,this.selection=r,this.applying=null,this.status=e.statusTemplate.slice(),i&&i.startState.config==e)this.values=i.startState.values.slice();else if(this.values=e.dynamicSlots.map((function(t){return null})),i)for(var o in e.address){var a=e.address[o],s=i.startState.config.address[o];null!=s&&0==(1&a)&&(this.values[a>>1]=F(i.startState,s))}this.applying=i,i&&(i._state=this);for(var u=0;u1&&void 0!==arguments[1])||arguments[1],n=this.config.address[t.id];if(null!=n)return q(this,n),F(this,n);if(e)throw new RangeError("Field is not present in this state")}},{key:"update",value:function(){for(var t=arguments.length,e=new Array(t),n=0;n0&&void 0!==arguments[0]?arguments[0]:[];return e instanceof m?e:m.of(e,this.doc.length,this.facet(t.lineSeparator))}},{key:"toText",value:function(e){return r.xv.of(e.split(this.facet(t.lineSeparator)||p))}},{key:"sliceDoc",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.doc.length;return this.doc.sliceString(t,e,this.lineBreak)}},{key:"facet",value:function(t){var e=this.config.address[t.id];return null==e?t.default:(q(this,e),F(this,e))}},{key:"toJSON",value:function(t){var e={doc:this.sliceDoc(),selection:this.selection.toJSON()};if(t)for(var n in t)e[n]=t[n].spec.toJSON(this.field(t[n]),this);return e}},{key:"phrase",value:function(e){var n,r=o(this.facet(t.phrases));try{for(r.s();!(n=r.n()).done;){var i=n.value;if(Object.prototype.hasOwnProperty.call(i,e))return i[e]}}catch(a){r.e(a)}finally{r.f()}return e}},{key:"languageDataAt",value:function(t,e){var n,r=[],i=o(this.facet($));try{for(i.s();!(n=i.n()).done;){var a,s=o((0,n.value)(this,e));try{for(s.s();!(a=s.n()).done;){var u=a.value;Object.prototype.hasOwnProperty.call(u,t)&&r.push(u[t])}}catch(l){s.e(l)}finally{s.f()}}}catch(l){i.e(l)}finally{i.f()}return r}},{key:"charCategorizer",value:function(t){return ct(this.languageDataAt("wordChars",t).join(""))}},{key:"tabSize",get:function(){return this.facet(t.tabSize)}},{key:"lineBreak",get:function(){return this.facet(t.lineSeparator)||"\n"}}],[{key:"fromJSON",value:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2?arguments[2]:void 0;if(!e||"string"!=typeof e.doc)throw new RangeError("Invalid JSON representation for EditorState");var i=[];if(r){var o=function(t){var n=r[t],o=e[t];i.push(n.init((function(t){return n.spec.fromJSON(o,t)})))};for(var a in r)o(a)}return t.create({doc:e.doc,selection:C.fromJSON(e.selection),extensions:n.extensions?i.concat([n.extensions]):i})}},{key:"create",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=_.resolve(e.extensions||[],new Map),i=e.doc instanceof r.xv?e.doc:r.xv.of((e.doc||"").split(n.staticFacet(t.lineSeparator)||p)),o=e.selection?e.selection instanceof C?e.selection:C.single(e.selection.anchor,e.selection.head):C.single(0);return O(o,i.length),n.staticFacet(U)||(o=o.asSingle()),new t(n,i,o)}}]),t}();function dt(t,e){var n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i={},a=o(t);try{for(a.s();!(n=a.n()).done;)for(var s=n.value,u=0,l=Object.keys(s);u=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){n=t[Symbol.iterator]()},n:function(){var t=n.next();return a=t.done,t},e:function(t){s=!0,o=t},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function h(t,e){if(t){if("string"==typeof t)return c(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?c(t,e):void 0}}function c(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n3&&void 0!==arguments[3]?arguments[3]:0,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0;return null==e&&-1==(e=t.search(/[^\s\u00a0]/))&&(e=t.length),(0,a.IS)(t.slice(r,e),i,n)}var S=function(){function t(e,n,r){y(this,t),this.string=e,this.tabSize=n,this.indentUnit=r,this.pos=0,this.start=0,this.lastColumnPos=0,this.lastColumnValue=0}return b(t,[{key:"eol",value:function(){return this.pos>=this.string.length}},{key:"sol",value:function(){return 0==this.pos}},{key:"peek",value:function(){return this.string.charAt(this.pos)||void 0}},{key:"next",value:function(){if(this.pose}},{key:"eatSpace",value:function(){for(var t=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>t}},{key:"skipToEnd",value:function(){this.pos=this.string.length}},{key:"skipTo",value:function(t){var e=this.string.indexOf(t,this.pos);if(e>-1)return this.pos=e,!0}},{key:"backUp",value:function(t){this.pos-=t}},{key:"column",value:function(){return this.lastColumnPos0?null:(i&&!1!==e&&(this.pos+=i[0].length),i)}},{key:"current",value:function(){return this.string.slice(this.start,this.pos)}}]),t}();function x(t){if("object"!=m(t))return t;var e={};for(var n in t){var r=t[n];e[n]=r instanceof Array?r.slice():r}return e}var A=function(t){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&f(t,e)}(n,t);var e=d(n);function n(t){var i;y(this,n);var a,s=(0,o.kU)(t.languageData),u={token:(a=t).token,blankLine:a.blankLine||function(){},startState:a.startState||function(){return!0},copyState:a.copyState||x,indent:a.indent||function(){return null},languageData:a.languageData||{}};return(i=e.call(this,s,{startParse:function(t,e,n){return new O(p(i),t,e,n)}},function(t){var e=r.Jq.define({id:E.length,name:"Document",props:[o.mi.add((function(){return t}))]});return E.push(e),e}(s),[o.tK.of((function(t,e){return i.getIndent(t,e)}))])).streamParser=u,i.stateAfter=new WeakMap,i}return b(n,[{key:"getIndent",value:function(t,e){for(var n=(0,o.qz)(t.state),r=n.resolve(e);r&&r.type!=this.topNode;)r=r.parent;if(!r)return null;var i,a,s=C(this,n,0,r.from,e);if(s?(a=s.state,i=s.pos+1):(a=this.streamParser.startState(t.unit),i=0),e-i>1e4)return null;for(;i=i&&n+e.length<=o&&t.stateAfter.get(e);if(a)return{state:t.streamParser.copyState(a),pos:n+e.length};for(var s=e.children.length-1;s>=0;s--){var u=e.children[s],l=n+e.positions[s],h=u instanceof r.mp&&l=e.length)return e;o||e.type!=t.topNode||(o=!0);for(var a=e.children.length-1;a>=0;a--){var s=e.positions[a]+n,u=e.children[a],l=void 0;if(sn&&C(t,u.tree,0-u.offset,n,u.to),c=void 0;if(h&&(c=M(t,u.tree,n+u.offset,h.pos+u.offset,!1)))return{state:h.state,tree:c}}}catch(f){s.e(f)}finally{s.f()}return{state:t.streamParser.startState((0,o.y1)(i)),tree:r.mp.empty}}(e,a.fragments,i,a.state),u=s.state,h=s.tree;this.state=u,this.pos=this.chunkStart=i+h.length,h.length&&(this.chunks.push(h),this.chunkPos.push(i)),this.pose.start)return i}throw new Error("Stream parser failed to advance stream.")}var D=Object.create(null),E=[r.Jq.none],P=new r.Lj(E),R=[];function B(t){return t?D[t]||(D[t]=function(t){var e,n=null,o=l(t.split("."));try{for(o.s();!(e=o.n()).done;){var a=e.value,u=i.pJ[a];u?"function"==typeof u?n?n=u(n):W(a,"Modifier ".concat(a," used at start of tag")):n?W(a,"Tag ".concat(a," used as modifier")):n=u:W(a,"Unknown highlighting tag ".concat(a))}}catch(f){o.e(f)}finally{o.f()}if(!n)return 0;var h=t.replace(/ /g,"_"),c=r.Jq.define({id:E.length,name:h,props:[(0,i.Gv)(s({},h,n))]});return E.push(c),c.id}(t)):0}for(var L=0,N=[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","typeName"],["attribute","propertyName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]];L-1||(R.push(t),console.warn(e))}},23414:function(t,e,n){"use strict";function r(t){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function i(t,e){var n;if("undefined"==typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(n=function(t,e){if(!t)return;if("string"==typeof t)return o(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return o(t,e)}(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var r=0,i=function(){};return{s:i,n:function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,u=!1;return{s:function(){n=t[Symbol.iterator]()},n:function(){var t=n.next();return s=t.done,t},e:function(t){u=!0,a=t},f:function(){try{s||null==n.return||n.return()}finally{if(u)throw a}}}}function o(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);nt)return p[e-1]<=t;return!1}function y(t){return t>=127462&&t<=127487}function k(t,e){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return(n?b:w)(t,e)}function b(t,e){if(e==t.length)return e;e&&S(t.charCodeAt(e))&&x(t.charCodeAt(e-1))&&e--;var n=A(t,e);for(e+=C(n);e=0&&y(A(t,o));)i++,o-=2;if(i%2==0)break;e+=2}}return e}function w(t,e){for(;e>0;){var n=b(t,e-2);if(n=56320&&t<57344}function x(t){return t>=55296&&t<56320}function A(t,e){var n=t.charCodeAt(e);if(!x(n)||e+1==t.length)return n;var r=t.charCodeAt(e+1);return S(r)?r-56320+(n-55296<<10)+65536:n}function C(t){return t<65536?1:2}function M(t,e,n){for(var r=0;r=n)return{offset:i,leftOver:0};e+=9==t.charCodeAt(i)?r-e%r:1,i=k(t,i)}return{offset:t.length,leftOver:n-e}}var T=function(){function t(){f(this,t)}return v(t,[{key:"lineAt",value:function(t){if(t<0||t>this.length)throw new RangeError("Invalid position ".concat(t," in document of length ").concat(this.length));return this.lineInner(t,!1,1,0)}},{key:"line",value:function(t){if(t<1||t>this.lines)throw new RangeError("Invalid line number ".concat(t," in ").concat(this.lines,"-line document"));return this.lineInner(t,!0,1,0)}},{key:"replace",value:function(t,e,n){var r=[];return this.decompose(0,t,r,2),n.length&&n.decompose(0,n.length,r,3),this.decompose(e,this.length,r,1),E.from(r,this.length-(e-t)+n.length)}},{key:"append",value:function(t){return this.replace(this.length,this.length,t)}},{key:"slice",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.length,n=[];return this.decompose(t,e,n,0),E.from(n,e-t)}},{key:"eq",value:function(t){if(t==this)return!0;if(t.length!=this.length||t.lines!=this.lines)return!1;for(var e=new L(this),n=new L(t);;){if(e.next(),n.next(),e.lineBreak!=n.lineBreak||e.done!=n.done||e.value!=n.value)return!1;if(e.done)return!0}}},{key:"iter",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;return new L(this,t)}},{key:"iterRange",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.length;return new N(this,t,e)}},{key:"toString",value:function(){return this.sliceString(0)}},{key:"toJSON",value:function(){var t=[];return this.flatten(t),t}}],[{key:"of",value:function(e){if(0==e.length)throw new RangeError("A document must have at least one line");return 1!=e.length||e[0]?e.length<=32?new D(e):E.from(D.split(e,[])):t.empty}}]),t}();"undefined"!=typeof Symbol&&(T.prototype[Symbol.iterator]=function(){return this.iter()});var D=function(t){s(n,t);var e=l(n);function n(t){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:P(t);return f(this,n),(r=e.call(this)).text=t,r.length=i,r}return v(n,[{key:"lineInner",value:function(t,e,n,r){for(var i=0;;i++){var o=this.text[i],a=r+o.length;if((e?n:a)>=t)return new j(r,a,n,o);r=a+1,n++}}},{key:"decompose",value:function(t,e,r,i){var o=t<=0&&e>=this.length?this:new n(B(this.text,t,e),Math.min(e,this.length)-Math.max(0,t));if(1&i){var a=r.pop(),s=R(o.text,a.text.slice(),0,o.length);if(s.length<=32)r.push(new n(s,a.length+o.length));else{var u=s.length>>1;r.push(new n(s.slice(0,u)),new n(s.slice(u)))}}else r.push(o)}},{key:"replace",value:function(t,e,r){if(!(r instanceof n))return a(c(n.prototype),"replace",this).call(this,t,e,r);var i=R(this.text,R(r.text,B(this.text,0,t)),e),o=this.length+r.length-(e-t);return i.length<=32?new n(i,o):E.from(n.split(i,[]),o)}},{key:"sliceString",value:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.length,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"\n",r="",i=0,o=0;i<=e&&ot&&o&&(r+=n),ti&&(r+=a.slice(Math.max(0,t-i),e-i)),i=s+1}return r}},{key:"flatten",value:function(t){var e,n=i(this.text);try{for(n.s();!(e=n.n()).done;){var r=e.value;t.push(r)}}catch(o){n.e(o)}finally{n.f()}}},{key:"lines",get:function(){return this.text.length}},{key:"children",get:function(){return null}}],[{key:"split",value:function(t,e){var r,o=[],a=-1,s=i(t);try{for(s.s();!(r=s.n()).done;){var u=r.value;o.push(u),a+=u.length+1,32==o.length&&(e.push(new n(o,a)),o=[],a=-1)}}catch(l){s.e(l)}finally{s.f()}return a>-1&&e.push(new n(o,a)),e}}]),n}(T),E=function(t){s(n,t);var e=l(n);function n(t,r){var o;f(this,n),(o=e.call(this)).children=t,o.length=r,o.lines=0;var a,s=i(t);try{for(s.s();!(a=s.n()).done;){var u=a.value;o.lines+=u.lines}}catch(l){s.e(l)}finally{s.f()}return o}return v(n,[{key:"lineInner",value:function(t,e,n,r){for(var i=0;;i++){var o=this.children[i],a=r+o.length,s=n+o.lines-1;if((e?s:a)>=t)return o.lineInner(t,e,n,r);r=a+1,n=s+1}}},{key:"decompose",value:function(t,e,n,r){for(var i=0,o=0;o<=e&&i=o){var u=r&((o<=t?1:0)|(s>=e?2:0));o>=t&&s<=e&&!u?n.push(a):a.decompose(t-o,e-o,n,u)}o=s+1}}},{key:"replace",value:function(t,e,r){if(r.lines=o&&e<=u){var l=s.replace(t-o,e-o,r),h=this.lines-s.lines+l.lines;if(l.lines>4&&l.lines>h>>6){var f=this.children.slice();return f[i]=l,new n(f,this.length-(e-t)+r.length)}return a(c(n.prototype),"replace",this).call(this,o,u,l)}o=u+1}return a(c(n.prototype),"replace",this).call(this,t,e,r)}},{key:"sliceString",value:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.length,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"\n",r="",i=0,o=0;it&&i&&(r+=n),to&&(r+=a.sliceString(t-o,e-o,n)),o=s+1}return r}},{key:"flatten",value:function(t){var e,n=i(this.children);try{for(n.s();!(e=n.n()).done;){e.value.flatten(t)}}catch(r){n.e(r)}finally{n.f()}}}],[{key:"from",value:function(t){var e,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t.reduce((function(t,e){return t+e.length+1}),-1),o=0,a=i(t);try{for(a.s();!(e=a.n()).done;){var s=e.value;o+=s.lines}}catch(A){a.e(A)}finally{a.f()}if(o<32){var u,l=[],h=i(t);try{for(h.s();!(u=h.n()).done;){var c=u.value;c.flatten(l)}}catch(A){h.e(A)}finally{h.f()}return new D(l,r)}var f=Math.max(32,o>>5),d=f<<1,v=f>>1,p=[],g=0,m=-1,y=[];function k(t){var e;if(t.lines>d&&t instanceof n){var r,o=i(t.children);try{for(o.s();!(r=o.n()).done;){k(r.value)}}catch(A){o.e(A)}finally{o.f()}}else t.lines>v&&(g>v||!g)?(b(),p.push(t)):t instanceof D&&g&&(e=y[y.length-1])instanceof D&&t.lines+e.lines<=32?(g+=t.lines,m+=t.length+1,y[y.length-1]=new D(e.text.concat(t.text),e.length+1+t.length)):(g+t.lines>f&&b(),g+=t.lines,m+=t.length+1,y.push(t))}function b(){0!=g&&(p.push(1==y.length?y[0]:n.from(y,m)),m=-1,g=y.length=0)}var w,S=i(t);try{for(S.s();!(w=S.n()).done;){var x=w.value;k(x)}}catch(A){S.e(A)}finally{S.f()}return b(),1==p.length?p[0]:new n(p,r)}}]),n}(T);function P(t){var e,n=-1,r=i(t);try{for(r.s();!(e=r.n()).done;){n+=e.value.length+1}}catch(o){r.e(o)}finally{r.f()}return n}function R(t,e){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1e9,i=0,o=0,a=!0;o=n&&(u>r&&(s=s.slice(0,r-i)),i1&&void 0!==arguments[1]?arguments[1]:1;f(this,t),this.dir=n,this.done=!1,this.lineBreak=!1,this.value="",this.nodes=[e],this.offsets=[n>0?0:e instanceof D?e.text.length:e.children.length]}return v(t,[{key:"next",value:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;;){var e=this.nodes.length-1;if(e<0)return this.done=!0,this.value="",this.lineBreak=!1,this;var n=this.nodes[e],r=this.offsets[e],i=n instanceof D?n.text.length:n.children.length;if(r==(this.dir>0?i:0))this.nodes.pop(),this.offsets.pop();else if(this.lineBreak||r==(this.dir>0?0:i))if(n instanceof D){var o=n.text[r-(this.dir<0?1:0)];if(this.offsets[e]=r+=this.dir,this.lineBreak=!1,o.length>Math.max(0,t))return this.value=0==t?o:this.dir>0?o.slice(t):o.slice(0,o.length-t),this;t-=o.length}else{var a=n.children[this.dir>0?r:r-1];this.offsets[e]=r+this.dir,this.lineBreak=!1,t>a.length?t-=a.length:(this.nodes.push(a),this.offsets.push(this.dir>0?0:a instanceof D?a.text.length:a.children.length))}else{if(this.lineBreak=!0,0==t)return this.value="\n",this;t--}}}}]),t}(),N=function(){function t(e,n,r){f(this,t),this.value="",this.cursor=new L(e,n>r?-1:1),n>r?(this.skip=e.length-n,this.limit=n-r):(this.skip=n,this.limit=r-n)}return v(t,[{key:"next",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;if(this.limit<=0)this.limit=-1;else{var e=this.cursor.next(this.skip+t),n=e.value,r=e.lineBreak,i=e.done;this.skip=0,this.value=n;var o=r?1:n.length;o>this.limit&&(this.value=this.cursor.dir>0?n.slice(0,this.limit):n.slice(o-this.limit)),i||0==this.value.length?this.limit=-1:this.limit-=this.value.length}return this}},{key:"lineBreak",get:function(){return this.cursor.lineBreak}},{key:"done",get:function(){return this.limit<0}}]),t}(),j=function(){function t(e,n,r,i){f(this,t),this.from=e,this.to=n,this.number=r,this.text=i}return v(t,[{key:"length",get:function(){return this.to-this.from}}]),t}()},19753:function(t,e,n){"use strict";n.d(e,{kH:function(){return Ct},p:function(){return Ot},Nm:function(){return fe},tk:function(){return _n},BF:function(){return Kt},lg:function(){return Xt},Uw:function(){return lr},ZO:function(){return br},$f:function(){return tr},$1:function(){return rr}});for(var r=n(77885),i=n(23414),o=n(62038),a=n(13764),s={8:"Backspace",9:"Tab",10:"Enter",12:"NumLock",13:"Enter",16:"Shift",17:"Control",18:"Alt",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",59:";",61:"=",91:"Meta",92:"Meta",106:"*",107:"+",108:",",109:"-",110:".",111:"/",144:"NumLock",145:"ScrollLock",160:"Shift",161:"Shift",162:"Control",163:"Control",164:"Alt",165:"Alt",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",229:"q"},u={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"',229:"Q"},l="undefined"!=typeof navigator&&/Chrome\/(\d+)/.exec(navigator.userAgent),h="undefined"!=typeof navigator&&/Apple Computer/.test(navigator.vendor),c="undefined"!=typeof navigator&&/Gecko\/\d+/.test(navigator.userAgent),f="undefined"!=typeof navigator&&/Mac/.test(navigator.platform),d="undefined"!=typeof navigator&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent),v=l&&(f||+l[1]<57)||c&&f,p=0;p<10;p++)s[48+p]=s[96+p]=String(p);for(p=1;p<=24;p++)s[p+111]="F"+p;for(p=65;p<=90;p++)s[p]=String.fromCharCode(p+32),u[p]=String.fromCharCode(p);for(var g in s)u.hasOwnProperty(g)||(u[g]=s[g]);function m(t,e,n){return(m="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(t,e,n){var r=function(t,e){for(;!Object.prototype.hasOwnProperty.call(t,e)&&null!==(t=A(t)););return t}(t,e);if(r){var i=Object.getOwnPropertyDescriptor(r,e);return i.get?i.get.call(n):i.value}})(t,e,n||t)}function y(t){return(y="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function k(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&b(t,e)}function b(t,e){return(b=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function w(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,r=A(t);if(e){var i=A(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return S(this,n)}}function S(t,e){return!e||"object"!==y(e)&&"function"!=typeof e?x(t):e}function x(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function A(t){return(A=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function C(t){return function(t){if(Array.isArray(t))return P(t)}(t)||function(t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(t))return Array.from(t)}(t)||E(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function M(t,e){var n;if("undefined"==typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(n=E(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var r=0,i=function(){};return{s:i,n:function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){n=t[Symbol.iterator]()},n:function(){var t=n.next();return a=t.done,t},e:function(t){s=!0,o=t},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function O(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function T(t,e){for(var n=0;nt.length)&&(e=t.length);for(var n=0,r=new Array(e);n2),android:/Android\b/.test(B.userAgent),webkit:H,safari:_,webkit_version:H?+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]:0,tabSize:null!=L.documentElement.style.tabSize?"tab-size":"-moz-tab-size"};function F(t){return t.getSelection?t.getSelection():document.getSelection()}function $(t,e){if(!e.anchorNode)return!1;try{return t.contains(3==e.anchorNode.nodeType?e.anchorNode.parentNode:e.anchorNode)}catch(n){return!1}}function U(t){if(3==t.nodeType){var e=it();return e.setEnd(t,t.nodeValue.length),e.setStart(t,0),e.getClientRects()}return 1==t.nodeType?t.getClientRects():[]}function G(t,e,n,r){return!!n&&(J(t,e,n,r,-1)||J(t,e,n,r,1))}function K(t){for(var e=0;;e++)if(!(t=t.previousSibling))return e}function J(t,e,n,r,i){for(;;){if(t==n&&e==r)return!0;if(e==(i<0?0:Y(t))){if("DIV"==t.nodeName)return!1;var o=t.parentNode;if(!o||1!=o.nodeType)return!1;e=K(t)+(i<0?0:1),t=o}else{if(1!=t.nodeType)return!1;t=t.childNodes[e+(i<0?-1:0)],e=i<0?Y(t):0}}}function Y(t){return 3==t.nodeType?t.nodeValue.length:t.childNodes.length}var X={left:0,right:0,top:0,bottom:0};function Q(t,e){var n=e?t.left:t.right;return{left:n,right:n,top:t.top,bottom:t.bottom}}function Z(t){return{left:0,right:t.innerWidth,top:0,bottom:t.innerHeight}}var tt,et=function(){function t(){O(this,t),this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}return D(t,[{key:"eq",value:function(t){return this.anchorNode==t.anchorNode&&this.anchorOffset==t.anchorOffset&&this.focusNode==t.focusNode&&this.focusOffset==t.focusOffset}},{key:"set",value:function(t){this.anchorNode=t.anchorNode,this.anchorOffset=t.anchorOffset,this.focusNode=t.focusNode,this.focusOffset=t.focusOffset}}]),t}(),nt=null;function rt(t){if(t.setActive)return t.setActive();if(nt)return t.focus(nt);for(var e=[],n=t;n&&(e.push(n,n.scrollTop,n.scrollLeft),n!=n.ownerDocument);n=n.parentNode);if(t.focus(null==nt?{get preventScroll(){return nt={preventScroll:!0},!0}}:void 0),!nt){nt=!1;for(var r=0;r2&&void 0!==arguments[2])||arguments[2];O(this,t),this.node=e,this.offset=n,this.precise=r}return D(t,null,[{key:"before",value:function(e,n){return new t(e.parentNode,K(e),n)}},{key:"after",value:function(e,n){return new t(e.parentNode,K(e)+1,n)}}]),t}(),at=[],st=function(){function t(){O(this,t),this.parent=null,this.dom=null,this.dirty=2}return D(t,[{key:"posBefore",value:function(t){var e,n=this.posAtStart,r=M(this.children);try{for(r.s();!(e=r.n()).done;){var i=e.value;if(i==t)return n;n+=i.length+i.breakAfter}}catch(o){r.e(o)}finally{r.f()}throw new RangeError("Invalid child in posBefore")}},{key:"posAfter",value:function(t){return this.posBefore(t)+t.length}},{key:"coordsAt",value:function(t,e){return null}},{key:"sync",value:function(e){if(2&this.dirty){var n,r=this.dom,i=null,o=M(this.children);try{for(o.s();!(n=o.n()).done;){var a=n.value;if(a.dirty){var s=i?i.nextSibling:r.firstChild;!s||a.dom||t.get(s)||a.reuseDOM(s),a.sync(e),a.dirty=0}e&&e.node==r&&i!=a.dom&&(e.written=!0),lt(r,i,a.dom),i=a.dom}}catch(f){o.e(f)}finally{o.f()}var u=i?i.nextSibling:r.firstChild;for(u&&e&&e.node==r&&(e.written=!0);u;)u=ut(u)}else if(1&this.dirty){var l,h=M(this.children);try{for(h.s();!(l=h.n()).done;){var c=l.value;c.dirty&&(c.sync(e),c.dirty=0)}}catch(f){h.e(f)}finally{h.f()}}}},{key:"reuseDOM",value:function(t){return!1}},{key:"localPosFromDOM",value:function(e,n){var r;if(e==this.dom)r=this.dom.childNodes[n];else{for(var i=0==Y(e)?0:0==n?-1:1;;){var o=e.parentNode;if(o==this.dom)break;0==i&&o.firstChild!=o.lastChild&&(i=e==o.firstChild?-1:1),e=o}r=i<0?e:e.nextSibling}if(r==this.dom.firstChild)return 0;for(;r&&!t.get(r);)r=r.nextSibling;if(!r)return this.length;for(var a=0,s=0;;a++){var u=this.children[a];if(u.dom==r)return s;s+=u.length+u.breakAfter}}},{key:"domBoundsAround",value:function(t,e){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=-1,i=-1,o=-1,a=-1,s=0,u=n;se)return l.domBoundsAround(t,e,u);if(h>=t&&-1==r&&(r=s,i=u),h>=e&&h!=u&&-1==o){o=s,a=h;break}u=h+l.breakAfter}return{from:i,to:a<0?n+this.length:a,startDOM:(r?this.children[r-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:o=0?this.children[o+1].dom:null}}},{key:"markDirty",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];2&this.dirty||(this.dirty|=2,this.markParentsDirty(t))}},{key:"markParentsDirty",value:function(t){for(var e=this.parent;e;e=e.parent){if(t&&(e.dirty|=2),1&e.dirty)return;e.dirty|=1,t=!1}}},{key:"setParent",value:function(t){this.parent!=t&&(this.parent=t,this.dirty&&this.markParentsDirty(!0))}},{key:"setDOM",value:function(t){this.dom=t,t.cmView=this}},{key:"replaceChildren",value:function(t,e){var n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:at;this.markDirty();for(var i=t;i0&&void 0!==arguments[0]?arguments[0]:this.length;return new ht(this.children,t,this.children.length)}},{key:"childPos",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return this.childCursor().findPos(t,e)}},{key:"toString",value:function(){var t=this.constructor.name.replace("View","");return t+(this.children.length?"("+this.children.join()+")":this.length?"["+("Text"==t?this.text:this.length)+"]":"")+(this.breakAfter?"#":"")}},{key:"editorView",get:function(){if(!this.parent)throw new Error("Accessing view in orphan content view");return this.parent.editorView}},{key:"overrideDOMText",get:function(){return null}},{key:"posAtStart",get:function(){return this.parent?this.parent.posBefore(this):0}},{key:"posAtEnd",get:function(){return this.posAtStart+this.length}},{key:"rootView",get:function(){for(var t=this;;){var e=t.parent;if(!e)return t;t=e}}}],[{key:"get",value:function(t){return t.cmView}}]),t}();function ut(t){var e=t.nextSibling;return t.parentNode.removeChild(t),e}function lt(t,e,n){var r=e?e.nextSibling:t.firstChild;if(n.parentNode==t)for(;r!=n;)r=ut(r);else t.insertBefore(n,r)}st.prototype.breakAfter=0;var ht=function(){function t(e,n,r){O(this,t),this.children=e,this.pos=n,this.i=r,this.off=0}return D(t,[{key:"findPos",value:function(t){for(var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;;){if(t>this.pos||t==this.pos&&(e>0||0==this.i||this.children[this.i-1].breakAfter))return this.off=t-this.pos,this;var n=this.children[--this.i];this.pos-=n.length+n.breakAfter}}}]),t}(),ct=[],ft=function(t){k(n,t);var e=w(n);function n(){return O(this,n),e.apply(this,arguments)}return D(n,[{key:"become",value:function(t){return!1}},{key:"getSide",value:function(){return 0}}]),n}(st);ft.prototype.children=ct;var dt=function(t){k(n,t);var e=w(n);function n(t){var r;return O(this,n),(r=e.call(this)).text=t,r}return D(n,[{key:"createDOM",value:function(t){this.setDOM(t||document.createTextNode(this.text))}},{key:"sync",value:function(t){this.dom||this.createDOM(),this.dom.nodeValue!=this.text&&(t&&t.node==this.dom&&(t.written=!0),this.dom.nodeValue=this.text)}},{key:"reuseDOM",value:function(t){return 3==t.nodeType&&(this.createDOM(t),!0)}},{key:"merge",value:function(t,e,r){return(!r||r instanceof n&&!(this.length-(e-t)+r.length>256))&&(this.text=this.text.slice(0,t)+(r?r.text:"")+this.text.slice(e),this.markDirty(),!0)}},{key:"slice",value:function(t){return new n(this.text.slice(t))}},{key:"localPosFromDOM",value:function(t,e){return t==this.dom?e:e?this.text.length:0}},{key:"domAtPos",value:function(t){return new ot(this.dom,t)}},{key:"domBoundsAround",value:function(t,e,n){return{from:n,to:n+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}},{key:"coordsAt",value:function(t,e){return pt(this.dom,t,e)}},{key:"length",get:function(){return this.text.length}}]),n}(ft),vt=function(t){k(n,t);var e=w(n);function n(t){var r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;O(this,n),(r=e.call(this)).mark=t,r.children=i,r.length=o;var a,s=M(i);try{for(s.s();!(a=s.n()).done;){var u=a.value;u.setParent(x(r))}}catch(l){s.e(l)}finally{s.f()}return r}return D(n,[{key:"createDOM",value:function(){var t=document.createElement(this.mark.tagName);if(this.mark.class&&(t.className=this.mark.class),this.mark.attrs)for(var e in this.mark.attrs)t.setAttribute(e,this.mark.attrs[e]);this.setDOM(t)}},{key:"sync",value:function(t){this.dom||this.createDOM(),m(A(n.prototype),"sync",this).call(this,t)}},{key:"merge",value:function(t,e,r,i,o){return(!r||!(!(r instanceof n&&r.mark.eq(this.mark))||t&&i<=0||ee&&r.push(ir&&(e=r);var i=e,o=e,a=0;0==e&&n<0||e==r&&n>=0?q.chrome||q.gecko||(e?(i--,a=1):(o++,a=-1)):n<0?i--:o++;var s=it();s.setEnd(t,o),s.setStart(t,i);var u=s.getClientRects();if(!u.length)return X;var l=u[(a?a<0:n>=0)?0:u.length-1];return q.safari&&!a&&0==l.width&&(l=Array.prototype.find.call(u,(function(t){return t.width}))||l),a?Q(l,a<0):l}var gt=function(t){k(n,t);var e=w(n);function n(t,r,i){var o;return O(this,n),(o=e.call(this)).widget=t,o.length=r,o.side=i,o}return D(n,[{key:"slice",value:function(t){return n.create(this.widget,this.length-t,this.side)}},{key:"sync",value:function(){this.dom&&this.widget.updateDOM(this.dom)||(this.setDOM(this.widget.toDOM(this.editorView)),this.dom.contentEditable="false")}},{key:"getSide",value:function(){return this.side}},{key:"merge",value:function(t,e,r,i,o){return!(r&&(!(r instanceof n&&this.widget.compare(r.widget))||t>0&&i<=0||e0?n.length-1:0;r=n[i],!(t>0?0==i:i==n.length-1||r.top0?-1:1);return 0==t&&e>0||t==this.length&&e<=0?r:Q(r,0==t)}},{key:"overrideDOMText",get:function(){if(0==this.length)return i.xv.empty;for(var t=this;t.parent;)t=t.parent;var e=t.editorView,n=e&&e.state.doc,r=this.posAtStart;return n?n.slice(r,r+this.length):i.xv.empty}}],[{key:"create",value:function(t,e,r){return new(t.customView||n)(t,e,r)}}]),n}(ft),mt=function(t){k(n,t);var e=w(n);function n(){return O(this,n),e.apply(this,arguments)}return D(n,[{key:"domAtPos",value:function(t){return new ot(this.widget.text,t)}},{key:"sync",value:function(){this.dom||this.setDOM(this.widget.toDOM())}},{key:"localPosFromDOM",value:function(t,e){return e?3==t.nodeType?Math.min(e,this.length):this.length:0}},{key:"ignoreMutation",value:function(){return!1}},{key:"coordsAt",value:function(t,e){return pt(this.widget.text,t,e)}},{key:"overrideDOMText",get:function(){return null}}]),n}(gt);function yt(t,e,n,r,i,o){var a,s=t.childCursor(),u=s.findPos(n,1),l=u.i,h=u.off,c=s.findPos(e,-1),f=c.i,d=c.off,v=e-n,p=M(r);try{for(p.s();!(a=p.n()).done;){v+=a.value.length}}catch(S){p.e(S)}finally{p.f()}t.length+=v;var g=t.children;if(f==l&&d){var m=g[f];if(1==r.length&&m.merge(d,h,r[0],i,o))return;if(0==r.length)return void m.merge(d,h,null,i,o);var y=m.slice(h);y.merge(0,0,r[r.length-1],0,o)?r[r.length-1]=y:r.push(y),l++,o=h=0}if(h){var k=g[l];r.length&&k.merge(0,h,r[r.length-1],0,o)?(r.pop(),o=0):k.merge(0,h,null,0,0)}else li&&n0;r--){var s=e[r-1].dom;if(s.parentNode==t)return ot.after(s)}return new ot(t,0)}function bt(t,e,n){var r,i=t.children;n>0&&e instanceof vt&&i.length&&(r=i[i.length-1])instanceof vt&&r.mark.eq(e.mark)?bt(r,e.children[0],n-1):(i.push(e),e.setParent(t)),t.length+=e.length}function wt(t,e,n){for(var r=0,i=0;i=e:a>e)return o.coordsAt(e-r,n);r=a}}return(t.dom.lastChild||t.dom).getBoundingClientRect()}function St(t,e){for(var n in t)"class"==n&&e.class?e.class+=" "+t.class:"style"==n&&e.style?e.style+=";"+t.style:e[n]=t[n];return e}function xt(t,e){if(t==e)return!0;if(!t||!e)return!1;var n=Object.keys(t),r=Object.keys(e);if(n.length!=r.length)return!1;for(var i=0,o=n;i-1}},{key:"heightRelevant",get:function(){return!1}}],[{key:"mark",value:function(t){return new Tt(t)}},{key:"widget",value:function(t){var e=t.side||0;return t.block&&(e+=200000001*(e>0?1:-1)),new Et(t,e,e,!!t.block,t.widget||null,!1)}},{key:"replace",value:function(t){var e=!!t.block,n=Pt(t),r=n.start,i=n.end;return new Et(t,e?-2e8*(r?2:1):1e8*(r?-1:1),e?2e8*(i?2:1):1e8*(i?1:-1),e,t.widget||null,!0)}},{key:"line",value:function(t){return new Dt(t)}},{key:"set",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return a.Xs.of(t,e)}}]),n}(a.uU);Ot.none=a.Xs.empty;var Tt=function(t){k(n,t);var e=w(n);function n(t){var r;O(this,n);var i=Pt(t),o=i.start,a=i.end;return(r=e.call(this,1e8*(o?-1:1),1e8*(a?1:-1),null,t)).tagName=t.tagName||"span",r.class=t.class||"",r.attrs=t.attributes||null,r}return D(n,[{key:"eq",value:function(t){return this==t||t instanceof n&&this.tagName==t.tagName&&this.class==t.class&&xt(this.attrs,t.attrs)}},{key:"range",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t;if(t>=e)throw new RangeError("Mark decorations may not be empty");return m(A(n.prototype),"range",this).call(this,t,e)}}]),n}(Ot);Tt.prototype.point=!1;var Dt=function(t){k(n,t);var e=w(n);function n(t){return O(this,n),e.call(this,-1e8,-1e8,null,t)}return D(n,[{key:"eq",value:function(t){return t instanceof n&&xt(this.spec.attributes,t.spec.attributes)}},{key:"range",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t;if(e!=t)throw new RangeError("Line decoration ranges must be zero-length");return m(A(n.prototype),"range",this).call(this,t,e)}}]),n}(Ot);Dt.prototype.mapMode=r.gc.TrackBefore,Dt.prototype.point=!0;var Et=function(t){k(n,t);var e=w(n);function n(t,i,o,a,s,u){var l;return O(this,n),(l=e.call(this,i,o,s,t)).block=a,l.isReplace=u,l.mapMode=a?i<0?r.gc.TrackBefore:r.gc.TrackAfter:r.gc.TrackDel,l}return D(n,[{key:"eq",value:function(t){return t instanceof n&&(e=this.widget,r=t.widget,e==r||!!(e&&r&&e.compare(r)))&&this.block==t.block&&this.startSide==t.startSide&&this.endSide==t.endSide;var e,r}},{key:"range",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t;if(this.isReplace&&(t>e||t==e&&this.startSide>0&&this.endSide<0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&e!=t)throw new RangeError("Widget decorations can only have zero-length ranges");return m(A(n.prototype),"range",this).call(this,t,e)}},{key:"type",get:function(){return this.startSide=5}}]),n}(Ot);function Pt(t){var e=t.inclusiveStart,n=t.inclusiveEnd;return null==e&&(e=t.inclusive),null==n&&(n=t.inclusive),{start:e||!1,end:n||!1}}function Rt(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,i=n.length-1;i>=0&&n[i]+r>t?n[i]=Math.max(n[i],e):n.push(t,e)}Et.prototype.point=!0;var Bt=function(t){k(n,t);var e=w(n);function n(){var t;return O(this,n),(t=e.apply(this,arguments)).children=[],t.length=0,t.prevAttrs=void 0,t.attrs=null,t.breakAfter=0,t}return D(n,[{key:"merge",value:function(t,e,r,i,o,a){if(r){if(!(r instanceof n))return!1;this.dom||r.transferDOM(this)}return i&&this.setDeco(r?r.attrs:null),yt(this,t,e,r?r.children:Lt,o,a),!0}},{key:"split",value:function(t){var e=new n;if(e.breakAfter=this.breakAfter,0==this.length)return e;var r=this.childPos(t),i=r.i,o=r.off;o&&(e.append(this.children[i].slice(o),0),this.children[i].merge(o,this.children[i].length,null,0,0),i++);for(var a=i;a0&&0==this.children[i-1].length;)this.children[i-1].parent=null,i--;return this.children.length=i,this.markDirty(),this.length=t,e}},{key:"transferDOM",value:function(t){this.dom&&(t.setDOM(this.dom),t.prevAttrs=void 0===this.prevAttrs?this.attrs:this.prevAttrs,this.prevAttrs=void 0,this.dom=null)}},{key:"setDeco",value:function(t){xt(this.attrs,t)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=t)}},{key:"append",value:function(t,e){bt(this,t,e)}},{key:"addLineDeco",value:function(t){var e=t.spec.attributes;e&&(this.attrs=St(e,this.attrs||{}))}},{key:"domAtPos",value:function(t){return kt(this.dom,this.children,t)}},{key:"sync",value:function(t){this.dom||(this.setDOM(document.createElement("div")),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0),void 0!==this.prevAttrs&&(At(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add("cm-line"),this.prevAttrs=void 0),m(A(n.prototype),"sync",this).call(this,t);var e=this.dom.lastChild;if(!e||"BR"!=e.nodeName&&st.get(e)instanceof gt){var r=document.createElement("BR");r.cmIgnore=!0,this.dom.appendChild(r)}}},{key:"measureTextSize",value:function(){if(0==this.children.length||this.length>20)return null;var t,e=0,n=M(this.children);try{for(n.s();!(t=n.n()).done;){var r=t.value;if(!(r instanceof dt))return null;var i=U(r.dom);if(1!=i.length)return null;e+=i[0].width}}catch(o){n.e(o)}finally{n.f()}return{lineHeight:this.dom.getBoundingClientRect().height,charWidth:e/this.length}}},{key:"coordsAt",value:function(t,e){return wt(this,t,e)}},{key:"match",value:function(t){return!1}},{key:"type",get:function(){return Ct.Text}}],[{key:"find",value:function(t,e){for(var r=0,i=0;;r++){var o=t.children[r],a=i+o.length;if(a>=e){if(o instanceof n)return o;if(o.length)return null}i=a+o.breakAfter}}}]),n}(st),Lt=[],Nt=function(t){k(n,t);var e=w(n);function n(t,r,i){var o;return O(this,n),(o=e.call(this)).widget=t,o.length=r,o.type=i,o.breakAfter=0,o}return D(n,[{key:"merge",value:function(t,e,r,i,o,a){return!(r&&(!(r instanceof n&&this.widget.compare(r.widget))||t>0&&o<=0||e=0;n--)t=new vt(e[n],[t],t.length);return t}},{key:"buildText",value:function(t,e,n){for(;t>0;){if(this.textOff==this.text.length){var r=this.cursor.next(this.skip),i=r.value,o=r.lineBreak,a=r.done;if(this.skip=0,a)throw new Error("Ran out of text content when drawing inline views");if(o){this.posCovered()||this.getLine(),this.content.length?this.content[this.content.length-1].breakAfter=1:this.breakAtStart=1,this.curLine=null,t--;continue}this.text=i,this.textOff=0}var s=Math.min(this.text.length-this.textOff,t,512);this.getLine().append(this.wrapMarks(new dt(this.text.slice(this.textOff,this.textOff+s)),e),n),this.textOff+=s,t-=s,n=0}}},{key:"span",value:function(t,e,n,r){this.buildText(e-t,n,r),this.pos=e,this.openStart<0&&(this.openStart=r)}},{key:"point",value:function(t,e,n,r,i){var o=e-t;if(n instanceof Et)if(n.block){var a=n.type;a!=Ct.WidgetAfter||this.posCovered()||this.getLine(),this.addWidget(new Nt(n.widget||new It("div"),o,a))}else{var s=this.wrapMarks(gt.create(n.widget||new It("span"),o,n.startSide),r);this.getLine().append(s,i)}else this.doc.lineAt(this.pos).from==this.pos&&this.getLine().addLineDeco(n);o&&(this.textOff+o<=this.text.length?this.textOff+=o:(this.skip+=o-(this.text.length-this.textOff),this.text="",this.textOff=0),this.pos=e),this.openStart<0&&(this.openStart=i)}}],[{key:"build",value:function(e,n,r,i){var o=new t(e,n,r);return o.openEnd=a.Xs.spans(i,n,r,o),o.openStart<0&&(o.openStart=o.openEnd),o.finish(),o}}]),t}(),It=function(t){k(n,t);var e=w(n);function n(t){var r;return O(this,n),(r=e.call(this)).tag=t,r}return D(n,[{key:"eq",value:function(t){return t.tag==this.tag}},{key:"toDOM",value:function(){return document.createElement(this.tag)}},{key:"updateDOM",value:function(t){return t.nodeName.toLowerCase()==this.tag}}]),n}(Mt),Vt=[],Wt=r.r$.define(),zt=r.r$.define(),Ht=r.r$.define(),_t=r.r$.define(),qt=r.r$.define(),Ft=r.r$.define();function $t(t,e,n){var r=t.facet(_t);r.length?r[0](e):window.onerror?window.onerror(String(e),n,void 0,void 0,e):n?console.error(n+":",e):console.error(e)}var Ut=r.r$.define({combine:function(t){return!t.length||t[0]}}),Gt=function t(e,n){O(this,t),this.field=e,this.get=n},Kt=function(){function t(){O(this,t)}return D(t,[{key:"from",value:function(t){return new Gt(this,t)}}],[{key:"define",value:function(){return new t}}]),t}();Kt.decorations=Kt.define(),Kt.scrollMargins=Kt.define();var Jt=0,Yt=r.r$.define(),Xt=function(){function t(e,n,r){O(this,t),this.id=e,this.create=n,this.fields=r,this.extension=Yt.of(this)}return D(t,null,[{key:"define",value:function(e,n){var r=n||{},i=r.eventHandlers,o=r.provide,a=r.decorations,s=[];if(o){var u,l=M(Array.isArray(o)?o:[o]);try{for(l.s();!(u=l.n()).done;){var h=u.value;s.push(h)}}catch(c){l.e(c)}finally{l.f()}}return i&&s.push(Qt.from((function(t){return{plugin:t,handlers:i}}))),a&&s.push(Kt.decorations.from(a)),new t(Jt++,e,s)}},{key:"fromClass",value:function(e,n){return t.define((function(t){return new e(t)}),n)}}]),t}(),Qt=Kt.define(),Zt=function(){function t(e){O(this,t),this.spec=e,this.mustUpdate=null,this.value=null}return D(t,[{key:"takeField",value:function(t,e){var n,r=M(this.spec.fields);try{for(r.s();!(n=r.n()).done;){var i=n.value,o=i.field,a=i.get;o==t&&e.push(a(this.value))}}catch(s){r.e(s)}finally{r.f()}}},{key:"update",value:function(e){if(this.value){if(this.mustUpdate){var n=this.mustUpdate;if(this.mustUpdate=null,!this.value.update)return this;try{this.value.update(n)}catch(r){if($t(n.state,r,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch(i){}return t.dummy}}}else try{this.value=this.spec.create(e)}catch(r){return $t(e.state,r,"CodeMirror plugin crashed"),t.dummy}return this}},{key:"destroy",value:function(t){var e;if(null===(e=this.value)||void 0===e?void 0:e.destroy)try{this.value.destroy()}catch(n){$t(t.state,n,"CodeMirror plugin crashed")}}}]),t}();Zt.dummy=new Zt(Xt.define((function(){return{}})));var te=r.r$.define({combine:function(t){return t.reduce((function(t,e){return St(e,t)}),{})}}),ee=r.r$.define({combine:function(t){return t.reduce((function(t,e){return St(e,t)}),{})}}),ne=r.r$.define(),re=r.r$.define(),ie=function(){function t(e,n,r,i){O(this,t),this.fromA=e,this.toA=n,this.fromB=r,this.toB=i}return D(t,[{key:"join",value:function(e){return new t(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}},{key:"addToSet",value:function(t){for(var e=t.length,n=this;e>0;e--){var r=t[e-1];if(!(r.fromA>n.toA)){if(r.toAh)break;o+=2}if(!u)return r;new t(u.fromA,u.toA,u.fromB,u.toB).addToSet(r),a=u.toA,s=u.toB}}}]),t}(),oe=function(){function t(e,n){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Vt;O(this,t),this.view=e,this.state=n,this.transactions=i,this.flags=0,this.startState=e.state,this.changes=r.as.empty(this.startState.doc.length);var o,a=M(i);try{for(a.s();!(o=a.n()).done;){var s=o.value;this.changes=this.changes.compose(s.changes)}}catch(h){a.e(h)}finally{a.f()}var u=[];this.changes.iterChangedRanges((function(t,e,n,r){return u.push(new ie(t,e,n,r))})),this.changedRanges=u;var l=e.hasFocus;l!=e.inputState.notifiedFocused&&(e.inputState.notifiedFocused=l,this.flags|=1),this.docChanged&&(this.flags|=2)}return D(t,[{key:"viewportChanged",get:function(){return(4&this.flags)>0}},{key:"heightChanged",get:function(){return(2&this.flags)>0}},{key:"geometryChanged",get:function(){return this.docChanged||(18&this.flags)>0}},{key:"focusChanged",get:function(){return(1&this.flags)>0}},{key:"docChanged",get:function(){return this.transactions.some((function(t){return t.docChanged}))}},{key:"selectionSet",get:function(){return this.transactions.some((function(t){return t.selection}))}},{key:"empty",get:function(){return 0==this.flags&&0==this.transactions.length}}]),t}(),ae=function(t){k(n,t);var e=w(n);function n(t){var r;return O(this,n),(r=e.call(this)).view=t,r.compositionDeco=Ot.none,r.decorations=[],r.minWidth=0,r.minWidthFrom=0,r.minWidthTo=0,r.impreciseAnchor=null,r.impreciseHead=null,r.setDOM(t.contentDOM),r.children=[new Bt],r.children[0].setParent(x(r)),r.updateInner([new ie(0,0,0,t.state.doc.length)],r.updateDeco(),0),r}return D(n,[{key:"update",value:function(t){var e=this,n=t.changedRanges;this.minWidth>0&&n.length&&(n.every((function(t){var n=t.fromA;return t.toAe.minWidthTo}))?(this.minWidthFrom=t.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=t.changes.mapPos(this.minWidthTo,1)):this.minWidth=0),this.view.inputState.composing<0?this.compositionDeco=Ot.none:t.transactions.length&&(this.compositionDeco=function(t,e){var n=F(t.root),r=n.focusNode&&he(n.focusNode,n.focusOffset,0);if(!r)return Ot.none;var i,o,a=t.docView.nearest(r),s=r;if(a instanceof ft){for(;a.parent instanceof ft;)a=a.parent;o=(i=a.posAtStart)+a.length,s=a.dom}else{if(!(a instanceof Bt))return Ot.none;for(;s.parentNode!=a.dom;)s=s.parentNode;for(var u=s.previousSibling;u&&!st.get(u);)u=u.previousSibling;i=o=u?st.get(u).posAtEnd:a.posAtStart}var l=e.mapPos(i,1),h=Math.max(l,e.mapPos(o,-1)),c=r.nodeValue,f=t.state;if(h-l=this.view.viewport.from&&t.state.selection.main.to<=this.view.viewport.to?(this.updateSelection(l,d),!1):(this.updateInner(n,c,t.startState.doc.length,l,d),!0)}},{key:"updateInner",value:function(t,e,n){var r=this,i=arguments.length>3&&void 0!==arguments[3]&&arguments[3],o=arguments.length>4&&void 0!==arguments[4]&&arguments[4];this.updateChildren(t,e,n),this.view.observer.ignore((function(){r.dom.style.height=r.view.viewState.domHeight+"px",r.dom.style.minWidth=r.minWidth?r.minWidth+"px":"";var t=q.chrome?{node:F(r.view.root).focusNode,written:!1}:void 0;r.sync(t),r.dirty=0,(null==t?void 0:t.written)&&(i=!0),r.updateSelection(i,o),r.dom.style.height=""}))}},{key:"updateChildren",value:function(t,e,n){for(var r=this.childCursor(n),i=t.length-1;;i--){var o=i>=0?t[i]:null;if(!o)break;var a=o.fromA,s=o.toA,u=o.fromB,l=o.toB,h=jt.build(this.view.state.doc,u,l,e),c=h.content,f=h.breakAtStart,d=h.openStart,v=h.openEnd,p=r.findPos(s,1),g=p.i,m=p.off,y=r.findPos(a,-1),k=y.i,b=y.off;this.replaceRange(k,b,g,m,c,f,d,v)}}},{key:"replaceRange",value:function(t,e,n,r,i,o,a,s){var u=this.children[t],l=i.length?i[i.length-1]:null,h=l?l.breakAfter:o;if(t!=n||o||h||!(i.length<2)||!u.merge(e,r,i.length?l:null,0==e,a,s)){var c=this.children[n];for(r0&&(!o&&i.length&&u.merge(e,u.length,i[0],!1,a,0)?u.breakAfter=i.shift().breakAfter:(e0&&void 0!==arguments[0]&&arguments[0],e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(e||this.mayControlSelection()){var n=this.view.state.selection.main,r=this.domAtPos(n.anchor),i=n.empty?r:this.domAtPos(n.head);if(q.gecko&&n.empty&&se(r)){var o=document.createTextNode("");this.view.observer.ignore((function(){return r.node.insertBefore(o,r.node.childNodes[r.offset]||null)})),r=i=new ot(o,0),t=!0}var a=F(this.root);(t||!a.focusNode||q.gecko&&n.empty&&ce(a.focusNode,a.focusOffset)||!G(r.node,r.offset,a.anchorNode,a.anchorOffset)||!G(i.node,i.offset,a.focusNode,a.focusOffset))&&this.view.observer.ignore((function(){if(n.empty){if(q.gecko){var t=ce(r.node,r.offset);if(t&&3!=t){var e=he(r.node,r.offset,1==t?1:-1);e&&(r=new ot(e,1==t?0:e.nodeValue.length))}}a.collapse(r.node,r.offset),null!=n.bidiLevel&&null!=a.cursorBidiLevel&&(a.cursorBidiLevel=n.bidiLevel)}else if(a.extend)a.collapse(r.node,r.offset),a.extend(i.node,i.offset);else{var o=document.createRange();if(n.anchor>n.head){var s=[i,r];r=s[0],i=s[1]}o.setEnd(i.node,i.offset),o.setStart(r.node,r.offset),a.removeAllRanges(),a.addRange(o)}})),this.impreciseAnchor=r.precise?null:new ot(a.anchorNode,a.anchorOffset),this.impreciseHead=i.precise?null:new ot(a.focusNode,a.focusOffset)}}},{key:"enforceCursorAssoc",value:function(){var t=this.view.state.selection.main,e=F(this.root);if(t.empty&&t.assoc&&e.modify){var n=Bt.find(this,t.head);if(n){var r=n.posAtStart;if(t.head!=r&&t.head!=r+n.length){var i=this.coordsAt(t.head,-1),o=this.coordsAt(t.head,1);if(i&&o&&!(i.bottom>o.top)){var a=this.domAtPos(t.head+t.assoc);e.collapse(a.node,a.offset),e.modify("move",t.assoc<0?"forward":"backward","lineboundary")}}}}}},{key:"mayControlSelection",value:function(){return this.view.state.facet(Ut)?this.root.activeElement==this.dom:$(this.dom,F(this.root))}},{key:"nearest",value:function(t){for(var e=t;e;){var n=st.get(e);if(n&&n.rootView==this)return n;e=e.parentNode}return null}},{key:"posFromDOM",value:function(t,e){var n=this.nearest(t);if(!n)throw new RangeError("Trying to find position for a DOM position outside of the document");return n.localPosFromDOM(t,e)+n.posAtStart}},{key:"domAtPos",value:function(t){for(var e=this.childCursor().findPos(t,-1),n=e.i,r=e.off;no||t==o&&(i.type==Ct.Text||!r||this.children[r-1].breakAfter))return i.coordsAt(t-o,e);n=o}}},{key:"measureVisibleLineHeights",value:function(){for(var t=[],e=this.view.viewState.viewport,n=e.from,r=e.to,i=Math.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,o=0,a=0;ar)break;if(o>=n){t.push(s.dom.getBoundingClientRect().height);var l=s.dom.scrollWidth;l>i&&(this.minWidth=i=l,this.minWidthFrom=o,this.minWidthTo=u)}o=u+s.breakAfter}return t}},{key:"measureTextSize",value:function(){var t,e=this,n=M(this.children);try{for(n.s();!(t=n.n()).done;){var r=t.value;if(r instanceof Bt){var i=r.measureTextSize();if(i)return i}}}catch(u){n.e(u)}finally{n.f()}var o,a,s=document.createElement("div");return s.className="cm-line",s.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore((function(){e.dom.appendChild(s);var t=U(s.firstChild)[0];o=s.getBoundingClientRect().height,a=t?t.width/27:7,s.remove()})),{lineHeight:o,charWidth:a}}},{key:"childCursor",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.length,e=this.children.length;return e&&(t-=this.children[--e].length),new ht(this.children,t,e)}},{key:"computeBlockGapDeco",value:function(){for(var t=[],e=this.view.viewState,n=0,r=0;;r++){var i=r==e.viewports.length?null:e.viewports[r],o=i?i.from-1:this.length;if(o>n){var a=e.lineAt(o,0).bottom-e.lineAt(n,0).top;t.push(Ot.replace({widget:new ue(a),block:!0,inclusive:!0}).range(n,o))}if(!i)break;n=i.to+1}return Ot.set(t)}},{key:"updateDeco",value:function(){return this.decorations=[this.computeBlockGapDeco(),this.view.viewState.lineGapDeco,this.compositionDeco].concat(C(this.view.state.facet(ne)),C(this.view.pluginField(Kt.decorations)))}},{key:"scrollPosIntoView",value:function(t,e){var n=this.coordsAt(t,e);if(n){var r,i=0,o=0,a=0,s=0,u=M(this.view.pluginField(Kt.scrollMargins));try{for(u.s();!(r=u.n()).done;){var l=r.value;if(l){var h=l.left,c=l.right,f=l.top,d=l.bottom;null!=h&&(i=Math.max(i,h)),null!=c&&(o=Math.max(o,c)),null!=f&&(a=Math.max(a,f)),null!=d&&(s=Math.max(s,d))}}}catch(v){u.e(v)}finally{u.f()}!function(t,e){for(var n=t.ownerDocument.defaultView,r=t.parentNode;r;)if(1==r.nodeType){var i=void 0,o=r==document.body;if(o)i=Z(n);else{if(r.scrollHeight<=r.clientHeight&&r.scrollWidth<=r.clientWidth){r=r.parentNode;continue}var a=r.getBoundingClientRect();i={left:a.left,right:a.left+r.clientWidth,top:a.top,bottom:a.top+r.clientHeight}}var s=0,u=0;if(e.topi.bottom&&(u=e.bottom-i.bottom+5),e.lefti.right&&(s=e.right-i.right+5),s||u)if(o)n.scrollBy(s,u);else{if(u){var l=r.scrollTop;r.scrollTop+=u,u=r.scrollTop-l}if(s){var h=r.scrollLeft;r.scrollLeft+=s,s=r.scrollLeft-h}e={left:e.left-s,top:e.top-u,right:e.right-s,bottom:e.bottom-u}}if(o)break;r=r.parentNode}else{if(11!=r.nodeType)break;r=r.host}}(this.dom,{left:n.left-i,top:n.top-a,right:n.right+o,bottom:n.bottom+s})}}},{key:"root",get:function(){return this.view.root}},{key:"editorView",get:function(){return this.view}},{key:"length",get:function(){return this.view.state.doc.length}}]),n}(st);function se(t){return 1==t.node.nodeType&&t.node.firstChild&&(0==t.offset||"false"==t.node.childNodes[t.offset-1].contentEditable)&&(t.offset0&&n<=0)e=Y(t=t.childNodes[e-1]);else{if(!(1==t.nodeType&&e=0))return null;t=t.childNodes[e],e=0}}}function ce(t,e){return 1!=t.nodeType?0:(e&&"false"==t.childNodes[e-1].contentEditable?1:0)|(e=e){if(a.level==n)return o;(i<0||(0!=r?r<0?a.frome:t[i].level>a.level))&&(i=o)}}if(i<0)throw new RangeError("Index out of range");return i}}]),t}(),we=[];function Se(t,e){var n,r=t.length,i=e==ve?1:2;if(!t||1==i&&!ke.test(t))return xe(r);for(var o=0,a=i,s=i;ox;){for(var M=C,O=2!=we[--C];C>x&&O==(2!=we[C-1]);)C--;w.push(new be(C,M,O?2:1))}else w.push(new be(x,S,0))}else for(var T=0;Tt?e.left-t:Math.max(0,t-e.right)}function Oe(t,e){return e.top>t?e.top-t:Math.max(0,t-e.bottom)}function Te(t,e){return t.tope.top+1}function De(t,e){return et.bottom?{top:t.top,left:t.left,right:t.right,bottom:e}:t}function Pe(t,e,n){for(var r,i,o,a,s,u,l,h,c=t.firstChild;c;c=c.nextSibling)for(var f=U(c),d=0;dg||a==g&&o>p)&&(r=c,i=v,o=p,a=g),0==p?n>v.bottom&&(!l||l.bottomv.top)&&(u=c,h=v):l&&Te(l,v)?l=Ee(l,v.bottom):h&&Te(h,v)&&(h=De(h,v.top))}if(l&&l.bottom>=n?(r=s,i=l):h&&h.top<=n&&(r=u,i=h),!r)return{node:t,offset:0};var m=Math.max(i.left,Math.min(i.right,e));return 3==r.nodeType?Re(r,m,n):o||"true"!=r.contentEditable?{node:t,offset:Array.prototype.indexOf.call(t.childNodes,r)+(e>=(i.left+i.right)/2?1:0)}:Pe(r,m,n)}function Re(t,e,n){for(var r=t.nodeValue.length,i=it(),o=0;o=e&&u.top-1<=n&&u.bottom+1>=n)){var l=e>=(u.left+u.right)/2,h=l;if(q.chrome||q.gecko)i.setEnd(t,o),i.getBoundingClientRect().left==u.right&&(h=!l);return{node:t,offset:o+(h?1:0)}}}}return{node:t,offset:0}}function Be(t,e){for(var n,r=e.x,i=e.y,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-1,a=t.contentDOM.getBoundingClientRect(),s=t.defaultLineHeight/2,u=!1;;){if((n=t.blockAtHeight(i,a.top)).top>i||n.bottomi?-1:1,i=Math.min(n.bottom-s,Math.max(n.top+s,i)),u)return-1;u=!0}if(n.type==Ct.Text)break;i=o>0?n.bottom+s:n.top-s}var l=n.from;if(lt.viewport.to)return t.viewport.to==t.state.doc.length?t.state.doc.length:null;r=Math.max(a.left+1,Math.min(a.right-1,r));var h,c=t.root,f=c.elementFromPoint(r,i),d=-1;if(f&&t.contentDOM.contains(f)&&!(t.docView.nearest(f)instanceof gt))if(c.caretPositionFromPoint){var v=c.caretPositionFromPoint(r,i);v&&(h=v.offsetNode,d=v.offset)}else if(c.caretRangeFromPoint){var p=c.caretRangeFromPoint(r,i);p&&(h=p.startContainer,d=p.startOffset)}if(!h||!t.docView.dom.contains(h)){var g=Bt.find(t.docView,l),m=Pe(g.dom,r,i);h=m.node,d=m.offset}return t.docView.posFromDOM(h,d)}function Le(t,e,n,i){var o=t.state.doc.lineAt(e.head),a=i&&t.lineWrapping?t.coordsAtPos(e.assoc<0&&e.head>o.from?e.head-1:e.head):null;if(a){var s=t.dom.getBoundingClientRect(),u=t.posAtCoords({x:n==(t.textDirection==fe.LTR)?s.right-1:s.left+1,y:(a.top+a.bottom)/2});if(null!=u)return r.jT.cursor(u,n?-1:1)}var l=Bt.find(t.docView,e.head),h=l?n?l.posAtEnd:l.posAtStart:n?o.to:o.from;return r.jT.cursor(h,n?-1:1)}function Ne(t,e,n,i){for(var o=t.state.doc.lineAt(e.head),a=t.bidiSpans(o),s=e,u=null;;){var l=Ce(o,a,t.textDirection,s,n),h=Ae;if(!l){if(o.number==(n?t.state.doc.lines:1))return s;h="\n",o=t.state.doc.line(o.number+(n?1:-1)),a=t.bidiSpans(o),l=r.jT.cursor(n?o.from:o.to)}if(u){if(!u(h))return s}else{if(!i)return l;u=i(h)}s=l}}var je=function(){function t(e){var n=this;O(this,t),this.lastKeyCode=0,this.lastKeyTime=0,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastEscPress=0,this.scrollHandlers=[],this.registeredEvents=[],this.customHandlers=[],this.composing=-1,this.compositionEndedAt=0,this.mouseSelection=null;var r=function(t){var r=ze[t];e.contentDOM.addEventListener(t,(function(i){!We(e,i)||n.ignoreDuringComposition(i)||"keydown"==t&&n.screenKeyEvent(e,i)||(n.mustFlushObserver(i)&&e.observer.forceFlush(),n.runCustomHandlers(t,e,i)?i.preventDefault():r(e,i))})),n.registeredEvents.push(t)};for(var i in ze)r(i);e.contentDOM.addEventListener("keydown",(function(t){e.inputState.lastKeyCode=t.keyCode,e.inputState.lastKeyTime=Date.now()})),this.notifiedFocused=e.hasFocus,this.ensureHandlers(e)}return D(t,[{key:"setSelectionOrigin",value:function(t){this.lastSelectionOrigin=t,this.lastSelectionTime=Date.now()}},{key:"ensureHandlers",value:function(t){var e,n=this,r=M(this.customHandlers=t.pluginField(Qt));try{for(r.s();!(e=r.n()).done;){var i=e.value,o=function(e){n.registeredEvents.indexOf(e)<0&&"scroll"!=e&&(n.registeredEvents.push(e),t.contentDOM.addEventListener(e,(function(r){We(t,r)&&n.runCustomHandlers(e,t,r)&&r.preventDefault()})))};for(var a in i.handlers)o(a)}}catch(s){r.e(s)}finally{r.f()}}},{key:"runCustomHandlers",value:function(t,e,n){var r,i=M(this.customHandlers);try{for(i.s();!(r=i.n()).done;){var o=r.value,a=o.handlers[t],s=!1;if(a){try{s=a.call(o.plugin,n,e)}catch(u){$t(e.state,u)}if(s||n.defaultPrevented)return q.android&&"keydown"==t&&13==n.keyCode&&e.observer.flushSoon(),!0}}}catch(l){i.e(l)}finally{i.f()}return!1}},{key:"runScrollHandlers",value:function(t,e){var n,r=M(this.customHandlers);try{for(r.s();!(n=r.n()).done;){var i=n.value,o=i.handlers.scroll;if(o)try{o.call(i.plugin,e,t)}catch(a){$t(t.state,a)}}}catch(s){r.e(s)}finally{r.f()}}},{key:"ignoreDuringComposition",value:function(t){return!!/^key/.test(t.type)&&(this.composing>0||!!(q.safari&&t.timeStamp-this.compositionEndedAt<500)&&(this.compositionEndedAt=0,!0))}},{key:"screenKeyEvent",value:function(t,e){var n=9==e.keyCode&&Date.now()=e.clientX&&o.top<=e.clientY&&o.bottom>=e.clientY)return!0}return!1}(n,i)&&null,!1===this.dragging&&(i.preventDefault(),this.select(i))}return D(t,[{key:"move",value:function(t){if(0==t.buttons)return this.destroy();!1===this.dragging&&this.select(t)}},{key:"up",value:function(t){null==this.dragging&&this.select(this.startEvent),this.dragging||t.preventDefault(),this.destroy()}},{key:"destroy",value:function(){var t=this.view.contentDOM.ownerDocument;t.removeEventListener("mousemove",this.move),t.removeEventListener("mouseup",this.up),this.inputState.mouseSelection=null}},{key:"select",value:function(t){var e=this.style.get(t,this.extend,this.multiple);e.eq(this.view.state.selection)&&e.main.assoc==this.view.state.selection.main.assoc||this.view.dispatch({selection:e,annotations:r.YW.userEvent.of("pointerselection"),scrollIntoView:!0})}},{key:"update",value:function(t){t.docChanged&&this.dragging&&(this.dragging=this.dragging.map(t.changes)),this.style.update(t)}}]),t}();function We(t,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(var n,r=e.target;r!=t.contentDOM;r=r.parentNode)if(!r||11==r.nodeType||(n=st.get(r))&&n.ignoreEvent(e))return!1;return!0}var ze=Object.create(null),He=q.ie&&q.ie_version<15||q.ios&&q.webkit_version<604;function _e(t,e){var n,i=t.state,o=1,a=i.toText(e),s=a.lines==i.selection.ranges.length;if(Qe&&i.selection.ranges.every((function(t){return t.empty}))&&Qe==a.toString()){var u=-1;n=i.changeByRange((function(t){var n=i.doc.lineAt(t.from);if(n.from==u)return{range:t};u=n.from;var l=i.toText((s?a.line(o++).text:e)+i.lineBreak);return{changes:{from:n.from,insert:l},range:r.jT.cursor(t.from+l.length)}}))}else n=s?i.changeByRange((function(t){var e=a.line(o++);return{changes:{from:t.from,to:t.to,insert:e.text},range:r.jT.cursor(t.from+e.length)}})):i.replaceSelection(a);t.dispatch(n,{annotations:r.YW.userEvent.of("paste"),scrollIntoView:!0})}ze.keydown=function(t,e){(function(t){var e=(t.ctrlKey?1:0)|(t.metaKey?8:0)|(t.altKey?2:0)|(t.shiftKey?4:0),n=t.keyCode,r=q.mac&&1==e;return 8==n||r&&72==n||46==n||r&&68==n||27==n||e==(q.mac?8:1)&&(66==n||73==n||89==n||90==n)})(e)&&e.preventDefault(),t.inputState.setSelectionOrigin("keyboardselection")};var qe=0;function Fe(t,e,n,o){if(1==o)return r.jT.cursor(e,n);if(2==o)return function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,o=t.charCategorizer(e),a=t.doc.lineAt(e),s=e-a.from;if(0==a.length)return r.jT.cursor(e);0==s?n=1:s==a.length&&(n=-1);var u=s,l=s;n<0?u=(0,i.cp)(a.text,s,!1):l=(0,i.cp)(a.text,s);for(var h=o(a.text.slice(u,l));u>0;){var c=(0,i.cp)(a.text,u,!1);if(o(a.text.slice(c,u))!=h)break;u=c}for(;lDate.now()-2e3)){var n,i=null,o=M(t.state.facet(Ht));try{for(o.s();!(n=o.n()).done;){if(i=(0,n.value)(t,e))break}}catch(a){o.e(a)}finally{o.f()}i||0!=e.button||(i=function(t,e){var n=Ke(t,e),i=function(t){if(!Je)return t.detail;var e=Ye;return Ye=t,Xe=!e||e.timeStamp>Date.now()-400&&Math.abs(e.clientX-t.clientX)<2&&Math.abs(e.clientY-t.clientY)<2?(Xe+1)%3:1}(e),o=t.state.selection,a=n,s=e;return{update:function(t){t.changes&&(n&&(n.pos=t.changes.mapPos(n.pos)),o=o.map(t.changes))},get:function(e,u,l){var h;if(e.clientX==s.clientX&&e.clientY==s.clientY?h=a:(h=a=Ke(t,e),s=e),!h||!n)return o;var c=Fe(t,h.pos,h.bias,i);if(n.pos!=h.pos&&!u){var f=Fe(t,n.pos,n.bias,i),d=Math.min(f.from,c.from),v=Math.max(f.to,c.to);c=d=e.top&&t<=e.bottom},Ue=function(t,e,n){return $e(e,n)&&t>=n.left&&t<=n.right};function Ge(t,e,n,r){var i=Bt.find(t.docView,e);if(!i)return 1;var o=e-i.posAtStart;if(0==o)return 1;if(o==i.length)return-1;var a=i.coordsAt(o,-1);if(a&&Ue(n,r,a))return-1;var s=i.coordsAt(o,1);return s&&Ue(n,r,s)?1:a&&$e(r,a)?-1:1}function Ke(t,e){var n=t.posAtCoords({x:e.clientX,y:e.clientY});return null==n?null:{pos:n,bias:Ge(t,n,e.clientX,e.clientY)}}var Je=q.ie&&q.ie_version<=11,Ye=null,Xe=0;ze.dragstart=function(t,e){var n=t.state.selection.main,r=t.inputState.mouseSelection;r&&(r.dragging=n),e.dataTransfer&&(e.dataTransfer.setData("Text",t.state.sliceDoc(n.from,n.to)),e.dataTransfer.effectAllowed="copyMove")},ze.drop=function(t,e){if(e.dataTransfer){var n=t.posAtCoords({x:e.clientX,y:e.clientY}),i=e.dataTransfer.getData("Text");if(null!=n&&i){e.preventDefault();var o=t.inputState.mouseSelection,a=o&&o.dragging&&o.dragMove?{from:o.dragging.from,to:o.dragging.to}:null,s={from:n,insert:i},u=t.state.changes(a?[a,s]:s);t.focus(),t.dispatch({changes:u,selection:{anchor:u.mapPos(n,-1),head:u.mapPos(n,1)},annotations:r.YW.userEvent.of("drop")})}}},ze.paste=function(t,e){t.observer.flush();var n=He?null:e.clipboardData,r=n&&n.getData("text/plain");r?(_e(t,r),e.preventDefault()):function(t){var e=t.dom.parentNode;if(e){var n=e.appendChild(document.createElement("textarea"));n.style.cssText="position: fixed; left: -10000px; top: 10px",n.focus(),setTimeout((function(){t.focus(),n.remove(),_e(t,n.value)}),50)}}(t)};var Qe=null;function Ze(t){t.docView.compositionDeco.size&&t.update([])}ze.copy=ze.cut=function(t,e){var n=function(t){var e,n=[],r=[],i=!1,o=M(t.selection.ranges);try{for(o.s();!(e=o.n()).done;){var a=e.value;a.empty||(n.push(t.sliceDoc(a.from,a.to)),r.push(a))}}catch(f){o.e(f)}finally{o.f()}if(!n.length){var s,u=-1,l=M(t.selection.ranges);try{for(l.s();!(s=l.n()).done;){var h=s.value.from,c=t.doc.lineAt(h);c.number>u&&(n.push(c.text),r.push({from:c.from,to:Math.min(t.doc.length,c.to+1)})),u=c.number}}catch(f){l.e(f)}finally{l.f()}i=!0}return{text:n.join(t.lineBreak),ranges:r,linewise:i}}(t.state),i=n.text,o=n.ranges,a=n.linewise;if(i){Qe=a?i:null;var s=He?null:e.clipboardData;s?(e.preventDefault(),s.clearData(),s.setData("text/plain",i)):function(t,e){var n=t.dom.parentNode;if(n){var r=n.appendChild(document.createElement("textarea"));r.style.cssText="position: fixed; left: -10000px; top: 10px",r.value=e,r.focus(),r.selectionEnd=e.length,r.selectionStart=0,setTimeout((function(){r.remove(),t.focus()}),50)}}(t,i),"cut"==e.type&&t.dispatch({changes:o,scrollIntoView:!0,annotations:r.YW.userEvent.of("cut")})}},ze.focus=ze.blur=function(t){setTimeout((function(){t.hasFocus!=t.inputState.notifiedFocused&&t.update([])}),10)},ze.beforeprint=function(t){t.viewState.printing=!0,t.requestMeasure(),setTimeout((function(){t.viewState.printing=!1,t.requestMeasure()}),2e3)},ze.compositionstart=ze.compositionupdate=function(t){t.inputState.composing<0&&(t.docView.compositionDeco.size&&(t.observer.flush(),Ze(t)),t.inputState.composing=0)},ze.compositionend=function(t){t.inputState.composing=-1,t.inputState.compositionEndedAt=Date.now(),setTimeout((function(){t.inputState.composing<0&&Ze(t)}),50)};var tn,en=["pre-wrap","normal","pre-line"],nn=function(){function t(){O(this,t),this.doc=i.xv.empty,this.lineWrapping=!1,this.direction=fe.LTR,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.lineLength=30,this.heightChanged=!1}return D(t,[{key:"heightForGap",value:function(t,e){var n=this.doc.lineAt(e).number-this.doc.lineAt(t).number+1;return this.lineWrapping&&(n+=Math.ceil((e-t-n*this.lineLength*.5)/this.lineLength)),this.lineHeight*n}},{key:"heightForLine",value:function(t){return this.lineWrapping?(1+Math.max(0,Math.ceil((t-this.lineLength)/(this.lineLength-5))))*this.lineHeight:this.lineHeight}},{key:"setDoc",value:function(t){return this.doc=t,this}},{key:"mustRefresh",value:function(t,e,n){for(var r=!1,i=0;i-1!=this.lineWrapping||this.direction!=n}},{key:"refresh",value:function(t,e,n,r,i,o){var a=en.indexOf(t)>-1,s=Math.round(n)!=Math.round(this.lineHeight)||this.lineWrapping!=a||this.direction!=e;if(this.lineWrapping=a,this.direction=e,this.lineHeight=n,this.charWidth=r,this.lineLength=i,s){this.heightSamples={};for(var u=0;u2&&void 0!==arguments[2]?arguments[2]:2;O(this,t),this.length=e,this.height=n,this.flags=r}return D(t,[{key:"setHeight",value:function(t,e){this.height!=e&&(Math.abs(this.height-e)>1e-4&&(t.heightChanged=!0),this.height=e)}},{key:"replace",value:function(e,n,r){return t.of(r)}},{key:"decomposeLeft",value:function(t,e){e.push(this)}},{key:"decomposeRight",value:function(t,e){e.push(this)}},{key:"applyChanges",value:function(t,e,n,r){for(var i=this,o=r.length-1;o>=0;o--){var a=r[o],s=a.fromA,u=a.toA,l=a.fromB,h=a.toB,c=i.lineAt(s,tn.ByPosNoHeight,e,0,0),f=c.to>=u?c:i.lineAt(u,tn.ByPosNoHeight,e,0,0);for(h+=f.to-u,u=f.to;o>0&&c.from<=r[o-1].toA;)s=r[o-1].fromA,l=r[o-1].fromB,o--,s0},set:function(t){this.flags=(t?2:0)|-3&this.flags}}],[{key:"empty",value:function(){return new un(0,0)}},{key:"of",value:function(e){if(1==e.length)return e[0];for(var n=0,r=e.length,i=0,o=0;;)if(n==r)if(i>2*o){var a=e[n-1];a.break?e.splice(--n,1,a.left,null,a.right):e.splice(--n,1,a.left,a.right),r+=1+a.break,i-=a.size}else{if(!(o>2*i))break;var s=e[r];s.break?e.splice(r,1,s.left,null,s.right):e.splice(r,1,s.left,s.right),r+=2+s.break,o-=s.size}else if(i1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>3?arguments[3]:void 0;return n&&n.from<=e&&n.more&&this.setHeight(t,n.heights[n.index++]),this.outdated=!1,this}},{key:"toString",value:function(){return"block(".concat(this.length,")")}}]),n}(an),un=function(t){k(n,t);var e=w(n);function n(t,r){var i;return O(this,n),(i=e.call(this,t,r,Ct.Text)).collapsed=0,i.widgetHeight=0,i}return D(n,[{key:"replace",value:function(t,e,r){var i=r[0];return 1==r.length&&(i instanceof n||i instanceof ln&&4&i.flags)&&Math.abs(this.length-i.length)<10?(i instanceof ln?i=new n(i.length,this.height):i.height=this.height,this.outdated||(i.outdated=!1),i):an.of(r)}},{key:"updateHeight",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=arguments.length>3?arguments[3]:void 0;return r&&r.from<=e&&r.more?this.setHeight(t,r.heights[r.index++]):(n||this.outdated)&&this.setHeight(t,Math.max(this.widgetHeight,t.heightForLine(this.length-this.collapsed))),this.outdated=!1,this}},{key:"toString",value:function(){return"line(".concat(this.length).concat(this.collapsed?-this.collapsed:"").concat(this.widgetHeight?":"+this.widgetHeight:"",")")}}]),n}(sn),ln=function(t){k(n,t);var e=w(n);function n(t){return O(this,n),e.call(this,t,0)}return D(n,[{key:"lines",value:function(t,e){var n=t.lineAt(e).number,r=t.lineAt(e+this.length).number;return{firstLine:n,lastLine:r,lineHeight:this.height/(r-n+1)}}},{key:"blockAt",value:function(t,e,n,r){var i=this.lines(e,r),o=i.firstLine,a=i.lastLine,s=i.lineHeight,u=Math.max(0,Math.min(a-o,Math.floor((t-n)/s))),l=e.line(o+u),h=l.from,c=l.length;return new on(h,c,n+s*u,s,Ct.Text)}},{key:"lineAt",value:function(t,e,n,r,i){if(e==tn.ByHeight)return this.blockAt(t,n,r,i);if(e==tn.ByPosNoHeight){var o=n.lineAt(t),a=o.from,s=o.to;return new on(a,s-a,0,0,Ct.Text)}var u=this.lines(n,i),l=u.firstLine,h=u.lineHeight,c=n.lineAt(t),f=c.from,d=c.length,v=c.number;return new on(f,d,r+h*(v-l),h,Ct.Text)}},{key:"forEachLine",value:function(t,e,n,r,i,o){for(var a=this.lines(n,i),s=a.firstLine,u=a.lineHeight,l=Math.max(t,i),h=Math.min(i+this.length,e);l<=h;){var c=n.lineAt(l);l==t&&(r+=u*(c.number-s)),o(new on(c.from,c.length,r,r+=u,Ct.Text)),l=c.to+1}}},{key:"replace",value:function(t,e,r){var i=this.length-e;if(i>0){var o=r[r.length-1];o instanceof n?r[r.length-1]=new n(o.length+i):r.push(null,new n(i-1))}if(t>0){var a=r[0];a instanceof n?r[0]=new n(t+a.length):r.unshift(new n(t-1),null)}return an.of(r)}},{key:"decomposeLeft",value:function(t,e){e.push(new n(t-1),null)}},{key:"decomposeRight",value:function(t,e){e.push(null,new n(this.length-t-1))}},{key:"updateHeight",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=arguments.length>3?arguments[3]:void 0,o=e+this.length;if(i&&i.from<=e+this.length&&i.more){var a=[],s=Math.max(e,i.from);for(i.from>e&&a.push(new n(i.from-e-1).updateHeight(t,e));s<=o&&i.more;){var u=t.doc.lineAt(s).length;a.length&&a.push(null);var l=new un(u,i.heights[i.index++]);l.outdated=!1,a.push(l),s+=u+1}return s<=o&&a.push(null,new n(o-s).updateHeight(t,s)),t.heightChanged=!0,an.of(a)}return(r||this.outdated)&&(this.setHeight(t,t.heightForGap(e,e+this.length)),this.outdated=!1),this}},{key:"toString",value:function(){return"gap(".concat(this.length,")")}}]),n}(an),hn=function(t){k(n,t);var e=w(n);function n(t,r,i){var o;return O(this,n),(o=e.call(this,t.length+r+i.length,t.height+i.height,r|(t.outdated||i.outdated?2:0))).left=t,o.right=i,o.size=t.size+i.size,o}return D(n,[{key:"blockAt",value:function(t,e,n,r){var i=n+this.left.height;return ta))return u;var l=e==tn.ByPosNoHeight?tn.ByPosNoHeight:tn.ByPos;return s?u.join(this.right.lineAt(a,l,n,o,a)):this.left.lineAt(a,l,n,r,i).join(u)}},{key:"forEachLine",value:function(t,e,n,r,i,o){var a=r+this.left.height,s=i+this.left.length+this.break;if(this.break)t=s&&this.right.forEachLine(t,e,n,a,s,o);else{var u=this.lineAt(s,tn.ByPos,n,r,i);t=t&&u.from<=e&&o(u),e>u.to&&this.right.forEachLine(u.to+1,e,n,a,s,o)}}},{key:"replace",value:function(t,e,n){var r=this.left.length+this.break;if(ethis.left.length)return this.balanced(this.left,this.right.replace(t-r,e-r,n));var i=[];t>0&&this.decomposeLeft(t,i);var o,a=i.length,s=M(n);try{for(s.s();!(o=s.n()).done;){var u=o.value;i.push(u)}}catch(h){s.e(h)}finally{s.f()}if(t>0&&cn(i,a-1),e=++n&&e.push(null),t>n&&this.right.decomposeLeft(t-n,e)}},{key:"decomposeRight",value:function(t,e){var n=this.left.length,r=n+this.break;if(t>=r)return this.right.decomposeRight(t-r,e);t2*e.size||e.size>2*t.size?an.of(this.break?[t,null,e]:[t,e]):(this.left=t,this.right=e,this.height=t.height+e.height,this.outdated=t.outdated||e.outdated,this.size=t.size+e.size,this.length=t.length+this.break+e.length,this)}},{key:"updateHeight",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=arguments.length>3?arguments[3]:void 0,i=this.left,o=this.right,a=e+i.length+this.break,s=null;return r&&r.from<=e+i.length&&r.more?s=i=i.updateHeight(t,e,n,r):i.updateHeight(t,e,n),r&&r.from<=a+o.length&&r.more?s=o=o.updateHeight(t,a,n,r):o.updateHeight(t,a,n),s?this.balanced(i,o):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}},{key:"toString",value:function(){return this.left+(this.break?" ":"-")+this.right}},{key:"break",get:function(){return 1&this.flags}}]),n}(an);function cn(t,e){var n,r;null==t[e]&&(n=t[e-1])instanceof ln&&(r=t[e+1])instanceof ln&&t.splice(e-1,3,new ln(n.length+1+r.length))}var fn=function(){function t(e,n){O(this,t),this.pos=e,this.oracle=n,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}return D(t,[{key:"span",value:function(t,e){if(this.lineStart>-1){var n=Math.min(e,this.lineEnd),r=this.nodes[this.nodes.length-1];r instanceof un?r.length+=n-this.pos:(n>this.pos||!this.isCovered)&&this.nodes.push(new un(n-this.pos,-1)),this.writtenTo=n,e>n&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=e}},{key:"point",value:function(t,e,n){if(t=5)&&this.addLineDeco(r,i)}else e>t&&this.span(t,e);this.lineEnd>-1&&this.lineEnd-1)){var t=this.oracle.doc.lineAt(this.pos),e=t.from,n=t.to;this.lineStart=e,this.lineEnd=n,this.writtenToe&&this.nodes.push(new un(this.pos-e,-1)),this.writtenTo=this.pos}}},{key:"blankContent",value:function(t,e){var n=new ln(e-t);return this.oracle.doc.lineAt(t).to==e&&(n.flags|=4),n}},{key:"ensureLine",value:function(){this.enterLine();var t=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(t instanceof un)return t;var e=new un(0,-1);return this.nodes.push(e),e}},{key:"addBlock",value:function(t){this.enterLine(),t.type!=Ct.WidgetAfter||this.isCovered||this.ensureLine(),this.nodes.push(t),this.writtenTo=this.pos=this.pos+t.length,t.type!=Ct.WidgetBefore&&(this.covering=t)}},{key:"addLineDeco",value:function(t,e){var n=this.ensureLine();n.length+=e,n.collapsed+=e,n.widgetHeight=Math.max(n.widgetHeight,t),this.writtenTo=this.pos=this.pos+e}},{key:"finish",value:function(t){var e=0==this.nodes.length?null:this.nodes[this.nodes.length-1];!(this.lineStart>-1)||e instanceof un||this.isCovered?(this.writtenTo=e&&i<=n}))){var o=t.lineAt(i,0),a=o.from,s=o.to;e.push(new yn(a,s))}},i=0;i<=1;i++)r(i);this.viewports=e.sort((function(t,e){return t.from-e.from})),this.scaler=this.heightMap.height<=7e6?Sn:new xn(this.heightOracle.doc,this.heightMap,this.viewports)}},{key:"update",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=this.state;this.state=t.state;var i=this.state.facet(ne),o=t.changedRanges,a=ie.extendWithRanges(o,dn(t.startState.facet(ne),i,t?t.changes:r.as.empty(this.state.doc.length))),s=this.heightMap.height;this.heightMap=this.heightMap.applyChanges(i,n.doc,this.heightOracle.setDoc(this.state.doc),a),this.heightMap.height!=s&&(t.flags|=2);var u=a.length?this.mapViewport(this.viewport,t.changes):this.viewport;(e&&(e.headu.to)||!this.viewportIsAppropriate(u))&&(u=this.getViewport(0,e)),u.eq(this.viewport)||(this.viewport=u,t.flags|=4),this.updateForViewport(),(this.lineGaps.length||this.viewport.to-this.viewport.from>15e3)&&(t.flags|=this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,t.changes)))),this.computeVisibleRanges(),e&&(this.scrollTo=e),!this.mustEnforceCursorAssoc&&t.selectionSet&&t.view.lineWrapping&&t.state.selection.main.empty&&t.state.selection.main.assoc&&(this.mustEnforceCursorAssoc=!0)}},{key:"measure",value:function(t,e){var n=t.dom,r="",i=fe.LTR;if(!e){var o=window.getComputedStyle(n);r=o.whiteSpace,i="rtl"==o.direction?fe.RTL:fe.LTR,this.paddingTop=parseInt(o.paddingTop)||0,this.paddingBottom=parseInt(o.paddingBottom)||0}var a=this.printing?{top:-1e8,bottom:1e8,left:-1e8,right:1e8}:function(t,e){for(var n=t.getBoundingClientRect(),r=Math.max(0,n.left),i=Math.min(innerWidth,n.right),o=Math.max(0,n.top),a=Math.min(innerHeight,n.bottom),s=t.parentNode;s;)if(1==s.nodeType){if((s.scrollHeight>s.clientHeight||s.scrollWidth>s.clientWidth)&&"visible"!=window.getComputedStyle(s).overflow){var u=s.getBoundingClientRect();r=Math.max(r,u.left),i=Math.min(i,u.right),o=Math.max(o,u.top),a=Math.min(a,u.bottom)}s=s.parentNode}else{if(11!=s.nodeType)break;s=s.host}return{left:r-n.left,right:i-n.left,top:o-(n.top+e),bottom:a-(n.top+e)}}(n,this.paddingTop),s=a.top-this.pixelViewport.top,u=a.bottom-this.pixelViewport.bottom;if(this.pixelViewport=a,this.inView=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left,!this.inView)return 0;var l=t.measureVisibleLineHeights(),h=!1,c=0,f=0,d=this.heightOracle;if(!e){var v=t.dom.clientWidth;if(d.mustRefresh(l,r,i)||d.lineWrapping&&Math.abs(v-this.contentWidth)>d.charWidth){var p=t.measureTextSize(),g=p.lineHeight,m=p.charWidth;(h=d.refresh(r,i,g,m,v/m,l))&&(t.minWidth=0,f|=16)}this.contentWidth!=v&&(this.contentWidth=v,f|=16),s>0&&u>0?c=Math.max(s,u):s<0&&u<0&&(c=Math.min(s,u))}if(d.heightChanged=!1,this.heightMap=this.heightMap.updateHeight(d,0,h,new rn(this.viewport.from,l)),d.heightChanged&&(f|=2),!this.viewportIsAppropriate(this.viewport,c)||this.scrollTo&&(this.scrollTo.headthis.viewport.to)){var y=this.getViewport(c,this.scrollTo);y.from==this.viewport.from&&y.to==this.viewport.to||(this.viewport=y,f|=4)}return this.updateForViewport(),(this.lineGaps.length||this.viewport.to-this.viewport.from>15e3)&&(f|=this.updateLineGaps(this.ensureLineGaps(h?[]:this.lineGaps))),this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,t.enforceCursorAssoc()),f}},{key:"getViewport",value:function(t,e){var n=.5-Math.max(-.5,Math.min(.5,t/1e3/2)),r=this.heightMap,i=this.state.doc,o=this.visibleTop,a=this.visibleBottom,s=new yn(r.lineAt(o-1e3*n,tn.ByHeight,i,0,0).from,r.lineAt(a+1e3*(1-n),tn.ByHeight,i,0,0).to);if(e)if(e.heads.to){var l=r.lineAt(e.head,tn.ByPos,i,0,0).bottom;s=new yn(r.lineAt(l-(a-o)-500,tn.ByHeight,i,0,0).from,r.lineAt(l+500,tn.ByHeight,i,0,0).to)}return s}},{key:"mapViewport",value:function(t,e){var n=e.mapPos(t.from,-1),r=e.mapPos(t.to,1);return new yn(this.heightMap.lineAt(n,tn.ByPos,this.state.doc,0,0).from,this.heightMap.lineAt(r,tn.ByPos,this.state.doc,0,0).to)}},{key:"viewportIsAppropriate",value:function(t){var e=t.from,n=t.to,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=this.heightMap.lineAt(e,tn.ByPos,this.state.doc,0,0),o=i.top,a=this.heightMap.lineAt(n,tn.ByPos,this.state.doc,0,0),s=a.bottom,u=this.visibleTop,l=this.visibleBottom;return(0==e||o<=u-Math.max(10,Math.min(-r,250)))&&(n==this.state.doc.length||s>=l+Math.max(10,Math.min(r,250)))&&o>u-2e3&&si&&(r.push({from:i,to:t}),o+=t-i),i=e}},20),i=r.from&&(o=l.from),l.from<=r.to&&l.to>=s&&(s=l.to);var h=o-1e4,c=s+1e4;h>r.from+5e3&&n.push(wn(t,(function(t){return t.from==r.from&&t.to>h-5e3&&t.toc-5e3&&t.from=1)return r[r.length-1].to;for(var i=Math.floor(n*e),o=0;;o++){var a=r[o],s=a.from,u=a.to-s;if(i<=u)return s+i;i-=u}}function bn(t,e){var n,r=0,i=M(t.ranges);try{for(i.s();!(n=i.n()).done;){var o=n.value,a=o.from,s=o.to;if(e<=s){r+=e-a;break}r+=s-a}}catch(u){i.e(u)}finally{i.f()}return r/t.total}function wn(t,e){var n,r=M(t);try{for(r.s();!(n=r.n()).done;){var i=n.value;if(e(i))return i}}catch(o){r.e(o)}finally{r.f()}}var Sn={toDOM:function(t){return t},fromDOM:function(t){return t},scale:1},xn=function(){function t(e,n,r){O(this,t);var i=0,o=0,a=0;this.viewports=r.map((function(t){var r=t.from,o=t.to,a=n.lineAt(r,tn.ByPos,e,0,0).top,s=n.lineAt(o,tn.ByPos,e,0,0).bottom;return i+=s-a,{from:r,to:o,top:a,bottom:s,domTop:0,domBottom:0}})),this.scale=(7e6-i)/(n.height-i);var s,u=M(this.viewports);try{for(u.s();!(s=u.n()).done;){var l=s.value;l.domTop=a+(l.top-o)*this.scale,a=l.domBottom=l.domTop+(l.bottom-l.top),o=l.bottom}}catch(h){u.e(h)}finally{u.f()}}return D(t,[{key:"toDOM",value:function(t,e){t-=e;for(var n=0,r=0,i=0;;n++){var o=n-1}}),On=o.V.newName(),Tn=o.V.newName(),Dn=o.V.newName(),En={"&light":"."+Tn,"&dark":"."+Dn};function Pn(t,e,n){return new o.V(e,{finish:function(e){return/&/.test(e)?e.replace(/&\w*/,(function(e){if("&"==e)return t;if(!n||!n[e])throw new RangeError("Unsupported selector: ".concat(e));return n[e]})):t+" "+e}})}var Rn=Pn("."+On,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline_fallback:"1px dotted #212121",outline:"5px auto -webkit-focus-ring-color"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0},".cm-content":{margin:0,flexGrow:2,minHeight:"100%",display:"block",whiteSpace:"pre",boxSizing:"border-box",padding:"4px 0",outline:"none"},".cm-lineWrapping":{whiteSpace:"pre-wrap",overflowWrap:"anywhere"},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 4px"},".cm-selectionLayer":{zIndex:-1,contain:"size style"},".cm-selectionBackground":{position:"absolute"},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{zIndex:100,contain:"size style",pointerEvents:"none"},"&.cm-focused .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{visibility:"hidden"},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{visibility:"hidden"},"100%":{}},".cm-cursor":{position:"absolute",borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none",display:"none"},"&dark .cm-cursor":{borderLeftColor:"#444"},"&.cm-focused .cm-cursor":{display:"block"},"&light .cm-activeLine":{backgroundColor:"#f3f9ff"},"&dark .cm-activeLine":{backgroundColor:"#223039"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-placeholder":{color:"#888",display:"inline-block"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"3px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},En),Bn={childList:!0,characterData:!0,subtree:!0,characterDataOldValue:!0},Ln=q.ie&&q.ie_version<=11,Nn=function(){function t(e,n,r){var i=this;O(this,t),this.view=e,this.onChange=n,this.onScrollChanged=r,this.active=!1,this.ignoreSelection=new et,this.delayedFlush=-1,this.queue=[],this.scrollTargets=[],this.intersection=null,this.intersecting=!1,this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver((function(t){var n,r=M(t);try{for(r.s();!(n=r.n()).done;){var o=n.value;i.queue.push(o)}}catch(a){r.e(a)}finally{r.f()}(q.ie&&q.ie_version<=11||q.ios&&e.composing)&&t.some((function(t){return"childList"==t.type&&t.removedNodes.length||"characterData"==t.type&&t.oldValue.length>t.target.nodeValue.length}))?i.flushSoon():i.flush()})),Ln&&(this.onCharData=function(t){i.queue.push({target:t.target,type:"characterData",oldValue:t.prevValue}),i.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.start(),this.onScroll=this.onScroll.bind(this),window.addEventListener("scroll",this.onScroll),"function"==typeof IntersectionObserver&&(this.intersection=new IntersectionObserver((function(t){i.parentCheck<0&&(i.parentCheck=setTimeout(i.listenForScroll.bind(i),1e3)),t[t.length-1].intersectionRatio>0!=i.intersecting&&(i.intersecting=!i.intersecting,i.onScrollChanged(document.createEvent("Event")))}),{}),this.intersection.observe(this.dom)),this.listenForScroll()}return D(t,[{key:"onScroll",value:function(t){this.intersecting&&(this.flush(),this.onScrollChanged(t))}},{key:"onSelectionChange",value:function(t){var e=this.view,n=F(e.root);if(e.state.facet(Ut)?e.root.activeElement==this.dom:$(e.dom,n)){var r=n.anchorNode&&e.docView.nearest(n.anchorNode);r&&r.ignoreEvent(t)||(q.ie&&q.ie_version<=11&&!e.state.selection.main.empty&&n.focusNode&&G(n.focusNode,n.focusOffset,n.anchorNode,n.anchorOffset)?this.flushSoon():this.flush())}}},{key:"listenForScroll",value:function(){this.parentCheck=-1;for(var t=0,e=null,n=this.dom;n;)if(1==n.nodeType)!e&&t=0&&(window.clearTimeout(this.delayedFlush),this.delayedFlush=-1,this.flush())}},{key:"flush",value:function(){var t=this;if(!(this.delayedFlush>=0)){var e,n=this.queue,r=M(this.observer.takeRecords());try{for(r.s();!(e=r.n()).done;){var i=e.value;n.push(i)}}catch(p){r.e(p)}finally{r.f()}n.length&&(this.queue=[]);var o=F(this.view.root),a=!this.ignoreSelection.eq(o)&&$(this.dom,o);if(0!=n.length||a){var s,u=-1,l=-1,h=!1,c=M(n);try{for(c.s();!(s=c.n()).done;){var f=s.value,d=this.readMutation(f);d&&(d.typeOver&&(h=!0),-1==u?(u=d.from,l=d.to):(u=Math.min(d.from,u),l=Math.max(d.to,l)))}}catch(p){c.e(p)}finally{c.f()}var v=this.view.state;(u>-1||a)&&this.onChange(u,l,h),this.view.state==v&&(this.view.docView.dirty&&(this.ignore((function(){return t.view.docView.sync()})),this.view.docView.dirty=0),this.view.docView.updateSelection()),this.clearSelection()}}}},{key:"readMutation",value:function(t){var e=this.view.docView.nearest(t.target);if(!e||e.ignoreMutation(t))return null;if(e.markDirty(),"childList"==t.type){var n=jn(e,t.previousSibling||t.target.previousSibling,-1),r=jn(e,t.nextSibling||t.target.nextSibling,1);return{from:n?e.posAfter(n):e.posAtStart,to:r?e.posBefore(r):e.posAtEnd,typeOver:!1}}return{from:e.posAtStart,to:e.posAtEnd,typeOver:t.target.nodeValue==t.oldValue}}},{key:"destroy",value:function(){this.stop(),this.intersection&&this.intersection.disconnect();var t,e=M(this.scrollTargets);try{for(e.s();!(t=e.n()).done;){t.value.removeEventListener("scroll",this.onScroll)}}catch(n){e.e(n)}finally{e.f()}window.removeEventListener("scroll",this.onScroll),clearTimeout(this.parentCheck)}}]),t}();function jn(t,e,n){for(;e;){var r=st.get(e);if(r&&r.parent==t)return r;var i=e.parentNode;e=i!=t.dom?i:n>0?e.nextSibling:e.previousSibling}return null}function In(t,e,n,i){var o,a,s,u=t.state.selection.main;if(e>-1&&(s=t.docView.domBoundsAround(e,n,0))){var l=s,h=l.from,c=l.to,f=t.docView.impreciseHead||t.docView.impreciseAnchor?[]:function(t,e){var n=[];if(e.activeElement!=t)return n;var r=F(e),i=r.anchorNode,o=r.anchorOffset,a=r.focusNode,s=r.focusOffset;i&&(n.push(new zn(i,o)),a==i&&s==o||n.push(new zn(a,s)));return n}(t.contentDOM,t.root),d=new Vn(f,t);d.readRange(s.startDOM,s.endDOM),a=function(t,e){if(0==t.length)return null;var n=t[0].pos,i=2==t.length?t[1].pos:n;return n>-1&&i>-1?r.jT.single(n+e,i+e):null}(f,h);var v=u.from,p=null;(8===t.inputState.lastKeyCode&&t.inputState.lastKeyTime>Date.now()-100||q.android&&d.text.length0&&s>0&&t.charCodeAt(a-1)==e.charCodeAt(s-1);)a--,s--;if("end"==r){n-=a+Math.max(0,o-Math.min(a,s))-o}if(a=a?o-n:0)+(s-a),a=o}else if(s=s?o-n:0)+(a-s),s=o}return{from:o,toA:a,toB:s}}(t.state.sliceDoc(h,c),d.text,v-h,p);g&&(o={from:h+g.from,to:h+g.toA,insert:t.state.toText(d.text.slice(g.from,g.toB))})}else if(t.hasFocus||!t.state.facet(Ut)){var m=F(t.root),y=t.docView,k=y.impreciseHead,b=y.impreciseAnchor,w=k&&k.node==m.focusNode&&k.offset==m.focusOffset?t.state.selection.main.head:t.docView.posFromDOM(m.focusNode,m.focusOffset),S=b&&b.node==m.anchorNode&&b.offset==m.anchorOffset?t.state.selection.main.anchor:function(t){var e=t.isCollapsed;return e&&q.chrome&&t.rangeCount&&!t.getRangeAt(0).collapsed&&(e=!1),e}(m)?w:t.docView.posFromDOM(m.anchorNode,m.anchorOffset);w==u.head&&S==u.anchor||(a=r.jT.single(S,w))}if(o||a)if(!o&&i&&!u.empty&&a&&a.main.empty&&(o={from:u.from,to:u.to,insert:t.state.doc.slice(u.from,u.to)}),o){var x=t.state;if(q.android&&(o.from==u.from&&o.to==u.to&&1==o.insert.length&&2==o.insert.lines&&Hn(t,"Enter",10)||o.from==u.from-1&&o.to==u.to&&0==o.insert.length&&Hn(t,"Backspace",8)||o.from==u.from&&o.to==u.to+1&&0==o.insert.length&&Hn(t,"Delete",46)))return;var A,C=o.insert.toString();if(t.state.facet(Ft).some((function(e){return e(t,o.from,o.to,C)})))return;if(t.inputState.composing>=0&&t.inputState.composing++,o.from>=u.from&&o.to<=u.to&&o.to-o.from>=(u.to-u.from)/3&&(!a||a.main.empty&&a.main.from==o.from+o.insert.length)){var M=u.fromo.to?x.sliceDoc(o.to,u.to):"";A=x.replaceSelection(t.state.toText(M+o.insert.sliceString(0,void 0,t.state.lineBreak)+O))}else{var T=x.changes(o);A={changes:T,selection:a&&!x.selection.main.eq(a.main)&&a.main.to<=T.newLength?x.selection.replaceRange(a.main):void 0}}t.dispatch(A,{scrollIntoView:!0,annotations:r.YW.userEvent.of("input")})}else if(a&&!a.main.eq(u)){var D,E=!1;t.inputState.lastSelectionTime>Date.now()-50&&("keyboardselection"==t.inputState.lastSelectionOrigin?E=!0:D=r.YW.userEvent.of(t.inputState.lastSelectionOrigin)),t.dispatch({selection:a,scrollIntoView:E,annotations:D})}}var Vn=function(){function t(e,n){O(this,t),this.points=e,this.view=n,this.text="",this.lineBreak=n.state.lineBreak}return D(t,[{key:"readRange",value:function(t,e){if(t){for(var n=t.parentNode,r=t;;){this.findPointBefore(n,r),this.readNode(r);var i=r.nextSibling;if(i==e)break;var o=st.get(r),a=st.get(i);((o?o.breakAfter:Wn(r))||(a?a.breakAfter:Wn(i))&&("BR"!=r.nodeName||r.cmIgnore))&&(this.text+=this.lineBreak),r=i}this.findPointBefore(n,e)}}},{key:"readNode",value:function(t){if(!t.cmIgnore){var e,n=st.get(t),r=n&&n.overrideDOMText;null!=r?e=r.sliceString(0,void 0,this.lineBreak):3==t.nodeType?e=t.nodeValue:"BR"==t.nodeName?e=t.nextSibling?this.lineBreak:"":1==t.nodeType&&this.readRange(t.firstChild,null),null!=e&&(this.findPointIn(t,e.length),this.text+=e,q.chrome&&13==this.view.inputState.lastKeyCode&&!t.nextSibling&&/\n\n$/.test(this.text)&&(this.text=this.text.slice(0,-1)))}}},{key:"findPointBefore",value:function(t,e){var n,r=M(this.points);try{for(r.s();!(n=r.n()).done;){var i=n.value;i.node==t&&t.childNodes[i.offset]==e&&(i.pos=this.text.length)}}catch(o){r.e(o)}finally{r.f()}}},{key:"findPointIn",value:function(t,e){var n,r=M(this.points);try{for(r.s();!(n=r.n()).done;){var i=n.value;i.node==t&&(i.pos=this.text.length+Math.min(i.offset,e))}}catch(o){r.e(o)}finally{r.f()}}}]),t}();function Wn(t){return 1==t.nodeType&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(t.nodeName)}var zn=function t(e,n){O(this,t),this.node=e,this.offset=n,this.pos=-1};function Hn(t,e,n){var r={key:e,code:e,keyCode:n,which:n,cancelable:!0},i=new KeyboardEvent("keydown",r);t.contentDOM.dispatchEvent(i);var o=new KeyboardEvent("keyup",r);return t.contentDOM.dispatchEvent(o),i.defaultPrevented||o.defaultPrevented}var _n=function(){function t(){var e=this,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};O(this,t),this.plugins=[],this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.style.cssText="position: absolute; top: -10000px",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),this._dispatch=n.dispatch||function(t){return e.update([t])},this.dispatch=this.dispatch.bind(this),this.root=n.root||document,this.viewState=new mn(n.state||r.yy.create()),this.plugins=this.state.facet(Yt).map((function(t){return new Zt(t).update(e)})),this.observer=new Nn(this,(function(t,n,r){In(e,t,n,r)}),(function(t){e.inputState.runScrollHandlers(e,t),e.measure()})),this.inputState=new je(this),this.docView=new ae(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,Un(),this.requestMeasure(),n.parent&&n.parent.appendChild(this.dom)}return D(t,[{key:"dispatch",value:function(){var t;this._dispatch(1==arguments.length&&(arguments.length<=0?void 0:arguments[0])instanceof r.YW?arguments.length<=0?void 0:arguments[0]:(t=this.state).update.apply(t,arguments))}},{key:"update",value:function(t){if(0!=this.updateState)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");var e,n,i=!1,o=this.state,a=M(t);try{for(a.s();!(n=a.n()).done;){var s=n.value;if(s.startState!=o)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");o=s.state}}catch(c){a.e(c)}finally{a.f()}if(o.facet(r.yy.phrases)!=this.state.facet(r.yy.phrases))return this.setState(o);e=new oe(this,o,t);try{this.updateState=2;var u=t.some((function(t){return t.scrollIntoView}))?o.selection.main:null;this.viewState.update(e,u),this.bidiCache=Jn.update(this.bidiCache,e.changes),e.empty||this.updatePlugins(e),i=this.docView.update(e),this.state.facet(re)!=this.styleModules&&this.mountStyles(),this.updateAttrs(),this.showAnnouncements(t)}finally{this.updateState=0}if((i||scrollTo||this.viewState.mustEnforceCursorAssoc)&&this.requestMeasure(),!e.empty){var l,h=M(this.state.facet(qt));try{for(h.s();!(l=h.n()).done;){(0,l.value)(e)}}catch(c){h.e(c)}finally{h.f()}}}},{key:"setState",value:function(t){var e=this;if(0!=this.updateState)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");this.updateState=2;try{var n,r=M(this.plugins);try{for(r.s();!(n=r.n()).done;){n.value.destroy(this)}}catch(i){r.e(i)}finally{r.f()}this.viewState=new mn(t),this.plugins=t.facet(Yt).map((function(t){return new Zt(t).update(e)})),this.docView=new ae(this),this.inputState.ensureHandlers(this),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}this.requestMeasure()}},{key:"updatePlugins",value:function(t){var e=t.startState.facet(Yt),n=t.state.facet(Yt);if(e!=n){var r,i=[],o=M(n);try{for(o.s();!(r=o.n()).done;){var a=r.value,s=e.indexOf(a);if(s<0)i.push(new Zt(a));else{var u=this.plugins[s];u.mustUpdate=t,i.push(u)}}}catch(p){o.e(p)}finally{o.f()}var l,h=M(this.plugins);try{for(h.s();!(l=h.n()).done;){var c=l.value;c.mustUpdate!=t&&c.destroy(this)}}catch(p){h.e(p)}finally{h.f()}this.plugins=i,this.inputState.ensureHandlers(this)}else{var f,d=M(this.plugins);try{for(d.s();!(f=d.n()).done;){f.value.mustUpdate=t}}catch(p){d.e(p)}finally{d.f()}}for(var v=0;v-1&&cancelAnimationFrame(this.measureScheduled),this.measureScheduled=-1;var e=null;try{for(var n=0;;n++){this.updateState=1;var r=this.viewState.measure(this.docView,n>0),i=this.measureRequests;if(!r&&!i.length&&null==this.viewState.scrollTo)break;if(this.measureRequests=[],n>5){console.warn("Viewport failed to stabilize");break}var o=i.map((function(e){try{return e.read(t)}catch(n){return $t(t.state,n),Kn}})),a=new oe(this,this.state);a.flags|=r,e?e.flags|=r:e=a,this.updateState=2,a.empty||this.updatePlugins(a),this.updateAttrs(),r&&this.docView.update(a);for(var s=0;s-1&&this.measure()}},{key:"requestMeasure",value:function(t){var e=this;if(this.measureScheduled<0&&(this.measureScheduled=requestAnimationFrame((function(){return e.measure()}))),t){if(null!=t.key)for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:0;return this.viewState.lineAt(t,e)}},{key:"moveByChar",value:function(t,e,n){return Ne(this,t,e,n)}},{key:"moveByGroup",value:function(t,e){var n=this;return Ne(this,t,e,(function(e){return function(t,e,n){var i=t.state.charCategorizer(e),o=i(n);return function(t){var e=i(t);return o==r.D0.Space&&(o=e),o==e}}(n,t.head,e)}))}},{key:"moveToLineBoundary",value:function(t,e){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return Le(this,t,e,n)}},{key:"moveVertically",value:function(t,e,n){return function(t,e,n,o){var a,s=e.head,u=n?1:-1;if(s==(n?t.state.doc.length:0))return r.jT.cursor(s);var l=t.coordsAtPos(s);if(l)for(var h=t.dom.getBoundingClientRect(),c=null!==(a=e.goalColumn)&&void 0!==a?a:l.left-h.left,f=h.left+c,d=null!=o?o:t.defaultLineHeight>>1,v=u<0?l.top:l.bottom,p=0;p<50;p+=10){var g=Be(t,{x:f,y:v+(d+p)*u},u);if(null==g)break;if(g!=s)return r.jT.cursor(g,void 0,void 0,c)}var m=t.state.doc,y=m.lineAt(s),k=t.state.tabSize,b=e.goalColumn,w=0;if(null==b){for(var S=m.iterRange(y.from,s);!S.next().done;)w=(0,i.IS)(S.value,w,k);b=w*t.defaultCharacterWidth}else w=Math.round(b/t.defaultCharacterWidth);if(u<0&&0==y.from)return r.jT.cursor(0);if(u>0&&y.to==m.length)return r.jT.cursor(y.to);for(var x=m.line(y.number+u),A=x.from,C=0,M=m.iterRange(x.from,x.to);C>=w&&!M.next().done;){var O=(0,i.Gz)(M.value,C,w,k),T=O.offset;C=w-O.leftOver,A+=T}return r.jT.cursor(A,void 0,void 0,b)}(this,t,e,n)}},{key:"scrollPosIntoView",value:function(t){this.viewState.scrollTo=r.jT.cursor(t),this.requestMeasure()}},{key:"domAtPos",value:function(t){return this.docView.domAtPos(t)}},{key:"posAtDOM",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return this.docView.posFromDOM(t,e)}},{key:"posAtCoords",value:function(t){return this.readMeasured(),Be(this,t)}},{key:"coordsAtPos",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;this.readMeasured();var n=this.docView.coordsAt(t,e);if(!n||n.left==n.right)return n;var r=this.state.doc.lineAt(t),i=this.bidiSpans(r),o=i[be.find(i,t-r.from,-1,e)];return Q(n,o.dir==fe.LTR==e>0)}},{key:"bidiSpans",value:function(t){if(t.length>qn)return xe(t.length);var e,n=this.textDirection,r=M(this.bidiCache);try{for(r.s();!(e=r.n()).done;){var i=e.value;if(i.from==t.from&&i.dir==n)return i.order}}catch(a){r.e(a)}finally{r.f()}var o=Se(t.text,this.textDirection);return this.bidiCache.push(new Jn(t.from,t.to,n,o)),o}},{key:"focus",value:function(){var t=this;this.observer.ignore((function(){rt(t.contentDOM),t.docView.updateSelection()}))}},{key:"destroy",value:function(){var t,e=M(this.plugins);try{for(e.s();!(t=e.n()).done;){t.value.destroy(this)}}catch(n){e.e(n)}finally{e.f()}this.inputState.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&cancelAnimationFrame(this.measureScheduled)}},{key:"state",get:function(){return this.viewState.state}},{key:"viewport",get:function(){return this.viewState.viewport}},{key:"visibleRanges",get:function(){return this.viewState.visibleRanges}},{key:"inView",get:function(){return this.viewState.inView}},{key:"composing",get:function(){return this.inputState.composing>0}},{key:"themeClasses",get:function(){return On+" "+(this.state.facet(Mn)?Dn:Tn)+" "+this.state.facet(Cn)}},{key:"contentHeight",get:function(){return this.viewState.contentHeight}},{key:"defaultCharacterWidth",get:function(){return this.viewState.heightOracle.charWidth}},{key:"defaultLineHeight",get:function(){return this.viewState.heightOracle.lineHeight}},{key:"textDirection",get:function(){return this.viewState.heightOracle.direction}},{key:"lineWrapping",get:function(){return this.viewState.heightOracle.lineWrapping}},{key:"hasFocus",get:function(){return document.hasFocus()&&this.root.activeElement==this.contentDOM}}],[{key:"domEventHandlers",value:function(t){return Xt.define((function(){return{}}),{eventHandlers:t})}},{key:"theme",value:function(t,e){var n=o.V.newName(),r=[Cn.of(n),re.of(Pn(".".concat(n),t))];return e&&e.dark&&r.push(Mn.of(!0)),r}},{key:"baseTheme",value:function(t){return r.Wl.fallback(re.of(Pn("."+On,t,En)))}}]),t}();_n.styleModule=re,_n.inputHandler=Ft,_n.exceptionSink=_t,_n.updateListener=qt,_n.editable=Ut,_n.mouseSelectionStyle=Ht,_n.dragMovesSelection=zt,_n.clickAddsSelectionRange=Wt,_n.decorations=ne,_n.contentAttributes=ee,_n.editorAttributes=te,_n.lineWrapping=_n.contentAttributes.of({class:"cm-lineWrapping"}),_n.announce=r.Py.define();var qn=4096;function Fn(t,e){return null==t?e.getBoundingClientRect().top:t}var $n=-1;function Un(){window.addEventListener("resize",(function(){-1==$n&&($n=setTimeout(Gn,50))}))}function Gn(){$n=-1;for(var t=document.querySelectorAll(".cm-content"),e=0;e1&&void 0!==arguments[1]?arguments[1]:Yn,r=Object.create(null),i=Object.create(null),o=function(t,e){var n=i[t];if(null==n)i[t]=e;else if(n!=e)throw new Error("Key binding "+t+" is used both as a regular binding and as a multi-stroke prefix")},a=function(t,e,i,a){for(var s=r[t]||(r[t]=Object.create(null)),u=e.split(/ (?!$)/).map((function(t){return Xn(t,n)})),l=function(e){var n=u.slice(0,e).join(" ");o(n,!0),s[n]||(s[n]={preventDefault:!0,commands:[function(e){var r=ir={view:e,prefix:n,scope:t};return setTimeout((function(){ir==r&&(ir=null)}),or),!0}]})},h=1;h0&&void 0!==arguments[0]?arguments[0]:{};return[ur.of(t),cr,dr]}var hr=function(){function t(e,n,r,i,o){O(this,t),this.left=e,this.top=n,this.width=r,this.height=i,this.className=o}return D(t,[{key:"draw",value:function(){var t=document.createElement("div");return t.className=this.className,this.adjust(t),t}},{key:"adjust",value:function(t){t.style.left=this.left+"px",t.style.top=this.top+"px",this.width>=0&&(t.style.width=this.width+"px"),t.style.height=this.height+"px"}},{key:"eq",value:function(t){return this.left==t.left&&this.top==t.top&&this.width==t.width&&this.height==t.height&&this.className==t.className}}]),t}(),cr=Xt.fromClass(function(){function t(e){O(this,t),this.view=e,this.rangePieces=[],this.cursors=[],this.measureReq={read:this.readPos.bind(this),write:this.drawSel.bind(this)},this.selectionLayer=e.scrollDOM.appendChild(document.createElement("div")),this.selectionLayer.className="cm-selectionLayer",this.selectionLayer.setAttribute("aria-hidden","true"),this.cursorLayer=e.scrollDOM.appendChild(document.createElement("div")),this.cursorLayer.className="cm-cursorLayer",this.cursorLayer.setAttribute("aria-hidden","true"),e.requestMeasure(this.measureReq),this.setBlinkRate()}return D(t,[{key:"setBlinkRate",value:function(){this.cursorLayer.style.animationDuration=this.view.state.facet(ur).cursorBlinkRate+"ms"}},{key:"update",value:function(t){var e=t.startState.facet(ur)!=t.state.facet(ur);(e||t.selectionSet||t.geometryChanged||t.viewportChanged)&&this.view.requestMeasure(this.measureReq),t.transactions.some((function(t){return t.scrollIntoView}))&&(this.cursorLayer.style.animationName="cm-blink"==this.cursorLayer.style.animationName?"cm-blink2":"cm-blink"),e&&this.setBlinkRate()}},{key:"readPos",value:function(){var t,e=this,n=this.view.state,r=n.facet(ur),i=n.selection.ranges.map((function(t){return t.empty?[]:function(t,e){if(e.to<=t.viewport.from||e.from>=t.viewport.to)return[];var n=Math.max(e.from,t.viewport.from),r=Math.min(e.to,t.viewport.to),i=t.textDirection==fe.LTR,o=t.contentDOM,a=o.getBoundingClientRect(),s=vr(t),u=window.getComputedStyle(o.firstChild),l=a.left+parseInt(u.paddingLeft),h=a.right-parseInt(u.paddingRight),c=t.visualLineAt(n),f=t.visualLineAt(r);t.lineWrapping&&(c=pr(t,n,c),f=pr(t,r,f));if(c.from==f.from)return m(y(e.from,e.to,c));var d=y(e.from,null,c),v=y(null,e.to,f),p=[];return c.tof&&p.from=m)break;x>g&&u(Math.max(S,g),null==e&&S<=f,Math.min(x,m),null==n&&x>=d,w.dir)}}catch(C){b.e(C)}finally{b.f()}if((g=k.to+1)>=m)break}}}catch(C){v.e(C)}finally{v.f()}if(0==s.length){var A=t.coordsAtPos(f,-1);o=Math.min(A.top,o),a=Math.max(A.bottom,a)}return{top:o,bottom:a,horizontal:s}}}(e.view,t)})).reduce((function(t,e){return t.concat(e)})),o=[],a=M(n.selection.ranges);try{for(a.s();!(t=a.n()).done;){var s=t.value,u=s==n.selection.main;if(s.empty?!u||sr:r.drawRangeCursor){var l=gr(this.view,s,u);l&&o.push(l)}}}catch(h){a.e(h)}finally{a.f()}return{rangePieces:i,cursors:o}}},{key:"drawSel",value:function(t){var e=this,n=t.rangePieces,r=t.cursors;if(n.length!=this.rangePieces.length||n.some((function(t,n){return!t.eq(e.rangePieces[n])}))){this.selectionLayer.textContent="";var i,o=M(n);try{for(o.s();!(i=o.n()).done;){var a=i.value;this.selectionLayer.appendChild(a.draw())}}catch(c){o.e(c)}finally{o.f()}this.rangePieces=n}if(r.length!=this.cursors.length||r.some((function(t,n){return!t.eq(e.cursors[n])}))){var s=this.cursorLayer.children;if(s.length!==r.length){this.cursorLayer.textContent="";var u,l=M(r);try{for(l.s();!(u=l.n()).done;){var h=u.value;this.cursorLayer.appendChild(h.draw())}}catch(c){l.e(c)}finally{l.f()}}else r.forEach((function(t,e){return t.adjust(s[e])}));this.cursors=r}}},{key:"destroy",value:function(){this.selectionLayer.remove(),this.cursorLayer.remove()}}]),t}()),fr={".cm-line":{"& ::selection":{backgroundColor:"transparent !important"},"&::selection":{backgroundColor:"transparent !important"}}};sr&&(fr[".cm-line"].caretColor="transparent !important");var dr=r.Wl.override(_n.theme(fr));function vr(t){var e=t.scrollDOM.getBoundingClientRect();return{left:(t.textDirection==fe.LTR?e.left:e.right-t.scrollDOM.clientWidth)-t.scrollDOM.scrollLeft,top:e.top-t.scrollDOM.scrollTop}}function pr(t,e,n){var i=r.jT.cursor(e);return{from:Math.max(n.from,t.moveToLineBoundary(i,!1,!0).from),to:Math.min(n.to,t.moveToLineBoundary(i,!0,!0).from)}}function gr(t,e,n){var r=t.coordsAtPos(e.head,e.assoc||1);if(!r)return null;var i=vr(t);return new hr(r.left-i.left,r.top-i.top,-1,r.bottom-r.top,n?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary")}var mr=null!=/x/.unicode?"gu":"g",yr=new RegExp("[\0-\b\n--Ÿ­؜​‎‏\u2028\u2029\ufeff-]",mr),kr=null;r.r$.define({combine:function(t){var e=(0,r.BO)(t,{render:null,specialChars:yr,addSpecialChars:null});return(e.replaceTabs=!function(){if(null==kr&&"undefined"!=typeof document&&document.body){var t=document.body.style;kr=null!=(t.tabSize||t.MozTabSize)}return kr||!1}())&&(e.specialChars=new RegExp("\t|"+e.specialChars.source,mr)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,mr)),e}});function br(){return Sr}var wr=Ot.line({attributes:{class:"cm-activeLine"}}),Sr=Xt.fromClass(function(){function t(e){O(this,t),this.decorations=this.getDeco(e)}return D(t,[{key:"update",value:function(t){(t.docChanged||t.selectionSet)&&(this.decorations=this.getDeco(t.view))}},{key:"getDeco",value:function(t){var e,n=-1,r=[],i=M(t.state.selection.ranges);try{for(i.s();!(e=i.n()).done;){var o=e.value;if(o.empty){var a=t.visualLineAt(o.head);a.from>n&&(r.push(wr.range(a.from)),n=a.from)}}}catch(s){i.e(s)}finally{i.f()}return Ot.set(r)}}]),t}(),{decorations:function(t){return t.decorations}})},26856:function(t,e,n){"use strict";function r(t,e){var n;if("undefined"==typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(n=function(t,e){if(!t)return;if("string"==typeof t)return i(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return i(t,e)}(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var r=0,o=function(){};return{s:o,n:function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,u=!1;return{s:function(){n=t[Symbol.iterator]()},n:function(){var t=n.next();return s=t.done,t},e:function(t){u=!0,a=t},f:function(){try{s||null==n.return||n.return()}finally{if(u)throw a}}}}function i(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n0&&void 0!==arguments[0]?arguments[0]:{},n=e.deserialize;o(this,t),this.id=l++,this.deserialize=n||function(){throw new Error("This node type doesn't define a deserialize function")}}return s(t,[{key:"set",value:function(t,e){return t[this.id]=e,t}},{key:"add",value:function(t){var e=this;return"function"!=typeof t&&(t=d.match(t)),function(n){var r=t(n);return void 0===r?null:[e,r]}}}],[{key:"string",value:function(){return new t({deserialize:function(t){return t}})}},{key:"number",value:function(){return new t({deserialize:Number})}},{key:"flag",value:function(){return new t({deserialize:function(){return!0}})}}]),t}();c.closedBy=new c({deserialize:function(t){return t.split(" ")}}),c.openedBy=new c({deserialize:function(t){return t.split(" ")}}),c.group=new c({deserialize:function(t){return t.split(" ")}});var f=Object.create(null),d=function(){function t(e,n,r){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;o(this,t),this.name=e,this.props=n,this.id=r,this.flags=i}return s(t,[{key:"prop",value:function(t){return this.props[t.id]}},{key:"is",value:function(t){if("string"==typeof t){if(this.name==t)return!0;var e=this.prop(c.group);return!!e&&e.indexOf(t)>-1}return this.id==t}},{key:"isTop",get:function(){return(1&this.flags)>0}},{key:"isSkipped",get:function(){return(2&this.flags)>0}},{key:"isError",get:function(){return(4&this.flags)>0}},{key:"isAnonymous",get:function(){return(8&this.flags)>0}}],[{key:"define",value:function(e){var n=e.props&&e.props.length?Object.create(null):f,i=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(null==e.name?8:0),o=new t(e.name||"",n,e.id,i);if(e.props){var a,s=r(e.props);try{for(s.s();!(a=s.n()).done;){var u=a.value;Array.isArray(u)||(u=u(o)),u&&u[0].set(n,u[1])}}catch(l){s.e(l)}finally{s.f()}}return o}},{key:"match",value:function(t){var e=Object.create(null);for(var n in t){var i,o=r(n.split(" "));try{for(o.s();!(i=o.n()).done;){var a=i.value;e[a]=t[n]}}catch(s){o.e(s)}finally{o.f()}}return function(t){for(var n=t.prop(c.group),r=-1;r<(n?n.length:0);r++){var i=e[r<0?t.name:n[r]];if(i)return i}}}}]),t}();d.none=new d("",Object.create(null),0,8);var v=function(){function t(e){o(this,t),this.types=e;for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:0,n=null!=t&&h.get(this)||this.topNode,r=new S(n);return null!=t&&(r.moveTo(t,e),h.set(this,r._tree)),r}},{key:"fullCursor",value:function(){return new S(this.topNode,!0)}},{key:"resolve",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return this.cursor(t,e).node}},{key:"iterate",value:function(t){for(var e=t.enter,n=t.leave,r=t.from,i=void 0===r?0:r,o=t.to,a=void 0===o?this.length:o,s=this.cursor();;){var u=!1;if(s.from<=a&&s.to>=i&&(s.type.isAnonymous||!1!==e(s.type,s.from,s.to))){if(s.firstChild())continue;s.type.isAnonymous||(u=!0)}for(;u&&n&&n(s.type,s.from,s.to),u=s.type.isAnonymous,!s.nextSibling();){if(!s.parent())return;u=!0}}}},{key:"balance",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:u;return this.children.length<=C?this:O(this.type,d.none,this.children,this.positions,0,this.children.length,0,t,this.length,0)}},{key:"topNode",get:function(){return new y(this,0,0,null)}}],[{key:"build",value:function(t){return M(t)}}]),t}();function g(t,e){return e&&(t.contextHash=e),t}p.empty=new p(d.none,[],[],0);var m=function(){function t(e,n,r){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:d.none;o(this,t),this.buffer=e,this.length=n,this.set=r,this.type=i}return s(t,[{key:"toString",value:function(){for(var t=[],e=0;e0){if(u>r&&(o=a),u>r)break}else if(s=r)break}else if(o=a,n>0)break;return o}}]),t}(),y=function(){function t(e,n,r,i){o(this,t),this.node=e,this.from=n,this.index=r,this._parent=i}return s(t,[{key:"nextChild",value:function(e,n,r){for(var i=arguments.length>3&&void 0!==arguments[3]&&arguments[3],o=this;;){for(var a=o.node,s=a.children,u=a.positions,l=n>0?s.length:-1;e!=l;e+=n){var h=s[e],c=u[e]+o.from;if(-1e8==r||!(n<0?c>=r:c+h.length<=r))if(h instanceof m){var f=h.findChild(0,h.buffer.length,n,-1e8==r?-1e8:r-c);if(f>-1)return new w(new b(o,h,e,c),null,f)}else if(i||!h.type.isAnonymous||x(h)){var d=new t(h,c,e,o);return i||!d.type.isAnonymous?d:d.nextChild(n<0?h.children.length-1:0,n,r)}}if(i||!o.type.isAnonymous)return null;if(e=o.index+n,!(o=o._parent))return null}}},{key:"childAfter",value:function(t){return this.nextChild(0,1,t)}},{key:"childBefore",value:function(t){return this.nextChild(this.node.children.length-1,-1,t)}},{key:"nextSignificantParent",value:function(){for(var t=this;t.type.isAnonymous&&t._parent;)t=t._parent;return t}},{key:"resolve",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return this.cursor.moveTo(t,e).node}},{key:"getChild",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=k(this,t,e,n);return r.length?r[0]:null}},{key:"getChildren",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return k(this,t,e,n)}},{key:"toString",value:function(){return this.node.toString()}},{key:"type",get:function(){return this.node.type}},{key:"name",get:function(){return this.node.type.name}},{key:"to",get:function(){return this.from+this.node.length}},{key:"firstChild",get:function(){return this.nextChild(0,1,-1e8)}},{key:"lastChild",get:function(){return this.nextChild(this.node.children.length-1,-1,-1e8)}},{key:"parent",get:function(){return this._parent?this._parent.nextSignificantParent():null}},{key:"nextSibling",get:function(){return this._parent?this._parent.nextChild(this.index+1,1,-1):null}},{key:"prevSibling",get:function(){return this._parent?this._parent.nextChild(this.index-1,-1,-1):null}},{key:"cursor",get:function(){return new S(this)}}]),t}();function k(t,e,n,r){var i=t.cursor,o=[];if(!i.firstChild())return o;if(null!=n)for(;!i.type.is(n);)if(!i.nextSibling())return o;for(;;){if(null!=r&&i.type.is(r))return o;if(i.type.is(e)&&o.push(i.node),!i.nextSibling())return null==r?o:[]}}var b=function t(e,n,r,i){o(this,t),this.parent=e,this.buffer=n,this.index=r,this.start=i},w=function(){function t(e,n,r){o(this,t),this.context=e,this._parent=n,this.index=r,this.type=e.buffer.set.types[e.buffer.buffer[r]]}return s(t,[{key:"child",value:function(e,n){var r=this.context.buffer,i=r.findChild(this.index+4,r.buffer[this.index+3],e,-1e8==n?-1e8:n-this.context.start);return i<0?null:new t(this.context,this,i)}},{key:"childAfter",value:function(t){return this.child(1,t)}},{key:"childBefore",value:function(t){return this.child(-1,t)}},{key:"externalSibling",value:function(t){return this._parent?null:this.context.parent.nextChild(this.context.index+t,t,-1)}},{key:"resolve",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return this.cursor.moveTo(t,e).node}},{key:"toString",value:function(){return this.context.buffer.childString(this.index)}},{key:"getChild",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=k(this,t,e,n);return r.length?r[0]:null}},{key:"getChildren",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return k(this,t,e,n)}},{key:"name",get:function(){return this.type.name}},{key:"from",get:function(){return this.context.start+this.context.buffer.buffer[this.index+1]}},{key:"to",get:function(){return this.context.start+this.context.buffer.buffer[this.index+2]}},{key:"firstChild",get:function(){return this.child(1,-1e8)}},{key:"lastChild",get:function(){return this.child(-1,-1e8)}},{key:"parent",get:function(){return this._parent||this.context.parent.nextSignificantParent()}},{key:"nextSibling",get:function(){var e=this.context.buffer,n=e.buffer[this.index+3];return n<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new t(this.context,this._parent,n):this.externalSibling(1)}},{key:"prevSibling",get:function(){var e=this.context.buffer,n=this._parent?this._parent.index+4:0;return this.index==n?this.externalSibling(-1):new t(this.context,this._parent,e.findChild(n,this.index,-1,-1e8))}},{key:"cursor",get:function(){return new S(this)}}]),t}(),S=function(){function t(e){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(o(this,t),this.full=n,this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,e instanceof y)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(var r=e._parent;r;r=r._parent)this.stack.unshift(r.index);this.bufferNode=e,this.yieldBuf(e.index)}}return s(t,[{key:"yieldNode",value:function(t){return!!t&&(this._tree=t,this.type=t.type,this.from=t.from,this.to=t.to,!0)}},{key:"yieldBuf",value:function(t,e){this.index=t;var n=this.buffer,r=n.start,i=n.buffer;return this.type=e||i.set.types[i.buffer[t]],this.from=r+i.buffer[t+1],this.to=r+i.buffer[t+2],!0}},{key:"yield",value:function(t){return!!t&&(t instanceof y?(this.buffer=null,this.yieldNode(t)):(this.buffer=t.context,this.yieldBuf(t.index,t.type)))}},{key:"toString",value:function(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}},{key:"enter",value:function(t,e){if(!this.buffer)return this.yield(this._tree.nextChild(t<0?this._tree.node.children.length-1:0,t,e,this.full));var n=this.buffer.buffer,r=n.findChild(this.index+4,n.buffer[this.index+3],t,-1e8==e?-1e8:e-this.buffer.start);return!(r<0)&&(this.stack.push(this.index),this.yieldBuf(r))}},{key:"firstChild",value:function(){return this.enter(1,-1e8)}},{key:"lastChild",value:function(){return this.enter(-1,-1e8)}},{key:"childAfter",value:function(t){return this.enter(1,t)}},{key:"childBefore",value:function(t){return this.enter(-1,t)}},{key:"parent",value:function(){if(!this.buffer)return this.yieldNode(this.full?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());var t=this.full?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(t)}},{key:"sibling",value:function(t){if(!this.buffer)return!!this._tree._parent&&this.yield(this._tree._parent.nextChild(this._tree.index+t,t,-1e8,this.full));var e=this.buffer.buffer,n=this.stack.length-1;if(t<0){var r=n<0?0:this.stack[n]+4;if(this.index!=r)return this.yieldBuf(e.findChild(r,this.index,-1,-1e8))}else{var i=e.buffer[this.index+3];if(i<(n<0?e.buffer.length:e.buffer[this.stack[n]+3]))return this.yieldBuf(i)}return n<0&&this.yield(this.buffer.parent.nextChild(this.buffer.index+t,t,-1e8,this.full))}},{key:"nextSibling",value:function(){return this.sibling(1)}},{key:"prevSibling",value:function(){return this.sibling(-1)}},{key:"atLastNode",value:function(t){var e,n,r=this.buffer;if(r){if(t>0){if(this.index1&&void 0!==arguments[1]?arguments[1]:0;(this.from==this.to||(e<1?this.from>=t:this.from>t)||(e>-1?this.to<=t:this.to=t:this.from>t)||(e>-1?this.to<=t:this.to=0;){for(var o=t;o;o=o._parent)if(o.index==r){if(r==this.index)return o;e=o,n=i+1;break t}r=this.stack[--i]}for(var a=n;al;)if(n.id!=e){var h=n.size,c=n.pos-h;if(h<0||c=f?4:0,p=n.start;for(n.next();n.pos>c;){if(n.size<0)break t;n.id>=f&&(d+=4),n.next()}i=p,r+=h,o+=d}else u.size=r,u.start=i,u.skip=o,o+=4,r+=4,n.next();(e<0||r==t)&&(u.size=r,u.start=i,u.skip=o);return u.size>4?u:void 0}(v.pos-e,o))){for(var T=new Uint16Array(A.size-A.skip),D=v.pos-A.size,E=T.length;v.pos>D;)E=w(A.start,T,E,o);x=new m(T,l-A.start,r,o<0?d.none:y[o]),S=A.start-t}else{var P=v.pos-c;v.next();for(var R=[],B=[],L=a>=f?a:-1;v.pos>P;)v.id==L?v.next():b(u,P,R,B,L);R.reverse(),B.reverse(),x=L>-1&&R.length>C?O(M,M,R,B,0,R.length,0,s,l-u,k):g(new p(M,R,B,l-u),k)}n.push(x),i.push(S)}function w(t,e,n,r){var i=v.id,o=v.start,a=v.end,s=v.size;if(v.next(),i==r)return n;var u=n;if(s>4)for(var l=v.pos-(s-4);v.pos>l;)n=w(t,e,n,r);return i0;)b(t.start||0,0,S,x,-1);var M=null!==(e=t.length)&&void 0!==e?e:S.length?x[0]+S[0].length:0;return new p(y[o],S.reverse(),x.reverse(),M)}function O(t,e,n,r,i,o,a,s,u,l){var h=[],c=[];if(u<=s)for(var f=i;fv)break}if(m==y+1){var b=n[y];if(b instanceof p&&b.type==e&&b.length>v<<1){for(var w=0;w0}},{key:"openEnd",get:function(){return(2&this.open)>0}}],[{key:"applyChanges",value:function(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:128;if(!n.length)return e;for(var i=[],o=1,a=e.length?e[0]:null,s=0,u=0,l=0;;){var h=s=r)for(;a&&a.from=f.from||c<=f.to||l){var d=Math.max(f.from,u)-l,v=Math.min(f.to,c)-l;f=d>=v?null:new t(d,v,f.tree,f.offset+l,(s>0?1:0)|(h?2:0))}if(f&&i.push(f),a.to>c)break;a=o1&&void 0!==arguments[1]?arguments[1]:[],o=arguments.length>2&&void 0!==arguments[2]&&arguments[2],a=[new t(0,e.length,e,0,o?2:0)],s=r(i);try{for(s.s();!(n=s.n()).done;){var u=n.value;u.to>e.length&&a.push(u)}}catch(l){s.e(l)}finally{s.f()}return a}}]),t}()},62038:function(t,e,n){"use strict";function r(t){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){for(var n=0;n-1&&(this.modules.splice(a,1),r--,a=-1),-1==a){if(this.modules.splice(r++,0,o),e)for(var s=0;s","\n "]);return E=function(){return e},e}function _(){var e=O(["\n \n ","\n \n "]);return _=function(){return e},e}function P(){var e=O(['
    ',"
    "]);return P=function(){return e},e}function x(){var e=O(["\n \n ',"\n\n \n \n \n \n
    \n =0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;ae.length)&&(t=e.length);for(var r=0,n=new Array(t);re.length)&&(t=e.length);for(var r=0,n=new Array(t);r\n ","\n \n "]);return X=function(){return e},e}function Z(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function G(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function J(e,t){return(J=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function ee(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=ne(e);if(t){var i=ne(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return te(this,r)}}function te(e,t){return!t||"object"!==Q(t)&&"function"!=typeof t?re(e):t}function re(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function ne(e){return(ne=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function ie(){ie=function(){return e};var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach((function(r){t.forEach((function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)}),this)}),this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach((function(n){t.forEach((function(t){var i=t.placement;if(t.kind===n&&("static"===i||"prototype"===i)){var o="static"===i?e:r;this.defineClassElement(o,t)}}),this)}),this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],i={static:[],prototype:[],own:[]};if(e.forEach((function(e){this.addElementPlacement(e,i)}),this),e.forEach((function(e){if(!se(e))return r.push(e);var t=this.decorateElement(e,i);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)}),this),!t)return{elements:r,finishers:n};var o=this.decorateConstructor(r,t);return n.push.apply(n,o.finishers),o.finishers=n,o},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],i=e.decorators,o=i.length-1;o>=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;ae.length)&&(t=e.length);for(var r=0,n=new Array(t);r',": ",""]);return he=function(){return e},e}function me(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function ye(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function ve(e,t){return(ve=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function be(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=je(e);if(t){var i=je(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return ge(this,r)}}function ge(e,t){return!t||"object"!==fe(t)&&"function"!=typeof t?we(e):t}function we(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function ke(){ke=function(){return e};var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach((function(r){t.forEach((function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)}),this)}),this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach((function(n){t.forEach((function(t){var i=t.placement;if(t.kind===n&&("static"===i||"prototype"===i)){var o="static"===i?e:r;this.defineClassElement(o,t)}}),this)}),this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],i={static:[],prototype:[],own:[]};if(e.forEach((function(e){this.addElementPlacement(e,i)}),this),e.forEach((function(e){if(!Pe(e))return r.push(e);var t=this.decorateElement(e,i);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)}),this),!t)return{elements:r,finishers:n};var o=this.decorateConstructor(r,t);return n.push.apply(n,o.finishers),o.finishers=n,o},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],i=e.decorators,o=i.length-1;o>=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;ae.length)&&(t=e.length);for(var r=0,n=new Array(t);r',"\n \n "]);return ze=function(){return e},e}function Te(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Re(e,t){return(Re=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Fe(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=Be(e);if(t){var i=Be(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return Ie(this,r)}}function Ie(e,t){return!t||"object"!==Ae(t)&&"function"!=typeof t?Me(e):t}function Me(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Be(e){return(Be=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function $e(){$e=function(){return e};var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach((function(r){t.forEach((function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)}),this)}),this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach((function(n){t.forEach((function(t){var i=t.placement;if(t.kind===n&&("static"===i||"prototype"===i)){var o="static"===i?e:r;this.defineClassElement(o,t)}}),this)}),this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],i={static:[],prototype:[],own:[]};if(e.forEach((function(e){this.addElementPlacement(e,i)}),this),e.forEach((function(e){if(!Le(e))return r.push(e);var t=this.decorateElement(e,i);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)}),this),!t)return{elements:r,finishers:n};var o=this.decorateConstructor(r,t);return n.push.apply(n,o.finishers),o.finishers=n,o},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],i=e.decorators,o=i.length-1;o>=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;ae.length)&&(t=e.length);for(var r=0,n=new Array(t);r .slider-knob > .slider-knob-inner::after {\n -webkit-transform: scale(1) translate(0, -17px) scaleX(-1) !important;\n transform: scale(1) translate(0, -17px) scaleX(-1) !important;\n }\n\n .pin > .slider-knob > .slider-knob-inner {\n font-size: var(--ha-slider-pin-font-size, 10px);\n line-height: normal;\n cursor: pointer;\n }\n\n .disabled.ring > .slider-knob > .slider-knob-inner {\n background-color: var(--paper-slider-disabled-knob-color, var(--paper-grey-400));\n border: 2px solid var(--paper-slider-disabled-knob-color, var(--paper-grey-400));\n }\n\n .pin > .slider-knob > .slider-knob-inner::before {\n top: unset;\n margin-left: unset;\n\n bottom: calc(15px + var(--calculated-paper-slider-height)/2);\n left: 50%;\n width: 2.2em;\n height: 2.2em;\n\n -webkit-transform-origin: left bottom;\n transform-origin: left bottom;\n -webkit-transform: rotate(-45deg) scale(0) translate(0);\n transform: rotate(-45deg) scale(0) translate(0);\n }\n\n .pin.expand > .slider-knob > .slider-knob-inner::before {\n -webkit-transform: rotate(-45deg) scale(1) translate(7px, -7px);\n transform: rotate(-45deg) scale(1) translate(7px, -7px);\n }\n\n .pin > .slider-knob > .slider-knob-inner::after {\n top: unset;\n font-size: unset;\n\n bottom: calc(15px + var(--calculated-paper-slider-height)/2);\n left: 50%;\n margin-left: -1.1em;\n width: 2.2em;\n height: 2.1em;\n\n -webkit-transform-origin: center bottom;\n transform-origin: center bottom;\n -webkit-transform: scale(0) translate(0);\n transform: scale(0) translate(0);\n }\n\n .pin.expand > .slider-knob > .slider-knob-inner::after {\n -webkit-transform: scale(1) translate(0, -10px);\n transform: scale(1) translate(0, -10px);\n }\n\n .slider-input {\n width: 54px;\n }\n ')),tt}}],(r=[{key:"_setImmediateValue",value:function(e){Xe(et(o.prototype),"_setImmediateValue",this).call(this,this.step>=1?Math.round(e):Math.round(100*e)/100)}},{key:"_calcStep",value:function(e){if(!this.step)return parseFloat(e);var t=Math.round((e-this.min)/this.step),r=this.step.toString(),n=r.indexOf(".");if(-1!==n){var i=Math.pow(10,r.length-n-1);return Math.round((t*this.step+this.min)*i)/i}return t*this.step+this.min}}])&&We(t.prototype,r),n&&We(t,n),o}(rt);function it(e){return(it="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function ot(){var e=lt(["\n .flex {\n display: flex;\n }\n ha-slider {\n width: 100%;\n margin-right: 16px;\n }\n "]);return ot=function(){return e},e}function at(){var e=lt(['\n \n ',"\n \n
    \n \n "]);return ct=function(){return e},e}function lt(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function ut(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function dt(e,t){return(dt=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function ft(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=mt(e);if(t){var i=mt(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return pt(this,r)}}function pt(e,t){return!t||"object"!==it(t)&&"function"!=typeof t?ht(e):t}function ht(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function mt(e){return(mt=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function yt(){yt=function(){return e};var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach((function(r){t.forEach((function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)}),this)}),this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach((function(n){t.forEach((function(t){var i=t.placement;if(t.kind===n&&("static"===i||"prototype"===i)){var o="static"===i?e:r;this.defineClassElement(o,t)}}),this)}),this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],i={static:[],prototype:[],own:[]};if(e.forEach((function(e){this.addElementPlacement(e,i)}),this),e.forEach((function(e){if(!gt(e))return r.push(e);var t=this.decorateElement(e,i);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)}),this),!t)return{elements:r,finishers:n};var o=this.decorateConstructor(r,t);return n.push.apply(n,o.finishers),o.finishers=n,o},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],i=e.decorators,o=i.length-1;o>=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;ae.length)&&(t=e.length);for(var r=0,n=new Array(t);r\n \n ',"\n \n "]);return Ot=function(){return e},e}function St(){var e=Ct(['\n \n \n =0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;ae.length)&&(t=e.length);for(var r=0,n=new Array(t);r\n :host {\n display: block;\n @apply --paper-font-common-base;\n }\n\n paper-input {\n width: 30px;\n text-align: center;\n --paper-input-container-input: {\n /* Damn you firefox\n * Needed to hide spin num in firefox\n * http://stackoverflow.com/questions/3790935/can-i-hide-the-html5-number-input-s-spin-box\n */\n -moz-appearance: textfield;\n @apply --paper-time-input-cotnainer;\n }\n --paper-input-container-input-webkit-spinner: {\n -webkit-appearance: none;\n margin: 0;\n display: none;\n }\n --paper-input-container-shared-input-style_-_-webkit-appearance: textfield;\n }\n\n paper-dropdown-menu {\n width: 55px;\n padding: 0;\n /* Force ripple to use the whole container */\n --paper-dropdown-menu-ripple: {\n color: var(\n --paper-time-input-dropdown-ripple-color,\n var(--primary-color)\n );\n }\n --paper-input-container-input: {\n @apply --paper-font-button;\n text-align: center;\n padding-left: 5px;\n @apply --paper-time-dropdown-input-cotnainer;\n }\n --paper-input-container-underline: {\n border-color: transparent;\n }\n --paper-input-container-underline-focus: {\n border-color: transparent;\n }\n }\n\n paper-item {\n cursor: pointer;\n text-align: center;\n font-size: 14px;\n }\n\n paper-listbox {\n padding: 0;\n }\n\n label {\n @apply --paper-font-caption;\n color: var(\n --paper-input-container-color,\n var(--secondary-text-color)\n );\n }\n\n .time-input-wrap {\n @apply --layout-horizontal;\n @apply --layout-no-wrap;\n justify-content: var(--paper-time-input-justify-content, normal);\n }\n\n [hidden] {\n display: none !important;\n }\n\n #millisec {\n width: 38px;\n }\n\n .no-suffix {\n margin-left: -2px;\n }\n \n\n \n
    \n \x3c!-- Hour Input --\x3e\n \n :\n \n\n \x3c!-- Min Input --\x3e\n \n :\n \n\n \x3c!-- Sec Input --\x3e\n \n :\n \n\n \x3c!-- Millisec Input --\x3e\n \n \n\n \x3c!-- Dropdown Menu --\x3e\n \n \n AM\n PM\n \n \n
    \n ']);return Ht=function(){return e},e}function Yt(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Kt(e,t){for(var r=0;r\n ']);return tr=function(){return e},e}function rr(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function nr(e,t){return(nr=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function ir(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=sr(e);if(t){var i=sr(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return or(this,r)}}function or(e,t){return!t||"object"!==Jt(t)&&"function"!=typeof t?ar(e):t}function ar(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function sr(e){return(sr=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function cr(){cr=function(){return e};var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach((function(r){t.forEach((function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)}),this)}),this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach((function(n){t.forEach((function(t){var i=t.placement;if(t.kind===n&&("static"===i||"prototype"===i)){var o="static"===i?e:r;this.defineClassElement(o,t)}}),this)}),this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],i={static:[],prototype:[],own:[]};if(e.forEach((function(e){this.addElementPlacement(e,i)}),this),e.forEach((function(e){if(!dr(e))return r.push(e);var t=this.decorateElement(e,i);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)}),this),!t)return{elements:r,finishers:n};var o=this.decorateConstructor(r,t);return n.push.apply(n,o.finishers),o.finishers=n,o},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],i=e.decorators,o=i.length-1;o>=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;ae.length)&&(t=e.length);for(var r=0,n=new Array(t);r59&&(i+=Math.floor(r/60),r%=60),"minutes"===t&&r>59&&(n+=Math.floor(r/60),r%=60),(0,a.B)(this,"value-changed",{value:Object.assign({hours:n,minutes:i,seconds:this._seconds,milliseconds:this._milliseconds},er({},t,r))})}}}]}}),i.oi);function yr(e){return(yr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function vr(){var e=function(e,t){t||(t=e.slice(0));return Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}(["\n \n "]);return vr=function(){return e},e}function br(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function gr(e,t){return(gr=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function wr(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=_r(e);if(t){var i=_r(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return kr(this,r)}}function kr(e,t){return!t||"object"!==yr(t)&&"function"!=typeof t?Er(e):t}function Er(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _r(e){return(_r=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Pr(){Pr=function(){return e};var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach((function(r){t.forEach((function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)}),this)}),this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach((function(n){t.forEach((function(t){var i=t.placement;if(t.kind===n&&("static"===i||"prototype"===i)){var o="static"===i?e:r;this.defineClassElement(o,t)}}),this)}),this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],i={static:[],prototype:[],own:[]};if(e.forEach((function(e){this.addElementPlacement(e,i)}),this),e.forEach((function(e){if(!Sr(e))return r.push(e);var t=this.decorateElement(e,i);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)}),this),!t)return{elements:r,finishers:n};var o=this.decorateConstructor(r,t);return n.push.apply(n,o.finishers),o.finishers=n,o},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],i=e.decorators,o=i.length-1;o>=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;ae.length)&&(t=e.length);for(var r=0,n=new Array(t);r\n ","\n \n "]);return Vr=function(){return e},e}function qr(){var e=Hr(["\n =0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;ae.length)&&(t=e.length);for(var r=0,n=new Array(t);r\n =0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;ae.length)&&(t=e.length);for(var r=0,n=new Array(t);r\n ',"\n \n "]);return Cn=function(){return e},e}function Dn(){var e=Tn(["\n ","\n ","\n "]);return Dn=function(){return e},e}function jn(){var e=Tn(["\n \n "]);return jn=function(){return e},e}function An(){var e=Tn(['\n
    \n ',"\n
    \n "]);return An=function(){return e},e}function zn(){var e=Tn(["\n ","\n ","\n "]);return zn=function(){return e},e}function Tn(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function Rn(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Fn(e,t){return(Fn=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function In(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=$n(e);if(t){var i=$n(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return Mn(this,r)}}function Mn(e,t){return!t||"object"!==On(t)&&"function"!=typeof t?Bn(e):t}function Bn(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function $n(e){return($n=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Nn(){Nn=function(){return e};var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach((function(r){t.forEach((function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)}),this)}),this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach((function(n){t.forEach((function(t){var i=t.placement;if(t.kind===n&&("static"===i||"prototype"===i)){var o="static"===i?e:r;this.defineClassElement(o,t)}}),this)}),this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],i={static:[],prototype:[],own:[]};if(e.forEach((function(e){this.addElementPlacement(e,i)}),this),e.forEach((function(e){if(!Vn(e))return r.push(e);var t=this.decorateElement(e,i);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)}),this),!t)return{elements:r,finishers:n};var o=this.decorateConstructor(r,t);return n.push.apply(n,o.finishers),o.finishers=n,o},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],i=e.decorators,o=i.length-1;o>=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;ae.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;ae.length)&&(t=e.length);for(var r=0,n=new Array(t);r\n :host(.error-state) div.cm-wrap .cm-gutters {\n border-color: var(--error-state-color, red);\n }\n ",r=document.createElement("span"),t.appendChild(r),this.codemirror=new this._loadedCodeMirror.EditorView({state:this._loadedCodeMirror.EditorState.create({doc:this._value,extensions:[this._loadedCodeMirror.lineNumbers(),this._loadedCodeMirror.EditorState.allowMultipleSelections.of(!0),this._loadedCodeMirror.history(),this._loadedCodeMirror.highlightSelectionMatches(),this._loadedCodeMirror.highlightActiveLine(),this._loadedCodeMirror.drawSelection(),this._loadedCodeMirror.rectangularSelection(),this._loadedCodeMirror.keymap.of([].concat(Jn(this._loadedCodeMirror.defaultKeymap),Jn(this._loadedCodeMirror.searchKeymap),Jn(this._loadedCodeMirror.historyKeymap),Jn(this._loadedCodeMirror.tabKeyBindings),[bi])),this._loadedCodeMirror.langCompartment.of(this._mode),this._loadedCodeMirror.theme,this._loadedCodeMirror.Prec.fallback(this._loadedCodeMirror.highlightStyle),this._loadedCodeMirror.readonlyCompartment.of(this._loadedCodeMirror.EditorView.editable.of(!this.readOnly)),this._loadedCodeMirror.EditorView.updateListener.of((function(e){return n._onUpdate(e)}))]}),root:t,parent:r});case 8:case"end":return e.stop()}}),e,this)})),n=function(){var e=this,t=arguments;return new Promise((function(n,i){var o=r.apply(e,t);function a(e){ei(o,n,i,a,s,"next",e)}function s(e){ei(o,n,i,a,s,"throw",e)}a(void 0)}))},function(){return n.apply(this,arguments)})},{kind:"method",key:"_blockKeyboardShortcuts",value:function(){this.addEventListener("keydown",(function(e){return e.stopPropagation()}))}},{kind:"method",key:"_onUpdate",value:function(e){if(e.docChanged){var t=this.value;t!==this._value&&(this._value=t,(0,a.B)(this,"value-changed",{value:this._value}))}}}]}}),i.f4);function gi(){var e=Ei(["

    ","

    "]);return gi=function(){return e},e}function wi(){var e=Ei(["\n ","\n =0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;ae.length)&&(t=e.length);for(var r=0,n=new Array(t);r\n ',"\n \n "]);return Vi=function(){return e},e}function qi(){var e=Qi(['
    ',"
    "]);return qi=function(){return e},e}function Hi(){var e=Qi([" "]);return Hi=function(){return e},e}function Yi(){var e=Qi([""]);return Yi=function(){return e},e}function Ki(){var e=Qi(["\n

    ",'

    \n \n
    \n

    \n ','\n

    \n
    \n \n \n \n \n ','\n \n \n
    \n
    \n\n
    \n ',"\n ","\n ","\n
    \n ",'\n
    \n =0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;ae.length)&&(t=e.length);for(var r=0,n=new Array(t);r\n ","\n \n ',"
    "]);return vo=function(){return e},e}function bo(){var e=wo(["\n \n ',"\n\n \n \n \n \n \n \n \n ",'\n \n
    \n ","\n \n ","\n \n ","\n
    \n \n
    \n =0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;ae.length)&&(t=e.length);for(var r=0,n=new Array(t);rt.container?1:-1}))}},{kind:"method",key:"_configChanged",value:(o=mo(regeneratorRuntime.mark((function e(t){var r;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r=t.target,this._config.forEach((function(e){e.container===r.container&&e.host!==parseInt(String(r.value),10)&&(e.host=r.value?parseInt(String(r.value),10):null)}));case 2:case"end":return e.stop()}}),e,this)}))),function(e){return o.apply(this,arguments)})},{kind:"method",key:"_resetTapped",value:(n=mo(regeneratorRuntime.mark((function e(t){var r,n,i,o;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return(r=t.currentTarget).progress=!0,n={network:null},e.prev=3,e.next=6,(0,l.d3)(this.hass,this.addon.slug,n);case 6:if(o={success:!0,response:void 0,path:"option"},(0,a.B)(this,"hass-api-called",o),"started"!==(null===(i=this.addon)||void 0===i?void 0:i.state)){e.next=11;break}return e.next=11,y(this,this.hass,this.supervisor,this.addon);case 11:e.next=16;break;case 13:e.prev=13,e.t0=e.catch(3),this._error=this.supervisor.localize("addon.failed_to_reset","error",(0,u.js)(e.t0));case 16:r.progress=!1;case 17:case"end":return e.stop()}}),e,this,[[3,13]])}))),function(e){return n.apply(this,arguments)})},{kind:"method",key:"_saveTapped",value:(r=mo(regeneratorRuntime.mark((function e(t){var r,n,i,o,s;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return(r=t.currentTarget).progress=!0,this._error=void 0,n={},this._config.forEach((function(e){n[e.container]=parseInt(String(e.host),10)})),i={network:n},e.prev=6,e.next=9,(0,l.d3)(this.hass,this.addon.slug,i);case 9:if(s={success:!0,response:void 0,path:"option"},(0,a.B)(this,"hass-api-called",s),"started"!==(null===(o=this.addon)||void 0===o?void 0:o.state)){e.next=14;break}return e.next=14,y(this,this.hass,this.supervisor,this.addon);case 14:e.next=19;break;case 16:e.prev=16,e.t0=e.catch(6),this._error=this.supervisor.localize("addon.failed_to_save","error",(0,u.js)(e.t0));case 19:r.progress=!1;case 20:case"end":return e.stop()}}),e,this,[[6,16]])}))),function(e){return r.apply(this,arguments)})},{kind:"get",static:!0,key:"styles",value:function(){return[d.Qx,f.l,(0,i.iv)(po())]}}]}}),i.oi);var Io=r(18199);function Mo(e){return(Mo="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Bo(){var e=Ho(["\n .content {\n margin: auto;\n padding: 8px;\n max-width: 1024px;\n }\n hassio-addon-network,\n hassio-addon-audio,\n hassio-addon-config {\n margin-bottom: 24px;\n }\n "]);return Bo=function(){return e},e}function $o(){var e=Ho(["\n \n "]);return $o=function(){return e},e}function No(){var e=Ho(["\n \n "]);return No=function(){return e},e}function Uo(){var e=Ho(["\n \n "]);return Uo=function(){return e},e}function Lo(){var e=Ho(["\n ","\n ","\n ","\n "]);return Lo=function(){return e},e}function Vo(){var e=Ho(['\n
    \n ',"\n
    \n "]);return Vo=function(){return e},e}function qo(){var e=Ho([""]);return qo=function(){return e},e}function Ho(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function Yo(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Ko(e,t){return(Ko=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Qo(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=Zo(e);if(t){var i=Zo(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return Wo(this,r)}}function Wo(e,t){return!t||"object"!==Mo(t)&&"function"!=typeof t?Xo(e):t}function Xo(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Zo(e){return(Zo=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Go(){Go=function(){return e};var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach((function(r){t.forEach((function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)}),this)}),this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach((function(n){t.forEach((function(t){var i=t.placement;if(t.kind===n&&("static"===i||"prototype"===i)){var o="static"===i?e:r;this.defineClassElement(o,t)}}),this)}),this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],i={static:[],prototype:[],own:[]};if(e.forEach((function(e){this.addElementPlacement(e,i)}),this),e.forEach((function(e){if(!ta(e))return r.push(e);var t=this.decorateElement(e,i);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)}),this),!t)return{elements:r,finishers:n};var o=this.decorateConstructor(r,t);return n.push.apply(n,o.finishers),o.finishers=n,o},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],i=e.decorators,o=i.length-1;o>=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;ae.length)&&(t=e.length);for(var r=0,n=new Array(t);r"]);return ca=function(){return e},e}function la(){var e=pa([""]);return la=function(){return e},e}function ua(){var e=pa(['
    ',"
    "]);return ua=function(){return e},e}function da(){var e=pa(['\n
    \n \n ','\n
    \n ',"\n
    \n
    \n
    \n "]);return da=function(){return e},e}function fa(){var e=pa([""]);return fa=function(){return e},e}function pa(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function ha(e,t,r,n,i,o,a){try{var s=e[o](a),c=s.value}catch(l){return void r(l)}s.done?t(c):Promise.resolve(c).then(n,i)}function ma(e){return function(){var t=this,r=arguments;return new Promise((function(n,i){var o=e.apply(t,r);function a(e){ha(o,n,i,a,s,"next",e)}function s(e){ha(o,n,i,a,s,"throw",e)}a(void 0)}))}}function ya(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function va(e,t){return(va=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function ba(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=ja(e);if(t){var i=ja(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return ga(this,r)}}function ga(e,t){return!t||"object"!==aa(t)&&"function"!=typeof t?wa(e):t}function wa(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function ka(){ka=function(){return e};var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach((function(r){t.forEach((function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)}),this)}),this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach((function(n){t.forEach((function(t){var i=t.placement;if(t.kind===n&&("static"===i||"prototype"===i)){var o="static"===i?e:r;this.defineClassElement(o,t)}}),this)}),this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],i={static:[],prototype:[],own:[]};if(e.forEach((function(e){this.addElementPlacement(e,i)}),this),e.forEach((function(e){if(!Pa(e))return r.push(e);var t=this.decorateElement(e,i);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)}),this),!t)return{elements:r,finishers:n};var o=this.decorateConstructor(r,t);return n.push.apply(n,o.finishers),o.finishers=n,o},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],i=e.decorators,o=i.length-1;o>=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;ae.length)&&(t=e.length);for(var r=0,n=new Array(t);r
    \n "]);return Ia=function(){return e},e}function Ma(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function Ba(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function $a(e,t){return($a=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Na(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=Va(e);if(t){var i=Va(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return Ua(this,r)}}function Ua(e,t){return!t||"object"!==Ta(t)&&"function"!=typeof t?La(e):t}function La(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Va(e){return(Va=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function qa(){qa=function(){return e};var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach((function(r){t.forEach((function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)}),this)}),this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach((function(n){t.forEach((function(t){var i=t.placement;if(t.kind===n&&("static"===i||"prototype"===i)){var o="static"===i?e:r;this.defineClassElement(o,t)}}),this)}),this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],i={static:[],prototype:[],own:[]};if(e.forEach((function(e){this.addElementPlacement(e,i)}),this),e.forEach((function(e){if(!Ka(e))return r.push(e);var t=this.decorateElement(e,i);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)}),this),!t)return{elements:r,finishers:n};var o=this.decorateConstructor(r,t);return n.push.apply(n,o.finishers),o.finishers=n,o},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],i=e.decorators,o=i.length-1;o>=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;ae.length)&&(t=e.length);for(var r=0,n=new Array(t);r bit more top margin */\n font-weight: 500;\n overflow: hidden;\n text-transform: uppercase;\n text-overflow: ellipsis;\n transition: background-color 0.3s ease-in-out;\n text-transform: var(--ha-label-badge-label-text-transform, uppercase);\n }\n .label-badge .label.big span {\n font-size: 90%;\n padding: 10% 12% 7% 12%; /* push smaller text a bit down to center vertically */\n }\n .badge-container .title {\n margin-top: 1em;\n font-size: var(--ha-label-badge-title-font-size, 0.9em);\n width: var(--ha-label-badge-title-width, 5em);\n font-weight: var(--ha-label-badge-title-font-weight, 400);\n overflow: hidden;\n text-overflow: ellipsis;\n line-height: normal;\n }\n "]);return es=function(){return e},e}function ts(){var e=as(['
    ',"
    "]);return ts=function(){return e},e}function rs(){var e=as(['\n \n ',"\n
    \n "]);return rs=function(){return e},e}function ns(){var e=as([" "," "]);return ns=function(){return e},e}function is(){var e=as([" "]);return is=function(){return e},e}function os(){var e=as(['\n
    \n
    \n \n \n ',"\n ","\n \n
    \n ","\n
    \n ","\n \n "]);return os=function(){return e},e}function as(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}function ss(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function cs(e,t){return(cs=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function ls(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=ks(e);if(t){var i=ks(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return us(this,r)}}function us(e,t){return!t||"object"!==Ja(t)&&"function"!=typeof t?ds(e):t}function ds(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function fs(){fs=function(){return e};var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,t){["method","field"].forEach((function(r){t.forEach((function(t){t.kind===r&&"own"===t.placement&&this.defineClassElement(e,t)}),this)}),this)},initializeClassElements:function(e,t){var r=e.prototype;["method","field"].forEach((function(n){t.forEach((function(t){var i=t.placement;if(t.kind===n&&("static"===i||"prototype"===i)){var o="static"===i?e:r;this.defineClassElement(o,t)}}),this)}),this)},defineClassElement:function(e,t){var r=t.descriptor;if("field"===t.kind){var n=t.initializer;r={enumerable:r.enumerable,writable:r.writable,configurable:r.configurable,value:void 0===n?void 0:n.call(e)}}Object.defineProperty(e,t.key,r)},decorateClass:function(e,t){var r=[],n=[],i={static:[],prototype:[],own:[]};if(e.forEach((function(e){this.addElementPlacement(e,i)}),this),e.forEach((function(e){if(!ms(e))return r.push(e);var t=this.decorateElement(e,i);r.push(t.element),r.push.apply(r,t.extras),n.push.apply(n,t.finishers)}),this),!t)return{elements:r,finishers:n};var o=this.decorateConstructor(r,t);return n.push.apply(n,o.finishers),o.finishers=n,o},addElementPlacement:function(e,t,r){var n=t[e.placement];if(!r&&-1!==n.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");n.push(e.key)},decorateElement:function(e,t){for(var r=[],n=[],i=e.decorators,o=i.length-1;o>=0;o--){var a=t[e.placement];a.splice(a.indexOf(e.key),1);var s=this.fromElementDescriptor(e),c=this.toElementFinisherExtras((0,i[o])(s)||s);e=c.element,this.addElementPlacement(e,t),c.finisher&&n.push(c.finisher);var l=c.extras;if(l){for(var u=0;u=0;n--){var i=this.fromClassDescriptor(e),o=this.toClassDescriptor((0,t[n])(i)||i);if(void 0!==o.finisher&&r.push(o.finisher),void 0!==o.elements){e=o.elements;for(var a=0;ae.length)&&(t=e.length);for(var r=0,n=new Array(t);r4)}),!this.icon||this.value||this.image?"":(0,i.dy)(is(),this.icon),this.value&&!this.image?(0,i.dy)(ns(),this.value):"",this.label?(0,i.dy)(rs(),(0,Aa.$)({label:!0,big:this.label.length>5}),this.label):"",this.description?(0,i.dy)(ts(),this.description):"")}},{kind:"get",static:!0,key:"styles",value:function(){return[(0,i.iv)(es())]}},{kind:"method",key:"updated",value:function(e){ws(ks(r.prototype),"updated",this).call(this,e),e.has("image")&&(this.shadowRoot.getElementById("badge").style.backgroundImage=this.image?"url(".concat(this.image,")"):"")}}]}}),i.oi);customElements.define("ha-label-badge",Es);r(14089);var _s=r(70203),Ps=(r(79603),r(21050),r(66903)),xs=r(7628),Os=(0,o.Z)((function(e,t){return t.some((function(t){return e.includes(t)}))}));function Ss(e){return(Ss="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Cs(){var e=gc(['\n :host {\n display: block;\n }\n ha-card {\n display: block;\n margin-bottom: 16px;\n }\n ha-card.warning {\n background-color: var(--error-color);\n color: white;\n }\n ha-card.warning .card-header {\n color: white;\n }\n ha-card.warning .card-content {\n color: white;\n }\n ha-card.warning mwc-button {\n --mdc-theme-primary: white !important;\n }\n .warning {\n color: var(--error-color);\n --mdc-theme-primary: var(--error-color);\n }\n .light-color {\n color: var(--secondary-text-color);\n }\n .addon-header {\n padding-left: 8px;\n font-size: 24px;\n color: var(--ha-card-header-color, --primary-text-color);\n }\n .addon-version {\n float: right;\n font-size: 15px;\n vertical-align: middle;\n }\n .errors {\n color: var(--error-color);\n margin-bottom: 16px;\n }\n .description {\n margin-bottom: 16px;\n }\n img.logo {\n max-height: 60px;\n margin: 16px 0;\n display: block;\n }\n\n ha-switch {\n display: flex;\n }\n ha-svg-icon.running {\n color: var(--paper-green-400);\n }\n ha-svg-icon.stopped {\n color: var(--google-red-300);\n }\n ha-call-api-button {\n font-weight: 500;\n color: var(--primary-color);\n }\n protection-enable mwc-button {\n --mdc-theme-primary: white;\n }\n .description a {\n color: var(--primary-color);\n }\n .red {\n --ha-label-badge-color: var(--label-badge-red, #df4c1e);\n }\n .blue {\n --ha-label-badge-color: var(--label-badge-blue, #039be5);\n }\n .green {\n --ha-label-badge-color: var(--label-badge-green, #0da035);\n }\n .yellow {\n --ha-label-badge-color: var(--label-badge-yellow, #f4b400);\n }\n .security {\n margin-bottom: 16px;\n }\n .card-actions {\n justify-content: space-between;\n display: flex;\n }\n .security h3 {\n margin-bottom: 8px;\n font-weight: normal;\n }\n .security ha-label-badge {\n cursor: pointer;\n margin-right: 4px;\n --ha-label-badge-padding: 8px 0 0 0;\n }\n .changelog {\n display: contents;\n }\n .changelog-link {\n color: var(--primary-color);\n text-decoration: underline;\n cursor: pointer;\n }\n ha-markdown {\n padding: 16px;\n }\n ha-settings-row {\n padding: 0;\n height: 54px;\n width: 100%;\n }\n ha-settings-row > span[slot="description"] {\n white-space: normal;\n color: var(--secondary-text-color);\n }\n ha-settings-row[three-line] {\n height: 74px;\n }\n\n .addon-options {\n max-width: 90%;\n }\n\n .addon-container {\n display: grid;\n grid-auto-flow: column;\n grid-template-columns: 60% 40%;\n }\n\n .addon-container > div:last-of-type {\n align-self: end;\n }\n\n @media (max-width: 720px) {\n .addon-options {\n max-width: 100%;\n }\n .addon-container {\n display: block;\n }\n }\n ']);return Cs=function(){return e},e}function Ds(e,t,r,n,i,o,a){try{var s=e[o](a),c=s.value}catch(l){return void r(l)}s.done?t(c):Promise.resolve(c).then(n,i)}function js(e){return function(){var t=this,r=arguments;return new Promise((function(n,i){var o=e.apply(t,r);function a(e){Ds(o,n,i,a,s,"next",e)}function s(e){Ds(o,n,i,a,s,"throw",e)}a(void 0)}))}}function As(){var e=gc(['\n \n
    \n \n ',"\n \n "]);return zs=function(){return e},e}function Ts(){var e=gc(["\n \n ","\n \n "]);return Ts=function(){return e},e}function Rs(){var e=gc(["\n \n \n ',"\n \n \n "]);return Rs=function(){return e},e}function Fs(){var e=gc([" ","\n ",'\n \n \n ',"\n

    \n "]);return $s=function(){return e},e}function Ns(){var e=gc(['\n

    \n ',"\n

    \n "]);return Ns=function(){return e},e}function Us(){var e=gc(['
    ',"
    "]);return Us=function(){return e},e}function Ls(){var e=gc(["\n \n "]);return Ls=function(){return e},e}function Vs(){var e=gc(["\n ','\n \n \n ',"\n \n \n ",""]);return Vs=function(){return e},e}function qs(){var e=gc(["\n \n ','\n \n \n ',"\n \n \n \n "]);return qs=function(){return e},e}function Hs(){var e=gc(["\n \n ','\n \n \n ',"\n \n \n \n "]);return Hs=function(){return e},e}function Ys(){var e=gc(["\n \n ','\n \n \n ',"\n \n \n \n "]);return Ys=function(){return e},e}function Ks(){var e=gc(["\n \n ','\n \n \n ',"\n \n \n \n "]);return Ks=function(){return e},e}function Qs(){var e=gc(['\n \n \n \n ','\n \n \n ',"\n \n \n \n\n ","\n ","\n ","\n ","\n
    \n "]);return Qs=function(){return e},e}function Ws(){var e=gc(["\n \n \n \n \n \n \n \n \n \n